Tizen 2.1 base
authorJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:39:09 +0000 (01:39 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:39:09 +0000 (01:39 +0900)
93 files changed:
CMakeLists.txt [new file with mode: 0755]
LICENSE.Flora [new file with mode: 0644]
NOTICE [new file with mode: 0644]
inc/VpFormFactory.h [new file with mode: 0644]
inc/VpIVideoPlayerEventListener.h [new file with mode: 0644]
inc/VpMainFrame.h [new file with mode: 0644]
inc/VpSoundPathPopup.h [new file with mode: 0644]
inc/VpTypes.h [new file with mode: 0644]
inc/VpVideoPlayerApp.h [new file with mode: 0644]
inc/VpVideoPlayerForm.h [new file with mode: 0644]
inc/VpVideoPlayerPresentationModel.h [new file with mode: 0644]
inc/VpVolumeSettingPopup.h [new file with mode: 0644]
manifest.xml [new file with mode: 0644]
packaging/apps.VideoPlayer.spec [new file with mode: 0755]
res/ara-AE.xml [new file with mode: 0644]
res/aze-AZ.xml [new file with mode: 0644]
res/bul-BG.xml [new file with mode: 0644]
res/cat-ES.xml [new file with mode: 0644]
res/ces-CZ.xml [new file with mode: 0644]
res/dan-DK.xml [new file with mode: 0644]
res/deu-DE.xml [new file with mode: 0644]
res/ell-GR.xml [new file with mode: 0644]
res/eng-GB.xml [new file with mode: 0644]
res/eng-PH.xml [new file with mode: 0644]
res/eng-US.xml [new file with mode: 0644]
res/est-EE.xml [new file with mode: 0644]
res/eus-ES.xml [new file with mode: 0644]
res/fin-FI.xml [new file with mode: 0644]
res/fra-CA.xml [new file with mode: 0644]
res/fra-FR.xml [new file with mode: 0644]
res/gle-IE.xml [new file with mode: 0644]
res/glg-ES.xml [new file with mode: 0644]
res/hin-IN.xml [new file with mode: 0644]
res/hrv-HR.xml [new file with mode: 0644]
res/hun-HU.xml [new file with mode: 0644]
res/hye-AM.xml [new file with mode: 0644]
res/isl-IS.xml [new file with mode: 0644]
res/ita-IT.xml [new file with mode: 0644]
res/jpn-JP.xml [new file with mode: 0644]
res/kat-GE.xml [new file with mode: 0644]
res/kaz-KZ.xml [new file with mode: 0644]
res/kor-KR.xml [new file with mode: 0644]
res/lav-LV.xml [new file with mode: 0644]
res/lit-LT.xml [new file with mode: 0644]
res/mkd-MK.xml [new file with mode: 0644]
res/nld-NL.xml [new file with mode: 0644]
res/nob-NO.xml [new file with mode: 0644]
res/pol-PL.xml [new file with mode: 0644]
res/por-BR.xml [new file with mode: 0644]
res/por-PT.xml [new file with mode: 0644]
res/ron-RO.xml [new file with mode: 0644]
res/rus-RU.xml [new file with mode: 0644]
res/screen-density-xhigh/T01_btn_toolbar_back.png [new file with mode: 0644]
res/screen-density-xhigh/T01_btn_toolbar_volume.png [new file with mode: 0644]
res/screen-density-xhigh/T01_control_stop.png [new file with mode: 0644]
res/screen-density-xhigh/T01_control_stop_press.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controller_progress_handle.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controller_progress_handle_press.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_title_screenmode01.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_title_screenmode02.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_title_screenmode03.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_title_soundpath.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_toolbar_next.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_toolbar_pause.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_toolbar_play.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_toolbar_previous.png [new file with mode: 0644]
res/screen-density-xhigh/T01_main_folder_bg.png [new file with mode: 0644]
res/screen-size-normal/IDL_MAIN_FORM.xml [new file with mode: 0644]
res/slk-SK.xml [new file with mode: 0644]
res/slv-SI.xml [new file with mode: 0644]
res/spa-ES.xml [new file with mode: 0644]
res/spa-MX.xml [new file with mode: 0644]
res/srp-RS.xml [new file with mode: 0644]
res/swe-SE.xml [new file with mode: 0644]
res/tur-TR.xml [new file with mode: 0644]
res/ukr-UA.xml [new file with mode: 0644]
res/uzb-UZ.xml [new file with mode: 0644]
res/zho-CN.xml [new file with mode: 0644]
res/zho-HK.xml [new file with mode: 0644]
res/zho-SG.xml [new file with mode: 0644]
res/zho-TW.xml [new file with mode: 0644]
shared/data/nofile.dummy [new file with mode: 0644]
shared/res/screen-density-xhigh/mainmenu.png [new file with mode: 0644]
shared/trusted/nofile.dummy [new file with mode: 0644]
src/VpFormFactory.cpp [new file with mode: 0644]
src/VpMainFrame.cpp [new file with mode: 0644]
src/VpSoundPathPopup.cpp [new file with mode: 0644]
src/VpTypes.cpp [new file with mode: 0644]
src/VpVideoPlayerApp.cpp [new file with mode: 0644]
src/VpVideoPlayerEntry.cpp [new file with mode: 0644]
src/VpVideoPlayerForm.cpp [new file with mode: 0644]
src/VpVideoPlayerPresentationModel.cpp [new file with mode: 0644]
src/VpVolumeSettingPopup.cpp [new file with mode: 0644]

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..558d1f3
--- /dev/null
@@ -0,0 +1,32 @@
+# Target name and PKGID
+## TODO : set application name and ID
+SET(this_target VideoPlayer)
+SET(PKGID npwf0scb88)
+
+# include directory
+INCLUDE_DIRECTORIES(
+       /usr/include/osp
+       inc
+  )
+
+# Source files
+FILE(GLOB ${this_target}_SOURCE_FILES src/*.cpp)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE")
+
+# Create executable
+SET(CMAKE_EXECUTABLE_SUFFIX ".exe")
+ADD_EXECUTABLE (${this_target} ${${this_target}_SOURCE_FILES})
+
+# Set link libraries and link options
+## TODO : add more link libraries and options
+TARGET_LINK_LIBRARIES(${this_target} -L/usr/lib/osp osp-appfw osp-uifw osp-media osp-content osp-image osp-bluetooth osp-telephony pthread)
+TARGET_LINK_LIBRARIES(${this_target} -Xlinker --allow-shlib-undefined -pthread -pie)
+
+# Copy info, data, res, and icons directories
+INSTALL(TARGETS ${this_target} DESTINATION ../usr/apps/${PKGID}/bin)
+
+# Copy resource
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/manifest.xml DESTINATION ../usr/apps/${PKGID}/info)
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res DESTINATION ../usr/apps/${PKGID})
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/shared DESTINATION ../usr/apps/${PKGID})
diff --git a/LICENSE.Flora b/LICENSE.Flora
new file mode 100644 (file)
index 0000000..9c95663
--- /dev/null
@@ -0,0 +1,206 @@
+Flora License
+
+Version 1.0, May, 2012
+
+http://floralicense.org/license/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and
+all other entities that control, are controlled by, or are
+under common control with that entity. For the purposes of
+this definition, "control" means (i) the power, direct or indirect,
+to cause the direction or management of such entity,
+whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+or more of the outstanding shares, or (iii) beneficial ownership of
+such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation source,
+and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form,
+made available under the License, as indicated by a copyright notice
+that is included in or attached to the work (an example is provided
+in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form,
+that is based on (or derived from) the Work and for which the editorial
+revisions, annotations, elaborations, or other modifications represent,
+as a whole, an original work of authorship. For the purposes of this License,
+Derivative Works shall not include works that remain separable from,
+or merely link (or bind by name) to the interfaces of, the Work and
+Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original
+version of the Work and any modifications or additions to that Work or
+Derivative Works thereof, that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or
+Legal Entity authorized to submit on behalf of the copyright owner.
+For the purposes of this definition, "submitted" means any form of
+electronic, verbal, or written communication sent to the Licensor or
+its representatives, including but not limited to communication on
+electronic mailing lists, source code control systems, and issue
+tracking systems that are managed by, or on behalf of, the Licensor
+for the purpose of discussing and improving the Work, but excluding
+communication that is conspicuously marked or otherwise designated
+in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies
+with the standards set forth in the Compatibility Definition Document
+and passes the Compatibility Test Suite as defined from time to time
+by the Tizen Technical Steering Group and certified by the Tizen
+Association or its designated agent.
+
+2. Grant of Copyright License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work
+solely as incorporated into a Tizen Certified Platform, where such
+license applies only to those patent claims licensable by such
+Contributor that are necessarily infringed by their Contribution(s)
+alone or by combination of their Contribution(s) with the Work solely
+as incorporated into a Tizen Certified Platform to which such
+Contribution(s) was submitted. If You institute patent litigation
+against any entity (including a cross-claim or counterclaim
+in a lawsuit) alleging that the Work or a Contribution incorporated
+within the Work constitutes direct or contributory patent infringement,
+then any patent licenses granted to You under this License for that
+Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.  You may reproduce and distribute copies of the
+Work or Derivative Works thereof pursuant to the copyright license
+above, in any medium, with or without modifications, and in Source or
+Object form, provided that You meet the following conditions:
+
+  1. You must give any other recipients of the Work or Derivative Works
+     a copy of this License; and
+  2. You must cause any modified files to carry prominent notices stating
+     that You changed the files; and
+  3. You must retain, in the Source form of any Derivative Works that
+     You distribute, all copyright, patent, trademark, and attribution
+     notices from the Source form of the Work, excluding those notices
+     that do not pertain to any part of the Derivative Works; and
+  4. If the Work includes a "NOTICE" text file as part of its distribution,
+     then any Derivative Works that You distribute must include a readable
+     copy of the attribution notices contained within such NOTICE file,
+     excluding those notices that do not pertain to any part of
+     the Derivative Works, in at least one of the following places:
+     within a NOTICE text file distributed as part of the Derivative Works;
+     within the Source form or documentation, if provided along with the
+     Derivative Works; or, within a display generated by the Derivative Works,
+     if and wherever such third-party notices normally appear.
+     The contents of the NOTICE file are for informational purposes only
+     and do not modify the License.
+
+You may add Your own attribution notices within Derivative Works
+that You distribute, alongside or as an addendum to the NOTICE text
+from the Work, provided that such additional attribution notices
+cannot be construed as modifying the License. You may add Your own
+copyright statement to Your modifications and may provide additional or
+different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works
+as a whole, provided Your use, reproduction, and distribution of
+the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks.  This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Flora License, Version 1.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://floralicense.org/license/
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/NOTICE b/NOTICE
new file mode 100644 (file)
index 0000000..9ec42be
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,3 @@
+Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Flora License, Version 1.
+Please, see the LICENSE.Flora file for Flora License, Version 1 terms and conditions.
\ No newline at end of file
diff --git a/inc/VpFormFactory.h b/inc/VpFormFactory.h
new file mode 100644 (file)
index 0000000..3f59110
--- /dev/null
@@ -0,0 +1,38 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpFormFactory.h
+ * @brief              This is the header file for VideoPlayerFormFactory class.
+ */
+
+#ifndef _VP_FORM_FACTORY_H_
+#define _VP_FORM_FACTORY_H_
+
+#include <FUi.h>
+
+class FormFactory
+       : public Tizen::Ui::Scenes::IFormFactory
+{
+public:
+       FormFactory(void);
+       virtual ~FormFactory(void);
+
+       virtual Tizen::Ui::Controls::Form* CreateFormN(const Tizen::Base::String& formId,
+                       const Tizen::Ui::Scenes::SceneId& sceneId);
+};
+
+#endif // _VP_FORM_FACTORY_H_
diff --git a/inc/VpIVideoPlayerEventListener.h b/inc/VpIVideoPlayerEventListener.h
new file mode 100644 (file)
index 0000000..0b3f193
--- /dev/null
@@ -0,0 +1,44 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpIVideoPlayerEventListener.h
+ * @brief              This is the header file for VideoPlayerEventListener class.
+ */
+
+#ifndef _VP_IVIDEO_PLAYER_EVENT_LISTENER_H_
+#define _VP_IVIDEO_PLAYER_EVENT_LISTENER_H_
+
+class IVideoPlayerEventListener
+{
+public:
+       virtual ~IVideoPlayerEventListener(void){}
+
+       virtual void OnPlayOpened(result r) = 0;
+       virtual void OnPlayEndOfClip(void) = 0;
+       virtual void OnPlayBuffering(int percent) = 0;
+       virtual void OnPlayErrorOccurred(Tizen::Media::PlayerErrorReason r) = 0;
+       virtual void OnPlayInterrupted(void) = 0;
+       virtual void OnPlayReleased(void) = 0;
+       virtual void OnPlayContentChanged(const Tizen::Base::String& fileName) = 0;
+       virtual void OnPlayTimeChanged(int currentProgressPos, Tizen::Base::String& currentPlayTime) = 0;
+       virtual void OnPlayStateChanged(Tizen::Media::PlayerState playState) = 0;
+       virtual void OnVideoFrameDecoded(Tizen::Media::Player& src,
+                       Tizen::Graphics::BitmapPixelFormat bitmapPixelFormat, const Tizen::Graphics::Dimension& dim,
+                       const byte* pBuffer, int sizeOfBuffer, result r) = 0;
+};
+
+#endif // _VP_IVIDEO_PLAYER_EVENT_LISTENER_H_
diff --git a/inc/VpMainFrame.h b/inc/VpMainFrame.h
new file mode 100644 (file)
index 0000000..af5efec
--- /dev/null
@@ -0,0 +1,44 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpMainFrame.h
+ * @brief              This is the header file for MainFrame class.
+ */
+
+#ifndef _VP_MAIN_FRAME_H_
+#define _VP_MAIN_FRAME_H_
+
+#include <FBase.h>
+#include <FUi.h>
+
+class MainFrame
+       : public Tizen::Ui::Controls::Frame
+       , public Tizen::Ui::Controls::IFrameEventListener
+{
+public:
+       MainFrame(void);
+       virtual ~MainFrame(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnFrameActivated(const Tizen::Ui::Controls::Frame& source);
+       virtual void OnFrameDeactivated(const Tizen::Ui::Controls::Frame& source);
+       virtual void OnFrameTerminating(const Tizen::Ui::Controls::Frame& source);
+};
+
+#endif // _VP_MAIN_FRAME_H_
diff --git a/inc/VpSoundPathPopup.h b/inc/VpSoundPathPopup.h
new file mode 100644 (file)
index 0000000..4137ddc
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpSoundPathPopup.h
+ * @brief              This is the header file for SoundPathPopup class.
+ */
+
+#ifndef _VP_SOUND_PATH_POPUP_H_
+#define _VP_SOUND_PATH_POPUP_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FUi.h>
+
+class SoundPathPopup
+       : public Tizen::Ui::Controls::Popup
+       , public Tizen::Ui::IActionEventListener
+{
+public:
+       SoundPathPopup(void);
+       virtual ~SoundPathPopup(void);
+
+       result Construct(int currentOutputDevice, Tizen::Base::String bluetoothA2dpName, int audioRouteMode);
+       void ShowPopup(bool state);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+       virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
+private:
+       enum AudioRouteMode
+       {
+               AUDIO_ROUTE_SPEAKER_ONLY,
+               AUDIO_ROUTE_BT_A2DP_AND_SPEAKER,
+               AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER,
+               AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY
+       };
+
+       Tizen::Ui::Controls::Button* __pCloseButton;
+       Tizen::Ui::Controls::CheckButton* __pCheckButton1st;
+       Tizen::Ui::Controls::CheckButton* __pCheckButton2nd;
+       int __audioRouteMode;
+};
+
+#endif // _VP_SOUND_PATH_POPUP_H_
diff --git a/inc/VpTypes.h b/inc/VpTypes.h
new file mode 100644 (file)
index 0000000..7574ab7
--- /dev/null
@@ -0,0 +1,59 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpTypes.h
+ * @brief              This is the header file for Types definition.
+ */
+
+#ifndef _VP_TYPES_H_
+#define _VP_TYPES_H_
+
+enum ActionId
+{
+       IDA_BUTTON_CHECK1ST_CHECKED = 101,
+       IDA_BUTTON_CHECK1ST_UNCHECKED = 102,
+       IDA_BUTTON_CHECK2ND_CHECKED = 103,
+       IDA_BUTTON_CHECK2ND_UNCHECKED = 104,
+       IDA_BUTTON_CLOSE = 105,
+       IDA_BUTTON_PLAY = 201,
+       IDA_BUTTON_PAUSE = 202,
+       IDA_BUTTON_FULLSCREEN = 203,
+       IDA_BUTTON_FASTREWIND = 204,
+       IDA_BUTTON_FASTFORWARD = 205,
+       IDA_BUTTON_SOUNDPATH = 206,
+       IDA_BUTTON_BACK = 207,
+};
+
+extern const wchar_t* IDSCN_VIDEO_PLAYER;
+
+extern const wchar_t* IDC_VIDEO_PLAYER_FORM;
+
+extern const wchar_t* APPCONTROL_OPERATION_ID_PLAY;
+extern const wchar_t* APPCONTROL_OPERATION_ID_VIEW;
+extern const wchar_t* APPCONTROL_OPERATION_ID_CONFIGURE;
+extern const wchar_t* APPCONTROL_OPERATION_ID_MAIN;
+
+extern const wchar_t* APPCONTROL_KEY_PATH;
+extern const wchar_t* APPCONTROL_KEY_LEGACY_RESULT;
+
+extern const wchar_t* IDS_COM_HEADER_AUDIO_DEVICE_ABB;
+extern const wchar_t* IDS_COM_OPT_SPEAKER_ABB;
+extern const wchar_t* IDS_COM_OPT_HEADPHONES_ABB;
+extern const wchar_t* IDS_COM_POP_CLOSE;
+extern const wchar_t* IDS_COM_POP_UNSUPPORTED_FILE_TYPE;
+
+#endif // _VP_TYPES_H_
diff --git a/inc/VpVideoPlayerApp.h b/inc/VpVideoPlayerApp.h
new file mode 100644 (file)
index 0000000..043b874
--- /dev/null
@@ -0,0 +1,70 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpVideoPlayerApp.h
+ * @brief              This is the header file for VideoPlayerApp class.
+ */
+
+#ifndef _VP_VIDEO_PLAYER_APP_H_
+#define _VP_VIDEO_PLAYER_APP_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FSystem.h>
+#include <FUi.h>
+
+class VideoPlayerApp
+       : public Tizen::App::UiApp
+       , public Tizen::App::IAppControlProviderEventListener
+       , public Tizen::System::IChargingEventListener
+       , public Tizen::System::ISettingEventListener
+{
+public:
+       VideoPlayerApp(void);
+       virtual ~VideoPlayerApp(void);
+
+       static Tizen::App::UiApp* CreateInstance(void);
+
+       Tizen::Base::String GetAppControlOperationId(void) const;
+       Tizen::Base::String GetUriData(void) const;
+       const Tizen::Base::Collection::IMap* GetAppControlArguments(void) const;
+
+       virtual bool OnAppInitializing(Tizen::App::AppRegistry& appRegistry);
+       virtual bool OnAppInitialized(void);
+       virtual bool OnAppTerminating(Tizen::App::AppRegistry& appRegistry, bool forcedTermination = false);
+
+       virtual void OnBatteryLevelChanged(Tizen::System::BatteryLevel batteryLevel);
+
+       virtual void OnChargingStateChanged(bool charging);
+
+       virtual void OnAppControlRequestReceived(RequestId reqId, const Tizen::Base::String& operationId,
+                                               const Tizen::Base::String* pUriData, const Tizen::Base::String* pMimeType,
+                                               const Tizen::Base::Collection::IMap* pExtraData);
+
+       virtual void OnSettingChanged(Tizen::Base::String& key);
+
+       const Tizen::Base::String* GetArgument(const Tizen::Base::String& key) const;
+
+private:
+       RequestId __requestID;
+       Tizen::Base::String __operationID;
+       Tizen::Base::String __uriData;
+       Tizen::App::AppCtrlResult __appControlResult;
+       Tizen::Base::Collection::HashMap* __pArguments;
+};
+
+#endif // _VP_VIDEO_PLAYER_APP_H_
diff --git a/inc/VpVideoPlayerForm.h b/inc/VpVideoPlayerForm.h
new file mode 100644 (file)
index 0000000..17b69e6
--- /dev/null
@@ -0,0 +1,191 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpVideoPlayerForm.h
+ * @brief              This is the header file for VideoPlayerForm class.
+ */
+
+#ifndef _VP_MAIN_FORM_H_
+#define _VP_MAIN_FORM_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FMedia.h>
+#include <FMediaAudioRouteInfo.h>
+#include <FMediaAudioRouteManager.h>
+#include <FMediaIAudioRouteEventListener.h>
+#include <FUi.h>
+#include "VpIVideoPlayerEventListener.h"
+
+class SoundPathPopup;
+class VideoPlayerPresentationModel;
+
+class VideoPlayerForm
+       : public Tizen::Ui::Controls::Form
+       , public Tizen::Base::Runtime::ITimerEventListener
+       , public Tizen::Media::IAudioRouteEventListener
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IAdjustmentEventListener
+       , public Tizen::Ui::IKeyEventListener
+       , public Tizen::Ui::IOrientationEventListener
+       , public Tizen::Ui::ITouchEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IVideoPlayerEventListener
+{
+public:
+       VideoPlayerForm(void);
+       virtual ~VideoPlayerForm(void);
+
+       void Initialize(void);
+
+       void CancelTimerByFrameDeactivated(void);
+       void ShowControlByFrameActivated(void);
+
+       result SetActiveAudioRoute(const Tizen::Media::AudioRouteInfo& route);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
+
+       virtual void OnActiveAudioRouteChanged(const Tizen::Media::AudioRouteInfo& route);
+       virtual void OnAudioRouteAdded(const Tizen::Media::AudioRouteInfo& route);
+       virtual void OnAudioRouteRemoved(const Tizen::Media::AudioRouteInfo& route);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnAdjustmentValueChanged(const Tizen::Ui::Control& source, int adjustment);
+
+       virtual void OnKeyPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
+       virtual void OnKeyReleased(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
+       virtual void OnKeyLongPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
+
+       virtual void OnOrientationChanged(const Tizen::Ui::Control& source,
+                       Tizen::Ui::OrientationStatus orientationStatus);
+
+       virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo);
+       virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo);
+       virtual void OnTouchLongPressed(const Tizen::Ui::Control& source,
+                       const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+       virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo);
+       virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo);
+       virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo);
+
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+       virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+                       const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+       virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+                       const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+       virtual void OnPlayOpened(result r);
+       virtual void OnPlayEndOfClip(void);
+       virtual void OnPlayBuffering(int percent);
+       virtual void OnPlayErrorOccurred(Tizen::Media::PlayerErrorReason r);
+       virtual void OnPlayInterrupted(void);
+       virtual void OnPlayReleased(void);
+       virtual void OnPlayContentChanged(const Tizen::Base::String& fileName);
+       virtual void OnPlayTimeChanged(int currentProgressPos, Tizen::Base::String& currentPlayTime);
+       virtual void OnPlayStateChanged(Tizen::Media::PlayerState playState);
+       virtual void OnVideoFrameDecoded(Tizen::Media::Player& src,
+                       Tizen::Graphics::BitmapPixelFormat bitmapPixelFormat, const Tizen::Graphics::Dimension& dim,
+                       const byte* pBuffer, int sizeOfBuffer, result r);
+
+       virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
+private:
+       enum ScreenMode
+       {
+               SCREEN_MODE_NORMAL = 0,
+               SCREEN_MODE_FULL,
+               SCREEN_MODE_FIT
+       };
+
+       enum AudioRouteMode
+       {
+               AUDIO_ROUTE_SPEAKER_ONLY,
+               AUDIO_ROUTE_BT_A2DP_AND_SPEAKER,
+               AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER,
+               AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY
+       };
+
+       enum AvailableAudioRoute
+       {
+               OUTPUT_AUDIO_ROUTE_NONE,
+               OUTPUT_AUDIO_ROUTE_SPEAKER,
+               OUTPUT_AUDIO_ROUTE_RECEIVER,
+               OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY,
+               OUTPUT_AUDIO_ROUTE_BT_SCO,
+               OUTPUT_AUDIO_ROUTE_BT_A2DP,
+               OUTPUT_AUDIO_ROUTE_MAX
+       };
+
+       friend void DestroyPresentationModelInstance(void);
+       result SetScreenMode(const ScreenMode mode);
+       Tizen::Ui::Controls::OverlayRegion* GetOverlayRegion(void);
+       void UpdateProgressBar(const int currentPlayTime);
+       void InitTimer(void);
+       void ChangedControlPos(void);
+       void DeleteTimer(void);
+       void GetTotalTime(Tizen::Base::String& totalTime);
+       void PlayerSoundPathPopupInit(void);
+       result SetPlayPauseButtonImage(Tizen::Media::PlayerState playState);
+       void CreateMessageBox(const Tizen::Base::String& title, const Tizen::Base::String& message,
+                       Tizen::Ui::Controls::MessageBoxStyle style = Tizen::Ui::Controls::MSGBOX_STYLE_OK,
+                       unsigned long timeout = 0);
+       void ShowControl(bool setShow);
+       void CheckCallStatus(void);
+       void CheckLowBatteryStatus(void);
+       void InitAudioRouteList(void);
+
+private:
+       Tizen::Ui::Controls::OverlayRegion* __pOverlayRegion;
+       ScreenMode __screenMode;
+       SoundPathPopup* __pSoundPathPopup;
+       Tizen::Base::Runtime::Timer* __pUiControlTimer;
+       Tizen::Media::AudioRouteManager* __pAudioRouteManager;
+       Tizen::Media::AudioSessionManager* __pAudioSessionManager;
+       Tizen::Ui::Controls::Button* __pPlayPauseButton;
+       Tizen::Ui::Controls::Button* __pFastForwardButton;
+       Tizen::Ui::Controls::Button* __pFastRewindButton;
+       Tizen::Ui::Controls::Button* __pBackButton;
+       Tizen::Ui::Controls::ButtonItem* __pButtonLeftItem;
+       Tizen::Ui::Controls::ButtonItem* __pButtonRightItem;
+       Tizen::Ui::Controls::Header* __pHeader;
+       Tizen::Ui::Controls::Label* __pControlLabel;
+       Tizen::Ui::Controls::Label* __pCurrenTimeLabel;
+       Tizen::Ui::Controls::Label* __pFirstLineLabel;
+       Tizen::Ui::Controls::Label* __pTotalTimeLabel;
+       Tizen::Ui::Controls::Label* __pVerticalLeftLine;
+       Tizen::Ui::Controls::Label* __pVerticalRightLine;
+       Tizen::Ui::Controls::Slider* __pSlider;
+       bool __actionTouchLongPressed;
+       bool __setPauseState;
+       bool __isControlVisibleState;
+       bool __availableAudioRoute[OUTPUT_AUDIO_ROUTE_MAX];
+       int __audioRouteMode;
+       VideoPlayerPresentationModel* __pVideoPlayerPresentationModel;
+};
+
+#endif // _VP_MAIN_FORM_H_
\ No newline at end of file
diff --git a/inc/VpVideoPlayerPresentationModel.h b/inc/VpVideoPlayerPresentationModel.h
new file mode 100644 (file)
index 0000000..d045df1
--- /dev/null
@@ -0,0 +1,122 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpVideoPlayerPresentationModel.h
+ * @brief              This is the header file for PresentationModel class.
+ */
+
+#ifndef _VP_VIDEO_PLAYER_PRESENTATION_MODEL_H_
+#define _VP_VIDEO_PLAYER_PRESENTATION_MODEL_H_
+
+#include <FApp.h>
+#include <FContent.h>
+#include <FGraphics.h>
+#include <FMedia.h>
+#include <FUi.h>
+#include "VpIVideoPlayerEventListener.h"
+
+class VideoPlayerPresentationModel
+       : public Tizen::Base::Runtime::ITimerEventListener
+       , public Tizen::Media::IPlayerEventListener
+       , public Tizen::Media::IPlayerVideoEventListener
+{
+public:
+       static VideoPlayerPresentationModel* GetInstance(void);
+
+public:
+       result StartPlay(void);
+       result StopPlay(void);
+       result PausePlay(void);
+       result ClosePlay(void);
+
+       void Forward(void);
+       void Rewind(void);
+       void FastForward(bool playAfterSeek);
+       void FastRewind(bool playAfterSeek);
+       void StopFastForwardRewind(void);
+
+       Tizen::Graphics::Rectangle GetVideoInfoN(const Tizen::Base::String& mediaLocalPath);
+       Tizen::Media::PlayerState GetState(void) const;
+       long GetDuration(void) const;
+       long GetPosition(void) const;
+       result SeekTo(long msTime);
+
+       void SetVideoPlayerEventListener(IVideoPlayerEventListener* pPlayerListener);
+       void SetOverlayRegion(Tizen::Ui::Controls::OverlayRegion* pOverlay);
+       void SetPlayerBuffer(const Tizen::Graphics::BufferInfo& bufferInfo);
+       Tizen::Base::String GetMediaPathName(void) const;
+       int GetMediaCount(void) const;
+       int GetCurrentMediaIndex(void) const;
+       void SetCurrentMediaIndex(void);
+       result InitializePlayer(void);
+
+       result ConstructPlayerInstanceWithBufferInfo(void);
+
+       virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
+
+       virtual void OnPlayerAudioFocusChanged(void);
+       virtual void OnPlayerOpened(result r);
+       virtual void OnPlayerEndOfClip(void);
+       virtual void OnPlayerBuffering(int percent);
+       virtual void OnPlayerErrorOccurred(Tizen::Media::PlayerErrorReason r);
+       virtual void OnPlayerInterrupted(void);
+       virtual void OnPlayerReleased(void);
+       virtual void OnPlayerSeekCompleted(result r);
+
+       virtual void OnVideoFrameDecoded(Tizen::Media::Player& src,
+                       Tizen::Graphics::BitmapPixelFormat bitmapPixelFormat, const Tizen::Graphics::Dimension& dim,
+                       const byte* pBuffer, int sizeOfBuffer, result r);
+
+private:
+       VideoPlayerPresentationModel(void);
+       virtual ~VideoPlayerPresentationModel(void);
+       VideoPlayerPresentationModel(const VideoPlayerPresentationModel&);
+       VideoPlayerPresentationModel& operator = (const VideoPlayerPresentationModel&);
+
+       result Construct(void);
+       static void CreateInstance(void);
+       static void DestroyInstance(void);
+
+       void InitTimer(void);
+       void DeleteTimer(void);
+
+       void CallOnPlayContentChanged(const Tizen::Base::String& fileName);
+       void CallOnPlayTimeChanged(int currentProgressPos, Tizen::Base::String& currentPlayTime);
+       void CallOnPlayStateChanged(Tizen::Media::PlayerState playState);
+
+       friend void DestroyPresentationModelInstance(void);
+
+private:
+       static VideoPlayerPresentationModel* __pVideoPlayerPresentationModel;
+       Tizen::Media::Player* __pPlayer;
+       IVideoPlayerEventListener* __pVideoPlayerEventListener;
+       Tizen::Ui::Controls::OverlayRegion* __pOverlayRegion;
+       Tizen::Base::Collection::ArrayList* __pMediaPathArrayList;
+       Tizen::Base::Runtime::Timer* __pTimer;
+       Tizen::Base::Runtime::Timer* __pFastForwardTimer;
+       Tizen::Base::Runtime::Timer* __pFastRewindTimer;
+       Tizen::Base::String __mediaPathName;
+       bool __playerSeekCompleted;
+       bool __playerLastSeekCompleted;
+       bool __playAfterSeek;
+       int __mediaWidth;
+       int __mediaHeight;
+       bool __isPlayerSeekInProgress;
+       int __currentMediaIndex;
+};
+
+#endif // _VP_VIDEO_PLAYER_PRESENTATION_MODEL_H_
diff --git a/inc/VpVolumeSettingPopup.h b/inc/VpVolumeSettingPopup.h
new file mode 100644 (file)
index 0000000..a51343a
--- /dev/null
@@ -0,0 +1,80 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpVolumeSettingPopup.h
+ * @brief              This is the header file for VolumeSettingPopup class.
+ */
+
+#ifndef _VP_VOLUME_SETTING_POPUP_H_
+#define _VP_VOLUME_SETTING_POPUP_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FUi.h>
+
+class VolumeSettingPopup
+       : public Tizen::Ui::Controls::Popup
+       , public Tizen::Base::Runtime::ITimerEventListener
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IAdjustmentEventListener
+       , public Tizen::Ui::IKeyEventListener
+       , public Tizen::Ui::ITouchEventListener
+       , public Tizen::Ui::Controls::ISliderEventListener
+{
+public:
+       VolumeSettingPopup(void);
+       ~VolumeSettingPopup(void);
+
+       result Construct(void);
+       void ShowPopup(bool state);
+       void HidePopup(bool state);
+
+       virtual void OnTimerExpired (Tizen::Base::Runtime::Timer &timer);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnAdjustmentValueChanged(const Tizen::Ui::Control& source, int adjustment);
+
+       virtual void OnKeyPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
+       virtual void OnKeyReleased(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
+       virtual void OnKeyLongPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
+
+       virtual void OnTouchDoublePressed(const Tizen::Ui::Control& source,
+                       const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
+       virtual void OnTouchLongPressed(const Tizen::Ui::Control& source,
+                       const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
+       virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo){}
+       virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo){}
+       virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo){}
+       virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo);
+       virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition,
+                       const Tizen::Ui::TouchEventInfo& touchInfo);
+
+       virtual void OnSliderBarMoved(Tizen::Ui::Controls::Slider& source, int value);
+
+private:
+       Tizen::Ui::Controls::Slider* __pVolumeSettingSlider;
+       Tizen::Base::Runtime::Timer* __pCloseTimer;
+       Tizen::Base::Runtime::Timer* __pVolumeSliderTimer;
+       int __volumeLevel;
+};
+
+#endif // _VP_VOLUME_SETTING_POPUP_H_
diff --git a/manifest.xml b/manifest.xml
new file mode 100644 (file)
index 0000000..f527457
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<Manifest xmlns="http://schemas.tizen.org/2012/12/manifest">
+    <Id>npwf0scb88</Id>
+    <Version>1.0.0</Version>
+    <Type>C++App</Type>
+    <Requirements/>
+    <Apps>
+        <ApiVersion>2.0</ApiVersion>
+        <Secret/>
+        <Privileges>
+            <Privilege>http://tizen.org/privilege/audiomanager.session</Privilege>
+            <Privilege>http://tizen.org/privilege/alarm</Privilege>
+            <Privilege>http://tizen.org/privilege/power</Privilege>
+            <Privilege>http://tizen.org/privilege/setting</Privilege>
+            <Privilege>http://tizen.org/privilege/audiomanager.route</Privilege>
+        </Privileges>
+        <UiApp Main="True" MenuIconVisible="False" Name="VideoPlayer" HwAcceleration="Off" SubMode="True">
+            <UiScalability BaseScreenSize="Normal" CoordinateSystem="Logical" LogicalCoordinate="720"/>
+            <UiTheme SystemTheme="White"/>
+            <Names>
+                <Name Locale="eng-GB">VideoPlayer-Ref</Name>
+            </Names>
+            <Icons>
+                <Icon Section="MainMenu" Type="Xhigh">mainmenu.png</Icon>
+            </Icons>
+            <AppControls>
+                <AppControl Category="osp.appcontrol.category.none" ProviderId="http://tizen.org/appcontrol/provider/video">
+                    <Capability OperationId="http://tizen.org/appcontrol/operation/play">
+                        <Resolution MimeType="video/*"/>
+                    </Capability>
+                    <Capability OperationId="http://tizen.org/appcontrol/operation/view">
+                        <Resolution MimeType="video/*"/>
+                    </Capability>
+                    <Capability OperationId="http://tizen.org/appcontrol/operation/configure">
+                        <Resolution MimeType="" UriScheme=""/>
+                    </Capability>
+                </AppControl>
+            </AppControls>
+            <LaunchConditions/>
+            <Notifications/>
+        </UiApp>
+    </Apps>
+</Manifest>
diff --git a/packaging/apps.VideoPlayer.spec b/packaging/apps.VideoPlayer.spec
new file mode 100755 (executable)
index 0000000..b760b0a
--- /dev/null
@@ -0,0 +1,65 @@
+Name:       apps.VideoPlayer
+Summary:    VideoPlayer application
+Version:    1.0.0
+Release:    1
+Group:      TO_BE/FILLED_IN
+License:    TO BE FILLED IN
+Source0:    %{name}-%{version}.tar.gz
+BuildRequires:  cmake
+BuildRequires:  pkgconfig(osp-appfw)
+BuildRequires:  pkgconfig(osp-uifw)
+BuildRequires:  osp-appfw-internal-devel
+BuildRequires:  osp-uifw-internal-devel
+BuildRequires:  pkgconfig(osp-uifw)
+BuildRequires:  osp-uifw-internal-devel
+BuildRequires:  pkgconfig(osp-media)
+BuildRequires:  osp-media-internal-devel
+BuildRequires:  pkgconfig(osp-image)
+BuildRequires:  osp-image-internal-devel
+BuildRequires:  pkgconfig(osp-image-core)
+BuildRequires:  pkgconfig(osp-net)
+BuildRequires:  osp-net-internal-devel
+BuildRequires:  pkgconfig(osp-content)
+BuildRequires:  pkgconfig(osp-bluetooth)
+BuildRequires:  pkgconfig(osp-locations)
+BuildRequires:  pkgconfig(osp-telephony)
+
+Requires: osp-installer
+
+%description
+Verification application: VideoPlayer
+
+%prep
+%setup -q
+
+%build
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%ifarch %{ix86}
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%else
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_ARMEL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%endif
+
+# Call make instruction with smp support
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+%post
+/sbin/ldconfig
+PKG_ID=npwf0scb88
+echo "/usr/etc/package-manager/backend/tpk -i /usr/apps/"${PKG_ID}
+/usr/etc/package-manager/backend/tpk -i /usr/apps/${PKG_ID}
+cp -f /usr/lib/osp/osp-ui-app-loader /usr/apps/${PKG_ID}/bin/VideoPlayer
+
+%postun
+/sbin/ldconfig
+PKG_ID=npwf0scb88
+echo "/usr/etc/package-manager/backend/tpk -u "${PKG_ID}
+/usr/etc/package-manager/backend/tpk -u ${PKG_ID}
+
+%files
+%defattr(-,root,root,-)
+/usr/apps/*
diff --git a/res/ara-AE.xml b/res/ara-AE.xml
new file mode 100644 (file)
index 0000000..d16812c
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">يتعذر التشغيل. حزمة غير صالحة من الخادم</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">جهاز صوت</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">سماعات رأس</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">تنسيق فيديو غير معتمد</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">مسار صوتي</text>
+    <text id="IDS_COM_POP_CLOSE">إغلاق</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">تعذر تشغيل الفيديو. حدث خطأ</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">يتعذر تشغيل الصوت أثناء المكالمة</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">نوع ملف غير مدعوم</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">يتعذر تشغيل ملف DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">إصدار DivX DRM غير مدعم</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">مجهر الصوت</text>
+    <text id="IDS_VPL_POP_LOADING_ING">جاري التحميل ...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">نفذت الذاكرة</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">غير قادر على التوصيل</text>
+    <text id="IDS_VPL_SK3_TRIM">تهذيب</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">تنسيق صوتي غير مدعم</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">نوع ملف غير مدعوم</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">تعذر تشغيل الفيديو. تدفق البيانات غير صالح</text>
+    <text id="IDS_VPL_TAB_RECORDED">الفيديو المسجل</text>
+    <text id="IDS_COM_BODY_CLOSE">إغلاق</text>
+</string_table>
diff --git a/res/aze-AZ.xml b/res/aze-AZ.xml
new file mode 100644 (file)
index 0000000..f631a83
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Göstərmək mümkün deyil. Serverdən səhv paket daxil olub</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audio cihaz</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Qulaqlıqlar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Video formatı dəstəklənmir</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audio fayl</text>
+    <text id="IDS_COM_POP_CLOSE">Bağla</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Videonu göstərmək mümkün deyil. Səhv baş verdi</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Zəng zamanı videonu göstərmək mümkün deyildir</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Dəstəklənməyən fayl tipi</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM faylı çaldırmaq mümkün deyil</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Dəstəklənməyən DivX DRM versiyası</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Dinamik</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Yüklənir...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Yaddaşlardan kənar</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Qoşulmaq mümkün deyil</text>
+    <text id="IDS_VPL_SK3_TRIM">Kəsin</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Dəstəkləməyən audio format</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Dəytəklənməyən\nfayl tipi</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Videonu göstərmək mümkün deyil. Axın məlumatları səhvdir</text>
+    <text id="IDS_VPL_TAB_RECORDED">Yazıldı</text>
+    <text id="IDS_COM_BODY_CLOSE">Bağla</text>
+</string_table>
diff --git a/res/bul-BG.xml b/res/bul-BG.xml
new file mode 100644 (file)
index 0000000..3eac7ca
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Не може да се възпроизведе. Невалиден пакет от сървъра</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Аудио устройство</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Слушалки</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Неподдържан формат на видео</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Аудио запис</text>
+    <text id="IDS_COM_POP_CLOSE">Затваряне</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Не може да се възпроизведе видео. Възникна грешка</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Не може да се възпроизвежда видео по време на разговор</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Неподдържан тип файл</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Не може да се възпроизведе файл с DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Неподдържана версия на DivX DRM</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Високогов</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Зареждане</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Няма памет</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Не може да се свърже</text>
+    <text id="IDS_VPL_SK3_TRIM">Орязване</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Неподдържан аудио формат</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Неразпознат тип\nфайл</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Не може да се възпроизведе видео. Невалидни поточни данни</text>
+    <text id="IDS_VPL_TAB_RECORDED">Записани</text>
+    <text id="IDS_COM_BODY_CLOSE">Затваряне</text>
+</string_table>
diff --git a/res/cat-ES.xml b/res/cat-ES.xml
new file mode 100644 (file)
index 0000000..bac4531
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">No es pot reproduir. Paquet no vàlid del servidor</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Dispositiu d’àudio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Auriculars</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Format de vídeo no compatible</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Pista d'àudio</text>
+    <text id="IDS_COM_POP_CLOSE">Tancar</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">No es pot reproduir el vídeo. S'ha produït un error</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">No es pot reproduir un vídeo durant una trucada</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">No s'admet el tipus de fitxer</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">No es pot reproduir el fitxer DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Versió DivX DRM no admesa</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Altaveu</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Carregant...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Sense memòries</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">No es pot connectar</text>
+    <text id="IDS_VPL_SK3_TRIM">Retallar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Format d'àudio no compatible</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">No s'admet el\ntipus de fitxer</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">No es pot reproduir el vídeo. Dades de reproducció streaming no vàlides</text>
+    <text id="IDS_VPL_TAB_RECORDED">Gravat</text>
+    <text id="IDS_COM_BODY_CLOSE">Tancar</text>
+</string_table>
diff --git a/res/ces-CZ.xml b/res/ces-CZ.xml
new file mode 100644 (file)
index 0000000..e7f0520
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Nelze přehrát. Neplatný paket ze serveru</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Zvukové zařízení</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Sluchátka</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Nepodporovaný formát videa</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Zvukový záznam</text>
+    <text id="IDS_COM_POP_CLOSE">Zavřít</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Nelze přehrát videoklip. Došlo k chybě</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Během hovoru nelze přehrát videoklip</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Nepodporovaný typ souboru</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Soubor DRM nelze přehrát</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Nepodporovaná verze DivX DRM</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Reprod.</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Nahrávám...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Nedostatek paměti</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Nelze se připojit</text>
+    <text id="IDS_VPL_SK3_TRIM">Zkrátit</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Nepodporovaný zvukový formát</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Nepodporovaný\ntyp souboru</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Nelze přehrát videoklip. Neplatný datový proud</text>
+    <text id="IDS_VPL_TAB_RECORDED">Nahrané</text>
+    <text id="IDS_COM_BODY_CLOSE">Zavřít</text>
+</string_table>
diff --git a/res/dan-DK.xml b/res/dan-DK.xml
new file mode 100644 (file)
index 0000000..4f1b9b4
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Kan ikke afspille. Ugyldig pakke fra server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Lydenhed</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Høretelefoner</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Ikke-understøttet videoformat</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Lydspor</text>
+    <text id="IDS_COM_POP_CLOSE">Luk</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Kunne ikke afspille videoen. Der opstod en fejl</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Kunne ikke afspille videoen under opkaldet</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Filtype understøttes ikke</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM-fil kan ikke afspilles</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Ikke-understøttet DivX DRM-version</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Højtaler</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Indlæser data ...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Hukommelsen er fuld</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Der kan ikke oprettes forbindelse</text>
+    <text id="IDS_VPL_SK3_TRIM">Beskær</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Ikke-understøttet lydformat</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Filtype\nunderstøttes ikke</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Kunne ikke afspille videoen. Ugyldige streaming-data</text>
+    <text id="IDS_VPL_TAB_RECORDED">Optaget</text>
+    <text id="IDS_COM_BODY_CLOSE">Luk</text>
+</string_table>
diff --git a/res/deu-DE.xml b/res/deu-DE.xml
new file mode 100644 (file)
index 0000000..c0800d7
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Wiedergabe nicht möglich. Ungültiges Paket vom Server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audiogerät</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Kopfhörer</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Nicht unterstütztes Videoformat</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audiotitel</text>
+    <text id="IDS_COM_POP_CLOSE">Schließen</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Video kann nicht wiedergegeben werden. Fehler aufgetreten.</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Video kann während eines Anrufs nicht wiedergegeben werden</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Nicht unterstützter Dateityp</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM-Datei kann nicht wiedergegeben werden</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Nicht unterstützte DivX® DRM-Version</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Lautspr.</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Lädt...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Kein Speicher mehr</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Verbinden nicht möglich</text>
+    <text id="IDS_VPL_SK3_TRIM">Zuschneiden</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Nicht unterstütztes Audioformat</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Dateityp\nnicht unterstützt</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Video kann nicht wiedergegeben werden. Ungültige Streamingdaten</text>
+    <text id="IDS_VPL_TAB_RECORDED">Aufgenommen</text>
+    <text id="IDS_COM_BODY_CLOSE">Schließen</text>
+</string_table>
diff --git a/res/ell-GR.xml b/res/ell-GR.xml
new file mode 100644 (file)
index 0000000..23789b0
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Δεν είναι δυνατή η αναπαραγωγή. Μη έγκυρο πακέτο από διακομιστή</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Συσκευή ήχου</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Ακουστικά</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Μη υποστηριζόμενη μορφή βίντεο</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Ηχητικό κομμάτι</text>
+    <text id="IDS_COM_POP_CLOSE">Κλείσιμο</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Δεν είναι δυνατή η αναπαραγωγή βίντεο. Προέκυψε σφάλμα</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Δεν είναι δυνατή η αναπαραγωγή βίντεο κατά την κλήση</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Μη υποστηριζόμενος τύπος αρχείου</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Δεν είναι δυνατή η αναπαραγωγή του αρχείου DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Μη υποστηριζόμενη έκδοση DivX DRM</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Ηχείο</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Φόρτωση...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Η μνήμη εξαντλήθηκε</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Δεν είναι δυνατή η σύνδεση</text>
+    <text id="IDS_VPL_SK3_TRIM">Ξάκρισμα</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Μη υποστηριζόμενη μορφή ήχου</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Μη υποστηριζόμενος\nτύπος αρχείου</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Δεν είναι δυνατή η αναπαραγωγή βίντεο. Μη έγκυρα δεδομένα ροής</text>
+    <text id="IDS_VPL_TAB_RECORDED">Καταγράφηκε</text>
+    <text id="IDS_COM_BODY_CLOSE">Κλείσιμο</text>
+</string_table>
diff --git a/res/eng-GB.xml b/res/eng-GB.xml
new file mode 100644 (file)
index 0000000..8cb8879
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Unable to play. Invalid packet from server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audio device</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Headphones</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Unsupported video format</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audio track</text>
+    <text id="IDS_COM_POP_CLOSE">Close</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Unable to play video. Error occurred</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Unable to play video during call</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Unsupported file type</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Unable to play DRM file</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Unsupported DivX DRM version</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Loading...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Out of memories</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Unable to connect</text>
+    <text id="IDS_VPL_SK3_TRIM">Trim</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Unsupported audio format</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Unsupported\nfile type</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Unable to play video. Invalid streaming data</text>
+    <text id="IDS_VPL_TAB_RECORDED">Recorded</text>
+    <text id="IDS_COM_BODY_CLOSE">Close</text>
+</string_table>
diff --git a/res/eng-PH.xml b/res/eng-PH.xml
new file mode 100644 (file)
index 0000000..cc64052
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Unable to play. Invalid packet from server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audio device</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Headphones</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Unsupported video format</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audio track</text>
+    <text id="IDS_COM_POP_CLOSE">Close</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Unable to play video. Error occurred</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Unable to play video during call</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Unsupported file type</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Unable to play DRM file</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Unsupported DivX® DRM version</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Loading...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Out of memory</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Unable to connect</text>
+    <text id="IDS_VPL_SK3_TRIM">Trim</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Unsupported audio format</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Unsupported\nfile type</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Unable to play video. Invalid streaming data</text>
+    <text id="IDS_VPL_TAB_RECORDED">Recorded</text>
+    <text id="IDS_COM_BODY_CLOSE">Close</text>
+</string_table>
diff --git a/res/eng-US.xml b/res/eng-US.xml
new file mode 100644 (file)
index 0000000..8cb8879
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Unable to play. Invalid packet from server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audio device</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Headphones</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Unsupported video format</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audio track</text>
+    <text id="IDS_COM_POP_CLOSE">Close</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Unable to play video. Error occurred</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Unable to play video during call</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Unsupported file type</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Unable to play DRM file</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Unsupported DivX DRM version</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Loading...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Out of memories</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Unable to connect</text>
+    <text id="IDS_VPL_SK3_TRIM">Trim</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Unsupported audio format</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Unsupported\nfile type</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Unable to play video. Invalid streaming data</text>
+    <text id="IDS_VPL_TAB_RECORDED">Recorded</text>
+    <text id="IDS_COM_BODY_CLOSE">Close</text>
+</string_table>
diff --git a/res/est-EE.xml b/res/est-EE.xml
new file mode 100644 (file)
index 0000000..e90ab06
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Ei saa esitada. Vale pakett serverist</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Heliseade</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Kõrvaklapid</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Mittetoetatud videovorming</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Helipala</text>
+    <text id="IDS_COM_POP_CLOSE">Sulge</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Videot ei saa esitada. Ilmnes tõrge</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Kõne ajal ei saa videot esitada</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Toetuseta failitüüp</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM-faili ei saa esitada</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Toetuseta DivX DRM versioon</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Kõlar</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Laadimine...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Mälu on otsas</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Ei saa ühendada</text>
+    <text id="IDS_VPL_SK3_TRIM">Lõika</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Mittetoetatud helivorming</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Mittetoetatud\nfailitüüp</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Videot ei saa esitada. Valed voogedastuse andmed</text>
+    <text id="IDS_VPL_TAB_RECORDED">Salvestatud</text>
+    <text id="IDS_COM_BODY_CLOSE">Sulge</text>
+</string_table>
diff --git a/res/eus-ES.xml b/res/eus-ES.xml
new file mode 100644 (file)
index 0000000..a4e00c0
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Ezin da erreproduzitu. Zerbitzariaren pakete baliogabea</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audio gailua</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Aurikularrak</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Bideoaren formatua ez dago onartuta</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audio pista</text>
+    <text id="IDS_COM_POP_CLOSE">Itxi</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Ezin da bideoa erreproduzitu. Errorea gertatu da</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Ezin da bideoa erreproduzitu deia egiten ari den bitartean</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Fitxategi mota ez bateragarria</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Ezin da DRM fitxategia erreproduzitu</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Onartu gabeko DivX DRM bertsioa</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Bozgorai.</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Kargatzen...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Memoriarik gabe</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Ezin da konektatu</text>
+    <text id="IDS_VPL_SK3_TRIM">Kimatu</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Audioaren formatua ez dago onartuta</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Fitxategi mota\nez bateragarria</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Ezin da bideoa erreproduzitu. Streaming datu baliogabeak</text>
+    <text id="IDS_VPL_TAB_RECORDED">Grabatuta</text>
+    <text id="IDS_COM_BODY_CLOSE">Itxi</text>
+</string_table>
diff --git a/res/fin-FI.xml b/res/fin-FI.xml
new file mode 100644 (file)
index 0000000..859cdbe
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Ei voi toistaa. Virheellinen paketti palvelimelta</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Äänilaite</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Kuulokkeet</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Videomuotoa ei tueta</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Ääniraita</text>
+    <text id="IDS_COM_POP_CLOSE">Sulje</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Videota ei voi toistaa. Tapahtui virhe</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Puhelun aikana ei voi toistaa videota</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Tiedostotyyppiä ei tueta</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM-suojattua tiedostoa ei voi toistaa</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Tukematon DivX DRM -versio</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Kaiutin</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Ladataan...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Muisti lopussa</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Yhdistäminen epäonnistui</text>
+    <text id="IDS_VPL_SK3_TRIM">Leikkaa</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Äänimuotoa ei tueta</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Tiedostotyyppiä\nei tueta</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Videota ei voi toistaa. Suoratoistotiedot ovat virheelliset</text>
+    <text id="IDS_VPL_TAB_RECORDED">Tallennettu</text>
+    <text id="IDS_COM_BODY_CLOSE">Sulje</text>
+</string_table>
diff --git a/res/fra-CA.xml b/res/fra-CA.xml
new file mode 100644 (file)
index 0000000..c6f4179
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Lecture impossible. Paquet du serveur non valide</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Périphérique audio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Écouteurs</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Format vidéo non pris en charge</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Piste audio</text>
+    <text id="IDS_COM_POP_CLOSE">Fermer</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Impossible de lire la vidéo. Une erreur est survenue</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Impossible de jouer la vidéo pendant un appel</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Type de fichier non pris en charge</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Impossible de lire le fichier GDN</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Version DivX DRM non prise en charge</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">HP</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Chargement...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Mémoire saturée</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Connexion impossible</text>
+    <text id="IDS_VPL_SK3_TRIM">Rogner</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Format audio non pris en charge</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Type de fichier\nnon pris en charge</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Impossible de lire la vidéo. Données de diffusion non valides</text>
+    <text id="IDS_VPL_TAB_RECORDED">Enregistré</text>
+    <text id="IDS_COM_BODY_CLOSE">Fermer</text>
+</string_table>
diff --git a/res/fra-FR.xml b/res/fra-FR.xml
new file mode 100644 (file)
index 0000000..24f51ff
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Lecture impossible. Paquet du serveur non valide</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Périphérique audio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Écouteurs</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Format vidéo non pris en charge</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Piste audio</text>
+    <text id="IDS_COM_POP_CLOSE">Fermer</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Impossible de lire la vidéo. Une erreur est survenue</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Impossible de lire la vidéo pendant un appel</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Type de fichier non pris en charge</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Impossible de lire le fichier DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Version DivX® DRM non prise en charge</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">HP</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Chargement...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Mémoire saturée</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Connexion impossible</text>
+    <text id="IDS_VPL_SK3_TRIM">Rogner</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Format audio non pris en charge</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Type de fichier\nnon pris en charge</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Impossible de lire la vidéo. Données de diffusion non valides</text>
+    <text id="IDS_VPL_TAB_RECORDED">Enregistré</text>
+    <text id="IDS_COM_BODY_CLOSE">Fermer</text>
+</string_table>
diff --git a/res/gle-IE.xml b/res/gle-IE.xml
new file mode 100644 (file)
index 0000000..d185ff0
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Ní féidir é a sheinm. Paicéad neamhbhailí ón bhfreastalaí</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Gléas fuaime</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Cluasáin</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Formáid físeáin gan tacú</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Fuaimrian</text>
+    <text id="IDS_COM_POP_CLOSE">Dún</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Ní féidir an físeán a sheinm. Tharla earráid</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Ní féidir físeán a sheinm le linn glao</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Cineál comhaid gan tacú</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Ní féidir comhad DRM a sheinm</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Leagan DivX DRM gan tacú</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Callaire</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Ag lódáil...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">As cuimhní</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Ní féidir nascadh</text>
+    <text id="IDS_VPL_SK3_TRIM">Bearr</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Formáid fuaime gan tacú</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Cineál comhaid\ngan tacú</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Ní féidir an físeán a sheinm. Sonraí sruthaithe neamhbhailí</text>
+    <text id="IDS_VPL_TAB_RECORDED">Taifeadta</text>
+    <text id="IDS_COM_BODY_CLOSE">Dún</text>
+</string_table>
diff --git a/res/glg-ES.xml b/res/glg-ES.xml
new file mode 100644 (file)
index 0000000..2ba6b8a
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Non se pode reproducir. O paquete do servidor non é valido</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Dispositivo de son</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Auriculares</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Non se admite este formato de vídeo</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Pista de audio</text>
+    <text id="IDS_COM_POP_CLOSE">Pechar</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Non se pode reproducir o vídeo. Produciuse un erro</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Non se pode reproducir vídeo durante a chamada</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Tipo de arquivo non admitido</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Non se pode reproducir o arquivo DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Versión DivX DRM non admitida</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Altofal.</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Cargando...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Sen memoria</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Non se pode conectar</text>
+    <text id="IDS_VPL_SK3_TRIM">Recortar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Non admite o formato de audio</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Tipo de arquivo\nnon admitido</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Non se pode reproducir o vídeo. Datos de streaming non válidos</text>
+    <text id="IDS_VPL_TAB_RECORDED">Gravado</text>
+    <text id="IDS_COM_BODY_CLOSE">Pechar</text>
+</string_table>
diff --git a/res/hin-IN.xml b/res/hin-IN.xml
new file mode 100644 (file)
index 0000000..7719992
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">चलाने में अक्षम. सर्वर से प्राप्त अमान्य पैकेट</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">ऑडियो डिवाइस</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">हेडफ़ोन्‍स</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">असमर्थित वीडियो फ़ॉर्मेट</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">ऑडियो ट्रैक</text>
+    <text id="IDS_COM_POP_CLOSE">बंद करें</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">वीडियो चलाने में अक्षम। त्रुटि पाई गई</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">कॉल के दौरान वीडियो चलाने में असमर्थ</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">असमर्थित फाइल प्रकार</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM फ़ाइल आयात करने में अक्षम</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">असमर्थित DivX DRM संस्करण</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">स्पीकर</text>
+    <text id="IDS_VPL_POP_LOADING_ING">लोड हो रहा है...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">मेमोरी से बाहर</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">कनेक्‍ट करने में अक्षम</text>
+    <text id="IDS_VPL_SK3_TRIM">ट्रिम</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">असमर्थित ऑडियो फ़ॉर्मेट</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">असमर्थित\nफ़ाइल प्रकार</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">वीडियो चलाने में अक्षम। अमान्य स्‍ट्रीमिंग डेटा</text>
+    <text id="IDS_VPL_TAB_RECORDED">रिकॉर्ड किया गया</text>
+    <text id="IDS_COM_BODY_CLOSE">बंद करें</text>
+</string_table>
diff --git a/res/hrv-HR.xml b/res/hrv-HR.xml
new file mode 100644 (file)
index 0000000..a333467
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Nemoguće reproducirati. Neispravan paket iz poslužitelja</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audio uređaj</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Slušalice</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Nepodržan videoformat</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Zvučni zapis</text>
+    <text id="IDS_COM_POP_CLOSE">Prekid</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Greška video reprodukcije</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Tijekom razgovora nemoguća video reprodukcija</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Nepodržana datoteka</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Nemoguće reproducirati zaštićenu datoteku</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Nepodržana verzija DivX zaštite</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Zvučnik</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Učitavanje...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Nedovoljno memorije</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Spajanje nemoguće</text>
+    <text id="IDS_VPL_SK3_TRIM">Obreži</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Nepodržan format zvuka</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Nepodržana\nvrsta datoteke</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Greška video reprodukcije. Neispravni streaming podaci</text>
+    <text id="IDS_VPL_TAB_RECORDED">Snimke</text>
+    <text id="IDS_COM_BODY_CLOSE">Prekid</text>
+</string_table>
diff --git a/res/hun-HU.xml b/res/hun-HU.xml
new file mode 100644 (file)
index 0000000..a4e680a
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Nem játszható le. Érvénytelen csomag érkezett a szerverről</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Hangeszköz</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Fejhallgató</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Nem támogatott videoformátum</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Hangsáv</text>
+    <text id="IDS_COM_POP_CLOSE">Bezárás</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Nem lehet lejátszani a videót. Hiba történt</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Hívás közben nem lehet videót lejátszani</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">A fájltípus\nnem támogatott</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM fájl nem játszható le</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Nem támogatott verziójú DivX DRM</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Hangszóró</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Betöltés...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Megtelt a memória</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">A csatlakozás sikertelen</text>
+    <text id="IDS_VPL_SK3_TRIM">Vágás</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Nem támogatott hangformátum</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">A fájltípus\nnem támogatott</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Nem lehet lejátszani a videót. A streamingadatok érvénytelenek</text>
+    <text id="IDS_VPL_TAB_RECORDED">Rögzített</text>
+    <text id="IDS_COM_BODY_CLOSE">Bezárás</text>
+</string_table>
diff --git a/res/hye-AM.xml b/res/hye-AM.xml
new file mode 100644 (file)
index 0000000..7c2e756
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Անհնար է նվագարկել: Անվավեր փաթեթ սերվերից</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Ձայնային սարք</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Գլխ. հեռախոսներ</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Տեսանյութի չապահովված ձևաչափ</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Աուդիո ձայնագրություն</text>
+    <text id="IDS_COM_POP_CLOSE">Փակել</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Անհնար է նվագարկել տեսանյութը. սխալ պատահեց</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Հնարավոր չէ վիդեո նվագարկել կանչի ընթացքում</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Ֆայլի չսատարվող տեսակ</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Հնարավոր չէ նվագարկել DRM ֆայլը</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Չապահովված DivX DRM վարկած</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Բարձրախոս</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Բեռնում է...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Հիշողությունը բավարար չէ</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Հնարավոր չէ միանալ</text>
+    <text id="IDS_VPL_SK3_TRIM">Կտրել</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Ձայնի չապահովված ձևաչափ</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Անհամատեղելի\nֆայլի տեսակ</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Անհնար է նվագարկել տեսանյութը. անվավեր հոսքային տվյալներ</text>
+    <text id="IDS_VPL_TAB_RECORDED">Տեսագրված</text>
+    <text id="IDS_COM_BODY_CLOSE">Փակել</text>
+</string_table>
diff --git a/res/isl-IS.xml b/res/isl-IS.xml
new file mode 100644 (file)
index 0000000..13c615c
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Mistókst að spila. Ógild pakkagögn frá netþjóni</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Hljóðtæki</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Höfuðtól</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Óstutt myndsnið</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Hljóðrás</text>
+    <text id="IDS_COM_POP_CLOSE">Loka</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Mistókst að spila myndskeið. Villa kom upp</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Ekki er hægt að spila vídeó á meðan símtal stendur yfir</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Óstutt skrársnið</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Mistókst að spila skrá með höfundarréttarvörn</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Óstudd útgáfa af DivX réttindum</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Hátalari</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Hleð...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Minni er orðið fullt</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Mistókst að tengja</text>
+    <text id="IDS_VPL_SK3_TRIM">Klippa</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Óstutt hljóðsnið</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Óstudd skráargerð</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Mistókst að spila myndskeið. Ógild gögn í straumi</text>
+    <text id="IDS_VPL_TAB_RECORDED">Tekið upp</text>
+    <text id="IDS_COM_BODY_CLOSE">Loka</text>
+</string_table>
diff --git a/res/ita-IT.xml b/res/ita-IT.xml
new file mode 100644 (file)
index 0000000..9a8cabc
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Impossibile avviare riproduzione. Pacchetto non valido dal server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Dispositivo audio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Cuffie</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Formato video non supportato</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Brano audio</text>
+    <text id="IDS_COM_POP_CLOSE">Chiudi</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Impossibile riprodurre il video. Si è verificato un errore</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Impossibile riprodurre durante chiamata</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Tipo file non supportato</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Impossibile riprodurre file DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Versione DRM DivX non supportata</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Vivavoce</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Caricamento...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Memoria insufficiente</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Impossibile stabilire connessione</text>
+    <text id="IDS_VPL_SK3_TRIM">Ritaglia</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Formato audio non supportato</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Tipo file\nnon supportato</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Impossibile riprodurre il video. Dati di streaming non validi</text>
+    <text id="IDS_VPL_TAB_RECORDED">Registrato</text>
+    <text id="IDS_COM_BODY_CLOSE">Chiudi</text>
+</string_table>
diff --git a/res/jpn-JP.xml b/res/jpn-JP.xml
new file mode 100644 (file)
index 0000000..601fb46
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">再生できません。サーバーからのパケットが無効です。</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">オーディオデバイス</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">ヘッドホン</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">未対応ビデオ形式</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">オーディオトラック</text>
+    <text id="IDS_COM_POP_CLOSE">閉じる</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">ビデオ​を​再生​できません​。​エラー​が​発生​しました</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">通話中はビデオ再生できません</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">未対応のファイルです。</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRMファイルを再生できません。</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">未対応DivX DRMバージョン</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">読み込み中...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">メモリが不足しています</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">接続できません。</text>
+    <text id="IDS_VPL_SK3_TRIM">トリム</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">サポートされていないオーディオ形式</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">未対応の\nファイル形式です。</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">ビデオ​を​再生​できません​。​無効​な​ストリーミング​データ​です</text>
+    <text id="IDS_VPL_TAB_RECORDED">録画ファイル</text>
+    <text id="IDS_COM_BODY_CLOSE">閉じる</text>
+</string_table>
diff --git a/res/kat-GE.xml b/res/kat-GE.xml
new file mode 100644 (file)
index 0000000..4ed0b28
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">ვერ დაუკრავთ. სერვერიდან მოსული პაკეტი არასწორია</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">აუდიო მოწყობილობა</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">გარნიტურები</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">ვიდეო ფორმატი არაა გათვალისწინებული</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">აუდიო ბილიკი</text>
+    <text id="IDS_COM_POP_CLOSE">დახურვა</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">ვიდეოს დაკვრა შეუძლებელია. შეცდომა მოხდა</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">ვიდეოს ვერ გაუშვებთ ზარის დროს</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">ფაილის ტიპი გაუთვალისწინებელია</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">ვერ გაიხსნა DRM ფაილი</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">DivX DRM ვერსია გაუთვალისწინებელია</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">დინამიკი</text>
+    <text id="IDS_VPL_POP_LOADING_ING">იტვირთება...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">მეხსიერების გარეთ</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">ვერ დაუკავშირდებით</text>
+    <text id="IDS_VPL_SK3_TRIM">გაფორმება</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">აუდიო ფორმატი არაა გათვალისწინებული</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">ფაილის ტიპი\nგაუთვალისწინებელია</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">ვიდეოს დაკვრა შეუძლებელია. ნაკადის მონაცემები არასწორია</text>
+    <text id="IDS_VPL_TAB_RECORDED">ჩანაწერი</text>
+    <text id="IDS_COM_BODY_CLOSE">დახურვა</text>
+</string_table>
diff --git a/res/kaz-KZ.xml b/res/kaz-KZ.xml
new file mode 100644 (file)
index 0000000..aedfe5c
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Ойнату мүмкін емес. Сервердің пакеті жарамсыз</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Аудио құрылғы</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Құлаққаптар</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Қолданылмайтын бейне пішім</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Аудио трек</text>
+    <text id="IDS_COM_POP_CLOSE">Жабу</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Бейнежазба ойнату мүмкін емес. Қате пайда болды</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Қоңырау кезінде бейне ойнатылмайды</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Қолдаусыз файл түрі</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM файлын ойнату мүмкін емес</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Қолданылмайтын DivX DRM нұсқасы</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Динамик</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Жазылуда...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Жадында орын аз</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Қосылу мүмкін емес</text>
+    <text id="IDS_VPL_SK3_TRIM">Реттеу</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Қолданылмайтын аудио пішім</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Қолданылмайтын\nфайл түрі</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Бейнежазба ойнату мүмкін емес. Ағындық деректер қате</text>
+    <text id="IDS_VPL_TAB_RECORDED">Жазылған</text>
+    <text id="IDS_COM_BODY_CLOSE">Жабу</text>
+</string_table>
diff --git a/res/kor-KR.xml b/res/kor-KR.xml
new file mode 100644 (file)
index 0000000..943888e
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">서버에서 받은 패킷이 바르지 않아 재생할 수 없습니다</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">오디오 기기</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">헤드폰</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">지원되지 않는 동영상 포맷입니다</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">오디오 트랙</text>
+    <text id="IDS_COM_POP_CLOSE">닫기</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">동영상을 재생할 수 없습니다. 오류가 발생하였습니다</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">통화 중에는 동영상을 재생할 수 없습니다</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">지원되지 않는 파일 형식입니다</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM 파일은 재생할 수 없습니다</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">지원되지 않는 DivX DRM 버전입니다</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">로딩 중...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">메모리가 부족합니다</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">연결할 수 없습니다</text>
+    <text id="IDS_VPL_SK3_TRIM">잘라내기</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">지원되지 않는 오디오 포맷입니다</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">지원되지 않는 파일 형식입니다</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">동영상을 재생할 수 없습니다. 스트리밍 데이터가 바르지 않습니다</text>
+    <text id="IDS_VPL_TAB_RECORDED">녹화된 파일</text>
+    <text id="IDS_COM_BODY_CLOSE">닫기</text>
+</string_table>
diff --git a/res/lav-LV.xml b/res/lav-LV.xml
new file mode 100644 (file)
index 0000000..71320cb
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Nevar atskaņot. Nederīga servera pakete</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audioierīce</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Austiņas</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Neatbalstīts videoklipa formāts</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audio ieraksts</text>
+    <text id="IDS_COM_POP_CLOSE">Aizvērt</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Nevar demonstrēt videoklipu. Radās kļūda</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Sarunas laikā nevar demonstrēt video</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Neatbalstīts faila veids</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Nevar demonstrēt DRM failu</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Neatbalstīta DivX DRM versija</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Skaļrunis</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Ielādē...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Trūkst atmiņas</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Nevar izveidot savienojumu</text>
+    <text id="IDS_VPL_SK3_TRIM">Apgriezt</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Neatbalstīts audio formāts</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Neatbalstīts\nfaila veids</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Nevar demonstrēt videoklipu. Nederīgi straumēšanas dati</text>
+    <text id="IDS_VPL_TAB_RECORDED">Ierakstītie</text>
+    <text id="IDS_COM_BODY_CLOSE">Aizvērt</text>
+</string_table>
diff --git a/res/lit-LT.xml b/res/lit-LT.xml
new file mode 100644 (file)
index 0000000..80c16a7
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Neįmanoma paleisti. Neleistinas paketas iš serverio</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Garso įrenginys</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Ausinės</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Nepalaikomas vaizdo įrašo formatas</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Garso takelis</text>
+    <text id="IDS_COM_POP_CLOSE">Uždaryti</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Neįmanoma paleisti vaizdo įrašo. Įvyko klaida</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Pokalbio metu negalima paleisti vaizdo įrašo</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Nepalaikomas failo tipas</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Negalima atkurti DRM failo</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Nepalaikoma „DivX“ DRM versija</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Garsiak.</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Įkeliama...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Nėra atminties</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Neįmanoma prijungti</text>
+    <text id="IDS_VPL_SK3_TRIM">Apkirpti</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Nepalaikomas garso formatas</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Nepalaikomo\ntipo failas</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Neįmanoma paleisti vaizdo įrašo. Neteisingi transliacijos duomenys</text>
+    <text id="IDS_VPL_TAB_RECORDED">Įrašyta</text>
+    <text id="IDS_COM_BODY_CLOSE">Uždaryti</text>
+</string_table>
diff --git a/res/mkd-MK.xml b/res/mkd-MK.xml
new file mode 100644 (file)
index 0000000..eff1470
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Не може да се емитува. Неисправен пакет од серверот</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Аудио уред</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Слушалки</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Неподдржан видео формат</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Аудио запис</text>
+    <text id="IDS_COM_POP_CLOSE">Затвори</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Не може да се емитува видеото. Дојде до грешка</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Не може да се пушти видео за време на разговор</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Неподдржан тип на фајл</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Фајл со дигитална заштита. Не може да се емитува</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Неподдржана верзија на DivX DRM</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Звучник</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Активирање...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Нема повеќе меморија</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Не е можно поврзување</text>
+    <text id="IDS_VPL_SK3_TRIM">Отсечи</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Неподдржан аудио формат</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Неподдржан\nвид фајл</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Не може да се емитува видеото. Неважечки податоци за емитување</text>
+    <text id="IDS_VPL_TAB_RECORDED">Снимено</text>
+    <text id="IDS_COM_BODY_CLOSE">Затвори</text>
+</string_table>
diff --git a/res/nld-NL.xml b/res/nld-NL.xml
new file mode 100644 (file)
index 0000000..67da422
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Kan niet afspelen. Ongeldig pakket van server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audioapparaat</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Koptelefoons</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Niet-ondersteunde video-indeling</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audiotrack</text>
+    <text id="IDS_COM_POP_CLOSE">Sluiten</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Kan video niet afspelen. Fout opgetreden</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Kan video niet afspelen tijdens gesprek</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Niet-ondersteund bestandstype</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Kan DRM-bestand niet afspelen</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">DivX® DRM-versie niet ondersteund</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Laden...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Geen geheugen meer</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Verbinding mislukt</text>
+    <text id="IDS_VPL_SK3_TRIM">Bijsnijd.</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Niet-ondersteunde audio-indeling</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Niet-ondersteund\nbestandstype</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Kan video niet afspelen. Ongeldige streaminggegevens</text>
+    <text id="IDS_VPL_TAB_RECORDED">Opgenomen</text>
+    <text id="IDS_COM_BODY_CLOSE">Sluiten</text>
+</string_table>
diff --git a/res/nob-NO.xml b/res/nob-NO.xml
new file mode 100644 (file)
index 0000000..b9415a2
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Kan ikke spille av. Ugyldig pakke fra server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Lydenhet</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Hodetelefoner</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Videoformatet støttes ikke</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Lydspor</text>
+    <text id="IDS_COM_POP_CLOSE">Lukk</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Kan ikke spille av video. Det oppstod en feil</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Kan ikke spille av video under samtale</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Filtypen støttes ikke</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Kan ikke spille av DRM-fil</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">DivX DRM-versjonen støttes ikke</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Høyttaler</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Åpner...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Ikke nok minne</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Kan ikke opprette forbindelse</text>
+    <text id="IDS_VPL_SK3_TRIM">Beskjær</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Ikke støttet lydformat</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Filtypen\nstøttes ikke</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Kan ikke spille av video. Ugyldige streamingdata</text>
+    <text id="IDS_VPL_TAB_RECORDED">Innspilt</text>
+    <text id="IDS_COM_BODY_CLOSE">Lukk</text>
+</string_table>
diff --git a/res/pol-PL.xml b/res/pol-PL.xml
new file mode 100644 (file)
index 0000000..16b878a
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Nie można odtworzyć. Nieprawidłowy pakiet z serwera</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Urządzenie audio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Słuchawki</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Nieobsługiwany format wideo</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Ścieżka dźwiękowa</text>
+    <text id="IDS_COM_POP_CLOSE">Zamknij</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Nie można odtworzyć pliku wideo. Wystąpił błąd</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Nie można odtwarzać wideo podczas połączenia</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Nieobsługiwany typ pliku</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Nie można odtworzyć pliku DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Nieobsługiwana wersja DivX® DRM</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Głośnik</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Ładuję...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Brak pamięci</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Nie można połączyć</text>
+    <text id="IDS_VPL_SK3_TRIM">Przytnij</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Nieobsługiwany format dźwięku</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Nieobsługiwany\ntyp pliku</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Nie można odtworzyć pliku wideo. Nieprawidłowe dane strumieniowe</text>
+    <text id="IDS_VPL_TAB_RECORDED">Nagrane</text>
+    <text id="IDS_COM_BODY_CLOSE">Zamknij</text>
+</string_table>
diff --git a/res/por-BR.xml b/res/por-BR.xml
new file mode 100644 (file)
index 0000000..057721e
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Impossível reproduzir. Pacote inválido do servidor</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Dispositivo de áudio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Fones de ouvido</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Formato de vídeo não suportado</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Faixa de áudio</text>
+    <text id="IDS_COM_POP_CLOSE">Fechar</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Impossível reproduzir vídeo. Ocorreu um erro</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Impossível reproduzir vídeo durante chamada</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Tipo de arquivo não suportado</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Impossível reproduzir arquivo DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Versão DRM de arquivo DivX não suportado</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Viva-voz</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Carregando...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Sem memória</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Impossível conectar</text>
+    <text id="IDS_VPL_SK3_TRIM">Cortar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Formato de áudio não suportado</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Tipo de arquivo\nnão suportado</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Impossível reproduzir vídeo. Dados de streaming inválidos</text>
+    <text id="IDS_VPL_TAB_RECORDED">Gravado</text>
+    <text id="IDS_COM_BODY_CLOSE">Fechar</text>
+</string_table>
diff --git a/res/por-PT.xml b/res/por-PT.xml
new file mode 100644 (file)
index 0000000..cb0d20c
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Impossível reproduzir. Pacote inválido do servidor</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Dispositivo de áudio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Auscultadores</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Formato de vídeo não suportado</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Faixa de áudio</text>
+    <text id="IDS_COM_POP_CLOSE">Fechar</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Impossível reproduzir vídeo. Ocorreu um erro</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Impossível reproduzir vídeo durante chamada</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Tipo de ficheiro não suportado</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Impossível reproduzir ficheiro DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Versão de DRM DivX não suportada</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Altifal.</text>
+    <text id="IDS_VPL_POP_LOADING_ING">A carregar...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Memória esgotada</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Impossível ligar</text>
+    <text id="IDS_VPL_SK3_TRIM">Cortar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Formato de áudio não suportado</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Tipo de ficheiro\nnão suportado</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Impossível reproduzir vídeo. Dados de streaming inválidos</text>
+    <text id="IDS_VPL_TAB_RECORDED">Gravado</text>
+    <text id="IDS_COM_BODY_CLOSE">Fechar</text>
+</string_table>
diff --git a/res/ron-RO.xml b/res/ron-RO.xml
new file mode 100644 (file)
index 0000000..c182b12
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Imposibil de redat. Pachet nevalid de la server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Dispozitiv audio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Căşti</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Format video neacceptat</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Piesă audio</text>
+    <text id="IDS_COM_POP_CLOSE">Închidere</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Imposibil de redat videoclipul. A apărut o eroare</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Imposibil de redat videoclipul în timpul apelului</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Tip fişier neacceptat</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Imposibil de redat fişierul DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Versiune DivX DRM neacceptată</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Difuzor</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Încărcare...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Memorie insuficientă</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Conectare imposibilă</text>
+    <text id="IDS_VPL_SK3_TRIM">Tăiere</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Format audio neacceptat</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Tip fişier\nneacceptat</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Imposibil de redat videoclipul. Date redate în flux invalide</text>
+    <text id="IDS_VPL_TAB_RECORDED">Înregistrat</text>
+    <text id="IDS_COM_BODY_CLOSE">Închidere</text>
+</string_table>
diff --git a/res/rus-RU.xml b/res/rus-RU.xml
new file mode 100644 (file)
index 0000000..c7925cc
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Сбой воспроизведения. От сервера получен недопустимый пакет</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Звуковое устройство</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Наушники</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Неподдерживаемый формат видео</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Звуковая дорожка</text>
+    <text id="IDS_COM_POP_CLOSE">Закрыть</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Невозможно воспроизвести видео. Ошибка</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Воспроизведение видео во время вызова невозможно</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Неподдерживаемый тип файла</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Невозможно воспроизвести файл DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Неподдерживаемая DRM-версия DivX</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Динамик</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Загрузка...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Недостаточно памяти</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Невозможно подключиться</text>
+    <text id="IDS_VPL_SK3_TRIM">Обрезать</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Неподдерживаемый формат аудио</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Неподдерживаемый\nтип файла</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Невозможно воспроизвести видео. Недопустимые потоковые данные</text>
+    <text id="IDS_VPL_TAB_RECORDED">Записано</text>
+    <text id="IDS_COM_BODY_CLOSE">Закрыть</text>
+</string_table>
diff --git a/res/screen-density-xhigh/T01_btn_toolbar_back.png b/res/screen-density-xhigh/T01_btn_toolbar_back.png
new file mode 100644 (file)
index 0000000..e58ce84
Binary files /dev/null and b/res/screen-density-xhigh/T01_btn_toolbar_back.png differ
diff --git a/res/screen-density-xhigh/T01_btn_toolbar_volume.png b/res/screen-density-xhigh/T01_btn_toolbar_volume.png
new file mode 100644 (file)
index 0000000..f7c10e8
Binary files /dev/null and b/res/screen-density-xhigh/T01_btn_toolbar_volume.png differ
diff --git a/res/screen-density-xhigh/T01_control_stop.png b/res/screen-density-xhigh/T01_control_stop.png
new file mode 100644 (file)
index 0000000..e9439ca
Binary files /dev/null and b/res/screen-density-xhigh/T01_control_stop.png differ
diff --git a/res/screen-density-xhigh/T01_control_stop_press.png b/res/screen-density-xhigh/T01_control_stop_press.png
new file mode 100644 (file)
index 0000000..2cc9fe3
Binary files /dev/null and b/res/screen-density-xhigh/T01_control_stop_press.png differ
diff --git a/res/screen-density-xhigh/T01_controller_progress_handle.png b/res/screen-density-xhigh/T01_controller_progress_handle.png
new file mode 100644 (file)
index 0000000..fc80139
Binary files /dev/null and b/res/screen-density-xhigh/T01_controller_progress_handle.png differ
diff --git a/res/screen-density-xhigh/T01_controller_progress_handle_press.png b/res/screen-density-xhigh/T01_controller_progress_handle_press.png
new file mode 100644 (file)
index 0000000..d14c5f6
Binary files /dev/null and b/res/screen-density-xhigh/T01_controller_progress_handle_press.png differ
diff --git a/res/screen-density-xhigh/T01_icon_title_screenmode01.png b/res/screen-density-xhigh/T01_icon_title_screenmode01.png
new file mode 100644 (file)
index 0000000..6c9a5d3
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_title_screenmode01.png differ
diff --git a/res/screen-density-xhigh/T01_icon_title_screenmode02.png b/res/screen-density-xhigh/T01_icon_title_screenmode02.png
new file mode 100644 (file)
index 0000000..3a545b6
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_title_screenmode02.png differ
diff --git a/res/screen-density-xhigh/T01_icon_title_screenmode03.png b/res/screen-density-xhigh/T01_icon_title_screenmode03.png
new file mode 100644 (file)
index 0000000..9c001f6
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_title_screenmode03.png differ
diff --git a/res/screen-density-xhigh/T01_icon_title_soundpath.png b/res/screen-density-xhigh/T01_icon_title_soundpath.png
new file mode 100644 (file)
index 0000000..1da849c
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_title_soundpath.png differ
diff --git a/res/screen-density-xhigh/T01_icon_toolbar_next.png b/res/screen-density-xhigh/T01_icon_toolbar_next.png
new file mode 100644 (file)
index 0000000..e29bc4c
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_toolbar_next.png differ
diff --git a/res/screen-density-xhigh/T01_icon_toolbar_pause.png b/res/screen-density-xhigh/T01_icon_toolbar_pause.png
new file mode 100644 (file)
index 0000000..cd95fae
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_toolbar_pause.png differ
diff --git a/res/screen-density-xhigh/T01_icon_toolbar_play.png b/res/screen-density-xhigh/T01_icon_toolbar_play.png
new file mode 100644 (file)
index 0000000..e939a59
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_toolbar_play.png differ
diff --git a/res/screen-density-xhigh/T01_icon_toolbar_previous.png b/res/screen-density-xhigh/T01_icon_toolbar_previous.png
new file mode 100644 (file)
index 0000000..0c19cc0
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_toolbar_previous.png differ
diff --git a/res/screen-density-xhigh/T01_main_folder_bg.png b/res/screen-density-xhigh/T01_main_folder_bg.png
new file mode 100644 (file)
index 0000000..16d1d59
Binary files /dev/null and b/res/screen-density-xhigh/T01_main_folder_bg.png differ
diff --git a/res/screen-size-normal/IDL_MAIN_FORM.xml b/res/screen-size-normal/IDL_MAIN_FORM.xml
new file mode 100644 (file)
index 0000000..6328f13
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+
+<Scene Bversion="3.0.0.201209071509" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDL_MAIN_FORM">
+        <property backgroundColor="#000000" backgroundColorOpacity="100" orientation="Automatic" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_LEFT" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER" type="NONE"/>
+        <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER" type="NONE"/>
+    </Form>
+    <Header>
+        <property backgroundBitmapPath="" color="#000000" colorOpacity="40" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="#000000" normalButtonColorOpacity="40" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="VideoPlayer" titleTextColor=""/>
+        <itemSet/>
+    </Header>
+    <Label id="IDC_LABEL_BOTTOM_CONTROL_PANEL" parent="IDL_MAIN_FORM">
+        <property backgroundBitmapPath="" backgroundColor="#1E1E1E" backgroundColorOpacity="40" horizontalAlign="ALIGN_LEFT" text="" textColor="#FFFFFF" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>
+        <layout height="214" mode="Portrait" width="720" x="0" y="895"/>
+        <layout height="230" mode="Landscape" width="1280" x="0" y="333"/>
+    </Label>
+    <Button id="IDC_BUTTON_FASTREWIND" parent="IDL_MAIN_FORM">
+        <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="T01_icon_toolbar_previous.png" normalBitmapPath="" normalColor="#1E1E1E" normalColorOpacity="0" normalTextColor="" pressedBGBitmapPath="T01_icon_toolbar_previous.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="114" mode="Portrait" width="136" x="148" y="995"/>
+        <layout height="114" mode="Landscape" width="136" x="286" y="449"/>
+    </Button>
+    <Button id="IDC_BUTTON_PLAY" parent="IDL_MAIN_FORM">
+        <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="T01_icon_toolbar_play.png" normalBitmapPath="" normalColor="#1E1E1E" normalColorOpacity="0" normalTextColor="" pressedBGBitmapPath="T01_icon_toolbar_play.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="114" mode="Portrait" width="136" x="292" y="995"/>
+        <layout height="114" mode="Landscape" width="136" x="572" y="449"/>
+    </Button>
+    <Button id="IDC_BUTTON_FASTFORWARD" parent="IDL_MAIN_FORM">
+        <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="T01_icon_toolbar_next.png" normalBitmapPath="" normalColor="#1E1E1E" normalColorOpacity="0" normalTextColor="" pressedBGBitmapPath="T01_icon_toolbar_next.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="114" mode="Portrait" width="136" x="436" y="995"/>
+        <layout height="114" mode="Landscape" width="136" x="858" y="449"/>
+    </Button>
+    <Button id="IDC_BUTTON_BACK" parent="IDL_MAIN_FORM">
+        <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="T01_btn_toolbar_back.png" normalBitmapPath="" normalColor="#1E1E1E" normalColorOpacity="0" normalTextColor="" pressedBGBitmapPath="T01_btn_toolbar_back.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="114" mode="Portrait" width="136" x="584" y="995"/>
+        <layout height="112" mode="Landscape" width="136" x="1144" y="449"/>
+    </Button>
+    <Label id="IDC_LABEL_LINE1" parent="IDL_MAIN_FORM">
+        <property backgroundBitmapPath="" backgroundColor="#D5C5A9" backgroundColorOpacity="30" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>
+        <layout height="1" mode="Portrait" width="720" x="0" y="908"/>
+        <layout height="1" mode="Landscape" width="1280" x="0" y="392"/>
+    </Label>
+    <Slider id="IDC_SLIDER" parent="IDL_MAIN_FORM">
+        <property backgroundColor="" backgroundStyle="BACKGROUND_STYLE_NONE" barColor="#FFFFFF" color="#1E1E1E" colorOfTitleText="" colorOpacity="0" disabledThumbBitmap="" disabledThumbTextColor="" groupStyle="GROUP_STYLE_NONE" highlightedThumbBitmap="" highlightedThumbTextColor="" leftIconBitmapPath="" max="100" min="0" normalThumbBitmap="" normalThumbTextColor="" pressedThumbBitmap="" pressedThumbTextColor="" rightIconBitmapPath="" showTitleText="false" sliderStyle="SLIDER_STYLE_NONE" titleText="" value="100"/>
+        <layout height="112" mode="Portrait" width="460" x="130" y="950"/>
+        <layout height="112" mode="Landscape" width="962" x="159" y="425"/>
+    </Slider>
+    <Label id="IDC_LABEL_CURRENTTIME" parent="IDL_MAIN_FORM">
+        <property backgroundBitmapPath="" backgroundColor="#1E1E1E" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="00:00:00" textColor="#FFFFFF" textSize="25" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="28" mode="Portrait" width="130" x="10" y="950"/>
+        <layout height="26" mode="Landscape" width="130" x="32" y="423"/>
+    </Label>
+    <Label id="IDC_LABEL_FULLTIME" parent="IDL_MAIN_FORM">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" text="59:59:59" textColor="#909090" textSize="25" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="28" mode="Portrait" width="130" x="580" y="950"/>
+        <layout height="26" mode="Landscape" width="130" x="1118" y="423"/>
+    </Label>
+    <Label id="IDC_LABEL_VERTICAL_LINE_LEFT" parent="IDL_MAIN_FORM">
+        <property backgroundBitmapPath="" backgroundColor="#909090" backgroundColorOpacity="30" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>
+        <layout height="114" mode="Portrait" width="1" x="146" y="995"/>
+        <layout height="114" mode="Landscape" width="2" x="212" y="449"/>
+    </Label>
+    <Label id="IDC_LABEL_VERTICAL_LINE_RIGHT" parent="IDL_MAIN_FORM">
+        <property backgroundBitmapPath="" backgroundColor="#909090" backgroundColorOpacity="30" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>
+        <layout height="114" mode="Portrait" width="1" x="594" y="995"/>
+        <layout height="114" mode="Landscape" width="2" x="1066" y="449"/>
+    </Label>
+</Scene>
diff --git a/res/slk-SK.xml b/res/slk-SK.xml
new file mode 100644 (file)
index 0000000..7cf94c5
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Nedá sa prehrať. Neplatný paket zo servera</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Zvukové zariadenie</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Slúchadlá</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Nepodporovaný formát videa</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Zvuková stopa</text>
+    <text id="IDS_COM_POP_CLOSE">Zavrieť</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Video sa nedá prehrať. Vyskytla sa chyba</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Počas hovoru sa nedá prehrávať video</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Nepodporovaný typ súboru</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Súbor DRM sa nedá prehrať</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Nepodporovaná verzia DRM súboru DivX</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Reproduk.</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Načítava sa...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Nedostatok pamäte</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Nedá sa spojiť</text>
+    <text id="IDS_VPL_SK3_TRIM">Orezať</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Nepodporovaný formát zvuku</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Nepodporovaný\ntyp súboru</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Video sa nedá prehrať. Neplatné streamingové dáta</text>
+    <text id="IDS_VPL_TAB_RECORDED">Nahrané</text>
+    <text id="IDS_COM_BODY_CLOSE">Zavrieť</text>
+</string_table>
diff --git a/res/slv-SI.xml b/res/slv-SI.xml
new file mode 100644 (file)
index 0000000..4241895
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Ni mogoče predvajati. Neveljaven paket iz strežnika</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Zvočna naprava</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Slušalke</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Nepodprt video zapis</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Zvočni posnetek</text>
+    <text id="IDS_COM_POP_CLOSE">Zapri</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Ni mogoče predvajati videoposnetka. Prišlo je do napake</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Ni mogoče predvajati videa med klicem</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Nepodprta vrsta datoteke</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Datoteke DRM ni mogoče predvajati</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Nepodprta različica DivX DRM</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Zvočnik</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Nalaganje...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Zmanjkalo je pomnilnika</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Ni mogoče povezati</text>
+    <text id="IDS_VPL_SK3_TRIM">Obreži</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Nepodprt zvočni zapis</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Nepodprta\nvrsta datoteke</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Ni mogoče predvajati videoposnetka. Neveljavni podatki pretakanja</text>
+    <text id="IDS_VPL_TAB_RECORDED">Posneto</text>
+    <text id="IDS_COM_BODY_CLOSE">Zapri</text>
+</string_table>
diff --git a/res/spa-ES.xml b/res/spa-ES.xml
new file mode 100644 (file)
index 0000000..2e2eff2
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">No se puede reproducir. Paquete no válido procedente del servidor</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Dispositivo de audio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Auriculares</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Formato de vídeo no admitido</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Pista de audio</text>
+    <text id="IDS_COM_POP_CLOSE">Cerrar</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">No se puede reproducir vídeo. Se ha producido un error</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">No se puede reproducir vídeo durante la llamada</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Tipo de archivo no admitido</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">No se puede reproducir archivo DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Versión DivX DRM no admitida</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Altavoz</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Cargando...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Sin memoria</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">No se puede conectar</text>
+    <text id="IDS_VPL_SK3_TRIM">Recortar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Formato de audio no compatible</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Tipo de archivo\nno admitido</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">No se puede reproducir vídeo. Datos de streaming no válidos</text>
+    <text id="IDS_VPL_TAB_RECORDED">Grabaciones</text>
+    <text id="IDS_COM_BODY_CLOSE">Cerrar</text>
+</string_table>
diff --git a/res/spa-MX.xml b/res/spa-MX.xml
new file mode 100644 (file)
index 0000000..264a5e4
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">No se puede reproducir. Paquete no válido procedente del servidor</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Dispositivo de audio</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Auriculares</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Formato de video no admitido</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Pista de audio</text>
+    <text id="IDS_COM_POP_CLOSE">Cerrar</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">No se puede reproducir video. Se ha producido un error</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">No se puede reproducir video durante la llamada</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Tipo de archivo no admitido</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">No se puede reproducir archivo DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Versión DivX DRM no admitida</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Altavoz</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Cargando...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Sin memorias</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Error al conectar</text>
+    <text id="IDS_VPL_SK3_TRIM">Recortar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Formato de audio no compatible</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Tipo de archivo\nno compatible</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">No se puede reproducir video. Datos de Streaming no válidos</text>
+    <text id="IDS_VPL_TAB_RECORDED">Grabaciones</text>
+    <text id="IDS_COM_BODY_CLOSE">Cerrar</text>
+</string_table>
diff --git a/res/srp-RS.xml b/res/srp-RS.xml
new file mode 100644 (file)
index 0000000..2c02745
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Nemoguće reprodukovati. Neispravan paket sa servera</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audio uređaj</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Slušalice</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Nepodržan video format</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audio numera</text>
+    <text id="IDS_COM_POP_CLOSE">Zatvori</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Nemoguće reprodukovati video zapis. Nastala je greška</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Nemoguće reprodukovati video tokom poziva</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Nepodržani tip fajla</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Nemoguće reprodukovati DRM fajl</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Nepodržana verzija DivX DRM</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Zvučnik</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Učitavanje...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Nedovoljno memorije</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Povezivanje nemoguće</text>
+    <text id="IDS_VPL_SK3_TRIM">Odseci</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Nepodržan audio format</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Nepodržan\ntip fajla</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Nemoguće reprodukovati video zapis. Neispravni podaci striminga</text>
+    <text id="IDS_VPL_TAB_RECORDED">Snimljeno</text>
+    <text id="IDS_COM_BODY_CLOSE">Zatvori</text>
+</string_table>
diff --git a/res/swe-SE.xml b/res/swe-SE.xml
new file mode 100644 (file)
index 0000000..e129961
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Det går inte att spela upp. Ogiltigt paket från servern</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Ljudenhet</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Hörlurar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Videoformatet stöds inte</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Ljudspår</text>
+    <text id="IDS_COM_POP_CLOSE">Stäng</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Kan inte spela upp videoklipp. Ett fel inträffade</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Kan inte spela upp videoklipp medan samtal pågår</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Filtypen stöds inte</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Det går inte att spela upp DRM-fil</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Inget stöd för DivX DRM-versionen</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Högtalare</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Laddar...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Slut på minne</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Det gick inte att ansluta</text>
+    <text id="IDS_VPL_SK3_TRIM">Beskär</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Ljudformatet stöds inte</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Filtypen\nstöds inte</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Kan inte spela upp videoklipp. Ogiltig dataström</text>
+    <text id="IDS_VPL_TAB_RECORDED">Inspelad</text>
+    <text id="IDS_COM_BODY_CLOSE">Stäng</text>
+</string_table>
diff --git a/res/tur-TR.xml b/res/tur-TR.xml
new file mode 100644 (file)
index 0000000..3fda5e5
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Oynatılamıyor. Sunucudan geçersiz paket</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Ses cihazı</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Kulaklıklar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Desteklenmeyen video biçimi</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Ses parçası</text>
+    <text id="IDS_COM_POP_CLOSE">Kapat</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Video oynatılamıyor. Hata oluştu</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Görüşme sırasında video oynatılamıyor</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Desteklenmeyen dosya türü</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM dosyası çalınamıyor</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Desteklenmeyen DivX DRM sürümü</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Hoparlör</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Yükleniyor...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Bellek yetersiz</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Bağlantı başarısız</text>
+    <text id="IDS_VPL_SK3_TRIM">Kes</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Desteklenmeyen ses biçimi</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Dosya türü\ndesteklenmiyor</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Video oynatılamıyor. Geçersiz veri akışı.</text>
+    <text id="IDS_VPL_TAB_RECORDED">Kayıtlı</text>
+    <text id="IDS_COM_BODY_CLOSE">Kapat</text>
+</string_table>
diff --git a/res/ukr-UA.xml b/res/ukr-UA.xml
new file mode 100644 (file)
index 0000000..3108e3d
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Неможливо відтворити. Хибний пакет із сервера</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Аудіопристрій</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Навушники</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Непідтримуваний відеоформат</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Аудіозапис</text>
+    <text id="IDS_COM_POP_CLOSE">Закрити</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Неможливо відтворити відео. Сталася помилка</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Неможливо відтворити відео під час виклику</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Формат не підтримується</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Неможливо відтворити файл DRM</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Непідтримувана версія DRM DivX</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Динамік</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Завантаження...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Недостатньо пам'яті</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Неможливо з’єднатися</text>
+    <text id="IDS_VPL_SK3_TRIM">Обробити</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Непідтримуваний аудіоформат</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Тип файла\nне підтримується</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Неможливо відтворити відео. Хибні потокові дані</text>
+    <text id="IDS_VPL_TAB_RECORDED">Записані</text>
+    <text id="IDS_COM_BODY_CLOSE">Закрити</text>
+</string_table>
diff --git a/res/uzb-UZ.xml b/res/uzb-UZ.xml
new file mode 100644 (file)
index 0000000..1887118
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">Unable to play. Invalid packet from server</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">Audio qurilma</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">Quloqliklar</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">Qo‘llab-quvvatlanmaydigan video format</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">Audio trek</text>
+    <text id="IDS_COM_POP_CLOSE">Yopish</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">Videoni o‘ynatib bo‘lmaydi. Xato yuz berdi</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">Qo‘ng‘iroq mobaynida video o‘ynatib bo‘lmaydi</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">Qo‘llab-quvvatlanmaydigan fayl turi</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">DRM faylni o‘ynatib bo‘lmaydi.</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">Qo‘llab-quvvatlanmaydigan DivX DRM versiyasi</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">Yuklanmoqda...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">Xotira yetarli emas</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">Ulanib bo‘lmaydi</text>
+    <text id="IDS_VPL_SK3_TRIM">Bezatish</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">Unsupported audio format</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">Qo‘llab-quvvatlanmaydigan\nfayl turi</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">Videoni o‘ynatib bo‘lmaydi. Noto‘g‘ri oqimli uzatish ma’lumoti</text>
+    <text id="IDS_VPL_TAB_RECORDED">Yozildi</text>
+    <text id="IDS_COM_BODY_CLOSE">Yopish</text>
+</string_table>
diff --git a/res/zho-CN.xml b/res/zho-CN.xml
new file mode 100644 (file)
index 0000000..e18fc8d
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">无法播放。服务器无效信息包</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">音频设备</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">耳机</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">不支持的视频格式</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">音轨</text>
+    <text id="IDS_COM_POP_CLOSE">关闭</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">无法播放视频。出现错误</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">通话中无法播放视频</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">不支持的文件类型</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">无法播放DRM文件</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">不支持的DivX® DRM版本</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">载入中…</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">内存不足</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">无法连接</text>
+    <text id="IDS_VPL_SK3_TRIM">修剪</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">不支持的音频格式</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">不支持的\n文件类型</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">无法播放视频。无效视频流数据</text>
+    <text id="IDS_VPL_TAB_RECORDED">录音</text>
+    <text id="IDS_COM_BODY_CLOSE">关闭</text>
+</string_table>
diff --git a/res/zho-HK.xml b/res/zho-HK.xml
new file mode 100644 (file)
index 0000000..058b376
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">無法播放。來自伺服器的分組數據無效</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">音訊裝置</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">耳機</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">不支援的影片格式</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">音軌</text>
+    <text id="IDS_COM_POP_CLOSE">關閉</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">無法播放影片。發生錯誤</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">通話期間無法播放影片</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">不支援的檔案類型</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Unable to play DRM file</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">不支援的 DivX DRM 版本</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">正在載入...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">記憶體不足</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">無法連接</text>
+    <text id="IDS_VPL_SK3_TRIM">修剪</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">不支援的音效格式</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">不支援的\n檔案類型</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">無法播放影片。無效串流數據</text>
+    <text id="IDS_VPL_TAB_RECORDED">錄製</text>
+    <text id="IDS_COM_BODY_CLOSE">關閉</text>
+</string_table>
diff --git a/res/zho-SG.xml b/res/zho-SG.xml
new file mode 100644 (file)
index 0000000..4a0b1e4
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">无法播放。服务器无效信息包</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">音频设备</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">耳机</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">不支持的视频格式</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">曲目</text>
+    <text id="IDS_COM_POP_CLOSE">关闭</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">无法播放视频。出现错误</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">通话时\n无法播放录像</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">不支持的文件类型</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Unable to play DRM file</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">不支持的DivX DRM版本</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">裝载中…</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">内存不足</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">无法连接</text>
+    <text id="IDS_VPL_SK3_TRIM">剪切</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">不支持的音频格式</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">不支持的\n文件类型</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">无法播放视频。无效视频流数据</text>
+    <text id="IDS_VPL_TAB_RECORDED">录音</text>
+    <text id="IDS_COM_BODY_CLOSE">关闭</text>
+</string_table>
diff --git a/res/zho-TW.xml b/res/zho-TW.xml
new file mode 100644 (file)
index 0000000..7a0449f
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_INVALID_PACKET_FROM_SERVER">無法播放。來自伺服器的封包無效</text>
+    <text id="IDS_COM_HEADER_AUDIO_DEVICE_ABB">自動裝置</text>
+    <text id="IDS_COM_OPT_HEADPHONES_ABB">耳機</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_VIDEO_FORMAT">不支援的視訊格式</text>
+    <text id="IDS_VPL_OPT_AUDIO_TRACK">音軌</text>
+    <text id="IDS_COM_POP_CLOSE">關閉</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_ERROR_OCCURRED">無法播放影片。發生錯誤</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL">無法在通話期間播放影片</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_FILE_TYPE">不支援的檔案類型</text>
+    <text id="IDS_VPL_BODY_UNABLE_TO_PLAY_DRM_FILE">Unable to play DRM file</text>
+    <text id="IDS_VPL_BODY_UNSUPPORTED_DIVX_DRM_VERSION">不支援的 DivX DRM 版本</text>
+    <text id="IDS_COM_OPT_SPEAKER_ABB">Speaker</text>
+    <text id="IDS_VPL_POP_LOADING_ING">正在載入...</text>
+    <text id="IDS_VPL_POP_OUT_OF_MEMORIES">記憶體不足</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_CONNECT">無法連線</text>
+    <text id="IDS_VPL_SK3_TRIM">剪輯</text>
+    <text id="IDS_VPL_POP_UNSUPPORTED_AUDIO_FORMAT">不支援的音訊格式</text>
+    <text id="IDS_COM_POP_UNSUPPORTED_FILE_TYPE">不支援的\n檔案類型</text>
+    <text id="IDS_VPL_POP_UNABLE_TO_PLAY_VIDEO_INVALID_STREAMING_DATA">無法播放影片。無效的串流數據</text>
+    <text id="IDS_VPL_TAB_RECORDED">錄製</text>
+    <text id="IDS_COM_BODY_CLOSE">關閉</text>
+</string_table>
diff --git a/shared/data/nofile.dummy b/shared/data/nofile.dummy
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/shared/res/screen-density-xhigh/mainmenu.png b/shared/res/screen-density-xhigh/mainmenu.png
new file mode 100644 (file)
index 0000000..8814085
Binary files /dev/null and b/shared/res/screen-density-xhigh/mainmenu.png differ
diff --git a/shared/trusted/nofile.dummy b/shared/trusted/nofile.dummy
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/VpFormFactory.cpp b/src/VpFormFactory.cpp
new file mode 100644 (file)
index 0000000..a0d2092
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpFormFactory.cpp
+ * @brief              This is the implementation file for VideoPlayerFormFactory class.
+ */
+
+#include "VpFormFactory.h"
+#include "VpTypes.h"
+#include "VpVideoPlayerForm.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+FormFactory::FormFactory(void)
+{
+}
+
+FormFactory::~FormFactory(void)
+{
+}
+
+Form*
+FormFactory::CreateFormN(const String& formId, const SceneId& sceneId)
+{
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       Form* pNewForm = null;
+
+       if (formId == IDC_VIDEO_PLAYER_FORM)
+       {
+               VideoPlayerForm* pForm = new (std::nothrow) VideoPlayerForm();
+               pForm->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pForm);
+               pNewForm = pForm;
+
+               AppLogDebug("VideoPlayerForm Create");
+       }
+
+       return pNewForm;
+}
diff --git a/src/VpMainFrame.cpp b/src/VpMainFrame.cpp
new file mode 100644 (file)
index 0000000..97b5522
--- /dev/null
@@ -0,0 +1,116 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpMainFrame.cpp
+ * @brief              This is the implementation file for MainFrame class.
+ */
+
+#include "VpFormFactory.h"
+#include "VpMainFrame.h"
+#include "VpTypes.h"
+#include "VpVideoPlayerApp.h"
+#include "VpVideoPlayerForm.h"
+#include "VpVideoPlayerPresentationModel.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Media;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+MainFrame::MainFrame(void)
+{
+}
+
+MainFrame::~MainFrame(void)
+{
+}
+
+result
+MainFrame::OnInitializing(void)
+{
+       AddFrameEventListener(*this);
+
+       static FormFactory formFactory;
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->RegisterFormFactory(formFactory);
+
+       pSceneManager->RegisterScene(IDSCN_VIDEO_PLAYER, IDC_VIDEO_PLAYER_FORM, L"");
+
+       VideoPlayerApp* pVideoPlayerApp = static_cast<VideoPlayerApp*>(VideoPlayerApp::GetInstance());
+
+       String operationID = pVideoPlayerApp->GetAppControlOperationId();
+       if (operationID.CompareTo(APPCONTROL_OPERATION_ID_PLAY) == 0)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_VIDEO_PLAYER), null);
+       }
+       else if (operationID.CompareTo(APPCONTROL_OPERATION_ID_VIEW) == 0)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_VIDEO_PLAYER), null);
+       }
+       else if (operationID.CompareTo(APPCONTROL_OPERATION_ID_CONFIGURE) == 0)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_VIDEO_PLAYER), null);
+       }
+       else
+       {
+               pVideoPlayerApp->Terminate();
+       }
+
+       return E_SUCCESS;
+}
+
+result
+MainFrame::OnTerminating(void)
+{
+       return E_SUCCESS;
+}
+
+void
+MainFrame::OnFrameActivated(const Frame& source)
+{
+       AppLogDebug("OnFrameActivated");
+
+       if (VideoPlayerPresentationModel::GetInstance()->GetState() == PLAYER_STATE_PAUSED)
+       {
+               VideoPlayerForm* pForm = null;
+               pForm = static_cast<VideoPlayerForm*>(GetCurrentForm());
+               pForm->ShowControlByFrameActivated();
+       }
+}
+
+void
+MainFrame::OnFrameDeactivated(const Frame& source)
+{
+       AppLogDebug("OnFrameDeactivated");
+
+       if (VideoPlayerPresentationModel::GetInstance()->GetState() == PLAYER_STATE_PLAYING)
+       {
+               VideoPlayerPresentationModel::GetInstance()->PausePlay();
+
+               VideoPlayerForm* pForm = null;
+               pForm = static_cast<VideoPlayerForm*>(GetCurrentForm());
+               pForm->CancelTimerByFrameDeactivated();
+       }
+}
+
+void
+MainFrame::OnFrameTerminating(const Frame& source)
+{
+       AppLogDebug("OnFrameTerminating");
+}
diff --git a/src/VpSoundPathPopup.cpp b/src/VpSoundPathPopup.cpp
new file mode 100644 (file)
index 0000000..e8b76bc
--- /dev/null
@@ -0,0 +1,457 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpSoundPathPopup.cpp
+ * @brief              This is the header file for SoundPathPopup class.
+ */
+
+#include "VpSoundPathPopup.h"
+#include "VpTypes.h"
+#include "VpVideoPlayerForm.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+static const int W_SOUNDPATH_POPUP = 550;
+static const int H_SOUNDPATH_POPUP = 450;
+
+static const int X_CHECK_BUTTON_1ST = 0;
+static const int Y_CHECK_BUTTON_1ST = 0;
+static const int W_CHECK_BUTTON_1ST = 510;
+static const int H_CHECK_BUTTON_1ST = 90;
+
+static const int X_CHECK_BUTTON_2ND = 0;
+static const int Y_CHECK_BUTTON_2ND = 90;
+static const int W_CHECK_BUTTON_2ND = 510;
+static const int H_CHECK_BUTTON_2ND = 90;
+
+static const int X_CLOSE_BUTTON = 65;
+static const int Y_CLOSE_BUTTON = 210;
+static const int W_CLOSE_BUTTON = 400;
+static const int H_CLOSE_BUTTON = 90;
+
+static const RequestId REQUEST_UPDATE_WIRED_ACCESSORY_AND_SPEAKER_MENU = 111;
+static const RequestId REQUEST_UPDATE_BLUETOOTHA2DP_AND_SPEAKER_MENU = 112;
+static const RequestId REQUEST_UPDATE_BLUETOOTHA2DP_AND_WIRED_ACCESSORY_MENU = 113;
+
+SoundPathPopup::SoundPathPopup(void)
+       : __pCloseButton(null)
+       , __pCheckButton1st(null)
+       , __pCheckButton2nd(null)
+       , __audioRouteMode(0)
+{
+}
+
+SoundPathPopup::~SoundPathPopup(void)
+{
+}
+
+result
+SoundPathPopup::Construct(int currentOutputDevice, String bluetoothA2dpName, int audioRouteMode)
+{
+       result r = E_FAILURE;
+       OutputAudioDevice tempAudioDevice;
+
+       String checkBoxString;
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       r = Popup::Construct(true, Dimension(W_SOUNDPATH_POPUP, H_SOUNDPATH_POPUP));
+       TryCatch(r == E_SUCCESS, , "Popup::Construct() Failed:%s", GetErrorMessage(r));
+
+       __pCheckButton1st = new (std::nothrow) CheckButton();
+       __pCheckButton2nd = new (std::nothrow) CheckButton();
+       __pCloseButton = new (std::nothrow) Button();
+
+       r = pAppResource->GetString(IDS_COM_HEADER_AUDIO_DEVICE_ABB, checkBoxString);
+       TryCatch(r == E_SUCCESS, , "pAppResource->GetString Failed:%s", GetErrorMessage(r));
+
+       r = SetTitleText(checkBoxString);
+       TryCatch(r == E_SUCCESS, , "SetTitleText() Failed:%s", GetErrorMessage(r));
+
+       tempAudioDevice = static_cast<OutputAudioDevice>(currentOutputDevice);
+
+       switch (audioRouteMode)
+       {
+       case AUDIO_ROUTE_BT_A2DP_AND_SPEAKER:
+               {
+                       r = __pCheckButton1st->Construct(
+                                       Rectangle(X_CHECK_BUTTON_1ST, Y_CHECK_BUTTON_1ST, W_CHECK_BUTTON_1ST, H_CHECK_BUTTON_1ST),
+                                       CHECK_BUTTON_STYLE_ONOFF, BACKGROUND_STYLE_DEFAULT, false, bluetoothA2dpName);
+                       TryCatch(r == E_SUCCESS, , "__pCheckButton1st->Construct() Failed:%s", GetErrorMessage(r));
+
+                       r = pAppResource->GetString(IDS_COM_OPT_SPEAKER_ABB, checkBoxString);
+                       TryCatch(r == E_SUCCESS, , "pAppResource->GetString() Failed:%s", GetErrorMessage(r));
+
+                       r = __pCheckButton2nd->Construct(
+                                       Rectangle(X_CHECK_BUTTON_2ND, Y_CHECK_BUTTON_2ND, W_CHECK_BUTTON_2ND, H_CHECK_BUTTON_2ND),
+                                       CHECK_BUTTON_STYLE_ONOFF, BACKGROUND_STYLE_DEFAULT, false, checkBoxString);
+                       TryCatch(r == E_SUCCESS, , "__pCheckButton2nd->Construct() Failed:%s", GetErrorMessage(r));
+
+                       if (tempAudioDevice == OUTPUT_AUDIO_DEVICE_BT_A2DP)
+                       {
+                               __pCheckButton1st->SetSelected(true);
+                               __pCheckButton2nd->SetSelected(false);
+                       }
+                       else if (tempAudioDevice == OUTPUT_AUDIO_DEVICE_SPEAKER)
+                       {
+                               __pCheckButton1st->SetSelected(false);
+                               __pCheckButton2nd->SetSelected(true);
+                       }
+                       __audioRouteMode = audioRouteMode;
+               }
+               break;
+
+       case AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER:
+               {
+                       r = pAppResource->GetString(IDS_COM_OPT_HEADPHONES_ABB, checkBoxString);
+                       TryCatch(r == E_SUCCESS, , "pAppResource->GetString() Failed:%s", GetErrorMessage(r));
+
+                       r = __pCheckButton1st->Construct(
+                                       Rectangle(X_CHECK_BUTTON_1ST, Y_CHECK_BUTTON_1ST, W_CHECK_BUTTON_1ST, H_CHECK_BUTTON_1ST),
+                                       CHECK_BUTTON_STYLE_ONOFF, BACKGROUND_STYLE_DEFAULT, false, checkBoxString);
+                       TryCatch(r == E_SUCCESS, , "__pCheckButton1st->Construct() Failed:%s", GetErrorMessage(r));
+
+                       r = pAppResource->GetString(IDS_COM_OPT_SPEAKER_ABB, checkBoxString);
+                       TryCatch(r == E_SUCCESS, , "pAppResource->GetString() Failed:%s", GetErrorMessage(r));
+
+                       r = __pCheckButton2nd->Construct(
+                                       Rectangle(X_CHECK_BUTTON_2ND, Y_CHECK_BUTTON_2ND, W_CHECK_BUTTON_2ND, H_CHECK_BUTTON_2ND),
+                                       CHECK_BUTTON_STYLE_ONOFF, BACKGROUND_STYLE_DEFAULT, false, checkBoxString);
+                       TryCatch(r == E_SUCCESS, , "__pCheckButton2nd->Construct() Failed:%s", GetErrorMessage(r));
+
+                       if (tempAudioDevice == OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY)
+                       {
+                               __pCheckButton1st->SetSelected(true);
+                               __pCheckButton2nd->SetSelected(false);
+                       }
+                       else if (tempAudioDevice == OUTPUT_AUDIO_DEVICE_SPEAKER)
+                       {
+                               __pCheckButton1st->SetSelected(false);
+                               __pCheckButton2nd->SetSelected(true);
+                       }
+                       __audioRouteMode = audioRouteMode;
+               }
+               break;
+
+       case AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY:
+               {
+                       r = __pCheckButton1st->Construct(
+                                       Rectangle(X_CHECK_BUTTON_1ST, Y_CHECK_BUTTON_1ST, W_CHECK_BUTTON_1ST, H_CHECK_BUTTON_1ST),
+                                       CHECK_BUTTON_STYLE_ONOFF, BACKGROUND_STYLE_DEFAULT, false, bluetoothA2dpName);
+                       TryCatch(r == E_SUCCESS, , "__pCheckButton1st->Construct() Failed:%s", GetErrorMessage(r));
+
+                       r = pAppResource->GetString(IDS_COM_OPT_HEADPHONES_ABB, checkBoxString);
+                       TryCatch(r == E_SUCCESS, , "pAppResource->GetString() Failed:%s", GetErrorMessage(r));
+
+                       r = __pCheckButton2nd->Construct(
+                                       Rectangle(X_CHECK_BUTTON_2ND, Y_CHECK_BUTTON_2ND, W_CHECK_BUTTON_2ND, H_CHECK_BUTTON_2ND),
+                                       CHECK_BUTTON_STYLE_ONOFF, BACKGROUND_STYLE_DEFAULT, false, checkBoxString);
+                       TryCatch(r == E_SUCCESS, , "__pCheckButton2nd->Construct() Failed:%s", GetErrorMessage(r));
+
+                       if (tempAudioDevice == OUTPUT_AUDIO_DEVICE_BT_A2DP)
+                       {
+                               __pCheckButton1st->SetSelected(true);
+                               __pCheckButton2nd->SetSelected(false);
+                       }
+                       else if (tempAudioDevice == OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY)
+                       {
+                               __pCheckButton1st->SetSelected(false);
+                               __pCheckButton2nd->SetSelected(true);
+                       }
+                       __audioRouteMode = audioRouteMode;
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       r = pAppResource->GetString(IDS_COM_POP_CLOSE, checkBoxString);
+       TryCatch(r == E_SUCCESS, , "pAppResource->GetString() Failed:%s", GetErrorMessage(r));
+
+       r = __pCloseButton->Construct(
+                       Rectangle(X_CLOSE_BUTTON, Y_CLOSE_BUTTON, W_CLOSE_BUTTON, H_CLOSE_BUTTON), checkBoxString);
+       TryCatch(r == E_SUCCESS, , "__pCloseButton->Construct() Failed:%s", GetErrorMessage(r));
+
+       __pCheckButton1st->SetActionId(IDA_BUTTON_CHECK1ST_CHECKED, IDA_BUTTON_CHECK1ST_UNCHECKED);
+       __pCheckButton2nd->SetActionId(IDA_BUTTON_CHECK2ND_CHECKED, IDA_BUTTON_CHECK2ND_UNCHECKED);
+       __pCloseButton->SetActionId(IDA_BUTTON_CLOSE);
+
+       __pCheckButton1st->AddActionEventListener(*this);
+       __pCheckButton2nd->AddActionEventListener(*this);
+       __pCloseButton->AddActionEventListener(*this);
+
+       r = AddControl(*__pCheckButton1st);
+       TryCatch(r == E_SUCCESS, , "AddControl(*__pCheckButton1st) Failed:%s", GetErrorMessage(r));
+
+       r = AddControl(*__pCheckButton2nd);
+       TryCatch(r == E_SUCCESS, , "AddControl(*__pCheckButton2nd) Failed:%s", GetErrorMessage(r));
+
+       r = AddControl(*__pCloseButton);
+       TryCatch(r == E_SUCCESS, , "AddControl(*__CloseButton) Failed:%s", GetErrorMessage(r));
+
+       return r;
+
+CATCH:
+       delete __pCheckButton1st;
+       __pCheckButton1st = null;
+
+       delete __pCheckButton2nd;
+       __pCheckButton2nd = null;
+
+       delete __pCloseButton;
+       __pCloseButton = null;
+
+       return r;
+}
+
+void
+SoundPathPopup::OnActionPerformed(const Control& source, int actionId)
+{
+       result r = E_FAILURE;
+       Frame* pFrame = null;
+       VideoPlayerForm* mainForm = null;
+
+       AudioRouteInfo currentAudioRoute(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);
+       AudioRouteInfo audioRouteSpeaker(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_SPEAKER);
+       AudioRouteInfo audioRouteWiredAccessory(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY);
+       AudioRouteInfo audioRouteBluetooth(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_BT_A2DP);
+
+       pFrame = UiApp::GetInstance()->GetAppFrame()->GetFrame();
+       mainForm = static_cast<VideoPlayerForm*>(pFrame->GetCurrentForm());
+
+       switch (actionId)
+       {
+       case IDA_BUTTON_CHECK1ST_CHECKED:
+               // fall through
+       case IDA_BUTTON_CHECK1ST_UNCHECKED:
+               {
+                       if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+                       {
+                               AppLogDebug("AUDIO_ROUTE_SPEAKER_ONLY");
+                       }
+                       else if (__audioRouteMode == AUDIO_ROUTE_BT_A2DP_AND_SPEAKER)
+                       {
+                               if (currentAudioRoute.GetOutputAudioDevice() != OUTPUT_AUDIO_DEVICE_BT_A2DP)
+                               {
+                                       r = mainForm->SetActiveAudioRoute(audioRouteBluetooth);
+                                       TryReturnVoid(r == E_SUCCESS, "__pAudioRouteManager->SetActiveAudioRoute() failed:%s",
+                                                       GetErrorMessage(r));
+                               }
+                       }
+                       else if (__audioRouteMode == AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER)
+                       {
+                               if (currentAudioRoute.GetOutputAudioDevice() != OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY)
+                               {
+                                       r = mainForm->SetActiveAudioRoute(audioRouteWiredAccessory);
+                                       TryReturnVoid(r == E_SUCCESS, "__pAudioRouteManager->SetActiveAudioRoute() failed:%s",
+                                                       GetErrorMessage(r));
+                               }
+                       }
+                       else
+                       {
+                               if (currentAudioRoute.GetOutputAudioDevice() != OUTPUT_AUDIO_DEVICE_BT_A2DP)
+                               {
+                                       r = mainForm->SetActiveAudioRoute(audioRouteBluetooth);
+                                       TryReturnVoid(r == E_SUCCESS, "__pAudioRouteManager->SetActiveAudioRoute() failed:%s",
+                                                       GetErrorMessage(r));
+                               }
+                       }
+
+                       __pCheckButton1st->SetSelected(true);
+                       __pCheckButton2nd->SetSelected(false);
+
+                       SetShowState(false);
+               }
+               break;
+
+       case IDA_BUTTON_CHECK2ND_CHECKED:
+               // fall through
+       case IDA_BUTTON_CHECK2ND_UNCHECKED:
+               {
+                       if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+                       {
+                               AppLogDebug("AUDIO_ROUTE_SPEAKER_ONLY");
+                       }
+                       else if (__audioRouteMode == AUDIO_ROUTE_BT_A2DP_AND_SPEAKER)
+                       {
+                               if (currentAudioRoute.GetOutputAudioDevice() != OUTPUT_AUDIO_DEVICE_SPEAKER)
+                               {
+                                       r = mainForm->SetActiveAudioRoute(audioRouteSpeaker);
+                                       TryReturnVoid(r == E_SUCCESS, "mainForm->SetActiveAudioRoute() failed:%s",
+                                                       GetErrorMessage(r));
+                               }
+                       }
+                       else if (__audioRouteMode == AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER)
+                       {
+                               if (currentAudioRoute.GetOutputAudioDevice() != OUTPUT_AUDIO_DEVICE_SPEAKER)
+                               {
+                                       r = mainForm->SetActiveAudioRoute(audioRouteSpeaker);
+                                       TryReturnVoid(r == E_SUCCESS, "mainForm->SetActiveAudioRoute() failed:%s",
+                                                       GetErrorMessage(r));
+                               }
+                       }
+                       else
+                       {
+                               if (currentAudioRoute.GetOutputAudioDevice() != OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY)
+                               {
+                                       r = mainForm->SetActiveAudioRoute(audioRouteWiredAccessory);
+                                       TryReturnVoid(r == E_SUCCESS, "__pAudioRouteManager->SetActiveAudioRoute() failed:%s",
+                                                       GetErrorMessage(r));
+                               }
+                       }
+
+                       __pCheckButton1st->SetSelected(false);
+                       __pCheckButton2nd->SetSelected(true);
+
+                       SetShowState(false);
+               }
+               break;
+
+       case IDA_BUTTON_CLOSE:
+               {
+                       r = SetShowState(false);
+                       TryReturnVoid(r == E_SUCCESS, "SetShowState() failed:%s", GetErrorMessage(r));
+               }
+               break;
+
+       default:
+               break;
+       }
+}
+
+void
+SoundPathPopup::ShowPopup(bool state)
+{
+       result r = E_FAILURE;
+
+       r = SetShowState(state);
+       TryReturnVoid(r == E_SUCCESS, "SetShowState() failed:%s", GetErrorMessage(r));
+
+       r = Show();
+       TryReturnVoid(r == E_SUCCESS, "Show() failed:%s", GetErrorMessage(r));
+}
+
+void
+SoundPathPopup::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+       result r = E_FAILURE;
+       int currentAudioDevice = 0;
+       String checkBoxString;
+       String* bluetoothA2dpName = null;
+       Integer* tempAudioRouteMode = null;
+       Integer* currentOutputAudioDevice = null;
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       switch (requestId)
+       {
+       case REQUEST_UPDATE_WIRED_ACCESSORY_AND_SPEAKER_MENU:
+               {
+                       r = pAppResource->GetString(IDS_COM_OPT_HEADPHONES_ABB, checkBoxString);
+                       TryReturnVoid(r == E_SUCCESS, "pAppResource->GetString() Failed:%s", GetErrorMessage(r));
+
+                       __pCheckButton1st->SetText(checkBoxString);
+
+                       r = pAppResource->GetString(IDS_COM_OPT_SPEAKER_ABB, checkBoxString);
+                       TryReturnVoid(r == E_SUCCESS, "pAppResource->GetString() Failed:%s", GetErrorMessage(r));
+
+                       __pCheckButton2nd->SetText(checkBoxString);
+                       TryReturnVoid(r == E_SUCCESS, "__pCheckButton2nd->Construct() Failed:%s", GetErrorMessage(r));
+
+                       tempAudioRouteMode = static_cast<Integer*>(pArgs->GetAt(0));
+                       __audioRouteMode = tempAudioRouteMode->value;
+
+                       currentOutputAudioDevice = static_cast<Integer*>(pArgs->GetAt(1));
+                       currentAudioDevice = currentOutputAudioDevice->value;
+
+                       if (currentAudioDevice == OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY)
+                       {
+                               __pCheckButton1st->SetSelected(true);
+                               __pCheckButton2nd->SetSelected(false);
+                       }
+                       else if (currentAudioDevice == OUTPUT_AUDIO_DEVICE_SPEAKER)
+                       {
+                               __pCheckButton1st->SetSelected(false);
+                               __pCheckButton2nd->SetSelected(true);
+                       }
+
+                       if (GetShowState() == true)
+                       {
+                               Invalidate(true);
+                       }
+               }
+               break;
+
+       case REQUEST_UPDATE_BLUETOOTHA2DP_AND_SPEAKER_MENU:
+               {
+                       bluetoothA2dpName = static_cast<String*>(pArgs->GetAt(0));
+
+                       __pCheckButton1st->SetText(*bluetoothA2dpName);
+
+                       r = pAppResource->GetString(IDS_COM_OPT_SPEAKER_ABB, checkBoxString);
+                       TryReturnVoid(r == E_SUCCESS, "pAppResource->GetString() Failed:%s", GetErrorMessage(r));
+
+                       __pCheckButton2nd->SetText(checkBoxString);
+                       TryReturnVoid(r == E_SUCCESS, "__pCheckButton2nd->Construct() Failed:%s", GetErrorMessage(r));
+
+                       __pCheckButton1st->SetSelected(true);
+                       __pCheckButton2nd->SetSelected(false);
+
+                       tempAudioRouteMode = static_cast<Integer*>(pArgs->GetAt(1));
+                       __audioRouteMode = tempAudioRouteMode->value;
+
+                       if (GetShowState() == true)
+                       {
+                               Invalidate(true);
+                       }
+               }
+               break;
+
+       case REQUEST_UPDATE_BLUETOOTHA2DP_AND_WIRED_ACCESSORY_MENU:
+               {
+                       bluetoothA2dpName = static_cast<String*>(pArgs->GetAt(0));
+
+                       __pCheckButton1st->SetText(*bluetoothA2dpName);
+
+                       r = pAppResource->GetString(IDS_COM_OPT_HEADPHONES_ABB, checkBoxString);
+                       TryReturnVoid(r == E_SUCCESS, "pAppResource->GetString() Failed:%s", GetErrorMessage(r));
+
+                       __pCheckButton2nd->SetText(checkBoxString);
+                       TryReturnVoid(r == E_SUCCESS, "__pCheckButton2nd->Construct() Failed:%s", GetErrorMessage(r));
+
+                       __pCheckButton1st->SetSelected(false);
+                       __pCheckButton2nd->SetSelected(true);
+
+                       if (GetShowState() == true)
+                       {
+                               Invalidate(true);
+                       }
+               }
+               break;
+
+       default:
+               break;
+       }
+}
diff --git a/src/VpTypes.cpp b/src/VpTypes.cpp
new file mode 100644 (file)
index 0000000..af58faa
--- /dev/null
@@ -0,0 +1,39 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file       VpTypes.cpp
+ * @brief      This is the header file for Types definition.
+ */
+
+#include "VpTypes.h"
+
+const wchar_t* IDSCN_VIDEO_PLAYER = L"VideoPlayer";
+const wchar_t* IDC_VIDEO_PLAYER_FORM = L"VideoPlayerForm";
+
+const wchar_t* APPCONTROL_OPERATION_ID_PLAY = L"http://tizen.org/appcontrol/operation/play";
+const wchar_t* APPCONTROL_OPERATION_ID_VIEW = L"http://tizen.org/appcontrol/operation/view";
+const wchar_t* APPCONTROL_OPERATION_ID_CONFIGURE = L"http://tizen.org/appcontrol/operation/configure";
+const wchar_t* APPCONTROL_OPERATION_ID_MAIN = L"http://tizen.org/appcontrol/operation/main";
+
+const wchar_t* APPCONTROL_KEY_PATH = L"path";
+const wchar_t* APPCONTROL_KEY_LEGACY_RESULT = L"http://tizen.org/appcontrol/data/legacyresult";
+
+const wchar_t* IDS_COM_HEADER_AUDIO_DEVICE_ABB = L"IDS_COM_HEADER_AUDIO_DEVICE_ABB";
+const wchar_t* IDS_COM_OPT_SPEAKER_ABB = L"IDS_COM_OPT_SPEAKER_ABB";
+const wchar_t* IDS_COM_OPT_HEADPHONES_ABB = L"IDS_COM_OPT_HEADPHONES_ABB";
+const wchar_t* IDS_COM_POP_CLOSE = L"IDS_COM_POP_CLOSE";
+const wchar_t* IDS_COM_POP_UNSUPPORTED_FILE_TYPE = L"IDS_COM_POP_UNSUPPORTED_FILE_TYPE";
diff --git a/src/VpVideoPlayerApp.cpp b/src/VpVideoPlayerApp.cpp
new file mode 100644 (file)
index 0000000..2fa63d9
--- /dev/null
@@ -0,0 +1,214 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpVideoPlayerApp.cpp
+ * @brief              This is the implementation file for VideoPlayerApp class.
+ */
+
+#include "VpMainFrame.h"
+#include "VpTypes.h"
+#include "VpVideoPlayerApp.h"
+#include "VpVideoPlayerForm.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+static const wchar_t* PARAM_LANGUAGE = L"http://tizen.org/setting/locale.language";
+static const wchar_t* PARAM_COUNTRY = L"http://tizen.org/setting/locale.country";
+
+static const RequestId REQUEST_VIDEO_EVENT_BATTERY_LEVEL_CHANGED = 114;
+
+VideoPlayerApp::VideoPlayerApp(void)
+       : __requestID(0)
+       , __appControlResult(APP_CTRL_RESULT_SUCCEEDED)
+       , __pArguments(null)
+{
+}
+
+VideoPlayerApp::~VideoPlayerApp(void)
+{
+}
+
+UiApp*
+VideoPlayerApp::CreateInstance(void)
+{
+       AppLogDebug("CreateInstance");
+       return new (std::nothrow) VideoPlayerApp();
+}
+
+String
+VideoPlayerApp::GetAppControlOperationId(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return __operationID;
+}
+
+String
+VideoPlayerApp::GetUriData(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return __uriData;
+}
+
+const IMap*
+VideoPlayerApp::GetAppControlArguments(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return __pArguments;
+}
+
+bool
+VideoPlayerApp::OnAppInitializing(AppRegistry& appRegistry)
+{
+       AppLogDebug("OnAppInitializing");
+
+       AppControlProviderManager::GetInstance()->SetAppControlProviderEventListener(this);
+       PowerManager::SetChargingEventListener(*this);
+
+       return true;
+}
+
+bool
+VideoPlayerApp::OnAppInitialized(void)
+{
+       MainFrame* pMainFrame = new (std::nothrow) MainFrame();
+       pMainFrame->Construct();
+       AddFrame(*pMainFrame);
+       SettingInfo::AddSettingEventListener(*this);
+
+       return true;
+}
+
+bool
+VideoPlayerApp::OnAppTerminating(AppRegistry& appRegistry, bool forcedTermination)
+{
+       AppLogDebug("OnAppTerminating");
+
+       AppControlProviderManager::GetInstance()->SetAppControlProviderEventListener(null);
+       PowerManager::SetChargingEventListener(*(static_cast<IChargingEventListener*>(null)));
+
+       delete __pArguments;
+       __pArguments = null;
+
+       return true;
+}
+
+void
+VideoPlayerApp::OnBatteryLevelChanged(BatteryLevel batteryLevel)
+{
+       AppLogDebug("BatteryLevelChanged");
+
+       Frame* pFrame = UiApp::GetInstance()->GetAppFrame()->GetFrame();
+       VideoPlayerForm* pForm = static_cast<VideoPlayerForm*>(pFrame->GetCurrentForm());
+       pForm->SendUserEvent(REQUEST_VIDEO_EVENT_BATTERY_LEVEL_CHANGED, null);
+}
+
+void
+VideoPlayerApp::OnChargingStateChanged(bool charging)
+{
+       AppLogDebug("OnChargingStateChanged");
+
+       if (charging == false)
+       {
+               UiApp* pApp = UiApp::GetInstance();
+
+               if (pApp != null)
+               {
+                       IAppFrame* pAppFrame = pApp->GetAppFrame();
+
+                       if (pAppFrame != null)
+                       {
+                               Frame* pFrame = pAppFrame->GetFrame();
+
+                               if (pFrame != null)
+                               {
+                                       VideoPlayerForm* pForm = static_cast<VideoPlayerForm*>(pFrame->GetCurrentForm());
+
+                                       if (pForm != null)
+                                       {
+                                               pForm->SendUserEvent(REQUEST_VIDEO_EVENT_BATTERY_LEVEL_CHANGED, null);
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+void
+VideoPlayerApp::OnAppControlRequestReceived(RequestId reqId, const String& operationId, const String* pUriData,
+               const String* pMimeType, const IMap* pExtraData)
+{
+       AppLogDebug("OnAppControlRequestReceived");
+       __requestID = reqId;
+       __operationID = operationId;
+
+       if (pExtraData != null)
+       {
+               __pArguments = new (std::nothrow) HashMap(SingleObjectDeleter);
+               __pArguments->Construct();
+
+               const String* pKey = null;
+               const String* pValue = null;
+               IList* pKeyList = pExtraData->GetKeysN();
+
+               if (pKeyList != null)
+               {
+                       int loopCount = pKeyList->GetCount();
+                       for (int i = 0; i < loopCount; ++i)
+                       {
+                               pKey = static_cast<const String*>(pKeyList->GetAt(i));
+                               if (pKey != null)
+                               {
+                                       pValue = static_cast<const String*>(pExtraData->GetValue(*pKey));
+
+                                       if (pValue != null && pKey->CompareTo(APPCONTROL_KEY_LEGACY_RESULT) != 0)
+                                       {
+                                               __pArguments->Add(new (std::nothrow) String(*pKey), new (std::nothrow) String(*pValue));
+                                       }
+                               }
+                       }
+                       delete pKeyList;
+               }
+               else
+               {
+                       delete __pArguments;
+               }
+       }
+       else if (pUriData != null)
+       {
+               __uriData = *pUriData;
+       }
+}
+
+void
+VideoPlayerApp::OnSettingChanged(String& key)
+{
+       AppLogDebug("OnSettingChanged");
+
+       if (key.CompareTo(PARAM_LANGUAGE) == 0 || key.CompareTo(PARAM_COUNTRY) == 0)
+       {
+               UiApp* pApp = UiApp::GetInstance();
+               pApp->Terminate();
+       }
+}
\ No newline at end of file
diff --git a/src/VpVideoPlayerEntry.cpp b/src/VpVideoPlayerEntry.cpp
new file mode 100644 (file)
index 0000000..0a5fbde
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpVideoPlayerEntry.cpp
+ * @brief              This file contains the Tizen application entry point.
+ */
+
+#include "VpVideoPlayerApp.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+//
+// The entry function of Tizen application called by the operating system.
+//
+_EXPORT_ int
+OspMain(int argc, char *pArgv[])
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("Application started.");
+       ArrayList args(SingleObjectDeleter);
+       args.Construct();
+       for (int i = 0; i < argc; i++)
+       {
+               args.Add(new (std::nothrow) String(pArgv[i]));
+       }
+
+       result r = UiApp::Execute(VideoPlayerApp::CreateInstance, &args);
+       TryLog(r == E_SUCCESS, "[%s] Application execution failed", GetErrorMessage(r));
+       AppLogDebug("Application finished.");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return static_cast<int>(r);
+}
+#ifdef __cplusplus
+}
+#endif // __cplusplus
diff --git a/src/VpVideoPlayerForm.cpp b/src/VpVideoPlayerForm.cpp
new file mode 100644 (file)
index 0000000..12572d7
--- /dev/null
@@ -0,0 +1,2514 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpVideoPlayerForm.cpp
+ * @brief              This is the implementation file for VideoPlayerMainForm class.
+ */
+
+#include <FSystem.h>
+#include <FTelephony.h>
+#include "VpSoundPathPopup.h"
+#include "VpVideoPlayerApp.h"
+#include "VpVideoPlayerForm.h"
+#include "VpVideoPlayerPresentationModel.h"
+#include "VpTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::System;
+using namespace Tizen::Telephony;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const int MIN_PROGRESS_RANGE = 0;
+static const int MAX_PROGRESS_RANGE = 100;
+
+static const int SHOW_CONTROL_DURATION = 5000;
+
+static const int MILLISECOND = 1000;
+static const int ONE_HOUR = 3600;
+static const int ONE_MIN = 60;
+static const int START_TIME = 0;
+
+static const int X_BASE = 0;
+static const int Y_BASE = 0;
+static const int DIVIDE_BY_TWO = 2;
+
+static const int MARGIN_PORTRAIT_SLIDER = 42;
+static const int MARGIN_LANDSCAPE_SLIDER = 40;
+
+static const int X_NORMAL = 0;
+static const int Y_NORMAL = 310;
+static const int W_NORMAL = 720;
+static const int H_NORMAL = 432;
+
+static const int WVGA_W_FULL = 1200;
+static const int WVGA_X_FASTREWIND_BTN = 216;
+static const int WVGA_X_PLAYPAUSE_BTN = 532;
+static const int WVGA_X_BACK_BTN = 1049;
+static const int WVGA_X_CURRENT_TIME_LABEL = 10;
+static const int WVGA_X_TOTAL_TIME_LABEL = 1068;
+static const int WVGA_X_SLIDER = 124;
+static const int WVGA_X_VERTICAL_LEFT_LINE = 182;
+static const int WVGA_X_VERTICAL_RIGHT_LINE = 1036;
+
+static const int COLOR_THUMB_RED = 0;
+static const int COLOR_THUMB_GREEN = 0;
+static const int COLOR_THUMB_BLUE = 0;
+static const int COLOR_THUMB_ALPHA = 0;
+
+static const int MESSAGEBOX_DISPLAY_TIME_3_SEC = 3000;
+
+static const wchar_t* INIT_TIME = L"00:00:00";
+
+static const RequestId REQUEST_UPDATE_WIRED_ACCESSORY_AND_SPEAKER_MENU = 111;
+static const RequestId REQUEST_UPDATE_BLUETOOTHA2DP_AND_SPEAKER_MENU = 112;
+static const RequestId REQUEST_UPDATE_BLUETOOTHA2DP_AND_WIRED_ACCESSORY_MENU = 113;
+static const RequestId REQUEST_VIDEO_EVENT_BATTERY_LEVEL_CHANGED = 114;
+
+void DestroyPresentationModelInstance(void)
+{
+       delete VideoPlayerPresentationModel::GetInstance();
+}
+
+VideoPlayerForm::VideoPlayerForm(void)
+       : __pOverlayRegion(null)
+       , __screenMode(SCREEN_MODE_NORMAL)
+       , __pSoundPathPopup(null)
+       , __pUiControlTimer(null)
+       , __pAudioRouteManager(null)
+       , __pAudioSessionManager(null)
+       , __pPlayPauseButton(null)
+       , __pFastForwardButton(null)
+       , __pFastRewindButton(null)
+       , __pBackButton(null)
+       , __pButtonLeftItem(null)
+       , __pButtonRightItem(null)
+       , __pHeader(null)
+       , __pControlLabel(null)
+       , __pCurrenTimeLabel(null)
+       , __pFirstLineLabel(null)
+       , __pTotalTimeLabel(null)
+       , __pVerticalLeftLine(null)
+       , __pVerticalRightLine(null)
+       , __pSlider(null)
+       , __actionTouchLongPressed(false)
+       , __setPauseState(false)
+       , __isControlVisibleState(true)
+       , __audioRouteMode(0)
+       , __pVideoPlayerPresentationModel(null)
+{
+       for (int count = 0; count < OUTPUT_AUDIO_ROUTE_MAX; ++count)
+       {
+               __availableAudioRoute[count] = false;
+       }
+}
+
+VideoPlayerForm::~VideoPlayerForm(void)
+{
+}
+
+void
+VideoPlayerForm::Initialize(void)
+{
+       AppLogDebug("Initialize");
+       Construct(L"IDL_MAIN_FORM");
+}
+
+result
+VideoPlayerForm::SetScreenMode(const ScreenMode mode)
+{
+       result r = E_SUCCESS;
+
+       Rectangle clientRect = GetClientAreaBounds();
+
+       delete __pOverlayRegion;
+       __pOverlayRegion = null;
+
+       switch (mode)
+       {
+       case SCREEN_MODE_NORMAL:
+               {
+                       bool modified = false;
+
+                       Rectangle rect = Rectangle(X_NORMAL, Y_NORMAL, W_NORMAL, H_NORMAL);
+
+                       if ((clientRect.width - rect.width) <= X_BASE)
+                       {
+                               rect.x = X_BASE;
+                       }
+                       else
+                       {
+                               rect.x = (clientRect.width - rect.width) / DIVIDE_BY_TWO;
+                       }
+
+                       if ((clientRect.height - rect.height) <= Y_BASE)
+                       {
+                               rect.y = Y_BASE;
+                       }
+                       else
+                       {
+                               rect.y = (clientRect.height - rect.height) / DIVIDE_BY_TWO;
+                       }
+
+                       __pOverlayRegion->EvaluateBounds(OVERLAY_REGION_EVALUATION_OPTION_GREATER_THAN, rect, modified);
+
+                       AppLogDebug("SetScreenMode [%d] [%d]", rect.height, rect.width);
+
+                       __pOverlayRegion = GetOverlayRegionN(rect, OVERLAY_REGION_TYPE_NORMAL);
+                       TryCatch(__pOverlayRegion != null, r = E_SYSTEM, "__pOverlayRegion is null");
+
+                       __screenMode = SCREEN_MODE_NORMAL;
+               }
+               break;
+
+       case SCREEN_MODE_FULL:
+               {
+                       bool modified = false;
+
+                       Rectangle rect = Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height);
+
+                       __pOverlayRegion->EvaluateBounds(OVERLAY_REGION_EVALUATION_OPTION_GREATER_THAN, rect, modified);
+
+                       AppLogDebug("SetScreenMode [%d] [%d]", rect.height, rect.width);
+
+                       __pOverlayRegion = GetOverlayRegionN(rect, OVERLAY_REGION_TYPE_NORMAL);
+                       TryCatch(__pOverlayRegion != null, r = E_SYSTEM, "__pOverlayRegion is null");
+
+                       __screenMode = SCREEN_MODE_FULL;
+               }
+               break;
+
+       case SCREEN_MODE_FIT:
+               {
+                       bool modified = false;
+
+                       Rectangle rect = __pVideoPlayerPresentationModel->GetVideoInfoN(
+                                       __pVideoPlayerPresentationModel->GetMediaPathName());
+
+                       if ((clientRect.width - rect.width) <= X_BASE)
+                       {
+                               rect.x = X_BASE;
+                       }
+                       else
+                       {
+                               rect.x = (clientRect.width - rect.width) / DIVIDE_BY_TWO;
+                       }
+
+                       if ((clientRect.height - rect.height) <= Y_BASE)
+                       {
+                               rect.y = Y_BASE;
+                       }
+                       else
+                       {
+                               rect.y = (clientRect.height - rect.height) / DIVIDE_BY_TWO;
+                       }
+
+                       __pOverlayRegion->EvaluateBounds(OVERLAY_REGION_EVALUATION_OPTION_GREATER_THAN, rect, modified);
+
+                       AppLogDebug("SetScreenMode [%d] [%d]", rect.height, rect.width);
+
+                       __pOverlayRegion = GetOverlayRegionN(rect, OVERLAY_REGION_TYPE_NORMAL);
+                       TryCatch(__pOverlayRegion != null, r = E_SYSTEM, "__pOverlayRegion is null");
+
+                       __screenMode = SCREEN_MODE_FIT;
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       __pVideoPlayerPresentationModel->SetOverlayRegion(__pOverlayRegion);
+
+       return r;
+
+CATCH:
+       delete __pOverlayRegion;
+       __pOverlayRegion = null;
+       __screenMode = SCREEN_MODE_NORMAL;
+
+       return r;
+}
+
+result
+VideoPlayerForm::OnInitializing(void)
+{
+       result r = E_FAILURE;
+
+       Bitmap* pBitmapScreenMode = null;
+       Bitmap* pBitmapSoundPath = null;
+       Bitmap* pSliderThumbNormalBitmap = null;
+       Bitmap* pSliderThumbPressedBitmap = null;
+       Bitmap* pSliderThumbDisableBitmap = null;
+
+       String wiredHeadPhoneState;
+       String btHeadsetState;
+
+       AppLogDebug("OnInitializing");
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       AddOrientationEventListener(*this);
+       AddKeyEventListener(*this);
+       AddTouchEventListener(*this);
+
+       r = SetActionBarsTranslucent(FORM_ACTION_BAR_INDICATOR | FORM_ACTION_BAR_HEADER, true);
+       TryCatch(r == E_SUCCESS, , "SetActionBarsTranslucent() failed:%s", GetErrorMessage(r));
+
+       __pAudioSessionManager = AudioSessionManager::GetInstance();
+       __pAudioSessionManager->SetMode(AUDIO_SESSION_MODE_EXCLUSIVE);
+
+       __pAudioRouteManager = AudioRouteManager::GetInstance();
+       __pAudioRouteManager->SetAudioRouteEventListener(this);
+
+       __pVideoPlayerPresentationModel = VideoPlayerPresentationModel::GetInstance();
+       TryCatch(__pVideoPlayerPresentationModel != null, r = E_SYSTEM, "__pVideoPlayerPresentationModel is null");
+
+       __pVideoPlayerPresentationModel->SetVideoPlayerEventListener(this);
+
+       SetScreenMode(SCREEN_MODE_NORMAL);
+
+       InitTimer();
+
+       InitAudioRouteList();
+
+       __pHeader = GetHeader();
+
+       __pButtonLeftItem = new (std::nothrow) ButtonItem();
+       __pButtonRightItem = new (std::nothrow) ButtonItem();
+
+       r = __pButtonLeftItem->Construct(BUTTON_ITEM_STYLE_ICON, IDA_BUTTON_FULLSCREEN);
+       TryCatch(r == E_SUCCESS, , "buttonLeftItem->Construct() Failed:%s", GetErrorMessage(r));
+
+       r = __pButtonRightItem->Construct(BUTTON_ITEM_STYLE_ICON, IDA_BUTTON_SOUNDPATH);
+       TryCatch(r == E_SUCCESS, , "buttonRightItem->Construct() Failed:%s", GetErrorMessage(r));
+
+       if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+       {
+               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+               r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+               TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+               __pButtonRightItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+
+               __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+               __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+               __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+       }
+       else
+       {
+               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+               r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+               TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+               __pButtonLeftItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+               __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+
+               pBitmapSoundPath = pAppResource->GetBitmapN(L"T01_icon_title_soundpath.png");
+               r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapSoundPath);
+               TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+               __pButtonRightItem->SetActionId(IDA_BUTTON_SOUNDPATH);
+               __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+       }
+
+       __pHeader->AddActionEventListener(*this);
+       __pHeader->AddTouchEventListener(*this);
+
+       __pPlayPauseButton = static_cast<Button*>(GetControl("IDC_BUTTON_PLAY"));
+       TryCatch(__pPlayPauseButton != null, r = E_SYSTEM, "__pPlayPauseButton is null");
+       __pPlayPauseButton->SetActionId(IDA_BUTTON_PLAY);
+       __pPlayPauseButton->AddActionEventListener(*this);
+       __pPlayPauseButton->AddTouchEventListener(*this);
+
+       __pFastRewindButton = static_cast<Button*>(GetControl("IDC_BUTTON_FASTREWIND"));
+       TryCatch(__pFastRewindButton != null, r = E_SYSTEM, "__pFastRewindButton is null");
+       __pFastRewindButton->SetActionId(IDA_BUTTON_FASTREWIND);
+       __pFastRewindButton->AddActionEventListener(*this);
+       __pFastRewindButton->AddTouchEventListener(*this);
+
+       __pFastForwardButton = static_cast<Button*>(GetControl("IDC_BUTTON_FASTFORWARD"));
+       TryCatch(__pFastForwardButton != null, r = E_SYSTEM, "__pFastForwardButton is null");
+       __pFastForwardButton->SetActionId(IDA_BUTTON_FASTFORWARD);
+       __pFastForwardButton->AddActionEventListener(*this);
+       __pFastForwardButton->AddTouchEventListener(*this);
+
+       __pBackButton = static_cast<Button*>(GetControl("IDC_BUTTON_BACK"));
+       TryCatch(__pBackButton != null, r = E_SYSTEM, "__pBackButton is null");
+       __pBackButton->SetActionId(IDA_BUTTON_BACK);
+       __pBackButton->AddActionEventListener(*this);
+       __pBackButton->AddTouchEventListener(*this);
+
+       __pSlider = static_cast<Slider*>(GetControl("IDC_SLIDER"));
+       TryCatch(__pSlider != null, r = E_SYSTEM, "__pSlider is null");
+       __pSlider->SetEnabled(true);
+       __pSlider->SetRange(MIN_PROGRESS_RANGE, MAX_PROGRESS_RANGE);
+       __pSlider->SetValue(MIN_PROGRESS_RANGE);
+       __pSlider->SetThumbTextColor(SLIDER_THUMB_STATUS_NORMAL,
+                       Color(COLOR_THUMB_RED, COLOR_THUMB_GREEN, COLOR_THUMB_BLUE, COLOR_THUMB_ALPHA));
+       __pSlider->SetThumbTextColor(SLIDER_THUMB_STATUS_PRESSED,
+                       Color(COLOR_THUMB_RED, COLOR_THUMB_GREEN, COLOR_THUMB_BLUE, COLOR_THUMB_ALPHA));
+       __pSlider->SetThumbTextColor(SLIDER_THUMB_STATUS_DISABLED,
+                       Color(COLOR_THUMB_RED, COLOR_THUMB_GREEN, COLOR_THUMB_BLUE, COLOR_THUMB_ALPHA));
+
+       pSliderThumbNormalBitmap = pAppResource->GetBitmapN(L"T01_controller_progress_handle.png");
+       r = __pSlider->SetThumbBitmap(SLIDER_THUMB_STATUS_NORMAL, *pSliderThumbNormalBitmap);
+       TryCatch(r == E_SUCCESS, , "__pSlider->SetThumbBitmap() Failed:%s", GetErrorMessage(r));
+
+       pSliderThumbPressedBitmap = pAppResource->GetBitmapN(L"T01_controller_progress_handle_press.png");
+       r = __pSlider->SetThumbBitmap(SLIDER_THUMB_STATUS_PRESSED, *pSliderThumbPressedBitmap);
+       TryCatch(r == E_SUCCESS, , "__pSlider->SetThumbBitmap() Failed:%s", GetErrorMessage(r));
+
+       pSliderThumbDisableBitmap = pAppResource->GetBitmapN(L"T01_controller_progress_handle.png");
+       r = __pSlider->SetThumbBitmap(SLIDER_THUMB_STATUS_DISABLED, *pSliderThumbDisableBitmap);
+       TryCatch(r == E_SUCCESS, , "__pSlider->SetThumbBitmap() Failed:%s", GetErrorMessage(r));
+
+       __pSlider->AddAdjustmentEventListener(*this);
+       __pSlider->AddTouchEventListener(*this);
+
+       __pCurrenTimeLabel = static_cast<Label*>(GetControl("IDC_LABEL_CURRENTTIME"));
+       TryCatch(__pCurrenTimeLabel != null, r = E_SYSTEM, "__pCurrenTimeLabel is null");
+       __pCurrenTimeLabel->AddTouchEventListener(*this);
+
+       __pCurrenTimeLabel->SetText(INIT_TIME);
+
+       __pTotalTimeLabel = static_cast<Label*>(GetControl("IDC_LABEL_FULLTIME"));
+       TryCatch(__pTotalTimeLabel != null, r = E_SYSTEM, "__pTotalTimeLabel is null");
+       __pTotalTimeLabel->AddTouchEventListener(*this);
+
+       __pTotalTimeLabel->SetText(INIT_TIME);
+
+       __pControlLabel = static_cast<Label*>(GetControl("IDC_LABEL_BOTTOM_CONTROL_PANEL"));
+       TryCatch(__pControlLabel != null, r = E_SYSTEM, "__pControlLabel is null");
+
+       __pFirstLineLabel = static_cast<Label*>(GetControl("IDC_LABEL_LINE1"));
+       TryCatch(__pFirstLineLabel != null, r = E_SYSTEM, "__pFirstLineLabel is null");
+
+       __pVerticalLeftLine = static_cast<Label*>(GetControl("IDC_LABEL_VERTICAL_LINE_LEFT"));
+       TryCatch(__pVerticalLeftLine != null, r = E_SYSTEM, "__pVerticalLeftLine is null");
+
+       __pVerticalRightLine = static_cast<Label*>(GetControl("IDC_LABEL_VERTICAL_LINE_RIGHT"));
+       TryCatch(__pVerticalRightLine != null, r = E_SYSTEM, "__pVerticalRightLine is null");
+
+       ChangedControlPos();
+
+       delete pBitmapScreenMode;
+       delete pBitmapSoundPath;
+       delete pSliderThumbNormalBitmap;
+       delete pSliderThumbPressedBitmap;
+       delete pSliderThumbDisableBitmap;
+
+       return r;
+
+CATCH:
+       delete pBitmapScreenMode;
+       delete pBitmapSoundPath;
+       delete pSliderThumbNormalBitmap;
+       delete pSliderThumbPressedBitmap;
+       delete pSliderThumbDisableBitmap;
+
+       DestroyPresentationModelInstance();
+
+       return r;
+}
+
+result
+VideoPlayerForm::OnTerminating(void)
+{
+       AppLogDebug("OnTerminating");
+       DeleteTimer();
+       DestroyPresentationModelInstance();
+
+       delete __pButtonLeftItem;
+       __pButtonLeftItem = null;
+
+       delete __pButtonRightItem;
+       __pButtonRightItem = null;
+
+       delete __pOverlayRegion;
+       __pOverlayRegion = null;
+
+       delete __pSoundPathPopup;
+       __pSoundPathPopup = null;
+
+       return E_SUCCESS;
+}
+
+void
+VideoPlayerForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+       result r = E_FAILURE;
+       AppLogDebug("OnSceneActivatedN");
+
+       String totalTime;
+       Bitmap* pBitmapScreenMode = null;
+
+       Rectangle rect(0, 0, 0, 0);
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       CheckCallStatus();
+       CheckLowBatteryStatus();
+
+       r = __pVideoPlayerPresentationModel->StartPlay();
+       TryReturnVoid(r == E_SUCCESS, "__pVideoPlayerPresentationModel->StartPlay() failed:%s", GetErrorMessage(r));
+
+       GetTotalTime(totalTime);
+
+       AppLogDebug("totalTime [%ls]", totalTime.GetPointer());
+
+       __pTotalTimeLabel->SetText(totalTime);
+       __pTotalTimeLabel->Invalidate(true);
+
+       String mediaPathName = __pVideoPlayerPresentationModel->GetMediaPathName();
+       rect = __pVideoPlayerPresentationModel->GetVideoInfoN(mediaPathName);
+
+       if (rect.width > W_NORMAL || rect.height > W_NORMAL)
+       {
+               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+
+               if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+               {
+                       __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+               }
+               else
+               {
+                       __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+               }
+       }
+
+       r = PowerManager::KeepScreenOnState(true, false);
+       TryReturnVoid(r == E_SUCCESS, "PowerManager::KeepScreenOnState() failed:%s", GetErrorMessage(r));
+
+       delete pBitmapScreenMode;
+       pBitmapScreenMode = null;
+}
+
+void
+VideoPlayerForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+       result r = E_FAILURE;
+
+       AppLogDebug("OnSceneDeactivated");
+
+       r = __pVideoPlayerPresentationModel->PausePlay();
+       TryReturnVoid(r == E_SUCCESS, "__pVideoPlayerPresentationModel->PausePlay() failed:%s", GetErrorMessage(r));
+
+       r = PowerManager::KeepScreenOnState(false);
+       TryReturnVoid(r == E_SUCCESS, "PowerManager::KeepScreenOnState() failed:%s", GetErrorMessage(r));
+}
+
+void
+VideoPlayerForm::OnPlayOpened(result r)
+{
+       AppLogDebug("OnPlayOpened");
+}
+
+void
+VideoPlayerForm::OnPlayEndOfClip(void)
+{
+       result r = E_FAILURE;
+
+       Bitmap* pPlayBitmap = null;
+       Bitmap* pBitmapScreenMode = null;
+       Bitmap* pBitmapSoundPath = null;
+
+       AppLogDebug("OnPlayEndOfClip");
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       if (__pSoundPathPopup != null)
+       {
+               if (__pSoundPathPopup->GetShowState() == true)
+               {
+                       __pSoundPathPopup->SetShowState(false);
+               }
+       }
+
+       ShowControl(true);
+       UpdateProgressBar(START_TIME);
+
+       __pCurrenTimeLabel->SetText(INIT_TIME);
+       __pCurrenTimeLabel->Invalidate(true);
+
+       pPlayBitmap = pAppResource->GetBitmapN(L"T01_icon_toolbar_play.png");
+       TryCatch(pPlayBitmap != null, r = E_SYSTEM, "pPlayBitmap is null");
+       __pPlayPauseButton->SetNormalBackgroundBitmap(*pPlayBitmap);
+
+       Invalidate(true);
+
+       __pPlayPauseButton->SetActionId(IDA_BUTTON_PLAY);
+
+       __pSlider->SetEnabled(false);
+
+       if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+       {
+               r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+               TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+               __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+       }
+       else
+       {
+               r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+               TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+               __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+       }
+
+       r = PowerManager::KeepScreenOnState(false);
+       TryCatch(r == E_SUCCESS, , "PowerManager::KeepScreenOnState() failed:%s", GetErrorMessage(r));
+
+       __pUiControlTimer->Cancel();
+
+       if ((__pVideoPlayerPresentationModel->GetMediaCount() -1) != __pVideoPlayerPresentationModel->GetCurrentMediaIndex())
+       {
+               SetScreenMode(SCREEN_MODE_NORMAL);
+               __pVideoPlayerPresentationModel->SetCurrentMediaIndex();
+
+               if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+               {
+                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                       __pButtonRightItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+
+                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                       __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+               }
+               else
+               {
+                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                       __pButtonLeftItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+
+                       pBitmapSoundPath = pAppResource->GetBitmapN(L"T01_icon_title_soundpath.png");
+                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapSoundPath);
+                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                       __pButtonRightItem->SetActionId(IDA_BUTTON_SOUNDPATH);
+                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+               }
+
+               __pSlider->SetEnabled(true);
+
+               __pVideoPlayerPresentationModel->InitializePlayer();
+               __pVideoPlayerPresentationModel->StartPlay();
+       }
+
+CATCH:
+       delete pPlayBitmap;
+       pPlayBitmap = null;
+}
+
+void
+VideoPlayerForm::OnPlayBuffering(int percent)
+{
+       AppLogDebug("OnPlayBuffering");
+}
+
+void
+VideoPlayerForm::OnPlayErrorOccurred(PlayerErrorReason r)
+{
+       AppLogDebug("OnPlayErrorOccurred [%d]", r);
+}
+
+void
+VideoPlayerForm::OnPlayInterrupted(void)
+{
+       AppLogDebug("OnPlayInterrupted");
+}
+
+void
+VideoPlayerForm::OnPlayReleased(void)
+{
+       AppLogDebug("OnPlayReleased");
+}
+
+void
+VideoPlayerForm::OnVideoFrameDecoded(Player& src, BitmapPixelFormat bitmapPixelFormat, const Dimension& dim,
+               const byte* pBuffer, int sizeOfBuffer, result r)
+{
+       ByteBuffer buf;
+       OverlayRegionBufferPixelFormat overlayPixelFormat;
+
+       TryReturnVoid(r == E_SUCCESS, "r is %s", GetErrorMessage(r));
+
+       TryReturnVoid(__pOverlayRegion, "__pOverlayRegion is null");
+
+       if (bitmapPixelFormat == BITMAP_PIXEL_FORMAT_ARGB8888)
+       {
+               overlayPixelFormat = OVERLAY_REGION_BUFFER_PIXEL_FORMAT_ARGB8888;
+       }
+       else if (bitmapPixelFormat == BITMAP_PIXEL_FORMAT_RGB565)
+       {
+               overlayPixelFormat = OVERLAY_REGION_BUFFER_PIXEL_FORMAT_RGB565;
+       }
+       else
+       {
+               return;
+       }
+
+       r = buf.Construct(pBuffer, 0, sizeOfBuffer, sizeOfBuffer);
+       TryReturnVoid(r == E_SUCCESS, "buf.Construct() failed:%s", GetErrorMessage(r));
+
+       r = __pOverlayRegion->SetInputBuffer(buf, dim, overlayPixelFormat);
+       TryReturnVoid(r == E_SUCCESS, "__pOverlayRegion->SetInputBuffer() failed:%s", GetErrorMessage(r));
+}
+
+OverlayRegion*
+VideoPlayerForm::GetOverlayRegion(void)
+{
+       return __pOverlayRegion;
+}
+
+void
+VideoPlayerForm::OnActionPerformed(const Control& source, int actionId)
+{
+       result r = E_FAILURE;
+
+       String currentTime;
+       String totalTime;
+
+       Bitmap* pBitmapScreenMode = null;
+
+       PlayerState playState = PLAYER_STATE_ERROR;
+       AppLogDebug("OnActionPerformed : %d", actionId);
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       playState = __pVideoPlayerPresentationModel->GetState();
+
+       Rectangle clientRect = GetClientAreaBounds();
+       Rectangle rect = __pVideoPlayerPresentationModel->GetVideoInfoN(
+                       __pVideoPlayerPresentationModel->GetMediaPathName());
+
+       switch (actionId)
+       {
+       case IDA_BUTTON_PLAY:
+               {
+                       __setPauseState = false;
+
+                       r = __pVideoPlayerPresentationModel->StartPlay();
+                       TryCatch(r == E_SUCCESS, , "__pVideoPlayerPresentationModel->StartPlay() failed:%s",
+                                       GetErrorMessage(r));
+
+                       __pSlider->SetEnabled(true);
+
+                       if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+                       {
+                               if (rect.width > W_NORMAL || rect.height > W_NORMAL)
+                               {
+                                       if (__screenMode == SCREEN_MODE_NORMAL)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+                                       }
+                                       else if (__screenMode == SCREEN_MODE_FULL)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+                                       }
+                               }
+                               else
+                               {
+                                       if (__screenMode == SCREEN_MODE_FIT)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+                                       }
+                                       else if (__screenMode == SCREEN_MODE_NORMAL)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+                                       }
+                                       else
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+                                       }
+                               }
+
+                               r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                               TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                               __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                       }
+                       else
+                       {
+                               if (rect.width > W_NORMAL || rect.height > W_NORMAL)
+                               {
+                                       if (__screenMode == SCREEN_MODE_NORMAL)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+                                       }
+                                       else if (__screenMode == SCREEN_MODE_FULL)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+                                       }
+                               }
+                               else
+                               {
+                                       if (__screenMode == SCREEN_MODE_FIT)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+                                       }
+                                       else if (__screenMode == SCREEN_MODE_NORMAL)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+                                       }
+                                       else
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+                                       }
+                               }
+
+                               r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                               TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                               __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                       }
+
+                       r = PowerManager::KeepScreenOnState(true, false);
+                       TryCatch(r == E_SUCCESS, , "PowerManager::KeepScreenOnState() failed:%s", GetErrorMessage(r));
+
+                       delete pBitmapScreenMode;
+                       pBitmapScreenMode = null;
+               }
+               break;
+
+       case IDA_BUTTON_PAUSE:
+               {
+                       __setPauseState = true;
+
+                       r = __pVideoPlayerPresentationModel->PausePlay();
+                       TryCatch(r == E_SUCCESS, , "__pVideoPlayerPresentationModel->PausePlay() failed:%s",
+                                       GetErrorMessage(r));
+
+                       if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+                       {
+                               r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+                               TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                               __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                       }
+                       else
+                       {
+                               r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+                               TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                               __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                       }
+
+                       r = PowerManager::KeepScreenOnState(false);
+                       TryCatch(r == E_SUCCESS, , "PowerManager::KeepScreenOnState() failed:%s", GetErrorMessage(r));
+               }
+               break;
+
+       case IDA_BUTTON_FULLSCREEN:
+               {
+                       if (playState != PLAYER_STATE_PLAYING)
+                       {
+                               return;
+                       }
+
+                       if (playState == PLAYER_STATE_PLAYING)
+                       {
+                               __pUiControlTimer->Cancel();
+                               __pUiControlTimer->Start(SHOW_CONTROL_DURATION);
+                       }
+
+                       switch (__screenMode)
+                       {
+                       case SCREEN_MODE_FIT:
+                               {
+                                       r = SetScreenMode(SCREEN_MODE_FULL);
+                                       TryCatch(r == E_SUCCESS, , "SetScreenMode() failed:%s", GetErrorMessage(r));
+
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+
+                                       if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+                                       {
+                                               r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                               TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon failed:%s", GetErrorMessage(r));
+
+                                               __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                       }
+                                       else
+                                       {
+                                               r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                               TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon failed:%s", GetErrorMessage(r));
+
+                                               __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                       }
+
+                                       delete pBitmapScreenMode;
+                                       pBitmapScreenMode = null;
+                               }
+                               break;
+
+                       case SCREEN_MODE_FULL:
+                               {
+                                       if (rect.width > W_NORMAL || rect.height > W_NORMAL)
+                                       {
+                                               r = SetScreenMode(SCREEN_MODE_NORMAL);
+                                               TryCatch(r == E_SUCCESS, , "SetScreenMode() failed:%s", GetErrorMessage(r));
+
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+
+                                               if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+                                               {
+                                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon failed:%s",
+                                                                       GetErrorMessage(r));
+
+                                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                               }
+                                               else
+                                               {
+                                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon failed:%s",
+                                                                       GetErrorMessage(r));
+
+                                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                               }
+                                       }
+                                       else
+                                       {
+                                               r = SetScreenMode(SCREEN_MODE_NORMAL);
+                                               TryCatch(r == E_SUCCESS, , "SetScreenMode() failed:%s", GetErrorMessage(r));
+
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+
+                                               if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+                                               {
+                                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon failed:%s",
+                                                                       GetErrorMessage(r));
+
+                                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                               }
+                                               else
+                                               {
+                                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon failed:%s",
+                                                                       GetErrorMessage(r));
+
+                                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                               }
+                                       }
+
+                                       delete pBitmapScreenMode;
+                                       pBitmapScreenMode = null;
+                               }
+                               break;
+
+                       case SCREEN_MODE_NORMAL:
+                               {
+                                       if (rect.width > W_NORMAL || rect.height > W_NORMAL)
+                                       {
+                                               r = SetScreenMode(SCREEN_MODE_FULL);
+                                               TryCatch(r == E_SUCCESS, , "SetScreenMode() failed:%s", GetErrorMessage(r));
+
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+
+                                               if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+                                               {
+                                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon failed:%s",
+                                                                       GetErrorMessage(r));
+
+                                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                               }
+                                               else
+                                               {
+                                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon failed:%s",
+                                                                       GetErrorMessage(r));
+
+                                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                               }
+                                       }
+                                       else
+                                       {
+                                               r = SetScreenMode(SCREEN_MODE_FIT);
+                                               TryCatch(r == E_SUCCESS, , "SetScreenMode() failed:%s", GetErrorMessage(r));
+
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+
+                                               if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+                                               {
+                                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon failed:%s",
+                                                                       GetErrorMessage(r));
+
+                                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                               }
+                                               else
+                                               {
+                                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon failed:%s",
+                                                                       GetErrorMessage(r));
+
+                                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                               }
+                                       }
+
+                                       delete pBitmapScreenMode;
+                                       pBitmapScreenMode = null;
+                               }
+                               break;
+
+                       default:
+                               break;
+                       }
+               }
+               break;
+
+       case IDA_BUTTON_SOUNDPATH:
+               {
+                       if (__pSoundPathPopup == null)
+                       {
+                               PlayerSoundPathPopupInit();
+                       }
+
+                       if (playState == PLAYER_STATE_PLAYING)
+                       {
+                               __pUiControlTimer->Cancel();
+                               __pUiControlTimer->Start(SHOW_CONTROL_DURATION);
+                       }
+                       __pSoundPathPopup->ShowPopup(true);
+               }
+               break;
+
+       case IDA_BUTTON_FASTFORWARD:
+               {
+                       if (__actionTouchLongPressed == true)
+                       {
+                               __actionTouchLongPressed = false;
+                               break;
+                       }
+
+                       if (playState == PLAYER_STATE_PLAYING)
+                       {
+                               __pUiControlTimer->Start(SHOW_CONTROL_DURATION);
+                       }
+
+                       __pVideoPlayerPresentationModel->Forward();
+               }
+               break;
+
+       case IDA_BUTTON_FASTREWIND:
+               {
+                       if (__actionTouchLongPressed == true)
+                       {
+                               __actionTouchLongPressed = false;
+                               break;
+                       }
+
+                       if (playState == PLAYER_STATE_PLAYING)
+                       {
+                               __pUiControlTimer->Start(SHOW_CONTROL_DURATION);
+                       }
+
+                       __pVideoPlayerPresentationModel->Rewind();
+               }
+               break;
+
+       case IDA_BUTTON_BACK:
+               {
+                       Application::GetInstance()->Terminate();
+               }
+               break;
+
+       default:
+               break;
+       }
+
+CATCH:
+       delete pBitmapScreenMode;
+       pBitmapScreenMode = null;
+}
+
+void
+VideoPlayerForm::OnTouchPressed(const Control& source, const Point& currentPosition,
+               const TouchEventInfo& touchInfo)
+{
+       AppLogDebug("OnTouchPressed");
+       __pUiControlTimer->Cancel();
+}
+
+void
+VideoPlayerForm::OnTouchReleased(const Control& source, const Point& currentPosition,
+               const TouchEventInfo& touchInfo)
+{
+       result r = E_FAILURE;
+
+       PlayerState playState = PLAYER_STATE_ERROR;
+
+       AppLogDebug("OnTouchReleased");
+
+       ChangedControlPos();
+
+       if ((&source == __pFastForwardButton
+               || &source == __pFastRewindButton)
+               && __actionTouchLongPressed == true)
+       {
+               __pVideoPlayerPresentationModel->StopFastForwardRewind();
+       }
+
+       playState = __pVideoPlayerPresentationModel->GetState();
+
+       if (playState != PLAYER_STATE_PAUSED)
+       {
+               if (source.GetName() == L"IDL_MAIN_FORM" && playState == PLAYER_STATE_PLAYING)
+               {
+                       if (__isControlVisibleState == true)
+                       {
+                               ShowControl(false);
+                       }
+                       else
+                       {
+                               ShowControl(true);
+
+                               r = __pUiControlTimer->Start(SHOW_CONTROL_DURATION);
+                               TryReturnVoid(r == E_SUCCESS, "__pUiControlTimer->Start() failed:%s", GetErrorMessage(r));
+                       }
+               }
+       }
+}
+
+void
+VideoPlayerForm::OnTouchLongPressed(const Control& source, const Point& currentPosition,
+               const TouchEventInfo& touchInfo)
+{
+       AppLogDebug("OnTouchLongPressed");
+
+       if (&source == __pFastForwardButton)
+       {
+               __actionTouchLongPressed = true;
+
+               if (__setPauseState == true)
+               {
+                       __pVideoPlayerPresentationModel->FastForward(false);
+               }
+               else
+               {
+                       __pVideoPlayerPresentationModel->FastForward(true);
+               }
+       }
+       else if (&source == __pFastRewindButton)
+       {
+               __actionTouchLongPressed = true;
+
+               if (__setPauseState == true)
+               {
+                       __pVideoPlayerPresentationModel->FastRewind(false);
+               }
+               else
+               {
+                       __pVideoPlayerPresentationModel->FastRewind(true);
+               }
+       }
+}
+
+void
+VideoPlayerForm::OnTouchMoved(const Control& source, const Point& currentPosition,
+               const TouchEventInfo& touchInfo)
+{
+}
+
+void
+VideoPlayerForm::OnTouchFocusIn(const Control& source, const Point& currentPosition,
+               const TouchEventInfo& touchInfo)
+{
+}
+
+void
+VideoPlayerForm::OnTouchFocusOut(const Control& source, const Point& currentPosition,
+               const TouchEventInfo& touchInfo)
+{
+}
+
+void
+VideoPlayerForm::OnTimerExpired(Timer& timer)
+{
+       if (timer.GetHashCode() == __pUiControlTimer->GetHashCode())
+       {
+               if (__pVideoPlayerPresentationModel->GetState() == PLAYER_STATE_PLAYING)
+               {
+                       ShowControl(false);
+               }
+       }
+}
+
+void
+VideoPlayerForm::OnAdjustmentValueChanged(const Control& source, int adjustment)
+{
+       result r = E_FAILURE;
+       long seekTime = 0;
+
+       AppLogDebug("OnAdjustmentValueChanged : %d", adjustment);
+
+       if (adjustment >= MIN_PROGRESS_RANGE && adjustment < MAX_PROGRESS_RANGE)
+       {
+               seekTime = adjustment * (__pVideoPlayerPresentationModel->GetDuration() / MAX_PROGRESS_RANGE);
+
+               r = __pVideoPlayerPresentationModel->SeekTo(seekTime);
+               TryReturnVoid(r == E_SUCCESS, "__pVideoPlayerPresentationModel->SeekTo() failed:%s", GetErrorMessage(r));
+
+               UpdateProgressBar(adjustment);
+       }
+
+       if (__pVideoPlayerPresentationModel->GetState() == PLAYER_STATE_PLAYING)
+       {
+               __pUiControlTimer->Start(SHOW_CONTROL_DURATION);
+       }
+}
+
+void
+VideoPlayerForm::OnKeyPressed(const Control& source, KeyCode keyCode)
+{
+       AppLogDebug("OnKeyPressed Control : %ls, KeyCode : %d", source.GetName().GetPointer(), keyCode);
+
+       if (keyCode == KEY_SIDE_UP || keyCode == KEY_SIDE_DOWN)
+       {
+               // Empty statement
+       }
+}
+
+void
+VideoPlayerForm::OnKeyReleased(const Control& source, KeyCode keyCode)
+{
+}
+
+void
+VideoPlayerForm::OnKeyLongPressed(const Control& source, KeyCode keyCode)
+{
+}
+
+void
+VideoPlayerForm::UpdateProgressBar(const int currentPlayTime)
+{
+       TryReturnVoid(__pSlider, "__pSlider is null");
+
+       __pSlider->SetValue(currentPlayTime);
+       __pSlider->Invalidate(true);
+}
+
+void
+VideoPlayerForm::InitTimer(void)
+{
+       __pUiControlTimer = new (std::nothrow) Timer();
+       __pUiControlTimer->Construct(*this);
+}
+
+void
+VideoPlayerForm::DeleteTimer(void)
+{
+       if (__pUiControlTimer != null)
+       {
+               __pUiControlTimer->Cancel();
+               delete __pUiControlTimer;
+               __pUiControlTimer = null;
+       }
+}
+
+result
+VideoPlayerForm::SetPlayPauseButtonImage(PlayerState playState)
+{
+       result r = E_SUCCESS;
+
+       Bitmap* pPlayBitmap = null;
+       Bitmap* pPauseBitmap = null;
+
+       AppLogDebug("SetPlayPauseButtonImage : %d", playState);
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       __pPlayPauseButton = static_cast<Button*>(GetControl("IDC_BUTTON_PLAY"));
+       TryCatch(__pPlayPauseButton != null, r = E_SYSTEM, "__pPlayPauseButton is null");
+
+       if (playState == PLAYER_STATE_PLAYING)
+       {
+               pPauseBitmap = pAppResource->GetBitmapN(L"T01_icon_toolbar_pause.png");
+               TryCatch(pPauseBitmap != null, r = E_SYSTEM, "pPauseBitmap is null");
+
+               __pPlayPauseButton->SetNormalBackgroundBitmap(*pPauseBitmap);
+
+               __pPlayPauseButton->SetActionId(IDA_BUTTON_PAUSE);
+               __pPlayPauseButton->Invalidate(true);
+
+               delete pPauseBitmap;
+       }
+       else
+       {
+               pPlayBitmap = pAppResource->GetBitmapN(L"T01_icon_toolbar_play.png");
+               TryCatch(pPlayBitmap != null, r = E_SYSTEM, "pPlayBitmap is null");
+
+               __pPlayPauseButton->SetNormalBackgroundBitmap(*pPlayBitmap);
+
+               __pPlayPauseButton->SetActionId(IDA_BUTTON_PLAY);
+               __pPlayPauseButton->Invalidate(true);
+
+               delete pPlayBitmap;
+       }
+
+       return r;
+
+CATCH:
+       return r;
+}
+
+void
+VideoPlayerForm::GetTotalTime(String& totalTime)
+{
+       result r = E_FAILURE;
+
+       int hour = 0;
+       int min = 0;
+       int second = 0;
+
+       hour = static_cast<int>(__pVideoPlayerPresentationModel->GetDuration() / (ONE_HOUR * MILLISECOND));
+       min = static_cast<int>((__pVideoPlayerPresentationModel->GetDuration() % (ONE_HOUR * MILLISECOND))
+                       / (ONE_MIN * MILLISECOND));
+       second = static_cast<int>((
+                       (__pVideoPlayerPresentationModel->GetDuration() % (ONE_HOUR * MILLISECOND)) % (ONE_MIN * MILLISECOND))
+                       / (MILLISECOND));
+       r = totalTime.Format(20, L"%02d:%02d:%02d", hour, min, second);
+       TryReturnVoid(r == E_SUCCESS, "__totalTime.Format() failed:%s", GetErrorMessage(r));
+}
+
+void
+VideoPlayerForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
+{
+       AppLogDebug("OnOrientationChanged");
+
+       SetScreenMode(__screenMode);
+
+       switch (orientationStatus)
+       {
+       case ORIENTATION_STATUS_PORTRAIT:
+               {
+                       ChangedControlPos();
+               }
+               break;
+
+       case ORIENTATION_STATUS_LANDSCAPE:
+               // fall through
+       case ORIENTATION_STATUS_LANDSCAPE_REVERSE:
+               {
+                       ChangedControlPos();
+               }
+               break;
+
+       default:
+               break;
+       }
+}
+
+void
+VideoPlayerForm::PlayerSoundPathPopupInit(void)
+{
+       int tempAudioRouteMode = 0;
+       int currentOutputDevice = 0;
+       tempAudioRouteMode = __audioRouteMode;
+       AudioRouteInfo currentAudioRoute(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);
+
+       currentAudioRoute = __pAudioRouteManager->GetActiveAudioRoute();
+       currentOutputDevice = static_cast<int>(currentAudioRoute.GetOutputAudioDevice());
+
+       __pSoundPathPopup = new (std::nothrow) SoundPathPopup();
+       result r = __pSoundPathPopup->Construct(currentOutputDevice,
+                       __pAudioRouteManager->GetActiveBluetoothA2dpName(), tempAudioRouteMode);
+       TryReturnVoid(r == E_SUCCESS, "__pSoundPathPopup->Construct() failed:%s", GetErrorMessage(r));
+}
+
+void
+VideoPlayerForm::CreateMessageBox(const String& title, const String& message, MessageBoxStyle style,
+               unsigned long timeout)
+{
+}
+
+void
+VideoPlayerForm::ShowControl(bool setShow)
+{
+       AppLogDebug("ShowControl");
+
+       if (setShow == true)
+       {
+               SetActionBarsVisible(FORM_ACTION_BAR_INDICATOR|FORM_ACTION_BAR_HEADER, true);
+
+               __pPlayPauseButton->SetShowState(true);
+               __pFastForwardButton->SetShowState(true);
+               __pFastRewindButton->SetShowState(true);
+               __pBackButton->SetShowState(true);
+               __pCurrenTimeLabel->SetShowState(true);
+               __pTotalTimeLabel->SetShowState(true);
+               __pSlider->SetShowState(true);
+               __pControlLabel->SetShowState(true);
+               __pFirstLineLabel->SetShowState(true);
+               __pVerticalLeftLine->SetShowState(true);
+               __pVerticalRightLine->SetShowState(true);
+
+               __isControlVisibleState = true;
+
+               Invalidate(true);
+       }
+       else
+       {
+               SetActionBarsVisible(FORM_ACTION_BAR_INDICATOR|FORM_ACTION_BAR_HEADER, false);
+
+               __pPlayPauseButton->SetShowState(false);
+               __pFastForwardButton->SetShowState(false);
+               __pFastRewindButton->SetShowState(false);
+               __pBackButton->SetShowState(false);
+               __pCurrenTimeLabel->SetShowState(false);
+               __pTotalTimeLabel->SetShowState(false);
+               __pSlider->SetShowState(false);
+               __pControlLabel->SetShowState(false);
+               __pFirstLineLabel->SetShowState(false);
+               __pVerticalLeftLine->SetShowState(false);
+               __pVerticalRightLine->SetShowState(false);
+
+               __isControlVisibleState = false;
+       }
+}
+
+void
+VideoPlayerForm::ChangedControlPos(void)
+{
+       Rectangle controlRect(0, 0, 0, 0);
+       Rectangle posRect(0, 0, 0, 0);
+
+       result r = E_FAILURE;
+
+       AppLogDebug("ChangedControlPos");
+
+       if (GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT)
+       {
+               controlRect = __pControlLabel->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlRect.height;
+               controlRect.y = posRect.y;
+
+               r = __pControlLabel->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pControlLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+               controlRect = __pFastRewindButton->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlRect.height;
+               controlRect.y = posRect.y;
+
+               r = __pFastRewindButton->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pFastRewindButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+               controlRect = __pPlayPauseButton->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlRect.height;
+               controlRect.y = posRect.y;
+
+               r = __pPlayPauseButton->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pPlayPauseButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+               controlRect = __pFastForwardButton->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlRect.height;
+               controlRect.y = posRect.y;
+
+               r = __pFastForwardButton->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pFastForwardButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+               controlRect = __pBackButton->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlRect.height;
+               controlRect.y = posRect.y;
+
+               r = __pBackButton->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pBackButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+               Rectangle controlLabelRect = __pControlLabel->GetBounds();
+               controlRect = __pFirstLineLabel->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlLabelRect.height - controlRect.height;
+               controlRect.y = posRect.y;
+
+               r = __pFirstLineLabel->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pFirstLineLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+               controlRect = __pCurrenTimeLabel->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlLabelRect.height + MARGIN_PORTRAIT_SLIDER;
+               controlRect.y = posRect.y;
+
+               r = __pCurrenTimeLabel->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pCurrenTimeLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+               controlRect = __pTotalTimeLabel->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlLabelRect.height + MARGIN_PORTRAIT_SLIDER;
+               controlRect.y = posRect.y;
+
+               r = __pTotalTimeLabel->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pTotalTimeLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+               controlRect = __pSlider->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlLabelRect.height;
+               controlRect.y = posRect.y;
+
+               r = __pSlider->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pSlider->SetBounds() failed:%s", GetErrorMessage(r));
+
+               controlRect = __pVerticalLeftLine->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlRect.height;
+               controlRect.y = posRect.y;
+
+               r = __pVerticalLeftLine->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pVerticalLeftLine->SetBounds() failed:%s", GetErrorMessage(r));
+
+               controlRect = __pVerticalRightLine->GetBounds();
+               posRect.y = GetClientAreaBounds().height - controlRect.height;
+               controlRect.y = posRect.y;
+
+               r = __pVerticalRightLine->SetBounds(controlRect);
+               TryReturnVoid(r == E_SUCCESS, "__pVerticalRightLine->SetBounds() failed:%s", GetErrorMessage(r));
+       }
+       else if (GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE
+                       || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
+       {
+               if (GetClientAreaBounds().width <= WVGA_W_FULL)
+               {
+                       controlRect = __pControlLabel->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pControlLabel->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pControlLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pFastRewindButton->GetBounds();
+                       posRect.x = WVGA_X_FASTREWIND_BTN;
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.x = posRect.x;
+                       controlRect.y = posRect.y;
+
+                       r = __pFastRewindButton->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pFastRewindButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pPlayPauseButton->GetBounds();
+                       posRect.x = WVGA_X_PLAYPAUSE_BTN;
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.x = posRect.x;
+                       controlRect.y = posRect.y;
+
+                       r = __pPlayPauseButton->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pPlayPauseButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pFastForwardButton->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pFastForwardButton->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pFastForwardButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pBackButton->GetBounds();
+                       posRect.x = WVGA_X_BACK_BTN;
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.x = posRect.x;
+                       controlRect.y = posRect.y;
+
+                       r = __pBackButton->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pBackButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       Rectangle controlLabelRect = __pControlLabel->GetBounds();
+                       controlRect = __pFirstLineLabel->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlLabelRect.height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pFirstLineLabel->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pFirstLineLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pCurrenTimeLabel->GetBounds();
+                       posRect.x = WVGA_X_CURRENT_TIME_LABEL;
+                       posRect.y = GetClientAreaBounds().height - controlLabelRect.height + MARGIN_LANDSCAPE_SLIDER;
+                       controlRect.x = posRect.x;
+                       controlRect.y = posRect.y;
+
+                       r = __pCurrenTimeLabel->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pCurrenTimeLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pTotalTimeLabel->GetBounds();
+                       posRect.x = WVGA_X_TOTAL_TIME_LABEL;
+                       posRect.y = GetClientAreaBounds().height - controlLabelRect.height + MARGIN_LANDSCAPE_SLIDER;
+                       controlRect.x = posRect.x;
+                       controlRect.y = posRect.y;
+
+                       r = __pTotalTimeLabel->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pTotalTimeLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pSlider->GetBounds();
+                       posRect.x = WVGA_X_SLIDER;
+                       posRect.y = GetClientAreaBounds().height - controlLabelRect.height;
+                       controlRect.x = posRect.x;
+                       controlRect.y = posRect.y;
+
+                       r = __pSlider->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pSlider->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pVerticalLeftLine->GetBounds();
+                       posRect.x = WVGA_X_VERTICAL_LEFT_LINE;
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.x = posRect.x;
+                       controlRect.y = posRect.y;
+
+                       r = __pVerticalLeftLine->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pVerticalLeftLine->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pVerticalRightLine->GetBounds();
+                       posRect.x = WVGA_X_VERTICAL_RIGHT_LINE;
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.x = posRect.x;
+                       controlRect.y = posRect.y;
+
+                       r = __pVerticalRightLine->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pVerticalRightLine->SetBounds() failed:%s", GetErrorMessage(r));
+               }
+               else
+               {
+                       controlRect = __pControlLabel->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pControlLabel->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pControlLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pFastRewindButton->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pFastRewindButton->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pFastRewindButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pPlayPauseButton->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pPlayPauseButton->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pPlayPauseButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pFastForwardButton->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pFastForwardButton->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pFastForwardButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pBackButton->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pBackButton->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pBackButton->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       Rectangle controlLabelRect = __pControlLabel->GetBounds();
+                       controlRect = __pFirstLineLabel->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlLabelRect.height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pFirstLineLabel->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pFirstLineLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pCurrenTimeLabel->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlLabelRect.height + MARGIN_LANDSCAPE_SLIDER;
+                       controlRect.y = posRect.y;
+
+                       r = __pCurrenTimeLabel->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pCurrenTimeLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pTotalTimeLabel->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlLabelRect.height + MARGIN_LANDSCAPE_SLIDER;
+                       controlRect.y = posRect.y;
+
+                       r = __pTotalTimeLabel->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pTotalTimeLabel->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pSlider->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlLabelRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pSlider->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pSlider->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pVerticalLeftLine->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pVerticalLeftLine->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pVerticalLeftLine->SetBounds() failed:%s", GetErrorMessage(r));
+
+                       controlRect = __pVerticalRightLine->GetBounds();
+                       posRect.y = GetClientAreaBounds().height - controlRect.height;
+                       controlRect.y = posRect.y;
+
+                       r = __pVerticalRightLine->SetBounds(controlRect);
+                       TryReturnVoid(r == E_SUCCESS, "__pVerticalRightLine->SetBounds() failed:%s", GetErrorMessage(r));
+               }
+       }
+}
+
+void
+VideoPlayerForm::ShowControlByFrameActivated(void)
+{
+       Bitmap* pPlayBitmap = null;
+
+       AppLogDebug("ShowControlByFrameActivated");
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       SetActionBarsVisible(FORM_ACTION_BAR_INDICATOR|FORM_ACTION_BAR_HEADER, true);
+
+       pPlayBitmap = pAppResource->GetBitmapN(L"T01_icon_toolbar_play.png");
+       __pPlayPauseButton->SetNormalBackgroundBitmap(*pPlayBitmap);
+
+       __pPlayPauseButton->SetShowState(true);
+       __pFastRewindButton->SetShowState(true);
+       __pFastForwardButton->SetShowState(true);
+       __pBackButton->SetShowState(true);
+       __pSlider->SetShowState(true);
+       __pCurrenTimeLabel->SetShowState(true);
+       __pTotalTimeLabel->SetShowState(true);
+       __pControlLabel->SetShowState(true);
+       __pFirstLineLabel->SetShowState(true);
+       __pVerticalLeftLine->SetShowState(true);
+       __pVerticalRightLine->SetShowState(true);
+
+       Invalidate(true);
+
+       CheckCallStatus();
+       CheckLowBatteryStatus();
+
+       delete pPlayBitmap;
+}
+
+void
+VideoPlayerForm::CancelTimerByFrameDeactivated(void)
+{
+       result r = E_FAILURE;
+
+       AppLogDebug("CancelTimerByFrameDeactivated");
+
+       __pUiControlTimer->Cancel();
+
+       __setPauseState = true;
+
+       if (__audioRouteMode == AUDIO_ROUTE_SPEAKER_ONLY)
+       {
+               r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+               TryReturnVoid(r == E_SUCCESS, "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+               __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+       }
+       else
+       {
+               r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+               TryReturnVoid(r == E_SUCCESS, "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+               __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+       }
+}
+
+void
+VideoPlayerForm::OnPlayContentChanged(const String& fileName)
+{
+       String totalTime;
+
+       AppLogDebug("OnPlayContentChanged");
+
+       GetTotalTime(totalTime);
+
+       __pHeader->SetTitleText(fileName);
+       __pHeader->Invalidate(true);
+
+       __pTotalTimeLabel->SetText(totalTime);
+       __pTotalTimeLabel->Invalidate(true);
+}
+
+void
+VideoPlayerForm::OnPlayTimeChanged(int currentProgressPos, String& playTime)
+{
+       AppLogDebug("OnPlayTimeChanged");
+
+       __pSlider->SetValue(currentProgressPos);
+       __pSlider->Invalidate(true);
+
+       __pCurrenTimeLabel->SetText(playTime);
+       __pCurrenTimeLabel->Invalidate(true);
+}
+
+void
+VideoPlayerForm::OnPlayStateChanged(PlayerState playState)
+{
+       AppLogDebug("OnPlayStateChanged");
+
+       SetPlayPauseButtonImage(playState);
+
+       if (playState == PLAYER_STATE_PLAYING)
+       {
+               __pUiControlTimer->Start(SHOW_CONTROL_DURATION);
+       }
+       else
+       {
+               __pUiControlTimer->Cancel();
+               ShowControl(true);
+       }
+}
+
+void
+VideoPlayerForm::CheckLowBatteryStatus(void)
+{
+       int result = 0;
+       MessageBox msgBox;
+       bool isCharging = false;
+       BatteryLevel batteryLevel;
+
+       AppLogDebug("CheckLowBatteryStatus");
+
+       Battery::GetCurrentLevel(batteryLevel);
+       Battery::IsCharging(isCharging);
+
+       if (batteryLevel == BATTERY_CRITICAL || batteryLevel == BATTERY_EMPTY)
+       {
+               if (isCharging == false)
+               {
+                       msgBox.Construct(L"", L"Unable to video play.Low battery", MSGBOX_STYLE_NONE, MESSAGEBOX_DISPLAY_TIME_3_SEC);
+                       msgBox.ShowAndWait(result);
+
+                       switch (result)
+                       {
+                       case MSGBOX_RESULT_CLOSE:
+                               {
+                                       AppLogDebug("MSGBOX_RESULT_CLOSE");
+                                       OnFormBackRequested(*this);
+                               }
+                               break;
+
+                       default:
+                               break;
+                       }
+               }
+       }
+}
+
+void
+VideoPlayerForm::CheckCallStatus(void)
+{
+       MessageBox msgBox;
+       String dispString;
+       int modalResult = 0;
+       result r = E_FAILURE;
+
+       AppLogDebug("CheckCallStatus");
+
+       CallManager* pCallManager = new (std::nothrow) CallManager();
+
+       r = pCallManager->Construct();
+       TryCatch(r == E_SUCCESS, , "pCallManager->Construct() failed : %s", GetErrorMessage(r));
+
+       if (pCallManager->GetCurrentCallStatus() != CALL_STATUS_IDLE
+               && pCallManager->GetCurrentCallStatus() != CALL_STATUS_UNDEFINED)
+       {
+               AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+               pAppResource->GetString(L"IDS_VPL_BODY_UNABLE_TO_PLAY_VIDEO_DURING_CALL", dispString);
+
+               msgBox.Construct(L"", dispString, MSGBOX_STYLE_NONE, MESSAGEBOX_DISPLAY_TIME_3_SEC);
+               msgBox.ShowAndWait(modalResult);
+
+               switch (modalResult)
+               {
+               case MSGBOX_RESULT_CLOSE:
+                       {
+                               AppLogDebug("MSGBOX_RESULT_CLOSE");
+                               OnFormBackRequested(*this);
+                       }
+                       break;
+
+               default:
+                       break;
+               }
+       }
+
+CATCH:
+       delete pCallManager;
+       pCallManager = null;
+}
+
+void
+VideoPlayerForm::OnFormBackRequested(Form& source)
+{
+       result r = E_FAILURE;
+
+       AppLogDebug("OnFormBackRequested");
+
+       UiApp* pApp = UiApp::GetInstance();
+       TryReturnVoid(pApp != null, "pApp is null");
+
+       r = pApp->Terminate();
+       TryReturnVoid(r == E_SUCCESS, "Failed Terminate [%s]", GetErrorMessage(r));
+}
+
+void
+VideoPlayerForm::OnActiveAudioRouteChanged(const AudioRouteInfo& route)
+{
+       Color BtnColor(0, 0, 0, 0);
+       int currentOutputAudioDevice = 0;
+       Bitmap* pBitmapScreenMode = null;
+       Bitmap* pBitmapSoundPath = null;
+       ArrayList* pArgs = null;
+       result r = E_FAILURE;
+
+       AudioRouteInfo currentAudioRoute(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       AppLogDebug("OnActiveAudioRouteChanged");
+
+       switch (route.GetOutputAudioDevice())
+       {
+       case OUTPUT_AUDIO_DEVICE_BT_A2DP:
+               {
+                       if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == true)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY;
+                       }
+                       else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == false)
+                                       && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_SPEAKER;
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       pArgs->Construct();
+
+                                       pArgs->Add(*(new (std::nothrow) String(__pAudioRouteManager->GetActiveBluetoothA2dpName())));
+                                       pArgs->Add(*(new (std::nothrow) Integer(__audioRouteMode)));
+
+                                       __pSoundPathPopup->SendUserEvent(REQUEST_UPDATE_BLUETOOTHA2DP_AND_SPEAKER_MENU, pArgs);
+                               }
+                       }
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY:
+               {
+                       if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == true)
+                               &&(__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY;
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       pArgs->Construct();
+
+                                       pArgs->Add(*(new (std::nothrow) String(__pAudioRouteManager->GetActiveBluetoothA2dpName())));
+
+                                       __pSoundPathPopup->SendUserEvent(REQUEST_UPDATE_BLUETOOTHA2DP_AND_WIRED_ACCESSORY_MENU,
+                                                       pArgs);
+                               }
+                       }
+                       else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == false)
+                                       &&(__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER;
+
+                               if (__pHeader->GetButtonStatus(BUTTON_POSITION_LEFT) == BUTTON_ITEM_STATUS_DISABLED)
+                               {
+                                       if (__screenMode == SCREEN_MODE_FIT)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+                                               r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                               TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+                                       }
+                                       else if (__screenMode == SCREEN_MODE_NORMAL)
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+                                               r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                               TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+                                       }
+                                       else
+                                       {
+                                               pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+                                               r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                               TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+                                       }
+
+                                       __pButtonLeftItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                       __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
+                               }
+
+                               pBitmapSoundPath = pAppResource->GetBitmapN(L"T01_icon_title_soundpath.png");
+                               r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapSoundPath);
+                               TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                               __pButtonRightItem->SetActionId(IDA_BUTTON_SOUNDPATH);
+                               __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                               __pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       currentAudioRoute = __pAudioRouteManager->GetActiveAudioRoute();
+                                       currentOutputAudioDevice = static_cast<int>(currentAudioRoute.GetOutputAudioDevice());
+
+                                       pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       pArgs->Construct();
+
+                                       pArgs->Add(*(new (std::nothrow) Integer(__audioRouteMode)));
+                                       pArgs->Add(*(new (std::nothrow) Integer(currentOutputAudioDevice)));
+
+                                       __pSoundPathPopup->SendUserEvent(REQUEST_UPDATE_WIRED_ACCESSORY_AND_SPEAKER_MENU, pArgs);
+                               }
+                       }
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_SPEAKER:
+               {
+                       if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == false)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == false))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_SPEAKER_ONLY;
+
+                               if (__screenMode == SCREEN_MODE_FIT)
+                               {
+                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                                       __pButtonRightItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+
+                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                       __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+                               }
+                               else if (__screenMode == SCREEN_MODE_NORMAL)
+                               {
+                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                                       __pButtonRightItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+
+                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                       __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+                               }
+                               else
+                               {
+                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                                       __pButtonRightItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+
+                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                       __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+                               }
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       if (__pSoundPathPopup->GetShowState() == true)
+                                       {
+                                               __pSoundPathPopup->SetShowState(false);
+                                       }
+                               }
+                       }
+                       else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == true)
+                                       && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == false))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER;
+
+                               if (__screenMode == SCREEN_MODE_FIT)
+                               {
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+                               }
+                               else if (__screenMode == SCREEN_MODE_NORMAL)
+                               {
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+                               }
+                               else
+                               {
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+                                       r = __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonLeftItem->SetIcon() Failed:%s", GetErrorMessage(r));
+                               }
+
+                               __pButtonLeftItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+                               __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                               __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
+
+                               pBitmapSoundPath = pAppResource->GetBitmapN(L"T01_icon_title_soundpath.png");
+                               r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapSoundPath);
+                               TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                               __pButtonRightItem->SetActionId(IDA_BUTTON_SOUNDPATH);
+                               __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                               __pHeader->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       currentAudioRoute = __pAudioRouteManager->GetActiveAudioRoute();
+                                       currentOutputAudioDevice = static_cast<int>(currentAudioRoute.GetOutputAudioDevice());
+
+                                       pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       pArgs->Construct();
+
+                                       pArgs->Add(*(new (std::nothrow) Integer(__audioRouteMode)));
+                                       pArgs->Add(*(new (std::nothrow) Integer(currentOutputAudioDevice)));
+
+                                       __pSoundPathPopup->SendUserEvent(REQUEST_UPDATE_WIRED_ACCESSORY_AND_SPEAKER_MENU, pArgs);
+                               }
+                       }
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       delete pBitmapSoundPath;
+       pBitmapSoundPath = null;
+
+CATCH:
+       delete pBitmapSoundPath;
+       pBitmapSoundPath = null;
+}
+
+void
+VideoPlayerForm::OnAudioRouteAdded(const AudioRouteInfo& route)
+{
+       AppLogDebug("OnAudioRouteAdded");
+
+       switch (route.GetOutputAudioDevice())
+       {
+       case OUTPUT_AUDIO_DEVICE_NONE:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_NONE] = true;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_SPEAKER:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] = true;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_RECEIVER:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_RECEIVER] = true;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] = true;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_BT_SCO:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_SCO] = true;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_BT_A2DP:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] = true;
+               }
+               break;
+
+       default:
+               break;
+       }
+}
+
+void
+VideoPlayerForm::OnAudioRouteRemoved(const AudioRouteInfo& route)
+{
+       result r = E_FAILURE;
+       ArrayList* pArgs = null;
+       Bitmap* pBitmapScreenMode = null;
+       int currentOutputDevice = 0;
+       AudioRouteInfo currentAudioRoute(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);
+
+       AppLogDebug("OnAudioRouteRemoved");
+
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+
+       currentAudioRoute = __pAudioRouteManager->GetActiveAudioRoute();
+
+       switch (route.GetOutputAudioDevice())
+       {
+       case OUTPUT_AUDIO_DEVICE_NONE:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_NONE] = false;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_SPEAKER:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] = false;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_RECEIVER:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_RECEIVER] = false;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] = false;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_BT_SCO:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_SCO] = false;
+               }
+               break;
+
+       case OUTPUT_AUDIO_DEVICE_BT_A2DP:
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] = false;
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       if (currentAudioRoute.GetOutputAudioDevice() != route.GetOutputAudioDevice())
+       {
+               if (currentAudioRoute.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_BT_A2DP)
+               {
+                       if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == false)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_SPEAKER;
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       pArgs->Construct();
+
+                                       pArgs->Add(*(new (std::nothrow) String(__pAudioRouteManager->GetActiveBluetoothA2dpName())));
+                                       pArgs->Add(*(new (std::nothrow) Integer(__audioRouteMode)));
+
+                                       __pSoundPathPopup->SendUserEvent(REQUEST_UPDATE_BLUETOOTHA2DP_AND_SPEAKER_MENU, pArgs);
+                               }
+                       }
+               }
+               else if (currentAudioRoute.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY)
+               {
+                       if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == true)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY;
+                       }
+                       else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == true)
+                                       && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == false))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY;
+                       }
+                       else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == false)
+                                       && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER;
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       currentAudioRoute = __pAudioRouteManager->GetActiveAudioRoute();
+                                       currentOutputDevice = static_cast<int>(currentAudioRoute.GetOutputAudioDevice());
+
+                                       pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       pArgs->Construct();
+
+                                       pArgs->Add(*(new (std::nothrow) Integer(__audioRouteMode)));
+                                       pArgs->Add(*(new (std::nothrow) Integer(currentOutputDevice)));
+
+                                       __pSoundPathPopup->SendUserEvent(REQUEST_UPDATE_WIRED_ACCESSORY_AND_SPEAKER_MENU, pArgs);
+                               }
+                       }
+               }
+               else if (currentAudioRoute.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_SPEAKER)
+               {
+                       if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == true)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == false))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_SPEAKER;
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       pArgs->Construct();
+
+                                       pArgs->Add(*(new (std::nothrow) String(__pAudioRouteManager->GetActiveBluetoothA2dpName())));
+                                       pArgs->Add(*(new (std::nothrow) Integer(__audioRouteMode)));
+
+                                       __pSoundPathPopup->SendUserEvent(REQUEST_UPDATE_BLUETOOTHA2DP_AND_SPEAKER_MENU, pArgs);
+                               }
+                       }
+                       else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == false)
+                                       && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == true))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER;
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       currentAudioRoute = __pAudioRouteManager->GetActiveAudioRoute();
+                                       currentOutputDevice = static_cast<int>(currentAudioRoute.GetOutputAudioDevice());
+
+                                       pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       pArgs->Construct();
+
+                                       pArgs->Add(*(new (std::nothrow) Integer(__audioRouteMode)));
+                                       pArgs->Add(*(new (std::nothrow) Integer(currentOutputDevice)));
+
+                                       __pSoundPathPopup->SendUserEvent(REQUEST_UPDATE_WIRED_ACCESSORY_AND_SPEAKER_MENU, pArgs);
+                               }
+                       }
+                       else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == false)
+                                       && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == false))
+                       {
+                               __audioRouteMode = AUDIO_ROUTE_SPEAKER_ONLY;
+
+                               if (__screenMode == SCREEN_MODE_FIT)
+                               {
+                                       __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode03.png");
+                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                                       __pButtonRightItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+
+                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                       __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+                               }
+                               else if (__screenMode == SCREEN_MODE_NORMAL)
+                               {
+                                       __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode01.png");
+                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                                       __pButtonRightItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+
+                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                       __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+                               }
+                               else
+                               {
+                                       __pButtonLeftItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, null);
+
+                                       pBitmapScreenMode = pAppResource->GetBitmapN(L"T01_icon_title_screenmode02.png");
+                                       r = __pButtonRightItem->SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapScreenMode);
+                                       TryCatch(r == E_SUCCESS, , "__pButtonRightItem->SetIcon() Failed:%s", GetErrorMessage(r));
+
+                                       __pButtonRightItem->SetActionId(IDA_BUTTON_FULLSCREEN);
+
+                                       __pHeader->SetButton(BUTTON_POSITION_LEFT, *__pButtonLeftItem);
+                                       __pHeader->SetButton(BUTTON_POSITION_RIGHT, *__pButtonRightItem);
+                                       __pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+                               }
+
+                               if (__pSoundPathPopup != null)
+                               {
+                                       if (__pSoundPathPopup->GetShowState() == true)
+                                       {
+                                               __pSoundPathPopup->SetShowState(false);
+                                       }
+                               }
+                       }
+               }
+       }
+
+       delete pBitmapScreenMode;
+       pBitmapScreenMode = null;
+
+CATCH:
+       delete pBitmapScreenMode;
+       pBitmapScreenMode = null;
+}
+
+void
+VideoPlayerForm::InitAudioRouteList(void)
+{
+       AppLogDebug("InitAudioRouteList");
+
+       int listCount = 0;
+       IList* availableAudioRouteList = null;
+       AudioRouteInfo* tempRouteInfo = null;
+       AudioRouteInfo availableRouteInfo(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);
+       AudioRouteInfo currentAudioRoute(INPUT_AUDIO_DEVICE_NONE, OUTPUT_AUDIO_DEVICE_NONE);
+
+       availableAudioRouteList = __pAudioRouteManager->GetAvailableAudioRouteListN();
+
+       for (listCount = 0; listCount < availableAudioRouteList->GetCount(); ++listCount)
+       {
+               tempRouteInfo = static_cast<AudioRouteInfo*>(availableAudioRouteList->GetAt(listCount));
+               availableRouteInfo = *tempRouteInfo;
+
+               if (availableRouteInfo.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_NONE)
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_NONE] = true;
+               }
+               else if (availableRouteInfo.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_SPEAKER)
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] = true;
+               }
+               else if (availableRouteInfo.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_RECEIVER)
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_RECEIVER] = true;
+               }
+               else if (availableRouteInfo.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY)
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] = true;
+               }
+               else if (availableRouteInfo.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_BT_SCO)
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_SCO] = true;
+               }
+               else
+               {
+                       __availableAudioRoute[OUTPUT_AUDIO_DEVICE_BT_A2DP] = true;
+               }
+       }
+
+       currentAudioRoute = __pAudioRouteManager->GetActiveAudioRoute();
+
+       if (currentAudioRoute.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_BT_A2DP)
+       {
+               if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == true)
+                       && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+               {
+                       __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY;
+               }
+               else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == true)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == false))
+               {
+                       __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY;
+               }
+               else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == false)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+               {
+                       __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_SPEAKER;
+               }
+       }
+       else if (currentAudioRoute.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_WIRED_ACCESSORY)
+       {
+               if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == true)
+                       && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+               {
+                       __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY;
+               }
+               else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == true)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == false))
+               {
+                       __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_WIRED_ACCESSORY;
+               }
+               else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == false)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_SPEAKER] == true))
+               {
+                       __audioRouteMode = AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER;
+               }
+       }
+       else if (currentAudioRoute.GetOutputAudioDevice() == OUTPUT_AUDIO_DEVICE_SPEAKER)
+       {
+               if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == true)
+                       && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == false))
+               {
+                       __audioRouteMode = AUDIO_ROUTE_BT_A2DP_AND_SPEAKER;
+               }
+               else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == false)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == true))
+               {
+                       __audioRouteMode = AUDIO_ROUTE_WIRED_ACCESSORY_AND_SPEAKER;
+               }
+               else if ((__availableAudioRoute[OUTPUT_AUDIO_ROUTE_BT_A2DP] == false)
+                               && (__availableAudioRoute[OUTPUT_AUDIO_ROUTE_WIRED_ACCESSORY] == false))
+               {
+                       __audioRouteMode = AUDIO_ROUTE_SPEAKER_ONLY;
+               }
+       }
+}
+
+result
+VideoPlayerForm::SetActiveAudioRoute(const AudioRouteInfo& route)
+{
+       AppLogDebug("SetActiveAudioRoute");
+       result r = __pAudioRouteManager->SetActiveAudioRoute(route);
+
+       return r;
+}
+
+void
+VideoPlayerForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+       BatteryLevel batteryLevel;
+
+       AppLogDebug("OnUserEventReceivedN");
+
+       switch (requestId)
+       {
+       case REQUEST_VIDEO_EVENT_BATTERY_LEVEL_CHANGED:
+               {
+                       Battery::GetCurrentLevel(batteryLevel);
+
+                       if (batteryLevel == BATTERY_CRITICAL || batteryLevel == BATTERY_EMPTY)
+                       {
+                               OnFormBackRequested(*this);
+                       }
+               }
+               break;
+
+       default:
+               break;
+       }
+}
\ No newline at end of file
diff --git a/src/VpVideoPlayerPresentationModel.cpp b/src/VpVideoPlayerPresentationModel.cpp
new file mode 100644 (file)
index 0000000..28fb0a7
--- /dev/null
@@ -0,0 +1,931 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpVideoPlayerPresentationModel.cpp
+ * @brief              This is the implementation file for PresentationModel class.
+ */
+
+#include <cstdlib>
+#include "VpTypes.h"
+#include "VpVideoPlayerApp.h"
+#include "VpVideoPlayerPresentationModel.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui::Controls;
+
+static const int PROGRESS_TIMER_DURATION = 250;
+static const int LONGKEY_TIMER_DURATION = 200;
+
+static const int MILLISECOND = 1000;
+static const int TEN_SEC = 10;
+static const int TWO_SEC = 2;
+static const int ONE_HOUR = 3600;
+static const int ONE_MIN = 60;
+static const int START_TIME = 0;
+
+static const int FIRST_CONTENT_INDEX = 0;
+
+static const int MAX_PROGRESS_RANGE = 100;
+
+VideoPlayerPresentationModel*
+VideoPlayerPresentationModel::__pVideoPlayerPresentationModel = null;
+
+VideoPlayerPresentationModel::VideoPlayerPresentationModel(void)
+       : __pPlayer(null)
+       , __pVideoPlayerEventListener(null)
+       , __pOverlayRegion(null)
+       , __pMediaPathArrayList(null)
+       , __pTimer(null)
+       , __pFastForwardTimer(null)
+       , __pFastRewindTimer(null)
+       , __playerSeekCompleted(true)
+       , __playerLastSeekCompleted(false)
+       , __playAfterSeek(true)
+       , __mediaWidth(0)
+       , __mediaHeight(0)
+       , __isPlayerSeekInProgress(false)
+       , __currentMediaIndex(0)
+{
+}
+
+VideoPlayerPresentationModel::~VideoPlayerPresentationModel(void)
+{
+       __isPlayerSeekInProgress = false;
+       DeleteTimer();
+       __pPlayer->Stop();
+       __pPlayer->Close();
+       delete __pPlayer;
+       delete __pMediaPathArrayList;
+}
+
+VideoPlayerPresentationModel*
+VideoPlayerPresentationModel::GetInstance(void)
+{
+       AppLogDebug("GetInstance");
+
+       if (__pVideoPlayerPresentationModel == null)
+       {
+               CreateInstance();
+       }
+
+       return __pVideoPlayerPresentationModel;
+}
+
+result
+VideoPlayerPresentationModel::Construct(void)
+{
+       String token;
+       String delim = L";";
+       String* mediaName = null;
+
+       VideoPlayerApp* pVideoPlayerApp = static_cast<VideoPlayerApp*>(VideoPlayerApp::GetInstance());
+
+       String uriData = pVideoPlayerApp->GetUriData();
+       const String* pPath = null;
+       if (uriData.IsEmpty() == true)
+       {
+               const IMap* pArguments = pVideoPlayerApp->GetAppControlArguments();
+               pPath = static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_PATH)));
+
+               __pMediaPathArrayList = new (std::nothrow)ArrayList();
+               __pMediaPathArrayList->Construct();
+
+               StringTokenizer strTok(*pPath, delim);
+
+               while (strTok.HasMoreTokens())
+               {
+                       strTok.GetNextToken(token);
+                       __pMediaPathArrayList->Add((new (std::nothrow) String(token)));
+               }
+
+               mediaName = static_cast<String*>(__pMediaPathArrayList->GetAt(FIRST_CONTENT_INDEX));
+               __mediaPathName = *mediaName;
+               __currentMediaIndex = FIRST_CONTENT_INDEX;
+       }
+       else
+       {
+               __mediaPathName = uriData;
+       }
+
+       delete __pPlayer;
+
+       __pPlayer = new (std::nothrow) Player();
+       result r = __pPlayer->Construct(*this, *this);
+
+       InitTimer();
+
+       AppLogDebug("__pPlayer [%x]", __pPlayer);
+       __isPlayerSeekInProgress = false;
+       return r;
+}
+
+void
+VideoPlayerPresentationModel::CreateInstance(void)
+{
+       AppLogDebug("CreateInstance");
+
+       __pVideoPlayerPresentationModel = new (std::nothrow) VideoPlayerPresentationModel();
+       result r = __pVideoPlayerPresentationModel->Construct();
+
+       if (IsFailed(r))
+       {
+               delete __pVideoPlayerPresentationModel;
+               __pVideoPlayerPresentationModel = null;
+               return;
+       }
+}
+
+void
+VideoPlayerPresentationModel::DestroyInstance(void)
+{
+       delete __pVideoPlayerPresentationModel;
+       __pVideoPlayerPresentationModel = null;
+}
+
+Rectangle
+VideoPlayerPresentationModel::GetVideoInfoN(const String& mediaLocalPath)
+{
+       Rectangle rect;
+
+       const IList* pInfoList = null;
+       const VideoStreamInfo* pInfo = null;
+       MediaStreamInfo* pStreamInfo = null;
+
+       if (__pPlayer->GetState() == PLAYER_STATE_PLAYING)
+       {
+               pStreamInfo = __pPlayer->GetCurrentMediaStreamInfoN();
+               pInfoList = pStreamInfo->GetVideoStreamInfoList();
+
+               pInfo = (const VideoStreamInfo*)pInfoList->GetAt(0);
+
+               rect.width = pInfo->GetWidth();
+               rect.height = pInfo->GetHeight();
+
+               __mediaWidth = pInfo->GetWidth();
+               __mediaHeight = pInfo->GetHeight();
+
+               delete pStreamInfo;
+       }
+       else
+       {
+               rect.width = __mediaWidth;
+               rect.height = __mediaHeight;
+       }
+
+       return rect;
+}
+
+result
+VideoPlayerPresentationModel::ConstructPlayerInstanceWithBufferInfo(void)
+{
+       result r = E_FAILURE;
+       BufferInfo bufferInfo;
+
+       r = __pOverlayRegion->GetBackgroundBufferInfo(bufferInfo);
+       TryCatch(r == E_SUCCESS, , "__pOverlayRegion->GetBackgroundBufferInfo() failed:%s", GetErrorMessage(r));
+
+       delete __pPlayer;
+
+       __pPlayer = new (std::nothrow) Player();
+
+       __pPlayer->Construct(*this, &bufferInfo);
+
+       AppLogDebug("__pPlayer [%x]", __pPlayer);
+
+       return r;
+
+CATCH:
+       return r;
+}
+
+result
+VideoPlayerPresentationModel::SeekTo(long msTime)
+{
+       result r = E_FAILURE;
+
+       PlayerState playState = GetState();
+
+       switch (playState)
+       {
+       case PLAYER_STATE_PLAYING:
+               {
+                       if (__isPlayerSeekInProgress == true)
+                       {
+                               return r;
+                       }
+                       __isPlayerSeekInProgress = true;
+               }
+               // fall through
+       case PLAYER_STATE_PAUSED:
+               {
+                       r = __pPlayer->SeekTo(msTime);
+                       TryCatch(r == E_SUCCESS, , "__pPlayer->SeekTo failed:%s", GetErrorMessage(r));
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       return r;
+
+CATCH:
+       return r;
+}
+
+void
+VideoPlayerPresentationModel::OnPlayerSeekCompleted(result r)
+{
+       AppLogDebug("OnPlayerSeekCompleted");
+
+       __playerSeekCompleted = true;
+
+       if (__playerLastSeekCompleted == true)
+       {
+               if (__playAfterSeek == true)
+               {
+                       result r = __pPlayer->Play();
+                       TryReturnVoid(r == E_SUCCESS, "__pPlayer->Play():%s", GetErrorMessage(r));
+
+                       CallOnPlayStateChanged(__pPlayer->GetState());
+
+                       __pTimer->Start(PROGRESS_TIMER_DURATION);
+               }
+
+               __playerLastSeekCompleted = false;
+       }
+}
+
+void
+VideoPlayerPresentationModel::SetPlayerBuffer(const BufferInfo& bufferInfo)
+{
+       result r = E_FAILURE;
+       r = __pPlayer->SetRenderingBuffer(bufferInfo);
+       TryReturnVoid(r == E_SUCCESS, "__pPlayer->SetRenderingBuffer failed:%s", GetErrorMessage(r));
+}
+
+result
+VideoPlayerPresentationModel::StartPlay(void)
+{
+       result r = E_FAILURE;
+
+       PlayerState playState = GetState();
+       AppLogDebug("StartPlay : %d", playState);
+
+       switch (playState)
+       {
+       case PLAYER_STATE_INITIALIZED:
+               // fall through
+       case PLAYER_STATE_CLOSED:
+               {
+                       String mediaPath;
+                       String mediaName;
+                       String delim = L"/";
+
+                       mediaPath = GetMediaPathName();
+
+                       StringTokenizer strTok(mediaPath, delim);
+
+                       while (strTok.HasMoreTokens())
+                       {
+                               strTok.GetNextToken(mediaName);
+                       }
+
+                       if (mediaPath.StartsWith(L"http://", 0) == true
+                               || mediaPath.StartsWith(L"https://", 0) == true
+                               || mediaPath.StartsWith(L"rtsp://", 0) == true
+                               || mediaPath.StartsWith(L"rtp://", 0) == true)
+                       {
+                               Uri mediaUri;
+                               r = mediaUri.SetUri(mediaPath);
+
+                               if (r == E_SUCCESS)
+                               {
+                                       r = __pPlayer->OpenUrl(mediaUri);
+                               }
+                       }
+                       else
+                       {
+                               r = __pPlayer->OpenFile(mediaPath);
+                       }
+
+                       if (r != E_SUCCESS)
+                       {
+                               AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+                               String messageBoxString;
+                               pAppResource->GetString(IDS_COM_POP_UNSUPPORTED_FILE_TYPE, messageBoxString);
+                               MessageBox messageBox;
+                               messageBox.Construct(L"", messageBoxString, MSGBOX_STYLE_OK, 3000);
+                               int modalResult = 0;
+                               messageBox.ShowAndWait(modalResult);
+
+                               UiApp* pApp = UiApp::GetInstance();
+                               pApp->Terminate();
+                       }
+                       else
+                       {
+                               r = __pPlayer->Play();
+                               TryCatch(r == E_SUCCESS, , "__pPlayer->Play() failed:%s", GetErrorMessage(r));
+
+                               CallOnPlayContentChanged(mediaName);
+
+                               r = __pTimer->Start(PROGRESS_TIMER_DURATION);
+                               TryCatch(r == E_SUCCESS, , "__pTimer->Start() failed:%s", GetErrorMessage(r));
+                       }
+               }
+               break;
+
+       case PLAYER_STATE_ENDOFCLIP:
+               // fall through
+       case PLAYER_STATE_PAUSED:
+               {
+                       r = __pPlayer->Play();
+                       TryCatch(r == E_SUCCESS, , "__pPlayer->Play() failed:%s", GetErrorMessage(r));
+
+                       r = __pTimer->Start(PROGRESS_TIMER_DURATION);
+                       TryCatch(r == E_SUCCESS, , "__pTimer->Start() failed:%s", GetErrorMessage(r));
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       CallOnPlayStateChanged(__pPlayer->GetState());
+
+CATCH:
+       return r;
+}
+
+result
+VideoPlayerPresentationModel::StopPlay(void)
+{
+       result r = E_FAILURE;
+
+       PlayerState playState = GetState();
+       AppLogDebug("StopPlay : %d", playState);
+
+       switch (playState)
+       {
+       case PLAYER_STATE_PLAYING:
+               // fall through
+       case PLAYER_STATE_PAUSED:
+               {
+                       r = __pPlayer->Stop();
+                       TryCatch(r == E_SUCCESS, , "__pPlayer->Stop() failed:%s", GetErrorMessage(r));
+                       __isPlayerSeekInProgress = false;
+               }
+               break;
+
+       default:
+               break;
+       }
+
+CATCH:
+       return r;
+}
+
+result
+VideoPlayerPresentationModel::PausePlay(void)
+{
+       result r = E_FAILURE;
+       PlayerState playState = GetState();
+       AppLogDebug("PausePlay : %d", playState);
+
+       if (playState == PLAYER_STATE_PLAYING)
+       {
+               r = __pPlayer->Pause();
+               TryCatch(r == E_SUCCESS, , "__pPlayer->Pause() failed:%s", GetErrorMessage(r));
+       }
+       else
+       {
+               AppLogDebug("Invalid state of player");
+       }
+
+       CallOnPlayStateChanged(__pPlayer->GetState());
+
+CATCH:
+       return r;
+}
+
+result
+VideoPlayerPresentationModel::ClosePlay(void)
+{
+       result r = E_FAILURE;
+       PlayerState playState = GetState();
+
+       switch (playState)
+       {
+       case PLAYER_STATE_OPENED:
+               // fall through
+       case PLAYER_STATE_STOPPED:
+               // fall through
+       case PLAYER_STATE_ENDOFCLIP:
+               {
+                       r = __pPlayer->Close();
+                       TryCatch(r == E_SUCCESS, , "__pPlayer->Close() failed:%s", GetErrorMessage(r));
+                       __isPlayerSeekInProgress = false;
+               }
+               break;
+
+       default:
+               break;
+       }
+
+CATCH:
+       return r;
+}
+
+PlayerState
+VideoPlayerPresentationModel::GetState(void) const
+{
+       return __pPlayer->GetState();
+}
+
+long
+VideoPlayerPresentationModel::GetDuration(void) const
+{
+       return __pPlayer->GetDuration();
+}
+
+long
+VideoPlayerPresentationModel::GetPosition(void) const
+{
+       return __pPlayer->GetPosition();
+}
+
+void
+VideoPlayerPresentationModel::SetVideoPlayerEventListener(IVideoPlayerEventListener* pPlayerListener)
+{
+       __pVideoPlayerEventListener = pPlayerListener;
+}
+
+void
+VideoPlayerPresentationModel::SetOverlayRegion(OverlayRegion* pOverlay)
+{
+       if (__pPlayer->GetState() == PLAYER_STATE_PAUSED)
+       {
+               __pPlayer->CaptureVideo();
+       }
+       __pOverlayRegion = pOverlay;
+}
+
+void
+VideoPlayerPresentationModel::OnPlayerOpened(result r)
+{
+       AppLogDebug("OnPlayerOpened");
+       __pVideoPlayerEventListener->OnPlayOpened(r);
+}
+
+void
+VideoPlayerPresentationModel::OnPlayerEndOfClip(void)
+{
+       AppLogDebug("OnPlayerEndOfClip");
+
+       __pTimer->Cancel();
+       __pFastForwardTimer->Cancel();
+       __pFastRewindTimer->Cancel();
+
+       __pVideoPlayerEventListener->OnPlayEndOfClip();
+}
+
+void
+VideoPlayerPresentationModel::OnPlayerBuffering(int percent)
+{
+       AppLogDebug("OnPlayerBuffering");
+       __pVideoPlayerEventListener->OnPlayBuffering(percent);
+}
+
+void
+VideoPlayerPresentationModel::OnPlayerErrorOccurred(PlayerErrorReason r)
+{
+       AppLogDebug("OnPlayerErrorOccurred");
+       __pVideoPlayerEventListener->OnPlayErrorOccurred(r);
+}
+
+void
+VideoPlayerPresentationModel::OnPlayerInterrupted(void)
+{
+       AppLogDebug("OnPlayerInterrupted");
+       __pVideoPlayerEventListener->OnPlayInterrupted();
+
+       CallOnPlayStateChanged(__pPlayer->GetState());
+}
+
+void
+VideoPlayerPresentationModel::OnPlayerAudioFocusChanged(void)
+{
+       AppLog("OnPlayerAudioFocusChanged");
+
+       CallOnPlayStateChanged(__pPlayer->GetState());
+}
+
+void
+VideoPlayerPresentationModel::OnPlayerReleased(void)
+{
+       AppLogDebug("OnPlayerReleased");
+       __pVideoPlayerEventListener->OnPlayReleased();
+}
+
+void
+VideoPlayerPresentationModel::OnVideoFrameDecoded(Player& src, BitmapPixelFormat bitmapPixelFormat,
+               const Dimension& dim, const byte* pBuffer, int sizeOfBuffer, result r)
+{
+       __pVideoPlayerEventListener->OnVideoFrameDecoded(src, bitmapPixelFormat, dim, pBuffer, sizeOfBuffer, r);
+       __isPlayerSeekInProgress = false;
+}
+
+void
+VideoPlayerPresentationModel::CallOnPlayContentChanged(const String& fileName)
+{
+       AppLogDebug("CallOnPlayContentChanged");
+
+       __pVideoPlayerEventListener->OnPlayContentChanged(fileName);
+}
+
+void
+VideoPlayerPresentationModel::CallOnPlayTimeChanged(int currentProgressPos, String& currentPlayTime)
+{
+       AppLogDebug("CallOnPlayTimeChanged");
+
+       __pVideoPlayerEventListener->OnPlayTimeChanged(currentProgressPos, currentPlayTime);
+}
+
+void
+VideoPlayerPresentationModel::CallOnPlayStateChanged(PlayerState playState)
+{
+       AppLogDebug("CallOnPlayStateChanged");
+
+       __pVideoPlayerEventListener->OnPlayStateChanged(playState);
+}
+
+void
+VideoPlayerPresentationModel::InitTimer(void)
+{
+       AppLogDebug("InitTimer");
+
+       __pTimer = new (std::nothrow) Timer();
+       __pTimer->Construct(*this);
+
+       __pFastForwardTimer = new (std::nothrow) Timer();
+       __pFastForwardTimer->Construct(*this);
+
+       __pFastRewindTimer = new (std::nothrow) Timer();
+       __pFastRewindTimer->Construct(*this);
+}
+
+void
+VideoPlayerPresentationModel::DeleteTimer(void)
+{
+       AppLogDebug("DeleteTimer");
+
+       __pTimer->Cancel();
+       delete __pTimer;
+       __pTimer = null;
+
+       __pFastForwardTimer->Cancel();
+       delete __pFastForwardTimer;
+       __pFastForwardTimer = null;
+
+       __pFastRewindTimer->Cancel();
+       delete __pFastRewindTimer;
+       __pFastRewindTimer = null;
+}
+
+void
+VideoPlayerPresentationModel::OnTimerExpired(Timer& timer)
+{
+       result r = E_FAILURE;
+
+       int hour = 0;
+       int min = 0;
+       int second = 0;
+       long msTime = 0;
+       int currentProgressPos = 0;
+
+       String currentPlayTime;
+
+       if (timer.GetHashCode() == __pTimer->GetHashCode())
+       {
+               if (__pPlayer->GetState() == PLAYER_STATE_INITIALIZED || __pPlayer->GetState() == PLAYER_STATE_PLAYING)
+               {
+                       msTime = __pPlayer->GetPosition();
+
+                       hour = static_cast<int>(msTime / (ONE_HOUR * MILLISECOND));
+                       min = static_cast<int>((msTime % (ONE_HOUR * MILLISECOND)) / (ONE_MIN * MILLISECOND));
+                       second = static_cast<int>(((msTime % (ONE_HOUR * MILLISECOND)) % (ONE_MIN * MILLISECOND)) / (MILLISECOND));
+
+                       r = currentPlayTime.Format(20, L"%02d:%02d:%02d", hour, min, second);
+                       TryReturnVoid(r == E_SUCCESS, "currentPlayTime.Format() failed:%s", GetErrorMessage(r));
+
+                       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+
+                       CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
+
+                       __pTimer->Start(PROGRESS_TIMER_DURATION);
+               }
+       }
+       else if (timer.GetHashCode() == __pFastForwardTimer->GetHashCode())
+       {
+               msTime = __pPlayer->GetPosition();
+
+               msTime = msTime + (TWO_SEC * MILLISECOND);
+
+               if (msTime < __pPlayer->GetDuration())
+               {
+                       if (__playerSeekCompleted == true)
+                       {
+                               r = SeekTo(msTime);
+                               TryReturnVoid(r == E_SUCCESS, "VideoPlayerPresentationModel::SeekTo() failed:%s", GetErrorMessage(r));
+
+                               __playerSeekCompleted = false;
+
+                               hour = static_cast<int>(msTime / (ONE_HOUR * MILLISECOND));
+                               min = static_cast<int>((msTime % (ONE_HOUR * MILLISECOND)) / (ONE_MIN * MILLISECOND));
+                               second = static_cast<int>(((msTime % (ONE_HOUR * MILLISECOND)) % (ONE_MIN * MILLISECOND)) / (MILLISECOND));
+
+                               r = currentPlayTime.Format(20, L"%02d:%02d:%02d", hour, min, second);
+                               TryReturnVoid(r == E_SUCCESS, "currentPlayTime.Format() failed:%s", GetErrorMessage(r));
+
+                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+
+                               CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
+                       }
+               }
+               else
+               {
+                       if (__playerSeekCompleted == true)
+                       {
+                               r = SeekTo(__pPlayer->GetDuration());
+                               TryReturnVoid(r == E_SUCCESS, "VideoPlayerPresentationModel::SeekTo() failed:%s", GetErrorMessage(r));
+                               __playerSeekCompleted = false;
+
+                               hour = static_cast<int>(__pPlayer->GetDuration() / (ONE_HOUR * MILLISECOND));
+                               min = static_cast<int>((__pPlayer->GetDuration() % (ONE_HOUR * MILLISECOND)) / (ONE_MIN * MILLISECOND));
+                               second = static_cast<int>(((__pPlayer->GetDuration() % (ONE_HOUR * MILLISECOND)) % (ONE_MIN * MILLISECOND)) / (MILLISECOND));
+
+                               r = currentPlayTime.Format(20, L"%02d:%02d:%02d", hour, min, second);
+                               TryReturnVoid(r == E_SUCCESS, "currentPlayTime.Format() failed:%s", GetErrorMessage(r));
+
+                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+
+                               CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
+                       }
+               }
+               __pFastForwardTimer->Start(LONGKEY_TIMER_DURATION);
+       }
+       else if (timer.GetHashCode() == __pFastRewindTimer->GetHashCode())
+       {
+               msTime = __pPlayer->GetPosition();
+
+               msTime = msTime - (TWO_SEC * MILLISECOND);
+
+               if (msTime > START_TIME)
+               {
+                       if (__playerSeekCompleted == true)
+                       {
+                               r = SeekTo(msTime);
+                               TryReturnVoid(r == E_SUCCESS, "VideoPlayerPresentationModel::SeekTo() failed:%s", GetErrorMessage(r));
+
+                               __playerSeekCompleted = false;
+
+                               hour = static_cast<int>(msTime / (ONE_HOUR * MILLISECOND));
+                               min = static_cast<int>((msTime % (ONE_HOUR * MILLISECOND)) / (ONE_MIN * MILLISECOND));
+                               second = static_cast<int>(((msTime % (ONE_HOUR * MILLISECOND)) % (ONE_MIN * MILLISECOND)) / (MILLISECOND));
+
+                               r = currentPlayTime.Format(20, L"%02d:%02d:%02d", hour, min, second);
+                               TryReturnVoid(r == E_SUCCESS, "currentPlayTime.Format() failed:%s", GetErrorMessage(r));
+
+                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+
+                               CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
+                       }
+               }
+               else
+               {
+                       if (__playerSeekCompleted == true)
+                       {
+                               r = SeekTo(START_TIME);
+                               TryReturnVoid(r == E_SUCCESS, "VideoPlayerPresentationModel::SeekTo() failed:%s", GetErrorMessage(r));
+
+                               __playerSeekCompleted = false;
+
+                               hour = START_TIME;
+                               min = START_TIME;
+                               second = START_TIME;
+
+                               r = currentPlayTime.Format(20, L"%02d:%02d:%02d", hour, min, second);
+                               TryReturnVoid(r == E_SUCCESS, "currentPlayTime.Format() failed:%s", GetErrorMessage(r));
+
+                               currentProgressPos = START_TIME;
+
+                               CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
+                       }
+               }
+               __pFastRewindTimer->Start(LONGKEY_TIMER_DURATION);
+       }
+}
+
+void
+VideoPlayerPresentationModel::Forward(void)
+{
+       result r = E_FAILURE;
+
+       int hour = 0;
+       int min = 0;
+       int second = 0;
+       long msTime = 0;
+       int currentProgressPos = 0;
+
+       String currentPlayTime;
+
+       AppLogDebug("Forward");
+
+       msTime = __pPlayer->GetPosition();
+
+       msTime = msTime + (TEN_SEC * MILLISECOND);
+
+       if (msTime < __pPlayer->GetDuration())
+       {
+               r = SeekTo(msTime);
+               TryReturnVoid(r == E_SUCCESS, "SeekTo() failed:%s", GetErrorMessage(r));
+       }
+       else
+       {
+               r = SeekTo(__pPlayer->GetDuration());
+               TryReturnVoid(r == E_SUCCESS, "SeekTo() failed:%s", GetErrorMessage(r));
+       }
+
+       msTime = __pPlayer->GetPosition();
+
+       hour = static_cast<int>(msTime / (ONE_HOUR * MILLISECOND));
+       min = static_cast<int>((msTime % (ONE_HOUR * MILLISECOND)) / (ONE_MIN * MILLISECOND));
+       second = static_cast<int>(((msTime % (ONE_HOUR * MILLISECOND)) % (ONE_MIN * MILLISECOND)) / (MILLISECOND));
+
+       currentPlayTime.Format(20, L"%02d:%02d:%02d", hour, min, second);
+
+       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+
+       CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
+}
+
+void
+VideoPlayerPresentationModel::Rewind(void)
+{
+       result r = E_FAILURE;
+
+       int hour = 0;
+       int min = 0;
+       int second = 0;
+       long msTime = 0;
+       int currentProgressPos = 0;
+
+       String currentPlayTime;
+
+       AppLogDebug("VideoPlayerPresentationModel::Rewind");
+
+       msTime = __pPlayer->GetPosition();
+
+       msTime = msTime - (TEN_SEC * MILLISECOND);
+
+       if (msTime < START_TIME)
+       {
+               r = SeekTo(START_TIME);
+               TryReturnVoid(r == E_SUCCESS, "SeekTo() failed:%s", GetErrorMessage(r));
+       }
+       else
+       {
+               r = SeekTo(msTime);
+               TryReturnVoid(r == E_SUCCESS, "SeekTo() failed:%s", GetErrorMessage(r));
+       }
+
+       msTime = __pPlayer->GetPosition();
+
+       hour = static_cast<int>(msTime / (ONE_HOUR * MILLISECOND));
+       min = static_cast<int>((msTime % (ONE_HOUR * MILLISECOND)) / (ONE_MIN * MILLISECOND));
+       second = static_cast<int>(((msTime % (ONE_HOUR * MILLISECOND)) % (ONE_MIN * MILLISECOND)) / (MILLISECOND));
+
+       currentPlayTime.Format(20, L"%02d:%02d:%02d", hour, min, second);
+
+       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+
+       CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
+}
+
+void
+VideoPlayerPresentationModel::FastForward(bool playAfterSeek)
+{
+       AppLogDebug("FastForward");
+
+       if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
+       {
+               PausePlay();
+               __playAfterSeek = playAfterSeek;
+               __pFastForwardTimer->Start(LONGKEY_TIMER_DURATION);
+       }
+}
+
+void
+VideoPlayerPresentationModel::FastRewind(bool playAfterSeek)
+{
+       AppLogDebug("FastRewind");
+
+       if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
+       {
+               PausePlay();
+               __playAfterSeek = playAfterSeek;
+               __pFastRewindTimer->Start(LONGKEY_TIMER_DURATION);
+       }
+}
+
+void
+VideoPlayerPresentationModel::StopFastForwardRewind(void)
+{
+       AppLogDebug("StopFastForwardRewind");
+
+       if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
+       {
+               __pFastForwardTimer->Cancel();
+               __pFastRewindTimer->Cancel();
+
+               if (__playerSeekCompleted == true)
+               {
+                       if (__playAfterSeek == true)
+                       {
+                               result r = __pPlayer->Play();
+                               TryReturnVoid(r == E_SUCCESS, "__pPlayer->Play() failed:%s", GetErrorMessage(r));
+
+                               CallOnPlayStateChanged(__pPlayer->GetState());
+
+                               __pTimer->Start(PROGRESS_TIMER_DURATION);
+                       }
+               }
+               else
+               {
+                       __playerLastSeekCompleted = true;
+               }
+       }
+}
+
+String
+VideoPlayerPresentationModel::GetMediaPathName(void) const
+{
+       AppLogDebug("GetMediaPathName");
+
+       String *pMediaName = null;
+
+       pMediaName = static_cast<String*>(__pMediaPathArrayList->GetAt(__currentMediaIndex));
+       return *pMediaName;
+}
+
+int
+VideoPlayerPresentationModel::GetMediaCount(void) const
+{
+       return __pMediaPathArrayList->GetCount();
+}
+
+int
+VideoPlayerPresentationModel::GetCurrentMediaIndex(void) const
+{
+       return __currentMediaIndex;
+}
+
+void
+VideoPlayerPresentationModel::SetCurrentMediaIndex(void)
+{
+       __currentMediaIndex++;
+}
+
+result
+VideoPlayerPresentationModel::InitializePlayer(void)
+{
+       delete __pPlayer;
+
+       __pPlayer = new (std::nothrow) Player();
+       result r = __pPlayer->Construct(*this, *this);
+
+       AppLogDebug("__pPlayer [%x]", __pPlayer);
+
+       return r;
+}
diff --git a/src/VpVolumeSettingPopup.cpp b/src/VpVolumeSettingPopup.cpp
new file mode 100644 (file)
index 0000000..836e70d
--- /dev/null
@@ -0,0 +1,281 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               VpVolumeSettingPopup.cpp
+ * @brief              This is the implementation file for VolumeSettingPopup class.
+ */
+
+#include <FSystem.h>
+#include "VpVolumeSettingPopup.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Media;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+static const int W_VOLUME_POPUP = 600;
+static const int H_VOLUME_POPUP = 180;
+
+static const int SLIDER_MIN_VALUE = 0;
+
+static const int START_CLOSE_TIME = 3000;
+static const int VOLUME_SETTING_DURATION = 200;
+
+static const int X_VOLUME_SLIDER = 100;
+static const int Y_VOLUME_SLIDER = 10;
+static const int W_VOLUME_SLIDER = 400;
+static const int H_VOLUME_SLIDER = 112;
+
+static const wchar_t* MEDIA_SOUND_VOLUME = L"MediaSoundVolume";
+static const wchar_t* MAX_MEDIA_SOUND_VOLUME = L"MaxMediaSoundVolume";
+
+VolumeSettingPopup::VolumeSettingPopup(void)
+       : __pVolumeSettingSlider(null)
+       , __pCloseTimer(null)
+       , __pVolumeSliderTimer(null)
+       , __volumeLevel(0)
+{
+}
+
+VolumeSettingPopup::~VolumeSettingPopup(void)
+{
+       delete __pCloseTimer;
+       __pCloseTimer = null;
+
+       delete __pVolumeSliderTimer;
+       __pVolumeSliderTimer = null;
+}
+
+result
+VolumeSettingPopup::Construct(void)
+{
+       result r = E_FAILURE;
+       int MaxMediaSoundVolume = 0;
+       int MediaSoundVolume = 0;
+
+       r = Popup::Construct(false, Dimension(W_VOLUME_POPUP, H_VOLUME_POPUP));
+       TryCatch(r == E_SUCCESS, , "Popup::Construct() Failed:%s", GetErrorMessage(r));
+
+       SystemInfo::GetValue(MAX_MEDIA_SOUND_VOLUME, MaxMediaSoundVolume);
+       SettingInfo::GetValue(MEDIA_SOUND_VOLUME, MediaSoundVolume);
+
+       AddTouchEventListener(*this);
+       AddKeyEventListener(*this);
+
+       __pVolumeSettingSlider = new (std::nothrow) Slider();
+       __pCloseTimer = new (std::nothrow) Timer();
+       __pVolumeSliderTimer = new (std::nothrow) Timer();
+
+       r = __pVolumeSettingSlider->Construct(
+                       Rectangle(X_VOLUME_SLIDER, Y_VOLUME_SLIDER, W_VOLUME_SLIDER, H_VOLUME_SLIDER), BACKGROUND_STYLE_NONE,
+                       false, SLIDER_MIN_VALUE, MaxMediaSoundVolume);
+       TryCatch(r == E_SUCCESS, , "__pVolumeSettingSlider->Construct() Failed:%s", GetErrorMessage(r));
+
+       r = __pCloseTimer->Construct(*this);
+       TryCatch(r == E_SUCCESS, , "__pCloseTimer->Construct() Failed:%s", GetErrorMessage(r));
+
+       r = __pVolumeSliderTimer->Construct(*this);
+       TryCatch(r == E_SUCCESS, , "__pVolumeSliderTimer->Construct() Failed:%s", GetErrorMessage(r));
+
+       __pVolumeSettingSlider->AddAdjustmentEventListener(*this);
+       __pVolumeSettingSlider->AddSliderEventListener(*this);
+       __pVolumeSettingSlider->SetValue(MediaSoundVolume);
+
+       r = AddControl(*__pVolumeSettingSlider);
+       TryCatch(r == E_SUCCESS, , "AddControl() Failed:%s", GetErrorMessage(r));
+
+       return r;
+
+CATCH:
+       delete __pVolumeSettingSlider;
+       __pVolumeSettingSlider = null;
+
+       delete __pCloseTimer;
+       __pCloseTimer = null;
+
+       delete __pVolumeSliderTimer;
+       __pVolumeSliderTimer = null;
+
+       return r;
+}
+
+void
+VolumeSettingPopup::OnActionPerformed(const Control& source, int actionId)
+{
+}
+
+void
+VolumeSettingPopup::ShowPopup(bool state)
+{
+       result r = E_FAILURE;
+
+       r = SetShowState(state);
+       TryReturnVoid(r == E_SUCCESS, "SetShowState() failed:%s", GetErrorMessage(r));
+
+       r = Show();
+       TryReturnVoid(r == E_SUCCESS, "Show() failed:%s", GetErrorMessage(r));
+
+       r = __pCloseTimer->Start(START_CLOSE_TIME);
+       TryReturnVoid(r == E_SUCCESS, "__pCloseTimer->Start() failed:%s", GetErrorMessage(r));
+}
+
+void
+VolumeSettingPopup::HidePopup(bool state)
+{
+       result r = E_FAILURE;
+
+       r = SetShowState(state);
+       TryReturnVoid(r == E_SUCCESS, "SetShowState() failed:%s", GetErrorMessage(r));
+
+       r = __pCloseTimer->Cancel();
+       TryReturnVoid(r == E_SUCCESS, "__pCloseTimer->Start() failed:%s", GetErrorMessage(r));
+}
+
+void
+VolumeSettingPopup::OnTouchPressed(const Control& source, const Point& currentPosition,
+               const TouchEventInfo& touchInfo)
+{
+       AppLogDebug("OnTouchPressed is called. [%d]%d, %d", touchInfo.GetPointId(), currentPosition.x,
+                       currentPosition.y);
+}
+
+void
+VolumeSettingPopup::OnTouchReleased(const Control& source, const Point& currentPosition,
+               const TouchEventInfo& touchInfo)
+{
+       result r = E_FAILURE;
+
+       AppLogDebug("OnTouchReleased is called. [%d]%d, %d", touchInfo.GetPointId(), currentPosition.x,
+                       currentPosition.y);
+       if (GetShowState()
+               && (currentPosition.x < 0
+               || currentPosition.y < 0
+               || currentPosition.x > W_VOLUME_POPUP
+               || currentPosition.y > H_VOLUME_POPUP))
+       {
+               r = __pCloseTimer->Cancel();
+               TryReturnVoid(r == E_SUCCESS, "__pCloseTimer->Cancel() failed:%s", GetErrorMessage(r));
+
+               r = SetShowState(false);
+               TryReturnVoid(r == E_SUCCESS, "SetShowState() failed:%s", GetErrorMessage(r));
+
+               Invalidate(true);
+       }
+}
+
+void
+VolumeSettingPopup::OnTimerExpired (Timer& timer)
+{
+       result r = E_FAILURE;
+
+       if (timer.GetHashCode() == __pCloseTimer->GetHashCode())
+       {
+               r = SetShowState(false);
+               TryReturnVoid(r == E_SUCCESS, "SetShowState() failed:%s", GetErrorMessage(r));
+
+               Invalidate(true);
+       }
+       else
+       {
+               r = SettingInfo::SetVolume(MEDIA_SOUND_VOLUME, __volumeLevel);
+               TryReturnVoid(r == E_SUCCESS, "SettingInfo::SetVolume() failed:%s", GetErrorMessage(r));
+       }
+}
+
+void
+VolumeSettingPopup::OnKeyPressed(const Control& source, KeyCode keyCode)
+{
+       int maxMediaVolume = 0;
+
+       AppLogDebug("OnKeyPressed Control : %ls, KeyCode : %d", source.GetName().GetPointer(), keyCode);
+
+       SystemInfo::GetValue(MAX_MEDIA_SOUND_VOLUME, maxMediaVolume);
+
+       if (keyCode == KEY_SIDE_UP
+               || keyCode == KEY_SIDE_DOWN)
+       {
+               if (GetShowState() == false)
+               {
+                       // Empty statement
+               }
+               else
+               {
+                       result r = E_FAILURE;
+
+                       r = __pCloseTimer->Cancel();
+                       TryReturnVoid(r == E_SUCCESS, "__pCloseTimer->Start() failed:%s", GetErrorMessage(r));
+
+                       r = SetShowState(false);
+                       TryReturnVoid(r == E_SUCCESS, "SetShowState() failed:%s", GetErrorMessage(r));
+               }
+       }
+}
+
+void
+VolumeSettingPopup::OnKeyReleased(const Control& source, KeyCode keyCode)
+{
+       AppLogDebug("OnKeyReleased Control : %ls, KeyCode : %d", source.GetName().GetPointer(), keyCode);
+
+       if (keyCode == KEY_SIDE_UP
+               || keyCode == KEY_SIDE_DOWN)
+       {
+               // Empty statement
+       }
+}
+
+void
+VolumeSettingPopup::OnKeyLongPressed(const Control& source, KeyCode keyCode)
+{
+       AppLogDebug("OnKeyLongPressed Control : %ls, KeyCode : %d", source.GetName().GetPointer(), keyCode);
+
+       if (keyCode == KEY_SIDE_UP
+               || keyCode == KEY_SIDE_DOWN)
+       {
+               // Empty statement
+       }
+}
+
+void
+VolumeSettingPopup::OnAdjustmentValueChanged(const Control& source, int adjustment)
+{
+       result r = E_FAILURE;
+
+       AppLogDebug("SliderBarMoved - OnAdjustmentValueChanged\n");
+
+       __pVolumeSliderTimer->Cancel();
+
+       r = SettingInfo::SetVolume(MEDIA_SOUND_VOLUME, adjustment);
+       TryReturnVoid(r == E_SUCCESS, "SettingInfo::SetVolume() failed:%s", GetErrorMessage(r));
+
+       r = __pCloseTimer->Start(START_CLOSE_TIME);
+       TryReturnVoid(r == E_SUCCESS, "__pCloseTimer->Start() failed:%s", GetErrorMessage(r));
+}
+
+void
+VolumeSettingPopup::OnSliderBarMoved(Slider& source, int value)
+{
+       __pCloseTimer->Cancel();
+
+       __volumeLevel = value;
+
+       __pVolumeSliderTimer->Start(VOLUME_SETTING_DURATION);
+}