--- /dev/null
+# 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})
--- /dev/null
+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.
+
--- /dev/null
+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
--- /dev/null
+//
+// 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_
--- /dev/null
+//
+// 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_
--- /dev/null
+//
+// 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_
--- /dev/null
+//
+// 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_
--- /dev/null
+//
+// 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_
--- /dev/null
+//
+// 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_
--- /dev/null
+//
+// 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
--- /dev/null
+//
+// 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_
--- /dev/null
+//
+// 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_
--- /dev/null
+<?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>
--- /dev/null
+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/*
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+//
+// 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;
+}
--- /dev/null
+//
+// 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");
+}
--- /dev/null
+//
+// 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;
+ }
+}
--- /dev/null
+//
+// 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";
--- /dev/null
+//
+// 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
--- /dev/null
+//
+// 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
--- /dev/null
+//
+// 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
--- /dev/null
+//
+// 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;
+}
--- /dev/null
+//
+// 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);
+}