src/core/mp-streaming-mgr.c
src/common/mp-common.c
- src/common/mp-item.c
- src/common/mp-menu.c
- src/common/mp-widget.c
- src/common/mp-util.c
+ src/common/mp-item.c
+ src/common/mp-ta.c
+ src/common/mp-menu.c
+ src/common/mp-ug-launch.c
+ src/common/mp-widget.c
+ src/common/mp-util.c
src/common/mp-play.c
src/common/mp-app.c
src/common/mp-view-manager.c
+ src/common/mp-media-info.c
src/view/mp-library.c
src/view/mp-track-view.c
src/widget/mp-smart-event-box.c
src/widget/mp-popup.c
src/widget/mp-view-layout.c
+ src/widget/mp-minicontroller.c
+# src/widget/mp-mini-player.c
src/core/mp-http-mgr.c
+ src/core/mp-language-mgr.c
)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include
src/list/include
src/view/include
src/widget/include
+ src/oem/shazam/include
)
SET(SRCS ${COMMON_SRCS} ${RICH_INFO_SRCS})
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs REQUIRED
- appcore-efl
elementary
ecore
- utilX
- mm-player
- mm-sound
- libmedia-service
dlog
- ui-gadget
- mm-session
- mm-fileinfo
+ drm-client
+ glib-2.0
+ ui-gadget-1
syspopup-caller
- pmapi
+ capi-system-power
vconf
libxml-2.0
eina
ecore-x
ecore-file
ecore-input
+ libcrypto
edje
- appsvc
evas
- devman_haptic
- svi
+ capi-appfw-application
+ capi-appfw-app-manager
+ capi-media-sound-manager
+ capi-media-player
+ capi-media-metadata-extractor
+ capi-system-haptic
+ minicontrol-provider
+ capi-system-media-key
+ capi-content-media-content
)
FOREACH(flag ${pkgs_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
+#SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -finstrument-functions")
+#SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -DMUSIC_DEBUG")
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -DMACHINE_$ENV{MACHINE}")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fpie")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall -g -fpie")
+SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
-if("${CMAKE_SYSTEM_VERSION}" STREQUAL "arm")
+MESSAGE("### CMAKE_SYSTEM_VERSION :: ${CMAKE_SYSTEM_VERSION} ###")
+if("${CMAKE_SYSTEM_VERSION}" STREQUAL "arm" OR "${CMAKE_SYSTEM_VERSION}" STREQUAL "armv7l")
ADD_DEFINITIONS("-D__ARM__")
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm)
+else()
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm)
endif()
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
-
ADD_CUSTOM_TARGET(mp-custom-winset-style.edj
COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images/music_player
${CMAKE_SOURCE_DIR}/layout/mp-custom-winset-style.edc ${CMAKE_BINARY_DIR}/layout/mp-custom-winset-style.edj
)
ADD_DEPENDENCIES(${PROJECT_NAME} music.edj)
+ADD_CUSTOM_TARGET(mp-minicontroller.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images/music_player
+ ${CMAKE_SOURCE_DIR}/layout/mp-minicontroller.edc ${CMAKE_BINARY_DIR}/layout/mp-minicontroller.edj
+ DEPENDS ${CMAKE_SOURCE_DIR}/layout/mp-minicontroller.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} mp-minicontroller.edj)
+
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
SET(BINDIR "${PREFIX}/bin")
SET(RESDIR "${PREFIX}/res")
INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/mp-custom-winset-style.edj DESTINATION ${EDJDIR})
INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/music.edj DESTINATION ${EDJDIR})
INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/mp-library.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/mp-minicontroller.edj DESTINATION ${EDJDIR})
INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/mp-library.edj DESTINATION ${EDJDIR})
INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/music.edj DESTINATION ${EDJDIR})
INSTALL(DIRECTORY DESTINATION ${DATADIR})
# install desktop file & icon
-CONFIGURE_FILE(data/org.tizen.music-player.desktop.in org.tizen.music-player.desktop)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.music-player.desktop DESTINATION /opt/share/applications)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/org.tizen.music-player.png DESTINATION ${ICONDIR})
+#CONFIGURE_FILE(data/org.tizen.music-player.desktop.in org.tizen.music-player.desktop)
+#INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.music-player.desktop DESTINATION /opt/share/applications)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/org.tizen.music-player.png DESTINATION ${CMAKE_DESKTOP_ICON_DIR})
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/target_images/music_player DESTINATION ${RESDIR}/icons)
+#install xml file
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.music-player.xml DESTINATION /opt/share/packages)
+
# install menu icon
INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/music-player.uri DESTINATION /opt/share/miregex)
ADD_SUBDIRECTORY(po)
#ADD_SUBDIRECTORY(data)
+# Sound Player
+ADD_SUBDIRECTORY(sound-player)
+Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
Name[ko_KR]=음악
Type=Application
Exec=${PREFIX}/bin/music-player
-Icon=org.tizen.music-player.png
+Icon=org.tizen..music-player.png
Network=False
Version=0.1.0
Comment=music
X-Tizen-TaskManage=True
X-Tizen-Multiple=False
X-Tizen-Removable=False
-MimeType=audio/x-flac; music-player.uri; audio/mpeg; audio/aac; audio/AMR; audio/AMR-WB; audio/ac3; audio/x-ms-wma; audio/ogg; audio/vorbis; audio/x-wav; audio/imelody; audio/iMelody; audio/rmf; audio/x-rmf; application/x-smaf; application/vnd.smaf; audio/x-xmf; audio/mobile-xmf; audio/mid; audio/vnd.ms-playready.media.pya; audio/imy; audio/m4a; audio/melody; audio/midi; audio/mmf; audio/mp3; audio/mp4; audio/MP4A-LATM; audio/mpeg3; audio/mpeg4; audio/mpg; audio/mpg3; audio/smaf; audio/sp-midi; audio/wav; audio/wave; audio/wma; audio/xmf; audio/amr; audio/amr-wb; audio/x-amr; audio/x-mid; audio/x-midi; audio/x-mp3; audio/-mpeg; audio/x-mpeg3; audio/x-mpegaudio; audio/x-mpg; audio/x-ms-asf; audio/x-wave; application/ogg;
-X-Tizen-SVC=http://tizen.org/appsvc/operation/view|NULL|audio/*;http://tizen.org/appsvc/operation/view|http|audio/*;http://tizen.org/appsvc/operation/view|https|audio/*
+MimeType=music-player.uri;
Nodisplay=False
+++ /dev/null
-music-player (0.1.3) unstable; urgency=low
-
- * Git init
- * Git: pkgs/m/music-player
- * Tag: music-player_0.1.3
-
- -- Hyungmin Kim <hm2007.kim@samsung.com> Thu, 22 Dec 2011 17:17:40 +0900
-
-
+++ /dev/null
-Source: music-player
-Section: base
-Priority: extra
-Maintainer: Hyungmin Kim <hm2007.kim@samsung.com>, A-Ram Kim <aramie.kim@samsung.com>, He Jian <rocket.he@samsung.com>, Xie RongHua <ronghua.xie>, Tang Feng <feng.tang@samsung.com>, Byeongin Oh <quddls.oh@samsung.com>
-Uploaders:
-Build-Depends: libappcore-efl-dev,
- libelm-dev,
- libecore-dev,
- libslp-utilx-dev,
- libmm-player-dev,
- libmm-sound-dev,
- libmedia-service-dev,
- libslp-setting-dev,
- dlog-dev,
- libui-gadget-dev,
- libmm-session-sdk-dev,
- libmm-fileinfo-dev,
- syspopup-caller-dev,
- libslp-pm-dev,
- libeina-dev,
- execstack,
- libappsvc-dev,
- libevas-dev,
- libslp-utilx-dev,
- libdevman-haptic-dev,
- libsvi-dev,
-Standards-Version: 0.1.0
-Homepage: N/A
-
-Package: org.tizen.music-player
-Section: base
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: music player application
-Version: 0.1.0
-
-Package: org.tizen.music-player-dbg
-Section: debug
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: music player application(unstripped)
-Version: 0.1.0
-
-
+++ /dev/null
-dh_installdirs
-dh_installexamples
+++ /dev/null
-/opt/share/miregex/*
-/opt/share/applications/*
-@PREFIX@/bin/*
-@PREFIX@/res/locale/*
-@PREFIX@/res/icons/*
-@PREFIX@/res/edje/*
-@PREFIX@/data
+++ /dev/null
-/opt/share/miregex/*
-/opt/share/applications/*
-@PREFIX@/bin/*
-@PREFIX@/res/locale/*
-@PREFIX@/res/icons/*
-@PREFIX@/res/edje/*
-@PREFIX@/data
+++ /dev/null
-#!/bin/sh
-
-if [ ${USER} = "root" ]
-then
-
-# 5000 is inhouse user id 5
-# do not use relative path 6 /usr/bin/vconftool set -t int db/setting/music-player/menu 7 -g 6514
-chown -R 5000:5000 /opt/apps/org.tizen.music-player/data
-
-/usr/bin/vconftool set -t int db/setting/music-player/menu 7 -g 6514
-
-/usr/bin/vconftool set -t bool db/setting/music-player/se_change 1 -g 6518
-/usr/bin/vconftool set -t bool db/setting/music-player/menu_change 1 -g 6518
-/usr/bin/vconftool set -t bool db/setting/music-player/surround_ch_state 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/eq_val 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/effect_val 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_1 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_2 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_3 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_4 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_5 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_6 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_7 0 -g 6518
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_8 0 -g 6518
-
-/usr/bin/vconftool set -t int memory/music/state 0 -i -g 6518
-/usr/bin/vconftool set -t int memory/music/process_state 0 -i -g 6518
-/usr/bin/vconftool set -t int memory/music/album_art 0 -i -g 6518
-
-/usr/bin/vconftool set -t string memory/music/pos "00:00" -i -g 6518
-/usr/bin/vconftool set -t double memory/music/progress_pos 0.0 -i -g 6518
-/usr/bin/vconftool set -t bool memory/music/play_clicked 1 -i -g 6518
-/usr/bin/vconftool set -t bool memory/music/pause_clicked 1 -i -g 6518
-/usr/bin/vconftool set -t bool memory/music/prev_pressed 1 -i -g 6518
-/usr/bin/vconftool set -t bool memory/music/prev_released 1 -i -g 6518
-/usr/bin/vconftool set -t bool memory/music/next_pressed 1 -i -g 6518
-/usr/bin/vconftool set -t bool memory/music/next_released 1 -i -g 6518
-
-/usr/bin/vconftool set -t bool db/music/menu/shuffle 1 -i -g 6518
-/usr/bin/vconftool set -t int db/music/menu/repeat 0 -i -g 6518
-
-
-else
-
-/usr/bin/vconftool set -t int db/setting/music-player/menu 7
-
-/usr/bin/vconftool set -t bool db/setting/music-player/se_change 1
-/usr/bin/vconftool set -t bool db/setting/music-player/menu_change 1
-/usr/bin/vconftool set -t bool db/setting/music-player/surround_ch_state 0
-/usr/bin/vconftool set -t int db/setting/music-player/eq_val 0
-/usr/bin/vconftool set -t int db/setting/music-player/effect_val 0
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_1 0
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_2 0
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_3 0
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_4 0
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_5 0
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_6 0
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_7 0
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_8 0
-
-/usr/bin/vconftool set -t int memory/music/state 0
-/usr/bin/vconftool set -t int memory/music/process_state 0
-/usr/bin/vconftool set -t int memory/music/album_art 0
-
-/usr/bin/vconftool set -t string memory/music/pos "00:00"
-/usr/bin/vconftool set -t double memory/music/progress_pos 0.0
-/usr/bin/vconftool set -t bool memory/music/play_clicked 1
-/usr/bin/vconftool set -t bool memory/music/pause_clicked 1
-/usr/bin/vconftool set -t bool memory/music/prev_pressed 1
-/usr/bin/vconftool set -t bool memory/music/prev_released 1
-/usr/bin/vconftool set -t bool memory/music/next_pressed 1
-/usr/bin/vconftool set -t bool memory/music/next_released 1
-
-/usr/bin/vconftool set -t bool db/music/menu/shuffle 1
-/usr/bin/vconftool set -t int db/music/menu/repeat 0
-
-fi
-
-
+++ /dev/null
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-CFLAGS += -Wall -g
-CXXFLAGS += -Wall -g
-LDFLAGS +=
-
-PREFIX ?= /opt/apps/org.tizen.music-player
-RESDIR ?= /opt/apps/org.tizen.music-player/res
-DATADIR ?= /opt/apps/org.tizen.music-player/data
-
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -O0
- CXXFLAGS += -O0
-else
- CFLAGS += -O2
- CXXFLAGS += -O2
-endif
-
-CFLAGS += -fpie
-LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--as-needed -pie
-
-configure: configure-stamp
-configure-stamp:
- dh_testdir
- # Add here commands to configure the package.
- CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" cmake . -DCMAKE_INSTALL_PREFIX=$(PREFIX)
-
- touch configure-stamp
-
-build: build-stamp
-
-build-stamp: configure-stamp
- dh_testdir
-
- # Add here commands to compile the package.
- $(MAKE)
- #docbook-to-man debian/wavplayer.sgml > wavplayer.1
-
- for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
- cat $$f > $${f%.in}; \
- sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \
- sed -i -e "s#@RESDIR@#$(RESDIR)#g" $${f%.in}; \
- sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \
- done
-
-
- touch $@
-
-clean:
- dh_testdir
- dh_testroot
- rm -f build-stamp configure-stamp
-
- # Add here commands to clean up after the build process.
- -$(MAKE) clean
- rm -rf CMakeCache.txt
- rm -rf CMakeFiles
- rm -rf cmake_install.cmake
- rm -rf Makefile
- rm -rf install_manifest.txt
-
- rm -rf *.so
- rm -rf *.edj
- rm -rf SettingData/*.edj
- rm -rf layout/*.edj
- rm -rf po/CMakeFiles po/Makefile po/cmake_install.cmake
- rm -rf po/*.mo
- rm -rf data/CMakeFiles data/Makefile data/cmake_install.cmake
- rm -rf org.tizen.music-player.desktop
-
- for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
- rm -f $${f%.in}; \
- done
-
- dh_clean
-
-install: build
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
-
- # Add here commands to install the package into debian/wavplayer.
- $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
- execstack -c $(CURDIR)/debian/tmp/opt/apps/org.tizen.music-player/bin/music-player
-
-
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
- dh_testdir
- dh_testroot
-# dh_installchangelogs
-# dh_installdocs
- dh_installexamples
- dh_install --sourcedir=debian/tmp
-# dh_installmenu
-# dh_installdebconf
-# dh_installlogrotate
-# dh_installemacsen
-# dh_installpam
-# dh_installmime
-# dh_python
-# dh_installinit
-# dh_installcron
-# dh_installinfo
- dh_installman
- dh_link
-# dh_strip
- dh_strip --dbg-package=org.tizen.music-player-dbg
- dh_compress
- dh_fixperms
-# dh_perl
- dh_makeshlibs
- dh_installdeb
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+
+#ifndef __MP_VCONF_PRIVATE_KEYS_H__
+#define __MP_VCONF_PRIVATE_KEYS_H__
+
+#include <vconf-keys.h>
+
+#define VCONFKEY_MP_PRIVATE "private/org.tizen.music-player/"
+#define VCONFKEY_MP_DB_PREFIX "db/"VCONFKEY_MP_PRIVATE
+#define VCONFKEY_MP_MEMORY_PREFIX "memory/"VCONFKEY_MP_PRIVATE
+
+/**
+ * @brief trigger of menu settng changes
+ *
+ * type: int
+ *
+ * value is not meaningful
+ */
+#define VCONFKEY_MUSIC_MENU_CHANGE VCONFKEY_MP_DB_PREFIX"menu_change"
+
+
+/**
+ * @brief playlist shuffle state
+ *
+ * type: bool
+ *
+ * 0 : off
+ * 1 : on
+ */
+#define MP_VCONFKEY_MUSIC_SHUFFLE VCONFKEY_MP_DB_PREFIX"shuffle"
+
+
+/**
+ * @brief playlist repeat state
+ *
+ * type: int
+ *
+ * 0 : repeat all
+ * 1 : no repeat
+ * 2 : repeat only a songs
+ */
+#define MP_VCONFKEY_MUSIC_REPEAT VCONFKEY_MP_DB_PREFIX"repeat"
+enum
+{
+ MP_SETTING_REP_ALL,
+ MP_SETTING_REP_NON,
+ MP_SETTING_REP_1
+};
+
+
+/**
+ * @brief check which player is playing now
+ *
+ * type: int
+ *
+ * pid of music-player of sound-player
+ */
+#define MP_VCONFKEY_PLAYING_PID VCONFKEY_MP_MEMORY_PREFIX"playing_pid"
+
+
+#endif /* __MP_VCONF_PRIVATE_KEYS_H__ */
+
--- /dev/null
+#define MP_DALI_BACK_BUTTON_SIZE 52
+#define MP_DALI_TAP 10
+
+group {
+ name: "3d-layout";
+
+ parts {
+ part { name: "background";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ //min: 1280 720;
+ //max: 1280 720;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ //color: 37 37 37 255;
+ color: 0 0 0 0;
+ }
+ }
+#if 0
+ part {
+ name : "now_playing_bar";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0 0;
+ min: 0 100;
+ fixed: 0 1;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 0.0;}
+ }
+ }
+
+ part {
+ name : "background";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "now_playing_bar"; offset: 0 1;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+#endif
+ part {
+ name : "content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;to: "background";}
+ rel2 { relative: 1.0 1.0;to: "background";}
+ }
+ }
+
+ part {
+ name : "genlist_ly";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.3 0.0;to: "content";}
+ rel2 { relative: 0.7 1.0;to: "content";}
+ }
+ }
+
+ part {
+ name : "left_title";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;to: "content";}
+ rel2 { relative: 0.28 0.15;to: "content";}
+ }
+ }
+
+ part {
+ name : "now_playing";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.72 0.0;to: "content";}
+ rel2 { relative: 1.0 0.35;to: "content";}
+ }
+ }
+
+ part { name: "back_button";
+ type : SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ min: MP_DALI_BACK_BUTTON_SIZE 0;
+ fixed: 1 0;
+ align: 0.5 0.5;
+ rel1 { relative: 1.0 1.0;
+ offset: (-MP_DALI_BACK_BUTTON_SIZE-MP_DALI_TAP) (-MP_DALI_BACK_BUTTON_SIZE-MP_DALI_TAP);
+ to, "background";
+ }
+ rel2 { relative: 1.0 1.0;
+ offset: (-MP_DALI_TAP) (-MP_DALI_TAP);
+ to, "background";
+ }
+ }
+ }
+ }
+}
+
+group {
+ name: "3d-genlist";
+ parts {
+ part { name: "background";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 0 0 229;
+ }
+ }
+
+ part {
+ name : "list_content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;to: "background";}
+ rel2 { relative: 1.0 1.0;to: "background";}
+ }
+ }
+ }
+}
+
+group {
+ name: "3d-left-title";
+ parts {
+ part { name: "background";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "album_name";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ //min: 0 38;
+ fixed: 0 1;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "background";
+ }
+ rel2 {
+ relative: 1.0 0.5;
+ offset: 0 0;
+ to: "background";
+ }
+ color: 255 255 255 255;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: 34;
+ min: 0 1;
+ align: 1.0 0.5;
+ }
+ }
+ }
+
+ part { name: "artist_name";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ //min: 0 38;
+ fixed: 0 1;
+ align: 1.0 0.0;
+ rel1 {
+ relative: 0.0 0.5;
+ to: "background";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to: "background";
+ }
+ color: 176 176 176 255;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: 34;
+ min: 0 1;
+ align: 1.0 0.0;
+ }
+ }
+ }
+ }
+}
+
+#define COVER_FLOW_NOW_PLAYING_ARROW "Cover_flow/T02_cover_flow_now_playing_arrow.png"
+#define COVER_FLOW_NOW_PLAYING_BG "Cover_flow/T02_cover_flow_now_playing_bg.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_01 "Cover_flow/T02_cover_flow_now_playing_album_01.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_02 "Cover_flow/T02_cover_flow_now_playing_album_02.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_03 "Cover_flow/T02_cover_flow_now_playing_album_03.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_04 "Cover_flow/T02_cover_flow_now_playing_album_04.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_05 "Cover_flow/T02_cover_flow_now_playing_album_05.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_06 "Cover_flow/T02_cover_flow_now_playing_album_06.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_07 "Cover_flow/T02_cover_flow_now_playing_album_07.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_08 "Cover_flow/T02_cover_flow_now_playing_album_08.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_09 "Cover_flow/T02_cover_flow_now_playing_album_09.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_10 "Cover_flow/T02_cover_flow_now_playing_album_10.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_11 "Cover_flow/T02_cover_flow_now_playing_album_11.png"
+#define COVER_FLOW_NOW_PLAYING_ALBUM_12 "Cover_flow/T02_cover_flow_now_playing_album_12.png"
+
+#define COVER_FLOW_ALBUM_IMAGE( param_num ) \
+ description { state: "album_"#param_num 0.0; \
+ inherit: "default" 0.0; \
+ image { \
+ normal: "Cover_flow/T02_cover_flow_now_playing_album_"#param_num".png"; \
+ } \
+ }
+
+#define COVER_FLOW_SHOW_ALBUM_IMAGE( param_num ) \
+ program { \
+ name : "show_album_image_"#param_num; \
+ signal : "SHOW_ALBUM_IMAGE_"#param_num; \
+ source : "music_app"; \
+ action : STATE_SET "album_"#param_num 0.0; \
+ target : "album_image"; \
+ }
+
+group {
+ name: "3d-now-playing";
+
+ images {
+ image: COVER_FLOW_NOW_PLAYING_ARROW COMP;
+ image: COVER_FLOW_NOW_PLAYING_BG COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_01 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_02 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_03 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_04 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_05 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_06 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_07 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_08 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_09 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_10 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_11 COMP;
+ image: COVER_FLOW_NOW_PLAYING_ALBUM_12 COMP;
+ }
+
+ parts {
+ part { name: "background";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "elm.padding.right";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 8 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to: "background";
+ }
+ align: 1.0 0.0;
+ }
+ }
+
+ part { name: "elm.padding.top";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 8;
+ fixed: 0 1;
+ visible: 0;
+ rel2 {
+ relative: 1.0 0.0;
+ to: "background";
+ }
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name, "album_image";
+ type, IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ image { normal: COVER_FLOW_NOW_PLAYING_ALBUM_01; }
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 {
+ relative: 0.2 1.0;
+ offset: 0 0;
+ to_x: "background";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "background";
+ }
+ }
+ COVER_FLOW_ALBUM_IMAGE( 01 )
+ COVER_FLOW_ALBUM_IMAGE( 02 )
+ COVER_FLOW_ALBUM_IMAGE( 03 )
+ COVER_FLOW_ALBUM_IMAGE( 04 )
+ COVER_FLOW_ALBUM_IMAGE( 05 )
+ COVER_FLOW_ALBUM_IMAGE( 06 )
+ COVER_FLOW_ALBUM_IMAGE( 07 )
+ COVER_FLOW_ALBUM_IMAGE( 08 )
+ COVER_FLOW_ALBUM_IMAGE( 09 )
+ COVER_FLOW_ALBUM_IMAGE( 10 )
+ COVER_FLOW_ALBUM_IMAGE( 11 )
+ COVER_FLOW_ALBUM_IMAGE( 12 )
+ }
+
+ part { name, "now_playing_bg";
+ type, IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ image { normal: COVER_FLOW_NOW_PLAYING_BG; }
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_x: "background";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.5;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "background";
+ }
+ }
+ }
+
+ part { name, "now_playing_arrow";
+ type, IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ image { normal: COVER_FLOW_NOW_PLAYING_ARROW; }
+ visible: 1;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 10 0;
+ to: "now_playing_bg";
+ }
+ rel2 {
+ relative: 0.15 0.5;
+ offset: 10 0;
+ to: "now_playing_bg";
+ }
+ }
+ }
+
+ part { name: "track_name";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ //min: 0 38;
+ fixed: 0 1;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: 8 0;
+ to_x: "now_playing_arrow";
+ to_y: "now_playing_bg";
+ }
+ rel2 {
+ relative: 1.0 0.5;
+ offset: 0 0;
+ to: "now_playing_bg";
+ }
+ color: 169 220 255 255;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: 30;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+
+ part { name: "artist_name";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ //min: 0 38;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 1.0 0.5;
+ offset: 8 0;
+ to_x: "now_playing_arrow";
+ to_y: "now_playing_bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to: "now_playing_bg";
+ }
+ color: 169 220 255 255;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: 30;
+ min: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+ }
+ }
+
+ programs {
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 01 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 02 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 03 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 04 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 05 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 06 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 07 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 08 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 09 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 10 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 11 )
+ COVER_FLOW_SHOW_ALBUM_IMAGE( 12 )
+ }
+
+}
\ No newline at end of file
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
+ //1 this code is based on nbeat theme (2011/09/9)
+
#define BUTTON_STATE_ENABLED 0
#define BUTTON_STATE_DISABLED 1
script {
public button_state = BUTTON_STATE_ENABLED;
}
+
parts {
part { name: "elm.swallow.content";
type: SWALLOW;
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
#include "mp-defines.h"
collections {
#include "mp-genlist-theme.edc"
- #include "mp-naviframe.edc"
- #include "mp-toolbar.edc"
#include "mp-progressbar.edc"
- #include "mp-button.edc"
+ #include "mp-genlist-sweep.edc"
#include "mp-genlist-edit.edc"
- #include "mp-editfield.edc"
+ #include "mp-gengrid-style.edc"
#include "mp-selection-info.edc"
+ #include "mp-naviframe.edc"
}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
-
#ifndef __MP_DEFINES_H__
#define __MP_DEFINES_H__
-
/* main size */
#define MAIN_W 480
#define MAIN_H 800
+//#define PLAYVIEW_H 706
#define PLAYVIEW_H 620
-#define MENUBOX_H 56
+#define MENUBOX_H /*90*/56
#define PROGRESSBOX_H 67
#define FONT_STYLE_MEDIUM "SLP:style=Medium"
#define FONT_STYLE_BOLD "SLP:style=Bold"
-#define FONT_NAME "system_content"
-#define FONT_TITLE_NAME "system_title"
-#define FONT_CONTENT_NAME "system_content"
-#define FONT_SUBCONTENT_NAME "system_subcontent"
+#define FONT_NAME "system_content" //should be replaced to FONT_CONTENT_NAME
+#define FONT_TITLE_NAME "system_title" //"system_title"
+#define FONT_CONTENT_NAME "system_content" //"system_content"
+#define FONT_SUBCONTENT_NAME "system_subcontent" //"system_subcontent"
/* soft key*/
#define SOFTKEY_SY (722/MAIN_H)
#define MP_NAVI_BAR_H (35)
/* player info box*/
-#define INFO_BOX_SY ((634 - MP_NAVI_BAR_H)/MAIN_H)
+#define INFO_BOX_SY ((/*595*/634 - MP_NAVI_BAR_H)/MAIN_H)
/* play control box*/
-#define CTL_BOX_HEIGHT 120
-#define CTL_BOX_SY 705/MAIN_H
+#define CTL_BOX_HEIGHT 120/*86*/
+#define CTL_BOX_SY /*((714 -10)/MAIN_H)*/705/MAIN_H
#define CTL_REW_SX (115/MAIN_W)
#define CTL_REW_EX (165/MAIN_W)
#define CTL_REW_SY (20/CTL_BOX_HEIGHT)
#define MENU_SY HD_MENU_PAD_TOP/HD_MENU_BOX_H
#define MENU_EY (HD_MENU_PAD_TOP+HD_MENU_H)/HD_MENU_BOX_H
-#define MENU_SHUFFLE_SX HD_MENU_PAA_LEFT/HD_MENU_BOX_W
-#define MENU_SHUFFLE_EX (HD_MENU_PAA_LEFT+HD_MENU_W)/HD_MENU_BOX_W
-#define MENU_REP_ALL_SX (HD_MENU_BOX_W-HD_MENU_W)/2/HD_MENU_BOX_W
-#define MENU_REP_ALL_EX (HD_MENU_BOX_W+HD_MENU_W)/2/HD_MENU_BOX_W
+#define MENU_SRS_SX HD_MENU_PAA_LEFT/HD_MENU_BOX_W
+#define MENU_SRS_EX (HD_MENU_PAA_LEFT+HD_MENU_W)/HD_MENU_BOX_W
+#define MENU_SHUFFLE_SX (HD_MENU_PAA_LEFT+HD_MENU_W+HD_MENU_PAD_MENU)/HD_MENU_BOX_W
+#define MENU_SHUFFLE_EX (HD_MENU_PAA_LEFT+HD_MENU_W*2+HD_MENU_PAD_MENU)/HD_MENU_BOX_W
+#define MENU_REP_ALL_SX (HD_MENU_PAA_LEFT+HD_MENU_W*2+HD_MENU_PAD_MENU*2)/HD_MENU_BOX_W
+#define MENU_REP_ALL_EX (HD_MENU_PAA_LEFT+HD_MENU_W*3+HD_MENU_PAD_MENU*2)/HD_MENU_BOX_W
#define MENU_FAVORITE_SX (HD_MENU_PAA_LEFT+HD_MENU_W*3+HD_MENU_PAD_MENU*3)/HD_MENU_BOX_W
#define MENU_FAVORITE_EX (HD_MENU_PAA_LEFT+HD_MENU_W*4+HD_MENU_PAD_MENU*3)/HD_MENU_BOX_W
--- /dev/null
+
+ group {
+ name: "edit_view";
+
+ parts {
+ part { name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.list";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 0.0; to: "elm.swallow.toolbar";}
+ }
+ }
+
+ part {
+ name: "elm.swallow.toolbar";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 86;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; offset: 0 -1;}
+ rel2 { relative: 1.0 1.0; offset: 0 -1;}
+ }
+ }
+ }
+
+ programs{
+
+ }
+ }
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
#define ENTRY_TEXT_SIZE_INC 44
#define ENTRY_TEXT_COLOR_INC "#FFFFFF"
--- /dev/null
+
+#define VIDEO_W 184
+#define VIDEO_H 213
+
+#define ICON_W 162
+#define ICON_H 129
+
+#define VIDEO_TXT_COLOR 166 166 166 255
+#define VIDEO_TXT_SIZE 24
+#define VIDEO_TXT_FONT "Helvetica Neue:style=Roman"
+
+group {
+ name: "elm/gengrid/item/grid_video/default";
+
+ data.item: "texts" "elm.text.1 elm.text.2";
+ data.item: "contents" "elm.swallow.icon";
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part {
+ name: "elm.swallow.bg";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1 { relative: 0.0 0.0; to: "bg"; }
+ rel2 { relative: ICON_W/VIDEO_W ICON_H/VIDEO_H;}
+ }
+ }
+
+ part {
+ name: "elm.swallow.icon";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg"; }
+ rel2 { relative: ICON_W/VIDEO_W ICON_H/VIDEO_H;}
+ }
+ }
+
+ part {
+ name: "elm.text.1";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 139/VIDEO_H; offset: 0 0; to_x: "elm.swallow.bg"; }
+ rel2 { relative: 1.0 167/VIDEO_H; offset: 0 0; to_x: "elm.swallow.bg"; }
+ color: VIDEO_TXT_COLOR;
+ text {
+ font: VIDEO_TXT_FONT;
+ size: VIDEO_TXT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "elm.text.2";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 173/VIDEO_H; offset: 0 0; to_x: "elm.text.1"; }
+ rel2 { relative: 1.0 201/VIDEO_H; offset: 0 0; to_x: "elm.text.1"; }
+ color: VIDEO_TXT_COLOR;
+ text {
+ font: VIDEO_TXT_FONT;
+ size: VIDEO_TXT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ }
+}
+
+group { name: "elm/gengrid/item/music/grid_square/default";
+ data.item: "contents" "elm.swallow.icon elm.swallow.end";
+ parts {
+ part { name: "bg";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "elm.swallow.icon";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "bg";
+ }
+ }
+ }
+ }
+ }
+
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
group { name: "elm/genlist/item/select_all/music/default";
alias: "elm/genlist/item_odd/select_all/music/default";
data.item: "selectraise" "on";
data.item: "texts" "elm.text";
data.item: "contents" "elm.icon";
- images {
- image: "00_list_bar_press_1x80.png" COMP;
- }
+
parts {
part { name: "base";
type: RECT;
to_x: "elm.padding.right";
to_y: "elm.padding.bottom";
}
- color: GENLIST_PART_TEXT_COLOR_INC;
+ color: MP_MAIN_TEXT_COLOR;
text {
font: "SLP:style=Roman";
size: GENLIST_FONT_44_INC;
--- /dev/null
+
+#define MP_GENLIST_SWEEP_PART_BASE( param_item_height ) \
+ part { name: "base";\
+ type: RECT;\
+ clip_to: "disclip";\
+ scale: 1;\
+ description { state: "default" 0.0;\
+ min: 0 param_item_height;\
+ color: 236 240 242 255;\
+ }\
+ }
+
+#define GENLIST_SIZE_SLIDE_109_INC 109
+#define GENLIST_SIZE_SLIDE_147_INC 147
+
+#define GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC 124 124 124 255
+
+group { name: "elm/genlist/item/mode/music/slide/default";
+ alias: "elm/genlist/item_odd/mode/music/slide/default";
+ alias: "elm/genlist/item_compress/mode/music/slide/default";
+ alias: "elm/genlist/item_compress_odd/mode/music/slide/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.slide.text.1";
+ data.item: "contents" "elm.slide.swallow.1";
+ data.item: "mode_part" "elm.swallow.origin";
+ data.item: "treesize" "GENLIST_TREESIZE_32_INC";
+ images {
+ image: "00_sweep_list_bg.png" COMP;
+ }
+
+ parts {
+ #if 0
+ part { name: "base";
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_HEIGHT_113_INC;
+ image {
+ normal: "00_sweep_list_bg.png";
+ border: 0 0 3 0;
+ }
+ }
+ }
+ #endif
+ MP_GENLIST_SWEEP_PART_BASE(GENLIST_HEIGHT_113_INC)
+
+ part { name: "bottom_line";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 1;
+ fixed: 0 1;
+ visible: 1;
+ color: GENLIST_PART_LIST_LINE_COLOR_INC;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.left";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1.to: "base";
+ rel2 {
+ relative: 0 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "base.padding.right";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1 {
+ relative: 1 0;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.bottom";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_PADDING_6_INC;
+ fixed: 0 1;
+ visible: 0;
+ align: 0.5 1;
+ rel1 {
+ relative: 0 1;
+ to: "base";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "elm.slide.text.1";
+ type: TEXT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_45_INC;
+ fixed: 0 1;
+ align: 0.5 0;
+ rel1 {
+ relative: 1 0;
+ to_x: "base.padding.left";
+ to_y: "base";
+ }
+ rel2 {
+ relative: 0 0;
+ to_x: "base.padding.right";
+ to_y: "base";
+ }
+ color: GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC;
+ text {
+ font: "SLP:style=Roman";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.1";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_390_INC GENLIST_SIZE_SLIDE_60_INC;
+ max: GENLIST_SIZE_390_INC GENLIST_SIZE_SLIDE_60_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.5 1;
+ to_x: "base";
+ to_y: "elm.slide.text.1";
+ }
+ rel2 {
+ relative: 0.5 0;
+ to_x: "base";
+ to_y: "base.padding.bottom";
+ }
+ }
+ }
+ // Transparent part between base parts and slidable parts
+ part { name: "event_block_layer";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 0 0 0 0;
+ }
+ description { state: "repeat_events" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ // Swallow part for original genlist item style
+ part { name: "elm.swallow.origin";
+ clip_to: "disclip";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ }
+ description { state: "slide" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1 0;
+ rel2.relative: 2 1;
+ }
+ }
+ part { name: "disclip";
+ type: RECT;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_DISCLIP_COLOR_INC;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "slide_right";
+ signal: "elm,state,slide,active";
+ source: "elm";
+ action: STATE_SET "slide" 0.0;
+ target: "elm.swallow.origin";
+ transition: ACCELERATE 0.5;
+ after: "unblock_event";
+ }
+ program {
+ name: "unblock_event";
+ action: STATE_SET "repeat_events" 0.0;
+ target: "event_block_layer";
+ }
+ program {
+ name: "slide_left";
+ signal: "elm,state,slide,passive";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "event_block_layer";
+ after: "slide_left2";
+ }
+ program {
+ name: "slide_left2";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.origin";
+ transition: DECELERATE 0.5;
+ after: "slide_left_finished";
+ }
+ program {
+ name: "slide_left_finished";
+ action: SIGNAL_EMIT "elm,state,slide,passive,finished" "elm";
+ }
+ }
+ }
+
+ group { name: "elm/genlist/item/mode/music/slide2/default";
+ alias: "elm/genlist/item_odd/mode/music/slide2/default";
+ alias: "elm/genlist/item_compress/mode/music/slide2/default";
+ alias: "elm/genlist/item_compress_odd/mode/music/slide2/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.slide.text.1";
+ data.item: "contents" "elm.slide.swallow.1 elm.slide.swallow.2";
+ data.item: "mode_part" "elm.swallow.origin";
+ data.item: "treesize" "GENLIST_TREESIZE_32_INC";
+ images {
+ image: "00_sweep_list_bg.png" COMP;
+ }
+
+ parts {
+ #if 0
+ part { name: "base";
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_HEIGHT_129_INC;
+ image {
+ normal: "00_sweep_list_bg.png";
+ border: 0 0 3 0;
+ }
+ }
+ }
+ #endif
+ MP_GENLIST_SWEEP_PART_BASE(GENLIST_HEIGHT_113_INC)
+ part { name: "bottom_line";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 1;
+ fixed: 0 1;
+ visible: 1;
+ color: GENLIST_PART_LIST_LINE_COLOR_INC;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.left";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1.to: "base";
+ rel2 {
+ relative: 0 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "base.padding.right";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1 {
+ relative: 1 0;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.bottom";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_PADDING_11_INC;
+ fixed: 0 1;
+ visible: 0;
+ align: 0.5 1;
+ rel1 {
+ relative: 0 1;
+ to: "base";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "elm.slide.text.1";
+ type: TEXT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_56_INC;
+ fixed: 0 1;
+ align: 0.5 0;
+ rel1 {
+ relative: 1 0;
+ to_x: "base.padding.left";
+ to_y: "base";
+ }
+ rel2 {
+ relative: 0 0;
+ to_x: "base.padding.right";
+ to_y: "base";
+ }
+ color: GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC;
+ text {
+ font: "SLP:style=Roman";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part { name: "base.padding.center";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ align: 0.5 0.5;
+ rel1 {
+ relative: 0.5 0;
+ to: "base";
+ }
+ rel2 {
+ relative: 0.5 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.1";
+ type: SWALLOW;
+ clip_to: "disclip";
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1 1;
+ to_x: "base.padding.left";
+ to_y: "elm.slide.text.1";
+ }
+ rel2 {
+ relative: 0 0;
+ to_x: "base.padding.center";
+ to_y: "base.padding.bottom";
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.2";
+ type: SWALLOW;
+ clip_to: "disclip";
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1 1;
+ to_x: "base.padding.center";
+ to_y: "elm.slide.text.1";
+ }
+ rel2 {
+ relative: 0 0;
+ to_x: "base.padding.right";
+ to_y: "base.padding.bottom";
+ }
+ }
+ }
+ // Transparent part between base parts and slidable parts
+ part { name: "event_block_layer";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 0 0 0 0;
+ }
+ description { state: "repeat_events" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ // Swallow part for original genlist item style
+ part { name: "elm.swallow.origin";
+ clip_to: "disclip";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ }
+ description { state: "slide" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1 0;
+ rel2.relative: 2 1;
+ }
+ }
+ part { name: "disclip";
+ type: RECT;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_DISCLIP_COLOR_INC;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "slide_right";
+ signal: "elm,state,slide,active";
+ source: "elm";
+ action: STATE_SET "slide" 0.0;
+ target: "elm.swallow.origin";
+ transition: ACCELERATE 0.5;
+ after: "unblock_event";
+ }
+ program {
+ name: "unblock_event";
+ action: STATE_SET "repeat_events" 0.0;
+ target: "event_block_layer";
+ }
+ program {
+ name: "slide_left";
+ signal: "elm,state,slide,passive";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "event_block_layer";
+ after: "slide_left2";
+ }
+ program {
+ name: "slide_left2";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.origin";
+ transition: DECELERATE 0.5;
+ after: "slide_left_finished";
+ }
+ program {
+ name: "slide_left_finished";
+ action: SIGNAL_EMIT "elm,state,slide,passive,finished" "elm";
+ }
+ }
+ }
+
+ group { name: "elm/genlist/item/mode/music/slide3/default";
+ alias: "elm/genlist/item_odd/mode/music/slide3/default";
+ alias: "elm/genlist/item_compress/mode/music/slide3/default";
+ alias: "elm/genlist/item_compress_odd/mode/music/slide3/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.slide.text.1";
+ data.item: "contents" "elm.slide.swallow.1 elm.slide.swallow.2 elm.slide.swallow.3";
+ data.item: "mode_part" "elm.swallow.origin";
+ data.item: "treesize" "GENLIST_TREESIZE_32_INC";
+ images {
+ image: "00_sweep_list_bg.png" COMP;
+ }
+
+ parts {
+ #if 0
+ part { name: "base";
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_HEIGHT_113_INC;
+ image {
+ normal: "00_sweep_list_bg.png";
+ border: 0 0 3 0;
+ }
+ }
+ }
+ #endif
+ MP_GENLIST_SWEEP_PART_BASE(GENLIST_HEIGHT_113_INC)
+ part { name: "bottom_line";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 1;
+ fixed: 0 1;
+ visible: 1;
+ color: GENLIST_PART_LIST_LINE_COLOR_INC;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.left";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1.to: "base";
+ rel2 {
+ relative: 0 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "base.padding.right";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1 {
+ relative: 1 0;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.bottom";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_PADDING_6_INC;
+ fixed: 0 1;
+ visible: 0;
+ align: 0.5 1;
+ rel1 {
+ relative: 0 1;
+ to: "base";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "elm.slide.text.1";
+ type: TEXT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_FONT_44_INC;
+ fixed: 0 1;
+ align: 0.5 0;
+ rel1 {
+ relative: 1 0;
+ to_x: "base.padding.left";
+ to_y: "base";
+ }
+ rel2 {
+ relative: 0 0;
+ to_x: "base.padding.right";
+ to_y: "base";
+ }
+ color: GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC;
+ text {
+ font: "SLP:style=Roman";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.2";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_220_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 0.5 1;
+ to_x: "base";
+ to_y: "elm.slide.text.1";
+ }
+ rel2 {
+ relative: 0.5 0;
+ to_x: "base";
+ to_y: "base.padding.bottom";
+ }
+ }
+ }
+ part { name: "elm.padding.swallow.2.left";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ align: 1 0.5;
+ visible: 0;
+ rel1.to: "elm.slide.swallow.2";
+ rel2 {
+ relative: 0 1;
+ to: "elm.slide.swallow.2";
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.1";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_220_INC 0;
+ fixed: 1 0;
+ align: 1 0.5;
+ rel1.to: "elm.padding.swallow.2.left";
+ rel2 {
+ relative: 0 1;
+ to: "elm.padding.swallow.2.left";
+ }
+ }
+ }
+ part { name: "elm.padding.swallow.2.right";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ align: 0 0.5;
+ visible: 0;
+ rel1 {
+ relative: 1 0;
+ to: "elm.slide.swallow.2";
+ }
+ rel2.to: "elm.slide.swallow.2";
+ }
+ }
+ part { name: "elm.slide.swallow.3";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_220_INC 0;
+ fixed: 1 0;
+ align: 0 0.5;
+ rel1 {
+ relative: 1 0;
+ to: "elm.padding.swallow.2.right";
+ }
+ rel2.to: "elm.padding.swallow.2.right";
+ }
+ }
+ // Transparent part between base parts and slidable parts
+ part { name: "event_block_layer";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 0 0 0 0;
+ }
+ description { state: "repeat_events" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ // Swallow part for original genlist item style
+ part { name: "elm.swallow.origin";
+ clip_to: "disclip";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ }
+ description { state: "slide" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1 0;
+ rel2.relative: 2 1;
+ }
+ }
+ part { name: "disclip";
+ type: RECT;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_DISCLIP_COLOR_INC;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "slide_right";
+ signal: "elm,state,slide,active";
+ source: "elm";
+ action: STATE_SET "slide" 0.0;
+ target: "elm.swallow.origin";
+ transition: ACCELERATE 0.5;
+ after: "unblock_event";
+ }
+ program {
+ name: "unblock_event";
+ action: STATE_SET "repeat_events" 0.0;
+ target: "event_block_layer";
+ }
+ program {
+ name: "slide_left";
+ signal: "elm,state,slide,passive";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "event_block_layer";
+ after: "slide_left2";
+ }
+ program {
+ name: "slide_left2";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.origin";
+ transition: DECELERATE 0.5;
+ after: "slide_left_finished";
+ }
+ program {
+ name: "slide_left_finished";
+ action: SIGNAL_EMIT "elm,state,slide,passive,finished" "elm";
+ }
+ }
+ }
+
+ group { name: "elm/genlist/item/mode/music/slide4/default";
+ alias: "elm/genlist/item_odd/mode/music/slide4/default";
+ alias: "elm/genlist/item_compress/mode/music/slide4/default";
+ alias: "elm/genlist/item_compress_odd/mode/music/slide4/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.slide.text.1";
+ data.item: "contents" "elm.slide.swallow.1 elm.slide.swallow.2 elm.slide.swallow.3 elm.slide.swallow.4";
+ data.item: "mode_part" "elm.swallow.origin";
+ data.item: "treesize" "GENLIST_TREESIZE_32_INC";
+ images {
+ image: "00_sweep_list_bg.png" COMP;
+ }
+
+ parts {
+ #if 0
+ part { name: "base";
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_HEIGHT_129_INC;
+ image {
+ normal: "00_sweep_list_bg.png";
+ border: 0 0 3 0;
+ }
+ }
+ }
+ #endif
+ MP_GENLIST_SWEEP_PART_BASE(GENLIST_HEIGHT_113_INC)
+ part { name: "bottom_line";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 1;
+ fixed: 0 1;
+ visible: 1;
+ color: GENLIST_PART_LIST_LINE_COLOR_INC;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.left";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1.to: "base";
+ rel2 {
+ relative: 0 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "base.padding.right";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1 {
+ relative: 1 0;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.bottom";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 7;
+ fixed: 0 1;
+ visible: 0;
+ align: 0.5 1;
+ rel1 {
+ relative: 0 1;
+ to: "base";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "elm.slide.text.1";
+ type: TEXT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_57_INC;
+ fixed: 0 1;
+ align: 0.5 0;
+ rel1 {
+ relative: 1 0;
+ to_x: "base.padding.left";
+ to_y: "base";
+ }
+ rel2 {
+ relative: 0 0;
+ to_x: "base.padding.right";
+ to_y: "base";
+ }
+ color: GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC;
+ text {
+ font: "SLP:style=Roman";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part { name: "base.padding.center";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_13_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ align: 0.5 0.5;
+ rel1 {
+ relative: 0.5 1;
+ to_x: "base";
+ to_y: "elm.slide.text.1";
+ }
+ rel2 {
+ relative: 0.5 0;
+ to_x: "base";
+ to_y: "base.padding.bottom";
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.2";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ max: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1.to: "base.padding.center";
+ rel2 {
+ relative: 0 1;
+ to: "base.padding.center";
+ }
+ }
+ }
+ part { name: "elm.padding.swallow.2.left";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_13_INC 0;
+ fixed: 1 0;
+ align: 1 0.5;
+ visible: 0;
+ rel1.to: "elm.slide.swallow.2";
+ rel2 {
+ relative: 0 1;
+ to: "elm.slide.swallow.2";
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.1";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ max: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1.to: "elm.padding.swallow.2.left";
+ rel2 {
+ relative: 0 1;
+ to: "elm.padding.swallow.2.left";
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.3";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ max: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ fixed: 1 1;
+ align: 0 0.5;
+ rel1 {
+ relative: 1 0;
+ to: "base.padding.center";
+ }
+ rel2.to: "base.padding.center";
+ }
+ }
+ part { name: "elm.padding.swallow.3.right";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_13_INC 0;
+ fixed: 1 0;
+ align: 0 0.5;
+ visible: 0;
+ rel1 {
+ relative: 1 0;
+ to: "elm.slide.swallow.3";
+ }
+ rel2.to: "elm.slide.swallow.2";
+ }
+ }
+ part { name: "elm.slide.swallow.4";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ max: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ fixed: 1 1;
+ align: 0 0.5;
+ rel1 {
+ relative: 1 0;
+ to: "elm.padding.swallow.3.right";
+ }
+ rel2.to: "elm.padding.swallow.3.right";
+ }
+ }
+ // Transparent part between base parts and slidable parts
+ part { name: "event_block_layer";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 0 0 0 0;
+ }
+ description { state: "repeat_events" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ // Swallow part for original genlist item style
+ part { name: "elm.swallow.origin";
+ clip_to: "disclip";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ }
+ description { state: "slide" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1 0;
+ rel2.relative: 2 1;
+ }
+ }
+ part { name: "disclip";
+ type: RECT;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_DISCLIP_COLOR_INC;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "slide_right";
+ signal: "elm,state,slide,active";
+ source: "elm";
+ action: STATE_SET "slide" 0.0;
+ target: "elm.swallow.origin";
+ transition: ACCELERATE 0.5;
+ after: "unblock_event";
+ }
+ program {
+ name: "unblock_event";
+ action: STATE_SET "repeat_events" 0.0;
+ target: "event_block_layer";
+ }
+ program {
+ name: "slide_left";
+ signal: "elm,state,slide,passive";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "event_block_layer";
+ after: "slide_left2";
+ }
+ program {
+ name: "slide_left2";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.origin";
+ transition: DECELERATE 0.5;
+ after: "slide_left_finished";
+ }
+ program {
+ name: "slide_left_finished";
+ action: SIGNAL_EMIT "elm,state,slide,passive,finished" "elm";
+ }
+ }
+ }
+
+ group { name: "elm/genlist/item/mode/music/slide4.2/default";
+ alias: "elm/genlist/item_odd/mode/music/slide4.2/default";
+ alias: "elm/genlist/item_compress/mode/music/slide4.2/default";
+ alias: "elm/genlist/item_compress_odd/mode/music/slide4.2/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.slide.text.1";
+ data.item: "contents" "elm.slide.swallow.1 elm.slide.swallow.2 elm.slide.swallow.3 elm.slide.swallow.4";
+ data.item: "mode_part" "elm.swallow.origin";
+ data.item: "treesize" "GENLIST_TREESIZE_32_INC";
+ images {
+ image: "00_sweep_list_bg.png" COMP;
+ }
+
+ parts {
+ #if 0
+ part { name: "base";
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_HEIGHT_113_INC;
+ image {
+ normal: "00_sweep_list_bg.png";
+ border: 0 0 3 0;
+ }
+ }
+ }
+ #endif
+ MP_GENLIST_SWEEP_PART_BASE(GENLIST_HEIGHT_113_INC)
+ part { name: "bottom_line";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 1;
+ fixed: 0 1;
+ visible: 1;
+ color: GENLIST_PART_LIST_LINE_COLOR_INC;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.left";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1.to: "base";
+ rel2 {
+ relative: 0 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "base.padding.right";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1 {
+ relative: 1 0;
+ to: "base";
+ }
+ rel2.to: "base";
+ }
+ }
+ part { name: "base.padding.bottom";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 7;
+ fixed: 0 1;
+ visible: 0;
+ align: 0.5 1;
+ rel1 {
+ relative: 0 1;
+ to: "base";
+ }
+ rel2 {
+ relative: 1 1;
+ to: "base";
+ }
+ }
+ }
+ part { name: "elm.slide.text.1";
+ type: TEXT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_42_INC;
+ fixed: 0 1;
+ align: 0.5 0;
+ rel1 {
+ relative: 1 0;
+ to_x: "base.padding.left";
+ to_y: "base";
+ }
+ rel2 {
+ relative: 0 0;
+ to_x: "base.padding.right";
+ to_y: "base";
+ }
+ color: GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC;
+ text {
+ font: "SLP:style=Roman";
+ size: GENLIST_FONT_28_INC;
+ min: 0 1;
+ align: 0.5 0.5;
+ }
+ }
+ }
+ part { name: "base.padding.center";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_13_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ align: 0.5 0.5;
+ rel1 {
+ relative: 0.5 1;
+ to_x: "base";
+ to_y: "elm.slide.text.1";
+ }
+ rel2 {
+ relative: 0.5 0;
+ to_x: "base";
+ to_y: "base.padding.bottom";
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.2";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ max: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1.to: "base.padding.center";
+ rel2 {
+ relative: 0 1;
+ to: "base.padding.center";
+ }
+ }
+ }
+ part { name: "elm.padding.swallow.2.left";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_13_INC 0;
+ fixed: 1 0;
+ align: 1 0.5;
+ visible: 0;
+ rel1.to: "elm.slide.swallow.2";
+ rel2 {
+ relative: 0 1;
+ to: "elm.slide.swallow.2";
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.1";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ max: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1.to: "elm.padding.swallow.2.left";
+ rel2 {
+ relative: 0 1;
+ to: "elm.padding.swallow.2.left";
+ }
+ }
+ }
+ part { name: "elm.slide.swallow.3";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ max: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ fixed: 1 1;
+ align: 0 0.5;
+ rel1 {
+ relative: 1 0;
+ to: "base.padding.center";
+ }
+ rel2.to: "base.padding.center";
+ }
+ }
+ part { name: "elm.padding.swallow.3.right";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_13_INC 0;
+ fixed: 1 0;
+ align: 0 0.5;
+ visible: 0;
+ rel1 {
+ relative: 1 0;
+ to: "elm.slide.swallow.3";
+ }
+ rel2.to: "elm.slide.swallow.2";
+ }
+ }
+ part { name: "elm.slide.swallow.4";
+ type: SWALLOW;
+ clip_to: "disclip";
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ max: GENLIST_SIZE_SLIDE_165_INC GENLIST_SIZE_SLIDE_60_INC;
+ fixed: 1 1;
+ align: 0 0.5;
+ rel1 {
+ relative: 1 0;
+ to: "elm.padding.swallow.3.right";
+ }
+ rel2.to: "elm.padding.swallow.3.right";
+ }
+ }
+ // Transparent part between base parts and slidable parts
+ part { name: "event_block_layer";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 0 0 0 0;
+ }
+ description { state: "repeat_events" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ // Swallow part for original genlist item style
+ part { name: "elm.swallow.origin";
+ clip_to: "disclip";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ }
+ description { state: "slide" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1 0;
+ rel2.relative: 2 1;
+ }
+ }
+ part { name: "disclip";
+ type: RECT;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_DISCLIP_COLOR_INC;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "slide_right";
+ signal: "elm,state,slide,active";
+ source: "elm";
+ action: STATE_SET "slide" 0.0;
+ target: "elm.swallow.origin";
+ transition: ACCELERATE 0.5;
+ after: "unblock_event";
+ }
+ program {
+ name: "unblock_event";
+ action: STATE_SET "repeat_events" 0.0;
+ target: "event_block_layer";
+ }
+ program {
+ name: "slide_left";
+ signal: "elm,state,slide,passive";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "event_block_layer";
+ after: "slide_left2";
+ }
+ program {
+ name: "slide_left2";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.origin";
+ transition: DECELERATE 0.5;
+ after: "slide_left_finished";
+ }
+ program {
+ name: "slide_left_finished";
+ action: SIGNAL_EMIT "elm,state,slide,passive,finished" "elm";
+ }
+ }
+ }
+
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
#include "mp_genlist_macro.edc"
#include "mp_genlist_define.edc"
rel2 {relative: 1.0 1.0; to, test;}\
}\
}
-
+
#define TEST_RECT2(test)\
part { name: "test_rect2";\
type: RECT; \
rel1 {relative: 0.0 0.0; to, test;}\
rel2 {relative: 1.0 1.0; to, test;}\
}\
- }
+ }
#define GENLIST_PART_LIST_LINE_COLOR_INC MP_BOTTOM_LINE_COLOR
#define GENLIST_FONT_35_INC 35
-#define GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC 166 166 166 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC 124 124 124 255
#define GENLIST_PART_TEXT_PRESS_COLOR_INC 249 249 249 255
#define MP_MAIN_TEXT_SIZE 36
-#define MP_MAIN_TEXT_COLOR 255 255 255 255
+#define MP_MAIN_TEXT_COLOR 0 0 0 255
+#define MP_MAIN_TEXT_STYLE_COLOR "#000000FF"
#define MP_SUB_TEXT_SIZE 32
-#define MP_SUB_TEXT_COLOR 166 166 166 255
+#define MP_SUB_TEXT_COLOR 124 124 124 255
+#define MP_SUB_TEXT_STYLE_COLOR "#7C7C7CFF"
#define MP_MAIN_TEXT_01_SIZE 36
-#define MP_MAIN_TEXT_01_COLOR 166 166 166 255
+#define MP_MAIN_TEXT_01_COLOR 0 0 0 255
+#define MP_MAIN_TEXT_01_STYLE_COLOR "#000000FF"
+
+#define MP_SUB_TEXT_01_SIZE 32
+#define MP_SUB_TEXT_01_COLOR 114 114 114 255
+#define MP_SUB_TEXT_01_STYLE_COLOR "#727272FF"
#define MP_INDEX_LIST_TEXT_FONT FONT_STYLE_BOLD
#define MP_INDEX_LIST_TEXT_SIZE 32
#define MP_INDEX_LIST_TEXT_COLOR 218 216 212 255
-#define MP_LIST_THUMBNAIL_INNER_LINE \
- part { name: "innerline.top";\
- type: RECT;\
- scale: 1;\
- mouse_events: 0;\
- description { state: "default" 0.0;\
- visible: 1;\
- fixed: 1 1;\
- align: 0 0;\
- min: 1 1;\
- rel1 {relative: 0.0 0.0; to, "elm.icon";}\
- rel2 {relative: 1.0 0.0; to, "elm.icon";}\
- color: 0 0 0 255;\
- }\
- GENLIST_DESCRIPTION_FLIP_ENABLED \
- }\
- part { name: "innerline.bottom";\
- type: RECT;\
- scale: 1;\
- mouse_events: 0;\
- description { state: "default" 0.0;\
- visible: 1;\
- fixed: 1 1;\
- align: 0 0;\
- min: 1 1;\
- rel1 {relative: 0.0 1.0; to, "elm.icon";}\
- rel2 {relative: 1.0 1.0; to, "elm.icon";}\
- color: 0 0 0 255;\
- }\
- GENLIST_DESCRIPTION_FLIP_ENABLED \
- }\
- part { name: "innerline.left";\
- type: RECT;\
- scale: 1;\
- mouse_events: 0;\
- description { state: "default" 0.0;\
- visible: 1;\
- fixed: 1 1;\
- align: 0 0;\
- min: 1 1;\
- rel1 {relative: 0.0 0.0; to, "elm.icon";}\
- rel2 {relative: 0.0 1.0; to, "elm.icon";}\
- color: 0 0 0 255;\
- }\
- GENLIST_DESCRIPTION_FLIP_ENABLED \
- }\
- part { name: "innerline.right";\
- type: RECT;\
- scale: 1;\
- mouse_events: 0;\
- description { state: "default" 0.0;\
- visible: 1;\
- fixed: 1 1;\
- align: 0 0;\
- min: 1 1;\
- rel1 {relative: 1.0 0.0; to, "elm.icon";}\
- rel2 {relative: 1.0 1.0; to, "elm.icon";}\
- color: 0 0 0 255;\
- }\
- GENLIST_DESCRIPTION_FLIP_ENABLED \
- }\
-
#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#31A1FF"
+#define GENLIST_PART_BASE_COLOR_INC 000000
#define TEXTBLOCK_TAG \
tag: "br" "\n";\
styles {
style { name: "genlist_textblock_style";
- base: "font=SLP:style=Roman font_size="MP_MAIN_TEXT_SIZE" color=#FFFFFFFF text_class=list_item ellipsis=1.0";
+ base: "font=SLP:style=Roman font_size="MP_MAIN_TEXT_SIZE" color=#"GENLIST_PART_BASE_COLOR_INC" text_class=list_item ellipsis=1.0";
TEXTBLOCK_TAG
}
}
+#ifdef MP_3D_FEATURE
-group { name: "elm/genlist/item/music/1icon/default";
- alias: "elm/genlist/item_odd/music/1icon/default";
- alias: "elm/genlist/item_compress/music/1icon/default";
- alias: "elm/genlist/item_compress_odd/music/1icon/default";
+ group { name: "elm/genlist/item/music/1icon/with_no_line/default";
+ alias: "elm/genlist/item_odd/music/1icon/with_no_line/default";
+ alias: "elm/genlist/item_compress/music/1icon/with_no_line/default";
+ alias: "elm/genlist/item_compress_odd/music/1icon/with_no_line/default";
data.item: "stacking" "above";
data.item: "selectraise" "on";
data.item: "contents" "elm.icon";
}
}
+group { name: "elm/genlist/item/music/1icon/default";
+ alias: "elm/genlist/item_odd/music/1icon/default";
+ alias: "elm/genlist/item_compress/music/1icon/default";
+ alias: "elm/genlist/item_compress_odd/music/1icon/default";
+ inherit: "elm/genlist/item/music/1icon/with_no_line/default";
+ parts {
+ part { name: "bottom_line";
+ insert_after: "elm.padding.right";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 1;
+ fixed: 0 1;
+ visible: 1;
+ color: GENLIST_PART_LIST_LINE_COLOR_INC;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ }
+ }
+ }
+ }
+
group { name: "elm/genlist/item/music_player/1icon.3text/default";
alias: "elm/genlist/item_odd/music_player/1icon.3text/default";
alias: "elm/genlist/item_compress/music_player/1icon.3text/default";
data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
data.item: "contents" "elm.icon";
data.item: "flips" "elm.flip.content";
- images {
- image: "00_list_bar_press_1x80.png" COMP;
- }
+
parts {
GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
GENLIST_PART_BG_IMAGE
GENLIST_DESCRIPTION_FLIP_ENABLED
}
MP_LIST_THUMBNAIL_INNER_LINE
-
+
part { name: "elm.padding.icon.right";
clip_to: "disclip";
type: RECT;
GENLIST_DESCRIPTION_INVISIBLE_SELECTED
GENLIST_DESCRIPTION_FLIP_ENABLED
}
-
+
+ part { name: "elm.padding.text3.left";
+ clip_to: "disclip";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_32_INC 0;
+ fixed: 1 0;
+ rel1.to_x: "elm.text.3";
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.text.3";
+ }
+ align: 1.0 0.5;
+ visible: 0;
+ }
+ }
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_60_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ align: 0.0 0.0;
+ text {
+ style: "genlist_textblock_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ //max: 720 GENLIST_SIZE_48_INC;
+ min: 0 GENLIST_SIZE_48_INC;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ //to_x: "elm.padding.icon.right";
+ //to_y: "elm.text.1";
+ to: "elm.text.1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ //to_x: "elm.text.3";
+ to_x: "elm.padding.text3.left";
+ to_y: "elm.padding.bottom";
+ }
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ GENLIST_PART_FLIP
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ // signal: elm,state,%s,active
+ // a "check" item named %s went active
+ // signal: elm,state,%s,passive
+ // a "check" item named %s went passive
+ // default is passive
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_3TEXT
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ target: "elm.text.3";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ GENLIST_PROGRAM_FLIP_3TEXT_1ICON
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/folder/default";
+ alias: "elm/genlist/item_odd/music_player/folder/default";
+ alias: "elm/genlist/item_compress/music_player/folder/default";
+ alias: "elm/genlist/item_compress_odd/music_player/folder/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+ data.item: "contents" "elm.icon elm.icon.storage";
+ data.item: "flips" "elm.flip.content";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ max: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.5;
+ }
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ MP_LIST_THUMBNAIL_INNER_LINE
+
+ part { name: "elm.icon.storage";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "elm.icon"; }
+ rel2 { relative: 1 0; to: "elm.icon"; }
+ min: 46 46;
+ align: 1 0;
+ fixed: 1 1;
+ }
+ }
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_16_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ align: 0.0 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "elm.text.3";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_154_INC GENLIST_SIZE_48_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 0.5;
+ to: "elm.padding.right";
+ }
+ rel2 {
+ relative: 0.0 0.5;
+ to: "elm.padding.right";
+ }
+ align: 1.0 0.5;
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
part { name: "elm.padding.text3.left";
clip_to: "disclip";
type: RECT;
data.item: "texts" "elm.text.1 elm.text.2";
data.item: "contents" "elm.icon";
data.item: "flips" "elm.flip.content";
- images {
- image: "00_list_bar_press_1x80.png" COMP;
- }
+
parts {
GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
GENLIST_PART_BG_IMAGE
GENLIST_DESCRIPTION_FLIP_ENABLED
}
MP_LIST_THUMBNAIL_INNER_LINE
-
+
part { name: "elm.padding.icon.right";
clip_to: "disclip";
type: RECT;
scale: 1;
description { state: "default" 0.0;
min: GENLIST_SIZE_112_INC 0;
- fixed: 1 1;
+ fixed: 1 1;
rel1 {
relative: 0.0 1.0;
to_x: "elm.padding.right";
GENLIST_DESCRIPTION_INVISIBLE_SELECTED
GENLIST_DESCRIPTION_FLIP_ENABLED
}
-
+
GENLIST_PART_FLIP
GENLIST_PART_DISCLIP
}
data.item: "selectraise" "on";
data.item: "texts" "elm.text.1 elm.text.3";
data.item: "flips" "elm.flip.content";
- images {
- image: "00_list_bar_press_1x80.png" COMP;
- }
+
parts {
GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
GENLIST_PART_BG_IMAGE
GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
-
+
part { name: "elm.text.3";
clip_to: "disclip";
type: TEXT;
GENLIST_DESCRIPTION_INVISIBLE_SELECTED
GENLIST_DESCRIPTION_FLIP_ENABLED
}
-
+
part { name: "elm.padding.text3.left";
clip_to: "disclip";
type: RECT;
data.item: "selectraise" "on";
data.item: "texts" "elm.text.1 elm.text.2";
data.item: "flips" "elm.flip.content";
- images {
- image: "00_list_bar_press_1x80.png" COMP;
- }
+
parts {
GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
GENLIST_PART_BG_IMAGE
GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
-
+
part { name: "elm.text.1";
clip_to: "disclip";
type: TEXTBLOCK;
signal: "elm,state,flip,enabled";
source: "elm";
action: STATE_SET "disabled" 0.0;
- target: "elm.edit.icon.1";
target: "elm.edit.icon.2";
after: "enable_flip_mode_next";
}
action: STATE_SET "default" 0.0;
transition: DECELERATE 0.5;
target: "elm.swallow.decorate.content";
- target: "elm.edit.icon.1";
target: "elm.edit.icon.2";
}
}
}
-group { name: "elm/genlist/item_compress/multiline/music_player/info/default";
- alias: "elm/genlist/item_compress_odd/multiline/music_player/info/default";
- alias: "elm/genlist/item_compress/multiline.music_player/info/default";
- alias: "elm/genlist/item_compress_odd/multiline.music_player/info/default";
+ group { name: "elm/genlist/item/music_player/mp_info/default";
+
+ alias: "elm/genlist/item_odd/music_player/mp_info/default";
+ alias: "elm/genlist/item_compress/music_player/mp_info/default";
+ alias: "elm/genlist/item_compress_odd/music_player/mp_info/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.title";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+
+ part { name: "elm.text.title";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_40_INC;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: MP_MAIN_TEXT_SIZE;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/track/default";
+
+ alias: "elm/genlist/item_odd/music_player/track/default";
+ alias: "elm/genlist/item_compress/music_player/track/default";
+ alias: "elm/genlist/item_compress_odd/music_player/track/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.title";
+ data.item: "contents" "elm.swallow.icon elm.swallow.end elm.swallow.btn.bg elm.swallow.btn";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+
+ part { name: "elm.text.title";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_40_INC;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: (-GENLIST_SIZE_60_INC) 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: MP_MAIN_TEXT_SIZE;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ part { name: "elm.swallow.btn.bg";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 0 0;
+ align: 1 0.5;
+ min: GENLIST_SIZE_80_INC GENLIST_SIZE_80_INC;
+ max: GENLIST_SIZE_80_INC GENLIST_SIZE_80_INC;
+ rel1 {
+ relative: 1.0 0.0;
+ to: "elm.text.title";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: (-GENLIST_PADDING_10_INC) 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.text.title";
+ }
+ }
+ }
+ part { name: "elm.swallow.btn";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 0 0;
+ align: 0 0;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "elm.swallow.btn.bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "elm.swallow.btn.bg";
+ }
+ }
+ }
+ part { name: "elm.swallow.end";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1.to_x: "elm.padding.right";
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ }
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/folder_track/default";
+ alias: "elm/genlist/item_odd/music_player/folder_track/default";
+ alias: "elm/genlist/item_compress/music_player/folder_track/default";
+ alias: "elm/genlist/item_compress_odd/music_player/folder_track/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2";
+ data.item: "contents" "elm.icon elm.icon.storage";
+ data.item: "flips" "elm.flip.content";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ max: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.5;
+ }
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ MP_LIST_THUMBNAIL_INNER_LINE
+
+ part { name: "elm.icon.storage";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "elm.icon"; }
+ rel2 { relative: 1 0; to: "elm.icon"; }
+ min: 46 46;
+ align: 1 0;
+ fixed: 1 1;
+ }
+ }
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_16_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ align: 0.0 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_60_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.text2.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.0;
+ text {
+ style: "genlist_textblock_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.padding.text2.left";
+ clip_to: "disclip";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ rel1.to_x: "elm.text.2";
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.text.2";
+ }
+ align: 1.0 0.5;
+ visible: 0;
+ }
+ }
+
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC 0;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ align: 1.0 0.0;
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ // signal: elm,state,%s,active
+ // a "check" item named %s went active
+ // signal: elm,state,%s,passive
+ // a "check" item named %s went passive
+ // default is passive
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_2TEXT
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ GENLIST_PROGRAM_FLIP_2TEXT_1ICON
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/related_video/default";
+
+ alias: "elm/genlist/item_odd/music_player/related_video/default";
+ alias: "elm/genlist/item_compress/music_player/related_video/default";
+ alias: "elm/genlist/item_compress_odd/music_player/related_video/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "contents" "elm.swallow";
+
+ parts {
+ GENLIST_PART_BASE( 283 )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+
+ part { name: "elm.swallow";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/tag_btn/default";
+
+ alias: "elm/genlist/item_odd/music_player/tag_btn/default";
+ alias: "elm/genlist/item_compress/music_player/tag_btn/default";
+ alias: "elm/genlist/item_compress_odd/music_player/tag_btn/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.tag";
+ //data.item: "texts" "elm.icon.tag";
+
+ parts {
+ GENLIST_PART_BASE( 112 )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_32_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_32_INC )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_BOTTOM_LINE
+ part { name: "top_line";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 1;
+ fixed: 0 1;
+ visible: 1;
+ color: MP_BOTTOM_LINE_COLOR;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ }
+ }
+ }
+
+ part { name: "elm.text.tag";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_42_INC;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 36;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/info_header/default";
+
+ alias: "elm/genlist/item_odd/music_player/info_header/default";
+ alias: "elm/genlist/item_compress/music_player/info_header/default";
+ alias: "elm/genlist/item_compress_odd/music_player/info_header/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1";
+ //data.item: "texts" "elm.icon.tag";
+
+ parts {
+ GENLIST_PART_BASE( 70 )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_PADDING_TOP( 10 )
+ GENLIST_PART_PADDING_BOTTOM( 0 )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_42_INC;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 36;
+ min: 0 1;
+ align: 0.0 0.5;
+ text: "Media info";
+ }
+ }
+ }
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item_compress/multiline/music_player/info/default";
+ alias: "elm/genlist/item_compress_odd/multiline/music_player/info/default";
+ alias: "elm/genlist/item_compress/multiline.music_player/info/default";
+ alias: "elm/genlist/item_compress_odd/multiline.music_player/info/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2";
+
+ styles {
+ style { name: "name_style";
+ base: "font=SLP:style=Roman font_size=36 color="MP_MAIN_TEXT_01_STYLE_COLOR" wrap=char text_class=list_item";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ tag: "b" "+ font=SLP:style=Bold";
+ }
+ }
+
+ parts {
+ part { name: "base";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: MP_GENLIST_BG_COLOR;
+ }
+ }
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_PADDING_TOP( 0 )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_32_INC )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_42_INC;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ align: 0.0 0.0;
+ color: MP_SUB_TEXT_01_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 32;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_SELECTED_COLOR_INC;
+ }
+ }
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ text {
+ style: "name_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+#define RICH_INFO_STARS_BG_W 208
+#define RICH_INFO_STARS_BG_H 48
+#define RICH_INFO_STARS_W_H 32
+#define RICH_INFO_STARS_GAP 4
+#define RICH_INFO_STARS_SX(pos) (16+(RICH_INFO_STARS_W_H+RICH_INFO_STARS_GAP)*pos)
+#define RICH_INFO_STARS_EX(pos) (16+(RICH_INFO_STARS_W_H+RICH_INFO_STARS_GAP)*pos+RICH_INFO_STARS_W_H)
+
+group { name: "elm/genlist/item/music_player/discography/default";
+
+ alias: "elm/genlist/item_odd/music_player/discography/default";
+ alias: "elm/genlist/item_compress/music_player/discography/default";
+ alias: "elm/genlist/item_compress_odd/music_player/discography/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.title elm.text.time";
+ data.item: "contents" "elm.icon elm.icon.star1 elm.icon.star2 elm.icon.star3 elm.icon.star4 elm.icon.star5 elm.icon.btn";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_10_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ visible: 0;
+ }
+ }
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ max: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ }
+ }
+ }
+
+ part { name: "elm.text.title";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0 0.0;
+ min: 0 60;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.icon.btn";
+ to_y: "elm.padding.top";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: GENLIST_FONT_35_INC;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+
+ part { name: "elm.text.time";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0 0;
+ min: GENLIST_SIZE_96_INC 0;
+ rel1 {
+ relative: 0.0 1.0;
+ to: "elm.text.title";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.text.title";
+ to_y: "elm.padding.bottom";
+ }
+ color, 151 150 150 255;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+
+ part{
+ name, "star_bg";
+ type, RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ align: 0 0;
+ min: RICH_INFO_STARS_BG_W 0;
+ rel1 { relative: 1.0 8/48; to, "elm.text.time";}
+ rel2 { relative: 1.0 40/48;to , "elm.text.time";}
+ color: 0 0 0 0;
+ }
+ }
+
+ part{name,"elm.icon.star1";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(0)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(0)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part{name,"elm.icon.star2";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(1)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(1)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part{name,"elm.icon.star3";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(2)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(2)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part{name,"elm.icon.star4";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(3)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(3)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part{name,"elm.icon.star5";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(4)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(4)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part { name: "elm.icon.btn";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ // TODO: enable btn after buy function implemented...
+ // min: GENLIST_SIZE_80_INC GENLIST_SIZE_80_INC;
+ //max: GENLIST_SIZE_80_INC GENLIST_SIZE_80_INC;
+ min: 1 GENLIST_SIZE_80_INC;
+ max: 1 GENLIST_SIZE_80_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ target: "elm.text.time";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.time";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/3text/default";
+
+ alias: "elm/genlist/item_odd/music_player/3text/default";
+ alias: "elm/genlist/item_compress/music_player/3text/default";
+ alias: "elm/genlist/item_compress_odd/music_player/3text/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+
+ parts {
+ GENLIST_PART_BASE( 90 )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 40;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ color: 255 255 255 255;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 32;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 30;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0 1;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.text.1";
+ }
+ color: MP_SUB_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: 22;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ part { name: "elm.text.3";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 40;
+ fixed: 1 1;
+ align: 1.0 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ color: 229 144 30 255;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 18;
+ min: 1 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 225 225 225 255;
+ }
+ }
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ target: "elm.text.3";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.3";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+ #define GENLIST_GROUP_PART_BASE_EVENT_INC \
+ part { name: "base_event";\
+ type: RECT;\
+ repeat_events: 0;\
+ description { state: "default" 0.0;\
+ color: 0 0 0 0;\
+ }\
+ }
+ #define GENLIST_GROUP_PART_TEXT_COLOR_INC 255 255 255 255
+
+ group { name: "elm/genlist/item/music_player/grouptitle/default";
+ alias: "elm/genlist/item_odd/music_player/grouptitle/default";
+ alias: "elm/genlist/item_compress/music_player/grouptitle/default";
+ alias: "elm/genlist/item_compress_odd/music_player/grouptitle/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text";
+ data.item: "treesize" "20";
+
+ parts {
+ GENLIST_GROUP_PART_BASE_EVENT_INC
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+ part { name: "rect";
+ type: RECT;
+ repeat_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 30;
+ color: 121 121 121 255;
+ }
+ description { state: "alpha_off" 0.0;
+ min: 0 30;
+ color: 121 121 121 0;
+ }
+ }
+
+ part { name: "elm.text";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ }
+ color: GENLIST_GROUP_PART_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: 32;
+ min: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ }
+ program {
+ name: "enable_alpha";
+ signal: "elm,state,alpha,enable";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "rect";
+ }
+ program {
+ name: "disable_alpha";
+ signal: "elm,state,alpha,disable";
+ source: "elm";
+ action: STATE_SET "alpha_off" 0.0;
+ target: "rect";
+ }
+ program {
+ name: "selected";
+ source: "rect";
+ signal: "mouse,clicked,1";
+ action: SIGNAL_EMIT "elm,title_action,item,click" "elm";
+ }
+ }
+
+ /* add by rocket.he for dialogue genlist style */
+ group { name : "elm/genlist/item/music_player/dialogue_title/default";
+ alias: "elm/genlist/item_odd/music_player/dialogue_title/default";
+ alias: "elm/genlist/item_compress/music_player/dialogue_title/default";
+ alias: "elm/genlist/item_compress_odd/music_player/dialogue_title/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+ data.item: "contents" "elm.icon";
+ data.item: "treesize" "34";
+
+ parts {
+ part { name: "base";
+ type: RECT;
+ repeat_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 108;
+ color: 80 80 80 255;
+ }
+ }
+
+ GENLIST_PART_PADDING_TOP( 9 )
+ GENLIST_PART_PADDING_BOTTOM( 9 )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_BOTTOM_LINE
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_16_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ visible: 0;
+ }
+ }
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 76 76;
+ max: 76 76;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ }
+ }
+ }
+
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 42;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_x: "elm.text.3";
+ to_y: "elm.padding.top";
+ }
+ color: MP_SUB_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: MP_SUB_TEXT_SIZE;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_48_INC;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0 1;
+ offset: 0 0;
+ to_x: "elm.text.3";
+ to_y: "elm.text.1";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN ;
+ size: MP_MAIN_TEXT_SIZE;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ part { name: "elm.text.3";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_56_INC GENLIST_SIZE_48_INC;
+ fixed: 0 1;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ color: MP_MAIN_TEXT_01_COLOR;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: MP_MAIN_TEXT_01_SIZE;
+ min: 1 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 225 225 225 255;
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+ }
+
+ /* add by rocket.he for album title */
+ group { name : "elm/genlist/item/music_player/album_title/default";
+ alias: "elm/genlist/item_odd/music_player/album_title/default";
+ alias: "elm/genlist/item_compress/music_player/album_title/default";
+ alias: "elm/genlist/item_compress_odd/music_player/album_title/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.3";
+ data.item: "contents" "elm.icon elm.text.swallow";
+ data.item: "treesize" "34";
+
+ parts {
+ part { name: "base";
+ type: RECT;
+ repeat_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 108;
+ color: 80 80 80 255;
+ }
+ }
+
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_BOTTOM_LINE
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_10_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ visible: 0;
+ }
+ }
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 76 76;
+ max: 76 76;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ }
+ }
+ }
+
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 26;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_x: "elm.text.3";
+ to_y: "elm.padding.top";
+ }
+ color: MP_SUB_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: MP_SUB_TEXT_SIZE;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ part { name: "elm.text.swallow";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_42_INC;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0 1;
+ offset: 0 0;
+ to_x: "elm.text.3";
+ to_y: "elm.text.1";
+ }
+ }
+ }
+ part { name: "elm.text.3";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_56_INC GENLIST_SIZE_48_INC;
+ fixed: 0 1;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: -40 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ color: MP_MAIN_TEXT_01_COLOR;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: MP_MAIN_TEXT_01_SIZE;
+ min: 1 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 225 225 225 255;
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+ }
+
+ group { name: "elm/genlist/item/music_player/1text/default";
+
+ alias: "elm/genlist/item_odd/music_player/1text/default";
+ alias: "elm/genlist/item_compress/music_player/1text/default";
+ alias: "elm/genlist/item_compress_odd/music_player/1text/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text";
+
+ parts {
+ part { name: "base";
+ type: RECT;
+ repeat_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_HEIGHT_89_INC;
+ color: 0 0 0 0;
+ }
+ }
+
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+
+ part { name: "elm.text";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_60_INC;
+ fixed: 0 1;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";;
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ color: 252 252 252 255;
+ text {
+ font: FONT_STYLE_MEDIUM;
+ //size: MP_MAIN_TEXT_SIZE;
+ size: 40;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 169 220 255 255;
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "elm.text";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+#else
+ group { name: "elm/genlist/item/music/1icon/with_no_line/default";
+ alias: "elm/genlist/item_odd/music/1icon/with_no_line/default";
+ alias: "elm/genlist/item_compress/music/1icon/with_no_line/default";
+ alias: "elm/genlist/item_compress_odd/music/1icon/with_no_line/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "contents" "elm.icon";
+ parts {
+ part { name: "base";
+ type: RECT;
+ repeat_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ color: MP_GENLIST_BG_COLOR;
+ }
+ }
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ }
+ }
+ }
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ // signal: elm,state,%s,active
+ // a "check" item named %s went active
+ // signal: elm,state,%s,passive
+ // a "check" item named %s went passive
+ // default is passive
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music/1icon/default";
+ alias: "elm/genlist/item_odd/music/1icon/default";
+ alias: "elm/genlist/item_compress/music/1icon/default";
+ alias: "elm/genlist/item_compress_odd/music/1icon/default";
+ inherit: "elm/genlist/item/music/1icon/with_no_line/default";
+ parts {
+ part { name: "bottom_line";
+ insert_after: "elm.padding.right";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 1;
+ fixed: 0 1;
+ visible: 1;
+ color: GENLIST_PART_LIST_LINE_COLOR_INC;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ }
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/1icon.3text/default";
+ alias: "elm/genlist/item_odd/music_player/1icon.3text/default";
+ alias: "elm/genlist/item_compress/music_player/1icon.3text/default";
+ alias: "elm/genlist/item_compress_odd/music_player/1icon.3text/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+ data.item: "contents" "elm.icon";
+ data.item: "flips" "elm.flip.content";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ max: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.5;
+ }
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ MP_LIST_THUMBNAIL_INNER_LINE
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_16_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ align: 0.0 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "elm.text.3";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_154_INC GENLIST_SIZE_48_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.text.2";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.text.2";
+ }
+ align: 1.0 0.0;
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.padding.text3.left";
+ clip_to: "disclip";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_32_INC 0;
+ fixed: 1 0;
+ rel1.to_x: "elm.text.3";
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.text.3";
+ }
+ align: 1.0 0.5;
+ visible: 0;
+ }
+ }
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_60_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ align: 0.0 0.0;
+ text {
+ style: "genlist_textblock_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ max: 720 GENLIST_SIZE_48_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.text.3";
+ to_y: "elm.padding.bottom";
+ }
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ GENLIST_PART_FLIP
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ // signal: elm,state,%s,active
+ // a "check" item named %s went active
+ // signal: elm,state,%s,passive
+ // a "check" item named %s went passive
+ // default is passive
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_3TEXT
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ target: "elm.text.3";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ GENLIST_PROGRAM_FLIP_3TEXT_1ICON
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/folder/default";
+ alias: "elm/genlist/item_odd/music_player/folder/default";
+ alias: "elm/genlist/item_compress/music_player/folder/default";
+ alias: "elm/genlist/item_compress_odd/music_player/folder/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+ data.item: "contents" "elm.icon elm.icon.storage";
+ data.item: "flips" "elm.flip.content";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ max: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.5;
+ }
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ MP_LIST_THUMBNAIL_INNER_LINE
+
+ part { name: "elm.icon.storage";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "elm.icon"; }
+ rel2 { relative: 1 0; to: "elm.icon"; }
+ min: 46 46;
+ align: 1 0;
+ fixed: 1 1;
+ }
+ }
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_16_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ align: 0.0 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "elm.text.3";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_154_INC GENLIST_SIZE_48_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 0.5;
+ to: "elm.padding.right";
+ }
+ rel2 {
+ relative: 0.0 0.5;
+ to: "elm.padding.right";
+ }
+ align: 1.0 0.5;
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.padding.text3.left";
+ clip_to: "disclip";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_32_INC 0;
+ fixed: 1 0;
+ rel1.to_x: "elm.text.3";
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.text.3";
+ }
+ align: 1.0 0.5;
+ visible: 0;
+ }
+ }
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_60_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ align: 0.0 0.0;
+ text {
+ style: "genlist_textblock_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ max: 720 GENLIST_SIZE_48_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.text.3";
+ to_y: "elm.padding.bottom";
+ }
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ GENLIST_PART_FLIP
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ // signal: elm,state,%s,active
+ // a "check" item named %s went active
+ // signal: elm,state,%s,passive
+ // a "check" item named %s went passive
+ // default is passive
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_3TEXT
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ target: "elm.text.3";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ GENLIST_PROGRAM_FLIP_3TEXT_1ICON
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/1icon.2text/default";
+ alias: "elm/genlist/item_odd/music_player/1icon.2text/default";
+ alias: "elm/genlist/item_compress/music_player/1icon.2text/default";
+ alias: "elm/genlist/item_compress_odd/music_player/1icon.2text/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2";
+ data.item: "contents" "elm.icon";
+ data.item: "flips" "elm.flip.content";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ max: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.5;
+ }
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ MP_LIST_THUMBNAIL_INNER_LINE
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_16_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ align: 0.0 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_60_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.text2.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.0;
+ text {
+ style: "genlist_textblock_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.padding.text2.left";
+ clip_to: "disclip";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ rel1.to_x: "elm.text.2";
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.text.2";
+ }
+ align: 1.0 0.5;
+ visible: 0;
+ }
+ }
+
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC 0;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ align: 1.0 0.0;
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ // signal: elm,state,%s,active
+ // a "check" item named %s went active
+ // signal: elm,state,%s,passive
+ // a "check" item named %s went passive
+ // default is passive
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_2TEXT
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ GENLIST_PROGRAM_FLIP_2TEXT_1ICON
+ }
+ }
+
+ group { name: "elm/genlist/item/music_player/2text/default";
+ alias: "elm/genlist/item_odd/music_player/2text/default";
+ alias: "elm/genlist/item_compress/music_player/2text/default";
+ alias: "elm/genlist/item_compress_odd/music_player/2text/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.3";
+ data.item: "flips" "elm.flip.content";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+
+ part { name: "elm.text.3";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_154_INC GENLIST_SIZE_48_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.text.1";
+ }
+ align: 1.0 0.0;
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.padding.text3.left";
+ clip_to: "disclip";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_32_INC 0;
+ fixed: 1 0;
+ rel1.to_x: "elm.text.3";
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.text.3";
+ }
+ align: 1.0 0.5;
+ visible: 0;
+ }
+ }
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_60_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.text3.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.0;
+ text {
+ style: "genlist_textblock_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.bottom";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.text.3";
+ to_y: "elm.padding.bottom";
+ }
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ GENLIST_PART_FLIP
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ // signal: elm,state,%s,active
+ // a "check" item named %s went active
+ // signal: elm,state,%s,passive
+ // a "check" item named %s went passive
+ // default is passive
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_3TEXT
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ target: "elm.text.3";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ GENLIST_PROGRAM_FLIP_3TEXT
+ }
+ }
+ group { name: "elm/genlist/item/music_player/2text.2/default";
+ alias: "elm/genlist/item_odd/music_player/2text.2/default";
+ alias: "elm/genlist/item_compress/music_player/2text.2/default";
+ alias: "elm/genlist/item_compress_odd/music_player/2text.2/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2";
+ data.item: "flips" "elm.flip.content";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_60_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ align: 0.0 0.0;
+ text {
+ style: "genlist_textblock_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ GENLIST_PART_FLIP
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ // signal: elm,state,%s,active
+ // a "check" item named %s went active
+ // signal: elm,state,%s,passive
+ // a "check" item named %s went passive
+ // default is passive
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_2TEXT
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ GENLIST_PROGRAM_FLIP_2TEXT
+ }
+ }
+
+ group { name: "elm/genlist/item/music_edit_default/default";
+ alias: "elm/genlist/item_odd/music_edit_default/default";
+ alias: "elm/genlist/item_compress/music_edit_default/default";
+ alias: "elm/genlist/item_compress_odd/music_edit_default/default";
+ data.item: "stacking" "above";
+ data.item: "decorate_contents" "elm.edit.icon.1 elm.edit.icon.2";
+
+ images {
+ image: "01_list_reorder_bg_above.png" COMP;
+ image: "01_list_reorder_bg_below.png" COMP;
+ }
+ parts {
+ part { name: "base";
+ type: RECT;
+ repeat_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ color: MP_GENLIST_BG_COLOR;
+ }
+ }
+ GENLIST_PART_PADDING_TOP( 0 )
+ GENLIST_PART_PADDING_BOTTOM( 0 )
+ GENLIST_PART_PADDING_RIGHT( 0 )
+
+ part { name: "elm.padding.reorder";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel2.relative: 0.0 1.0;
+ align: 1.0 0.0;
+ }
+ description { state: "reorder" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.0;
+ }
+ }
+ part { name: "elm.decorate_bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.reorder";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_y: "elm.padding.bottom";
+ }
+ color: MP_GENLIST_BG_COLOR;
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: GENLIST_PART_LIST_PRESS_COLOR_INC;
+ }
+ }
+
+ part { name: "elm.padding.left";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.reorder";
+ }
+ rel2.to_x: "elm.padding.reorder";
+ rel2.relative: 0.0 1.0;
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.edit.icon.1";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.bottom";
+ }
+ }
+ description { state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ align: 0.0 0.5;
+ }
+ }
+
+ part { name: "elm.padding.icon1.right";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.edit.icon.1";
+ }
+ rel2.to_x: "elm.edit.icon.1";
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.swallow.decorate.content";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon1.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.2 0.0;
+ to_x: "elm.edit.icon.2";
+ to_y: "elm.padding.bottom";
+ }
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description { state: "flipped" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 1.3 0.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ }
+ }
+ part { name: "elm.padding.icon2.left";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ visible: 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.swallow.decorate.content";
+ }
+ rel2.to_x: "elm.swallow.decorate.content";
+ align: 0.0 0.0;
+ }
+ }
+
+ part { name: "elm.edit.icon.2";
+ clip_to: "disclip";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ visible: 1;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -GENLIST_SIZE_16_INC GENLIST_SIZE_6_INC;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -GENLIST_SIZE_16_INC -GENLIST_SIZE_8_INC;
+ }
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description { state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ align: 1.0 0.5;
+ }
+ }
+
+ part { name: "bottom_line";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ visible: 1;
+ color: GENLIST_PART_LIST_LINE_COLOR_INC;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.decorate_bg";
+ offset: 0 -1;
+ }
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ min: 0 GENLIST_SIZE_8_INC;
+ fixed: 0 1;
+ }
+ }
+ part { name: "reorder_glow_above";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ visible: 0;
+ rel1.relative: 0.0 -0.3;
+ rel2.relative: 1.0 0.0;
+ image {
+ normal: "01_list_reorder_bg_above.png";
+ }
+ fill.smooth: 0;
+ }
+ description { state: "reorder" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "reorder_glow_below";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ visible: 0;
+ rel1.relative: 0.0 1.0;
+ rel2.relative: 1.0 1.3;
+ image {
+ normal: "01_list_reorder_bg_below.png";
+ }
+ fill.smooth: 0;
+ }
+ description { state: "reorder" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "elm.decorate_bg";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ transition: LINEAR 0.1;
+ target: "elm.decorate_bg";
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ // decorate mode enable signal
+ program { name: "decorate_mode_enabled_effect";
+ signal: "elm,state,decorate,enabled,effect";
+ source: "elm";
+ action: STATE_SET "enabled" 0.0;
+ transition: DECELERATE 0.7;
+ target: "elm.edit.icon.1";
+ target: "elm.edit.icon.2";
+ target: "bottom_line";
+ }
+ program { name: "decorate_mode_disabled_effect";
+ signal: "elm,state,decorate,disabled,effect";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.7;
+ target: "elm.edit.icon.1";
+ target: "elm.edit.icon.2";
+ target: "bottom_line";
+ }
+ program { name: "decorate_mode_enabled";
+ signal: "elm,state,decorate,enabled";
+ source: "elm";
+ action: STATE_SET "enabled" 0.0;
+ target: "elm.edit.icon.1";
+ target: "elm.edit.icon.2";
+ target: "bottom_line";
+ }
+ program { name: "decorate_mode_disabled";
+ signal: "elm,state,decorate,disabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.edit.icon.1";
+ target: "elm.edit.icon.2";
+ target: "bottom_line";
+ }
+
+ // reorder signal
+ program { name: "reorder_enabled";
+ signal: "elm,state,reorder,enabled";
+ source: "elm";
+ action: STATE_SET "reorder" 0.0;
+ target: "elm.padding.reorder";
+ }
+ program { name: "reorder_disabled";
+ signal: "elm,state,reorder,disabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.padding.reorder";
+ }
+
+ program { name: "reorder_enabled_effect";
+ signal: "elm,state,reorder_enabled_effect";
+ source: "elm";
+ action: STATE_SET "reorder" 0.0;
+ transition: DECELERATE 0.7;
+ target: "elm.padding.reorder";
+ }
+ program { name: "reorder_disabled_effect";
+ signal: "elm,state,reorder_disabled_effect";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.7;
+ target: "elm.padding.reorder";
+ }
+ // reorder glow
+ program {
+ name: "show_reorder_glow";
+ signal: "elm,action,item,reorder_start";
+ source: "elm";
+ action: STATE_SET "reorder" 0.0;
+ target: "reorder_glow_above";
+ target: "reorder_glow_below";
+ }
+ program {
+ name: "hide_reorder_glow";
+ signal: "elm,action,item,reorder_end";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "reorder_glow_above";
+ target: "reorder_glow_below";
+ }
+ // flip
+ program {
+ name: "enable_flip_mode";
+ signal: "elm,state,flip,enabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "elm.edit.icon.2";
+ after: "enable_flip_mode_next";
+ }
+ program {
+ name: "enable_flip_mode_next";
+ action: STATE_SET "flipped" 0.0;
+ transition: DECELERATE 0.5;
+ target: "elm.swallow.decorate.content";
+ }
+ program {
+ name: "disable_flip_mode";
+ signal: "elm,state,flip,disabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.5;
+ target: "elm.swallow.decorate.content";
+ target: "elm.edit.icon.2";
+ }
+ }
+ }
+
+ group { name: "elm/genlist/item/music_player/mp_info/default";
+
+ alias: "elm/genlist/item_odd/music_player/mp_info/default";
+ alias: "elm/genlist/item_compress/music_player/mp_info/default";
+ alias: "elm/genlist/item_compress_odd/music_player/mp_info/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.title";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+
+ part { name: "elm.text.title";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_40_INC;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: MP_MAIN_TEXT_SIZE;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/track/default";
+
+ alias: "elm/genlist/item_odd/music_player/track/default";
+ alias: "elm/genlist/item_compress/music_player/track/default";
+ alias: "elm/genlist/item_compress_odd/music_player/track/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.title";
+ data.item: "contents" "elm.swallow.icon elm.swallow.end elm.swallow.btn.bg elm.swallow.btn";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+
+ part { name: "elm.text.title";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_40_INC;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: (-GENLIST_SIZE_60_INC) 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: MP_MAIN_TEXT_SIZE;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ part { name: "elm.swallow.btn.bg";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 0 0;
+ align: 1 0.5;
+ min: GENLIST_SIZE_80_INC GENLIST_SIZE_80_INC;
+ max: GENLIST_SIZE_80_INC GENLIST_SIZE_80_INC;
+ rel1 {
+ relative: 1.0 0.0;
+ to: "elm.text.title";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: (-GENLIST_PADDING_10_INC) 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.text.title";
+ }
+ }
+ }
+ part { name: "elm.swallow.btn";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 0 0;
+ align: 0 0;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "elm.swallow.btn.bg";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "elm.swallow.btn.bg";
+ }
+ }
+ }
+ part { name: "elm.swallow.end";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1.to_x: "elm.padding.right";
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ }
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/folder_track/default";
+ alias: "elm/genlist/item_odd/music_player/folder_track/default";
+ alias: "elm/genlist/item_compress/music_player/folder_track/default";
+ alias: "elm/genlist/item_compress_odd/music_player/folder_track/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2";
+ data.item: "contents" "elm.icon elm.icon.storage";
+ data.item: "flips" "elm.flip.content";
+
+ parts {
+ GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ max: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.5;
+ }
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+ MP_LIST_THUMBNAIL_INNER_LINE
+
+ part { name: "elm.icon.storage";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "elm.icon"; }
+ rel2 { relative: 1 0; to: "elm.icon"; }
+ min: 46 46;
+ align: 1 0;
+ fixed: 1 1;
+ }
+ }
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_PADDING_16_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ align: 0.0 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_60_INC;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.text2.left";
+ to_y: "elm.padding.bottom";
+ }
+ align: 0.0 0.0;
+ text {
+ style: "genlist_textblock_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ part { name: "elm.padding.text2.left";
+ clip_to: "disclip";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_16_INC 0;
+ fixed: 1 0;
+ rel1.to_x: "elm.text.2";
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.text.2";
+ }
+ align: 1.0 0.5;
+ visible: 0;
+ }
+ }
+
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC 0;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ align: 1.0 0.0;
+ color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+ text {
+ font: "SLP:style=Medium";
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+ }
+ GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+ GENLIST_DESCRIPTION_FLIP_ENABLED
+ }
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ // signal: elm,state,%s,active
+ // a "check" item named %s went active
+ // signal: elm,state,%s,passive
+ // a "check" item named %s went passive
+ // default is passive
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_2TEXT
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ GENLIST_PROGRAM_FLIP_2TEXT_1ICON
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/related_video/default";
+
+ alias: "elm/genlist/item_odd/music_player/related_video/default";
+ alias: "elm/genlist/item_compress/music_player/related_video/default";
+ alias: "elm/genlist/item_compress_odd/music_player/related_video/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "contents" "elm.swallow";
+
+ parts {
+ GENLIST_PART_BASE( 283 )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+
+ part { name: "elm.swallow";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ }
+ }
+
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/tag_btn/default";
+
+ alias: "elm/genlist/item_odd/music_player/tag_btn/default";
+ alias: "elm/genlist/item_compress/music_player/tag_btn/default";
+ alias: "elm/genlist/item_compress_odd/music_player/tag_btn/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.tag";
+ //data.item: "texts" "elm.icon.tag";
+
+ parts {
+ GENLIST_PART_BASE( 112 )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_32_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_32_INC )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_BOTTOM_LINE
+ part { name: "top_line";
+ type: RECT;
+ clip_to: "disclip";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 1;
+ fixed: 0 1;
+ visible: 1;
+ color: MP_BOTTOM_LINE_COLOR;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ }
+ }
+ }
+
+ part { name: "elm.text.tag";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_42_INC;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 36;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/info_header/default";
+
+ alias: "elm/genlist/item_odd/music_player/info_header/default";
+ alias: "elm/genlist/item_compress/music_player/info_header/default";
+ alias: "elm/genlist/item_compress_odd/music_player/info_header/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1";
+ //data.item: "texts" "elm.icon.tag";
+
+ parts {
+ GENLIST_PART_BASE( 70 )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_PADDING_TOP( 10 )
+ GENLIST_PART_PADDING_BOTTOM( 0 )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_42_INC;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 36;
+ min: 0 1;
+ align: 0.0 0.5;
+ text: "Media info";
+ }
+ }
+ }
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item_compress/multiline/music_player/info/default";
+ alias: "elm/genlist/item_compress_odd/multiline/music_player/info/default";
+ alias: "elm/genlist/item_compress/multiline.music_player/info/default";
+ alias: "elm/genlist/item_compress_odd/multiline.music_player/info/default";
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2";
+
+ styles {
+ style { name: "name_style";
+ base: "font=SLP:style=Roman font_size=36 color="MP_MAIN_TEXT_01_STYLE_COLOR" wrap=char text_class=list_item";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ tag: "b" "+ font=SLP:style=Bold";
+ }
+ }
+
+ parts {
+ part { name: "base";
+ type: RECT;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: MP_GENLIST_BG_COLOR;
+ }
+ }
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_PADDING_TOP( 0 )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_32_INC )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+ part { name: "elm.text.1";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 GENLIST_SIZE_42_INC;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ align: 0.0 0.0;
+ color: MP_SUB_TEXT_01_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 32;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: GENLIST_PART_TEXT_SELECTED_COLOR_INC;
+ }
+ }
+ part { name: "elm.text.2";
+ clip_to: "disclip";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.left";
+ to_y: "elm.text.1";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
+ text {
+ style: "name_style";
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.1";
+ target: "elm.text.2";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+#define RICH_INFO_STARS_BG_W 208
+#define RICH_INFO_STARS_BG_H 48
+#define RICH_INFO_STARS_W_H 32
+#define RICH_INFO_STARS_GAP 4
+#define RICH_INFO_STARS_SX(pos) (16+(RICH_INFO_STARS_W_H+RICH_INFO_STARS_GAP)*pos)
+#define RICH_INFO_STARS_EX(pos) (16+(RICH_INFO_STARS_W_H+RICH_INFO_STARS_GAP)*pos+RICH_INFO_STARS_W_H)
+
+group { name: "elm/genlist/item/music_player/discography/default";
+
+ alias: "elm/genlist/item_odd/music_player/discography/default";
+ alias: "elm/genlist/item_compress/music_player/discography/default";
+ alias: "elm/genlist/item_compress_odd/music_player/discography/default";
+
data.item: "stacking" "above";
data.item: "selectraise" "on";
- data.item: "texts" "elm.text.1 elm.text.2";
-
- styles {
- style { name: "name_style";
- base: "font=SLP:style=Roman font_size=36 color=#A6A6A6FF wrap=char text_class=list_item";
- tag: "br" "\n";
- tag: "ps" "ps";
- tag: "tab" "\t";
- tag: "b" "+ font=SLP:style=Bold";
- }
- }
+ data.item: "texts" "elm.text.title elm.text.time";
+ data.item: "contents" "elm.icon elm.icon.star1 elm.icon.star2 elm.icon.star3 elm.icon.star4 elm.icon.star5 elm.icon.btn";
parts {
- part { name: "base";
+ GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+ GENLIST_PART_BG_IMAGE
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+ GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+
+ part { name: "elm.padding.icon.right";
+ clip_to: "disclip";
type: RECT;
- repeat_events: 1;
+ scale: 1;
description { state: "default" 0.0;
- color: MP_GENLIST_BG_COLOR;
+ min: GENLIST_PADDING_10_INC 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.icon";
+ }
+ rel2.to_x: "elm.icon";
+ visible: 0;
+ }
+ }
+ part { name: "elm.icon";
+ clip_to: "disclip";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ max: GENLIST_SIZE_112_INC GENLIST_SIZE_112_INC;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "elm.padding.left";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.left";
+ }
+ }
+ }
+
+ part { name: "elm.text.title";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0 0.0;
+ min: 0 60;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "elm.padding.icon.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "elm.icon.btn";
+ to_y: "elm.padding.top";
+ }
+ color: MP_MAIN_TEXT_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: GENLIST_FONT_35_INC;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+
+ part { name: "elm.text.time";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0 0;
+ min: GENLIST_SIZE_96_INC 0;
+ rel1 {
+ relative: 0.0 1.0;
+ to: "elm.text.title";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.text.title";
+ to_y: "elm.padding.bottom";
+ }
+ color, 151 150 150 255;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: GENLIST_FONT_32_INC;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+
+ part{
+ name, "star_bg";
+ type, RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ align: 0 0;
+ min: RICH_INFO_STARS_BG_W 0;
+ rel1 { relative: 1.0 8/48; to, "elm.text.time";}
+ rel2 { relative: 1.0 40/48;to , "elm.text.time";}
+ color: 0 0 0 0;
+ }
+ }
+
+ part{name,"elm.icon.star1";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(0)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(0)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part{name,"elm.icon.star2";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(1)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(1)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part{name,"elm.icon.star3";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(2)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(2)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part{name,"elm.icon.star4";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(3)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(3)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part{name,"elm.icon.star5";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(4)/RICH_INFO_STARS_BG_W 0.0;
+ to , "star_bg";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(4)/RICH_INFO_STARS_BG_W 1.0;
+ to , "star_bg";
+ }
+ }
+ }
+
+ part { name: "elm.icon.btn";
+ clip_to: "disclip";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ // TODO: enable btn after buy function implemented...
+ // min: GENLIST_SIZE_80_INC GENLIST_SIZE_80_INC;
+ //max: GENLIST_SIZE_80_INC GENLIST_SIZE_80_INC;
+ min: 1 GENLIST_SIZE_80_INC;
+ max: 1 GENLIST_SIZE_80_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.bottom";
+ }
}
}
+
+ GENLIST_PART_DISCLIP
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg_image";
+ target: "elm.text.time";
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg_image";
+ target: "elm.text.time";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "disclip";
+ }
+ program { name: "go_enabled";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "disclip";
+ }
+ }
+ }
+
+group { name: "elm/genlist/item/music_player/1text/default";
+
+ alias: "elm/genlist/item_odd/music_player/1text/default";
+ alias: "elm/genlist/item_compress/music_player/1text/default";
+ alias: "elm/genlist/item_compress_odd/music_player/1text/default";
+
+ data.item: "stacking" "above";
+ data.item: "selectraise" "on";
+ data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+
+ parts {
+ GENLIST_PART_BASE( 90 )
GENLIST_PART_BG_IMAGE
- GENLIST_PART_PADDING_TOP( 0 )
- GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_32_INC )
- GENLIST_PART_PADDING_LEFT( 0 )
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_TOP( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_5_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+
part { name: "elm.text.1";
clip_to: "disclip";
type: TEXT;
mouse_events: 0;
scale: 1;
description { state: "default" 0.0;
- min: 0 GENLIST_SIZE_42_INC;
+ min: 0 40;
fixed: 0 1;
+ align: 0.0 0.0;
rel1 {
relative: 1.0 1.0;
to_x: "elm.padding.left";
}
rel2 {
relative: 0.0 1.0;
+ offset: 0 0;
to_x: "elm.padding.right";
to_y: "elm.padding.top";
}
- align: 0.0 0.0;
- color: GENLIST_PART_TEXT_COLOR_INC;
+ color: 255 255 255 255;
text {
font: FONT_STYLE_ROMAN;
size: 32;
align: 0.0 0.5;
}
}
- description { state: "selected" 0.0;
- inherit: "default" 0.0;
- color: GENLIST_PART_TEXT_SELECTED_COLOR_INC;
- }
}
part { name: "elm.text.2";
clip_to: "disclip";
- type: TEXTBLOCK;
+ type: TEXT;
mouse_events: 0;
scale: 1;
description { state: "default" 0.0;
+ min: 0 30;
+ fixed: 0 1;
+ align: 0.0 0.0;
rel1 {
- relative: 1.0 1.0;
+ relative: 1.0 1.0;
to_x: "elm.padding.left";
to_y: "elm.text.1";
}
rel2 {
- relative: 0.0 0.0;
+ relative: 0 1;
+ offset: 0 0;
to_x: "elm.padding.right";
- to_y: "elm.padding.bottom";
+ to_y: "elm.text.1";
}
+ color: MP_SUB_TEXT_COLOR;
text {
- style: "name_style";
+ font: FONT_STYLE_MEDIUM;
+ size: 22;
min: 0 1;
align: 0.0 0.5;
}
}
}
- GENLIST_PART_DISCLIP
+ part { name: "elm.text.3";
+ clip_to: "disclip";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 40;
+ fixed: 1 1;
+ align: 1.0 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ to_x: "elm.padding.right";
+ to_y: "elm.padding.top";
+ }
+ color: 229 144 30 255;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 18;
+ min: 1 1;
+ align: 1.0 0.5;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 225 225 225 255;
+ }
+ }
+ GENLIST_PART_DISCLIP
}
programs {
program { name: "go_active";
source: "elm";
action: STATE_SET "selected" 0.0;
target: "bg_image";
- target: "elm.text.1";
- target: "elm.text.2";
+ target: "elm.text.3";
}
program { name: "go_passive";
signal: "elm,state,unselected";
source: "elm";
action: STATE_SET "default" 0.0;
target: "bg_image";
- target: "elm.text.1";
- target: "elm.text.2";
+ target: "elm.text.3";
transition: LINEAR 0.1;
}
program { name: "go_disabled";
}
}
-#define GENLIST_PART_INDEX_LIST_BASE_EVENT_INC \
+ #define GENLIST_GROUP_PART_BASE_EVENT_INC \
part { name: "base_event";\
type: RECT;\
repeat_events: 0;\
color: 0 0 0 0;\
}\
}
-#define GENLIST_PART_FONT_INDEX_LIST_COLOR_INC 195 195 195 255
-#define GENLIST_DIALOGUE_GROUP_BG_COLOR_INC 121 121 121 255
+ #define GENLIST_GROUP_PART_TEXT_COLOR_INC 255 255 255 255
group { name: "elm/genlist/item/music_player/grouptitle/default";
alias: "elm/genlist/item_odd/music_player/grouptitle/default";
data.item: "stacking" "above";
data.item: "selectraise" "on";
data.item: "texts" "elm.text";
- data.item: "treesize" "GENLIST_TREESIZE_32_INC";
+ data.item: "treesize" "20";
parts {
- GENLIST_PART_INDEX_LIST_BASE_EVENT_INC
- GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
- GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+ GENLIST_GROUP_PART_BASE_EVENT_INC
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
part { name: "rect";
type: RECT;
repeat_events: 1;
scale: 1;
description { state: "default" 0.0;
- min: 0 GENLIST_HEIGHT_49_INC;
- color: GENLIST_DIALOGUE_GROUP_BG_COLOR_INC;
+ min: 0 30;
+ color: 121 121 121 255;
}
description { state: "alpha_off" 0.0;
- min: 0 GENLIST_SIZE_48_INC;
- color: GENLIST_DIALOGUE_GROUP_BG_COLOR_INC;
+ min: 0 30;
+ color: 121 121 121 0;
}
}
offset: 0 0;
to_x: "elm.padding.right";
}
- color: GENLIST_PART_FONT_INDEX_LIST_COLOR_INC;
+ color: GENLIST_GROUP_PART_TEXT_COLOR_INC;
text {
font: "SLP:style=Medium";
- size: GENLIST_FONT_32_INC;
+ size: 32;
min: 1 1;
align: 0.0 0.5;
}
}
}
+ /* add by rocket.he for dialogue genlist style */
group { name : "elm/genlist/item/music_player/dialogue_title/default";
alias: "elm/genlist/item_odd/music_player/dialogue_title/default";
alias: "elm/genlist/item_compress/music_player/dialogue_title/default";
data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
data.item: "contents" "elm.icon";
data.item: "treesize" "34";
- images {
- image: "00_list_bar_press_1x80.png" COMP;
- }
+
parts {
part { name: "base";
type: RECT;
GENLIST_PART_PADDING_TOP( 9 )
GENLIST_PART_PADDING_BOTTOM( 9 )
- GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
- GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+ GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+ GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
GENLIST_PART_BOTTOM_LINE
part { name: "elm.padding.icon.right";
type: RECT;
scale: 1;
description { state: "default" 0.0;
- min: GENLIST_PADDING_10_INC 0;
+ min: GENLIST_PADDING_16_INC 0;
fixed: 1 0;
rel1 {
relative: 1.0 0.0;
mouse_events: 0;
scale: 1;
description { state: "default" 0.0;
- min: 0 26;
+ min: 0 42;
fixed: 0 1;
align: 0.0 0.0;
rel1 {
mouse_events: 0;
scale: 1;
description { state: "default" 0.0;
- min: 0 GENLIST_SIZE_42_INC;
+ min: 0 GENLIST_SIZE_48_INC;
fixed: 0 1;
align: 0.0 0.0;
rel1 {
}
}
+ /* add by rocket.he for album title */
group { name : "elm/genlist/item/music_player/album_title/default";
alias: "elm/genlist/item_odd/music_player/album_title/default";
alias: "elm/genlist/item_compress/music_player/album_title/default";
data.item: "texts" "elm.text.1 elm.text.3";
data.item: "contents" "elm.icon elm.text.swallow";
data.item: "treesize" "34";
- images {
- image: "00_list_bar_press_1x80.png" COMP;
- }
+
parts {
part { name: "base";
type: RECT;
}
}
+#endif
\ No newline at end of file
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
+
/* main size */
#define MAIN_W 480
#define MAIN_H 800
/* indicator */
#define IND_H_R (38.0/MAIN_H)
+//#define IND_H_P (MAIN_HEIGHT * IND_H_R)
/* tab */
#define TAB_H_R (125/MAIN_H)
#define NEW_INDICATOR 52/MAIN_H
#define NOW_PLAYING_H 100
-#define BG_COLOR 37 37 37 255
+#define BG_COLOR 236 240 242 255
#define SEARCHBAR_H_INC 107
collections {
#include "mp-no-contents.edc"
- group {
- name: "control_layout";
- parts {
- part { name: "background";
- type: RECT;
- mouse_events: 0;
- description {
- state: "default" 0.0;
- rel1 { relative: 0.0 0.0; }
- rel2 { relative: 1.0 1.0; }
- color: BG_COLOR;
- }
- }
- part {
- name : "elm.swallow.controlbar";
- type: SWALLOW;
- mouse_events: 1;
- scale: 1;
- description {
- state: "default" 0.0;
- align: 0 0;
- min: 0 CONTROLBAR_LARGE_HEIGHT_INC;
- fixed: 0 1;
- visible: 0;
- rel1 { relative: 0.0 0.0;}
- rel2 { relative: 1.0 0.0;}
-
- }
- description {
- state: "show" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- }
-
- part {
- name : "elm.swallow.content";
- type: SWALLOW;
- mouse_events: 1;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1 { relative: 0.0 0.0;}
- rel2 { relative: 1.0 1.0;}
- }
- description {
- state: "show" 0.0;
- rel1 { relative: 0.0 1.0; to_y: "elm.swallow.controlbar";}
- rel2 { relative: 1.0 1.0;}
- }
- }
- }
-
- programs {
- program {
- name : "show_control";
- signal : "show.control";
- source : "music_app";
- action : STATE_SET "show" 0.0;
- target : "elm.swallow.content";
- target : "elm.swallow.controlbar";
- transition: LINEAR 0.3;
- }
- program {
- name : "hide_control";
- signal : "hide.control";
- source : "music_app";
- action : STATE_SET "default" 0.0;
- target : "elm.swallow.content";
- target : "elm.swallow.controlbar";
- }
- }
- }
group {
name: "main_layout";
type: SWALLOW;
scale: 1;
description {
- state: "default" 0.0;
- align: 0.0 0.0;
- fixed: 0 1;
- rel1 { relative: 0.0 0.0;}
- rel2 { relative: 1.0 0.0;}
- min: 0 SEARCHBAR_H_INC;
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ fixed: 0 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 0.0;}
+ min: 0 SEARCHBAR_H_INC;
}
description {
state: "hide" 0.0;
color: 0 0 0 0;
}
}
+ /* //hjkim, 100427, removed, unneeded part
+ part {
+ name: "indicator";
+ mouse_events:0;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 0.0; }
+ }
+ }
+ */
part {
name: "img_selall";
mouse_events: 0;
rel2 { relative: 1.0 1.0; offset: -1 -1;}
}
}
+ /* //hjkim, 100427, removed, unneeded part
+ part {
+ name: "tab";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 NEW_INDICATOR; }
+ rel2 { relative: 1.0 TAB_H_R; }
+ }
+ description {
+ state: "delete" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "album_tracks" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "artist_tracks" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "add_to_plst" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "plst_tracks" 0.0;
+ visible: 0;
+ }
+ }
+ */
part {
name: "plst_header";
type: SWALLOW;
description {
state: "default" 0.0;
visible: 0;
+ //rel1 { relative: 0.0 HEAD_SY; }
+ //rel2 { relative: 1.0 HEAD_EY; }
}
description {
state: "delete" 0.0;
description {
state: "default" 0.0;
visible: 0;
+ //rel1 { relative: 0.0 HEAD_SY; }
+ //rel2 { relative: 1.0 HEAD_EY; }
}
description {
state: "delete" 0.0;
description {
state: "album_tracks" 0.0;
visible: 1;
+ //rel1 { relative: 0.0 HEAD_SY; }
+ //rel2 { relative: 1.0 HEAD_EY; }
}
description {
state: "artist_tracks" 0.0;
description{
state: "default" 0.0;
visible: 0;
+ //rel1{relative: 0.0 0.0; to: indicator;}
rel1{relative: 0.0 0.0;}
rel2{relative: 1.0 TITLEBAR_H_R; offset: -1 -1; to: background;}
}
visible: 0;
}
}
+ /* //hjkim, 100427, removed, unneeded part
+ part {
+ name: "softkey";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 SOFTKEY_SY; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+ */
}
programs {
source: "LIBRARY";
action: STATE_SET "delete" 0.0;
target: "list";
+ //target: "tab";
target: "plst_header";
target: "album_header";
target: "title_bar";
source: "LIBRARY";
action: STATE_SET "add_to_plst" 0.0;
target: "list";
+ //target: "tab";
target: "plst_header";
target: "album_header";
target: "title_bar";
source: "LIBRARY";
action: STATE_SET "album_tracks" 0.0;
target: "list";
+ //target: "tab";
target: "plst_header";
target: "album_header";
target: "title_bar";
source: "LIBRARY";
action: STATE_SET "album_tracks" 0.0;
target: "list";
+ //target: "tab";
target: "plst_header";
target: "album_header";
target: "title_bar";
source: "LIBRARY";
action: STATE_SET "artist_tracks" 0.0;
target: "list";
+ //target: "tab";
target: "plst_header";
target: "album_header";
target: "title_bar";
source: "LIBRARY";
action: STATE_SET "plst_tracks" 0.0;
target: "list";
+ //target: "tab";
target: "plst_header";
target: "album_header";
target: "title_bar";
source: "LIBRARY";
action: STATE_SET "default" 0.0;
target: "list";
+ //target: "tab";
target: "plst_header";
target: "album_header";
target: "title_bar";
description {
fixed: 1 1;
state: "default" 0.0;
+ //visible: 0;
+ //min: SEARCH_ENTRY_C_LENGTH SEARCH_ENTRY_H;
+ //visible: 1;
+ //rel1 { relative: 0.0 0.0; offset: (SEARCH_ENTRY_C_R1_X) (SEARCH_ENTRY_C_R1_Y);to: "search_input_bg";}
+ //rel2 { relative: 0.0 0.0; offset: (SEARCH_ENTRY_C_R2_X) (SEARCH_ENTRY_C_R2_Y);to: "search_input_bg";}
rel1 { relative, HEAD_TITLE_SX HEAD_TITLE_SY; offset, 0 0;}
rel2 { relative, 1.0 HEAD_EY; offset, -10 -10;}
+ //image { normal: "01_search_input_field_bg_c.png"; }
}
description {
state: "invisible" 0.0;
group {
name: "album_items";
+ //min: 480 101;
+ //max: 480 101;
parts {
part {
name: "header";
#define SEARCH_TEXT_NAME "search_txt"
group {
name: "search_entry";
+ //min: MAIN_WIDTH SEARCHVIEW_H;
+ //max: MAIN_WIDTH SEARCHVIEW_H;
parts {
+ /*
+ part {
+ name: "search_rect";
+ type: RECT;
+ description {
+ min: MAIN_WIDTH SEARCHVIEW_H;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; offset: 0 0; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; }
+ color: 0 0 0 0;
+ }
+ }
+ */
+ /* Image bg */
part {
name: "search_input_bg";
type: IMAGE;
description {
state: "default" 0.0;
+ /*min: MAIN_WIDTH SEARCHVIEW_H;*/
visible: 1;
+ //rel1 { relative: 0.0 0.0; offset: 0 SEARCHVIEW_Y;}
+ //rel2 { relative: 1.0 0; offset: 0 SEARCHVIEW_H;}
rel1 { relative: 0.0 0.0; offset: 0 0;}
rel2 { relative: 1.0 0; offset: 0 SEARCHVIEW_H;}
image { normal: "01_search_input_bg.png"; }
state: "default" 0.0;
min: SEARCH_BUTTON_W SEARCH_BUTTON_H;
visible: 1;
+ //rel1 { relative: 0.0 0.0; offset: (SEARCH_BUTTON_R1_X) (SEARCH_BUTTON_R1_Y);to: "search_input_bg";}
+ //rel2 { relative: 1.0 0.0; offset: (SEARCH_BUTTON_R2_X) (SEARCH_BUTTON_R2_Y);to: "search_input_bg";}
rel1 { relative: 0.0 0.0; offset: (SEARCH_BUTTON_R1_X) (SEARCH_BUTTON_R1_Y);}
rel2 { relative: 0.0 0.0; offset: (SEARCH_BUTTON_R2_X) (SEARCH_BUTTON_R2_Y);}
image { normal: "01_search_button.png"; }
name: "library_controlbar";
parts {
+/*
+ part { name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "elm.swallow.view1";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 0.0; to: "elm.swallow.toolbar1";}
+ }
+ }
+ part {
+ name: "elm.swallow.view2";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 0.0; to: "elm.swallow.toolbar2";}
+ }
+ }
+ part {
+ name: "elm.swallow.tabbar";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ }
+ }
+ part {
+ name: "elm.swallow.toolbar1";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 74;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+ part {
+ name: "elm.swallow.toolbar2";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 86;
+ fixed: 0 1;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+*/
+
part {
name: "elm.swallow.tabbar";
type: SWALLOW;
}
}
+group {
+ name: "create_playlist";
+
+ parts {
+ part { name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: BG_COLOR;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+ }
+}
+
}
--- /dev/null
+
+#define MP_LRC_BG_W 720
+#define MP_LRC_BG_H 602
+#define MP_LRC_BOX_PAD_TOP 42
+#define MP_LRC_BOX_PAD_LEFT 64
+#define MP_LRC_BOX_PAD_RIGHT 64
+#define MP_LRC_BOX_W (MP_LRC_BG_W-MP_LRC_BOX_PAD_LEFT-MP_LRC_BOX_PAD_RIGHT)
+#define MP_LRC_BOX_H (MP_LRC_BG_H-MP_LRC_BOX_PAD_TOP)
+
+#define MP_LRC_LINE_W MP_LRC_BOX_W
+#define MP_LRC_LINE_H 52
+
+#define MP_LRC_BG_W_LANDSCAPE 720
+#define MP_LRC_BG_H_LANDSCAPE 150
+#define MP_LRC_BOX_PAD_TOP_LANDSCAPE 12
+#define MP_LRC_BOX_PAD_BOTTOM_LANDSCAPE 12
+#define MP_LRC_BOX_PAD_LEFT_LANDSCAPE 64
+#define MP_LRC_BOX_PAD_RIGHT_LANDSCAPE 64
+#define MP_LRC_BOX_W_LANDSCAPE (MP_LRC_BG_W_LANDSCAPE-MP_LRC_BOX_PAD_LEFT_LANDSCAPE-MP_LRC_BOX_PAD_RIGHT_LANDSCAPE)
+#define MP_LRC_BOX_H_LANDSCAPE (MP_LRC_BG_H_LANDSCAPE-MP_LRC_BOX_PAD_TOP_LANDSCAPE-MP_LRC_BOX_PAD_BOTTOM_LANDSCAPE)
+
+#define MP_LRC_HEAD_LINE_W MP_LRC_BOX_W
+#define MP_LRC_HEAD_LINE_W_LANDSCAPE MP_LRC_BOX_W
+#define MP_LRC_HEAD_LINE_H 25
+#define MP_LRC_HEAD_LINE_H_LANDSCAPE 10
+
+group{
+ name: "mp_lrc_layout";
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 204;
+ }
+ }
+
+ part {
+ name: "lyric";
+ type: SWALLOW;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 MP_LRC_BOX_PAD_TOP/MP_LRC_BG_H; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ }
+ }
+ }
+}
+group{
+ name: "mp_lrc_layout_landscape";
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 204;
+ }
+ }
+
+ part {
+ name: "lyric";
+ type: SWALLOW;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 MP_LRC_BOX_PAD_TOP_LANDSCAPE/MP_LRC_BG_H_LANDSCAPE; to: "bg";}
+ rel2 { relative: 1.0 (MP_LRC_BOX_PAD_TOP_LANDSCAPE+MP_LRC_BOX_H_LANDSCAPE)/MP_LRC_BG_H_LANDSCAPE; to: "bg";}
+ }
+ }
+ }
+}
+
+group {
+ name, "mp_lrc_line";
+
+ styles
+ {
+ style {
+ name: "lyricstyle";
+ base: "font=system_content font_size=32 align=center color=#7e7d7d wrap=char";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ tag: "em" "+ font=system_content:style=Oblique";
+ tag: "b" "+ font=system_content:style=Bold";
+ tag: "link" "+ color=#800 underline=on underline_color=#8008";
+ tag: "hilight" "+ font=system_content:style=Bold";
+ }
+ }
+
+ parts {
+ part { name, "background";
+ type, RECT;
+ description {
+ state, "default" 0.0;
+ color, 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "txt";
+ scale: 1;
+ type: TEXTBLOCK;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ min: MP_LRC_LINE_W MP_LRC_LINE_H;
+ max: MP_LRC_LINE_W 10000;
+ rel1 { relative, 0.0 0.0; to, background; }
+ rel2 { relative, 1.0 0.0; to, background; }
+ text {
+ style: "lyricstyle";
+ min: 0 1;
+ }
+ }
+ }
+
+ }
+}
+
+group {
+ name: "mp_lrc_head";
+ min: MP_LRC_HEAD_LINE_W MP_LRC_HEAD_LINE_H;
+
+ parts {
+
+ part { name: "start";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ min: 0 MP_LRC_HEAD_LINE_H;
+ rel1 { relative: 0.0 0.0;
+ offset : 0 0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ }
+ }
+}
+group {
+ name: "mp_lrc_head_landscape";
+ min: MP_LRC_HEAD_LINE_W_LANDSCAPE MP_LRC_HEAD_LINE_H_LANDSCAPE;
+
+ parts {
+
+ part { name: "start";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ min: 0 MP_LRC_HEAD_LINE_H_LANDSCAPE;
+ rel1 { relative: 0.0 0.0;
+ offset : 0 0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+
+#define MINI_W 720
+#define MINI_H 170
+#define TOP_PADDING 10
+#define LEFT_PADDING 8
+#define RIGHT_PADDING 16
+#define BOTTOM_PADDING 12
+#define ALBUM_ART_WIDTH 105
+#define ALBUM_ART_HEIGHT 105
+#define BUTTON_SIZE_MIN_MAX 62 46
+#define BUTTON_EXPAND_OFFSET 15
+
+#define ICON_PLAY "Q02_QuickPanel_mini_music_player_controller_play.png"
+#define ICON_PAUSE "Q02_QuickPanel_mini_music_player_controller_pause.png"
+#define ICON_REW "Q02_QuickPanel_mini_music_player_controller_prev.png"
+#define ICON_FF "Q02_QuickPanel_mini_music_player_controller_next.png"
+
+#define ICON_REPEAT_ALL "Q02_Quickpanel_mini_music_player_repeat_all.png"
+#define ICON_REPEAT_ONE "Q02_Quickpanel_mini_music_player_repeat_once.png"
+#define ICON_REPEAT_NONE "Q02_Quickpanel_mini_music_player_repeat_none.png"
+#define ICON_SHUFFLE_ON "Q02_Quickpanel_mini_music_player_shuffle_on.png"
+#define ICON_SHUFFLE_OFF "Q02_Quickpanel_mini_music_player_shuffle_off.png"
+
+#define IMG_BG_GRADIENT "Q02_QuickPanel_mini_music_player_gradient.png"
+#define IMG_BG_GRADIENT_RIGHT "Q02_Quickpanel_mini_music_player_gradient_right.png"
+
+images {
+ image: ICON_PLAY COMP;
+ image: ICON_PAUSE COMP;
+ image: ICON_REW COMP;
+ image: ICON_FF COMP;
+ image: ICON_REPEAT_ALL COMP;
+ image: ICON_REPEAT_ONE COMP;
+ image: ICON_REPEAT_NONE COMP;
+ image: ICON_SHUFFLE_ON COMP;
+ image: ICON_SHUFFLE_OFF COMP;
+ image: IMG_BG_GRADIENT COMP;
+ image: IMG_BG_GRADIENT_RIGHT COMP;
+}
+collections {
+group {
+ name: music-minicontroller;
+
+ parts {
+
+ part{ name: "bg";
+ type : RECT;
+ scale : 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min : 0 MINI_H;
+ fixed: 0 1;
+ rel1{ relative : 0 0;}
+ rel2{ relative : 1 1;}
+ color : 20 20 20 102;
+ }
+ }
+
+ part { name: "bg_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ align: 0 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ rel2 { relative: 0 1; to: "bg"; }
+ min: 720 0;
+ fixed: 1 0;
+ }
+ }
+ part { name: "bg_image_gradient";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1.to: "bg_image";
+ rel2.to: "bg_image";
+ //image.normal: IMG_BG_GRADIENT;
+ }
+ }
+
+ part { name: "bg_image_right";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg_image"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ align: 0 0;
+ }
+ }
+ part { name: "bg_image_gradient_right";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1.to: "bg_image_right";
+ rel2.to: "bg_image_right";
+ image.normal: IMG_BG_GRADIENT_RIGHT;
+ }
+ }
+
+
+
+ part { name: "padding.top";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ min: 0 28;
+ fixed: 0 1;
+ align: 0 0;
+ visible: 0;
+ }
+ }
+
+ part { name: "padding.left";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 0 1; to: "bg"; }
+ min: LEFT_PADDING 0;
+ fixed: 1 0;
+ align: 0 0;
+ visible: 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 12 0;
+ }
+ }
+
+ part { name: "padding.right";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: RIGHT_PADDING 0;
+ fixed: 1 0;
+ align: 1 0;
+ visible: 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 20 0;
+ }
+ }
+
+ part { name: "padding.bottom";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: 0 BOTTOM_PADDING;
+ fixed: 0 1;
+ align: 0 1;
+ visible: 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 0 22;
+ }
+ }
+
+ part { name: "albumart_image";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ min : ALBUM_ART_WIDTH ALBUM_ART_HEIGHT;
+ fixed : 1 1;
+ rel1 { relative: 1 0.5; to_x: "padding.left"; to_y: "bg"; }
+ rel2 { relative: 1 0.5; to_x: "padding.left"; to_y: "bg"; }
+ align: 0 0.5;
+ }
+ }
+
+ part { name: "padding.albumart.right";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to_x: "albumart_image"; to_y: "bg"; }
+ rel2 { relative: 1 1; to_x: "albumart_image"; to_y: "bg"; }
+ min: 59 0;
+ fixed: 1 0;
+ align: 0 0;
+ visible: 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 194 0;
+ }
+ }
+
+ part { name: "text_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to_x: "padding.albumart.right"; to_y: "bg"; }
+ rel2 { relative: 0 0; to_x: "elapsed_time_area"; to_y: "bg"; }
+ min: 0 90;
+ fixed: 0 1;
+ align: 0 0;
+ visible: 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ rel2 { relative: 0 0; to_x: "padding_landscape_right"; to_y: "bg"; }
+ min: 0 70;
+ }
+ }
+
+ part { name: "elm.text"; // title
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ effect: SHADOW TOP_RIGHT;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "text_area"; }
+ rel2 { relative: 1 0; to: "text_area"; }
+ min: 0 48;
+ fixed: 0 1;
+ align: 0 0;
+ text {
+ font: "SLP:style=Light";
+ size: 40;
+ align: 0.5 1.0;
+ }
+ color: 249 249 249 255;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ rel1.to: "text_area";
+ rel2 { relative: 1 1; to: "text_area"; }
+ text.min: 0 0;
+ text.max: 1 0;
+ //text.align: 0.0 1.0;
+ }
+ }
+
+ part { name: "padding_after_text";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "elm.text"; }
+ rel2 { relative: 1 1; to: "elm.text"; }
+ min: 0 12;
+ fixed: 0 1;
+ align: 0 0;
+ visible: 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: 1 0; to: "elm.text"; }
+ rel2 { relative: 1 1; to: "elm.text"; }
+ min: 30 0;
+ fixed: 1 0;
+ }
+ }
+
+ part { name: "elm.text.2"; // artist
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ effect: SHADOW TOP_RIGHT;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "padding_after_text"; }
+ rel2 { relative: 1 1; to: "text_area"; }
+ align: 0.5 0.0;
+ text {
+ font: "SLP:style=Roman";
+ size: 28;
+ align: 0.5 0.5;
+ }
+ color: 249 249 249 149;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: 1 0; to: "padding_after_text"; }
+ align: 0 0;
+ text.align: 0.0 1.0;
+ text.min: 0 0;
+ text.max: 1 0;
+ }
+ }
+
+ part { name: "elapsed_time_area";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "padding.right"; }
+ rel2 { relative: 0 1; to_x: "padding.right"; to_y: "elm.text";}
+ min: 70 0;
+ fixed: 1 0;
+ align: 1 0;
+ color: 0 255 0 100;
+ visible: 0;
+ }
+ }
+
+ part { name: "elm.elapsed_time";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "elapsed_time_area"; }
+ rel2 { relative: 1 1; to: "elapsed_time_area"; }
+ color: 255 255 255 149;
+ text {
+ font: "SLP:style=Roman";
+ style: "Roman";
+ size: 26;
+ align: 1.0 1.0;
+ }
+ }
+ }
+
+ part { name: "padding_landscape_right";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "padding.right"; }
+ rel2 { relative: 0 1; to: "padding.right"; }
+ min: 181 0;
+ fixed: 1 0;
+ align: 1 0;
+ visible: 0;
+ }
+ }
+
+ part { name: "button_area";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to_x: "padding.albumart.right"; to_y: "padding.bottom"; }
+ rel2 { relative: 0 0; to_x: "padding.right"; to_y: "padding.bottom"; }
+ min: 0 46;
+ fixed: 0 1;
+ align: 0 1;
+ visible: 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ rel2.to_x: "padding_landscape_right";
+ }
+ }
+
+ part { name: "repeat_btn_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0.5; to: "button_area"; }
+ rel2 { relative: 0 0.5; to: "button_area"; }
+ min: 0 64;
+ fixed: 1 1;
+ align: 0 0.5;
+ visible: 0;
+ color: 255 0 0 200;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 64 64;
+ //visible: 1;
+ }
+ }
+ part { name: "repeat_btn";
+ type: IMAGE;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "repeat_btn_bg"; }
+ rel2 { relative: 1 1; to: "repeat_btn_bg"; }
+ image.normal: ICON_REPEAT_ALL;
+ }
+ description { state: "one" 0.0;
+ inherit: "default" 0.0;
+ image.normal: ICON_REPEAT_ONE;
+ }
+ description { state: "none" 0.0;
+ inherit: "default" 0.0;
+ image.normal: ICON_REPEAT_NONE;
+ }
+ }
+
+ part { name: "rewind_image_bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0.5; to_x: "button_padding_1"; to_y: "play.pause.image_bg"; }
+ rel2 { relative: 0 0.5; to_x: "button_padding_1"; to_y: "play.pause.image_bg"; }
+ min: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 1 0.5;
+ visible: 0;
+ }
+ }
+
+ part { name: "rewind_image";
+ type: IMAGE;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "rewind_image_bg"; }
+ rel2 { relative: 1 1; to: "rewind_image_bg"; }
+ image { normal: ICON_REW; }
+ }
+ }
+
+ part { name: "rewind_button";
+ type: RECT;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "rewind_image_bg"; offset: -BUTTON_EXPAND_OFFSET -BUTTON_EXPAND_OFFSET; }
+ rel2 { relative: 1 1; to: "rewind_image_bg"; offset: BUTTON_EXPAND_OFFSET BUTTON_EXPAND_OFFSET; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "button_padding_1";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "play.pause.image_bg"; }
+ rel2 { relative: 0 1; to: "play.pause.image_bg"; }
+ min: 111 0;
+ fixed: 1 0;
+ align: 1 0;
+ visible: 0;
+ }
+ }
+
+ part { name: "play.pause.image_bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "button_area"; }
+ rel2 { relative: 0.5 0.5; to: "button_area"; }
+ min: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ visible: 0;
+ color: 255 0 0 200;
+ }
+ }
+
+ part { name: "play.pause.image";
+ type: IMAGE;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "play.pause.image_bg"; }
+ rel2 { relative: 1 1; to: "play.pause.image_bg"; }
+ image { normal: ICON_PAUSE; }
+ }
+ description{ state: "pause" 0.0;
+ inherit : "default" 0.0;
+ image {normal: ICON_PLAY;}
+ }
+
+ }
+
+ part { name: "play_pause_button";
+ type: RECT;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "play.pause.image_bg"; offset: -BUTTON_EXPAND_OFFSET -BUTTON_EXPAND_OFFSET; }
+ rel2 { relative: 1 1; to: "play.pause.image_bg"; offset: BUTTON_EXPAND_OFFSET BUTTON_EXPAND_OFFSET; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "button_padding_2";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "play.pause.image_bg"; }
+ rel2 { relative: 1 1; to: "play.pause.image_bg"; }
+ min: 111 0;
+ fixed: 1 0;
+ align: 0 0;
+ visible: 0;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 115 0;
+ }
+ }
+
+ part { name: "forward_image_bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0.5; to_x: "button_padding_2"; to_y: "play.pause.image_bg"; }
+ rel2 { relative: 1 0.5; to_x: "button_padding_2"; to_y: "play.pause.image_bg"; }
+ min: BUTTON_SIZE_MIN_MAX;
+ fixed: 1 1;
+ align: 0 0.5;
+ visible: 0;
+ }
+ }
+
+ part { name: "forward_image";
+ type: IMAGE;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "forward_image_bg"; }
+ rel2 { relative: 1 1; to: "forward_image_bg"; }
+ image { normal: ICON_FF; }
+ }
+ }
+
+ part { name: "forward_button";
+ type: RECT;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "forward_image_bg"; offset: -BUTTON_EXPAND_OFFSET -BUTTON_EXPAND_OFFSET; }
+ rel2 { relative: 1 1; to: "forward_image_bg"; offset: BUTTON_EXPAND_OFFSET BUTTON_EXPAND_OFFSET; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "shuffle_btn_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0.5; to: "button_area"; }
+ rel2 { relative: 1 0.5; to: "button_area"; }
+ min: 0 64;
+ fixed: 1 1;
+ align: 1S 0.5;
+ visible: 0;
+ color: 255 0 0 200;
+ }
+ description { state: "landscape" 0.0;
+ inherit: "default" 0.0;
+ min: 64 64;
+ //visible: 1;
+ }
+ }
+ part { name: "shuffle_btn";
+ type: IMAGE;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "shuffle_btn_bg"; }
+ rel2 { relative: 1 1; to: "shuffle_btn_bg"; }
+ image.normal: ICON_SHUFFLE_ON;
+ }
+ description { state: "off" 0.0;
+ inherit: "default" 0.0;
+ image.normal: ICON_SHUFFLE_OFF;
+ }
+ }
+ }
+
+ programs {
+ program { name: "press_rewind";
+ signal: "mouse,down,1";
+ source: "rewind_button";
+ script{
+ emit("clicked", "rew_btn_down");
+ }
+ }
+ program { name: "normal_rewind";
+ signal: "mouse,up,1";
+ source: "rewind_button";
+ script{
+ emit("clicked", "rew_btn_up");
+ }
+ }
+ program { name: "press_play";
+ signal: "mouse,down,1";
+ source: "play_pause_button";
+ script{
+ emit("clicked", "play");
+ }
+ }
+ program { name: "press_fwd";
+ signal: "mouse,down,1";
+ source: "forward_button";
+ script{
+ emit("clicked", "ff_btn_down");
+ }
+ }
+ program { name: "normal_fwd";
+ signal: "mouse,up,1";
+ source: "forward_button";
+ script{
+ emit("clicked", "ff_btn_up");
+ }
+ }
+ program { name: "albumart_cb";
+ signal: "mouse,clicked,1";
+ source: "albumart_image";
+ script{
+ emit("clicked", "albumart");
+ }
+ }
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "play.pause.image";
+ script{
+ set_state(PART:"play.pause.image", "default", 0.0);
+ }
+ transition: LINEAR 0.1;
+ }
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "play.pause.image";
+ script{
+ set_state(PART:"play.pause.image", "pause", 0.0);
+ }
+ transition: LINEAR 0.1;
+ }
+ program { name: "press_repeat";
+ signal: "mouse,clicked,1";
+ source: "repeat_btn";
+ action: SIGNAL_EMIT "clicked" "repeat";
+ }
+ program { name: "press_shuffle";
+ signal: "mouse,clicked,1";
+ source: "shuffle_btn";
+ action: SIGNAL_EMIT "clicked" "shuffle";
+ }
+ program { name: "set_repeat_icon_all";
+ signal: "set_repeat_all";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "repeat_btn";
+ }
+ program { name: "set_repeat_icon_one";
+ signal: "set_repeat_one";
+ source: "*";
+ action: STATE_SET "one" 0.0;
+ target: "repeat_btn";
+ }
+ program { name: "set_repeat_icon_none";
+ signal: "set_repeat_none";
+ source: "*";
+ action: STATE_SET "none" 0.0;
+ target: "repeat_btn";
+ }
+ program { name: "set_shuffle_icon_on";
+ signal: "set_shuffle_on";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "shuffle_btn";
+ }
+ program { name: "set_shuffle_icon_off";
+ signal: "set_shuffle_off";
+ source: "*";
+ action: STATE_SET "off" 0.0;
+ target: "shuffle_btn";
+ }
+
+ /* landscape / portrait */
+ program { name: "pgm_set_landscape_mode";
+ signal: "sig_set_landscape_mode";
+ source: "*";
+ script {
+ set_state(PART:"padding.left", "landscape", 0.0);
+ set_state(PART:"padding.right", "landscape", 0.0);
+ set_state(PART:"padding.bottom", "landscape", 0.0);
+ set_state(PART:"padding.albumart.right", "landscape", 0.0);
+ set_state(PART:"text_area", "landscape", 0.0);
+ set_state(PART:"elm.text", "landscape", 0.0);
+ set_state(PART:"padding_after_text", "landscape", 0.0);
+ set_state(PART:"elm.text.2", "landscape", 0.0);
+ set_state(PART:"button_area", "landscape", 0.0);
+ set_state(PART:"repeat_btn_bg", "landscape", 0.0);
+ set_state(PART:"shuffle_btn_bg", "landscape", 0.0);
+ set_state(PART:"button_padding_1", "landscape", 0.0);
+ set_state(PART:"button_padding_2", "landscape", 0.0);
+ }
+ }
+ program { name: "pgm_set_portrait_mode";
+ signal: "sig_set_portrait_mode";
+ source: "*";
+ script {
+ set_state(PART:"padding.left", "default", 0.0);
+ set_state(PART:"padding.right", "default", 0.0);
+ set_state(PART:"padding.bottom", "default", 0.0);
+ set_state(PART:"padding.albumart.right", "default", 0.0);
+ set_state(PART:"text_area", "default", 0.0);
+ set_state(PART:"elm.text", "default", 0.0);
+ set_state(PART:"padding_after_text", "default", 0.0);
+ set_state(PART:"elm.text.2", "default", 0.0);
+ set_state(PART:"button_area", "default", 0.0);
+ set_state(PART:"repeat_btn_bg", "default", 0.0);
+ set_state(PART:"shuffle_btn_bg", "default", 0.0);
+ set_state(PART:"button_padding_1", "default", 0.0);
+ set_state(PART:"button_padding_2", "default", 0.0);
+ }
+ }
+ }
+
+} // group
+} // collection
\ No newline at end of file
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
#define NAVIFRAME_VIEW_TRANS_TIME 0.3
//2 define custom style here..
#define NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 52
#define NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 144
-#define MP_NAVIFRAME_BG_IMAGE "T02_title_bg.png"
-
+////////////////////////////////////////////////////////////////////////////////////////
+// NavigationBar_ex
+////////////////////////////////////////////////////////////////////////////////////////
- group { name:"elm/naviframe/item/basic/music/default";
+group { name:"elm/naviframe/item/basic/music/default";
alias:"elm/naviframe/item/1line/music/default";
images {
image: "00_winset_control_top_bg.png" COMP;
image: "00_winset_control_top_arrow.png" COMP;
- image: MP_NAVIFRAME_BG_IMAGE COMP;
+ image: "T02_title_bg.png" COMP;
}
script {
public oh_show = 0; //optionheader show/hide
}
part { name: "title_bg";
//type: RECT;
- type: IMAGE;
+ type: IMAGE;
scale: 1;
description { state: "default" 0.0;
min: 1 NAVIFRAME_TITLE_H_INC;
rel1 { relative: 0.0 0.0; to: "base"; }
rel2 { relative: 1.0 0.0; to: "base"; }
//color: NAVIFRAME_TITLE_BG_COLOR_INC;
- image.normal: MP_NAVIFRAME_BG_IMAGE;
+ image.normal: "T02_title_bg.png";
}
description { state: "hide" 0.0;
inherit: "default" 0.0;
action: SIGNAL_EMIT "elm,action,title,clicked" "";
}
}
- }
\ No newline at end of file
+ }
+
+ group { name: "elm/naviframe/item/tabbar/music/default";
+ script {
+ public cbar_bg = 0; //Controlbar BG Show call count
+ }
+ parts {
+ part { name: "base";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ visible: 0;
+ }
+ description { state: "left" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: -1.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ description { state: "right" 0.0;
+ inherit: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 2.0 1.0;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.relative: 0.0 0.0;
+ rel1.to: "base";
+ rel2.relative: 1.0 0.0;
+ rel2.to_x: "base";
+ rel2.to_y: "controlbar_bg";
+ }
+ }
+ part { name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part { name: "controlbar_bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: NAVIFRAME_CONTROLBAR_BG_COLOR_INC;
+ }
+ description { state: "show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 CONTROLBAR_SMALL_HEIGHT_INC;
+ max: 999999 CONTROLBAR_SMALL_HEIGHT_INC;
+ visible: 1;
+ }
+ }
+ part { name: "controlbar_clip";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { to: "controlbar_bg"; }
+ rel2 { to: "controlbar_bg"; }
+ }
+ }
+ part { name: "elm.prev_btn_bg";
+ type: RECT;
+ scale: 1;
+ clip_to: "controlbar_clip";
+ description { state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 { relative: 1.0 0.0; to: "controlbar_bg"; }
+ rel2.to: "controlbar_bg";
+ visible: 0;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 0;
+ }
+ }
+ part { name: "elm.swallow.prev_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "controlbar_clip";
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "elm.prev_btn_bg";
+ rel2.to: "elm.prev_btn_bg";
+ }
+ }
+ part { name: "controlbar";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "controlbar_clip";
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "controlbar_bg";
+ rel2 { relative: 0.0 1.0; to: "elm.prev_btn_bg"; }
+ }
+ }
+ }
+ programs {
+ program { name: "content_new_pushed";
+ signal: "elm,state,new,pushed,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program { name: "content_cur_pushed";
+ signal: "elm,state,cur,pushed,internal";
+ source: "";
+ action: STATE_SET "left" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "pushed_finished";
+ }
+ program { name: "content_prev_popped";
+ signal: "elm,state,prev,popped,internal";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "show_finished";
+ }
+ program { name: "content_cur_popped";
+ signal: "elm,state,cur,popped,internal";
+ source: "";
+ action: STATE_SET "right" 0.0;
+ target: "base";
+ transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+ after: "popped_finished";
+ }
+ program { name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,pushed,internal", "");
+ }
+ }
+ program { name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ script {
+ set_state(PART:"base", "right", 0.0);
+ emit("elm,state,new,pushed,internal", "");
+ }
+ }
+ program { name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "left", 0.0);
+ emit("elm,state,prev,popped,internal", "");
+ }
+ }
+ program { name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ script {
+ set_state(PART:"base", "default", 0.0);
+ emit("elm,state,cur,popped,internal", "");
+ }
+ }
+ program { name: "visible";
+ signal: "elm,state,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "base";
+ }
+ program { name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,controlbar_bg,show", "elm");
+ set_state(PART:"elm.prev_btn_bg", "visible", 0.0);
+ }
+ }
+ program { name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,controlbar_bg,hide", "elm");
+ set_state(PART:"elm.prev_btn_bg", "default", 0.0);
+ }
+ }
+ program { name: "controlbar_show";
+ signal: "elm,state,controlbar,show";
+ source: "elm";
+ action: STATE_SET "show" 0.0;
+ script {
+ emit("elm,state,controlbar_bg,show", "elm");
+ }
+ }
+ program { name: "controlbar_hide";
+ signal: "elm,state,controlbar,hide";
+ source: "elm";
+ script {
+ emit("elm,state,controlbar_bg,hide", "elm");
+ }
+ }
+ program { name: "controlbar_bg_show";
+ signal: "elm,state,controlbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"controlbar_bg", "show", 0.0);
+ set_int(cbar_bg, get_int(cbar_bg) + 1);
+ }
+ }
+ program { name: "controlbar_bg_hide";
+ signal: "elm,state,controlbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(cbar_bg, get_int(cbar_bg) - 1);
+ if (get_int(cbar_bg) <= 0)
+ set_state(PART:"controlbar_bg", "default", 0.0);
+ }
+ }
+ program { name: "controlbar_open";
+ signal: "elm,state,controlbar,open";
+ source: "";
+ action: STATE_SET "show" 0.0;
+ target: "controlbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program { name: "controlbar_close";
+ signal: "elm,state,controlbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "controlbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program { name: "controlbar_instant_open";
+ signal: "elm,state,controlbar,instant_open";
+ source: "";
+ script {
+ emit("elm,state,prev_btn,show", "elm");
+ emit("elm,state,controlbar,show", "elm");
+ }
+ }
+ program { name: "controlbar_instant_close";
+ signal: "elm,state,controlbar,instant_close";
+ source: "";
+ script {
+ emit("elm,state,prev_btn,hide", "elm");
+ emit("elm,state,controlbar,hide", "elm");
+ }
+ }
+ program { name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program { name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program { name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ }
+ }
+
+ group { name: "elm/naviframe/item/tabbar/music/instant/default";
+ script {
+ public cbar_bg = 0; //Controlbar BG Show call count
+ }
+ parts {
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ repeat_events: 0;
+ clip_to: "content_clip";
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 0.0;
+ rel2.to_y: "controlbar_bg";
+ }
+ }
+ part { name: "content_clip";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ }
+ }
+ part { name: "controlbar_bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 0;
+ max: 999999 0;
+ fixed: 0 1;
+ align: 0.0 1.0;
+ visible: 0;
+ color: NAVIFRAME_CONTROLBAR_BG_COLOR_INC;
+ }
+ description { state: "show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 CONTROLBAR_SMALL_HEIGHT_INC;
+ max: 999999 CONTROLBAR_SMALL_HEIGHT_INC;
+ visible: 1;
+ }
+ }
+ part { name: "controlbar_clip";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { to: "controlbar_bg"; }
+ rel2 { to: "controlbar_bg"; }
+ }
+ }
+ part { name: "elm.prev_btn_bg";
+ type: RECT;
+ scale: 1;
+ clip_to: "controlbar_clip";
+ description { state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 { relative: 1.0 0.0; to: "controlbar_bg"; }
+ rel2.to: "controlbar_bg";
+ visible: 0;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 0;
+ }
+ }
+ part { name: "elm.swallow.prev_btn";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "controlbar_clip";
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1.to: "elm.prev_btn_bg";
+ rel2.to: "elm.prev_btn_bg";
+ }
+ }
+ part { name: "controlbar";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "controlbar_clip";
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ rel1.to: "controlbar_bg";
+ rel2 { relative: 0.0 1.0; to: "elm.prev_btn_bg"; }
+ }
+ }
+ }
+ programs {
+ program { name: "cur_pushed";
+ signal: "elm,state,cur,pushed";
+ source: "elm";
+ after: "pushed_finished";
+ }
+ program { name: "new_pushed";
+ signal: "elm,state,new,pushed";
+ source: "elm";
+ after: "show_finished";
+ }
+ program { name: "prev_popped";
+ signal: "elm,state,prev,popped";
+ source: "elm";
+ after: "show_finished";
+ }
+ program { name: "cur_popped";
+ signal: "elm,state,cur,popped";
+ source: "elm";
+ after: "popped_finished";
+ }
+ program { name: "prev_btn_show";
+ signal: "elm,state,prev_btn,show";
+ source: "elm";
+ script {
+ emit("elm,state,controlbar_bg,show", "elm");
+ set_state(PART:"elm.prev_btn_bg", "visible", 0.0);
+ }
+ }
+ program { name: "prev_btn_hide";
+ signal: "elm,state,prev_btn,hide";
+ source: "elm";
+ script {
+ emit("elm,state,controlbar_bg,hide", "elm");
+ set_state(PART:"elm.prev_btn_bg", "default", 0.0);
+ }
+ }
+ program { name: "controlbar_show";
+ signal: "elm,state,controlbar,show";
+ source: "elm";
+ action: STATE_SET "show" 0.0;
+ script {
+ emit("elm,state,controlbar_bg,show", "elm");
+ }
+ }
+ program { name: "controlbar_hide";
+ signal: "elm,state,controlbar,hide";
+ source: "elm";
+ script {
+ emit("elm,state,controlbar_bg,hide", "elm");
+ }
+ }
+ program { name: "controlbar_bg_show";
+ signal: "elm,state,controlbar_bg,show";
+ source: "elm";
+ script {
+ set_state(PART:"controlbar_bg", "show", 0.0);
+ set_int(cbar_bg, get_int(cbar_bg) + 1);
+ }
+ }
+ program { name: "controlbar_bgp_hide";
+ signal: "elm,state,controlbar_bg,hide";
+ source: "elm";
+ script {
+ set_int(cbar_bg, get_int(cbar_bg) - 1);
+ if (get_int(cbar_bg) <= 0)
+ set_state(PART:"controlbar_bg", "default", 0.0);
+ }
+ }
+ program { name: "controlbar_open";
+ signal: "elm,state,controlbar,open";
+ source: "";
+ action: STATE_SET "show" 0.0;
+ target: "controlbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program { name: "controlbar_close";
+ signal: "elm,state,controlbar,close";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "controlbar_bg";
+ transition: LINEAR 0.2;
+ }
+ program { name: "controlbar_instant_open";
+ signal: "elm,state,controlbar,instant_open";
+ source: "";
+ script {
+ emit("elm,state,prev_btn,show", "elm");
+ emit("elm,state,controlbar,show", "elm");
+ }
+ }
+ program { name: "controlbar_instant_close";
+ signal: "elm,state,controlbar,instant_close";
+ source: "";
+ script {
+ emit("elm,state,prev_btn,hide", "elm");
+ emit("elm,state,controlbar,hide", "elm");
+ }
+ }
+ program { name: "show_finished";
+ action: SIGNAL_EMIT "elm,action,show,finished" "";
+ }
+ program { name: "pushed_finished";
+ action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+ }
+ program { name: "popped_finished";
+ action: SIGNAL_EMIT "elm,action,popped,finished" "";
+ }
+ program {
+ name: "title_clicked";
+ signal: "mouse,clicked,1";
+ source: "click_event_area";
+ action: SIGNAL_EMIT "elm,action,title,clicked" "";
+ }
+ }
+ }
+
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
/*********** no_content ***********************/
#define IMAGE_NO_CONTENT "T02_nocomposers.png"
}
}
+
+ group {
+ images {
+ image: IMAGE_NO_CONTENT COMP;
+ }
+
+ name: "no_content_landscape";
+ parts {
+ part { name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "image";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.5;
+ //min: 314 310;
+ //fixed: 1 1;
+ //rel1 { relative: 0.5 (230/570); to:bg;}
+ //rel2 { relative: 0.5 (230/570); to:bg;}
+ rel1 { relative: 483/1280 (100/570); to:bg;}
+ rel2 { relative: 1-(483/1280) (1-100/570); to:bg;}
+ image.normal: IMAGE_NO_CONTENT;
+ }
+ description {
+ state: "show" 0.0;
+ align: 0.5 0.5;
+ rel1 { relative: 483/1280 (400/470); to:bg;}
+ rel2 { relative: 1-(483/1280) (1-400/470); to:bg;}
+ image.normal: IMAGE_NO_CONTENT;
+ }
+ }
+
+ part {
+ name: "elm.text";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 1.0; to_y: "image"; offset: 0 20;}
+ rel2 { relative: 1.0 1.0; to_y: "image"; offset: 0 20;}
+ color: FONT_NO_CONTENT_COLOR;
+ min: 0 46;
+ text {
+ font: FONT_NO_CONTENT;
+ size: FONT_NO_CONTENT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+
+ }
+ }
+ }
+
+ group {
+ images {
+ image: IMAGE_NO_CONTENT COMP;
+ }
+
+ name: "square_no_content_landscape";
+ parts {
+ part { name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "image";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.5;
+ rel1 { relative: 200/720 (100/570); to:bg;}
+ rel2 { relative: 1-(200/720) (1-100/570); to:bg;}
+ image.normal: IMAGE_NO_CONTENT;
+ }
+ }
+
+ part {
+ name: "elm.text";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 1.0; to_y: "image"; offset: 0 20;}
+ rel2 { relative: 1.0 1.0; to_y: "image"; offset: 0 20;}
+ color: FONT_NO_CONTENT_COLOR;
+ min: 0 46;
+ text {
+ font: FONT_NO_CONTENT;
+ size: FONT_NO_CONTENT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+
+ }
+ }
+ }
\ No newline at end of file
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
#define CONTROL_PAD_T 17
#define CONTROL_PAD_D 18
#define CONTROL_H (CONTROL_PAD_T+CONTROL_PAD_D+CONTROL_BUTTON)
group { name : "music/playing/main/control";
+
+ images {
+ image: "player/12_music_player_control_bg.png" COMP;
+ }
+
parts {
part { name: "bg";
type : SWALLOW;
scale: 1;
description { state: "default" 0.0;
visible: 1;
-
align: 0 0;
rel1 { relative: 0.0 (CONTROL_PAD_T+CONTROL_BUTTON)/CONTROL_H; to, "bg";}
rel2 { relative: 1.0 1.0; to, "bg";}
}
}
}
+#define LS_CONTROL_PAD_T 17
+#define LS_CONTROL_PAD_D 18
+#define LS_CONTROL_BUTTON 50
+#define LS_CONTROL_H (LS_CONTROL_PAD_T+LS_CONTROL_PAD_D+LS_CONTROL_BUTTON)
+group { name : "music/playing/main/control_ls";
+ images {
+ image: "player/12_music_player_control_bg_h.png" COMP;
+ }
+
+ parts {
+ part { name: "bg";
+ type : SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ min: 0 LS_CONTROL_H;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 35 35 35 0;
+ }
+ }
+
+ part { name: "pad.top";
+ type : RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ min: 0 LS_CONTROL_PAD_T;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 0.0; to_y, "bg";}
+ rel2 { relative: 1.0 LS_CONTROL_PAD_T/LS_CONTROL_H; to, "bg";}
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "buttons";
+ type : SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ rel1 { relative: 0.0 LS_CONTROL_PAD_T/LS_CONTROL_H; to, "bg"; }
+ rel2 { relative: 1.0 (LS_CONTROL_PAD_T+LS_CONTROL_BUTTON)/LS_CONTROL_H; to, "bg"; }
+ }
+ }
+
+ part { name: "pad.down";
+ type : RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ rel1 { relative: 0.0 (LS_CONTROL_PAD_T+LS_CONTROL_BUTTON)/LS_CONTROL_H; to, "bg";}
+ rel2 { relative: 1.0 1.0; to, "bg";}
+ color: 0 0 0 0;
+ }
+ }
+
+ }
+}
#define MAIN_W 480
#define CONTROL_BUTTON_FOWARD_X (CONTROL_BUTTON_PLAY_X+CONTROL_BUTTON_PLAY_W+CONTROL_BUTTON_PAD)
#define CONTROL_BUTTON_INFO_X (CONTROL_BUTTON_FOWARD_X+CONTROL_BUTTON_FOWARD_W+CONTROL_BUTTON_PAD)
-#define REW_BTN "T02_Play_btn_previous.png"
-#define REW_BTN_PRESS "T02_Play_btn_previou_press.png"
-#define PLAY_BTN "T02_Play_btn__play.png"
-#define PLAY_BTN_PRESS "T02_Play_btn__play_press.png"
-#define PAUSE_BTN "T02_Play_btn_pause.png"
-#define PAUSE_BTN_PRESS "T02_Play_btn_pause_press.png"
-#define FF_BTN "T02_Play_btn_next.png"
-#define FF_BTN_PRESS "T02_Play_btn_next_press.png"
+#define REW_BTN "player/T02_Play_btn_previous.png"
+#define REW_BTN_PRESS "player/T02_Play_btn_previou_press.png"
+#define PLAY_BTN "player/T02_Play_btn__play.png"
+#define PLAY_BTN_PRESS "player/T02_Play_btn__play_press.png"
+#define PAUSE_BTN "player/T02_Play_btn_pause.png"
+#define PAUSE_BTN_PRESS "player/T02_Play_btn_pause_press.png"
+#define FF_BTN "player/T02_Play_btn_next.png"
+#define FF_BTN_PRESS "player/T02_Play_btn_next_press.png"
#define VOLUME_BTN "T02_volume.png"
#define BACK_BTN "T02_btn_Back.png"
#define MUTE_BTN "music_icon_mute.png"
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
-
#define MP_NOW_PLAYING
#define MP_NOW_PLAYING_W 720.
part { name: "thumb_image";
type : SWALLOW;
+ //type : RECT;
scale: 1;
mouse_events: 0;
description { state: "default" 0.0;
align: 0 0;
rel1 { relative: MP_NOW_PLAYING_THUMB_SX/MP_NOW_PLAYING_W MP_NOW_PLAYING_THUMB_SY/MP_NOW_PLAYING_H; }
rel2 { relative: MP_NOW_PLAYING_THUMB_EX/MP_NOW_PLAYING_W MP_NOW_PLAYING_THUMB_EY/MP_NOW_PLAYING_H; }
+ //color: 0 0 0 255;
}
}
}
part { name: "playing_icon";
+ //type : SWALLOW;
type : IMAGE;
scale: 1;
mouse_events: 1;
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
-
/* font name*/
#define FONT_TITLE_NAME "system_title" //"system_title"
#define FONT_CONTENT_NAME "system_content" //"system_content"
#define FONT_SUBCONTENT_NAME "system_subcontent" //"system_subcontent"
-group
+group
{
name : "music/playing/play_ctrl";
+
+ images {
+ image : "player/T02_option_favorite_off.png" COMP;
+ image : "player/T02_option_favorite_on.png" COMP;
+ }
+
parts {
part {
name: "player_info_bg";
color: 35 35 35 0;
}
}
-
+
part {
name: "track_title";
type: TEXT;
inherit: "default" 0.0;
visible: 1;
}
- }
+ }
}
programs {
source: "player_progress";
action: STATE_SET "default" 0.0;
target: "player_progress";
- }
+ }
}
-
+
}
#define INFO_BASE_SC_H 620
color: 0 0 0 0;
}
}
-
+
part { name: "contents";
type : SWALLOW;
+// type : RECT;
mouse_events: 1;
scale: 1;
description { state: "default" 0.0;
align: 0 0;
rel1 { relative: 0.0 0.0; to_y, "bg"; }
rel2 { relative: 1.0 0.0; to_y, "bg"; }
+// color: 100 100 100 255;
}
}
}
}
-
-group {
- name: "music/playing/info/contents";
- images {
- image: "12_music_player_bg_01.PNG" COMP;
- }
-
- styles
- {
- style {
- name: "info_contents";
- base: "font=system_content font_size=28 align=left color=#ffffff wrap=word";
- tag: "br" "\n";
- tag: "tab" "\t";
- tag: "em" "+ font=system_content:style=Oblique";
- tag: "b" "+ font=system_content:style=Bold";
- tag: "link" "+ color=#800 underline=on underline_color=#8008";
- tag: "hilight" "+ font=system_content:style=Bold";
- }
- }
-
- parts {
- part { name: "bg";
- type : IMAGE;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_BASE_H;
- fixed: 0 1;
- align: 0 0;
- rel1 { relative: 0.0 0.0; }
- rel2 { relative: 1.0 0.0; }
- image { normal: "12_music_player_bg_01.PNG"; }
- }
- }
- part {
- name: "pad.top";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 30;
- fixed: 0 1;
- align: 0 0;
- rel1 { relative: 0.0 0.0; to_y, "bg"; }
- rel2 { relative: 1.0 0.0; to_y, "bg"; }
- color: 0 0 0 0;
- }
- }
- part {
- name: "pad.bottom";
- type: RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 30;
- fixed: 0 1;
- align: 1 1;
- rel1 { relative: 0.0 1.0; to_y, "bg"; }
- rel2 { relative: 1.0 1.0;to_y, "bg"; }
- color: 0 0 0 0;
- }
- }
- part { name: "pad.1";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- min: 20 0;
- fixed: 1 0;
- align: 0 0;
- rel1 { relative: 0.0 0.0; to_x, "bg";}
- rel2 { relative: 0.0 1.0; to_x, "bg";}
- color: 0 0 0 0;
- }
- }
- part { name: "pad.2";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- min: 20 0;
- fixed: 1 0;
- align: 1 1;
- rel1 { relative: 1.0 0.0; to_x, "bg";}
- rel2 { relative: 1.0 1.0; to_x, "bg";}
- color: 0 0 0 0;
- }
- }
- part {
- name: "albumart";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.top";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.top";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- }
- part { name: "pad.albumart";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "albumart";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "albumart";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
- part {
- name: "artist";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.albumart";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.albumart";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- }
- part { name: "pad.artist";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "artist";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "artist";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
- part {
- name: "title";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.artist";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.artist";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- }
-
- part { name: "pad.title";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "title";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "title";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
- part {
- name: "album";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.title";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.title";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- }
-
- part { name: "pad.album";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "album";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "album";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
- part {
- name: "tracklength";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.album";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.album";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- }
-
- part { name: "pad.tracklength";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "tracklength";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "tracklength";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
- part {
- name: "genres";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.tracklength";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.tracklength";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- }
-
- part { name: "pad.genres";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "genres";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "genres";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
- part {
- name: "author";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.genres";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.genres";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- }
-
- part { name: "pad.author";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "author";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "author";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
- part {
- name: "desc";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.author";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.author";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- }
- part { name: "pad.desc";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "desc";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "desc";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
- part {
- name: "forwarding";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.desc";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.desc";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- description {
- state: "invisible" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
- part { name: "pad.forwarding";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "forwarding";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "forwarding";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
-
- part {
- name: "available";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.forwarding";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.forwarding";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- description {
- state: "invisible" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
- part { name: "pad.available";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "available";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "available";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
- part {
- name: "type";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.available";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.available";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- description {
- state: "invisible" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
-
- part { name: "pad.type";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 INFO_ITEM_GAP_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "type";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "type";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
-
- part {
- name: "validity";
- type: TEXTBLOCK;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- min: 0 INFO_ITEM_TEXT_H;
- fixed: 0 1;
- align: 0 0;
- rel1 {
- to_x, "pad.1";
- to_y, "pad.type";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "pad.type";
- relative: 0.0 1.0;
- }
- text {
- style: "info_contents";
- min: 0 1;
- }
- }
- description {
- state: "invisible" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
- part { name: "pad.validity";
- type : RECT;
- scale: 1;
- description { state: "default" 0.0;
- rel1 {
- to_x, "pad.1";
- to_y, "validity";
- relative: 1.0 1.0;
- }
- rel2 {
- to_x, "pad.2";
- to_y, "validity";
- relative: 0.0 1.0;
- }
- color: 0 0 0 0;
- }
- }
-
- }
-
- programs {
- program {
- name: "desc_visible" ;
- signal: "desc_visible";
- source: "desc";
- action: STATE_SET "default" 0.0;
- target: "desc";
- }
-
- program {
- name: "desc_invisible" ;
- signal: "desc_invisible";
- source: "desc";
- action: STATE_SET "invisible" 0.0;
- target: "desc";
- }
-
- program {
- name: "forwarding_visible" ;
- signal: "forwarding_visible";
- source: "forwarding";
- action: STATE_SET "default" 0.0;
- target: "forwarding";
- }
-
- program {
- name: "forwarding_invisible" ;
- signal: "forwarding_invisible";
- source: "desc";
- action: STATE_SET "invisible" 0.0;
- target: "forwarding";
- }
-
- program {
- name: "available_visible" ;
- signal: "available_visible";
- source: "available";
- action: STATE_SET "default" 0.0;
- target: "available";
- }
-
- program {
- name: "available_invisible" ;
- signal: "available_invisible";
- source: "available";
- action: STATE_SET "invisible" 0.0;
- target: "available";
- }
-
- program {
- name: "type_visible" ;
- signal: "type_visible";
- source: "type";
- action: STATE_SET "default" 0.0;
- target: "type";
- }
-
- program {
- name: "type_invisible" ;
- signal: "type_invisible";
- source: "type";
- action: STATE_SET "invisible" 0.0;
- target: "type";
- }
-
- program {
- name: "validity_visible" ;
- signal: "validity_visible";
- source: "validity";
- action: STATE_SET "default" 0.0;
- target: "validity";
- }
-
- program {
- name: "validity_invisible" ;
- signal: "validity_invisible";
- source: "validity";
- action: STATE_SET "invisible" 0.0;
- target: "validity";
- }
- }
-}
-
-
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
-
group {
name: "mp_play_menu";
images {
+ image: "T02_option_SA.png" COMP;
+ image: "T02_option_SA_off.png" COMP;
image: "T02_option_shuffle_on.png" COMP;
image: "T02_option_shuffle_off.png" COMP;
image: "T02_option_rep_1.png" COMP;
part {
name: "menu_box_bg";
type: IMAGE;
+ //type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
rel1 { relative: 0.0 0.0; }
rel2 { relative: 1.0 1.0; }
image { normal: "T02_option_bg.png"; }
+ //color : 255 255 255 127;
+ //color : 0 0 0 0;
+ }
+ }
+ part {
+ name: "srs";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ //image { normal: "T02_option_SA.png"; }
+ rel1 { relative: MENU_SRS_SX MENU_SY; offset: 0 0; to: "menu_box_bg"; }
+ rel2 { relative: MENU_SRS_EX MENU_EY; offset: -1 0; to: "menu_box_bg"; }
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ //image { normal: "T02_option_SA.png"; }
+ }
+ description {
+ state: "invisible" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "srs_dim";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ //image { normal: "T02_option_SA_off.png"; }
+ rel1 { relative: MENU_SRS_SX MENU_SY; offset: 0 0; to: "menu_box_bg"; }
+ rel2 { relative: MENU_SRS_EX MENU_EY; offset: -1 0; to: "menu_box_bg"; }
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ //image { normal: "T02_option_SA_off.png"; }
+ }
+ description {
+ state: "invisible" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
}
}
+
part {
name: "shuffle";
type: IMAGE;
rel1 { relative: MENU_REP_ALL_SX MENU_SY; offset: 0 0; to: "menu_box_bg"; }
rel2 { relative: MENU_REP_ALL_EX MENU_EY; offset: 0 0; to: "menu_box_bg"; }
}
+ /*description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ image { normal: "34_menu_rep_non_press.png"; }
+ }*/
description {
state: "invisible" 0.0;
inherit: "default" 0.0;
}
programs {
+ program {
+ name: "srs_down";
+ source: "srs";
+ signal: "mouse,down,1";
+ action: STATE_SET "clicked" 0.0;
+ target: "srs";
+ }
+
+ program {
+ name: "srs_up";
+ source: "srs";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "srs";
+ }
+
+ program {
+ name: "srs_clicked";
+ source: "srs";
+ signal: "mouse,clicked,1";
+ action: SIGNAL_EMIT "srs_clicked" 0.0;
+ }
+
+ program {
+ name: "srs_visible" ;
+ signal: "srs_visible";
+ source: "srs";
+ action: STATE_SET "default" 0.0;
+ target: "srs";
+ }
+
+ program {
+ name: "srs_invisible" ;
+ signal: "srs_invisible";
+ source: "srs";
+ action: STATE_SET "invisible" 0.0;
+ target: "srs";
+ }
program {
+ name: "srs_dim_down";
+ source: "srs_dim";
+ signal: "mouse,down,1";
+ action: STATE_SET "clicked" 0.0;
+ target: "srs_dim";
+ }
+
+ program {
+ name: "srs_dim_up";
+ source: "srs_dim";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "srs_dim";
+ }
+
+ program {
+ name: "srs_dim_clicked";
+ source: "srs_dim";
+ signal: "mouse,clicked,1";
+ action: SIGNAL_EMIT "srs_dim_clicked" 0.0;
+ }
+
+ program {
+ name: "srs_dim_visible" ;
+ signal: "srs_dim_visible";
+ source: "srs_dim";
+ action: STATE_SET "default" 0.0;
+ target: "srs_dim";
+ }
+
+ program {
+ name: "srs_dim_invisible" ;
+ signal: "srs_dim_invisible";
+ source: "srs_dim";
+ action: STATE_SET "invisible" 0.0;
+ target: "srs_dim";
+ }
+/*
+ program {
+ name: "shuffle_down";
+ source: "shuffle";
+ signal: "mouse,down,1";
+ action: STATE_SET "clicked" 0.0;
+ target: "shuffle";
+ }
+
+ program {
+ name: "shuffle_up";
+ source: "shuffle";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "shuffle";
+ }
+*/
+ program {
name: "shuffle_clicked";
source: "shuffle";
signal: "mouse,clicked,1";
--- /dev/null
+
+#define MINI_APP_W 250
+#define MINI_APP_H 250
+#define MINI_ALBUM_ART_W 246
+#define MINI_ALBUM_ART_H 246
+#define CONTROL_BTN_W 54
+#define CONTROL_BTN_H 54
+#define CLOSE_BTN_W 50
+#define CLOSE_BTN_H 50
+
+#define IMG_CLOSE_BTN "mini_app/T01_btn_apps_close.png"
+#define IMG_REW_BTN "39_mini_controller_icon_rew.png"
+#define IMG_FF_BTN "39_mini_controller_icon_ff.png"
+#define IMG_PLAY_BTN "39_mini_controller_icon_play.png"
+#define IMG_PAUSE_BTN "39_mini_controller_icon_pause.png"
+
+group { name: "mini-app";
+ images {
+ image: IMG_CLOSE_BTN COMP;
+ image: IMG_REW_BTN COMP;
+ image: IMG_FF_BTN COMP;
+ image: IMG_PLAY_BTN COMP;
+ image: IMG_PAUSE_BTN COMP;
+ }
+
+ parts {
+ part { name: "bottom_bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: MINI_APP_W MINI_APP_H;
+ color: 51 51 51 255;
+ }
+ }
+
+ part { name: "padding.inner.top_left";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bottom_bg"; }
+ rel2 { relative: 0 0; to: "bottom_bg"; }
+ min: 2 2;
+ max: 2 2;
+ fixed: 1 1;
+ align: 0 0;
+ visible: 0;
+ }
+ }
+
+ part { name: "padding.inner.bottom_right";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 1; to: "bottom_bg"; }
+ rel2 { relative: 1 1; to: "bottom_bg"; }
+ min: 2 2;
+ max: 2 2;
+ fixed: 1 1;
+ align: 1 1;
+ visible: 0;
+ }
+ }
+
+ part { name: "inner_bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 1; to: "padding.inner.top_left";}
+ rel2 { relative: 0 0; to: "padding.inner.bottom_right";};
+ color: 242 242 242 255;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.bg.top_left";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "inner_bg"; }
+ rel2 { relative: 0 0; to: "inner_bg"; }
+ min: 2 2;
+ max: 2 2;
+ fixed: 1 1;
+ align: 0 0;
+ visible: 0;
+ }
+ }
+
+ part { name: "padding.bg.bottom_right";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 1; to: "inner_bg"; }
+ rel2 { relative: 1 1; to: "inner_bg"; }
+ min: 2 2;
+ max: 2 2;
+ fixed: 1 1;
+ align: 1 1;
+ visible: 0;
+ }
+ }
+
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 1; to: "padding.bg.top_left";}
+ rel2 { relative: 0 0; to: "padding.bg.bottom_right";}
+ visible: 0;
+ }
+ }
+
+ part { name: "albumart";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "bg"; }
+ rel2 { relative: 1 1; to: "bg"; }
+ min: MINI_ALBUM_ART_W MINI_ALBUM_ART_H;
+ fixed: 1 1;
+ align: 0 0;
+ }
+ }
+
+ part { name: "padding.text_area.top_left";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0; to: "albumart"; }
+ rel2 { relative: 0 0; to: "albumart"; }
+ min: 5 5;
+ fixed: 1 1;
+ align: 0 0;
+ visible: 0;
+ }
+ }
+
+ part { name: "text_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 1; to: "padding.text_area.top_left"; }
+ rel2 { relative: 0 1; to_x: "close_btn"; to_y: "padding.text_area.top_left"; }
+ min: 0 45;
+ fixed: 0 1;
+ align: 0 0;
+ visible: 0;
+ }
+ }
+
+ part { name: "text.title";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ effect: SOFT_SHADOW BOTTOM_RIGHT;
+ description { state: "default" 0.0;
+ rel1.to: "text_area";
+ rel2 { relative: 1 0; to: "text_area"; }
+ min: 0 25;
+ fixed: 0 1;
+ align: 0 0;
+ text {
+ font: "Helvetica Neue";
+ style: "Medium";
+ size: 25;
+ align: 0 0.5;
+ }
+ color: 255 255 255 255;
+ }
+ }
+
+ part { name: "text.artist";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ effect: SOFT_SHADOW BOTTOM_RIGHT;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "text.title"; }
+ rel2 { relative: 1 1; to: "text_area"; }
+ min: 0 20;
+ fixed: 0 1;
+ align: 0 0;
+ text {
+ font: "Helvetica Neue";
+ style: "Roman";
+ size: 20;
+ align: 0 0.5;
+ }
+ color: 255 255 255 255;
+ }
+ }
+
+ part { name: "event_box";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "albumart";
+ rel2 { relative: 1 0; to: "control_area"; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "control_area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 1; to: "bg"; }
+ rel2.to: "bg";
+ min: 0 70;
+ fixed: 0 1;
+ align: 0 1;
+ color: 0 0 0 100;
+ }
+ }
+
+ part { name: "rew_btn_bg";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0 0.5; to: "control_area"; }
+ rel2 { relative: 0 0.5; to: "control_area"; }
+ min: CONTROL_BTN_W CONTROL_BTN_H;
+ fixed: 1 1;
+ align: 0 0.5;
+ image.normal: IMG_REW_BTN;
+ }
+ }
+
+ part { name: "rew_btn";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "rew_btn_bg";
+ rel2.to: "rew_btn_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "play_pause_btn_bg";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.5 0.5; to: "control_area"; }
+ rel2 { relative: 0.5 0.5; to: "control_area"; }
+ min: CONTROL_BTN_W CONTROL_BTN_H;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ image.normal: IMG_PAUSE_BTN;
+ }
+ description { state: "paused" 0.0;
+ inherit: "default" 0.0;
+ image.normal: IMG_PLAY_BTN;
+ }
+ }
+
+ part { name: "play_pause_btn";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "play_pause_btn_bg";
+ rel2.to: "play_pause_btn_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "ff_btn_bg";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0.5; to: "control_area"; }
+ rel2 { relative: 1 0.5; to: "control_area"; }
+ min: CONTROL_BTN_W CONTROL_BTN_H;
+ fixed: 1 1;
+ align: 1 0.5;
+ image.normal: IMG_FF_BTN;
+ }
+ }
+
+ part { name: "ff_btn";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1.to: "ff_btn_bg";
+ rel2.to: "ff_btn_bg";
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "close_btn";
+ type: IMAGE;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1 0; to: "bg"; }
+ rel2 { relative: 1 0; to: "bg"; }
+ image.normal: IMG_CLOSE_BTN;
+ min: CLOSE_BTN_W CLOSE_BTN_H;
+ fixed: 1 1;
+ align: 1 0;
+ }
+ }
+ }
+
+ programs {
+ program { name: "pgm_exit_btn_clicked";
+ signal: "mouse,clicked,1";
+ source: "close_btn";
+ action: SIGNAL_EMIT "sig_exit_btn_clicked" "edje";
+ }
+
+ program { name: "pgm_event_box_click";
+ signal: "mouse,clicked,1";
+ source: "event_box";
+ action: SIGNAL_EMIT "sig_event_box_clicked" "edje";
+ }
+
+ program { name: "pgm_rew_down";
+ signal: "mouse,down,1";
+ source: "rew_btn";
+ action: SIGNAL_EMIT "sig_rew_btn_down" "rew_btn";
+ }
+
+ program { name: "pgm_rew_up";
+ signal: "mouse,up,1";
+ source: "rew_btn";
+ action: SIGNAL_EMIT "sig_rew_btn_up" "rew_btn";
+ }
+
+ program { name: "pgm_play_pause_clicked";
+ signal: "mouse,down,1";
+ source: "play_pause_btn";
+ action: SIGNAL_EMIT "sig_play_pause_btn_clicked" "play_pause_btn";
+ }
+
+ program { name: "pgm_ff_down";
+ signal: "mouse,down,1";
+ source: "ff_btn";
+ action: SIGNAL_EMIT "sig_ff_btn_down" "ff_btn";
+ }
+
+ program { name: "pgm_ff_up";
+ signal: "mouse,up,1";
+ source: "ff_btn";
+ action: SIGNAL_EMIT "sig_ff_btn_up" "ff_btn";
+ }
+
+ program { name: "set_pause_icon";
+ signal: "set_pause";
+ source: "*";
+ action: STATE_SET "paused" 0.0;
+ target: "play_pause_btn_bg";
+ }
+
+ program { name: "set_play_icon";
+ signal: "set_play";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "play_pause_btn_bg";
+ }
+ }
+}
\ No newline at end of file
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
-
#define PROGRESS_PAD_TOP_1 21
#define PROGRESS_PAD_TOP_2 6
#define PROGRESS_PAD_BOTTOM 26
#define PROGRESS_PAD_CENTER 14
+//#define PROGRESS_BOX_H (PROGRESS_PAD_TOP_1+PROGRESS_PAD_TOP_2+PROGRESS_PAD_CENTER+PROGRESS_PAD_BOTTOM)
#define PROGRESS_BAR_PAD_TOP 32
#define PROGRESS_BAR_H 16
#define PROGRESS_TIME_TOTAL_SX 0.5*PROGRESS_BAR_EX
#define PROGRESS_TIME_TOTAL_EX PROGRESS_BAR_EX
+
group {
name: "music/playing/progress_box";
min: MAIN_W PROGRESS_BOX_H;
group {
name: "music/playing/progress_box/progress_bar";
images {
- image: "T02_player_progress_bg.png" COMP;
- image: "T02_player_progress_bar.png" COMP;
- image: "T02_player_progress_point.png" COMP;
+ image: "progress_bar/T02_player_progress_bg.png" COMP;
+ image: "progress_bar/T02_player_progress_bar.png" COMP;
+ image: "progress_bar/T02_player_progress_point.png" COMP;
}
parts {
mouse_events: 0;
description { state: "default" 0.0;
visible: 1;
+ //min: 16 10;
+ //fixed: 1 1;
rel1 { relative: 0.0 PROGRESS_BAR_PAD_TOP/(PROGRESS_BAR_PAD_TOP+PROGRESS_BAR_PAD_TIME+PROGRESS_BAR_H); to, "bg"; }
rel2 { relative: 1.0 (PROGRESS_BAR_PAD_TOP+PROGRESS_BAR_H)/(PROGRESS_BAR_PAD_TOP+PROGRESS_BAR_PAD_TIME+PROGRESS_BAR_H); to, "bg"; }
image {
- normal : "T02_player_progress_bg.png";
+ normal : "progress_bar/T02_player_progress_bg.png";
+ //border: 7 7 0 0;
+ //border_scale: 1;
}
}
}
min: 10 10;
fixed: 1 1;
image {
- normal: "T02_player_progress_bar.png";
+ normal: "progress_bar/T02_player_progress_bar.png";
+ //border: 7 7 0 0;
+ //border_scale: 1;
}
rel1 { relative: 0.0 0.0; to: "progress_bg_img"; }
+ /* modify by rocket.he for fix CQ: H0100130945 begin */
+ /* rel2 { relative: 1.0 1.0; to_x: "progressbar_control"; to_y: "progress_bg_img";offset: -5 0;} */
rel2 { relative: 1.0 1.0; to_x: "progressbar_control"; to_y: "progress_bg_img";}
+ /* modify by rocket.he for fix CQ: H0100130945 end */
}
}
part {
align: 0 0;
rel1 { relative : 0.5 0.0; to:"progress_bg_img";}
rel2 { relative : 0.5 1.0; to:"progress_bg_img";}
- image.normal : "T02_player_progress_point.png";
+ image.normal : "progress_bar/T02_player_progress_point.png";
}
dragable {
confine: "bg";
}
}
}
-
--- /dev/null
+#define LS_PLAYVIEW_H 720
+#define LS_PLAYVIEW_CONTROLBAR_H 129
+
+group {
+ name: "mp_play_view_landscape";
+
+ parts {
+
+ part {
+ name: "album_art";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ //min: 480 480;
+
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; offset: 0 0;}
+ rel2 { relative: 1.0 1.0; offset: 0 0;}
+ }
+ }
+
+ part { name: "event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to:"album_art";}
+ rel2 { relative: 1.0 1.0; to:"album_art";}
+ }
+ }
+
+ part {
+ name: "buffering_area";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 100 100;
+ align: 1.0 0.5;
+ fixed: 1 1;
+ rel1 { relative: 1.0 0.5; to: "album_art"; }
+ rel2 { relative: 1.0 0.5; to: "album_art"; }
+ }
+ }
+
+
+ part {
+
+ name: "player_info_bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 314/480; } //227
+ rel2 { relative: 1.0 1.0 ; offset: 0 1; } //417
+ color: 0 0 0 153;
+ }
+ }
+
+ part {
+ name: "player_info";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 275/480; } //227
+ rel2 { relative: 1.0 417/480 ; } //417
+ }
+ description {
+ state: "invisible" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "line1";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 (LS_PLAYVIEW_H-LS_PLAYVIEW_CONTROLBAR_H)/LS_PLAYVIEW_H; offset: 0 -2; }
+ rel2 { relative: 1.0 (LS_PLAYVIEW_H-LS_PLAYVIEW_CONTROLBAR_H)/LS_PLAYVIEW_H; offset: 0 -1; }
+ color: 8 8 8 102;
+ }
+ }
+ part {
+ name: "line2";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 (LS_PLAYVIEW_H-LS_PLAYVIEW_CONTROLBAR_H)/LS_PLAYVIEW_H; offset: 0 -1; }
+ rel2 { relative: 1.0 (LS_PLAYVIEW_H-LS_PLAYVIEW_CONTROLBAR_H)/LS_PLAYVIEW_H; offset: 0 0; }
+ color: 130 130 130 102;
+ }
+ }
+
+ //add by rocket.he for fixing CQ: H0100127628 Begin
+ part {
+ name: "main.mute.bg";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 266 266;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ //rel1 { relative: (80/480) (240/480);}
+ //rel2 { relative: (80/480) (240/480);}
+ rel1 { relative: (133/480) (240/480);}
+ rel2 { relative: (133/480) (240/480);}
+ image { normal: "music_player_bg.PNG"; border: 7 7 0 0; }
+ color: 128 128 128 128;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "main.mute.image";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 96 96;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: (133/480) (240/480);}
+ rel2 { relative: (133/480) (240/480);}
+ image { normal: "music_popup_mute.png"; }
+ color: 255 255 255 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ //add by rocket.he for fixing CQ: H0100127628 end
+ }
+
+ programs {
+ program {
+ name: "album_art_clicked";
+ source: "album_art";
+ signal: "mouse,clicked,1";
+ action: SIGNAL_EMIT "album_art_clicked" 0.0;
+ }
+ program {
+ name: "album_art_up";
+ source: "album_art";
+ signal: "mouse,up,1";
+ action: SIGNAL_EMIT "album_art_up" 0.0;
+ }
+ program {
+ name: "album_art_down";
+ source: "album_art";
+ signal: "mouse,down,1";
+ action: SIGNAL_EMIT "album_art_down" 0.0;
+ }
+ program {
+ name: "album_art_move";
+ source: "album_art";
+ signal: "mouse,move";
+ action: SIGNAL_EMIT "album_art_move" 0.0;
+ }
+ program {
+ name: "info_invisible" ;
+ signal: "info_invisible";
+ source: "player_info";
+ action: STATE_SET "invisible" 0.0;
+ target: "player_info";
+ }
+ program {
+ name: "info_visible" ;
+ signal: "info_visible";
+ source: "player_info";
+ action: STATE_SET "default" 0.0;
+ target: "player_info";
+ }
+
+ //add by rocket.he for fixing CQ: H0100127628 Begin
+ program {
+ signal: "signal.main.mute.show";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "main.mute.image";
+ target: "main.mute.bg";
+ }
+
+ program {
+ signal: "signal.main.mute.hide";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "main.mute.image";
+ target: "main.mute.bg";
+ }
+ //add by rocket.he for fixing CQ: H0100127628 end
+ }
+}
\ No newline at end of file
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
-
/* font name*/
-#define FONT_TITLE_NAME "system_title"
-#define FONT_CONTENT_NAME "system_content"
-#define FONT_SUBCONTENT_NAME "system_subcontent"
+#define FONT_TITLE_NAME "system_title" //"system_title"
+#define FONT_CONTENT_NAME "system_content" //"system_content"
+#define FONT_SUBCONTENT_NAME "system_subcontent" //"system_subcontent"
#define ALBUMART_IMAGE_SHADOW_RGBA 0 0 0 0
#define PLAYVIEW_CONTROLBAR_H 129
#define PLAYVIEW_MENU_H 96
+#define PLAYVIEW_LYRIC_H (PLAYVIEW_ALBUM_H-PLAYVIEW_MENU_H)
#define PLAYVIEW_REFLECTION_H 244
#define PLAYVIEW_TOP_LINE_1_SX (0.5*(HD_PLAYVIEW_W-PLAYVIEW_TOP_LINE_W))/HD_PLAYVIEW_W
#define PLAYVIEW_TOP_LINE_1_EX (0.5*(HD_PLAYVIEW_W+PLAYVIEW_TOP_LINE_W))/HD_PLAYVIEW_W
#define PLAYVIEW_ALBUM_EX 1.0
#define PLAYVIEW_ALBUM_SY PLAYVIEW_OPTION_EY
#define PLAYVIEW_ALBUM_EY (PLAYVIEW_ALBUM_SY+PLAYVIEW_ALBUM_H/HD_PLAYVIEW_H)
-
+#define PLAYVIEW_LYRIC_SX 0.0
+#define PLAYVIEW_LYRIC_EX 1.0
+#define PLAYVIEW_LYRIC_SY PLAYVIEW_OPTION_EY
+#define PLAYVIEW_LYRIC_EY (PLAYVIEW_LYRIC_SY+PLAYVIEW_LYRIC_H/HD_PLAYVIEW_H)
#define PLAYVIEW_MENU_SX 0.0
#define PLAYVIEW_MENU_EX 1.0
-#define PLAYVIEW_MENU_SY (PLAYVIEW_OPTION_EY+(PLAYVIEW_ALBUM_H-PLAYVIEW_MENU_H)/HD_PLAYVIEW_H)
+#define PLAYVIEW_MENU_SY PLAYVIEW_LYRIC_EY
#define PLAYVIEW_MENU_EY (PLAYVIEW_MENU_SY+PLAYVIEW_MENU_H/HD_PLAYVIEW_H)
#define PLAYVIEW_REFLECTION_SX 0.0
#define PLAYVIEW_REFLECTION_EX 1.0
#define OPTION_H PLAYVIEW_OPTION_H
#define OPTION_W HD_PLAYVIEW_W
#define OPTION_BUTTON_H 70
+
+#ifdef MP_FEATURE_INNER_SETTINGS
+#define OPTION_BUTTON_W 160
+#define OPTION_BUTTON_PAD_LEFT 13
+#else
#define OPTION_BUTTON_W 220
-#define OPTION_BUTTON_PAD_TOP 4
#define OPTION_BUTTON_PAD_LEFT 12
+#endif
+
+#define OPTION_BUTTON_PAD_TOP 4
#define OPTION_BUTTON_PAD_BUTTON 18
#define OPTION_SY OPTION_BUTTON_PAD_TOP/OPTION_H
#define OPTION_EY (OPTION_BUTTON_PAD_TOP+OPTION_BUTTON_H)/OPTION_H
#define OPTION_2_EX (OPTION_BUTTON_PAD_LEFT+OPTION_BUTTON_W*2+OPTION_BUTTON_PAD_BUTTON)/OPTION_W
#define OPTION_3_SX (OPTION_BUTTON_PAD_LEFT+OPTION_BUTTON_W*2+OPTION_BUTTON_PAD_BUTTON*2)/OPTION_W
#define OPTION_3_EX (OPTION_BUTTON_PAD_LEFT+OPTION_BUTTON_W*3+OPTION_BUTTON_PAD_BUTTON*2)/OPTION_W
+#define OPTION_4_SX (OPTION_BUTTON_PAD_LEFT+OPTION_BUTTON_W*3+OPTION_BUTTON_PAD_BUTTON*3)/OPTION_W
+#define OPTION_4_EX (OPTION_BUTTON_PAD_LEFT+OPTION_BUTTON_W*4+OPTION_BUTTON_PAD_BUTTON*3)/OPTION_W
+
/* landscape mode layout */
+#define LS_STATUSBAR_H 50
+#define LS_NAVIGATIONBAR_H 0
+
+//#define LS_PLAYVIEW_H (HD_MAIN_W-LS_STATUSBAR_H-LS_NAVIGATIONBAR_H)
+#define LS_PLAYVIEW_W HD_MAIN_W
+#define LS_PLAYVIEW_TITLE_H 100
+#define LS_PLAYVIEW_OPTION_H 80
+#define LS_PLAYVIEW_MENU_H 96
+#define LS_PLAYVIEW_PROGRESSBAR_H 113
+#define LS_PLAYVIEW_LINE_H 2
+#define LS_PLAYVIEW_CONTROLBAR_H 129
+
+#define LS_STATUSBAR_H 50
#define NAVIGATIONBAR_H 100
+#define PLAYVIEW_H_LANDSCAPE HD_MAIN_W
+#define PLAYVIEW_W_LANDSCAPE HD_MAIN_W
+#define PLAYVIEW_TITLE_H_LANDSCAPE 100
+#define PLAYVIEW_OPTION_H_LANDSCAPE 80
+#define PLAYVIEW_MENU_H_LANDSCAPE 96
+#define PLAYVIEW_CONTROLBAR_H_LANDSCAPE 128
+#define PLAYVIEW_CONTROLBAR_Y_LANDSCAPE (PLAYVIEW_H_LANDSCAPE-PLAYVIEW_CONTROLBAR_H_LANDSCAPE-LS_STATUSBAR_H)
+#define PLAYVIEW_PROGRESSBAR_H_LANDSCAPE 113
+#define PLAYVIEW_PROGRESSBAR_Y_LANDSCAPE (PLAYVIEW_CONTROLBAR_Y_LANDSCAPE-PLAYVIEW_PROGRESSBAR_H_LANDSCAPE-2)
+
+#define LRC_PROG \
+ program {\
+ signal: "lrc_invisible";\
+ source: "lrc";\
+ action: STATE_SET "default" 0.0;\
+ target: "lrc";\
+ transition: LINEAR 0.3;\
+ }\
+ program {\
+ signal: "lrc_visible";\
+ source: "lrc";\
+ action: STATE_SET "show" 0.0;\
+ target: "lrc";\
+ transition: LINEAR 0.3;\
+ }\
+ program {\
+ signal: "lrc_destroy";\
+ source: "lrc";\
+ action: STATE_SET "default" 0.0;\
+ target: "lrc";\
+ }
#define OPT_PROG \
program {\
transition: LINEAR 0.3;\
}
+#ifdef MP_3D_FEATURE
+group {
+ name: "mp_play_view_base";
+
+ parts {
+ part {
+ name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name : "now_playing";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0 0;
+ min: 0 100;
+ fixed: 0 1;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 0.0;}
+
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name : "content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ description {
+ state: "show" 0.0;
+ rel1 { relative: 0.0 1.0; to_y: "now_playing"; offset: 0 1;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+ }
+
+ programs {
+ program {
+ name : "show_now_playng";
+ signal : "SHOW_NOW_PLAING";
+ source : "music_app";
+ action : STATE_SET "show" 0.0;
+ target : "now_playing";
+ target : "content";
+ }
+ program {
+ name : "hide_now_playng";
+ signal : "HIDE_NOW_PLAING";
+ source : "music_app";
+ action : STATE_SET "default" 0.0;
+ target : "now_playing";
+ target : "content";
+ }
+ }
+}
+#endif
group {
name: "mp_play_view_layout";
-
+
parts {
- part {
+ part {
name: "bg";
mouse_events: 0;
type: RECT;
- description {
+ description {
state: "default" 0.0;
visible: 1;
rel1 { relative: 0.0 0.0;}
}
}
-
+
part{
name : "base";
type: RECT;
color: 0 0 0 0;
state: "default" 0.0;
rel1 { relative: 0.0 1.0; to: "player_options";}
- rel2 { relative: 1.0 1.0; to: "bg";}
+ rel2 { relative: 1.0 1.0/*(PLAYVIEW_OPTION_H+PLAYVIEW_ALBUM_H)/PLAYVIEW_OPTION_H*/; to: "bg";}
+ }
+ }
+
+ part {
+ name: "album_art_reflection_bg";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ image { normal: "T02_controls_bg_shadow.png"; }
+ rel1 { relative: 0.0 (PLAYVIEW_OPTION_H+PLAYVIEW_ALBUM_H)/PLAYVIEW_OPTION_H; to: "player_options";}
+ rel2 { relative: 1.0 1.0 ; to, "bg"; }
}
}
- part {
+ part {
name: "clipper";
mouse_events: 0;
type: RECT;
- description {
+ description {
state: "default" 0.0;
visible: 1;
rel1 { relative: 0.0 0.0;
color: 255 255 255 255;
}
}
-
+
part {
name : "list_content";
type: SWALLOW;
rel2 { relative: 2.0 1.0;to: "base";}
}
}
-
+
part {
name : "list_content_temp";
type: SWALLOW;
rel1 { relative: 1.0.0 0.0;to: "base";}
rel2 { relative: 2.0 1.0;to: "base";}
}
- }
-
+ }
+
part {
name: "elm.swallow.content.index";
type: SWALLOW;
}
}
- part {
+
+ //add by rocket.he for fixing CQ: H0100127628 Begin
+ part {
name: "main.mute.bg";
type: IMAGE;
mouse_events: 0;
}
description {
state: "show" 0.0;
- inherit: "default" 0.0;
+ inherit: "default" 0.0;
visible: 1;
- }
+ }
}
- part {
+ part {
name: "main.mute.image";
type: IMAGE;
mouse_events: 0;
}
description {
state: "show" 0.0;
- inherit: "default" 0.0;
+ inherit: "default" 0.0;
visible: 1;
- }
+ }
}
+ //add by rocket.he for fixing CQ: H0100127628 end
+ part {
+ name: "lrc";
+ type: SWALLOW;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: PLAYVIEW_LYRIC_SX PLAYVIEW_LYRIC_SY; offset: 0 -1; to: "bg";}
+ rel2 { relative: PLAYVIEW_LYRIC_EX PLAYVIEW_LYRIC_SY; offset: 0 -1; to: "bg";}
+ }
+ description {
+ state: "show" 0.0;
+ visible: 1;
+ rel1 { relative: PLAYVIEW_LYRIC_SX PLAYVIEW_LYRIC_SY; offset: 0 -1; to: "bg";}
+ rel2 { relative: PLAYVIEW_LYRIC_EX PLAYVIEW_LYRIC_EY; to: "bg";}
+ }
+ }
part {
name: "player_option_menu";
type: SWALLOW;
visible: 0;
}
}
-
+
part {
name: "player_progress";
type: SWALLOW;
color: ALBUMART_IMAGE_SHADOW_RGBA;
}
}
-
+
part {
name: "line1";
type: RECT;
color: 8 8 8 102;
}
}
-
+
part {
name: "line2";
type: RECT;
}
programs {
+ LRC_PROG
OPT_PROG
program { name: "flick_left";
signal: "flick_left";
target: "list_content";
}
program { name : "list_content_transit_done";
- signal: "transit_done";
+ signal: "transit_done";
source: "list_content";
- script {
- emit("transit_done", "list");
- }
- }
+ script {
+ emit("transit_done", "list");
+ }
+ }
program { name : "list_temp_transit_done";
- signal: "transit_done";
+ signal: "transit_done";
source: "list_content_temp";
- script {
- emit("transit_done", "temp");
- }
+ script {
+ emit("transit_done", "temp");
+ }
}
-
+
+ //add by rocket.he for fixing CQ: H0100127628 Begin
program {
signal: "signal.main.mute.show";
source: "*";
source: "*";
action: STATE_SET "default" 0.0;
target: "main.mute.image";
- target: "main.mute.bg";
+ target: "main.mute.bg";
}
- }
+ //add by rocket.he for fixing CQ: H0100127628 end
+
+ }
}
-
-
-
+
+
+
group { name : "mp_play_view";
images {
image: "T02_controls_bg_shadow.png" COMP;
image: "music_player_bg.PNG" COMP;
image: "music_popup_mute.png" COMP;
+ image: "allshare_dmr_icon.png" COMP;
}
parts {
part {
name: "bg";
type: SWALLOW;
+ scale: 1;
mouse_events: 0;
description {
state: "default" 0.0;
rel2 { relative: 1.0 1.0; }
}
}
-
+
part {
name: "album_bg";
type: SWALLOW;
mouse_events: 0;
+ scale: 1;
description {
state: "default" 0.0;
visible: 1;
rel1 { relative: 0.0 0.0; to: "bg";}
+ //rel2 { relative: 1.0 1.0; to: "bg";}
rel2 { relative: 1.0 PLAYVIEW_ALBUM_H/964; offset: 0 -2; to: "bg";}
}
}
name: "album_art";
type: SWALLOW;
mouse_events: 0;
+ scale: 1;
description {
state: "default" 0.0;
visible: 1;
rel1 { relative: 0.0 0.0; to: "album_bg"; }
+ //rel2 { relative: 1.0 1.0; to: "bg";}
rel2 { relative: 1.0 PLAYVIEW_ALBUM_H/964; offset: 0 -2; to: "bg";}
}
}
rel2 { relative: 1.0 1.0; to: "album_bg"; }
}
}
-
+
/* streaming buffering area */
part {
name: "buffering_area";
rel1 { relative: 1.0 1.0; to: "album_art"; }
rel2 { relative: 1.0 1.0; to: "album_art"; }
}
- }
+ }
+
+ /* allshare DMR icon */
+ part {
+ name: "dmr_icon";
+ type: IMAGE;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 60 80;
+ align: 0.0 1.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0; offset: 30 -10; to: "album_art"; }
+ rel2 { relative: 0.0 1.0; offset: 30 -10; to: "album_art"; }
+ image { normal: "allshare_dmr_icon.png"; }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+
}
programs {
+
+ /* allshare DMR icon */
+ program {
+ source: "dmr_icon";
+ signal: "mouse,clicked,1";
+ action: SIGNAL_EMIT "dmr_icon_clicked" "ctrl_edj";
+ }
+
+ program {
+ signal: "show_dmr_icon";
+ source: "*";
+ action: STATE_SET "show" 0.0;
+ target: "dmr_icon";
+ }
+
+ program {
+ signal: "hide_dmr_icon";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "dmr_icon";
+ }
}
}
#define TITLE_ARTIST 36
#define TITLE_ALBUM 34
#define TITLE_H (TITLE_PAD_T+TITLE_PAD_D+TITLE_NAME+TITLE_ARTIST+TITLE_ALBUM)
+#define BG_COLOR 236 240 242 255
#define BASE_SC_H (ALBUM_ART_H+TITLE_H)
group {
- name: "empty_layout";
+ name: "landscape_layout";
+ // min: MAIN_H MAIN_W;
parts {
-
- part { name: "bg";
- mouse_events: 0;
- type: RECT;
- description { state: "default" 0.0;
- visible: 1;
- rel1 { relative: 0.0 0.0;
- offset : 0 0;}
- rel2 { relative: 1.0 1.0;}
- color: 0 0 0 255;
- }
- }
- }
- }
- group {
- name: "player_view_info";
- min: 54 MAIN_W;
- parts {
-
- part { name: "bg";
- mouse_events: 0;
- type : RECT;
- description { state: "default" 0.0;
- visible: 1;
- rel1 { relative: 0.0 0.0;}
- rel2 { relative: 1.0 1.0;}
- color: 0 0 0 255;
+ part { name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;
+ offset : 0 0;}
+ rel2 { relative: 1.0 1.0;}
+ color: BG_COLOR;
+ }
}
- }
- part {
- name : "artist";
- type: TEXT;
+ part {
+ name : "list_content";
+ type: SWALLOW;
mouse_events: 1;
scale: 1;
description {
visible:1;
+ min: 100 100;
+ fixed: 1 1;
state: "default" 0.0;
- rel1 { relative: 0.0 0.0;to: "bg";}
- rel2 { relative: 1.0 20/54;to: "bg";}
- text {
- font: FONT_STYLE_ROMAN;
- size: 32;
- align: 0.5 0.5;
- }
- color: 18 131 183 255;
+ rel1 { relative: 0.0 0.0;to: "bg";}
+ rel2 { relative: 1.0 1.0;to: "bg";}
}
}
+
part {
- name : "album";
- type: TEXT;
- mouse_events: 1;
- scale: 1;
+ name: "elm.swallow.content.index";
+ type: SWALLOW;
description {
- visible:1;
state: "default" 0.0;
- rel1 { relative: 0.0 24/50;to: "bg";}
- rel2 { relative: 1.0 48/50;to: "bg";}
- text {
- font: FONT_STYLE_ROMAN;
- size: 32;
- align: 0.5 0.5;
- }
- color: 18 131 183 255;
+ rel1 { to: "list_content"; }
+ rel2 { to: "list_content"; }
+ }
+ }
+
+ part {
+ name : "elm.swallow.controlbar";
+ type: SWALLOW;
+ mouse_events:1;
+ scale : 1;
+ description {
+ visible:1;
+ //min: 0 65;
+ //max: 480 65;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 (PLAYVIEW_H_LANDSCAPE-PLAYVIEW_CONTROLBAR_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ rel2 { relative: 1.0 1.0;to: "bg";}
}
}
}
}
-
group {
- name: "player_view_options";
- min: 50 MAIN_W;
-
- images {
- image: "T02_OptionHeader_btn_press.png" COMP;
- }
+ name: "empty_layout";
parts {
-
+
part { name: "bg";
- mouse_events: 1;
+ mouse_events: 0;
type: RECT;
description { state: "default" 0.0;
visible: 1;
rel1 { relative: 0.0 0.0;
offset : 0 0;}
rel2 { relative: 1.0 1.0;}
- color: 53 53 53 255;
+ color: 0 0 0 255;
}
}
+ }
+ }
- part { name: "bottom_line";
+ group {
+ name: "landscape_playview_layout";
+ min: MAIN_W MAIN_W;
+ parts {
+
+ part { name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;
+ offset : 0 0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "clipper";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;
+ offset : 0 0; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name : "list_content";
+ type: SWALLOW;
mouse_events: 1;
- type: RECT;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 1;
+ scale: 1;
+ clip_to : "clipper";
+ description {
+ visible:1;
fixed: 1 1;
- rel1 { relative: 0.0 1.0;}
- rel2 { relative: 1.0 1.0;}
- color: 49 49 49 255;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;to: "bg";}
+ rel2 { relative: 1.0 1.0;to: "bg";}
+ }
+ description {
+ visible:0;
+ fixed: 1 1;
+ state: "invisible" 0.0;
+ rel1 { relative: 0.0 0.0;to: "bg";}
+ rel2 { relative: 1.0 1.0;to: "bg";}
+ }
+ description {
+ visible:1;
+ fixed: 1 1;
+ state: "left" 0.0;
+ rel1 { relative: -1.0 0.0;to: "bg";}
+ rel2 { relative: 0.0 1.0;to: "bg";}
+ }
+ description {
+ visible:1;
+ fixed: 1 1;
+ state: "right" 0.0;
+ rel1 { relative: 1.0.0 0.0;to: "bg";}
+ rel2 { relative: 2.0 1.0;to: "bg";}
}
}
-
part {
- name: "option_3_bg";
- type: RECT;
+ name : "list_content_temp";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ clip_to : "clipper";
+ description {
+ visible:1;
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;to: "bg";}
+ rel2 { relative: 1.0 1.0;to: "bg";}
+ }
+ description {
+ visible:0;
+ fixed: 1 1;
+ state: "invisible" 0.0;
+ rel1 { relative: 0.0 0.0;to: "bg";}
+ rel2 { relative: 1.0 1.0;to: "bg";}
+ }
+ description {
+ visible:1;
+ fixed: 1 1;
+ state: "left" 0.0;
+ rel1 { relative: -1.0 0.0;to: "bg";}
+ rel2 { relative: 0.0 1.0;to: "bg";}
+ }
+ description {
+ visible:1;
+ fixed: 1 1;
+ state: "right" 0.0;
+ rel1 { relative: 1.0.0 0.0;to: "bg";}
+ rel2 { relative: 2.0 1.0;to: "bg";}
+ }
+ }
+
+ part {
+ name: "player_title_bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 1.0; offset: 0 -415; to: "bg";}
+ rel2 { relative: 1.0 1.0; offset: 0 -389; to: "bg";}
+ color: 24 24 24 180;
+ }
+ }
+
+ part {
+ name: "player_title";
+ type: TEXT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to, "player_title_bg";}
+ rel2 { relative: 1.0 1.0; to, "player_title_bg";}
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: 20;
+ align: 0.5 0.5;
+ }
+ color: 215 215 215/*240 123 20*/ 255;
+ }
+ }
+
+ part{
+ name : "player_head";
+ type: SWALLOW;
+ mouse_events:1;
+ scale : 1;
+ description {
+ visible:1;
+ min: 0 NAVIGATIONBAR_H;
+ fixed: 1 1;
+ align: 0 0;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 1.0 0.0; to: "bg";}
+ }
+ }
+
+ part{
+ name: "top_line1";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.5*(720-688)/720 (NAVIGATIONBAR_H)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ rel2 { relative: 0.5*(720+688)/720 (NAVIGATIONBAR_H)/PLAYVIEW_H_LANDSCAPE; offset: 0 1; to: "bg";}
+ color: 8 8 8 102;
+ }
+ }
+ part {
+ name: "top_line2";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "top_line1";}
+ rel2 { relative: 1.0 1.0; offset: 0 1; to: "top_line1";}
+ color: 173 173 173 102;
+ }
+ }
+ part{
+ name : "player_clip";
+ type: RECT;
+ scale : 1;
+ description {
+ color: 255 255 255 255;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 (NAVIGATIONBAR_H)/PLAYVIEW_H_LANDSCAPE; offset: 0 2; to: "bg";}
+ rel2 { relative: 1.0 (NAVIGATIONBAR_H+PLAYVIEW_TITLE_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; offset: 0 2; to: "bg";}
+ }
+
+ }
+
+ part{
+ name : "player_info";
+ type: SWALLOW;
+ mouse_events:1;
+ scale : 1;
+ clip_to: "player_clip";
+ description {
+ visible:1;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "player_clip";}
+ rel2 { relative: 1.0 1.0; to: "player_clip";}
+ }
+ }
+
+ part{
+ name : "player_options";
+ type: SWALLOW;
+ mouse_events:1;
+ scale : 1;
+ description {
+ visible:1;
+ //min: 480 50;
+ color: 49 49 49 255;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 (NAVIGATIONBAR_H+PLAYVIEW_TITLE_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; offset: 0 2; to: "bg";}
+ rel2 { relative: 1.0 (NAVIGATIONBAR_H+PLAYVIEW_TITLE_H_LANDSCAPE+PLAYVIEW_OPTION_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; offset: 0 2; to: "bg";}
+ }
+ }
+
+ part {
+ name: "lrc";
+ type: SWALLOW;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 (NAVIGATIONBAR_H+PLAYVIEW_TITLE_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ rel2 { relative: 1.0 (NAVIGATIONBAR_H+PLAYVIEW_TITLE_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ }
+ description {
+ state: "show" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 (NAVIGATIONBAR_H+PLAYVIEW_TITLE_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ rel2 { relative: 1.0 0.0; to_x: "bg"; to_y: "player_option_menu";}
+ }
+ }
+ part {
+ name: "player_option_menu";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 (PLAYVIEW_H_LANDSCAPE-PLAYVIEW_CONTROLBAR_H_LANDSCAPE-PLAYVIEW_PROGRESSBAR_H_LANDSCAPE-96)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ rel2 { relative: 1.0 (PLAYVIEW_H_LANDSCAPE-PLAYVIEW_CONTROLBAR_H_LANDSCAPE-PLAYVIEW_PROGRESSBAR_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ }
+ description {
+ state: "invisible" 0.0;
+ rel1 { relative: 0.0 (PLAYVIEW_H_LANDSCAPE-PLAYVIEW_CONTROLBAR_H_LANDSCAPE-PLAYVIEW_PROGRESSBAR_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ rel2 { relative: 1.0 (PLAYVIEW_H_LANDSCAPE-PLAYVIEW_CONTROLBAR_H_LANDSCAPE-PLAYVIEW_PROGRESSBAR_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ }
+ description {
+ state: "invisible" 1.0;
+ inherit: "invisible" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "player_progress";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ //min: 480 79;
+ rel1 { relative: 0.0 (PLAYVIEW_H_LANDSCAPE-PLAYVIEW_CONTROLBAR_H_LANDSCAPE-PLAYVIEW_PROGRESSBAR_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ rel2 { relative: 1.0 (PLAYVIEW_H_LANDSCAPE-PLAYVIEW_CONTROLBAR_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ color: ALBUMART_IMAGE_SHADOW_RGBA;
+ }
+ }
+
+ part {
+ name : "elm.swallow.controlbar";
+ type: SWALLOW;
+ mouse_events:1;
+ scale : 1;
+ description {
+ visible:1;
+ //min: 0 85;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 (PLAYVIEW_H_LANDSCAPE-PLAYVIEW_CONTROLBAR_H_LANDSCAPE)/PLAYVIEW_H_LANDSCAPE; to: "bg";}
+ rel2 { relative: 1.0 1.0;to: "bg";}
+ }
+ }
+ }
+
+ programs {
+ LRC_PROG
+ OPT_PROG
+ program { name: "flick_left";
+ signal: "flick_left";
+ source: "list_content";
+ action: STATE_SET "left" 0.0;
+ target: "list_content";
+ transition: LINEAR 0.5;
+ }
+ program { name: "flick_right";
+ signal: "flick_right";
+ source: "list_content";
+ action: STATE_SET "right" 0.0;
+ target: "list_content";
+ transition: LINEAR 0.5;
+ }
+ program { name: "set_right";
+ signal: "set_right";
+ source: "list_content_temp";
+ action: STATE_SET "right" 0.0;
+ target: "list_content_temp";
+ }
+ program { name: "set_left";
+ signal: "set_left";
+ source: "list_content_temp";
+ action: STATE_SET "left" 0.0;
+ target: "list_content_temp";
+ }
+ program { name: "set_default";
+ signal: "set_default";
+ source: "list_content_temp";
+ action: STATE_SET "default" 0.0;
+ target: "list_content_temp";
+ transition: LINEAR 0.5;
+ after :"list_content_transit_done";
+ }
+ program { name: "set_default_list";
+ signal: "set_default";
+ source: "list_content";
+ action: STATE_SET "default" 0.0;
+ target: "list_content";
+ }
+ program { name : "list_content_transit_done";
+ signal: "transit_done";
+ source: "list_content";
+ script {
+ emit("transit_done", "list");
+ }
+ }
+ program { name : "list_temp_transit_done";
+ signal: "transit_done";
+ source: "list_content_temp";
+ script {
+ emit("transit_done", "temp");
+ }
+ }
+ }
+
+ }
+
+ group {
+ name: "player_view_info";
+ min: 54 MAIN_W;
+ parts {
+
+ part { name: "bg";
+ mouse_events: 0;
+ type : RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name : "artist";
+ type: TEXT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ visible:1;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;to: "bg";}
+ rel2 { relative: 1.0 20/54;to: "bg";}
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 32;
+ align: 0.5 0.5;
+ }
+ color: 18 131 183 255;
+ }
+ }
+ part {
+ name : "album";
+ type: TEXT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ visible:1;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 24/50;to: "bg";}
+ rel2 { relative: 1.0 48/50;to: "bg";}
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: 32;
+ align: 0.5 0.5;
+ }
+ color: 18 131 183 255;
+ }
+ }
+ }
+ }
+
+
+ group {
+ name: "player_view_options";
+ min: 50 MAIN_W;
+
+ images {
+ image: "T02_OptionHeader_btn_press.png" COMP;
+ }
+ parts {
+
+ part { name: "bg";
+ mouse_events: 1;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;
+ offset : 0 0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 53 53 53 255;
+ }
+ }
+
+ part { name: "bottom_line";
+ mouse_events: 1;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ min: 0 1;
+ fixed: 1 1;
+ rel1 { relative: 0.0 1.0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 49 49 49 255;
+ }
+ }
+
+ part {
+ name: "option_1_bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: OPTION_1_SX OPTION_SY; to: "bg";}
+ rel2 { relative: OPTION_1_EX OPTION_EY; to: "bg";}
+ color: 53 53 53 255;
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "option_1_press_bg";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ image { normal: "T02_OptionHeader_btn_press.png"; border: 3 3 1 1;}
+ rel1 { relative: 0.0 0.0; to: "option_1_bg";}
+ rel2 { relative: 1.0 1.0; to: "option_1_bg";}
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "option_1";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "option_1_bg";}
+ rel2 { relative: 1.0 1.0; to, "option_1_bg";}
+
+
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: 32;
+ align: 0.5 0.5;
+ text: "Share";
+ }
+ color: 249 249 249 255;
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default" 0.0;
+ color: 188 187 187 255;
+ }
+ }
+
+ part { name: "option_1_event_blocker";
+ type: RECT;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to, "option_1_bg";}
+ rel2 { relative: 1.0 1.0; to, "option_1_bg";}
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description { state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "option_2_bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: OPTION_2_SX OPTION_SY; to: "bg";}
+ rel2 { relative: OPTION_2_EX OPTION_EY; to: "bg";}
+ color: 53 53 53 255;
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "option_2_press_bg";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ image { normal: "T02_OptionHeader_btn_press.png"; border: 3 3 1 1;}
+ rel1 { relative: 0.0 0.0; to: "option_2_bg";}
+ rel2 { relative: 1.0 1.0; to: "option_2_bg";}
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "option_2";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "option_2_bg";}
+ rel2 { relative: 1.0 1.0; to, "option_2_bg";}
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: 32;
+ align: 0.5 0.5;
+ text: "Set";
+ }
+ color: 249 249 249 255;
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default" 0.0;
+ color: 188 187 187 255;
+ }
+ }
+
+ part { name: "option_2_event_blocker";
+ type: RECT;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to, "option_2_bg";}
+ rel2 { relative: 1.0 1.0; to, "option_2_bg";}
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description { state: "enabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "option_3_bg";
+ type: RECT;
mouse_events: 1;
description {
state: "default" 0.0;
rel1 { relative: OPTION_3_SX OPTION_SY; to: "bg";}
rel2 { relative: OPTION_3_EX OPTION_EY; to: "bg";}
color: 53 53 53 255;
- }description {
+ }description {
state: "press" 0.0;
inherit: "default" 0.0;
visible: 0;
description {
state: "default" 0.0;
visible: 0;
- image { normal: "T02_OptionHeader_btn_press.png"; }
+ image { normal: "T02_OptionHeader_btn_press.png"; border: 3 3 1 1;}
rel1 { relative: 0.0 0.0; to: "option_3_bg";}
rel2 { relative: 1.0 1.0; to: "option_3_bg";}
}
- description {
+ description {
state: "press" 0.0;
inherit: "default" 0.0;
- image { normal: "T02_OptionHeader_btn_press.png"; }
visible: 1;
}
}
}
color: 249 249 249 255;
}
- description {
+ description {
+ state: "press" 0.0;
+ inherit: "default" 0.0;
+ color: 188 187 187 255;
+ }
+ }
+#ifdef MP_FEATURE_INNER_SETTINGS
+ part { name: "option_4_bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: OPTION_4_SX OPTION_SY; to: "bg";}
+ rel2 { relative: OPTION_4_EX OPTION_EY; to: "bg";}
+ color: 53 53 53 255;
+ }description {
+ state: "press" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "option_4_press_bg";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ image { normal: "T02_OptionHeader_btn_press.png"; border: 3 3 1 1;}
+ rel1 { relative: 0.0 0.0; to: "option_4_bg";}
+ rel2 { relative: 1.0 1.0; to: "option_4_bg";}
+ }
+ description {
+ state: "press" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "option_4";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "option_4_bg";}
+ rel2 { relative: 1.0 1.0; to, "option_4_bg";}
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: 32;
+ align: 0.5 0.5;
+ text: "Settings";
+ }
+ color: 249 249 249 255;
+ }
+ description {
state: "press" 0.0;
inherit: "default" 0.0;
color: 188 187 187 255;
}
}
+#endif
}
programs {
program {
+ name: "option_1_down";
+ source: "option_1_bg";
+ signal: "mouse,down,1";
+ action: STATE_SET "press" 0.0;
+ target: "option_1";
+ target: "option_1_press_bg";
+ }
+
+ program {
+ name: "option_1_up";
+ source: "option_1_bg";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "option_1";
+ target: "option_1_press_bg";
+ }
+
+ program {
+ name: "option_1_clicked";
+ source: "option_1_bg";
+ signal: "mouse,clicked,1";
+ action: SIGNAL_EMIT "option_1_clicked" 0.0;
+ }
+
+ program {
+ name: "option_2_down";
+ source: "option_2_bg";
+ signal: "mouse,down,1";
+ action: STATE_SET "press" 0.0;
+ target: "option_2";
+ target: "option_2_press_bg";
+ }
+
+ program {
+ name: "option_2_up";
+ source: "option_2_bg";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "option_2";
+ target: "option_2_press_bg";
+ }
+
+ program {
+ name: "option_2_clicked";
+ source: "option_2_bg";
+ signal: "mouse,clicked,1";
+ action: SIGNAL_EMIT "option_2_clicked" 0.0;
+ }
+
+ program {
name: "option_3_down";
source: "option_3_bg";
signal: "mouse,down,1";
target: "option_3";
target: "option_3_press_bg";
}
-
+
program {
name: "option_3_up";
source: "option_3_bg";
target: "option_3";
target: "option_3_press_bg";
}
-
+
program {
name: "option_3_clicked";
source: "option_3_bg";
signal: "mouse,clicked,1";
action: SIGNAL_EMIT "option_3_clicked" 0.0;
}
+#ifdef MP_FEATURE_INNER_SETTINGS
+ program {
+ name: "option_4_down";
+ source: "option_4_bg";
+ signal: "mouse,down,1";
+ action: STATE_SET "press" 0.0;
+ target: "option_4";
+ target: "option_4_press_bg";
+ }
+
+ program {
+ name: "option_4_up";
+ source: "option_4_bg";
+ signal: "mouse,up,1";
+ action: STATE_SET "default" 0.0;
+ target: "option_4";
+ target: "option_4_press_bg";
+ }
+
+ program {
+ name: "option_4_clicked";
+ source: "option_4_bg";
+ signal: "mouse,clicked,1";
+ action: SIGNAL_EMIT "option_4_clicked" 0.0;
+ }
+#endif
+ program { name: "pgm_disale_option";
+ source: "*";
+ signal: "sig_disable_option_btn";
+ script {
+ set_state(PART:"option_1", "press", 0.0);
+ set_state(PART:"option_1_event_blocker", "enabled", 0.0);
+
+ set_state(PART:"option_2", "press", 0.0);
+ set_state(PART:"option_2_event_blocker", "enabled", 0.0);
+ }
+ }
+
+ program { name: "pgm_enable_option";
+ source: "*";
+ signal: "sig_enable_option_btn";
+ script {
+ set_state(PART:"option_1", "default", 0.0);
+ set_state(PART:"option_1_event_blocker", "default", 0.0);
+
+ set_state(PART:"option_2", "default", 0.0);
+ set_state(PART:"option_2_event_blocker", "default", 0.0);
+ }
+ }
}
}
-
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
group { name: "elm/progressbar/horizontal/music/list_progress";
images {
mouse_events: 0;
scale: 1;
clip_to: "progress-rect";
+ //effect: SOFT_SHADOW;
scale: 0;
description { state: "default" 0.0;
align: 0.0 0.0;
program { name: "start_pulse";
signal: "elm,state,pulse,start";
source: "elm";
+ // after: "slide_to_end";
}
program { name: "stop_pulse";
signal: "elm,state,pulse,stop";
target: "slide_to_begin";
target: "slide_to_end";
target: "start_pulse";
+ //after: "state_pulse";
}
program { name: "state_pulse";
signal: "elm,state,pulse";
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
-
#ifndef FONT_NAME
#define FONT_NAME "system_content"
#endif
#define FONT_NAME "system_content"
#endif
+#define RICHINFO_TITLE_X_PAD_W 15
+#define RICHINFO_RELATED_VIDEO_FONT_SIZE 24
+#define RICHINFO_TOP_PAD_H 10
+
#define TITLE_TEXT_01_SIZE 38
-#define TITLE_TEXT_01_COLOR 255 255 255 255
+#define TITLE_TEXT_01_COLOR 0 0 0 255
#define MAIN_TEXT_01_SIZE 32
#define MAIN_TEXT_01_COLOR 255 255 255 255
#define SUB_TEXT_01_SIZE 36
-#define SUB_TEXT_01_COLOR 166 166 166 255
+#define SUB_TEXT_01_COLOR 114 114 114 255
#define RICH_INFO_WIDTH 720.0
#define RICH_INFO_HEIGHT 1130.0
+//left area
#define RICH_INFO_ALBUM_WIDTH 138.0
#define RICH_INFO_ALBUM_HEIGHT 138.0
#define RICH_INFO_GAB 16.0
#define RICH_INFO_LEFT_WIDTH 170
+
+//right area
+#define RICH_INFO_RELATED_VIDEO_TITLE_WIDTH 266.0
+#define RICH_INFO_RELATED_VIDEO_LINE_HEIGHT 213
+#define RICH_INFO_RELATED_VIDEO_HEIGHT 282
+
#define RICH_INFO_RIGHT_WIDTH 550
+#define RICH_INFO_RELATED_VIDEO_DETAIL_TITLE 43
+
#define RICH_INFO_BASE_BOX_DETAIL_TITLE 60
#define RICH_INFO_SEQ_TEXT_SIZE 24
#define RICH_INFO_NO_XML_FIND_TAG_HEIGHT 112
#define RICH_INFO_BIO_ALBUM_WIDTH 528
#define RICH_INFO_BIO_ALBUM_HEIGHT 370
-#define MP_INFO_BG_COLOR 37 37 37 255;
+#define MP_INFO_BG_COLOR 255 255 255 255;
#define RICH_INFO_TITLE_FONT_SIZE 38
#define BOTTOM_LINE_COLOR 82 82 82 255
}
}
+//for info view
group{
- name: "richinfo/base_layout";
+ name: "richinfo/test_rich_info";
parts {
part { name: "bg";
}
part { name: "detail_event_box";
- type : SWALLOW;
- mouse_events: 1;
- scale: 1;
- description { state: "default" 0.0;
- visible: 1;
- rel1 { relative: 0.0 0.0; to, "bg"; }
- rel2 { relative: 1.0 1.0; to, "bg"; }
- }
- }
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "bg"; }
+ rel2 { relative: 1.0 1.0; to, "bg"; }
+ }
+ }
+ ///left area
part {
name: "left_area";
type : SWALLOW;
}
}
+ /////right area
+ //for base box
BASE_BOX_PART("base_box")
+
+ //for base box datail
+ BASE_BOX_DETAIL_PART("rv_base_box_detail")
+ BASE_BOX_DETAIL_PART("track_base_box_detail")
+ BASE_BOX_DETAIL_PART("review_base_box_detail")
+ BASE_BOX_DETAIL_PART("bio_base_box_detail")
+ BASE_BOX_DETAIL_PART("dis_base_box_detail")
+ BASE_BOX_DETAIL_PART("credit_base_box_detail")
BASE_BOX_DETAIL_PART("mi_base_box_detail")
+
+ //for datail scroller
+ DETAIL_SCROLLER_PART("rv_detail_scroller", RICH_INFO_RELATED_VIDEO_DETAIL_TITLE)
+ DETAIL_SCROLLER_PART("track_detail_scroller", (RICH_INFO_BASE_BOX_DETAIL_TITLE*2+1))
+ DETAIL_SCROLLER_PART("review_detail_scroller", RICH_INFO_BASE_BOX_DETAIL_TITLE)
+ DETAIL_SCROLLER_PART("bio_detail_scroller", RICH_INFO_BASE_BOX_DETAIL_TITLE)
+ DETAIL_SCROLLER_PART("dis_detail_scroller", (RICH_INFO_BASE_BOX_DETAIL_TITLE+1))
+ DETAIL_SCROLLER_PART("credit_detail_scroller", RICH_INFO_BASE_BOX_DETAIL_TITLE)
DETAIL_SCROLLER_PART("mi_detail_scroller", RICH_INFO_BASE_BOX_DETAIL_TITLE)
+
BASE_BOX_SCROLLER_PART("no_xml_detail_scroller", RICH_INFO_NO_XML_FIND_TAG_HEIGHT)
BASE_BOX_SCROLLER_PART("no_xml_no_sim_detail_scroller", RICH_INFO_GAB)
+
BASE_BOX_SCROLLER_PART("contents", 0)
}
}
description { state: "default" 0.0;
visible: 1;
fixed: 1 0;
+ //min: (RICH_INFO_GAB*2+ RICH_INFO_ALBUM_WIDTH) 710;
rel1 { relative: 0.0 0.0; }
rel2 { relative: 1.0 1.0; }
color: MP_INFO_BG_COLOR
}
}
-/******************for media info detail view start****************************************/
+group {
+ name, "find_tag_bt";
+
+ images {
+ image: "01_search_input_icon_bg.png" COMP;
+ }
+
+ parts {
+ part { name, "background";
+ type, RECT;
+ mouse_events: 1;
+ description {
+ state, "default" 0.0;
+ color, 25 25 25 255;
+ }
+ }
+
+ part { name, "button_img";
+ type, IMAGE;
+ ignore_flags: ON_HOLD;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ //min: 45 45;
+ //max: 45 45;
+ image { normal: "01_search_input_icon_bg.png"; }
+ rel1 { relative: 0 26/112; offset: 0 0;}
+ rel2 { relative: 60/RICH_INFO_RIGHT_WIDTH 86/RICH_INFO_NO_XML_FIND_TAG_HEIGHT; offset: 0 0;}
+ }
+ }
+
+ part {
+ name: "txt";
+ scale: 1;
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 { relative, 86/RICH_INFO_RIGHT_WIDTH 32/RICH_INFO_NO_XML_FIND_TAG_HEIGHT; }
+ rel2 { relative, 1.0 80/RICH_INFO_NO_XML_FIND_TAG_HEIGHT; }
+ color: TITLE_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: TITLE_TEXT_01_SIZE;
+ align: 0 0.5;
+ text: "Category";
+ }
+ }
+ }
+
+ part { name, "bottom_line";
+ type, RECT;
+ mouse_events: 1;
+ description {
+ state, "default" 0.0;
+ color, BOTTOM_LINE_COLOR;
+ min: 0 1;
+ rel1 { relative: 0.0 1.0; offset: 0 -2;}
+ rel2 { relative: 1.0 1.0; offset: 0 -2;}
+ }
+ }
+
+ }
+
+ programs {
+ program {
+ name: "bg_clicked";
+ signal: "mouse,clicked,1";
+ source: "background";
+ action: SIGNAL_EMIT "btn_clicked" "0";
+ }
+ }
+}
+
group{
- name: "mi_base_box_detail";
+ name: "parent_base_box";
+
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ //min: RICH_INFO_RIGHT_WIDTH (RICH_INFO_RELATED_VIDEO_HEIGHT+RICH_INFO_GAB);
+ //max: RICH_INFO_RIGHT_WIDTH RICH_INFO_HEIGHT;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part {
+ name: "base_box";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0 0; offset: 0 0; to: "bg";}
+ rel2 { relative: 1 1; offset: 0 0; to: "bg";}
+ }
+ }
+
+ part {
+ name: "scroller";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ rel1 { relative: 0 0; offset: 0 0; to: "bg";}
+ rel2 { relative: 1 1; offset: 0 0; to: "bg";}
+ }
+ }
+ }
+}
+
+group{
+ name: "base_box";
+
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "no_rv_genlist";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0 0; offset: 0 0; to: "bg";}
+ rel2 { relative: 1 1; offset: 0 0; to: "bg";}
+ }
+ }
+
+ //for scroller
+ part {
+ name: "contents";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ min: 0 0;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 0.0; offset:0 0; to: "bg";}
+ rel2 { relative: 1.0 1.0; offset: 0 0; to: "bg";}
+ }
+ }
+ }
+
+}
+
+//for related video in first view
+#define RICH_INFO_RELATED_VIDEO_TITLE_W 266.0
+group{
+ name, "related_video_box";
+ images {
+ image: "00_list_bar_press_1x80.png" COMP;
+ image: "T02_youtube.png" COMP;
+ }
+ parts{
+
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "title";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 {relative: 0 (10/RICH_INFO_RELATED_VIDEO_HEIGHT); to: "bg";}
+ rel2 {
+ relative: (RICH_INFO_RELATED_VIDEO_TITLE_W/RICH_INFO_RIGHT_WIDTH) (58/RICH_INFO_RELATED_VIDEO_HEIGHT);
+ to: "bg" ;
+ }
+ color, TITLE_TEXT_01_COLOR;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: TITLE_TEXT_01_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "seperator";
+ type: RECT;
+ scale: 1;
+ description{
+ state: "default" 0.0;
+ min: 1 0;
+ rel1 { relative: 1 8/48; to: "title";}
+ rel2 { relative: 1 40/48; to: "title";}
+ color: 112 112 112 255;
+ }
+ }
+
+ part { name, "youtube_image";
+ type, IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ image { normal: "T02_youtube.png"; }
+ visible: 1;
+ align: 0 0.5;
+ min: 96 48;
+ max: 96 48;
+ rel1 { relative: 1 0; offset: 0 0; to_x: "seperator"; to_y: "title";}
+ rel2 { relative: 1 1; offset: 0 0; to_x: "seperator"; to_y: "title";}
+ }
+ }
+
+ part {
+ name: "video";
+ type: SWALLOW;
+ scale:1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ min: RICH_INFO_RIGHT_WIDTH RICH_INFO_RELATED_VIDEO_LINE_HEIGHT;
+ rel1 { relative: 0 1; offset: 0 0; to: "title";}
+ rel2 { relative: 1 1; offset: 0 0; to: "bg";}
+ }
+ }
+ }
+}
+
+#define RICH_INFO_RELATED_VIDEO_LINE_H 213
+#define RICH_INFO_RELATED_VIDEO_LINE_W RICH_INFO_RIGHT_WIDTH
+#define VIDEO_LINE_W_R(w) ((w)/RICH_INFO_RELATED_VIDEO_LINE_W)
+#define VIDEO_LINE_H_R(h) ((h)/RICH_INFO_RELATED_VIDEO_LINE_H)
+#define RICH_INFO_RELATED_VIDEO_IMAGE_W 162.0
+#define RICH_INFO_RELATED_VIDEO_IMAGE_H 129.0
+
+//for related video images by line
+group{
+ name, "related_video_line";
+
+ parts{
+ part { name, "bg";
+ type, RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state, "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 0 0 0;
+ }
+ }
+ part{name, "img_bg1";
+ type, RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state, "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0;
+ to, "bg";
+ }
+ rel2 { relative: VIDEO_LINE_W_R(RICH_INFO_RELATED_VIDEO_IMAGE_W) VIDEO_LINE_H_R(RICH_INFO_RELATED_VIDEO_IMAGE_H);
+ to, "bg";
+ }
+ color, 54 54 54 255;
+ align: 0 0.5;
+ }
+ }
+
+ part{name,"img1";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 1;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 0.0; offset: 0 0; to, "img_bg1"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "img_bg1"; }
+ align: 0.5 0.5;
+ }
+ }
+
+ part{ name, "title1";
+ type, TEXT;
+ scale: 1;
+ description {
+ state, "default" 0.0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 VIDEO_LINE_H_R(139);
+ to_x, "img_bg1"; to_y, "bg";
+ }
+ rel2 { relative: 1.0 VIDEO_LINE_H_R(167);
+ to_x, "img_bg1"; to_y, "bg";
+ }
+ color, 151 150 150 255;
+ text {
+ font: FONT_STYLE_ROMAN;
+ size: RICHINFO_RELATED_VIDEO_FONT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part{ name, "title12";
+ type, TEXT;
+ scale: 1;
+ description {
+ state, "default" 0.0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 VIDEO_LINE_H_R(173);
+ offset:0 0;
+ to_x, "title1";
+ to_y, "bg";
+ }
+ rel2 { relative: 1.0 VIDEO_LINE_H_R(201);
+ to_x, "title1";
+ to_y, "bg";
+ }
+ color, 151 150 150 255;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICHINFO_RELATED_VIDEO_FONT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part{name, "img_bg2";
+ type, RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state, "default" 0.0;
+ visible: 0;
+ rel1 { relative: VIDEO_LINE_W_R(184) 0.0;
+ offset: 0 0;
+ to_x, "bg"; to_y, "img_bg1";
+ }
+ rel2 { relative: VIDEO_LINE_W_R(346) 1.0;
+ offset: 0 0;
+ to_x, "bg"; to_y, "img_bg1";
+ }
+ color, 54 54 54 255;
+ align: 0 0.5;
+ }
+ }
+
+ part{name,"img2";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 1;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 0.0; offset: 0 0; to, "img_bg2"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "img_bg2"; }
+ align: 0.5 0.5;
+ //fixed: 1 1;
+ }
+ }
+
+ part{ name, "title2";
+ type, TEXT;
+ scale: 1;
+ description {
+ state, "default" 0.0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;
+ to_x, "img_bg2";
+ to_y, "title1";
+ }
+ rel2 { relative: 1.0 1.0;
+ to_x, "img_bg2";
+ to_y, "title1";
+ }
+ color, 151 150 150 255;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICHINFO_RELATED_VIDEO_FONT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part{ name, "title22";
+ type, TEXT;
+ scale: 1;
+ description {
+ state, "default" 0.0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;
+ offset:0 0;
+ to_x, "title2";
+ to_y, "title12";
+
+ }
+ rel2 { relative: 1.0 1.0;
+ offset:0 0;
+ to, "title2";
+ to_y, "title12";
+ }
+ color, 151 150 150 255;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICHINFO_RELATED_VIDEO_FONT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part{name, "img_bg3";
+ type, RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state, "default" 0.0;
+ visible: 0;
+ rel1 { relative: VIDEO_LINE_W_R(368) 0.0;
+ offset: 0 0;
+ to_x, "bg"; to_y, "img_bg1";
+ }
+ rel2 { relative: VIDEO_LINE_W_R(530) 1.0;
+ offset: 0 0;
+ to_x, "bg"; to_y, "img_bg1";
+ }
+ color, 54 54 54 255;
+ align: 0 0.5;
+ }
+ }
+
+ part{name,"img3";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 1;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 0.0; offset: 0 0; to, "img_bg3"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "img_bg3"; }
+ align: 0.5 0.5;
+ //fixed: 1 1;
+ }
+ }
+
+ part{ name, "title3";
+ type, TEXT;
+ scale: 1;
+ description {
+ state, "default" 0.0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;
+ offset:0 0;
+ to_x, "img_bg3";
+ to_y, "title1";
+ }
+ rel2 { relative: 1.0 1.0;
+ offset:0 0;
+ to_x, "img_bg3";
+ to_y, "title1";
+ }
+ color, 151 150 150 255;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICHINFO_RELATED_VIDEO_FONT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part{ name, "title32";
+ type, TEXT;
+ scale: 1;
+ description {
+ state, "default" 0.0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;
+ offset:0 0;
+ to_x, "title3";
+ to_y, "title12";
+ }
+ rel2 { relative: 1.0 1.0;
+ offset:0 0;
+ to_x, "title3";
+ to_y, "title12";
+ }
+ color, 151 150 150 255;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICHINFO_RELATED_VIDEO_FONT_SIZE;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ programs{
+ program {
+ name: "clicked";
+ signal: "mouse,clicked,1";
+ //source: "img_bg1";
+ source: "img1";
+ action: SIGNAL_EMIT "related.video.clicked" "0";
+ }
+ program {
+ name: "clicked1";
+ signal: "mouse,clicked,1";
+ //source: "img_bg2";
+ source: "img2";
+ action: SIGNAL_EMIT "related.video.clicked" "1";
+ }
+ program {
+ name: "clicked2";
+ signal: "mouse,clicked,1";
+ //source: "img_bg3";
+ source: "img3";
+ action: SIGNAL_EMIT "related.video.clicked" "2";
+ }
+ }
+
+ }//parts
+
+}//group
+
+
+/******************for related video detail view start****************************************/
+group{
+ name: "rv_base_box_detail";
+ images {
+ image: "T02_youtube.png" COMP;
+ }
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part{ name, "title";
+ type, TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ align: 0 0;
+ rel1 { //relative: 0 (RICH_INFO_GAB/RICH_INFO_HEIGHT);
+ relative: 0 0;
+ offset: 0 0;
+ to: "bg";
+ }
+ rel2 { relative: (RICH_INFO_RELATED_VIDEO_TITLE_WIDTH/RICH_INFO_RIGHT_WIDTH) (70/RICH_INFO_HEIGHT);
+ offset: 0 0;
+ to: "bg";
+ }
+ color, TITLE_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICH_INFO_TITLE_FONT_SIZE;
+ align: 0 0.5;
+ text: "Music";
+ }
+ }
+ }
+
+ part { name, "youtube_image";
+ type, IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ image { normal: "T02_youtube.png"; }
+ visible: 1;
+ align: 0 0.5;
+ min: 96 48;
+ max: 96 48;
+ rel1 { relative: 1 0; offset: 0 0; to_x: "title"; to_y: "title";}
+ rel2 { relative: 1 1; offset: 0 0; to_x: "title"; to_y: "title";}
+ }
+ }
+
+ part{name,"rv_content";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to, "title"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ align: 0 0;
+ fixed: 0 0;
+ }
+ }
+
+
+ //for scroller
+ part {
+ name: "rv_scroller";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0 0;
+ fixed: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to, "title"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ }
+ }
+ }
+}
+
+
+/******************for related video detail view end****************************************/
+
+/******************for track list detail view start****************************************/
+#define RICH_INFO_STARS_BG_W 208
+#define RICH_INFO_STARS_BG_H 48
+#define RICH_INFO_STARS_W_H 32
+#define RICH_INFO_STARS_GAP 4
+#define RICH_INFO_STARS_SX(pos) (16+(RICH_INFO_STARS_W_H+RICH_INFO_STARS_GAP)*pos)
+#define RICH_INFO_STARS_EX(pos) (16+(RICH_INFO_STARS_W_H+RICH_INFO_STARS_GAP)*pos+RICH_INFO_STARS_W_H)
+group{
+ name: "track_base_box_detail";
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part{ name, "title";
+ type, TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ align: 0 0;
+ rel1 { relative: 0 10/RICH_INFO_HEIGHT; to: "bg";}
+ rel2 { relative: 1 (58/RICH_INFO_HEIGHT); to: "bg";}
+ color, TITLE_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICH_INFO_TITLE_FONT_SIZE;
+ align: 0 0.5;
+ }
+ }
+ }
+
+ part{ name, "artist_name";
+ type, TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+
+ align: 0 0;
+ rel1 { relative: 0 64/RICH_INFO_HEIGHT; offset: 0 0; }
+ rel2 { relative: 0.0 112/RICH_INFO_HEIGHT; offset: 0 0; to_x: "star_bg";}
+ color, SUB_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICH_INFO_TITLE_FONT_SIZE;
+ align: 0 0.5;
+ }
+ }
+ }
+
+ part{
+ name, "star_bg";
+ type, RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ align: 0 0;
+ rel1 { relative: (RICH_INFO_RIGHT_WIDTH -RICH_INFO_STARS_BG_W)/RICH_INFO_RIGHT_WIDTH 0.0; to_y, "artist_name";}
+ rel2 { relative: 1.0 1.0; to_y, "artist_name";}
+ color: 0 0 0 0 ;
+ }
+ }
+
+ part{name,"stars";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 1 0.5;
+ rel1 { relative: 16/RICH_INFO_STARS_BG_W 8/RICH_INFO_STARS_BG_H;
+ to, "star_bg";
+ }
+ rel2 { relative: (RICH_INFO_STARS_BG_W-16)/RICH_INFO_STARS_BG_W (40/RICH_INFO_STARS_BG_H);
+ to, "star_bg";
+ }
+ }
+ }
+
+ part{name,"star1";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(0)/RICH_INFO_STARS_BG_W 0.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(0)/RICH_INFO_STARS_BG_W 1.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ }
+ }
+
+ part{name,"star2";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(1)/RICH_INFO_STARS_BG_W 0.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(1)/RICH_INFO_STARS_BG_W 1.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ }
+ }
+
+ part{name,"star3";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(2)/RICH_INFO_STARS_BG_W 0.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(2)/RICH_INFO_STARS_BG_W 1.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ }
+ }
+
+ part{name,"star4";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(3)/RICH_INFO_STARS_BG_W 0.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(3)/RICH_INFO_STARS_BG_W 1.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ }
+ }
+
+ part{name,"star5";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ align: 0 0.5;
+ rel1 { relative: RICH_INFO_STARS_SX(4)/RICH_INFO_STARS_BG_W 0.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ rel2 { relative: RICH_INFO_STARS_EX(4)/RICH_INFO_STARS_BG_W 1.0;
+ to_x, "star_bg";
+ to_y, "stars";
+ }
+ }
+ }
+
+ part {
+ name: "top_tap_line";
+ type: RECT;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ align: 0 0;
+ rel1 { relative: 0 122/RICH_INFO_HEIGHT; to: "bg";}
+ rel2 { relative: 1 124/RICH_INFO_HEIGHT); to: "bg";}
+ color: BOTTOM_LINE_COLOR;
+ }
+ }
+
+ part{name,"track_genlist";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to, "top_tap_line"; }
+ align: 0 0;
+ }
+ }
+
+ //for scroller
+ part {
+ name: "track_scroller";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to: "top_tap_line";}
+ rel2 { relative: 1.0 1.0; offset: 0 0; to: "bg";}
+ }
+ }
+ }
+}
+/******************for track list detail view end****************************************/
+
+/******************for discography detail view start****************************************/
+#define RICH_INFO_INTERVAL 0
+group{
+ name: "dis_base_box_detail";
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part { name: "detail_event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "bg"; }
+ rel2 { relative: 1.0 1.0; to, "bg"; }
+ }
+ }
+
+ part{ name, "title";
+ type, TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ align: 0 0;
+ rel1 { relative: 0 0; offset: 0 0; to: "bg";}
+ rel2 { relative: 1 (RICH_INFO_BASE_BOX_DETAIL_TITLE/RICH_INFO_HEIGHT); to: "bg";}
+ color, TITLE_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICH_INFO_TITLE_FONT_SIZE;
+ align: 0 0.5;
+ text: "Music";
+ }
+ }
+ }
+
+ part {
+ name: "top_tap_line";
+ type: RECT;
+ description { state: "default" 0;
+ min: 0 1;
+ rel1 {
+ relative: 0 1.0;
+ to: "title" ;
+ }
+ rel2 {
+ relative: 1 1.0;
+ to: "title" ;
+ }
+ color: BOTTOM_LINE_COLOR;
+ }
+ }
+
+ //for scroller
+ part {
+ name: "dis_scroller";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to: "top_tap_line";}
+ rel2 { relative: 1.0 1.0; offset: 0 0; to: "bg";}
+ }
+ }
+ }
+}
+
+
+/******************for discography detail view end****************************************/
+
+/******************for review detail view start****************************************/
+group{
+ name: "review_base_box_detail";
+ images {
+ image: "rich_info/12_music_player_bg_01.PNG" COMP;
+ image: "12_music_playing_bg.png" COMP;
+ }
+
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ // min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part { name: "detail_event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "bg"; }
+ rel2 { relative: 1.0 1.0; to, "bg"; }
+ }
+ }
+
+ part{ name, "title";
+ type, TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ align: 0 0;
+ rel1 { relative: 0 0; offset: 0 0; to: "bg";}
+ rel2 { relative: 1 (RICH_INFO_BASE_BOX_DETAIL_TITLE/RICH_INFO_HEIGHT); offset: 0 0; to: "bg";}
+ color, TITLE_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICH_INFO_TITLE_FONT_SIZE;
+ align: 0 0.5;
+ text: "Music";
+ }
+ }
+ }
+
+ part{name,"review_content";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to, "title"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ align: 0 0;
+ fixed: 0 0;
+ }
+ }
+ //for scroller
+ part {
+ name: "review_scroller";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to, "title"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ }
+ }
+ }
+}
+
+group{
+ name: "review_content";
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ //min: RICH_INFO_RIGHT_WIDTH 100;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part{name,"review_image";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 0.0; offset: 0 0; to, "bg"; }
+ rel2 { relative: 1.0 0.0; offset: 0 100; to, "bg"; }
+ align: 0.5 0.5;
+ fixed: 0 0;
+ }
+ }
+ //for label
+ part {
+ name: "review_label";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 0 0;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to: "review_image";}
+ rel2 { relative: 1.0 1.0; offset: 0 0; to: "bg";}
+ }
+ }
+ }
+}
+
+/******************for review detail view end****************************************/
+
+/******************for biography detail view start****************************************/
+group{
+ name: "bio_base_box_detail";
+ images {
+ image: "rich_info/12_music_player_bg_01.PNG" COMP;
+ image: "12_music_playing_bg.png" COMP;
+ }
+
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part { name: "detail_event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "bg"; }
+ rel2 { relative: 1.0 1.0; to, "bg"; }
+ }
+ }
+
+ part{ name, "title";
+ type, TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ align: 0 0;
+ rel1 { relative: 0 0; offset: 0 0; to: "bg";}
+ rel2 { relative: 1 (RICH_INFO_BASE_BOX_DETAIL_TITLE/RICH_INFO_HEIGHT); offset: 0 0; to: "bg";}
+ color, TITLE_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICH_INFO_TITLE_FONT_SIZE;
+ align: 0 0.5;
+ text: "Music";
+ }
+ }
+ }
+
+ part{name,"bio_content";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to, "title"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ align: 0 0;
+ fixed: 0 0;
+ }
+ }
+ //for scroller
+ part {
+ name: "bio_scroller";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to, "title"; }
+ //rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ }
+ }
+ }
+}
+
+group{
+ name: "bio_content";
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 0 0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part{name,"bio_image";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0/RICH_INFO_RIGHT_WIDTH 0/1280; offset: 0 0; to, "bg"; }
+ rel2 { relative: ((RICH_INFO_BIO_ALBUM_WIDTH)/RICH_INFO_RIGHT_WIDTH) ((RICH_INFO_BIO_ALBUM_HEIGHT)/(RICH_INFO_HEIGHT - RICH_INFO_BASE_BOX_DETAIL_TITLE)); offset: 0 0; to, "bg"; }
+ align: 0.5 0.5;
+ }
+ }
+ //for label
+ part {
+ name: "bio_label";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 0 0;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to_x: "bg"; to_y: "bio_image";}
+ }
+ }
+ }
+}
+
+group {
+ name: "bio_image";
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 0 0;
+ min: RICH_INFO_BIO_ALBUM_WIDTH RICH_INFO_BIO_ALBUM_HEIGHT;
+ max: RICH_INFO_BIO_ALBUM_WIDTH RICH_INFO_BIO_ALBUM_HEIGHT;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part{name,"image";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 0.0; offset: 0 0; to, "bg"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ }
+ }
+ }
+}
+
+/******************for biography detail view end****************************************/
+
+
+/******************for simlar albums detail view start****************************************/
+group{
+ name: "sal_base_box_detail";
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part { name: "detail_event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "bg"; }
+ rel2 { relative: 1.0 1.0; to, "bg"; }
+ }
+ }
+
+ part{ name, "title";
+ type, TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ align: 0 0;
+ rel1 { relative: 0 0; offset: 0 0; to: "bg";}
+ rel2 { relative: 1 (RICH_INFO_BASE_BOX_DETAIL_TITLE/RICH_INFO_HEIGHT); to: "bg";}
+ color, TITLE_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICH_INFO_TITLE_FONT_SIZE;
+ align: 0 0.5;
+ text: "Music";
+ }
+ }
+ }
+
+ part {
+ name: "top_tap_line";
+ type: RECT;
+ description { state: "default" 0;
+ min: 0 1;
+ rel1 {
+ relative: 0 1.0;
+ to: "title" ;
+ }
+ rel2 {
+ relative: 1 1.0;
+ to: "title" ;
+ }
+ color: BOTTOM_LINE_COLOR;
+ }
+ }
+
+ //for scroller
+ part {
+ name: "dis_scroller";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to: "top_tap_line";}
+ rel2 { relative: 1.0 1.0; offset: 0 0; to: "bg";}
+ }
+ }
+ }
+}
+
+/******************for simlar albums detail view end****************************************/
+
+/******************for simlar artists detail view start****************************************/
+group{
+ name: "sar_base_box_detail";
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part { name: "detail_event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "bg"; }
+ rel2 { relative: 1.0 1.0; to, "bg"; }
+ }
+ }
+
+ part{ name, "title";
+ type, TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ align: 0 0;
+ rel1 { relative: 0 0; offset: 0 0; to: "bg";}
+ rel2 { relative: 1 (RICH_INFO_BASE_BOX_DETAIL_TITLE/RICH_INFO_HEIGHT); to: "bg";}
+ color, TITLE_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICH_INFO_TITLE_FONT_SIZE;
+ align: 0 0.5;
+ text: "Music";
+ }
+ }
+ }
+
+ part {
+ name: "top_tap_line";
+ type: RECT;
+ description { state: "default" 0;
+ min: 0 1;
+ rel1 {
+ relative: 0 1.0;
+ to: "title" ;
+ }
+ rel2 {
+ relative: 1 1.0;
+ to: "title" ;
+ }
+ color: BOTTOM_LINE_COLOR;
+ }
+ }
+
+ //for scroller
+ part {
+ name: "dis_scroller";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to: "top_tap_line";}
+ rel2 { relative: 1.0 1.0; offset: 0 0; to: "bg";}
+ }
+ }
+ }
+}
+
+/******************for simlar artists detail view end****************************************/
+
+/******************for credit detail view start****************************************/
+group{
+ name: "credit_base_box_detail";
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 0;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part { name: "detail_event_box";
+ type : SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to, "bg"; }
+ rel2 { relative: 1.0 1.0; to, "bg"; }
+ }
+ }
+
+ part{ name, "title";
+ type, TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state, "default" 0.0;
+ fixed: 1 1;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
+ align: 0 0;
+ rel1 { relative: 0 0; offset: 0 0; to: "bg";}
+ rel2 { relative: 1 (RICH_INFO_BASE_BOX_DETAIL_TITLE/RICH_INFO_HEIGHT); offset: 0 0; to: "bg";}
+ color, TITLE_TEXT_01_COLOR;
+
+ text {
+ font: FONT_STYLE_MEDIUM;
+ size: RICH_INFO_TITLE_FONT_SIZE;
+ align: 0 0.5;
+ text: "Music";
+ }
+ }
+ }
+
+ part{name,"credit_content";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to, "title"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ align: 0 0;
+ fixed: 0 0;
+ }
+ }
+
+ //for scroller
+ part {
+ name: "credit_scroller";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; offset: 0 0; to, "title"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ }
+ }
+ }
+}
+
+group{
+ name: "info_content";
+
+ parts{
+ part { name: "bg";
+ type : RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: MP_INFO_BG_COLOR
+ }
+ }
+
+ part{name,"content";
+ type,SWALLOW;
+ scale:1;
+ mouse_events: 0;
+ description{
+ state, "default" 0.0;
+ rel1 { relative: 0.0 0.0; offset: 0 0; to, "bg"; }
+ rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
+ align: 0 0;
+ fixed: 0 0;
+ }
+ }
+ }
+}
+/******************for credit detail view end****************************************/
+
+/******************for media info detail view start****************************************/
+group{
+ name: "mi_base_box_detail";
+ images {
+ image: "rich_info/12_music_player_bg_01.PNG" COMP;
+ image: "12_music_playing_bg.png" COMP;
+ }
+
parts{
part { name: "bg";
type : RECT;
description { state: "default" 0.0;
visible: 1;
fixed: 1 0;
+ //min: RICH_INFO_RIGHT_WIDTH RICH_INFO_BASE_BOX_DETAIL_TITLE;
rel1 { relative: 0.0 0.0; }
rel2 { relative: 1.0 1.0; }
color: MP_INFO_BG_COLOR
fixed: 0 0;
}
}
-
+ //for scroller
part {
name: "mi_scroller";
type: SWALLOW;
scale: 1;
description { state: "default" 0.0;
visible: 1;
+ //fixed: 0 1;
align: 0 0;
rel1 { relative: 0.0 1.0; offset: 0 0; to, "title"; }
rel2 { relative: 1.0 1.0; offset: 0 0; to, "bg"; }
-/*
- * Copyright 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://www.tizenopensource.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.
- */
+#define SELECTION_INFO_BACKGROUND_COLOR_INC 215 225 232 255
+#define SELECTION_INFO_TEXT_COLOR_INC 77 77 77 255
-#define SELECTION_INFO_BACKGROUND_COLOR_INC 69 90 131 255
-#define SELECTION_INFO_TEXT_COLOR_INC 255 255 255 255
-
+#define SELECTION_INFO_MIN_PLAYVIEW_HORZ_W_INC 634
#define SELECTION_INFO_MIN_VER_W_INC 720
#define SELECTION_INFO_MIN_HORZ_W_INC 1280
#define SELECTION_INFO_VER_PADDING_INC 48
}
}
+group { name: "elm/standard/selectioninfo/music/playview_landscape/bottom_64";
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ scale : 1;
+ description {
+ state: "default" 0.0;
+ min: SELECTION_INFO_MIN_PLAYVIEW_HORZ_W_INC SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1.relative: 0.5 1.0;
+ rel2.relative: 0.5 1.0;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "base";
+ type: RECT;
+ mouse_events: 1;
+ scale : 1;
+ description {
+ state: "default" 0.0;
+ min: 0 SELECTION_INFO_VER_PADDING_INC;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg"; }
+ rel2 { relative: 1.0 0.32; to: "bg"; }
+ color: SELECTION_INFO_BACKGROUND_COLOR_INC;
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.0;
+ rel1 { to: "base"; }
+ rel2 { to: "base"; }
+ color: SELECTION_INFO_TEXT_COLOR_INC;
+ text {
+ font: "SLP";
+ size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
+ text: "";
+ }
+ }
+ }
+ }
+ programs {
+ program {
+ name: "clicked";
+ signal: "mouse,clicked,1";
+ source: "base";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ }
+}
+
--- /dev/null
+#define NOW_PLAYING_H 100
+#define GRID_BG_COLOR 0 0 135 255
+#define GRID_TITLE_COLOR 61 64 67 255
+#define GRID_TITLE_SIZE 28
+#define GRID_H 656
+#define GRID_HALF_H 328
+#define GRID_TITLE_H 38
+#define GRID_MAIN_W 720
+
+group {
+ name: "mp_square_view_split_right_layout";
+
+ images {
+ image: "00_winset_control_toolbar_bg.png" COMP;
+ }
+
+ parts {
+ part { name: "bg";
+ mouse_events: 0;
+ type: RECT;
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0;
+ offset : 0 0;}
+ rel2 { relative: 1.0 1.0;}
+ color: 37 37 37 255;
+ }
+ }
+
+ part {
+ name : "list_content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ visible:1;
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;to: "bg";}
+ rel2 { relative: 1.0 0.85;to: "bg";}
+ }
+ }
+
+ part {
+ name : "options_bg";
+ type: IMAGE;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ visible:1;
+ fixed: 1 1;
+ state: "default" 0.0;
+ image { normal: "00_winset_control_toolbar_bg.png";}
+ rel1 { relative: 0.0 0.85; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ }
+ }
+ part {
+ name : "options";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ visible:1;
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0;to: "options_bg";}
+ rel2 { relative: 1.0 1.0;to: "options_bg";}
+ }
+ }
+ }
+}
+
+group {
+ name: "mp_square_view";
+
+ images {
+ image: "T02_square_bg.png" COMP;
+ image: "T02_square_cell_bg.png" COMP;
+ image: "T02_square_cell_press.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "square_bg";
+ mouse_events: 0;
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ image { normal: "T02_square_bg.png";}
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+
+ part {
+ name: "square_cell_bg";
+ mouse_events: 0;
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 690;
+ fixed: 0 1;
+ align: 0 1;
+ image { normal: "T02_square_cell_bg.png";}
+ rel1 { relative: 0.0 (690+132)/899; to: square_bg;}
+ rel2 { relative: 1.0 (690+132)/899; to: square_bg;}
+ }
+ }
+
+ part {
+ name: "gengrid";
+ mouse_events: 1;
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 40/720 0.0; to: square_cell_bg;}
+ rel2 { relative: 1.0-40/720 1-50/690; to: square_cell_bg;}
+ }
+ }
+
+ part {
+ name: "title_top";
+ mouse_events: 0;
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 40;
+ fixed: 0 1;
+ align: 0 1;
+ rel1 { relative: 0.0 0.0; to: gengrid;}
+ rel2 { relative: 1.0 0.0; to: gengrid;}
+ color: GRID_TITLE_COLOR;
+ text {
+ font: FONT_NAME;
+ size: GRID_TITLE_SIZE;
+ min: 0 1;
+ align: 0.5 0.5;
+ text: "EXCITING";
+ }
+ }
+ }
+
+ part {
+ name: "title_bottom";
+ mouse_events: 0;
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 40;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; to: gengrid;}
+ rel2 { relative: 1.0 1.0; to: gengrid;}
+ color: GRID_TITLE_COLOR;
+ text {
+ font: FONT_NAME;
+ size: GRID_TITLE_SIZE;
+ min: 0 1;
+ align: 0.5 0.5;
+ text: "Calm";
+ }
+ }
+ }
+
+ part {
+ name: "title_left";
+ mouse_events: 0;
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: gengrid;}
+ rel2 { relative: 1.0 1.0; to: gengrid;}
+ color: GRID_TITLE_COLOR;
+ text {
+ font: FONT_NAME;
+ size: GRID_TITLE_SIZE;
+ min: 0 1;
+ align: 0.5 0.5;
+ text: "Old";
+ }
+ }
+ }
+
+ part {
+ name: "title_right";
+ mouse_events: 0;
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: gengrid;}
+ rel2 { relative: 1.0 1.0; to: gengrid;}
+ color: GRID_TITLE_COLOR;
+ text {
+ font: FONT_NAME;
+ size: GRID_TITLE_SIZE;
+ min: 0 1;
+ align: 0.5 0.5;
+ text: "New";
+ }
+ }
+ }
+ }
+}
+
+group {
+ name: "mp_square_view_landscape";
+
+ images {
+ image: "T02_square_bg.png" COMP;
+ image: "T02_square_cell_bg.png" COMP;
+ image: "T02_square_cell_press.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "square_bg";
+ mouse_events: 0;
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ image { normal: "T02_square_bg.png";}
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+
+ part {
+ name: "square_cell_bg";
+ mouse_events: 0;
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ image { normal: "T02_square_cell_bg.png";}
+ rel1 { relative: 0.0 40/640; to: square_bg;}
+ rel2 { relative: 1.0 1.0; to: square_bg;}
+ }
+ }
+
+ part {
+ name: "gengrid";
+ mouse_events: 1;
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 40/720 0.0; to: square_cell_bg;}
+ rel2 { relative: 1.0-40/720 1-40/640; to: square_cell_bg;}
+ }
+ }
+
+ part {
+ name: "title_top";
+ mouse_events: 0;
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 40;
+ fixed: 0 1;
+ align: 0 1;
+ rel1 { relative: 0.0 0.0; to: gengrid;}
+ rel2 { relative: 1.0 0.0; to: gengrid;}
+ color: GRID_TITLE_COLOR;
+ text {
+ font: FONT_NAME;
+ size: GRID_TITLE_SIZE;
+ min: 0 1;
+ align: 0.5 0.5;
+ text: "EXCITING";
+ }
+ }
+ }
+
+ part {
+ name: "title_bottom";
+ mouse_events: 0;
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 0 40;
+ fixed: 0 1;
+ align: 0 0;
+ rel1 { relative: 0.0 1.0; to: gengrid;}
+ rel2 { relative: 1.0 1.0; to: gengrid;}
+ color: GRID_TITLE_COLOR;
+ text {
+ font: FONT_NAME;
+ size: GRID_TITLE_SIZE;
+ min: 0 1;
+ align: 0.5 0.5;
+ text: "Calm";
+ }
+ }
+ }
+
+ part {
+ name: "title_left";
+ mouse_events: 0;
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: gengrid;}
+ rel2 { relative: 1.0 1.0; to: gengrid;}
+ color: GRID_TITLE_COLOR;
+ text {
+ font: FONT_NAME;
+ size: GRID_TITLE_SIZE;
+ min: 0 1;
+ align: 0.5 0.5;
+ text: "Old";
+ }
+ }
+ }
+
+ part {
+ name: "title_right";
+ mouse_events: 0;
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: gengrid;}
+ rel2 { relative: 1.0 1.0; to: gengrid;}
+ color: GRID_TITLE_COLOR;
+ text {
+ font: FONT_NAME;
+ size: GRID_TITLE_SIZE;
+ min: 0 1;
+ align: 0.5 0.5;
+ text: "New";
+ }
+ }
+ }
+ }
+}
+
+group { name: "popup_update_library_progressview";
+ parts{
+ part { name: "pad_t";
+ scale : 1;
+ mouse_events: 0;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.5 0.0;
+ min: 0 14;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "pad_l";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "pad_r";
+ }
+ }
+ }
+ part { name: "pad_l";
+ scale: 1;
+ description { state: "default" 0.0;
+ min : 10 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ }
+ align: 0.0 0.0;
+ }
+ }
+ part { name: "pad_r";
+ scale: 1;
+ description { state: "default" 0.0;
+ min : 10 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ align: 1.0 0.0;
+ }
+ }
+ part{ name:"elm.swallow.content";
+ type: SWALLOW;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: 300 0;
+ align: 0.5 0.5;
+ fixed: 1 0;
+ rel1 {
+ relative: 0.5 1.0;
+ to: "pad_t";
+ }
+ rel2 {
+ relative: 0.5 0.0;
+ to: "pad_b";
+ }
+ }
+ }
+ part { name: "pad_b";
+ scale : 1;
+ mouse_events: 0;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.5 1.0;
+ min: 0 90;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "pad_l";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "pad_r";
+ }
+ }
+ }
+ part { name: "elm.swallow.end";
+ type: SWALLOW;
+ scale : 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "pad_b";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "pad_b";
+ }
+ }
+ }
+ part { name: "pad_bm";
+ scale : 1;
+ mouse_events: 0;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.0 1.0;
+ min: 0 52;
+ fixed: 0 1;
+ rel1 {
+ relative: 0.0 1.0;
+ to: "pad_b";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "pad_b";
+ }
+ }
+ }
+ part { name: "elm.text.subtext1";
+ type: TEXT;
+ scale : 1;
+ description { state: "default" 0.0;
+ text {
+ font: "SLP:style=Medium";
+ size: 16;
+ min: 0 0;
+ align: 0.0 1.0;
+ }
+ color: 108 108 108 255;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "pad_bm";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "pad_bm";
+ }
+ }
+ }
+ part { name: "elm.text.subtext2";
+ type: TEXT;
+ scale : 1;
+ description { state: "default" 0.0;
+ text {
+ font: "SLP:style=Medium";
+ size: 16;
+ min: 0 0;
+ align: 1.0 1.0;
+ }
+ color: 108 108 108 255;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "pad_bm";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "pad_bm";
+ }
+ }
+ }
+ }
+}
+
-/*\r
- * Copyright 2012 Samsung Electronics Co., Ltd\r
- *\r
- * Licensed under the Flora License, Version 1.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.tizenopensource.org/license\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-\r
-#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXT_SIZE_INC 28\r
-#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXTBLOCK_COLOR_INC "#f9f9f9"\r
-#define BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC 56 56\r
-#define BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC 249 249 249 255\r
-#define BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC 249 249 249 255\r
-\r
-#define ITEM_STATE_ENABLED 0\r
-#define ITEM_STATE_DISABLED 1\r
-\r
-group { name: "elm/toolbar/base/music/default";\r
- images {\r
- image: "00_winset_control_toolbar_bg.png" COMP;\r
- }\r
- parts {\r
- part { name: "base";\r
- mouse_events: 1;\r
- description { state: "default" 0.0;\r
- image.normal: "00_winset_control_toolbar_bg.png";\r
- }\r
- }\r
- part { name: "clipper";\r
- type: RECT;\r
- mouse_events: 0;\r
- description {\r
- state: "default" 0.0;\r
- rel1 {\r
- to: "base";\r
- offset: 2 2;\r
- }\r
- rel2 {\r
- to: "base";\r
- offset: -3 -3;\r
- }\r
- }\r
- }\r
- part { name: "elm.swallow.content";\r
- clip_to: "clipper";\r
- type: SWALLOW;\r
- description {\r
- state: "default" 0.0;\r
- rel1.to: "clipper";\r
- rel2.to: "clipper";\r
- }\r
- }\r
- part { name: "event";\r
- type: RECT;\r
- mouse_events: 1;\r
- repeat_events: 1;\r
- description { state: "default" 0.0;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/item/music/default";\r
- images {\r
- image: "T02_toolbar_press.png" COMP;\r
- }\r
- styles{\r
- style { name: "toolbar_style";\r
- base: "font=SLP:style=Medium font_size="BUTTON_CONTROLBAR_ITEM_BUTTON_TEXT_SIZE_INC" align=center color="BUTTON_CONTROLBAR_ITEM_BUTTON_TEXTBLOCK_COLOR_INC" wrap=mixed ellipsis=1";\r
- tag: "br" "\n";\r
- tag: "ps" "ps";\r
- tag: "hilight" "+ font=SLP:style=Bold";\r
- tag: "b" "+ font=SLP:style=Bold";\r
- tag: "tab" "\t";\r
- }\r
- }\r
-\r
- data.item: "transition_animation_on" "1";\r
- script {\r
- public item_state = ITEM_STATE_ENABLED;\r
- }\r
- parts {\r
- part { name: "bg";\r
- mouse_events: 0;\r
- description { state: "default" 0.0;\r
- visible: 0;\r
- color: 255 255 255 0;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to: "padding_right_bottom";\r
- }\r
- image {\r
- normal: "T02_toolbar_press.png";\r
- border: 3 3 3 3;\r
- }\r
- image.middle: SOLID;\r
- fill.smooth: 0;\r
- }\r
- description { state: "selected" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "disabled" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 0;\r
- color: 255 255 255 0;\r
- }\r
- }\r
- part { name: "padding_left_top";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0;\r
- align: 0.0 0.0;\r
- rel2.relative: 0.0 0.0;\r
- min: 10 8;\r
- fixed: 1 1;\r
- visible: 1;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- part { name: "padding_right_bottom";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0;\r
- align: 1.0 1.0;\r
- rel1.relative: 1.0 1.0;\r
- min: 10 5;\r
- fixed: 1 1;\r
- visible: 1;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- part {\r
- name: "icon_rect";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0;\r
- min: 0 0;\r
- fixed: 0 1;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_left_top";\r
- }\r
- align: 0.5 0.0;\r
- color: 0 0 0 0;\r
- }\r
- description { state: "visible" 0.0;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- fixed: 0 1;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_left_top";\r
- }\r
- align: 0.5 0.0;\r
- color: 0 0 0 0;\r
- }\r
- description { state: "icononly" 0.0;\r
- inherit: "default" 0.0;\r
- }\r
- }\r
- part { name: "padding_after_icon";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0; //when only icon or no icon is there\r
- align: 0.0 0.0;\r
- rel1 {\r
- relative: 0.0 1.0;\r
- to: "icon_rect";\r
- }\r
- rel2.to: "icon_rect";\r
- fixed: 0 1;\r
- min: 0 0;\r
- color: 0 0 0 0;\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- }\r
- description { state: "icononly" 0.0;\r
- inherit: "default" 0.0;\r
- }\r
- }\r
- part { name: "padding_before_text";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0; //when only icon or no icon is there\r
- align: 0.5 1.0;\r
- rel1 {\r
- relative: 1.0 0.0;\r
- to_x: "padding_left_top";\r
- to_y: "elm.text";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "elm.text";\r
- }\r
- fixed: 0 1;\r
- min: 0 0;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- part { name: "elm.swallow.icon";\r
- type: SWALLOW;\r
- scale: 1;\r
- clip_to: "elm.icon.clipper";\r
- description { state: "default" 0.0;\r
- visible: 0;\r
- align: 0.5 0.0;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_left_top";\r
- }\r
- fixed: 0 1;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 0 1;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_before_text";\r
- }\r
- aspect: 1.0 1.0;\r
- aspect_preference: HORIZONTAL;\r
- }\r
- description { state: "icononly" 0.0;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to: "padding_right_bottom";\r
- }\r
- aspect: 1.0 1.0;\r
- aspect_preference: HORIZONTAL;\r
- }\r
- }\r
- part { name: "elm.swallow.icon_new";\r
- type: SWALLOW;\r
- scale: 1;\r
- clip_to: "elm.icon_new.clipper";\r
- description { state: "default" 0.0;\r
- visible: 0;\r
- align: 0.5 0.0;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_left_top";\r
- }\r
- fixed: 0 1;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 0 1;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_before_text";\r
- }\r
- aspect: 1.0 1.0;\r
- aspect_preference: HORIZONTAL;\r
- }\r
- description { state: "icononly" 0.0;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to: "padding_right_bottom";\r
- }\r
- aspect: 1.0 1.0;\r
- aspect_preference: HORIZONTAL;\r
- }\r
- }\r
- part { name: "elm.text";\r
- type: TEXTBLOCK;\r
- mouse_events: 0;\r
- scale: 1;\r
- clip_to: "elm.text.clipper";\r
- description { state: "default" 0.0;\r
- visible: 1;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_after_icon";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to: "padding_right_bottom";\r
- }\r
- color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;\r
- fixed: 1 1;\r
- text {\r
- style: "toolbar_style";\r
- min: 0 1;\r
- max: 0 1;\r
- }\r
- }\r
- description { state: "selected" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "clicked" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- description { state: "focused" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- }\r
- part { name: "elm.text_new";\r
- type: TEXTBLOCK;\r
- mouse_events: 0;\r
- scale: 1;\r
- clip_to: "elm.text_new.clipper";\r
- description { state: "default" 0.0;\r
- visible: 1;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_after_icon";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to: "padding_right_bottom";\r
- }\r
- color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;\r
- fixed: 1 1;\r
- text {\r
- style: "toolbar_style";\r
- min: 0 1;\r
- max: 0 1;\r
- }\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "clicked" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- description { state: "focused" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- }\r
- part { name: "elm.text.clipper";\r
- type: RECT;\r
- description { state: "default" 0.0;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "animation" 0.0;\r
- color: 255 255 255 0;\r
- }\r
- description { state: "disabled" 0.0;\r
- color: 255 255 255 153;\r
- }\r
- }\r
- part { name: "elm.text_new.clipper";\r
- type: RECT;\r
- description { state: "default" 0.0;\r
- color: 255 255 255 0;\r
- }\r
- description { state: "animation" 0.0;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "disabled" 0.0;\r
- color: 255 255 255 153;\r
- }\r
- }\r
- part { name: "elm.icon.clipper";\r
- type: RECT;\r
- description { state: "default" 0.0;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "animation" 0.0;\r
- color: 255 255 255 0;\r
- }\r
- description { state: "disabled" 0.0;\r
- color: 255 255 255 153;\r
- }\r
- }\r
- part { name: "elm.icon_new.clipper";\r
- type: RECT;\r
- description { state: "default" 0.0;\r
- color: 255 255 255 0;\r
- }\r
- description { state: "animation" 0.0;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "disabled" 0.0;\r
- color: 255 255 255 153;\r
- }\r
- }\r
- part { name: "event";\r
- type: RECT;\r
- mouse_events: 1;\r
- ignore_flags: ON_HOLD;\r
- description { state: "default" 0.0;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- part { name: "event2";\r
- type: RECT;\r
- mouse_events: 1;\r
- repeat_events: 1;\r
- description { state: "default" 0.0;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- }\r
- programs {\r
- program { name: "pressed";\r
- signal: "mouse,down,1";\r
- source: "event";\r
- script {\r
- if (get_int(item_state) != ITEM_STATE_DISABLED)\r
- set_state(PART:"bg", "selected", 0.0);\r
- }\r
- transition: LINEAR 0.2;\r
- }\r
- program { name: "unpressed";\r
- signal: "mouse,up,1";\r
- source: "event2";\r
- action: STATE_SET "default" 0.0;\r
- target: "bg";\r
- transition: LINEAR 0.1;\r
- }\r
- program { name: "go";\r
- signal: "mouse,up,1";\r
- source: "event";\r
- action: SIGNAL_EMIT "elm,action,click" "elm";\r
- }\r
- program { name: "mouse,in";\r
- signal: "mouse,in";\r
- source: "event";\r
- action: SIGNAL_EMIT "elm,mouse,in" "elm";\r
- }\r
- program { name: "mouse,out";\r
- signal: "mouse,out";\r
- source: "event";\r
- action: SIGNAL_EMIT "elm,mouse,out" "elm";\r
- }\r
- program { name: "disable";\r
- signal: "elm,state,disabled";\r
- source: "elm";\r
- script {\r
- set_int(item_state, ITEM_STATE_DISABLED);\r
- set_state(PART:"bg", "disabled", 0.0);\r
- set_state(PART:"elm.text.clipper", "disabled", 0.0);\r
- set_state(PART:"elm.icon.clipper", "disabled", 0.0);\r
- run_program(PROGRAM:"label_set,animation,done");\r
- run_program(PROGRAM:"icon_set,animation,done");\r
- }\r
- }\r
- program { name: "enable";\r
- signal: "elm,state,enabled";\r
- source: "elm";\r
- script {\r
- set_int(item_state, ITEM_STATE_ENABLED);\r
- set_state(PART:"bg", "default", 0.0);\r
- set_state(PART:"elm.text.clipper", "default", 0.0);\r
- set_state(PART:"elm.icon.clipper", "default", 0.0);\r
- run_program(PROGRAM:"label_set,animation,done");\r
- run_program(PROGRAM:"icon_set,animation,done");\r
- }\r
- }\r
- program { name: "label_set,animation,forward";\r
- signal: "elm,state,label_set,forward";\r
- source: "elm";\r
- after: "label_set,animation";\r
- }\r
- program { name: "label_set,animation,backward";\r
- signal: "elm,state,label_set,backward";\r
- source: "elm";\r
- after: "label_set,animation";\r
- }\r
- program { name: "label_set,animation";\r
- signal: "elm,state,label_set";\r
- source: "elm";\r
- action: STATE_SET "animation" 0.0;\r
- target: "elm.text.clipper";\r
- target: "elm.text_new.clipper";\r
- transition: LINEAR 0.2;\r
- after: "label_set,animation,done";\r
- }\r
- program { name: "label_set,animation,done";\r
- action: SIGNAL_EMIT "elm,state,label_set,done" "elm";\r
- }\r
- program { name: "label,reset";\r
- signal: "elm,state,label,reset";\r
- source: "elm";\r
- script {\r
- set_state(PART:"elm.text_new.clipper", "default", 0.0);\r
- if (get_int(item_state) != ITEM_STATE_DISABLED)\r
- set_state(PART:"elm.text.clipper", "default", 0.0);\r
- else\r
- set_state(PART:"elm.text.clipper", "disabled", 0.0);\r
- }\r
- }\r
- program { name: "icon_set,animation,forward";\r
- signal: "elm,state,icon_set,forward";\r
- source: "elm";\r
- after: "icon_set,animation";\r
- }\r
- program { name: "icon_set,animation,backward";\r
- signal: "elm,state,icon_set,backward";\r
- source: "elm";\r
- after: "icon_set,animation";\r
- }\r
- program { name: "icon_set,animation";\r
- signal: "elm,state,icon_set";\r
- source: "elm";\r
- action: STATE_SET "animation" 0.0;\r
- target: "elm.icon.clipper";\r
- target: "elm.icon_new.clipper";\r
- transition: LINEAR 0.2;\r
- after: "icon_set,animation,done";\r
- }\r
- program { name: "icon_set,animation,done";\r
- action: SIGNAL_EMIT "elm,state,icon_set,done" "elm";\r
- }\r
- program { name: "icon,reset";\r
- signal: "elm,state,icon,reset";\r
- source: "elm";\r
- script {\r
- set_state(PART:"elm.icon_new.clipper", "default", 0.0);\r
- if (get_int(item_state) != ITEM_STATE_DISABLED)\r
- set_state(PART:"elm.icon.clipper", "default", 0.0);\r
- else\r
- set_state(PART:"elm.icon.clipper", "disabled", 0.0);\r
- }\r
- }\r
- program { name: "text_show";\r
- signal: "elm,state,text,visible";\r
- source: "elm";\r
- script {\r
- new st[31];\r
- new Float:vl;\r
- get_state(PART:"elm.swallow.icon", st, 30, vl);\r
- if (!strcmp(st, "icononly"))\r
- {\r
- set_state(PART:"elm.swallow.icon", "visible", 0.0);\r
- set_state(PART:"icon_rect", "visible", 0.0);\r
- set_state(PART:"padding_after_icon", "visible", 0.0);\r
- }\r
- set_state(PART:"elm.text", "visible", 0.0);\r
- }\r
- }\r
- program { name: "text_hide";\r
- signal: "elm,state,text,hidden";\r
- source: "elm";\r
- script {\r
- new st[31];\r
- new Float:vl;\r
- get_state(PART:"elm.swallow.icon", st, 30, vl);\r
- if (!strcmp(st, "visible"))\r
- {\r
- set_state(PART:"elm.swallow.icon", "icononly", 0.0);\r
- set_state(PART:"icon_rect", "icononly", 0.0);\r
- set_state(PART:"padding_after_icon", "icononly", 0.0);\r
- }\r
- set_state(PART:"elm.text", "default", 0.0);\r
- }\r
- }\r
- program { name: "icon_show";\r
- signal: "elm,state,icon,visible";\r
- source: "elm";\r
- script {\r
- new st[31];\r
- new Float:vl;\r
- get_state(PART:"elm.text", st, 30, vl);\r
- if (!strcmp(st, "visible"))\r
- {\r
- set_state(PART:"elm.swallow.icon", "visible", 0.0);\r
- set_state(PART:"icon_rect", "visible", 0.0);\r
- set_state(PART:"padding_after_icon", "visible", 0.0);\r
- }\r
- else\r
- {\r
- set_state(PART:"elm.swallow.icon", "icononly", 0.0);\r
- set_state(PART:"icon_rect", "icononly", 0.0);\r
- set_state(PART:"padding_after_icon", "icononly", 0.0);\r
- }\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/item/music/item_horizontal";\r
- inherit: "elm/toolbar/item/music/default";\r
- script {\r
- public item_state = ITEM_STATE_ENABLED;\r
- }\r
- parts {\r
- part { name: "icon_rect";\r
- description { state: "default" 0.0;\r
- fixed: 1 0;\r
- align: 0.0 0.5;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 1 0;\r
- rel2 {\r
- relative: 1.0 0.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_right_bottom";\r
- }\r
- align: 0.0 0.5;\r
- }\r
- }\r
- part { name: "padding_after_icon";\r
- description { state: "default" 0.0; //when only icon or no icon is there\r
- rel1.relative: 1.0 0.0;\r
- fixed: 1 1;\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- min: 6 0;\r
- }\r
- }\r
- part { name: "padding_before_text";\r
- description { state: "default" 0.0; //when only icon or no icon is there\r
- align: 1.0 0.5;\r
- rel1 {\r
- relative: 0.0 1.0;\r
- to_x: "elm.text";\r
- to_y: "padding_left_top";\r
- }\r
- rel2 {\r
- to_x: "elm.text";\r
- to_y: "padding_right_bottom";\r
- }\r
- fixed: 1 0;\r
- min: 6 0;\r
- }\r
- }\r
- part { name: "elm.swallow.icon";\r
- description { state: "default" 0.0;\r
- align: 0.0 0.5;\r
- rel2 {\r
- relative: 1.0 0.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_right_bottom";\r
- }\r
- fixed: 1 0;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 1 0;\r
- align: 1.0 0.5;\r
- rel1 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_before_text";\r
- to_y: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_before_text";\r
- to_y: "padding_right_bottom";\r
- }\r
- aspect_preference: VERTICAL;\r
- }\r
- description { state: "icononly" 0.0;\r
- aspect_preference: VERTICAL;\r
- }\r
- }\r
- part { name: "elm.swallow.icon_new";\r
- description { state: "default" 0.0;\r
- align: 0.0 0.5;\r
- rel2 {\r
- relative: 1.0 0.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_right_bottom";\r
- }\r
- fixed: 1 0;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 1 0;\r
- align: 1.0 0.5;\r
- rel1 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_before_text";\r
- to_y: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_before_text";\r
- to_y: "padding_right_bottom";\r
- }\r
- aspect_preference: VERTICAL;\r
- }\r
- description { state: "icononly" 0.0;\r
- aspect_preference: VERTICAL;\r
- }\r
- }\r
- part { name: "elm.text";\r
- type: TEXTBLOCK;\r
- description { state: "default" 0.0;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to_x: "padding_after_icon";\r
- to_y: "padding_left_top";\r
- }\r
- text {\r
- style: "toolbar_style";\r
- min: 1 0;\r
- max: 1 0;\r
- }\r
- }\r
- description { state: "selected" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "clicked" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- description { state: "focused" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- }\r
- part { name: "elm.text_new";\r
- type: TEXTBLOCK;\r
- description { state: "default" 0.0;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to_x: "padding_after_icon";\r
- to_y: "padding_left_top";\r
- }\r
- text {\r
- style: "toolbar_style";\r
- min: 1 0;\r
- max: 1 0;\r
- }\r
- }\r
- description { state: "selected" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "clicked" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- description { state: "focused" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/separator/music/default";\r
- images {\r
- image: "separator_v.png" COMP;\r
- }\r
- parts {\r
- part { name: "separator"; // separator group\r
- description { state: "default" 0.0;\r
- min: 2 2;\r
- max: 2 9999;\r
- rel1.offset: 4 4;\r
- rel2.offset: -5 -5;\r
- image {\r
- normal: "separator_v.png";\r
- }\r
- fill {\r
- smooth: 0;\r
- }\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/object/music/default";\r
- parts {\r
- part { name: "elm.swallow.object"; // object group\r
- type: SWALLOW;\r
- description {\r
- state: "default" 0.0;\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/base/music/tabbar";\r
- images {\r
- image: "T02_navigation_tabbar_bg.png" COMP;\r
- }\r
-\r
- parts {\r
- part { name: "base";\r
- mouse_events: 1;\r
- description { state: "default" 0.0;\r
- image.normal: "T02_navigation_tabbar_bg.png";\r
- }\r
- }\r
- part { name: "clipper";\r
- type: RECT;\r
- mouse_events: 0;\r
- description {\r
- state: "default" 0.0;\r
- rel1 {\r
- to: "base";\r
- offset: 2 2;\r
- }\r
- rel2 {\r
- to: "base";\r
- offset: -3 -3;\r
- }\r
- }\r
- }\r
- part { name: "elm.swallow.content";\r
- clip_to: "clipper";\r
- type: SWALLOW;\r
- description {\r
- state: "default" 0.0;\r
- rel1.to: "clipper";\r
- rel2.to: "clipper";\r
- }\r
- }\r
- part { name: "event";\r
- type: RECT;\r
- mouse_events: 1;\r
- repeat_events: 1;\r
- description { state: "default" 0.0;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/item/music/tabbar";\r
- alias: "elm/toolbar/item/music/tabbar/item_horizontal";\r
- images {\r
- image: "T02_navigation_tabbar_focus.png" COMP;\r
- }\r
-\r
- data.item: "transition_animation_on" "1";\r
- script {\r
- public item_state = ITEM_STATE_ENABLED;\r
- }\r
- parts {\r
- part { name: "bg";\r
- mouse_events: 0;\r
- description { state: "default" 0.0;\r
- visible: 0;\r
- color: 255 255 255 0;\r
- image {\r
- normal: "T02_navigation_tabbar_focus.png";\r
- }\r
- image.middle: SOLID;\r
- fill.smooth: 0;\r
- }\r
- description { state: "selected" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "disabled" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 0;\r
- color: 255 255 255 0;\r
- }\r
- }\r
- part { name: "padding_left_top";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0;\r
- align: 0.0 0.0;\r
- rel2.relative: 0.0 0.0;\r
- min: 10 8;\r
- fixed: 1 1;\r
- visible: 1;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- part { name: "padding_right_bottom";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0;\r
- align: 1.0 1.0;\r
- rel1.relative: 1.0 1.0;\r
- min: 10 5;\r
- fixed: 1 1;\r
- visible: 1;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- part {\r
- name: "icon_rect";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0;\r
- min: 0 0;\r
- fixed: 0 1;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_left_top";\r
- }\r
- align: 0.5 0.0;\r
- color: 0 0 0 0;\r
- }\r
- description { state: "visible" 0.0;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- fixed: 0 1;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_left_top";\r
- }\r
- align: 0.5 0.0;\r
- color: 0 0 0 0;\r
- }\r
- description { state: "icononly" 0.0;\r
- inherit: "default" 0.0;\r
- }\r
- }\r
- part { name: "padding_after_icon";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0; //when only icon or no icon is there\r
- align: 0.0 0.0;\r
- rel1 {\r
- relative: 0.0 1.0;\r
- to: "icon_rect";\r
- }\r
- rel2.to: "icon_rect";\r
- fixed: 0 1;\r
- min: 0 0;\r
- color: 0 0 0 0;\r
- }\r
- description { state: "visible" 0.0;\r
- align: 0.0 0.0;\r
- rel1 {\r
- relative: 0.0 1.0;\r
- to: "icon_rect";\r
- }\r
- rel2.to: "icon_rect";\r
- fixed: 0 1;\r
- min: 0 0;\r
- color: 0 0 0 0;\r
- }\r
- description { state: "icononly" 0.0;\r
- inherit: "default" 0.0;\r
- }\r
- }\r
- part { name: "padding_before_text";\r
- type: RECT;\r
- scale: 1;\r
- mouse_events: 0;\r
- description { state: "default" 0.0; //when only icon or no icon is there\r
- align: 0.5 1.0;\r
- rel1 {\r
- relative: 1.0 0.0;\r
- to_x: "padding_left_top";\r
- to_y: "elm.text";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "elm.text";\r
- }\r
- fixed: 0 1;\r
- min: 0 0;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- part { name: "elm.swallow.icon";\r
- type: SWALLOW;\r
- scale: 1;\r
- clip_to: "elm.icon.clipper";\r
- description { state: "default" 0.0;\r
- visible: 0;\r
- align: 0.5 0.0;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_left_top";\r
- }\r
- fixed: 0 1;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 0 1;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_before_text";\r
- }\r
- aspect: 1.0 1.0;\r
- aspect_preference: HORIZONTAL;\r
- }\r
- description { state: "icononly" 0.0;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to: "padding_right_bottom";\r
- }\r
- aspect: 1.0 1.0;\r
- aspect_preference: HORIZONTAL;\r
- }\r
- }\r
- part { name: "elm.swallow.icon_new";\r
- type: SWALLOW;\r
- scale: 1;\r
- clip_to: "elm.icon_new.clipper";\r
- description { state: "default" 0.0;\r
- visible: 0;\r
- align: 0.5 0.0;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_left_top";\r
- }\r
- fixed: 0 1;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 0 1;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_right_bottom";\r
- to_y: "padding_before_text";\r
- }\r
- aspect: 1.0 1.0;\r
- aspect_preference: HORIZONTAL;\r
- }\r
- description { state: "icononly" 0.0;\r
- min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to: "padding_right_bottom";\r
- }\r
- aspect: 1.0 1.0;\r
- aspect_preference: HORIZONTAL;\r
- }\r
- }\r
- part { name: "elm.text";\r
- type: TEXTBLOCK;\r
- mouse_events: 0;\r
- scale: 1;\r
- clip_to: "elm.text.clipper";\r
- description { state: "default" 0.0;\r
- visible: 1;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_after_icon";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to: "padding_right_bottom";\r
- }\r
- color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;\r
- fixed: 1 1;\r
- text {\r
- style: "toolbar_style";\r
- min: 0 1;\r
- max: 0 1;\r
- }\r
- }\r
- description { state: "selected" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "clicked" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- description { state: "focused" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- }\r
- part { name: "elm.text_new";\r
- type: TEXTBLOCK;\r
- mouse_events: 0;\r
- scale: 1;\r
- clip_to: "elm.text_new.clipper";\r
- description { state: "default" 0.0;\r
- visible: 1;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_after_icon";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to: "padding_right_bottom";\r
- }\r
- color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;\r
- fixed: 1 1;\r
- text {\r
- style: "toolbar_style";\r
- min: 0 1;\r
- max: 0 1;\r
- }\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "clicked" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- description { state: "focused" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- }\r
- part { name: "elm.text.clipper";\r
- type: RECT;\r
- description { state: "default" 0.0;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "animation" 0.0;\r
- color: 255 255 255 0;\r
- }\r
- description { state: "disabled" 0.0;\r
- color: 255 255 255 153;\r
- }\r
- }\r
- part { name: "elm.text_new.clipper";\r
- type: RECT;\r
- description { state: "default" 0.0;\r
- color: 255 255 255 0;\r
- }\r
- description { state: "animation" 0.0;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "disabled" 0.0;\r
- color: 255 255 255 153;\r
- }\r
- }\r
- part { name: "elm.icon.clipper";\r
- type: RECT;\r
- description { state: "default" 0.0;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "animation" 0.0;\r
- color: 255 255 255 0;\r
- }\r
- description { state: "disabled" 0.0;\r
- color: 255 255 255 153;\r
- }\r
- }\r
- part { name: "elm.icon_new.clipper";\r
- type: RECT;\r
- description { state: "default" 0.0;\r
- color: 255 255 255 0;\r
- }\r
- description { state: "animation" 0.0;\r
- color: 255 255 255 255;\r
- }\r
- description { state: "disabled" 0.0;\r
- color: 255 255 255 153;\r
- }\r
- }\r
- part { name: "event";\r
- type: RECT;\r
- mouse_events: 1;\r
- ignore_flags: ON_HOLD;\r
- description { state: "default" 0.0;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- }\r
- programs {\r
- program { name: "go_active";\r
- signal: "elm,state,selected";\r
- source: "elm";\r
- action: STATE_SET "selected" 0.0;\r
- target: "bg";\r
- transition: LINEAR 0.2;\r
- }\r
- program { name: "go_passive";\r
- signal: "elm,state,unselected";\r
- source: "elm";\r
- action: STATE_SET "default" 0.0;\r
- target: "bg";\r
- transition: LINEAR 0.1;\r
- }/*\r
- program { name: "pressed";\r
- signal: "mouse,down,1";\r
- source: "event";\r
- action: STATE_SET "selected" 0.0;\r
- target: "bg";\r
- target: "elm.text";\r
- target: "elm.text_new";\r
- transition: LINEAR 0.2;\r
- }\r
- program { name: "unpressed";\r
- signal: "mouse,up,1";\r
- source: "event";\r
- action: STATE_SET "default" 0.0;\r
- target: "bg";\r
- target: "elm.text";\r
- target: "elm.text_new";\r
- transition: LINEAR 0.1;\r
- }*/\r
- program { name: "go";\r
- signal: "mouse,up,1";\r
- source: "event";\r
- action: SIGNAL_EMIT "elm,action,click" "elm";\r
- }\r
- program { name: "mouse,in";\r
- signal: "mouse,in";\r
- source: "event";\r
- action: SIGNAL_EMIT "elm,mouse,in" "elm";\r
- }\r
- program { name: "mouse,out";\r
- signal: "mouse,out";\r
- source: "event";\r
- action: SIGNAL_EMIT "elm,mouse,out" "elm";\r
- }\r
- program { name: "disable";\r
- signal: "elm,state,disabled";\r
- source: "elm";\r
- script {\r
- set_int(item_state, ITEM_STATE_DISABLED);\r
- set_state(PART:"bg", "disabled", 0.0);\r
- set_state(PART:"elm.text.clipper", "disabled", 0.0);\r
- set_state(PART:"elm.icon.clipper", "disabled", 0.0);\r
- run_program(PROGRAM:"label_set,animation,done");\r
- run_program(PROGRAM:"icon_set,animation,done");\r
- }\r
- }\r
- program { name: "enable";\r
- signal: "elm,state,enabled";\r
- source: "elm";\r
- script {\r
- set_int(item_state, ITEM_STATE_ENABLED);\r
- set_state(PART:"bg", "default", 0.0);\r
- set_state(PART:"elm.text.clipper", "default", 0.0);\r
- set_state(PART:"elm.icon.clipper", "default", 0.0);\r
- run_program(PROGRAM:"label_set,animation,done");\r
- run_program(PROGRAM:"icon_set,animation,done");\r
- }\r
- }\r
- program { name: "label_set,animation,forward";\r
- signal: "elm,state,label_set,forward";\r
- source: "elm";\r
- after: "label_set,animation";\r
- }\r
- program { name: "label_set,animation,backward";\r
- signal: "elm,state,label_set,backward";\r
- source: "elm";\r
- after: "label_set,animation";\r
- }\r
- program { name: "label_set,animation";\r
- signal: "elm,state,label_set";\r
- source: "elm";\r
- action: STATE_SET "animation" 0.0;\r
- target: "elm.text.clipper";\r
- target: "elm.text_new.clipper";\r
- transition: LINEAR 0.2;\r
- after: "label_set,animation,done";\r
- }\r
- program { name: "label_set,animation,done";\r
- action: SIGNAL_EMIT "elm,state,label_set,done" "elm";\r
- }\r
- program { name: "label,reset";\r
- signal: "elm,state,label,reset";\r
- source: "elm";\r
- script {\r
- set_state(PART:"elm.text_new.clipper", "default", 0.0);\r
- if (get_int(item_state) != ITEM_STATE_DISABLED)\r
- set_state(PART:"elm.text.clipper", "default", 0.0);\r
- else\r
- set_state(PART:"elm.text.clipper", "disabled", 0.0);\r
- }\r
- }\r
- program { name: "icon_set,animation,forward";\r
- signal: "elm,state,icon_set,forward";\r
- source: "elm";\r
- after: "icon_set,animation";\r
- }\r
- program { name: "icon_set,animation,backward";\r
- signal: "elm,state,icon_set,backward";\r
- source: "elm";\r
- after: "icon_set,animation";\r
- }\r
- program { name: "icon_set,animation";\r
- signal: "elm,state,icon_set";\r
- source: "elm";\r
- action: STATE_SET "animation" 0.0;\r
- target: "elm.icon.clipper";\r
- target: "elm.icon_new.clipper";\r
- transition: LINEAR 0.2;\r
- after: "icon_set,animation,done";\r
- }\r
- program { name: "icon_set,animation,done";\r
- action: SIGNAL_EMIT "elm,state,icon_set,done" "elm";\r
- }\r
- program { name: "icon,reset";\r
- signal: "elm,state,icon,reset";\r
- source: "elm";\r
- script {\r
- set_state(PART:"elm.icon_new.clipper", "default", 0.0);\r
- if (get_int(item_state) != ITEM_STATE_DISABLED)\r
- set_state(PART:"elm.icon.clipper", "default", 0.0);\r
- else\r
- set_state(PART:"elm.icon.clipper", "disabled", 0.0);\r
- }\r
- }\r
- program { name: "text_show";\r
- signal: "elm,state,text,visible";\r
- source: "elm";\r
- script {\r
- new st[31];\r
- new Float:vl;\r
- get_state(PART:"elm.swallow.icon", st, 30, vl);\r
- if (!strcmp(st, "icononly"))\r
- {\r
- set_state(PART:"elm.swallow.icon", "visible", 0.0);\r
- set_state(PART:"icon_rect", "visible", 0.0);\r
- set_state(PART:"padding_after_icon", "visible", 0.0);\r
- }\r
- set_state(PART:"elm.text", "visible", 0.0);\r
- }\r
- }\r
- program { name: "text_hide";\r
- signal: "elm,state,text,hidden";\r
- source: "elm";\r
- script {\r
- new st[31];\r
- new Float:vl;\r
- get_state(PART:"elm.swallow.icon", st, 30, vl);\r
- if (!strcmp(st, "visible"))\r
- {\r
- set_state(PART:"elm.swallow.icon", "icononly", 0.0);\r
- set_state(PART:"icon_rect", "icononly", 0.0);\r
- set_state(PART:"padding_after_icon", "icononly", 0.0);\r
- }\r
- set_state(PART:"elm.text", "default", 0.0);\r
- }\r
- }\r
- program { name: "icon_show";\r
- signal: "elm,state,icon,visible";\r
- source: "elm";\r
- script {\r
- new st[31];\r
- new Float:vl;\r
- get_state(PART:"elm.text", st, 30, vl);\r
- if (!strcmp(st, "visible"))\r
- {\r
- set_state(PART:"elm.swallow.icon", "visible", 0.0);\r
- set_state(PART:"icon_rect", "visible", 0.0);\r
- set_state(PART:"padding_after_icon", "visible", 0.0);\r
- }\r
- else\r
- {\r
- set_state(PART:"elm.swallow.icon", "icononly", 0.0);\r
- set_state(PART:"icon_rect", "icononly", 0.0);\r
- set_state(PART:"padding_after_icon", "icononly", 0.0);\r
- }\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/item/music/tabbar/item_horizontal";\r
- inherit: "elm/toolbar/item/music/tabbar";\r
- script {\r
- public item_state = ITEM_STATE_ENABLED;\r
- }\r
- parts {\r
- part { name: "icon_rect";\r
- description { state: "default" 0.0;\r
- fixed: 1 0;\r
- align: 0.0 0.5;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 1 0;\r
- rel2 {\r
- relative: 1.0 0.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_right_bottom";\r
- }\r
- align: 0.0 0.5;\r
- }\r
- }\r
- part { name: "padding_after_icon";\r
- description { state: "default" 0.0; //when only icon or no icon is there\r
- rel1.relative: 1.0 0.0;\r
- fixed: 1 1;\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- min: 6 0;\r
- }\r
- }\r
- part { name: "padding_before_text";\r
- description { state: "default" 0.0; //when only icon or no icon is there\r
- align: 1.0 0.5;\r
- rel1 {\r
- relative: 0.0 1.0;\r
- to_x: "elm.text";\r
- to_y: "padding_left_top";\r
- }\r
- rel2 {\r
- to_x: "elm.text";\r
- to_y: "padding_right_bottom";\r
- }\r
- fixed: 1 0;\r
- min: 6 0;\r
- }\r
- }\r
- part { name: "elm.swallow.icon";\r
- description { state: "default" 0.0;\r
- align: 0.0 0.5;\r
- rel2 {\r
- relative: 1.0 0.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_right_bottom";\r
- }\r
- fixed: 1 0;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 1 0;\r
- align: 1.0 0.5;\r
- rel1 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_before_text";\r
- to_y: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_before_text";\r
- to_y: "padding_right_bottom";\r
- }\r
- aspect_preference: VERTICAL;\r
- }\r
- description { state: "icononly" 0.0;\r
- aspect_preference: VERTICAL;\r
- }\r
- }\r
- part { name: "elm.swallow.icon_new";\r
- description { state: "default" 0.0;\r
- align: 0.0 0.5;\r
- rel2 {\r
- relative: 1.0 0.0;\r
- to_x: "padding_left_top";\r
- to_y: "padding_right_bottom";\r
- }\r
- fixed: 1 0;\r
- }\r
- description { state: "visible" 0.0;\r
- fixed: 1 0;\r
- align: 1.0 0.5;\r
- rel1 {\r
- relative: 0.0 1.0;\r
- to_x: "padding_before_text";\r
- to_y: "padding_left_top";\r
- }\r
- rel2 {\r
- relative: 0.0 0.0;\r
- to_x: "padding_before_text";\r
- to_y: "padding_right_bottom";\r
- }\r
- aspect_preference: VERTICAL;\r
- }\r
- description { state: "icononly" 0.0;\r
- aspect_preference: VERTICAL;\r
- }\r
- }\r
- part { name: "elm.text";\r
- type: TEXTBLOCK;\r
- description { state: "default" 0.0;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to_x: "padding_after_icon";\r
- to_y: "padding_left_top";\r
- }\r
- text {\r
- style: "toolbar_style";\r
- min: 1 0;\r
- max: 1 0;\r
- }\r
- }\r
- description { state: "selected" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "clicked" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- description { state: "focused" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- }\r
- part { name: "elm.text_new";\r
- type: TEXTBLOCK;\r
- description { state: "default" 0.0;\r
- rel1 {\r
- relative: 1.0 1.0;\r
- to_x: "padding_after_icon";\r
- to_y: "padding_left_top";\r
- }\r
- text {\r
- style: "toolbar_style";\r
- min: 1 0;\r
- max: 1 0;\r
- }\r
- }\r
- description { state: "selected" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "visible" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- }\r
- description { state: "clicked" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- description { state: "focused" 0.0;\r
- inherit: "default" 0.0;\r
- visible: 1;\r
- color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/base/music/naviframe";\r
- parts {\r
- part { name: "base";\r
- mouse_events: 1;\r
- description { state: "default" 0.0;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- part { name: "clipper";\r
- type: RECT;\r
- mouse_events: 0;\r
- description {\r
- state: "default" 0.0;\r
- rel1 {\r
- to: "base";\r
- offset: 2 2;\r
- }\r
- rel2 {\r
- to: "base";\r
- offset: -3 -3;\r
- }\r
- }\r
- }\r
- part { name: "elm.swallow.content";\r
- clip_to: "clipper";\r
- type: SWALLOW;\r
- description {\r
- state: "default" 0.0;\r
- rel1.to: "clipper";\r
- rel2.to: "clipper";\r
- }\r
- }\r
- part { name: "event";\r
- type: RECT;\r
- mouse_events: 1;\r
- repeat_events: 1;\r
- description { state: "default" 0.0;\r
- color: 0 0 0 0;\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/object/music/naviframe";\r
- parts {\r
- part { name: "elm.swallow.object"; // object group\r
- type: SWALLOW;\r
- description {\r
- state: "default" 0.0;\r
- rel1.offset: 5 0;\r
- rel2.offset: -6 -1;\r
- }\r
- }\r
- }\r
-}\r
-\r
-group { name: "elm/toolbar/item/music/naviframe";\r
- inherit: "elm/toolbar/item/music/default";\r
- images {\r
- image: "00_winset_toolbar_press.png" COMP;\r
- }\r
-\r
- script {\r
- public item_state = ITEM_STATE_ENABLED;\r
- }\r
-}\r
-\r
-\r
+
+#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXT_SIZE_INC 28
+#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXTBLOCK_COLOR_INC "#f9f9f9"
+#define BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC 56 56
+#define BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC 249 249 249 255
+
+#define ITEM_STATE_ENABLED 0
+#define ITEM_STATE_DISABLED 1
+
+group { name: "elm/toolbar/base/music/default";
+ images {
+ image: "00_winset_control_toolbar_bg.png" COMP;
+ }
+ parts {
+ part { name: "base";
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ image.normal: "00_winset_control_toolbar_bg.png";
+ }
+ }
+ part { name: "clipper";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to: "base";
+ offset: 2 2;
+ }
+ rel2 {
+ to: "base";
+ offset: -3 -3;
+ }
+ }
+ }
+ part { name: "elm.swallow.content";
+ clip_to: "clipper";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.to: "clipper";
+ rel2.to: "clipper";
+ }
+ }
+ part { name: "event";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ }
+}
+
+group { name: "elm/toolbar/item/music/default";
+ images {
+ image: "00_winset_toolbar_press.png" COMP;
+ }
+ styles{
+ style { name: "toolbar_style";
+ base: "font=SLP:style=Medium font_size="BUTTON_CONTROLBAR_ITEM_BUTTON_TEXT_SIZE_INC" align=center color="BUTTON_CONTROLBAR_ITEM_BUTTON_TEXTBLOCK_COLOR_INC" wrap=mixed ellipsis=1";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "hilight" "+ font=SLP:style=Bold";
+ tag: "b" "+ font=SLP:style=Bold";
+ tag: "tab" "\t";
+ }
+ }
+
+ data.item: "transition_animation_on" "1";
+ script {
+ public item_state = ITEM_STATE_ENABLED;
+ }
+ parts {
+ part { name: "bg";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ visible: 0;
+ color: 255 255 255 0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ image {
+ normal: "00_winset_toolbar_press.png";
+ border: 3 3 3 3;
+ }
+ image.middle: SOLID;
+ fill.smooth: 0;
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ color: 255 255 255 0;
+ }
+ }
+ part { name: "padding_left_top";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ rel2.relative: 0.0 0.0;
+ min: 10 8;
+ fixed: 1 1;
+ visible: 1;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "padding_right_bottom";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ align: 1.0 1.0;
+ rel1.relative: 1.0 1.0;
+ min: 10 5;
+ fixed: 1 1;
+ visible: 1;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "icon_rect";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_left_top";
+ }
+ align: 0.5 0.0;
+ color: 0 0 0 0;
+ }
+ description { state: "visible" 0.0;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_left_top";
+ }
+ align: 0.5 0.0;
+ color: 0 0 0 0;
+ }
+ description { state: "icononly" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part { name: "padding_after_icon";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0; //when only icon or no icon is there
+ align: 0.0 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to: "icon_rect";
+ }
+ rel2.to: "icon_rect";
+ fixed: 0 1;
+ min: 0 0;
+ color: 0 0 0 0;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ }
+ description { state: "icononly" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part { name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0; //when only icon or no icon is there
+ align: 0.5 1.0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "elm.text";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_right_bottom";
+ to_y: "elm.text";
+ }
+ fixed: 0 1;
+ min: 0 0;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "elm.swallow.icon";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "elm.icon.clipper";
+ description { state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_left_top";
+ }
+ fixed: 0 1;
+ }
+ description { state: "visible" 0.0;
+ fixed: 0 1;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_before_text";
+ }
+ aspect: 1.0 1.0;
+ aspect_preference: HORIZONTAL;
+ }
+ description { state: "icononly" 0.0;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ aspect: 1.0 1.0;
+ aspect_preference: HORIZONTAL;
+ }
+ }
+ part { name: "elm.swallow.icon_new";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "elm.icon_new.clipper";
+ description { state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_left_top";
+ }
+ fixed: 0 1;
+ }
+ description { state: "visible" 0.0;
+ fixed: 0 1;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_before_text";
+ }
+ aspect: 1.0 1.0;
+ aspect_preference: HORIZONTAL;
+ }
+ description { state: "icononly" 0.0;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ aspect: 1.0 1.0;
+ aspect_preference: HORIZONTAL;
+ }
+ }
+ part { name: "elm.text";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "elm.text.clipper";
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "padding_left_top";
+ to_y: "padding_after_icon";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;
+ fixed: 1 1;
+ text {
+ style: "toolbar_style";
+ min: 0 1;
+ max: 0 1;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ description { state: "focused" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ }
+ part { name: "elm.text_new";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "elm.text_new.clipper";
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "padding_left_top";
+ to_y: "padding_after_icon";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;
+ fixed: 1 1;
+ text {
+ style: "toolbar_style";
+ min: 0 1;
+ max: 0 1;
+ }
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ description { state: "focused" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ }
+ part { name: "elm.text.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description { state: "animation" 0.0;
+ color: 255 255 255 0;
+ }
+ description { state: "disabled" 0.0;
+ color: 255 255 255 153;
+ }
+ }
+ part { name: "elm.text_new.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 255 255 0;
+ }
+ description { state: "animation" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part { name: "elm.icon.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description { state: "animation" 0.0;
+ color: 255 255 255 0;
+ }
+ description { state: "disabled" 0.0;
+ color: 255 255 255 153;
+ }
+ }
+ part { name: "elm.icon_new.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 255 255 0;
+ }
+ description { state: "animation" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part { name: "event";
+ type: RECT;
+ mouse_events: 1;
+ ignore_flags: ON_HOLD;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "event2";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs {
+ program { name: "pressed";
+ signal: "mouse,down,1";
+ source: "event";
+ script {
+ if (get_int(item_state) != ITEM_STATE_DISABLED)
+ set_state(PART:"bg", "selected", 0.0);
+ }
+ transition: LINEAR 0.2;
+ }
+ program { name: "unpressed";
+ signal: "mouse,up,1";
+ source: "event2";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ transition: LINEAR 0.1;
+ }
+ program { name: "go";
+ signal: "mouse,up,1";
+ source: "event";
+ action: SIGNAL_EMIT "elm,action,click" "elm";
+ }
+ program { name: "mouse,in";
+ signal: "mouse,in";
+ source: "event";
+ action: SIGNAL_EMIT "elm,mouse,in" "elm";
+ }
+ program { name: "mouse,out";
+ signal: "mouse,out";
+ source: "event";
+ action: SIGNAL_EMIT "elm,mouse,out" "elm";
+ }
+ program { name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "bg";
+ after: "disable_text";
+ }
+ program { name: "disable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ {
+ set_state(PART:"elm.text", "disabled_visible", 0.0);
+ set_state(PART:"elm.text_new", "disabled_visible", 0.0);
+ }
+ else
+ {
+ set_state(PART:"elm.text", "disabled", 0.0);
+ set_state(PART:"elm.text_new", "disabled", 0.0);
+ }
+ set_state(PART:"elm.text.clipper", "disabled", 0.0);
+ set_state(PART:"elm.icon.clipper", "disabled", 0.0);
+ set_int(item_state, ITEM_STATE_DISABLED);
+ }
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ after: "enable_text";
+ }
+ program { name: "enable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "disabled_visible"))
+ {
+ set_state(PART:"elm.text", "visible", 0.0);
+ set_state(PART:"elm.text_new", "visible", 0.0);
+ }
+ else
+ {
+ set_state(PART:"elm.text", "default", 0.0);
+ set_state(PART:"elm.text_new", "default", 0.0);
+ }
+ set_state(PART:"elm.text.clipper", "default", 0.0);
+ set_state(PART:"elm.icon.clipper", "default", 0.0);
+ set_int(item_state, ITEM_STATE_ENABLED);
+ }
+ }
+ program { name: "label_set,animation,forward";
+ signal: "elm,state,label_set,forward";
+ source: "elm";
+ after: "label_set,animation";
+ }
+ program { name: "label_set,animation,backward";
+ signal: "elm,state,label_set,backward";
+ source: "elm";
+ after: "label_set,animation";
+ }
+ program { name: "label_set,animation";
+ signal: "elm,state,label_set";
+ source: "elm";
+ action: STATE_SET "animation" 0.0;
+ target: "elm.text.clipper";
+ target: "elm.text_new.clipper";
+ transition: LINEAR 0.2;
+ after: "label_set,animation,done";
+ }
+ program { name: "label_set,animation,done";
+ action: SIGNAL_EMIT "elm,state,label_set,done" "elm";
+ }
+ program { name: "label,reset";
+ signal: "elm,state,label,reset";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.clipper";
+ target: "elm.text_new.clipper";
+ }
+ program { name: "icon_set,animation,forward";
+ signal: "elm,state,icon_set,forward";
+ source: "elm";
+ after: "icon_set,animation";
+ }
+ program { name: "icon_set,animation,backward";
+ signal: "elm,state,icon_set,backward";
+ source: "elm";
+ after: "icon_set,animation";
+ }
+ program { name: "icon_set,animation";
+ signal: "elm,state,icon_set";
+ source: "elm";
+ action: STATE_SET "animation" 0.0;
+ target: "elm.icon.clipper";
+ target: "elm.icon_new.clipper";
+ transition: LINEAR 0.2;
+ after: "icon_set,animation,done";
+ }
+ program { name: "icon_set,animation,done";
+ action: SIGNAL_EMIT "elm,state,icon_set,done" "elm";
+ }
+ program { name: "icon,reset";
+ signal: "elm,state,icon,reset";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.icon.clipper";
+ target: "elm.icon_new.clipper";
+ }
+ program { name: "text_show";
+ signal: "elm,state,text,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.icon", st, 30, vl);
+ if (!strcmp(st, "icononly"))
+ {
+ set_state(PART:"elm.swallow.icon", "visible", 0.0);
+ set_state(PART:"icon_rect", "visible", 0.0);
+ set_state(PART:"padding_after_icon", "visible", 0.0);
+ }
+ set_state(PART:"elm.text", "visible", 0.0);
+ }
+ }
+ program { name: "text_hide";
+ signal: "elm,state,text,hidden";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.icon", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ {
+ set_state(PART:"elm.swallow.icon", "icononly", 0.0);
+ set_state(PART:"icon_rect", "icononly", 0.0);
+ set_state(PART:"padding_after_icon", "icononly", 0.0);
+ }
+ set_state(PART:"elm.text", "default", 0.0);
+ }
+ }
+ program { name: "icon_show";
+ signal: "elm,state,icon,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ {
+ set_state(PART:"elm.swallow.icon", "visible", 0.0);
+ set_state(PART:"icon_rect", "visible", 0.0);
+ set_state(PART:"padding_after_icon", "visible", 0.0);
+ }
+ else
+ {
+ set_state(PART:"elm.swallow.icon", "icononly", 0.0);
+ set_state(PART:"icon_rect", "icononly", 0.0);
+ set_state(PART:"padding_after_icon", "icononly", 0.0);
+ }
+ }
+ }
+ }
+}
+
+group { name: "elm/toolbar/item/music/item_horizontal";
+ inherit: "elm/toolbar/item/music/default";
+ script {
+ public item_state = ITEM_STATE_ENABLED;
+ }
+ parts {
+ part { name: "icon_rect";
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ }
+ description { state: "visible" 0.0;
+ fixed: 1 0;
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "padding_right_bottom";
+ }
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "padding_after_icon";
+ description { state: "default" 0.0; //when only icon or no icon is there
+ rel1.relative: 1.0 0.0;
+ fixed: 1 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 6 0;
+ }
+ }
+ part { name: "padding_before_text";
+ description { state: "default" 0.0; //when only icon or no icon is there
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.text";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ to_x: "elm.text";
+ to_y: "padding_right_bottom";
+ }
+ fixed: 1 0;
+ min: 6 0;
+ }
+ }
+ part { name: "elm.swallow.icon";
+ description { state: "default" 0.0;
+ align: 0.0 0.5;
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "padding_right_bottom";
+ }
+ fixed: 1 0;
+ }
+ description { state: "visible" 0.0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "padding_before_text";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_before_text";
+ to_y: "padding_right_bottom";
+ }
+ aspect_preference: VERTICAL;
+ }
+ description { state: "icononly" 0.0;
+ aspect_preference: VERTICAL;
+ }
+ }
+ part { name: "elm.swallow.icon_new";
+ description { state: "default" 0.0;
+ align: 0.0 0.5;
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "padding_right_bottom";
+ }
+ fixed: 1 0;
+ }
+ description { state: "visible" 0.0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "padding_before_text";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_before_text";
+ to_y: "padding_right_bottom";
+ }
+ aspect_preference: VERTICAL;
+ }
+ description { state: "icononly" 0.0;
+ aspect_preference: VERTICAL;
+ }
+ }
+ part { name: "elm.text";
+ type: TEXTBLOCK;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "padding_after_icon";
+ to_y: "padding_left_top";
+ }
+ text {
+ style: "toolbar_style";
+ min: 1 0;
+ max: 1 0;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ description { state: "focused" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ }
+ part { name: "elm.text_new";
+ type: TEXTBLOCK;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "padding_after_icon";
+ to_y: "padding_left_top";
+ }
+ text {
+ style: "toolbar_style";
+ min: 1 0;
+ max: 1 0;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ description { state: "focused" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ }
+ }
+}
+
+group { name: "elm/toolbar/separator/music/default";
+ images {
+ image: "separator_v.png" COMP;
+ }
+ parts {
+ part { name: "separator"; // separator group
+ description { state: "default" 0.0;
+ min: 2 2;
+ max: 2 9999;
+ rel1.offset: 4 4;
+ rel2.offset: -5 -5;
+ image {
+ normal: "separator_v.png";
+ }
+ fill {
+ smooth: 0;
+ }
+ }
+ }
+ }
+}
+
+group { name: "elm/toolbar/object/music/default";
+ parts {
+ part { name: "elm.swallow.object"; // object group
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ }
+ }
+ }
+}
+
+group { name: "elm/toolbar/base/music/tabbar";
+ images {
+ image: "T02_navigation_tabbar_bg.png" COMP;
+ }
+
+ parts {
+ part { name: "base";
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ image.normal: "T02_navigation_tabbar_bg.png";
+ }
+ }
+ part { name: "clipper";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to: "base";
+ offset: 2 2;
+ }
+ rel2 {
+ to: "base";
+ offset: -3 -3;
+ }
+ }
+ }
+ part { name: "elm.swallow.content";
+ clip_to: "clipper";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.to: "clipper";
+ rel2.to: "clipper";
+ }
+ }
+ part { name: "event";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ }
+}
+
+group { name: "elm/toolbar/item/music/tabbar";
+ alias: "elm/toolbar/item/music/tabbar/item_horizontal";
+ images {
+ image: "T02_navigation_tabbar_focus.png" COMP;
+ }
+
+ data.item: "transition_animation_on" "1";
+ parts {
+ part { name: "bg";
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ visible: 0;
+ color: 255 255 255 0;
+ image {
+ normal: "T02_navigation_tabbar_focus.png";
+ }
+ image.middle: SOLID;
+ fill.smooth: 0;
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ color: 255 255 255 0;
+ }
+ }
+ part { name: "padding_left_top";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ rel2.relative: 0.0 0.0;
+ min: 10 8;
+ fixed: 1 1;
+ visible: 1;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "padding_right_bottom";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ align: 1.0 1.0;
+ rel1.relative: 1.0 1.0;
+ min: 10 5;
+ fixed: 1 1;
+ visible: 1;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "icon_rect";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 0 0;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_left_top";
+ }
+ align: 0.5 0.0;
+ color: 0 0 0 0;
+ }
+ description { state: "visible" 0.0;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_left_top";
+ }
+ align: 0.5 0.0;
+ color: 0 0 0 0;
+ }
+ description { state: "icononly" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part { name: "padding_after_icon";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0; //when only icon or no icon is there
+ align: 0.0 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to: "icon_rect";
+ }
+ rel2.to: "icon_rect";
+ fixed: 0 1;
+ min: 0 0;
+ color: 0 0 0 0;
+ }
+ description { state: "visible" 0.0;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to: "icon_rect";
+ }
+ rel2.to: "icon_rect";
+ fixed: 0 1;
+ min: 0 0;
+ color: 0 0 0 0;
+ }
+ description { state: "icononly" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part { name: "padding_before_text";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description { state: "default" 0.0; //when only icon or no icon is there
+ align: 0.5 1.0;
+ rel1 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "elm.text";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_right_bottom";
+ to_y: "elm.text";
+ }
+ fixed: 0 1;
+ min: 0 0;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "elm.swallow.icon";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "elm.icon.clipper";
+ description { state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_left_top";
+ }
+ fixed: 0 1;
+ }
+ description { state: "visible" 0.0;
+ fixed: 0 1;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_before_text";
+ }
+ aspect: 1.0 1.0;
+ aspect_preference: HORIZONTAL;
+ }
+ description { state: "icononly" 0.0;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ aspect: 1.0 1.0;
+ aspect_preference: HORIZONTAL;
+ }
+ }
+ part { name: "elm.swallow.icon_new";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "elm.icon_new.clipper";
+ description { state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_left_top";
+ }
+ fixed: 0 1;
+ }
+ description { state: "visible" 0.0;
+ fixed: 0 1;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_right_bottom";
+ to_y: "padding_before_text";
+ }
+ aspect: 1.0 1.0;
+ aspect_preference: HORIZONTAL;
+ }
+ description { state: "icononly" 0.0;
+ min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ aspect: 1.0 1.0;
+ aspect_preference: HORIZONTAL;
+ }
+ }
+ part { name: "elm.text";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "elm.text.clipper";
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "padding_left_top";
+ to_y: "padding_after_icon";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;
+ fixed: 1 1;
+ text {
+ style: "toolbar_style";
+ min: 0 1;
+ max: 0 1;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ description { state: "focused" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ }
+ part { name: "elm.text_new";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "elm.text_new.clipper";
+ description { state: "default" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "padding_left_top";
+ to_y: "padding_after_icon";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;
+ fixed: 1 1;
+ text {
+ style: "toolbar_style";
+ min: 0 1;
+ max: 0 1;
+ }
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ description { state: "focused" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ }
+ part { name: "elm.text.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description { state: "animation" 0.0;
+ color: 255 255 255 0;
+ }
+ description { state: "disabled" 0.0;
+ color: 255 255 255 153;
+ }
+ }
+ part { name: "elm.text_new.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 255 255 0;
+ }
+ description { state: "animation" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part { name: "elm.icon.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description { state: "animation" 0.0;
+ color: 255 255 255 0;
+ }
+ description { state: "disabled" 0.0;
+ color: 255 255 255 153;
+ }
+ }
+ part { name: "elm.icon_new.clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 255 255 255 0;
+ }
+ description { state: "animation" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part { name: "event";
+ type: RECT;
+ mouse_events: 1;
+ ignore_flags: ON_HOLD;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs {
+ program { name: "go_active";
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg";
+ transition: LINEAR 0.2;
+ }
+ program { name: "go_passive";
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ transition: LINEAR 0.1;
+ }/*
+ program { name: "pressed";
+ signal: "mouse,down,1";
+ source: "event";
+ action: STATE_SET "selected" 0.0;
+ target: "bg";
+ target: "elm.text";
+ target: "elm.text_new";
+ transition: LINEAR 0.2;
+ }
+ program { name: "unpressed";
+ signal: "mouse,up,1";
+ source: "event";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "elm.text";
+ target: "elm.text_new";
+ transition: LINEAR 0.1;
+ }*/
+ program { name: "go";
+ signal: "mouse,up,1";
+ source: "event";
+ action: SIGNAL_EMIT "elm,action,click" "elm";
+ }
+ program { name: "mouse,in";
+ signal: "mouse,in";
+ source: "event";
+ action: SIGNAL_EMIT "elm,mouse,in" "elm";
+ }
+ program { name: "mouse,out";
+ signal: "mouse,out";
+ source: "event";
+ action: SIGNAL_EMIT "elm,mouse,out" "elm";
+ }
+ program { name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "bg";
+ after: "disable_text";
+ }
+ program { name: "disable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ {
+ set_state(PART:"elm.text", "disabled_visible", 0.0);
+ set_state(PART:"elm.text_new", "disabled_visible", 0.0);
+ }
+ else
+ {
+ set_state(PART:"elm.text", "disabled", 0.0);
+ set_state(PART:"elm.text_new", "disabled", 0.0);
+ }
+ set_state(PART:"elm.text.clipper", "disabled", 0.0);
+ set_state(PART:"elm.icon.clipper", "disabled", 0.0);
+ }
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ after: "enable_text";
+ }
+ program { name: "enable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "disabled_visible"))
+ {
+ set_state(PART:"elm.text", "visible", 0.0);
+ set_state(PART:"elm.text_new", "visible", 0.0);
+ }
+ else
+ {
+ set_state(PART:"elm.text", "default", 0.0);
+ set_state(PART:"elm.text_new", "default", 0.0);
+ }
+ set_state(PART:"elm.text.clipper", "default", 0.0);
+ set_state(PART:"elm.icon.clipper", "default", 0.0);
+ }
+ }
+ program { name: "label_set,animation,forward";
+ signal: "elm,state,label_set,forward";
+ source: "elm";
+ after: "label_set,animation";
+ }
+ program { name: "label_set,animation,backward";
+ signal: "elm,state,label_set,backward";
+ source: "elm";
+ after: "label_set,animation";
+ }
+ program { name: "label_set,animation";
+ signal: "elm,state,label_set";
+ source: "elm";
+ action: STATE_SET "animation" 0.0;
+ target: "elm.text.clipper";
+ target: "elm.text_new.clipper";
+ transition: LINEAR 0.2;
+ after: "label_set,animation,done";
+ }
+ program { name: "label_set,animation,done";
+ action: SIGNAL_EMIT "elm,state,label_set,done" "elm";
+ }
+ program { name: "label,reset";
+ signal: "elm,state,label,reset";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.clipper";
+ target: "elm.text_new.clipper";
+ }
+ program { name: "icon_set,animation,forward";
+ signal: "elm,state,icon_set,forward";
+ source: "elm";
+ after: "icon_set,animation";
+ }
+ program { name: "icon_set,animation,backward";
+ signal: "elm,state,icon_set,backward";
+ source: "elm";
+ after: "icon_set,animation";
+ }
+ program { name: "icon_set,animation";
+ signal: "elm,state,icon_set";
+ source: "elm";
+ action: STATE_SET "animation" 0.0;
+ target: "elm.icon.clipper";
+ target: "elm.icon_new.clipper";
+ transition: LINEAR 0.2;
+ after: "icon_set,animation,done";
+ }
+ program { name: "icon_set,animation,done";
+ action: SIGNAL_EMIT "elm,state,icon_set,done" "elm";
+ }
+ program { name: "icon,reset";
+ signal: "elm,state,icon,reset";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.icon.clipper";
+ target: "elm.icon_new.clipper";
+ }
+ program { name: "text_show";
+ signal: "elm,state,text,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.icon", st, 30, vl);
+ if (!strcmp(st, "icononly"))
+ {
+ set_state(PART:"elm.swallow.icon", "visible", 0.0);
+ set_state(PART:"icon_rect", "visible", 0.0);
+ set_state(PART:"padding_after_icon", "visible", 0.0);
+ }
+ set_state(PART:"elm.text", "visible", 0.0);
+ }
+ }
+ program { name: "text_hide";
+ signal: "elm,state,text,hidden";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.swallow.icon", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ {
+ set_state(PART:"elm.swallow.icon", "icononly", 0.0);
+ set_state(PART:"icon_rect", "icononly", 0.0);
+ set_state(PART:"padding_after_icon", "icononly", 0.0);
+ }
+ set_state(PART:"elm.text", "default", 0.0);
+ }
+ }
+ program { name: "icon_show";
+ signal: "elm,state,icon,visible";
+ source: "elm";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ {
+ set_state(PART:"elm.swallow.icon", "visible", 0.0);
+ set_state(PART:"icon_rect", "visible", 0.0);
+ set_state(PART:"padding_after_icon", "visible", 0.0);
+ }
+ else
+ {
+ set_state(PART:"elm.swallow.icon", "icononly", 0.0);
+ set_state(PART:"icon_rect", "icononly", 0.0);
+ set_state(PART:"padding_after_icon", "icononly", 0.0);
+ }
+ }
+ }
+ }
+}
+
+group { name: "elm/toolbar/item/music/tabbar/item_horizontal";
+ inherit: "elm/toolbar/item/music/tabbar";
+ script {
+ public item_state = ITEM_STATE_ENABLED;
+ }
+ parts {
+ part { name: "icon_rect";
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ }
+ description { state: "visible" 0.0;
+ fixed: 1 0;
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "padding_right_bottom";
+ }
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "padding_after_icon";
+ description { state: "default" 0.0; //when only icon or no icon is there
+ rel1.relative: 1.0 0.0;
+ fixed: 1 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: 6 0;
+ }
+ }
+ part { name: "padding_before_text";
+ description { state: "default" 0.0; //when only icon or no icon is there
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.text";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ to_x: "elm.text";
+ to_y: "padding_right_bottom";
+ }
+ fixed: 1 0;
+ min: 6 0;
+ }
+ }
+ part { name: "elm.swallow.icon";
+ description { state: "default" 0.0;
+ align: 0.0 0.5;
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "padding_right_bottom";
+ }
+ fixed: 1 0;
+ }
+ description { state: "visible" 0.0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "padding_before_text";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_before_text";
+ to_y: "padding_right_bottom";
+ }
+ aspect_preference: VERTICAL;
+ }
+ description { state: "icononly" 0.0;
+ aspect_preference: VERTICAL;
+ }
+ }
+ part { name: "elm.swallow.icon_new";
+ description { state: "default" 0.0;
+ align: 0.0 0.5;
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "padding_right_bottom";
+ }
+ fixed: 1 0;
+ }
+ description { state: "visible" 0.0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "padding_before_text";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "padding_before_text";
+ to_y: "padding_right_bottom";
+ }
+ aspect_preference: VERTICAL;
+ }
+ description { state: "icononly" 0.0;
+ aspect_preference: VERTICAL;
+ }
+ }
+ part { name: "elm.text";
+ type: TEXTBLOCK;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "padding_after_icon";
+ to_y: "padding_left_top";
+ }
+ text {
+ style: "toolbar_style";
+ min: 1 0;
+ max: 1 0;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ description { state: "focused" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ }
+ part { name: "elm.text_new";
+ type: TEXTBLOCK;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "padding_after_icon";
+ to_y: "padding_left_top";
+ }
+ text {
+ style: "toolbar_style";
+ min: 1 0;
+ max: 1 0;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ description { state: "focused" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
+ }
+ }
+ }
+}
+
+group { name: "elm/toolbar/base/music/naviframe";
+ parts {
+ part { name: "base";
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "clipper";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to: "base";
+ offset: 2 2;
+ }
+ rel2 {
+ to: "base";
+ offset: -3 -3;
+ }
+ }
+ }
+ part { name: "elm.swallow.content";
+ clip_to: "clipper";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.to: "clipper";
+ rel2.to: "clipper";
+ }
+ }
+ part { name: "event";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ }
+}
+
+group { name: "elm/toolbar/object/music/naviframe";
+ parts {
+ part { name: "elm.swallow.object"; // object group
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.offset: 5 0;
+ rel2.offset: -6 -1;
+ }
+ }
+ }
+}
+
+
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
#define GENLIST_HEIGHT_1_INC 1
#define GENLIST_HEIGHT_16_INC 16
#define GENLIST_SIZE_576_INC 576
#define GENLIST_SIZE_672_INC 672
-#define GENLIST_PART_LIST_PRESS_COLOR_INC 0 140 210 255
-#define GENLIST_PART_LIST_BG_COLOR_INC 0 0 0 255
+#define GENLIST_PART_LIST_PRESS_COLOR_INC 42 137 194 255
+#define GENLIST_PART_LIST_BG_COLOR_INC 249 249 249 255
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
#define FONT_STYLE_ROMAN "SLP:style=Roman"
#define FONT_STYLE_MEDIUM "SLP:style=Medium"
#define FONT_STYLE_BOLD "SLP:style=Bold"
-#define GENLIST_PART_EXPANDABLE2_NOSHADOW_BASE( param_item_height ) \
- part { name: "base"; \
- type: RECT; \
- repeat_events: 1; \
- scale: 1; \
- description { state: "default" 0.0; \
- min: 0 param_item_height; \
- color: 230 228 215 255; \
- } \
- }
-
-#define GENLIST_PART_EXPANDABLE3_NOSHADOW_BASE( param_item_height ) \
- part { name: "base"; \
- type: RECT; \
- repeat_events: 1; \
- scale: 1; \
- description { state: "default" 0.0; \
- min: 0 param_item_height; \
- color: 213 212 195 255; \
- } \
- }
-
-#define GENLIST_PART_BG_EXPANDABLE_IMAGE \
- part { name: "bg_image"; \
- clip_to: "disclip"; \
- mouse_events: 0; \
- description { state: "default" 0.0; \
- image { \
- normal: "00_list_expandable_bg.png"; \
- border: 0 0 12 6; \
- border_scale: 1; \
- } \
- } \
- description { state: "selected" 0.0; \
- inherit: "default" 0.0; \
- image.normal: "00_list_bar_press_1x80.png"; \
- } \
- }
-
-#define GENLIST_PART_BG_EXPANDABLE2_IMAGE \
- part { name: "bg_image"; \
- clip_to: "disclip"; \
- mouse_events: 0; \
- description { state: "default" 0.0; \
- image { \
- normal: "00_list_expandable_2_bg.png"; \
- border: 0 0 12 6; \
- border_scale: 1; \
- } \
- } \
- description { state: "selected" 0.0; \
- inherit: "default" 0.0; \
- image.normal: "00_list_bar_press_1x80.png"; \
- } \
- }
-
-#define GENLIST_PART_BG_EXPANDABLE3_NOSHADOW_IMAGE \
- part { name: "bg_image"; \
- clip_to: "disclip"; \
- mouse_events: 0; \
- description { state: "default" 0.0; \
- image { \
- normal: "00_list_expandable_2_noshadow_bg.png"; \
- border: 0 0 0 6; \
- border_scale: 1; \
- } \
- } \
- description { state: "selected" 0.0; \
- inherit: "default" 0.0; \
- image.normal: "00_list_bar_press_1x80.png"; \
- } \
- }
-#define MP_GENLIST_BG_COLOR 37 37 37 255;
+#define MP_LIST_THUMBNAIL_INNER_LINE \
+ part { name: "innerline.top";\
+ type: RECT;\
+ scale: 1;\
+ mouse_events: 0;\
+ clip_to: "disclip";\
+ description { state: "default" 0.0;\
+ visible: 1;\
+ fixed: 1 1;\
+ align: 0 0;\
+ min: 1 1;\
+ rel1 {relative: 0.0 0.0; to, "elm.icon";}\
+ rel2 {relative: 1.0 0.0; to, "elm.icon";}\
+ color: 0 0 0 255;\
+ }\
+ GENLIST_DESCRIPTION_FLIP_ENABLED\
+ }\
+ part { name: "innerline.bottom";\
+ type: RECT;\
+ scale: 1;\
+ mouse_events: 0;\
+ clip_to: "disclip";\
+ description { state: "default" 0.0;\
+ visible: 1;\
+ fixed: 1 1;\
+ align: 0 0;\
+ min: 1 1;\
+ rel1 {relative: 0.0 1.0; to, "elm.icon";}\
+ rel2 {relative: 1.0 1.0; to, "elm.icon";}\
+ color: 0 0 0 255;\
+ }\
+ GENLIST_DESCRIPTION_FLIP_ENABLED\
+ }\
+ part { name: "innerline.left";\
+ type: RECT;\
+ scale: 1;\
+ mouse_events: 0;\
+ clip_to: "disclip";\
+ description { state: "default" 0.0;\
+ visible: 1;\
+ fixed: 1 1;\
+ align: 0 0;\
+ min: 1 1;\
+ rel1 {relative: 0.0 0.0; to, "elm.icon";}\
+ rel2 {relative: 0.0 1.0; to, "elm.icon";}\
+ color: 0 0 0 255;\
+ }\
+ GENLIST_DESCRIPTION_FLIP_ENABLED\
+ }\
+ part { name: "innerline.right";\
+ type: RECT;\
+ scale: 1;\
+ mouse_events: 0;\
+ clip_to: "disclip";\
+ description { state: "default" 0.0;\
+ visible: 1;\
+ fixed: 1 1;\
+ align: 0 0;\
+ min: 1 1;\
+ rel1 {relative: 1.0 0.0; to, "elm.icon";}\
+ rel2 {relative: 1.0 1.0; to, "elm.icon";}\
+ color: 0 0 0 255;\
+ }\
+ GENLIST_DESCRIPTION_FLIP_ENABLED\
+ }\
+
+
+#define MP_GENLIST_BG_COLOR 236 240 242 255;
#define GENLIST_PART_BASE( param_item_height ) \
part { name: "base"; \
type: RECT; \
} \
}
-#define GENLIST_PART_BG_SELECTED_COLOR_INC 50 65 74 255
+#define GENLIST_PART_BG_SELECTED_COLOR_INC 42 137 194 255
#define GENLIST_PART_BG_UNSELECTED_COLOR_INC 0 0 0 0
-#define GENLIST_PART_BG_IMAGE \
- part { name: "bg_image"; \
- type: RECT; \
- clip_to: "disclip"; \
- mouse_events: 0; \
- description { state: "default" 0.0; \
- color: GENLIST_PART_BG_UNSELECTED_COLOR_INC; \
- } \
- description { state: "selected" 0.0; \
- inherit: "default" 0.0; \
- color: GENLIST_PART_BG_SELECTED_COLOR_INC; \
- } \
- }
-#define MP_BOTTOM_LINE_COLOR 82 82 82 255;
-#define GENLIST_PART_BOTTOM_LINE \
- part { name: "bottom_line"; \
- type: RECT; \
- clip_to: "disclip"; \
- mouse_events: 0; \
- description { state: "default" 0.0; \
- min: 0 1; \
- fixed: 0 1; \
- visible: 1; \
- color: MP_BOTTOM_LINE_COLOR; \
- rel1 { \
- relative: 0.0 1.0; \
- offset: 0 -1; \
- } \
- } \
- }
-
-#define GENLIST_PART_PADDING_TOP( param_padding_size ) \
- part { name: "elm.padding.top"; \
- type: RECT; \
- scale: 1; \
- description { \
- state: "default" 0.0; \
- min: 0 param_padding_size; \
- fixed: 0 1; \
- visible: 0; \
- rel2.relative: 1.0 0.0; \
- align: 0.0 0.0; \
- } \
- }
-
-#define GENLIST_PART_PADDING_TEXT_TOP( param_padding_size ) \
- part { name: "elm.padding.text.top"; \
- type: RECT; \
- scale: 1; \
- description { \
- state: "default" 0.0; \
- min: 0 param_padding_size; \
- fixed: 0 1; \
- visible: 0; \
- rel2.relative: 1.0 0.0; \
- align: 0.0 0.0; \
- } \
- }
-
-#define GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \
- part { name: "elm.padding.bottom"; \
- type: RECT; \
- scale: 1; \
- description { \
- state: "default" 0.0; \
- min: 0 param_padding_size; \
- fixed: 0 1; \
- visible: 0; \
- rel1.relative: 0.0 1.0; \
- align: 0.0 1.0; \
- } \
- }
-
-#define GENLIST_PART_PADDING_LEFT( param_padding_size ) \
- part { name: "elm.padding.left"; \
- type: RECT; \
- scale: 1; \
- description { \
- state: "default" 0.0; \
- min: param_padding_size 0; \
- fixed: 1 0; \
- visible: 0; \
- rel2.relative: 0.0 1.0; \
- align: 0.0 0.0; \
- } \
- }
-
-#define GENLIST_PART_PADDING_RIGHT( param_padding_size ) \
- part { name: "elm.padding.right"; \
- type: RECT; \
- scale: 1; \
- description { state: "default" 0.0; \
- min: param_padding_size 0; \
- fixed: 1 0; \
- visible: 0; \
- rel1.relative: 1.0 0.0; \
- align: 1.0 0.0; \
- } \
- }
-
-#define GENLIST_PART_PADDING_LEFT_RENAME( param_padding_size ) \
- part { name: "elm.padding.left.rename"; \
- type: RECT; \
- scale: 1; \
- description { \
- state: "default" 0.0; \
- min: param_padding_size 0; \
- fixed: 1 0; \
- visible: 0; \
- rel2.relative: 0.0 1.0; \
- align: 0.0 0.0; \
- } \
- }
-
-#define GENLIST_PART_PADDING_RIGHT_RENAME( param_padding_size ) \
- part { name: "elm.padding.right.rename"; \
- type: RECT; \
- scale: 1; \
- description { state: "default" 0.0; \
- min: param_padding_size 0; \
- fixed: 1 0; \
- visible: 0; \
- rel1.relative: 1.0 0.0; \
- align: 1.0 0.0; \
- } \
- }
-
-#define BEAT_GENLIST_PART_DISCLIP \
- part { name: "disclip"; \
- type: RECT; \
- description { state: "default" 0.0; \
- rel1.to: "base"; \
- rel2.to: "base"; \
- } \
- description { state: "disabled" 0.0; \
- inherit: "default" 0.0; \
- color: 255 255 255 64; \
- } \
- }
-
-#define SWEEP_PROGRAMS \
- program { name: "go_slide_right";\
- signal: "elm,state,slide,right";\
- source: "elm";\
- action: STATE_SET "hide" 0.0;\
- target: "slide_base";\
- target: "base.disclip";\
- after: "slide_right_step1";\
- }\
- program { name: "slide_right_step1";\
- action: STATE_SET "hide" 0.1;\
- target: "slide_base";\
- target: "base.disclip";\
- transition: LINEAR 0.3;\
- after: "slide_right_step2";\
- }\
- program { name: "slide_right_step2";\
- action: STATE_SET "hide" 0.2;\
- target: "slide_base";\
- target: "base.disclip";\
- transition: LINEAR 0.3;\
- after: "slide_right_step3";\
- }\
- program { name: "slide_right_step3";\
- action: STATE_SET "hide" 0.3;\
- target: "slide_base";\
- target: "base.disclip";\
- transition: LINEAR 0.3;\
- after: "slide_right_step4";\
- }\
- program { name: "slide_right_step4";\
- action: STATE_SET "repeat_events" 0.0;\
- target: "elm.between.layer";\
- }\
- program { name: "go_slide_left";\
- signal: "elm,state,slide,left";\
- source: "elm";\
- action: STATE_SET "hide" 0.3;\
- target: "slide_base";\
- target: "base.disclip";\
- after: "slide_left_step1";\
- }\
- program { name: "slide_left_step1";\
- action: STATE_SET "default" 0.0;\
- target: "elm.between.layer";\
- after: "slide_left_step2";\
- }\
- program { name: "slide_left_step2";\
- action: STATE_SET "hide" 0.2;\
- target: "slide_base";\
- target: "base.disclip";\
- transition: LINEAR 0.3;\
- after: "slide_left_step3";\
- }\
- program { name: "slide_left_step3";\
- action: STATE_SET "hide" 0.1;\
- target: "slide_base";\
- target: "base.disclip";\
- transition: LINEAR 0.3;\
- after: "slide_left_step4";\
- }\
- program { name: "slide_left_step4";\
- action: STATE_SET "hide" 0.0;\
- target: "slide_base";\
- target: "base.disclip";\
- transition: LINEAR 0.3;\
- after: "slide_left_step5";\
- }\
- program { name: "slide_left_step5";\
- action: STATE_SET "default" 0.0;\
- target: "slide_base";\
- transition: LINEAR 0.3;\
- after: "slide_left_finish";\
- }\
- program { name: "slide_left_finish";\
- action: SIGNAL_EMIT "elm,action,sweep,left,finish" "elm";\
- }\
-
-#define SWEEP_DISCLIP \
- part { name: "base.disclip";\
- type: RECT;\
- description { state: "default" 0.0;\
- rel1.to: "base";\
- rel2.to: "base";\
- color: 255 255 255 0;\
- }\
- description { state: "base_show" 0.0;\
- inherit: "default" 0.0;\
- color: 255 255 255 255;\
- }\
- description { state: "hide" 0.0;\
- inherit: "default" 0.0;\
- color: 255 255 255 0; \
- }\
- description { state: "hide" 0.1; \
- inherit: "default" 0.0;\
- color: 255 255 255 70;\
- }\
- description { state: "hide" 0.2;\
- inherit: "default" 0.0;\
- color: 255 255 255 160; \
- }\
- description { state: "hide" 0.3;\
- inherit: "default" 0.0;\
- color: 255 255 255 255;\
- }\
- }
-
-#define SWEEP_TEXT \
- part { name: "elm.base.text";\
- type: TEXT;\
- clip_to: "base.disclip";\
- mouse_events: 0;\
- scale: 1;\
- description { state: "default" 0.0;\
- min: 0 36;\
- fixed: 0 1;\
- align: 0.5 0;\
- rel1 {\
- relative: 1 0;\
- to_x: "elm.padding.left";\
- to_y: "base";\
- }\
- rel2 {\
- relative: 0 0;\
- to_x: "elm.padding.right";\
- to_y: "base";\
- }\
- color: 255 255 255 255;\
- text {\
- font: "SLP:style=Roman";\
- size: 22;\
- min: 0 1;\
- align: 0.5 0.5;\
- }\
- }\
- }
-
-#define SWEEP_TRANSPARENT \
- part { name: "elm.between.layer";\
- type: RECT;\
- clip_to: "disclip";\
- mouse_events: 1;\
- description { state: "default" 0.0;\
- rel1.to: "base";\
- rel2.to: "base";\
- color: 0 0 0 0;\
- }\
- description { state: "repeat_events" 0.0;\
- inherit: "default" 0.0;\
- visible: 0;\
- }\
- }
-
-#define SWEEP_SLIDABLE_BASE_PARTS \
- part { name: "slide_base";\
- type: RECT;\
- clip_to: "disclip";\
- scale: 1;\
- description { state: "default" 0.0;\
- color: 0 0 0 0;\
- rel1.to: "base";\
- rel2.to: "base";\
- }\
- description { state: "hide" 0.0;\
- inherit: "default" 0.0;\
- rel1 { relative: 0.025 0.0; }\
- rel2 { relative: 1.025 1.0; }\
- }\
- description { state: "hide" 0.1; \
- inherit: "default" 0.0;\
- rel1 { relative: 0.13 0.0; }\
- rel2 { relative: 1.13 1.0; }\
- }\
- description { state: "hide" 0.2;\
- inherit: "default" 0.0;\
- rel1 { relative: 0.5 0.0; }\
- rel2 { relative: 1.5 1.0; }\
- }\
- description { state: "hide" 0.3;\
- inherit: "default" 0.0;\
- rel1 { relative: 1.0 0.0; }\
- rel2 { relative: 2.0 1.0; }\
- }\
- }\
- part { name: "slide_base.bg_image";\
- clip_to: "disclip";\
- description { state: "default" 0.0;\
- visible: 0;\
- image.normal: "00_list_bar_press_1x80.png";\
- rel1.to: "slide_base";\
- rel2.to: "slide_base";\
- }\
- description { state: "selected" 0.0;\
- inherit: "default" 0.0;\
- visible: 1;\
- }\
- }\
- part { name: "slide_base.padding.left";\
- type: RECT;\
- clip_to: "disclip";\
- mouse_events: 0;\
- scale: 1;\
- description { state: "default" 0.0;\
- min: 15 0;\
- fixed: 1 0;\
- visible: 0;\
- rel1.to: "slide_base";\
- rel2 {\
- relative: 0 1;\
- to: "slide_base";\
- }\
- }\
- }\
- part { name: "slide_base.padding.right";\
- type: RECT;\
- clip_to: "disclip";\
- mouse_events: 0;\
- scale: 1;\
- description { state: "default" 0.0;\
- min: 15 0;\
- fixed: 1 0;\
- visible: 0;\
- rel1 {\
- relative: 1 0;\
- to: "slide_base";\
- }\
- rel2.to: "slide_base";\
- }\
- }\
-
-#define GENLIST_PART_RENAME \
- part { name: "elm.edit.rename"; \
- clip_to: "disclip"; \
- type: SWALLOW; \
- mouse_events: 1; \
- scale: 1; \
- description { state: "default" 0.0; \
- visible: 0; \
- fixed: 1 1; \
- rel1 { \
- relative: 1.0 0.5; \
- to_x: "elm.padding.left"; \
- } \
- rel2 { \
- relative: 0.0 0.5; \
- to_x: "elm.padding.right"; \
- } \
- } \
- description { state: "rename_enabled" 0.0; \
- inherit: "default" 0.0; \
- visible: 1; \
- } \
- }
-
-#define GENLIST_DESCRIPTION_RENAME_ENABLED \
- description { state: "rename_enabled" 0.0; \
- inherit: "default" 0.0; \
- visible: 0; \
- }
-
-#define GENLIST_PROGRAM_RENAME_1TEXT \
- program { name: "rename_enabled"; \
- signal: "elm,state,rename,enabled"; \
- source: "elm"; \
- action: STATE_SET "rename_enabled" 0.0; \
- target: "elm.text"; \
- target: "elm.edit.rename"; \
- } \
- program { name: "rename_disabled"; \
- signal: "elm,state,rename,disabled"; \
- source: "elm"; \
- action: STATE_SET "default" 0.0; \
- target: "elm.text"; \
- target: "elm.edit.rename"; \
- }
+#define MP_BOTTOM_LINE_COLOR 169 169 169 255;
#define GENLIST_PART_PADDING_TOP( param_padding_size ) \
part { name: "elm.padding.top"; \
} \
}
-#define GENLIST_EDIT_SELECT_ALL_BG_COLOR_INC 0 0 0 255
-#define GENLIST_PART_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_EDIT_SELECT_ALL_BG_COLOR_INC 215 225 232 255
+#define GENLIST_PART_TEXT_COLOR_INC 0 0 0 255
#define GENLIST_PART_TEXT_SELECTED_COLOR_INC 249 249 249 255
-#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 64
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 110
#define GENLIST_PART_BOTTOM_LINE \
part { name: "bottom_line"; \
} \
}
+#define MP_INNERLINE_TARGETS \
+ target: "innerline.top";\
+ target: "innerline.bottom";\
+ target: "innerline.left";\
+ target: "innerline.right";\
+
#define GENLIST_PROGRAM_FLIP_1TEXT \
program { name: "flip_enabled"; \
signal: "elm,state,flip,enabled"; \
target: "elm.text"; \
target: "elm.icon"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
} \
program { name: "flip_disabled"; \
signal: "elm,state,flip,disabled"; \
target: "elm.text"; \
target: "elm.icon"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
}
#define GENLIST_PROGRAM_FLIP_1TEXT_2ICON \
target: "elm.icon.1"; \
target: "elm.icon.2"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
} \
program { name: "flip_disabled"; \
signal: "elm,state,flip,disabled"; \
target: "elm.icon.1"; \
target: "elm.icon.2"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
}
#define GENLIST_PROGRAM_FLIP_1TEXT_3ICON \
target: "elm.icon.2"; \
target: "elm.icon.3"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
} \
program { name: "flip_disabled"; \
signal: "elm,state,flip,disabled"; \
target: "elm.icon.2"; \
target: "elm.icon.3"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
}
#define GENLIST_PROGRAM_FLIP_2TEXT \
target: "elm.text.1"; \
target: "elm.text.2"; \
target: "elm.icon"; \
- target: "innerline.top"; \
- target: "innerline.bottom"; \
- target: "innerline.left"; \
- target: "innerline.right"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
} \
program { name: "flip_disabled"; \
signal: "elm,state,flip,disabled"; \
target: "elm.text.1"; \
target: "elm.text.2"; \
target: "elm.icon"; \
- target: "innerline.top"; \
- target: "innerline.bottom"; \
- target: "innerline.left"; \
- target: "innerline.right"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
}
#define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \
target: "elm.icon.1"; \
target: "elm.icon.2"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
} \
program { name: "flip_disabled"; \
signal: "elm,state,flip,disabled"; \
target: "elm.icon.1"; \
target: "elm.icon.2"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
}
#define GENLIST_PROGRAM_FLIP_2TEXT_3ICON \
target: "elm.icon.2"; \
target: "elm.icon.3"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
} \
program { name: "flip_disabled"; \
signal: "elm,state,flip,disabled"; \
target: "elm.icon.2"; \
target: "elm.icon.3"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
}
#define GENLIST_PROGRAM_FLIP_3TEXT \
target: "elm.text.3"; \
target: "elm.icon"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
} \
program { name: "flip_disabled"; \
signal: "elm,state,flip,disabled"; \
target: "elm.text.3"; \
target: "elm.icon"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
}
#define GENLIST_PROGRAM_FLIP_3TEXT_2ICON \
target: "elm.icon.1"; \
target: "elm.icon.2"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
} \
program { name: "flip_disabled"; \
signal: "elm,state,flip,disabled"; \
target: "elm.icon.1"; \
target: "elm.icon.2"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
}
#define GENLIST_PROGRAM_FLIP_3TEXT_3ICON \
target: "elm.icon.2"; \
target: "elm.icon.3"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
} \
program { name: "flip_disabled"; \
signal: "elm,state,flip,disabled"; \
target: "elm.icon.2"; \
target: "elm.icon.3"; \
target: "elm.flip.content"; \
+ MP_INNERLINE_TARGETS\
}
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
#include "mp-defines.h"
collections {
#include "mp-play-view.edc"
+ #include "mp-play-vew-landscape.edc"
#include "mp-play-control.edc"
#include "mp-play-menu.edc"
#include "mp-play-progress.edc"
#include "mp-play-info.edc"
#include "mp-play-current-playing.edc"
#include "mp-rich-info.edc"
+ #include "mp-lrc.edc"
+ #include "mp-play-mini-app.edc"
+#ifdef MP_3D_FEATURE
+ #include "mp-3d-view.edc"
+#endif
+
+#ifdef MP_SQUARE_FEATURE
+ #include "mp-square-view.edc"
+#endif
}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.music-player" version="0.1.0" install-location="internal-only">
+ <label>Music</label>
+ <author email="hm2007.kim@samsung.com" href="www.samsung.com">Hyungmin Kim</author>
+ <description>Music player</description>
+ <ui-application appid="org.tizen.music-player" exec="/opt/apps/org.tizen.music-player/bin/music-player" nodisplay="false" multiple="false" type="capp" taskmanage="true">
+ <label>Music</label>
+ <icon>org.tizen.music-player.png</icon>
+ <label xml:lang="en-us">Music</label>
+ <label xml:lang="nl-nl">Muziek</label>
+ <label xml:lang="de-de">Musik</label>
+ <label xml:lang="zh-hk">音樂</label>
+ <label xml:lang="zh-cn">音乐</label>
+ <label xml:lang="ru-ru">Музыка</label>
+ <label xml:lang="zh-tw">音樂</label>
+ <label xml:lang="ja-jp">ミュージック</label>
+ <label xml:lang="es-es">Música</label>
+ <label xml:lang="el-gr">Μουσική</label>
+ <label xml:lang="it-it">Musica</label>
+ <label xml:lang="tr-tr">Müzik</label>
+ <label xml:lang="pt-pt">Música</label>
+ <label xml:lang="fr-fr">Musique</label>
+ <label xml:lang="ko-kr">음악</label>
+ <application-service>
+ <mime name="music-player.uri" />
+ </application-service>
+ </ui-application>
+ <ui-application appid="org.tizen.sound-player" exec="/opt/apps/org.tizen.sound-player/bin/sound-player" nodisplay="true" multiple="false" type="capp" taskmanage="true">
+ <label>Sound player</label>
+ <icon>org.tizen.sound-player.png</icon>
+ <label xml:lang="en-us">Sound Player</label>
+ <label xml:lang="nl-nl">Sound Player</label>
+ <label xml:lang="de-de">Sound Player</label>
+ <label xml:lang="zh-hk">Sound Player</label>
+ <label xml:lang="zh-cn">Sound Player</label>
+ <label xml:lang="ru-ru">Sound Player</label>
+ <label xml:lang="zh-tw">Sound Player</label>
+ <label xml:lang="ja-jp">Sound Player</label>
+ <label xml:lang="es-es">Sound Player</label>
+ <label xml:lang="el-gr">Sound Player</label>
+ <label xml:lang="it-it">Sound Player</label>
+ <label xml:lang="tr-tr">Sound Player</label>
+ <label xml:lang="pt-pt">Sound Player</label>
+ <label xml:lang="fr-fr">Sound Player</label>
+ <label xml:lang="ko-kr">사운드 플레이어</label>
+ <application-service>
+ <operation name="http://tizen.org/appsvc/operation/view" />
+ <mime name="audio/*" />
+ <mime name="text/x-iMelody" />
+ <mime name="application/x-smaf" />
+ <mime name="text/x-iMelody" />
+ <uri name="http" />
+ <uri name="https" />
+ </application-service>
+ <application-service>
+ <operation name="http://tizen.org/appsvc/operation/view" />
+ <mime name="audio/*" />
+ <mime name="text/x-iMelody" />
+ <mime name="application/x-smaf" />
+ <mime name="text/x-iMelody" />
+ </application-service>
+ </ui-application>
+</manifest>
Name: org.tizen.music-player
Summary: music player application
-Version: 0.1.3
+Version: 0.1.62
Release: 1
Group: TO_BE/FILLED_IN
-License: Flora Software License
+License: Flora
Source0: %{name}-%{version}.tar.gz
-BuildRequires: pkgconfig(appcore-efl)
-BuildRequires: pkgconfig(appsvc)
-BuildRequires: pkgconfig(devman_haptic)
-BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(ecore)
-BuildRequires: pkgconfig(ecore-file)
-BuildRequires: pkgconfig(ecore-imf)
-BuildRequires: pkgconfig(ecore-input)
-BuildRequires: pkgconfig(ecore-x)
-BuildRequires: pkgconfig(edje)
-BuildRequires: pkgconfig(eina)
-BuildRequires: pkgconfig(elementary)
-BuildRequires: pkgconfig(evas)
-BuildRequires: pkgconfig(libmedia-service)
-BuildRequires: pkgconfig(libxml-2.0)
-BuildRequires: pkgconfig(mm-fileinfo)
-BuildRequires: pkgconfig(mm-player)
-BuildRequires: pkgconfig(mm-session)
-BuildRequires: pkgconfig(mm-sound)
-BuildRequires: pkgconfig(pmapi)
-BuildRequires: pkgconfig(svi)
-BuildRequires: pkgconfig(syspopup-caller)
-BuildRequires: pkgconfig(ui-gadget)
-BuildRequires: pkgconfig(utilX)
-BuildRequires: pkgconfig(vconf)
-BuildRequires: libug-contacts-devel
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(ecore)
+BuildRequires: pkgconfig(capi-media-sound-manager)
+BuildRequires: pkgconfig(capi-media-player)
+BuildRequires: pkgconfig(capi-media-metadata-extractor)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(drm-client)
+BuildRequires: pkgconfig(ui-gadget-1)
+BuildRequires: pkgconfig(syspopup-caller)
+BuildRequires: pkgconfig(capi-system-power)
+BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(eina)
+BuildRequires: pkgconfig(ecore-imf)
+BuildRequires: pkgconfig(ecore-x)
+BuildRequires: pkgconfig(ecore-file)
+BuildRequires: pkgconfig(ecore-input)
+BuildRequires: pkgconfig(libcrypto)
+BuildRequires: pkgconfig(edje)
+BuildRequires: pkgconfig(capi-appfw-app-manager)
+BuildRequires: pkgconfig(evas)
+BuildRequires: pkgconfig(capi-system-haptic)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(minicontrol-provider)
+BuildRequires: pkgconfig(capi-system-media-key)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-content-media-content)
BuildRequires: cmake
BuildRequires: prelink
BuildRequires: edje-tools
%description
music player application.
+%package -n org.tizen.sound-player
+Summary: Sound player
+Group: TO_BE/FILLED_IN
+Requires: %{name} = %{version}-%{release}
+%description -n org.tizen.sound-player
+Description: sound player application
%prep
%setup -q
%define PREFIX /opt/apps/org.tizen.music-player
+%define SP_PREFIX /opt/apps/org.tizen.sound-player
%build
-cmake . -DCMAKE_INSTALL_PREFIX="%{PREFIX}"
+cmake . -DCMAKE_INSTALL_PREFIX="%{PREFIX}" -DCMAKE_DESKTOP_ICON_DIR="/opt/share/icons/default/small"
make %{?jobs:-j%jobs}
%install
+rm -rf %{buildroot}
%make_install
execstack -c %{buildroot}%{PREFIX}/bin/music-player
-%find_lang music-player
-
+%pre
+if [ -n "`env|grep SBOX`" ]; then
+ echo "postinst: sbox installation"
+else
+ PID=`/bin/pidof music-player`
+ if [ -n "$PID" ]; then
+ echo "preinst: kill current music-player app"
+ /usr/bin/killall -9 music-player
+ fi
+fi
-%post
-/usr/bin/vconftool set -t int db/setting/music-player/menu 7 -g 6514 2> /dev/null
-/usr/bin/vconftool set -t bool db/setting/music-player/se_change 1 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t bool db/setting/music-player/menu_change 1 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t bool db/setting/music-player/surround_ch_state 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/eq_val 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/effect_val 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_1 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_2 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_3 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_4 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_5 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_6 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_7 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/setting/music-player/eq_custom_8 0 -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int memory/music/state 0 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int memory/music/process_state 0 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int memory/music/album_art 0 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t string memory/music/pos "00:00" -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t double memory/music/progress_pos 0.0 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t bool memory/music/play_clicked 1 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t bool memory/music/pause_clicked 1 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t bool memory/music/prev_pressed 1 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t bool memory/music/prev_released 1 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t bool memory/music/next_pressed 1 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t bool memory/music/next_released 1 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t bool db/music/menu/shuffle 1 -i -g 6518 2> /dev/null
-/usr/bin/vconftool set -t int db/music/menu/repeat 0 -i -g 6518 2> /dev/null
+%post
+mkdir -p %{PREFIX}/data
chown -R 5000:5000 %{PREFIX}/data
-%files -f music-player.lang
-/opt/share/applications/org.tizen.music-player.desktop
-%{PREFIX}/data
+/usr/bin/vconftool set -t int memory/music/state 0 -i -g 5000
+/usr/bin/vconftool set -t string memory/music/album_art "" -i -g 5000
+/usr/bin/vconftool set -t int db/setting/music-player/menu 7 -g 5000
+/usr/bin/vconftool set -t string memory/private/org.tizen.music-player/pos "00:00" -i -g 5000
+/usr/bin/vconftool set -t double memory/private/org.tizen.music-player/progress_pos 0.0 -i -g 5000
+/usr/bin/vconftool set -t double memory/private/org.tizen.music-player/position_changed 0.0 -i -g 5000
+/usr/bin/vconftool set -t bool db/private/org.tizen.music-player/shuffle 1 -g 5000
+/usr/bin/vconftool set -t int db/private/org.tizen.music-player/repeat 0 -g 5000
+/usr/bin/vconftool set -t int memory/private/org.tizen.music-player/playing_pid 0 -i -g 5000
+
+%files
+/opt/share/packages/org.tizen.music-player.xml
+/opt/share/icons/default/small/org.tizen.music-player.png
/opt/share/miregex/music-player.uri
%{PREFIX}/bin/music-player
+%{PREFIX}/res/locale/*/LC_MESSAGES/*.mo
%{PREFIX}/res/icons/*
%{PREFIX}/res/edje/*.edj
+#/usr/share/packages/org.tizen.sound-player.xml
+/opt/share/icons/default/small/org.tizen.sound-player.png
+%{SP_PREFIX}/bin/sound-player
+%{SP_PREFIX}/res/locale/*/LC_MESSAGES/*.mo
+
# for i18n
SET(POFILES
+ ar.po
+ bg.po
+ ca.po
+ cs.po
+ da.po
de_DE.po
el_GR.po
en.po
+ en_US.po
es_ES.po
+ fi.po
fr_FR.po
+ he.po
+ hi.po
+ hu.po
+ id.po
it_IT.po
+ ja_JP.po
ko_KR.po
+ lt.po
+ lv.po
+ ms.po
nl_NL.po
+ no.po
+ pl.po
pt_PT.po
+ ro.po
ru_RU.po
+ sk.po
+ sl.po
+ sr.po
+ sv.po
+ th.po
tr_TR.po
+ uk.po
+ vi.po
zh_CN.po
zh_HK.po
zh_TW.po
- ja_JP.po
)
SET(MSGFMT "/usr/bin/msgfmt")
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "قد تضر مستويات الصوت العالية بسمعك إذا استمعت إليها لفترة طويلة"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "غير قابل على الإضافة"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "لا توجد كلمات"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "تعذر تغيير المؤثرات الصوتية عند استخدام القناة 5.1"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "العثور على علامة"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "مؤثر صوت القناة 5.1 يعمل في وضع سماعة الأذن فقط"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "يمكن تنشيط القناة 5.1 فقط عند إيقاف المؤثرات الصوتية"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "يتعذر إنشاء قائمة تشغيل"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "يتعذر الحصول على رمز"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "مجلدات"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "تتعذر إزالة العنصر"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "غير قادر على إضافة أكثر من %d ملف موسيقى"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "يتعذر التشغيل أثناء المكالمة"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "الألبوم"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "الألبومات"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "المؤلف"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "حقوق النسخ"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "إنشاء قائمة تشغيل"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "الشرح"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "المفضلة"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "هيئة"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "غير ممكن"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "لا توجد قوائم تشغيل"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "رقم الأغنية"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "النوع"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "مجهول"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "حذف"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "تمت الإضافة"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "مسح؟"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "تمت إزالة %s"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "تم الحذف"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "حذف؟"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "ضبط كنغمة رنين لمتصل"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "تتعذر إعادة تسمية قائمة التشغيل"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "تعذر ضبطه كنغمة رنين"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "يتعذر مشاركة ملف DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "الألبومات"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "سيرة"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "الإعتمادات"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "معلومات الوسائط"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "جمع الاسطوانات وتصنيفها"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "كلمات الأغنية"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "الاسم طويل"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "التصنيف الأصلي"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "ممكن"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "إعادة عرض"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "قائمة المسارات"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "تمت إضافته بالفعل"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 القناة"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "إضافة إلى قائمة التشغيل"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "الفنان"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "الفنانون"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "تلقائي"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "الاستخدامات المتوفرة"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "تعزيز الصوت الجهير"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "الكورال"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "كلاسيك"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "المؤلف"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "المؤلفون"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "قاعة الحفلة"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "ضبط مخصص"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "رقص"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "معلومات الوسائط"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "ديناميكي"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "مؤثر"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "المعادل"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "موسيقى مجسمة"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "التحويل"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "النوع"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "الانواع"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "الجاز"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "مباشر"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "أكثر ما تم عرضه"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "نقاء صوت الموسيقى"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "قائمة الموسيقى"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "إعدادات الموسيقى"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "ألبوم الفن"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "قوائم التشغيل"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "البوب"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "المضاف حديثا"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "المعروض حديثا"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "الروك"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "مدة الأغنية"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "الصلاحية"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "عريض"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "سنوات"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "غير فعال"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "لا توجد أغاني"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "أغاني"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "إضافة قائمة تشغيل"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "نغمة المكالمة"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "إنشاء قائمة تشغيل"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "تعديل العنوان"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "المحفوظات"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "حذف"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "تغيير الاسم"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "إعادة ترتيب"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "حفظ كقائمة تشغيل"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "نغمة المنبه"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "نغمة رنين المتصل"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "تمت الإضافة إلى %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "تم فصل البلوتوث"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "تم تحديد أقصى عدد للعناصر (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "لا شيء محدد"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "يتعذر الحذف. يتم تشغيل الموسيقى المحددة"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "تعذر التشغيل. حدث خطأ"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "يتعذر التشغيل. نوع ملف غير مدعوم"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "إضافة"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "مشاركة"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "الكل"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "الفنانون"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "المؤلفون"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "القادة"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "الانواع"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "بودكاست"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "أعوام"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "تحديد جهاز"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "عدم العرض مرة أخرى"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "يمكنك بث الموسيقى إلى الأجهزة باستخدام AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "عرض كـ"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "عادي"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "المستخدم"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "لفظي"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "تحسين صوت الجهير"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "تحسين الصوت الثلاثي"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "مقهى"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "القناة الافتراضية 7.1"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "بعد 15 دقيقة"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "بعد 30 دقيقة"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "بعد ساعة"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "بعد ساعة واحدة و30 دقيقة"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "بعد ساعتين"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "إيقاف الموسيقى التلقائي"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "مؤثر الصوت هذا يعمل في وضعي سماعة الأذن وسماعة البلوتوث فقط"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Голямата сила на звука може да увреди слуха ви, ако слушате дълго"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Не може да се добави"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Няма текст"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Звуковите ефекти не може да се сменят, когато се използват 5.1 канала"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Намиране на таг"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-каналният звуков ефект работи само в режим на слушалки"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1 канала може да се активират само когато звуковите ефекти са изключени"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Не може да се създаде списък за изпълнение"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Не може да се получи таг"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Папки"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Елементът не може да се премахне"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Не могат да се добавят повече от %d музикални файла"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Не може да се възпроизведе по време на разговор"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Албум"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Албуми"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Автор"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Авторски права"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Създаване на списък за изпълнение"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Описание"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Предпочитани"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Невъзможно"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Няма списъци с песни"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Песента номер"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Тип"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Добавен"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Изтриване?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s извадена"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Премахнат"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Премахване?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Задай като тон звънене"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Списъкът за изпълнение не може да се преименува"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Не може да се зададе за тон на звънене"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Не може да се сподели файл с DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Албуми"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Биография"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Благодарение на"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Мултимедийна информация"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Дискография"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Текст"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Името е твърде дълго"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Родителска оценка"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Lъзможно"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Преглед"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Списък със записи"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Вече е добавено"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 канала"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Добавяне в списък за възпроизвеждане"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Изпълнител"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Изпълнители"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Авто"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Налични употреби"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Подобряване на баса"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Хор"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Класическа"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Композитор"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Композитор"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Концертна зала"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "По избор"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Танц"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Мултимедийна информация"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Динамично"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Ефект"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Еквалайзер"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Открито пространство"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Препращане"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Жанр"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Жанрове"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Джаз"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "На живо"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Най-изпълнявани"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Чистота на звука"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Меню музика"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Настройки за музика"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Корица албум"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Плейлиста"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Поп"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Последно добавени"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Последно изпълнени"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Рок"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Песента дължина"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Тремоло"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Валидност"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Уа-уа"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Панор."
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Години"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Изключи"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Няма песни"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Песни"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Добави плейлиста"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Тон за звънене"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Създаване на списък за изпълнение"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Редактиране на заглавие"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Хронология"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Премаxване"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Преименуване"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Пренареждане"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Запиши като списък за изпълнение"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Тон аларма"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Тон за звънене за повикващ"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Добавено в %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth е прекъснат"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Достигнат е максималният брой избрани елементи (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Нищо не е избрано"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Не може да се изтрие. Избраната музика се възпроизвежда"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Не може да се възпроизведе. Възникна грешка"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Не може да се възпроизведе. Неподдържан вид файл"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Добави"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Споделяне"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Всички"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Изпълнители"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Композ."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Диригент"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Жанрове"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Подкасти"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Години"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Избор на устр-во"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Не показвай отново"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Можете да предавате поточно музиката си до устройства с помощта на AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Пр. като"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Нормален"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Потребител"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Вокали"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Усилване на басите"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Усилване на високите"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Кафе"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Виртуален 7.1 кан"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "След 15 мин"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "След 30 мин."
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "След 1 час"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "След 1 час и 30 мин"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "След 2 часа"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Авто изключване на музика"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Този звуков ефект работи само в режими на слушалка и Bluetooth слушалки"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Volums elevats poden malmetre la seva oïda si els escolta durant molt temps"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "No es pot afegir"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Sense lletra"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "No es poden canviar els efectes de so quan s'utilitza el canal 5.1"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Buscar etiqueta"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "L'efecte de so del canal 5.1 només funciona en mode auricular"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Només es pot activar el canal 5.1 quan es desactiven els efectes de so"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "No es pot crear llista de reproducció"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "No es pot obtenir l'etiqueta"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Carpetes"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "No es pot extraure l'element"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "No es poden afegir més de %d fitxers de música"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "No es pot reproduir durant la trucada"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Àlbum"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Àlbums"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Autor"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Copyright"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Crear llista de reproducció"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Descripció"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Preferits"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "No és possible"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "No hi ha llistes de reproducció"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Número de pista"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Tipus"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Afegit"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Esborrar?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s eliminat"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Eliminat"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Eliminar?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Definir com a melodia de la persona que truca"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "No es pot canviar el nom de la llista de reproducció"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "No es pot definir com a melodia"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "No es pot compartir un fitxer DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Àlbums"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografia"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Crèdits"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Info multimèdia"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Discografia"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Lletra"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Nom massa llarg"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Classificació dels pares"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Possible"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Revisar"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Llista de pistes"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Ja s'ha afegit"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "Canal 5.1"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Afegir a llista de reproducció"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Artista"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Artistes"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Usos disponibles"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Millora dels baixos"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Cor"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Clàssica"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Compositor"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Compositors"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Sala de concerts"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Personalitzat"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dance"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Info multimèdia"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dinàmica"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efecte"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Equalitzador"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Externalització"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Reenviant"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Gènere"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Gèneres"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Directe"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "El més reproduït"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Claredat musical"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Menú Música"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Ajustaments de música"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Caràtula àlbum"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Llistes de reproducció"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Afegides recentment"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Escoltades recentment"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Durada de pista"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Validesa"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Ample"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Anys"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Desactiv"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Cap cançó"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Cançons"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Afegir llista de reproducció"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Melodia de trucada"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Crear llista de reproducció"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Editar títol"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Historial"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Eliminar"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Canviar nom"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Tornar a ordenar"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Desar com a llista de reproducció"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "To d'alarma"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Melodia de la persona que truca"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Afegit a %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth desconnectat"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "S'ha seleccionat el nombre màxim d'elements (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "No s'ha seleccionat res"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "No es pot esborrar. La musica seleccionada s'està reproduint"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "No es pot reproduir. S'ha produït un error"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "No es pot reproduir. No s'admet el tipus de fitxer"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Afegir"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Compartir"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Tot"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Artistes"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Composit"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Directors"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Gèneres"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcasts"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Anys"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Seleccioni dispositiu"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "No tornar a mostrar"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Pot reproduir la seva música en dispositius mitjançant AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Veure com"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Usuari"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Accentuació de baixos"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Accentuació d'aguts"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Cafè"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "7.1 canals virtuals"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Després de 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Després de 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Després d'1 hora"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Després d'1 hora 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Després de 2 hores"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Música automàtica desactivada"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Aquest efecte de so només funciona en els modes auricular i auriculars Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Dlouhodobý poslech velmi hlasité reprodukce může poškodit sluch"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Nelze přidat"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Bez textu"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Při použití režimu kanálu 5.1 nelze změnit zvukové efekty"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Najít značku"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "Zvukový efekt 5.1 kanál funguje pouze v režimu sluchátka"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Režim 5.1 kanál lze aktivovat pouze když jsou vypnuté zvukové efekty"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Nelze vytvořit seznam skladeb"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Značku nelze získat"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Složky"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Položku nelze odebrat"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Nelze přidat více hudebních souborů než %d"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Nelze přehrát během hovoru"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Alba"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Autor"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Copyright"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Vytvořit seznam skladeb"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Popis"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Oblíbené"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Nemožné"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Žádné seznamy skladeb"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Číslo dráhy"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Typ"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Neznámý"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Přidáno"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Odstranit?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s byla odebrána"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Odstraněno"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Odstranit?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Nastavit jako vyzváněcí tón volajícího"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Seznam skladeb nelze přejmenovat"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Nelze nastavit jako vyzváněcí tón"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Soubor DRM nelze sdílet"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Alba"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Životopis"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Kredity"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Informace o médiu"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografie"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Text"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Jméno je příliš dlouhé"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Obecné hodnocení"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Možné"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Kontrola"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Seznam skladeb"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Již přidáno"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 kanál"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Přidat do přehrávaného seznamu"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Interpret"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Interpreti"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Automaticky"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Počet použití k dispozici"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Zvýraznění basů"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Sbor"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klasika"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Skladatel"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Skladatelé"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Koncertní sál"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Vlastní"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Tanec"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Informace o médiu"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynamicky"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efekt"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Ekvalizér"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Externalizace"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Předání"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Žánr"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Žánry"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Živě"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Nejčastěji přehrávané"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Čistý zvuk"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Nabídka Hudba"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Nastavení hudby"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Obal alba"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Seznamy skladeb"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Poslední přidané"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Poslední přehrané"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Délka skladby"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Platnost"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Bum bum"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Široký"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Roky"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Vypnout"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Žádné skladby"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Skladby"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Přidat seznam skladeb"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Vyzváněcí tón hovoru"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Vytvořit seznam skladeb"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Upravit název"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Historie"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Odstranit"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Přejmenovat"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Změnit uspořádání"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Uložit jako seznam skladeb"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Tón upozornění"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Zvonění volajícího"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Přidáno do %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth odpojeno"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Byl vybrán maximální počet položek (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Není nic vybráno"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Nelze odstranit. Vybraná hudba se přehrává"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Nelze přehrát. Došlo k chybě"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Nelze přehrát. Nepodporovaný typ souboru"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Přid."
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Sdílet"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Vše"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Interpreti"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Skladat."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirigenti"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Žánry"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcasty"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Roky"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Zvolte umístění"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Znovu nezobrazovat"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Pomocí AllShare lze vysílat datový proud hudby do zařízení"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Zob. jako"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normální"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Uživatel"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokály"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Zesílení basů"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Zesílení výšek"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kavárna"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtuální 7.1 kan."
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Za 15 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Za 30 minut"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Za 1 hodinu"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Za 1 hodinu 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Za 2 hodiny"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Automatické vypnutí hudby"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Tento zvukový efekt funguje pouze se sluchátky a se sluchátky Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Høj musik kan skade din hørelse, hvis du lytter i for lang tid"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Der kan ikke tilføjes"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Ingen lyrik"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Kan ikke ændre lydeffekter ved brug af 5.1 kanal"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Find Kode"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 effekten kanallyd fungerer kun i tilstanden høretelefoner"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1 kanal kan kun aktiveres, når lydeffekter er fra"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Afspilningslisten kan ikke oprettes"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Kunne ikke hente tag"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Mapper"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Elementet kunne ikke fjernes"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Kunne ikke tilføje mere end %d musikfil"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Kunne ikke afspille under opkald"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Forfatter"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Ophavsret"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Opret afspilningsliste"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Beskrivelse"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Favoritter"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Ikke mulig"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Ingen afspilningslister"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Spor-nummer"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Type"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Tilføjet"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Slet?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s er fjernet"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Fjernet"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Fjern?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Indstil som opkaldsringetone"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Afspilningslisten kan ikke omdøbes"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Kan ikke indstille som ringetone"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "DRM-fil kan ikke deles"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografi"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Anerkendelse"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Medieoplysninger"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografi"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Lyrik"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Navnet er for langt"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Forældrebedømmelse"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Muligt"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Visning"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Afspilningsliste"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Allerede tilføjet"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 kanal"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Føj til afspilningsliste"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Kunstner"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Kunstnere"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Gange tilbage"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Basforbedring"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Kor"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klassisk"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Komponist"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Komponister"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Koncertsal"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Brugerdefineret"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dance"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Medieoplysninger"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynamisk"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Effekt"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Equalizer"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Eksternalisering"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Viderestiller"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Genre"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Genrer"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Direkte"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Mest afspillede"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Musikklarhed"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Musikmenu"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Musikindstillinger"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Albumcover"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Afspilningslister"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Tilføjet for nylig"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Afspillet for nylig"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Sporets længde"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Gyldighed"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Bred"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "År"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Fra"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Ingen sange"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Sange"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Tilføj afspilningsliste"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Telefonringetone"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Opret afspilningsliste"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Rediger titel"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Oversigt"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Fjern"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Omdøb"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Skift rækkefølge"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Gem som afspilningsliste"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Alarmtone"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Kontakt ringetone"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Føjet til %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth-forbindelse afbrudt"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Det maksimale elementer (%d) valgt"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Intet er valgt"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Kan ikke slette. Valgt musik afspilles"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Kan ikke afspille. Der opstod en fejl"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Kan ikke afspille. Filtypen understøttes ikke"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Tilføj"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Del"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Alle"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Kunstnere"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Kompon."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirigent"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Genrer"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcasts"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "År"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Vælg enhed"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Vis ikke igen"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Du kan streame din musik til enheder ved hjælp af AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Vis som"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Bruger"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Basforstærkning"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Diskantforstærkning"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Cafe"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtuel 7.1-kan"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Efter 15 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Efter 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Efter 1 time"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Efter 1 time og 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Efter 2 timer"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Automatisk musik fra"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Denne lydeffekt fungerer kun i tilstandene høretelefon og Bluetooth-høretelefon"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Das Hören lauter Musik über einen längeren Zeitraum kann sich schädlich auf Ihr Gehör auswirken."
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Hinzufügen nicht möglich"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Keine\nLyrics"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Soundeffekte können nicht geändert werden, wenn Kanal 5.1 verwendet wird."
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Tag finden"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-Sound-Effekte nur im Kopfhörer-Modus möglich"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Kanal 5.1 kann nur aktiviert werden, wenn die Soundeffekte ausgeschaltet sind."
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Erstellen der Wiedergabeliste nicht möglich"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Tag kann nicht abgerufen werden"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Ordner"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "Element kann nicht entfernt werden"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Jahre"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Gerät auswählen"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Nicht mehr anzeigen"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Sie können Ihre Musik mit AllShare auf Geräte streamen."
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Ansicht"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Benutzer"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Bass Boost"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Treblebooster"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Café"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "7.1 Kanäle virtuell"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Nach 15 Min."
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Nach 30 Minuten"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Nach 1 Stunde"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Nach 1 Stunde und 30 Minuten"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Nach 2 Stunden"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Musik-Auto aus"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Dieser Sound-Effekt funktioniert nur im Kopfhörer- und Bluetooth-Headset-Modus."
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Η ακρόαση μουσικής σε υψηλή ένταση για μεγάλο χρονικό διάστημα μπορεί να βλάψει την ακοή σας"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Δεν είναι δυνατή η προσθήκη"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Χωρίς στίχους"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Δεν είναι δυνατή η αλλαγή των ηχητικών εφέ κατά τη χρήση του καναλιού 5.1"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Αναζήτηση ετικέτας"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "Τo εφέ ήχων του καναλιού 5.1 εκτελείται μόνο στη λειτουργία ακουστικών"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Το κανάλι 5.1 μπορεί να ενεργοποιηθεί μόνο όταν τα ηχητικά εφέ είναι απενεργοποιημένα"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Δεν είναι δυνατή η δημιουργία λίστας αναπαραγωγής"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Δεν είναι δυνατή η λήψη φράσης"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Φάκελοι"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "Δεν είναι δυνατή η αφαίρεση του στοιχείου"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Έτη"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Επιλογή συσκευής"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Να μην εμφανιστεί ξανά"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Μπορείτε να ακούσετε τη μουσική σας μέσω ροής σε συσκευές χρησιμοποιώντας το AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Προβ. ως"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Κανονικό"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Χρήστης"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Φωνητικά"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Ενίσχυση μπάσων"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Ενίσχυση πρίμων"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Καφετέρια"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Εικονικό κανάλι 7.1"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Μετά από 15 λεπτά"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Μετά από 30 λεπτά"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Μετά από 1 ώρα"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Μετά από 1 ώρα 30 λεπτά"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Μετά από 2 ώρες"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Αυτόματη απενεργοποίηση μουσικής"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Αυτό το εφέ ήχων εκτελείται μόνο στη λειτουργία ακουστικών και Bluetooth"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "High volumes may harm your hearing if you listen for a long time"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Unable to add"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "No lyrics"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Unable to change sound effects when using 5.1 channel"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Find tag"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 channel sound effect works in earphone mode only"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1 channel can only be activated when sound effects are off"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Unable to create playlist"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Unable to get tag"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Folders"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "Unable to remove item"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Years"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Select device"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Do not show again"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "You can stream your music to devices using AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "View as"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "User"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Bass boost"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Treble boost"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Cafe"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "After 15 mins"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "After 30 mins"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "After 1 hour"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "After 1 hour 30 mins"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "After 2 hours"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Music auto off"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "This sound effect works in earphone and Bluetooth headset modes only"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "High volumes may harm your hearing if you listen for a long time"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Unable to add"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "No lyrics"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Unable to change sound effects when using 5.1 channel"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Find tag"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 channel sound effect works in earphone mode only"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1 channel can only be activated when sound effects are off"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Unable to create playlist"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Unable to get tag"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Folders"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Unable to remove item"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Unable to add more than %d music file"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Unable to play during call"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albums"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Author"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Copyright"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Create playlist"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Description"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Favorites"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Impossible"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Location"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "No playlists"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Track number"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Type"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Added"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Delete?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s removed"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Removed"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Remove?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Set as caller ringtone"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Unable to rename playlist"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Unable to set as ringtone"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Unable to share DRM file"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albums"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biography"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Credits"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Media info"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Discography"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Lyric"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Name too long"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Parent rating"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Possible"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Review"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Track list"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Already added"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 channel"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Add to playlist"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Artist"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Artists"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Available uses"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Bass enhancement"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Chorus"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Classic"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Composer"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Composers"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Concert hall"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Custom"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dance"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Media info"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynamic"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Effect"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Equalizer"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Externalization"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Forwarding"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Genre"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Genres"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Live"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Most played"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Music clarity"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Music menu"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Music settings"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Album art"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Playlists"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Recently added"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Recently played"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Track length"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Validity"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Wide"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Years"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Off"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "No songs"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Songs"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Add playlist"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Call ringtone"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Create playlist"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Edit title"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "History"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Remove"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Rename"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Reorder"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Save as playlist"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Alarm tone"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Caller ringtone"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Added to %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth disconnected"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Maximum number of items (%d) selected"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Nothing selected"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Unable to delete. Selected music is playing"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Unable to play. Error occurred"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Unable to play. Unsupported file type"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Add"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Share"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "All"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Artists"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Composers"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Conductors"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Genres"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcasts"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Years"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Select device"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Do not show again"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "You can stream your music to devices using AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "View as"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "User"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Bass boost"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Treble boost"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Cafe"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "After 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "After 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "After 1 hour"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "After 1 hour 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "After 2 hours"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Music auto off"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "This sound effect works in earphone and Bluetooth headset modes only"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "El volumen alto durante un tiempo prolongado puede dañar sus oídos"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "No se puede añadir"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Sin letra"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "No se pueden cambiar los efectos de sonido con el canal 5.1 en uso"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Buscar etiqueta"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "El efecto de sonido del canal 5.1 sólo funciona en modo auricular"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "El canal 5.1 sólo puede activarse con efectos de sonido desactivados"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "No se puede crear la lista de reproducción"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "No se puede obtener etiqueta"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Carpetas"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "No se puede quitar elemento"
msgstr "Eliminar"
msgid "IDS_MUSIC_OPT_RENAME"
-msgstr "Cambiar nombre"
+msgstr "Renombrar"
msgid "IDS_MUSIC_OPT_REORDER"
msgstr "Reordenar"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Años"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Seleccione dispositivo"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "No mostrar de nuevo"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Puede transmitir su música en dispositivos usando AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Ver como"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Usuario"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Ecualizar graves"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Ecualizar agudos"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Café"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Canales 7.1 virtuales"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Después de 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Después de 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Después de 1 hora"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Después de 1 hora 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Después de 2 horas"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Música automática desactivada"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Este efecto de sonido sólo funciona en los modos de auricular y auricular Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Suuri äänenvoimakkuus vaurioittaa kuuloasi pitkäaikaisen kuuntelun aikana"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Lisääminen ei onnistu"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Ei sa-noitusta"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Äänitehosteita ei voi muuttaa, kun 5.1-kanava on käytössä"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Etsi tunniste"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-kanavainen äänitehoste toimii vain kuuloketilassa"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1-kanava voidaan aktivoida vain silloin, kun äänitehosteet on poistettu käytöstä"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Soittolistan luonti epäonnistui"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Tunnistetta ei voi hakea"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Kansiot"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Kohdetta ei voi poistaa"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Yli %d musiikkitiedostoa ei voi lisätä"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Puhelun aikana ei voi toistaa"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Albumi"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albumit"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Tekijä"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Tekijänoikeus"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Luo soittolista"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Kuvaus"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Suosikit"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Muoto"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Mahdoton"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Paikka"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Ei soittolistoja"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Kappaleen numero"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Tyyppi"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Lisätty"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Poistetaanko?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s poistettu"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Poistettu"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Poistetaanko?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Aseta soittajan soittoääneksi"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Soittolistan nimeäminen uudelleen epäonnistui"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Ei voi asettaa soittoääneksi"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "DRM-tiedostoa ei voi jakaa"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albumit"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografia"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Tekijät"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Median tiedot"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografia"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Sanoitus"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Nimi on liian pitkä"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Aikuisluokitus"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Mahdollinen"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Tarkista"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Kappaleluettelo"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "On jo lisätty"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1-kanavainen"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Lisää toistoluetteloon"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Esittäjä"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Esittäjät"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Automaattinen"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Jäljellä olevat käyttökerrat"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Basson korostus"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Kuoro"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klassinen"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Säveltäjä"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Säveltäjät"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Konserttisali"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Mukautettu"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Tanssi"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Median tiedot"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynaaminen"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Tehoste"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Taajuuskorjain"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Ulkoistaminen"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Edelleenlähetys"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Tyylilaji"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Tyylilajit"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Suora"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Eniten soitetut"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Musiikin selkeys"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Musiikkivalikko"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Musiikkiasetukset"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Kansitaide"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Soittolistat"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Viimeksi lisätyt"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Viimeksi soitetut"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Kappaleen pituus"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Kelpoisuus"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wah-wah"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Leveä"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Vuosi"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Pois päältä"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Ei kappaleita"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Kappaleet"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Lisää soittolista"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Puhelun soittoääni"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Luo soittolista"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Muokkaa otsikkoa"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Historia"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Poista"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Nimeä uudelleen"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Järjestä uudestaan"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Tallenna soittolistana"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Hälytysääni"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Soittajan soittoääni"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Lisätty kohteeseen %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth-yhteys on katkennut"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Valittujen kohteiden enimmäismäärä (%d) saavutettu"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Mitään ei valittu"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Ei voi poistaa. Valittu musiikki soi"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Ei voi toistaa. Tapahtui virhe"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Toisto ei onnistu. Tiedostotyyppiä ei tueta"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Lisää"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Jaa"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Kaikki"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Esittäjät"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Sävelt."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Kap.m."
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Tyylilajit"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcast"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Vuodet"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Valitse laite"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Älä näytä uudestaan"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Voit virtauttaa musiikin AllShare-laitteisiin"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "N.tapa"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normaali"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Käyttäjä"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Laulu"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Bassokorostus"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Diskanttikorostus"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kahvila"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtuaalinen 7.1-kanava"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "15 min kuluttua"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "30 min kuluttua"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "1 tunnin kuluttua"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "1 h 30 min kuluttua"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "2 tunnin kuluttua"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Automaattinen musiikin lopetus"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Tämä äänitehoste toimii vain kuuloke- ja Bluetooth-kuuloketiloissa"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr " L'écoute prolongée de musique à un volume élevé risque d'endommager votre audition"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Impossible à ajouter"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Aucune parole"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Modification des effets sonores impossible lors de l'utilisation du canal 5.1"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Rechercher tag"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "L'effet sonore 5.1 ne fonctionne qu'en mode Ecouteur uniquement"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Le canal 5.1 ne peut être activé que si les effets sonores sont désactivés"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Impossible de créer la liste de lecture"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Impossible d'obtenir le libellé"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Dossiers"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "Impossible de retirer l'élément"
msgstr "Artistes"
msgid "IDS_MUSIC_BODY_AUTO"
-msgstr "Auto"
+msgstr "Auto."
msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
msgstr "Utilisations disponibles"
msgstr "Ajoutés récemment"
msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
-msgstr "Ecoutés récemment"
+msgstr "Écoutés récemment"
msgid "IDS_MUSIC_BODY_ROCK"
msgstr "Rock"
msgstr "Années"
msgid "IDS_MUSIC_BUTTON_OFF"
-msgstr "Désactiver"
+msgstr "Désactivé"
msgid "IDS_MUSIC_HEADER_NO_SONGS"
msgstr "Aucun titre"
msgstr "Enregistrer comme liste de lecture"
msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
-msgstr "Tonalité alarme"
+msgstr "Tonalité de l'alarme"
msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
-msgstr "Sonnerie personnalisée"
+msgstr "Sonnerie d'appelant"
msgid "IDS_MUSIC_POP_ADDED_TO_PS"
msgstr "Ajouté à %s"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Années"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Sélectionnez le périphérique"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Ne plus afficher"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Vous pouvez diffuser votre musique sur des périphériques via AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Affichage"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Utilisateur"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Chant"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Amplification des basses"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Amplification des aigus"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Café"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Canal 7.1 virtuel"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Après 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Après 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Après 1 heure"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Après 1 heure 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Après 2 heures"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Arrêt auto de la musique"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "L'effet sonore fonctionne uniquement avec le mode Ecouteur et le casque Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "עוצמות קול גבוהות עלולות לפגוע בשמיעה אם מאזינים להן למשך זמן רב"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "לא ניתן להוסיף"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "ללא מילים"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "לא ניתן שלנות אפקטי צליל בזמן שימוש ב-5.1 ערוצים"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "חפש תג"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "אפקט הקול 5.1 ערוצים פועל במצב אוזניה בלבד"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "ניתן להפעיל 5.1 ערוצים רק כאשר אפקטי צליל כבויים"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "לא ניתן ליצור רשימת השמעה חדשה"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "לא ניתן לקבל תגית"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "תיקיות"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "לא ניתן להסיר פריט"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "לא ניתן להוסיף פריט בנפח של יותר מ-%d KB"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "לא ניתן להפעיל במהלך שיחה"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "גלריה"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "אלבומים"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "מחבר"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "זכויות יוצרים"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "צור רשימת השמעה"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "תיאור"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "מועדפים"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "פורמט"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "לא אפשרי"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "מיקום"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "אין רשימות השמעה"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "מספר רצועה"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "סוג"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "לא ידוע"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "מחק"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "נוסף"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "למחוק?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s הוסר"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "הוסר"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "להסיר?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "הגדר כצלצול מתקשר"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "לא ניתן לשנות שם של רשימת השמעה"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "לא ניתן להגדיר כצלצול"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "לא ניתן לשתף קובץ DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "אלבומים"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "ביוגרפיה"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "קרדיטים"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "פרטי מדיה"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "דיסקוגרפיה"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "לירי"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "השם ארוך מדי"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "דירוג ההורים"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "אפשרי"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "סקירה"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "רשימת הרצועות"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "כבר נוסף"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 ערוצים"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "הוסף לרשימת השמעה"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "אמן"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "אמנים"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "אוטומטי"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "שימושים זמינים"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "הגברת בסים"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "מקהלה"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "קלאסי"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "מלחין"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "יוצרים"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "אולם קונצרטים"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "תפריט מותאם"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "דאנס"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "פרטי מדיה"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "דינאמי"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "אפקט"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "אקוולייזר"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "החצנה"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "העברה"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "ז'אנר"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "ז'אנרים"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "ג'אז"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "הופעה חיה"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "הושמע הכי הרבה"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "צלילות המוסיקה"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "תפריט מוסיקה"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "הגדרות מוסיקה"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "תמונת אלבום"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "רשימות השמעה"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "פופ"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "נוסף לאחרונה"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "הושמע לאחרונה"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "רוק"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "אורך רצועה"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "תקפות"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "רחב"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "שנה"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "כבוי"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "אין שירים"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "שירים"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "הוסף רשימת השמעה"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "צלצול שיחה"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "צור רשימת השמעה"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "ערוך כותרת"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "היסטוריה"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "הסר"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "שנה שם"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "סדר מחדש"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "שמור כרשימת השמעה"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "צליל התראה"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "צלצול מתקשר"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "התווסף ל-%s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth מנותק"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "נבחר המספר המרבי של פריטים (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "אין פריט נבחר"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "לא ניתן למחוק. המוסיקה שנבחרה מושמעת"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "לא ניתן להפעיל. אירעה שגיאה"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "לא ניתן להפעיל. סוג קובץ לא נתמך"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "הוספה"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "שתף"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "הכל"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "אמנים"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "יוצרים"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "מוליכים"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "ז'אנרים"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "פודקאסט"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "שנה"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "בחר התקן"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "אל תציג שוב"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "ניתן להזרים מוסיקה להתקנים בעזרת AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "הצג בתור"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "רגיל"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "משתמש"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "שירה"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "מגביר בס"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "מגביר טרבל"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "קפה"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "ערוץ 7.1 וירטואלי"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "לאחר 15 דקות"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "לאחר 30 דק'"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "לאחר שעה"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "לאחר שעה ו-30 דקות"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "לאחר שעתיים"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "כיבוי אוטומטי של מוסיקה"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "אפקט קול זה פועל רק במצב אוזניה ואוזניית Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "उच्च वॉल्यूम से आपके सुनने में नुकसान हो सकता है यदि आप लंबे समय तक उसे सुनते हैं"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "जोड़ने में अक्षम"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "गीत नहीं"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "5.1 चैनल का उपयोग करने पर साउंड इफेक्ट्स बदलने में अक्षम"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "टैग ढूँढें"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 चैनल ध्वनि प्रभाव सिर्फ़ इयरफोन अवस्था में ही काम करता है"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "ध्वनि प्रभाव बंद होने पर केवल 5.1 चैनल सक्रिय हो सकता है"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "प्लेलिस्ट्स बनाने में अक्षम"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "टैग प्राप्त करने में अक्षम"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "फ़ोल्डर्स"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "आइटम रिमूव करने में अक्षम"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "%d से अधिक संगीत फ़ाइल जोड़ने में अक्षम"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "कॉल के दौरान चलाने में असमर्थ"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "एल्बम"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "एल्बम"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "लेखक"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "कॉपीराइट"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "प्लेसूची बनाएँ"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "विवरण"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "पसंदीदा"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "फॉर्मेट"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "असंभव"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "प्लेसूचियाँ नहीं है"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "ट्रैक नंबर"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "प्रकार"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "जोड़ा गया"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "हटाएँ?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s हटाया गया"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "हटाया"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "हटाएँ?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "कॉलर रिंगटोन के रूप में सेट करें"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "प्लेलिस्ट का नाम बदलने में अक्षम"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "रिंगटोन के रूप में सेट करने में अक्षम"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "DRM फ़ाइल साझा करने में अक्षम"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "अल्बम"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "जीवनी"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "क्रेडिट्स"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "मीडिया सूचना"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "डिस्कोग्राफ़ी"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "बोल"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "नाम काफी लम्बा है"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "पैरेंट रेटिंग"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "संभव"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "समीक्षा"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "ट्रैक सुची"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "पहले ही ज़ोड दिया है"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 चैनल"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "प्लेसूची में जोड़ें"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "कलाकार"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "कलाकार"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "स्वतः"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "उपलब्ध उपयोग"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "बास एन्हेंसमेंट"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "समूहगायक"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "शास्त्रीय"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "कंपोज़र"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "संगीतकार"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "कॉन्सर्ट हॉल"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "कस्टम"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "नृत्य"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "मीडिया सूचना"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "डायनामिक"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "प्रभाव"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "इक्वेलाईजर"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "बाह्यकरण"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "अग्रेषण"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "शैली"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "शैली"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "जैज़"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "लाइव"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "अधिकांश चलायें हुए"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "संगीत स्पष्टता"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "संगीत मेन्यू"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "म्यूज़िक सेटिंग्स"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "एल्बम कला"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "प्लेसूचियाँ"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "पॉप"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "हाल में जोड़ा गया"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "हाल में चलाया गया"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "रॉक"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "ट्रैक की लंबाई"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "ट्रेमोलो"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "वैधता"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "व्हा-व्हा"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "वाइड"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "वर्ष"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "बंद"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "कोई गाने नहीं"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "गाने"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "प्लेसूची जोड़ें"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "कॉल रिंगटोन"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "प्लेसूची बनाएँ"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "शीर्षक सम्पादित करें"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "इतिहास"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "हटाएँ"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "पुन: नाम दें"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "पुन: क्रम"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "प्लेसूची के रूप में सुरक्षित करें"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "अलार्म स्वर"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "कॉलर रिंगटोन"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "%s में जोड़ा गया"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "ब्लूटूथ डिस्कनेक्ट हो गया है"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "मदों की अधिकतम संख्या (%d) चयनित"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "कुछ चयनित नहीं"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "हटाने में अक्षम। चयनित म्यूज़िक चल रहा है"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "चलाने में अक्षम। त्रुटि पाई गई"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "चलाने में अक्षम. असमर्थित फ़ाइल प्रकार"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "जोड़ें"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "शेयर"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "सभी"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "कलाकार"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "कम्पोजर्स"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "कंडक्टर"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "जेन्रेस"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "पॉडकास्ट्स"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "वर्ष"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "डिवाइस चुनें"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "दुबारा न दिखाएँ"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "ऑलशेयर का उपयोग करते हुए आप आपका म्यूज़िक डिवाइसेस में स्ट्रीम कर सकते हैं"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "के रूप में देखें"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "सामान्य"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "उपयोक्ता"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "मौखिक"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "बास बूस्ट"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "ट्रेबल बूस्ट"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "जलपानगृह"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "वर्चुअल 7.1 ch"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "15 मिनट बाद"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "30 मिनट बाद"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "1 घंटे बाद"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "1 घंटा 30 मिनट के बाद"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "2 घंटे बाद"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "संगीत स्वत: बंद"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "यह ध्वनि प्रभाव केवल इयरफ़ोन और Bluetooth headset मोड्स में काम करता है"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Velika glasnoća može oštetiti sluh pri dugom slušanju"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Nije moguće dodati"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Nema tekstova"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "U načinu zvuka 5.1 kanala nije moguća promjena zvučnih efekata"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Info pjesme"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "Zvučni efekt 5.1 kanala radi samo u načinu slušalice"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5,1-kanalni zvuk radi samo kada su zvučni efekti isključeni"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Nije moguće napraviti popis pjesama"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Oznaka nedostupna"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Mape"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Nemoguće premještanje"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Moguće dodati najviše %d pjesama"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Nemoguće reprod. tijekom poziva"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albumi"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Autor"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Autorsko pravo"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Novi popis pjesama"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Opis"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Favoriti"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Nemoguće"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Nema popisa pjesama"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Broj pjesme"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Vrsta"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Dodano"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Obrisati?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s uklonjen"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Uklonjeno"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Ukloniti?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Postavi za ton pozivatelja"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Nije moguće preimenovati popis pjesama"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Nemoguće postaviti za ton zvona"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Nemoguće dijeliti zaštićenu datoteku"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albumi"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografija"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Zasluge"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Podaci o mediju"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografija"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Tekst"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Predugačko ime"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Roditeljska zaštita"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Moguće"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Pregled"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Popis pjesama"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Već dodano"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 kanal"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Dodaj na popis za reprodukciju"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Izvođač"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Izvođači"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Preostalo upotreba"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Pojačanje basa"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Chorus"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klasično"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Kompozitor"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Skladatelji"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Koncertna dvorana"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Prilagođeno"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dance"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Podaci o mediju"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dinamično"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efekt"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Equaliser"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Vanjski zvuk"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Prosljeđivanje"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Žanr"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Žanrovi"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Uživo"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Najslušanije"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Čistoća glazbe"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Glazbeni meni"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Postavke glazbe"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Omot albuma"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Popisi pjesama"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Nedavno dodano"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Posljednje"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Trajanje zapisa"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Valjanost"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Široko"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Godine"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Nema pjesama"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Pjesme"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Dodaj popis"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Melodija zvona"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Novi popis pjesama"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Uredi naslov"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Povijest"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Ukloni"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Poredaj"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Spremi kao popis pjesama"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Ton alarma"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Ton pozivatelja"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Dodano u %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth isključen"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Maks. broj (%d) odabranih stavki"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Ništa odabrano"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Nemoguće obrisati. Reproducira se odabrana glazba"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Greška reprodukcije"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Ne može se reproducirati. Nepodržana vrsta datoteke"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Dodaj"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Dijeli"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Sve"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Izvođači"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Skladatelji"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirigenti"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Žanrovi"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcast"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Godine"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Odaberite uređaj"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Ne prikazuj više"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Možete puštati svoju glazbu na uređajima pomoću AllSharea"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Prikaži kao"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normalno"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Korisnik"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Pojačanje basa"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Pojačanje visokih tonova"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kafić"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtualni 7.1 kanal"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Nakon 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Nakon 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Nakon 1 sat"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Nakon 1 sata i 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Nakon 2 sata"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Auto. isključivanje glazbe"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Ovaj zvučni efekt radi samo u načinu slušalice i Bluetooth slušalice"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Ha sokáig hallgat nagy hangerőn zenét vagy egyebet, akkor károsodhat a hallása"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Nem adható hozzá"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Nincs dalszöv."
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Az 5.1 csatorna használata közben a hangeffektusok nem módosíthatók"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Címke keresése"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "Az 5.1 csatorna hangeffektus csak fülhallgatós üzemmódban működik"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Az 5.1 csatorna térhatás csak akkor aktiválható, ha a hangeffektusok ki vannak kapcsolva"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Nem hozható létre lejátszási lista"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Nem sikerült lekérni a címkét"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Mappák"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "A tétel nem távolítható el"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Legfeljebb %d zenei fájl adható hozzá"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Hívás közben nem lehet lejátszani"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albumok"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Szerző"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Szerzői jog"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Új lejátszási lista"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Leírás"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Kedvencek"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Formátum"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Nem lehetséges"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Nincs lejátszási lista"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Szám száma"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Típus"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Töröl"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Hozzáadva"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Törli?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s eltávolítva"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Törölve"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Törli?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Beállítás hívó csengőhangként"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "A lejátszási listát nem lehet átnevezni"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Nem állítható be csengőhangként"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "A DRM-fájl nem osztható meg"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albumok"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Életrajz"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Közreműködők"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Média adatai"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diszkográfia"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Dalszöveg"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "A név túl hosszú"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Szülői értékelés"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Lehetséges"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Előnézet"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Számlista"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Már hozzáadva"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 csatorna"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Lejátszási listára"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Előadó"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Előadók"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Auto."
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Lehetséges felhasználás"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Bass enhancement"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Kórus"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Classic"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Zeneszerző"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Szerzők"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Concert hall"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Egyedi"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dance"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Média adatai"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynamic"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Effektus"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Ekvalizer"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Externalisation"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Továbbítás"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Műfaj"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Műfajok"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Live"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Leggyakrabban játszott"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Music clarity"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Zene menü"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Zenebeállítások"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Lemezborító"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Lejátszási listák"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Legutóbb hozzáadott"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Legutóbb lejátszott"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Szám hossza"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremoló"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Érvényesség"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Wide"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Év"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Ki"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Nincs szám"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Számok"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Lejátszási lista hozzáadása"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Hívás csengőhangja"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Új lejátszási lista"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Név szerkesztése"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Előzmények"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Eltávolít"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Átnevez"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Átrendezés"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Mentés lejátszási listaként"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Jelzőhang"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Hívó csengőhangja"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Hozzáadás a következőhöz: %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth szétkapcsolva"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Maximális számú (%d) tétel van kiválasztva"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Semmi nincs kiválasztva"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Nem lehet törölni. Zene lejátszása folyamatban"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Nem játszható le. Hiba történt"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Nem játszható le. Nem támogatott fájltípus"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Hozzáad"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Megosztás"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Mind"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Előadók"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Szerzők"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Kar- mesterek"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Műfajok"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Pod- castok"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Évek"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Válasszon eszközt"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Ne jelenjen meg ismét"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Az AllShare segítségével adatfolyamként küldhet zenét az eszközökre"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Nézet"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normál"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Felhasználó"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Mély hangok kiemelése"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Magas hangok kiemelése"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Cafe"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtuális 7.1 csatorna"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "15 perc múlva"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "30 perc múlva"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "1 óra múlva"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "1 óra 30 perc múlva"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "2 óra múlva"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Lejátszó automatikus kikapcsolása"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "A hangeffektus csak fülhallgatós és Bluetooth-fejhallgatós üzemmódban működik"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Volume tinggi dapat membahayakan pendengaran Anda jika Anda mendengarkannya dalam waktu yang lama"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Tidak bisa menambah"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Tidak ada lirik"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Tidak dapat mengubah efek suara saat menggunakan saluran 5.1"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Temukan tag"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "efek suara saluran 5.1 hanya bekerja pada mode earphone saja"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Saluran 5.1 hanya dapat diaktifkan saat efek suara tdk aktif"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Tidak bisa membuat daftar putar"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Tidak bisa mendapatkan tag"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Folder"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Tidak bisa menghapus item"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Tidak bisa menambahkan lebih dari %d file lagu"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Tidak bisa memutar selama panggilan"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Pencipta"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Hak Cipta"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Buat daftar putar"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Penggambaran"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Favorit"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Tdk memungkinkan"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Lokasi"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Tanpa daftar putar"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Nomor track"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Tipe"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Tidak diketahui"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Hapus"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Ditambahkan"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Hapus?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s dihapus"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Dihapus"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Hapus?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Atur sebagai nada dering pemanggil"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Gagal menamai ulang daftar putar"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Tidak bisa menetapkan sebagai nada dering"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Tidak bisa membagi file DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografi"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Kredit"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Info media"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografi"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Lirik"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Nama terlalu panjang"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Peringkat orang tua"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Memungkinkan"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Tinjauan"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Daftar trek"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Sudah ditambahkan"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 Saluran"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Tambahkan ke daftar putar"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Artis"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Artis"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Otomatis"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Tersedia utk digunakan"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Penambahan bass"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Chorus"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klasik"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Composer"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Pencipta"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Aula konser"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Kustomisasi"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dansa"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Info media"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dinamis"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efek"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Equalizer"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Eksternalisasi"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Meneruskan"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Aliran"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Aliran"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Langsung"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Paling sering diputar"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Kejelasan lagu"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Menu musik"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Pengaturan pemutar musik"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Seni album"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Daftar putar"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Baru ditambahkan"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Terakhir diputar"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Panjang track"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Berlaku"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Lebar"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Tahun"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Tdk aktif"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Tdk ada lagu"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Lagu"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Tambah daftar putar"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Nada dering panggilan"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Buat daftar putar"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Edit judul"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Histori"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Hapus"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Ganti nama"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Urut ulang"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Simpan sebagai daftar putar"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Nada alarm"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Nada dering pemanggil"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Ditambahkan ke %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth terputus"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Jumlah maksimum item (%d) yang dipilih"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Tidak ada yang dipilih"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Tidak bisa menghapus. Musik yang dipilih sedang diputar"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Tidak bisa memutar. Terjadi kesalahan"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Tidak bisa memutar. Tipe file tak didukung"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Tambahkn"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Bagi"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Semua"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Artis"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Komposer"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Konduktor"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Aliran"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcast"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Tahun"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Pilih perangkat"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Jangan tampilkan lagi"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Anda dapat mengalirkan musik ke perangkat yang menggunakan AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Lht sbg"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Pemakai"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Bass boost"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Treble boost"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kafe"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Saluran 7.1 virtual"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Setelah 15 mnt"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Setelah 30 mnt"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Setelah 1 jam"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Setelah 1 jam 30 menit"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Setelah 2 jam"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Lagu otomatis berhenti"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Efek suara ini berfungsi pada mode earphone dan headset Bluetooth saja"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Volumi troppo alti possono danneggiare l'udito in caso di ascolto prolungato"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Impossibile aggiungere"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Senza testo"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Impossibile modificare gli effetti sonori con 5.1 canali attivo"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Trova tag"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "L'effetto sonoro a 5.1 canali funziona solo in modalità auricolare"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "È possibile attivare il canale 5.1 solo se gli effetti sonori sono disattivati"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Impossibile creare playlist"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Impossibile ottenere tag"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Cartelle"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "Impossibile rimuovere elemento"
msgstr "Artista"
msgid "IDS_MUSIC_BODY_ARTISTS"
-msgstr "Artista"
+msgstr "Artisti"
msgid "IDS_MUSIC_BODY_AUTO"
-msgstr "Auto"
+msgstr "Automatica"
msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
msgstr "Usi disponibili"
msgstr "Impostazioni musica"
msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
-msgstr "Album Art"
+msgstr "Copertina album"
msgid "IDS_MUSIC_BODY_PLAYLISTS"
msgstr "Playlist"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Anni"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Seleziona dispositivo"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Non mostrare più"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Potete eseguire lo streaming della musica sui dispositivi tramite AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Vis. come"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normale"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Utente"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocale"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Bass boost"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Treble boost"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Caffè"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Canale virtuale 7.1"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Dopo 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Dopo 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Dopo 1 ora"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Dopo 1 ora e 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Dopo 2 ore"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Musica autom. disattivata"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Questo effetto sonoro funziona solo in modalità auricolare e Bluetooth"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr " 長時間大音量で聴き続けると、聴力を損傷する可能性があります"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "追加できません"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "歌詞なし"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "5.1チャンネル使用中は\nサウンドエフェクトを使用できません。"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "タグを探す"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1チャンネルは、イヤホンモードでのみ使用できます。"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1チャンネルは、サウンドエフェクトとイコライザーが標準のときのみ使用できます。"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "プレイリストを作成できません"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "タグを取得できません"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "フォルダ"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "アイテムを消去できません"
msgstr "ミュージックファイルは%d以上追加できません"
msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
-msgstr "é\80\9a話ä¸â\80\8bã\81¯â\80\8bå\86\8dç\94\9fâ\80\8bã\81§ã\81\8dã\81¾ã\81\9bã\82\93"
+msgstr "é\80\9a話ä¸â\80\8bã\81«â\80\8bå\86\8dç\94\9fâ\80\8bã\81§ã\81\8dâ\80\8bã\81¾ã\81\9bã\82\93ã\80\82"
msgid "IDS_MUSIC_BODY_ALBUM"
msgstr "アルバム"
msgstr "お気に入り"
msgid "IDS_MUSIC_BODY_FORMAT"
-msgstr "ファイル形式"
+msgstr "ファイル形式"
msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
msgstr "不可"
msgstr "保存先"
msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
-msgstr "プレイリストがありません"
+msgstr "プレイリストがありません。"
msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
msgstr "トラック番号"
msgstr "削除"
msgid "IDS_MUSIC_POP_ADDED"
-msgstr "追加しました。"
+msgstr "追加しました。"
msgid "IDS_MUSIC_POP_DELETE_Q"
msgstr "削除しますか?"
msgstr "Add to home"
msgid "IDS_MUSIC_BODY_BIOGRAPHY"
-msgstr "ã\83\90ã\82¤ã\82ªã\82°ã\83©ã\83\95ã\82£ã\83¼"
+msgstr "ã\82¢ã\83¼ã\83\86ã\82£ã\82¹ã\83\88"
msgid "IDS_MUSIC_BODY_CREDITS"
msgstr "クレジット"
msgstr "メディア情報"
msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
-msgstr "ã\83\87ã\82£ã\82¹ã\82³ã\82°ã\83©ã\83\95ã\82£ã\83¼"
+msgstr "ã\82¢ã\83«ã\83\90ã\83 "
msgid "IDS_MUSIC_BODY_LYRIC"
msgstr "歌詞"
msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
-msgstr "名前が長すぎます"
+msgstr "名前が長すぎます。"
msgid "IDS_MUSIC_BODY_PARENT_RATING"
-msgstr "親レーティング"
+msgstr "保護者の指導が必要"
msgid "IDS_MUSIC_BODY_POSSIBLE"
msgstr "可能"
msgid "IDS_MUSIC_BODY_REVIEW"
-msgstr "プレビュー表示設定"
+msgstr "プレビュー表示"
msgid "IDS_MUSIC_HEADER_TRACK_LIST"
msgstr "トラックリスト"
msgstr "作曲者"
msgid "IDS_MUSIC_BODY_COMPOSERS"
-msgstr "作曲家"
+msgstr "作曲者"
msgid "IDS_MUSIC_BODY_CONCERT_HALL"
msgstr "コンサートホール"
msgstr "ダイナミック"
msgid "IDS_MUSIC_BODY_EFFECT"
-msgstr "効果"
+msgstr "エフェクト"
msgid "IDS_MUSIC_BODY_EQUALISER"
msgstr "イコライザー"
msgstr "曲"
msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
-msgstr "プレイリストに追加"
+msgstr "プレイリストを追加"
msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
msgstr "着信音"
msgstr "クイックリストから削除"
msgid "IDS_MUSIC_OPT_RENAME"
-msgstr "名前を変更"
+msgstr "名前を変更"
msgid "IDS_MUSIC_OPT_REORDER"
msgstr "並べ替え"
msgstr "個別着信音"
msgid "IDS_MUSIC_POP_ADDED_TO_PS"
-msgstr "%sに追加しました。"
+msgstr "「%s」に追加しました。"
msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
-msgstr "Bluetoothが切断されました"
+msgstr "Bluetoothが切断されました。"
msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
msgstr "アイテムの最大選択数(%d)を選択しました"
msgstr "何も選択されていません"
msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
-msgstr "選択した曲は再生中のため削除できません"
+msgstr "削除できません。選択した音楽は再生中です。"
msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
-msgstr "再生できません。エラーが発生しました"
+msgstr "再生できません。エラーが発生しました。"
msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
msgstr "再生できません。未対応のファイルです"
msgstr "ジャンル"
msgid "IDS_MUSIC_TAB4_PODCASTS"
-msgstr "Podcast"
+msgstr "ポッドキャスト"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "年"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "デバイス選択"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "今後表示しない"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "AllShareを使って端末で音楽をストリーミング再生できます。"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "表示"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "標準"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "ユーザー"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "ボーカル"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "低音強調"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "高音強調"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "カフェ"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "バーチャル7.1ch"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "15分後"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "30分後"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "1時間後"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "1時間30分後"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "2時間後"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "音楽自動停止"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "この音響効果は、イヤホンおよび Bluetooth ヘッドセット モードでのみ機能します"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "오랫동안 큰 소리로 음악을 들으면 청각이 손상될 수 있습니다"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "추가할 수 없습니다"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "가사 없음"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "5.1채널이 사용 중인 경우에는 음향 효과를 변경할 수 없습니다"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "태그 검색"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1채널 음향효과는 이어폰 연결 시에 적용됩니다"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "음향 효과가 꺼져 있을 경우에만 5.1 채널을 실행할 수 있습니다"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "재생 목록을 추가할 수 없습니다"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "태그를 가져올 수 없습니다"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "폴더"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "항목을 삭제할 수 없습니다"
msgstr "홈에 추가"
msgid "IDS_MUSIC_BODY_BIOGRAPHY"
-msgstr "ì\95½ë ¥"
+msgstr "ì\95\84í\8b°ì\8a¤í\8a¸"
msgid "IDS_MUSIC_BODY_CREDITS"
msgstr "크레디트"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "연도"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "기기 선택"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "다시 표시 안 함"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "AllShare를 사용하여 음악을 디바이스로 스트리밍할 수 있습니다"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "보기 방식"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "일반"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "사용자"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "보컬"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "중저음 강화"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "고음 강화"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "카페"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "가상 7.1채널"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "15분 후"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "30분 후"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "1시간 후"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "1시간 30분 후"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "2시간 후"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "음악 자동 종료"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "이 음향 효과는 이어폰과 블루투스 헤드셋 모드에서만 작동합니다"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Jei klausysitės garsiai ilgą laiką, gali būti pažeista klausa"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Negalima pridėti"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Dainų žodž. nėra"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Neįmanoma keisti garso efektų, kai naudojamas 5.1 kanalas"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Rasti žymę"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 kanalo garso efektas veikia tik ausinių režimu"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1 kanalai gali būti naudojami tik išjungus garso efektus"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Negalima sukurti grojaraščio"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Neįmanoma gauti žymos"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Aplankai"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Negalima pašalinti elemento"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Negalima pridėti daugiau kaip %d muzikos failo (-ų)"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Negalima paleisti skambučio metu"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Albumas"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albumai"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Autorius"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Autorių teisės"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Sukurti grojaraštį"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Aprašas"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Mėgstamiausieji"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Formatas"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Neįmanoma"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Nėra grojaraščių"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Įrašo numeris"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Tipas"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Pridėta"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Ar trinti?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s pašalintas"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Pašalinta"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Ar šalinti?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Nustatyti kaip skambintojo melodiją"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Negalima pakeisti grojaraščio pavadinimo"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Neįmanoma nustatyti kaip skambėjimo tono"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Neįmanoma bendrinti DRM failo"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albumai"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografija"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Naudinga informacija"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Informacija apie mediją"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Įrašų sąrašas"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Lyrinė"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Pavadinimas per ilgas"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Tėvų vertinimas"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Įmanoma"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Peržiūrėti"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Takelių sąrašas"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Jau įtraukta"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 kanalas"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Pridėti prie grojaraščio"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Atlikėjas"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Atlikėjai"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Automatinis"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Galimi panaudojimai"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Žemų dažnių garsų stiprinimas"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Choro efektas"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klasika"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Kompozitorius"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Kompozitoriai"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Koncertų salė"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Pasirinktinis"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Šokis"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Informacija apie mediją"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dinaminis"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efektas"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Ekvalaizeris"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Išorinis garsas"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Persiuntimas"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Žanras"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Žanrai"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Džiazas"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Gyvai"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Dažniausiai grojami"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Muzikos aiškumas"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Muzikos meniu"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Muzikos nustatymai"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Albumų menas"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Grojaraščiai"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Popmuzika"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Neseniai pridėti"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Neseniai groti"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rokas"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Įrašo ilgis"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Galiojimas"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Ua-ua"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Platus"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Metai"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Išjungti"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Dainų nėra"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Dainos"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Pridėti grojaraštį"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Skambučio tonas"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Sukurti grojaraštį"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Redaguoti antraštę"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Istorija"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Šalinti"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Pervardyti"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Pertvarkyti"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Išsaugoti kaip grojaraštį"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Signalo tonas"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Skambintojo skambėjimo tonas"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Pridėta prie %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "„Bluetooth“ atjungta"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Pasirinktas didžiausias elementų skaičius (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Niekas nepasirinkta"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Neįmanoma ištrinti. Pasirinkta muzika jau leidžiama"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Neįmanoma paleisti. Įvyko klaida"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Negalima paleisti. Nepalaikomas failo tipas"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Įtrauk."
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Bendrinti"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Visos"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Atlikėjai"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Kompozitoriai"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirigentai"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Žanrai"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Interneto trans."
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Metai"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Pasirinkite įrenginį"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Daugiau nerodyti"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Galite siųsti savo muzikos įrašus į įrenginius naudojančius „AllShare“"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Žr.kaip"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Įprastas"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Vartotojas"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokalinė"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Žemųjų dažnių stiprinimas"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Aukštųjų dažnių stiprin."
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kavinė"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtualus 7.1 kan."
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Po 15 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Po 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Po 1 val."
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Po 1 val. 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Po 2 val."
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Automatinis muzikos išjungimas"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Šis garso efektas veikia tik ausinių ir „Bluetooth“ ausinių režimu"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Ilgstoša skaļas mūzikas klausīšanās var izraisīt dzirdes traucējumus"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Nevar pievienot"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Nav vārdu"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "5.1 kanāla lietošanas laikā nevar mainīt skaņas efektus"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Atrast atzīmi"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 kanālu skaņas efekts darbojas tikai austiņu režīmā"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1 kanālu režīmu var aktivizēt tikai tad, ja ir izslēgti skaņas efekti"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Nevar izveidot atskaņojumu sarakstu"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Nevar iegūt atzīmi"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Mapes"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Nevar noņemt vienumu"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Nevar pievienot vairāk kā %d mūzikas failus"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Sarunas laikā nevar veikt atskaņošanu"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Albums"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albumi"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Autors"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Autortiesības"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Izveidot atskaņošanas sarakstu"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Apraksts"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Izlases"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Formāts"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Nav iespējams"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Nav atskaņojumu sarakstu"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Ieraksta numurs"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Veids"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Pievienots"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Vai dzēst?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s noņemts"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Noņemts"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Vai noņemt?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Iestatīt kā zvanītāja signālu"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Nevar pārdēvēt atskaņojumu sarakstu"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Nevar iestatīt kā zvana signālu"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "DRM failu nevar koplietot"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albumi"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biogrāfija"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Albuma veidotāji"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Multivides informācija"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskogrāfija"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Dziesmu vārdi"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Nosaukums par garu"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Vecāku novērtējums"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Iespējams"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Pārskatīt"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Ierakstu saraksts"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Jau pievienots"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 kanāls"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Piev. atsk. sar."
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Izpildītājs"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Izpildītāji"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Automātiski"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Atlikušās lietošanas reizes"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Zemo frekvenču skaņas pastiprināšana"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Koris"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klasiskais"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Komponists"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Komponisti"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Koncertzāle"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Pielāgot"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Deju mūzika"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Multivides informācija"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dinamisks"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efekts"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Ekvalaizers"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Eksternalizācija"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Pārsūtīšana"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Žanrs"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Žanri"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Džezs"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Dzīvā mūzika"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Visvairāk atskaņotie"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Mūzikas dzidrums"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Mūzikas izvēlne"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Mūzikas iestatījumi"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Albuma attēls"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Atskaņošanas saraksti"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Popmūzika"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Nesen pievienotie"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Nesen atskaņotie"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Roks"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Ieraksta ilgums"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Derīgums"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Va-va"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Plašs"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Gadi"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Izslēgt"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Nav dziesmu"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Dziesmas"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Piev. atsk. sar."
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Zvana signāls"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Izveidot atskaņošanas sarakstu"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Rediģēt nosaukumu"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Vēsture"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Noņemt"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Pārdēvēt"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Pārkārtot"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Saglabāt kā atskaņošanas sarakstu"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Atgādinājuma signāls"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Zvanītāja zvana signāls"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Pievienots atskaņošanas sarakstam %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth atvienots"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Izvēlēts maksimālais objektu skaits (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Nekas nav izvēlēts"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Nevar izdzēst. Izvēlētā mūzika tiek atskaņota"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Nevar atskaņot. Radās kļūda"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Nevar atskaņot. Neatbalstīts faila tips."
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Pievien."
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Koplietot"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Visas"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Izpildītāji"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Komponist."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Diriģ."
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Žanri"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Aplādes"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Gadi"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Atlasīt ierīci"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Nerādīt vēlreiz"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Varat straumēt mūziku uz ierīcēm, izmantojot programmu AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Skatīt kā"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Parasts"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Lietotājs"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokāls"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Basu pastiprināšana"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Diskantu pastiprināšana"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kafejnīca"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtuālais 7.1 kan."
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Pēc 15 minūtēm"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Pēc 30 minūtēm"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Pēc 1 stundas"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Pēc 1 h 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Pēc 2 stundām"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Mūzika autom. izslēgta"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Šis skaņas efekts darbojas tikai austiņu un Bluetooth austiņas režīmā"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Kelantangan tinggi mungkin merosakkan pendengaran anda jika anda mendengar untuk masa yang lama"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Tidak boleh menambah"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Tiada lirik"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Tidak boleh mengubah kesan bunyi apabila menggunakan saluran 5.1"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Cari tag"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "Kesan bunyi saluran 5.1 berfungsi dalam mod fon telinga sahaja"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Saluran 5.1 hanya boleh diaktifkan apabila kesan bunyi dimatikan"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Tidak boleh mencipta senarai main"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Tidak boleh mendapatkan teg"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Pelipat"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Tidak boleh mengalih keluar item"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Tdk dpt menambah lebih dpd %d fail muzik"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Tdk dpt memainkan semasa panggilan"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Pengarang"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Hak cipta"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Reka senarai main"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Deskripsi"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Kegemaran"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Mustahil"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Lokasi"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Tiada senarai mainan"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Nombor lagu"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Jenis"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Tidak diketahui"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Padam"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Ditambahkan"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Padam?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s dialih keluar"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Dikeluarkan"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Alihkan?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Tetapkan sebagai nada dering pemanggil"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Tidak boleh menamakan semula senarai main"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Tidak boleh menetapkan sebagai nada dering"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Tidak boleh berkongsi fail DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografi"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Penghargaan"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Maklumat media"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografi"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Lirik"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Nama terlalu panjang"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Penilaian ibu bapa"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Mungkin"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Lihat semula"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Senarai lagu"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Telah ditambahkan"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "Saluran 5.1"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Tambah ke senarai main"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Artis"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Artis"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Automatik"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Kegunaan boleh didpti"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Peningkatan bes"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Korus"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klasik"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Composer"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Pengarang"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Dewan konsert"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Langganan"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Tarian"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Maklumat media"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dinamik"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Kesan"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Penyama"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Peluaran"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Memajukan"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Aliran"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Aliran"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Siaran Langsung"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Paling kerap dimain"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Kejelasan muzik"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Menu muzik"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Aturan muzik"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Seni album"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Senarai main"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Ditambah baru-baru ini"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Dimain baru-baru ini"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Panjang lagu"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Kesahan"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Luas"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Tahun"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Matikan"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Tiada lagu"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Lagu"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Tambah senarai main"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Nada dering panggilan"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Reka senarai main"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Sunting tajuk"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Sejarah"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Keluarkan"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Namakan semula"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Susun semula"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Simpan sebagai senarai main"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Nada penggera"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Nada dering pemanggil"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Ditambah ke %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth diputuskan sambungan"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Bilangan maksimum perkara (%d) dipilih"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Tiada apa-apa dipilih"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Tidak boleh memadam. Muzik yang dipilih dimainkan"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Tidak boleh memainkan. Ralat berlaku"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Tidak boleh memainkan. Jenis fail yang tidak disokong"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Tambah"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Kongsi"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Semua"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Artis"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Pengarang"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Pemimpin"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Aliran"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcast"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Tahun"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Pilih peranti"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Jangan tunjuk lagi"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Anda boleh menstrimkan muzik anda kepada peranti menggunakan AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Lihat sbg"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Biasa"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Pengguna"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Tambah bes"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Tambah trebel"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kafe"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Saluran maya 7.1"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Selepas 15 minit"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Selepas 30 minit"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Selepas 1 jam"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Selepas 1 jam 30 minit"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Selepas 2 jam"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Muzik diauto matikan"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Kesan bunyi ini bekerja di fon telinga dan mod set kepala Bluetooth sahaja"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Hoog volume kan uw gehoor beschadigen wanneer u er lang naar luistert"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Kan niet toevoegen"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Geen songtkst"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Kan geluidseffecten niet wijzigen bij gebruik van 5.1-kanaals"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Tag zoeken"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-kanaals geluidseffect werkt alleen met oortelefoonstand"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1-kanaal kan alleen worden geactiveerd wanneer geluidseffecten zijn uitgeschakeld"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Kan de afspeellijst niet maken"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Kan tag niet ophalen"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Mappen"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "Kan het item niet wissen"
msgstr "Afspeellijst maken"
msgid "IDS_MUSIC_BODY_DESCRIPTION"
-msgstr "Beschrijving"
+msgstr "Omschrijving"
msgid "IDS_MUSIC_BODY_FAVOURITES"
msgstr "Favorieten"
msgstr "Toegevoegd"
msgid "IDS_MUSIC_POP_DELETE_Q"
-msgstr "Wissen?"
+msgstr "Verwijderen?"
msgid "IDS_MUSIC_POP_PS_REMOVED"
msgstr "%s verwijderd"
msgstr "Artiesten"
msgid "IDS_MUSIC_BODY_AUTO"
-msgstr "Automa-\ntisch"
+msgstr "Automatisch"
msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
msgstr "Aantal keer dat het gebruikt mag worden"
msgstr "Afspeellijst maken"
msgid "IDS_MUSIC_OPT_EDIT_TITLE"
-msgstr "Titel wijzigen"
+msgstr "Titel bewerken"
msgid "IDS_MUSIC_OPT_HISTORY"
msgstr "Geschiedenis"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Jaren"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Apparaat selecteren"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Niet meer laten zien"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Gebruik AllShare voor streaming van muziek naar apparaten"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Weergave"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normaal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Gebruiker"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Zang"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Basboost"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Hoge-tonenboost"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Café"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtueel 7.1 kanaals"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Na 15 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Na 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Na 1 uur"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Na 1 uur 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Na 2 uur"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Muziek automatisch uit"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Dit geluidseffect werkt alleen in de oortelefoon- en Bluetooth-headsetstand"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Høy lydstyrke kan skade hørselen din hvis du lytter til det over lengre perioder"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Kan ikke legge til"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Ingen tekster"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Kan ikke endre lydeffekter ved bruk av 5.1-kanal"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Finn tagg"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-kanals lydeffekt virker bare i høretelefonmodus"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1-kanal kan bare aktiveres når lydeffekter er av"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Kan ikke opprette spilleliste"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Kan ikke hente tagg"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Mapper"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Kan ikke fjerne element"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Kan ikke legge til mer enn %d musikkfiler"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Kan ikke spille av under samtale"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Forfatter"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Copyright"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Opprett spilleliste"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Beskrivelse"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Favoritter"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Umulig"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Plassering"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Ingen spillelister"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Spornummer"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Type"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Lagt til"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Slette?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s er fjernet"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Fjernet"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Fjerne?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Angi som anropsringetone"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Kan ikke gi spillelisten nytt navn"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Kan ikke angi som ringetone"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Kan ikke dele DRM-fil"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografi"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Medvirkende"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Medieinformasjon"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografi"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Tekster"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Navnet er for langt"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Aldersgrense"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Mulig"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Gjennomgang"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Avspillingsliste"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Allerede lagt til"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1-kanal"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Legg til i spilleliste"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Artist"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Artist"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Kan brukes antall ganger"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Bassforsterkning"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Kor"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klassisk"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Forfatter"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Komponister"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Concert Hall"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Egendefinert"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dans"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Medieinformasjon"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynamisk"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Effekt"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Equalizer"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Eksternalisering"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Videresending"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Sjanger"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Sjangre"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Live"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Mest spilt"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Musikklarhet"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Musikkmeny"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Musikkinnstillinger"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Albumomslag"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Spillelister"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Nylig lagt til"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Nylig avspilt"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Sporlengde"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Gyldighet"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Bred"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "År"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Av"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Ingen sanger"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Sanger"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Legg til spilleliste"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Ringetone for samtale"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Opprett spilleliste"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Rediger tittel"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Historikk"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Fjerne"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Endre navn"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Omordne"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Lagre som spilleliste"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Alarmtone"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Anropsringetone"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Lagt til %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth koblet fra"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Maksimalt antall elementer (%d) nådd"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Ingenting valgt"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Kan ikke slette. Valgt musikk spilles av"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Kan ikke spille av. Det oppstod en feil"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Kan ikke spilles av. Ikke støttet filtype"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Tilføy"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Del"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Alle"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Artist"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Kompon."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirig."
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Sjangre"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcasts"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "År"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Velg enhet"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Ikke vis igjen"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Du kan streame musikken din til andre enheter med AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Vis som"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Bruker"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Bassheving"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Diskantheving"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kafé"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtuell 7.1 kanal"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Etter 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Etter 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Etter 1 time"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Etter 1 time 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Etter 2 timer"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Musikk auto av"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Denne lydeffekten virker bare i høretelefon- og Bluetooth headset-moduser"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Słuchanie muzyki przy wysokim ustawieniu głośności przez długi czas może spowodować uszkodzenie słuchu"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Nie można dodać"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Brak tekstu"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Nie można zmienić efektów dźwiękowych, gdy włączony jest dźwięk przestrzenny 5.1"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Znajdź tag"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "Podłącz słuchawki, aby korzystać z dźwięku przestrzennego 5.1"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Dźwięk przestrzenny 5.1 można włączyć tylko wtedy, gdy efekty dźwiękowe są wyłączone"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Nie można utworzyć listy odtwarzania"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Nie można pobrać etykiety"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Katalogi"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Nie można usunąć elementu"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Nie można dodać więcej utworów muzycznych niż %d"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Niedozwolone podczas połączenia"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albumy"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Autor"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Copyright"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Utwórz listę odtwarzania"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Opis"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Ulubione"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Niemożliwe"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Miejsce"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Brak list odtwarzania"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Numer utworu"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Typ"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Nieznany"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Dodano"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Usunąć?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "Usunięto: %s"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Usunięto"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Usunąć?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Ustaw jako dzwonek rozmówcy"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Nie można zmienić nazwy listy odtwarzania"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Nie można ustawić jako dzwonek"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Nie można udostępnić pliku DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albumy"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografia"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Kredyty"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Multimedia"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Dyskografia"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Tekst"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Zbyt długa nazwa"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Ocena rodzica"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Możliwe"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Podgląd zdjęcia"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Lista utworów"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Już dodano"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "Dźwięk przestrzenny 5.1"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Dodaj do listy odtwarzania"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Wykonawca"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Artyści"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Automatyczny"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Dostępne zastosowania"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Podbicie basów"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Chór"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Classic"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Kompozytor"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Kompozytorzy"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Sala koncertowa"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Niestand."
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dance"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Multimedia"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynamiczny"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efekty"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Equalizer"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Na zewnątrz"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Przesyłanie"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Rodzaj"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Rodzaje"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Live"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Najczęściej odtwarzane"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Muzyka"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Elementy menu muzyka"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Ustawienia muzyki"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Okładka"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Listy odtwarzania"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Ostatnio dodane"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Ostatnio odtwarzane"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Długość utworu"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Ważność"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Wide"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Rok"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Wył."
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Brak utworów"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Piosenki"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Dodaj listę odtwarzania"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Dźwięk dzwonka"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Utwórz listę odtwarzania"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Edytuj tytuł"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Historia"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Usuń"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Zmień nazwę"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Zmień kolejność"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Zapisz jako listę odtwarzania"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Sygnał alarmu"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Dzwonek kontaktu"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Dodano do %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Przerwano połączenie Bluetooth"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Wybrano maksymalną liczbę elementów (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Niczego nie zaznaczono"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Nie można usunąć. Wybrana muzyka jest odtwarzana"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Nie można odtworzyć. Wystąpił błąd"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Nie można odtworzyć. Nieobsługiwany typ pliku"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Dodaj"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Udostęp."
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Wszystkie"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Artyści"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Kompoz."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dyrygenci"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Rodzaje"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcasty"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Lata"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Wybierz urządzenie"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Nie wyświetlaj ponownie"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Możesz przesyłać muzykę strumieniowo do urządzeń przez AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Widok"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Wył."
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Użytkownik"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Śpiew"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Podbicie basów"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Podbicie tonów wysokich"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kawiarnia"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Po 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Po 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Po 1 godz."
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Po 1 godz. 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Po 2 godz."
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Auto-wył. odtwarzacza"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "To ustawienie jest dostępne tylko w trybie słuchawek przewodowych lub Bluetooth"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "O volume de som elevado pode prejudicar a sua audição se a expuser a este durante muito tempo"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Impossível adicionar"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Nenhumas letras"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Impossível alterar efeitos de som durante a utilização do canal 5.1"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Localizar etiqueta"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "O efeito de som do canal 5.1 funciona apenas no modo de auricular"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "O canal 5.1 só pode ser activado quando os efeitos de som estão desligados"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Impossível criar lista de reprodução"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Impossível obter etiqueta"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Pastas"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "Impossível remover item"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Anos"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Seleccionar dispositivo"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Não mostrar novamente"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Pode efectuar o streaming da sua música para dispositivo utilizando AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Ver"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Utilizador"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Amplificação de baixos"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Amplificação de agudos"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Café"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Canal virtual 7.1"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Após 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Após 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Após 1 hora"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Após 1 hora e 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Após 2 horas"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Desligar música automaticamente"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Este efeito de som funciona apenas nos modos de auricular e auricular Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Sunetele la volum ridicat pot afecta auzul, dacă le ascultaţi timp îndelungat"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Imposibil de adăugat"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Fără versuri"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Imposibil de modificat efectele sonore în timpul utilizării sistemului pe 5.1 canale"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Căutare etichetă"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "Efectul sonor pentru 5.1 canale funcţionează numai în modul cască"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Sistemul pe 5.1 canale poate fi activat numai când efectele sonore sunt dezactivate"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Imposibil de creat lista de redare"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Imposibil de obţinut eticheta"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Foldere"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Imposibil de eliminat elementul"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Imposibil de adăugat mai mult de %d fişier muzical"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Imposibil de redat în timpul unui apel"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albume"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Autor"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Drept de autor"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Creare listă de redare"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Descriere"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Favorite"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Imposibil"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Locaţie"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Nici o listă de redare"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Număr piesă"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Tip"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Adăugat"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Ştergeţi?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s a fost eliminat"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Eliminat"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Eliminare?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Setare ca ton de sonerie apelant"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Imposibil de redenumit lista de redare"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Imposibil de setat ca ton de sonerie"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Imposibil de partajat fişierul DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albume"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografie"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Credite"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Informaţii media"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Discografie"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Versuri"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Nume prea lung"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Evaluare părinte"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Posibil"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Examinare"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Listă de melodii"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Deja adăugat"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 canale"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Adăugare la lista de redare"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Artist"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Artişti"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Automat"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Utilizări disponibile"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Accentuare başi"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Cor"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Clasic"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Compozitor"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Compozitori"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Sală de concert"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Particularizat"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dance"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Informaţii media"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dinamic"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efect"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Egalizator"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Externalizare"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Redirecţionare"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Gen"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Genuri"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Live"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Cea mai redată"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Claritate muzică"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Meniu muzică"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Setări muzică"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Grafică album"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Liste de redare"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Adăugat recent"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Redate recent"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Lungime piesă"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Valabilitate"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Larg"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Ani"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Oprit"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Nu există melodii"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Melodii"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Adăugare listă de redare"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Ton sonerie apel"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Creare listă de redare"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Editare titlu"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Istoric"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Eliminare"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Redenumire"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Reordonare"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Salvare ca listă de redare"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Ton alarmă"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Ton sonerie apelant"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Adăugate la %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth deconectat"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "A fost selectat numărul maxim de elemente (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Nimic selectat"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Imposibil de şters. Muzica selectată este în curs de redare"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Imposibil de redat. A avut loc o eroare"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Imposibil de redat. Tip fişier neacceptat"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Adăug."
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Partajare"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Toate"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Artişti"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Compoz."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirijori"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Genuri"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcast."
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Ani"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Selectare dispozitiv"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Nu se mai afişează"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Puteţi reda în flux muzica pe dispozitive utilizând AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Viz. ca"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Utilizator"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocală"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Accentuare başi"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Accentuare înalte"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Cafenea"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "7.1 canale virtuale"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "După 15 minute"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "După 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "După 1 oră"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "După 1 oră 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "După 2 ore"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Oprire automată muzică"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Acest efect de sunet funcţionează numai în modurile cască şi cască Bluetooth"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Прослушивание громкой музыки в течение продолжительного времени может привести к ухудшению слуха"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Не удалось добавить"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Нет текста песни"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Невозможно изменить звуковые эффекты при использовании 5.1-канального звука"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Поиск тегов"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-канальный звуковой эффект доступен только в режиме наушников"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1-канальный звук можно использовать только тогда, когда звуковые эффекты отключены"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Невозможно создать список воспроизведения"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Не удается получить тег"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Папки"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "Невозможно удалить элемент"
msgstr "Авторские права"
msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
-msgstr "Создать список воспроизведения"
+msgstr "Создать список"
msgid "IDS_MUSIC_BODY_DESCRIPTION"
msgstr "Описание"
msgstr "Нет списков воспроизведения"
msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
-msgstr "Номер трека"
+msgstr "Номер композиции"
msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
msgstr "Тип"
msgstr "Классика"
msgid "IDS_MUSIC_BODY_COMPOSER"
-msgstr "Ð\9aомпозиÑ\82оÑ\80"
+msgstr "СообÑ\89ение"
msgid "IDS_MUSIC_BODY_COMPOSERS"
msgstr "Композиторы"
msgstr "Концертный зал"
msgid "IDS_MUSIC_BODY_CUSTOM"
-msgstr "Ð\94Ñ\80Ñ\83гое"
+msgstr "СоздаÑ\82Ñ\8c"
msgid "IDS_MUSIC_BODY_DANCE"
msgstr "Танец"
msgstr "Поп"
msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
-msgstr "Ð\9fоÑ\81ледние добавлениÑ\8f"
+msgstr "Ð\9dедавно добавленнÑ\8bе"
msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
msgstr "Последние файлы"
msgstr "Мелодия звонка"
msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
-msgstr "Создать список воспроизведения"
+msgstr "Создать список"
msgid "IDS_MUSIC_OPT_EDIT_TITLE"
msgstr "Изменить заголовок"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Годы"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Выберите устройство"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Не показывать снова"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Можно передавать музыку на устройства с помощью AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Вид"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Обычный"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Пользователь"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Вокал"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Усиление низких частот"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Усиление высоких частот"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Кафе"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Виртуальная 7.1-канальная система"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Через 15 мин"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Через 30 мин"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Через 1 час"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Через 1 час 30 мин"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Через 2 часа"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Автоотключение музыки"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Этот звуковой эффект доступен только в режимах наушников и гарнитуры Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Vysoká hlasitosť môže pri dlhodobom počúvaní poškodiť sluch"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Nedá sa pridať"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Žiadny text"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Pri používaní 5.1-kanálového zvuku sa nedajú zmeniť zvukové efekty"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Hľadať značku"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5,1-kanálový zvukový efekt funguje iba v režime slúchadiel"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1-kanálový zvuk môžete aktivovať iba po vypnutí zvukových efektov"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Zoznam skladieb sa nedá vytvoriť"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Nedá sa získať značka"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Priečinky"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Položka sa nedá odstrániť"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Nemôžete pridať viac hudobných súborov ako %d"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Počas hovoru sa nedá prehrávať"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albumy"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Autor"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Autorské práva"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Vytvoriť zoznam skladieb"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Popis"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Obľúbené"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Formát"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Nemožné"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Umiestnenie"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Žiadne zoznamy skladieb"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Číslo skladby"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Typ"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Neznáma"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Pridané"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Odstrániť?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s bol odstránený"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Odstránené"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Odstrániť?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Nastaviť ako zvonenie volajúceho"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Zoznam skladieb sa nedá premenovať"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Nedá sa nastaviť ako vyzváňací tón"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Súbor DRM sa nedá zdieľať"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albumy"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Životopis"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Poďakovanie"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Informácie o médiách"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografia"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Text"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Názov je príliš dlhý"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Rodičovské hodnotenie"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Možné"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Prezrieť"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Zoznam skladieb"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Už pridané"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5,1-kanálový"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Pridať do zoznamu skladieb"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Interpret"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Interpreti"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Automaticky"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Počet použití k dispozícii"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Zvýraznenie basov"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Zbor"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klasika"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Skladateľ"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Skladatelia"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Koncertná sieň"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Vlastné"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Tanec"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Informácie o médiách"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynamické"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efekt"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Ekvalizér"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Externalizácia"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Preposlanie"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Žáner"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Žánre"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Naživo"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Najčastejšie prehrávané"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Čistota hudby"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Hudobné menu"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Nastavenia hudby"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Obal albumu"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Zoznamy skladieb"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Posledne pridané"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Posledne prehrávané"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Dĺžka skladby"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Platnosť"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Široký"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Roky"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Vyp."
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Žiadne skladby"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Piesne"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Pridať zoznam skladieb"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Zvonenie hovoru"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Vytvoriť zoznam skladieb"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Upraviť názov"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "História"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Odstrániť"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Premenovať"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Zmeniť poradie"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Uložiť ako zoznam skladieb"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Tón budíka"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Zvonenie volajúceho"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Pridané do %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth je odpojený"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Vybrali ste maximálny počet položiek (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Nič nie je vybrané"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Nedá sa vymazať. Vybratá hudba sa prehráva"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Nedá sa prehrať. Vyskytla sa chyba"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Nedá sa prehrať. Nepodporovaný typ súboru"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Pridať"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Zdieľať"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Všetko"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Interpreti"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Skladat."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirigen."
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Žánre"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcasty"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Roky"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Vyberte zariadenie"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Už nezobrazovať"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Použitím funkcie AllShare môžete prenášať hudbu cez streaming do zariadení"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Zobr. ako"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normálny"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Používateľ"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Reč"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Zvýraznenie basov"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Zvýraznenie výšok"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kaviareň"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtuálny 7.1-kanálový zvuk"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Po 15 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Po 30 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Po 1 hodine"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Po 1 hodine a 30 minútach"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Po 2 hodinách"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Automatické vypnutie hudby"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Tento zvukový efekt funguje iba v režime slúchadiel a v režime náhlavnej súpravy Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Če glasno glasbo poslušate daljši čas, lahko to škoduje vašem sluhu"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Ni mogoče dodati."
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Ni besedila"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Med uporabo postaje 5.1 ni mogoče spremeniti zvočnih učinkov"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Poišči oznako"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-kanalni zvočni učinek deluje samo v načinu slušalk"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Postajo 5.1 lahko vklopite samo, če so zvočni učinki izklopljeni"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Seznama za predvajanje ni mogoče ustvariti"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Ni mogoče pridobiti oznake"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Mape"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Predmeta ni mogoče odstraniti"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Ni mogoče dodati več kot %d glasbenih datotek"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Ni mogoče predvajati med klicem"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albumi"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Avtor"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Avtorske pravice"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Ustvari seznam predvajanja"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Opis"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Priljubljene"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Nemogoče"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Ni seznama predvajanja"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Številka skladbe"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Vrsta"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Dodano"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Izbrišem?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s je odstranjeno"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Odstranjeno"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Odstranim?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Nastavi kot zvonjenje kličočega"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Seznama za predvajanje ni mogoče preimenovati"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Ni mogoče nastaviti za melodijo zvonjenja"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Datoteke DRM ni mogoče souporabljati"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albumi"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Življenjepis"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Zasluge"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Informacije o mediju"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografija"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Besedilo"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Ime je predolgo"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Starševska ocena"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Mogoče"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Pregled"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Seznam skladb"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Že dodano"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1-kanalno"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Dodaj na seznam predvajanja"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Izvajalec"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Izvajalci"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Samodejno"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Število uporab"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Izboljšani basi"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Zbor"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klasično"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Skladatelj"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Skladatelji"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Koncertna dvorana"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Osebne"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Ples"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Informacije o mediju"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dinamično"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Učinek"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Izenačevalnik"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Eksternalizacija"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Posredovanje"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Zvrst"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Zvrsti"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "V živo"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Najpogosteje predvajano"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Jasnost glasbe"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Glasbeni meni"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Glasbene nastavitve"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Slika albuma"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Seznami predvajanja"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Dodano pred kratkim"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Nazadnje predvajano"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Dolžina skladbe"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Veljavnost"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Va-va"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Široko"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Let"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Izključ."
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Ni skladb"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Skladbe"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Dodaj seznam predvajanja"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Zvonjenje za klic"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Ustvari seznam predvajanja"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Uredi naslov"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Zgodovina"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Odstrani"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Spremeni zaporedje"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Shrani kot seznam predvajanja"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Ton alarma"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Melodija kličočega"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Dodano v %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Povezava Bluetooth je prekinjena"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Izbrano je največje število elementov (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Nič ni izbrano"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Ni mogoče zbrisati. Izbrana glasba se predvaja"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Ni mogoče predvajati. Prišlo je do napake"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Predvajanje ni mogoče. Nepodprta vrsta datoteke"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Dodaj"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Souporab."
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Vse"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Izvajalci"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Skladat."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirigent"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Zvrsti"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Spletne oddaje"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Leta"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Izberite napravo"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Ne kaži več"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "S programom AllShare lahko svojo glasbo pretočno predvajate v napravah"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Prik. kot"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normalno"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Uporabnik"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Poudari base"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Poudari visoke tone"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Barska"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Zvočna kartica Virtual 7.1 ch"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Po 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Čez 30 minut"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Čez 1 uro"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Po 1 h in 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Čez 2 uri"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Samodejna izklj. glasbe"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Ta zvočni učinek deluje samo v načinu slušalk in v načinu slušalk Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Velika jačina zvuka može da ošteti sluh ukoliko tako slušate duže vreme"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Nemoguće dodati"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Nema stihova"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Nije moguće menjati zvučne efekte kad se koristi 5.1-kanalni sistem"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Nađi oznaku"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-kanalni zvuk je dostupan samo u režimu slušalice"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1-kanalni sistem se može uključiti samo kad su zvučni efekti isključeni"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Nemoguće kreirati listu za reprodukciju"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Nemoguće dobiti oznaku"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Folderi"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Nemoguće ukloniti stavku"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Nemoguće dodati više od %d muzičkih fajlova"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Nemoguće reprodukovati tokom poziva"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Albumi"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Autor"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Autorska prava"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Kreiraj listu za reprodukciju"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Opis"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Omiljeni"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Nemoguće"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Nema listi za reprodukciju"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Broj numere"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Tip"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Dodato"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Obriši?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s uklonjeno"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Uklonjeno"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Ukloni?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Postavi kao ton zvona pozivaoca"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Nemoguće preimenovati listu za reprodukciju"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Nemoguće postaviti kao ton zvona"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Nemoguće deliti DRM fajl"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albumi"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografija"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Zahvalnice"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Informacije o mediju"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografija"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Stihovi"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Ime predugačko"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Roditeljski rejting"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "moguće"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Pregled"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Lista numera"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Već dodato"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1-kanalni zvuk"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Dodaj u listu za reprodukciju"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Umetnik"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Umetnici"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Automatski"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Moguće upotrebe"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Pojačanje basova"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Hor"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klasika"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Kompozitor"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Kompozitori"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Koncertna dvorana"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Prilagođeno"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dens"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Informacije o mediju"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dinamička"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Efekat"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Ekvilajzer"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Eksternalizacija"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Prosleđivanje"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Žanr"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Žanrovi"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Džez"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Uživo"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Najčešće puštano"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Razgovetnost muzike"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Muzički meni"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Podešavanja muzike"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Omoti albuma"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Liste za reprodukciju"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Nedavno dodato"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Nedavno puštano"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rok"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Dužina numere"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Važenje"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Va-va"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Široko"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Godina"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Isključ."
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Nema pesama"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Pesme"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Dodaj listu za reprodukciju"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Ton zvona"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Kreiraj listu za reprodukciju"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Izmeni naslov"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Istorija"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Ukloni"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Preimenuj"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Preuredi"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Sačuvaj kao listu za reprodukciju"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Ton alarma"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Ton zvona pozivaoca"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Dodato u %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth veza otkačena"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Izabran maksimalan broj stavki (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Ništa nije izabrano"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Nemoguće obrisati. Izabrana muzika se reprodukuje"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Nemoguće reprodukovati. Nastala je greška"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Nemoguće reprodukovati. Nepodržani tip fajla"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Dodaj"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Podeli"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Sve"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Umetnici"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Kompoz."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirigenti"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Žanrovi"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podkasti"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Godine"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Izaberi uređaj"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Ne prikazuj ponovo"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Možeš strimovati muziku na uređaju pomoću AllShare-a"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Prik. kao"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normalno"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Korisnik"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokalna"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Pojačanje basova"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Pojačanje visokih tonova"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kafić"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtuelni 7.1 kanal"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Nakon 15 min."
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Nakon 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Nakon jednog sata"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Nakon jednog sata i 30 minuta"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Nakon 2 sata"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Muzika automatski isključena"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Ovaj zvučni efekat je dostupan samo u režimu slušalice i režimu Bluetooth slušalica"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Hög volym kan skada din hörsel om du lyssnar för länge"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Det går inte att lägga till"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Ingen text"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Kan inte ändra ljudeffekter när 5.1-kanalen används"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Sök efter etikett"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-kanalsljudeffekten fungerar bara i hörlursläge"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1-kanal kan bara aktiveras om ljudeffekterna är av"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Det går inte att skapa spellista"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Det går inte att hämta taggen"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Mappar"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Det går inte att ta bort objekt"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Kan inte lägga till fler än %d musikfiler"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Kan inte spela upp under samtal"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Författare"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Copyright"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Skapa spellista"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Beskrivning"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Favoriter"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Format"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Ej möjlig"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Inga spellistor"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Spårnummer"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Typ"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Radera"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Tillagd"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Radera?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s borttagen"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Borttagen"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Ta bort?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Anv. som ringsignal"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Det går inte att byta namn på spellistan"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Det går inte att ange som ringsignal"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Det går inte att dela DRM-fil"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Biografi"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Medverkande"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Mediainfo"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Diskografi"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Lyrik"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Namnet är för långt"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Förälderrankning"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Möjlig"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Granska"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Spårlista"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Redan tillagd"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1-kanal"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Lägg till i spellista"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Artist"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Artister"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Tillgängliga tillämpningar"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Basförstärkning"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Korus"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Klassisk"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Kompositör"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Kompositörer"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Konserthus"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Egen"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dans"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Mediainfo"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynamisk"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Effekt"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Equalizer"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Externalisering"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Vidarebefordra"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Genre"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Genre"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Live"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Mest spelade"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Klarhet"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Musikmeny"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Musikinställningar"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Albumomslag"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Spellistor"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Senast tillagda"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Senast spelade"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Spårlängd"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Tremolo"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Giltighet"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Bred"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "År"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Av"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Inga låtar"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Låtar"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Lägg till spellista"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Ringsignal för samtal"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Skapa spellista"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Redigera rubrik"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Tidigare"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Ta bort"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Byt namn"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Ändra ordningsföljd"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Spara som spellista"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Larmsignal"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Ringsignal till Foto-ID"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Tillagt till %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth frånkopplat"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Högsta tillåtna antal objekt (%d) har valts"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Inget markerat"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Kan inte radera. Den valda musiken spelas"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Det går inte att spela upp. Ett fel inträffade"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Det går inte att spela. Filtypen stöds inte"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Lägg till"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Dela"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Alla"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Artister"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Komp."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Dirigenter"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Genre"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podsändn"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "År"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Välj enhet"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Visa inte igen"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Du kan strömma musik till enheter med AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Visa som"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Användare"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Sång"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Basförstärkning"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Diskantförstärkning"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Café"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtuellt 7.1-kanal"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Efter 15 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Efter 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Efter 1 timme"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Efter 1 timme och 30 min"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Efter 2 timmar"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Musik auto av"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Den här ljudeffekten fungerar bara i hörlurs- och Bluetooth-headsetläge"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "ระดับเสียงที่สูงอาจเป็นอันตรายต่อการฟังของคุณได้ หากคุณฟังเป็นเวลานาน"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "ไม่สามารถเพิ่ม"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "ไม่มีเนื้อเพลง"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "ไม่สามารถเปลี่ยนเอฟเฟ็กต์เสียงได้เมื่อใช้ 5.1 แชนแนล"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "ค้นหาแท็ก"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "เอฟเฟ็กส์เสียง 5.1 แชนแนลทำงานในโหมดหูฟัง\nเท่านั้น"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "สามารถเปิดใช้งาน 5.1 ช่องทางได้เฉพาะเมื่อเอฟเฟ็กต์เสียงปิดอยู่เท่านั้น"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "สร้างรายการเพลงไม่ได้"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "ไม่สามารถรับแท็กได้"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "โฟลเดอร์"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "ไม่สามารถลบรายการ"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "ไม่สามารถเพิ่มไฟล์เพลงได้มากกว่า %d ไฟล์"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "เล่นไม่ได้ ขณะโทร"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "อัลบั้ม"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "อัลบั้ม"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "ผู้ประพันธ์"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "ลิขสิทธิ์"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "สร้างรายการเพลง"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "ลักษณะ"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "รายชื่อ\nที่ชอบ"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "ฟอร์แมต"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "ไม่ได้"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "ตำแหน่ง"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "ไม่มีรายการเพลง"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "หมายเลขแทร็ก"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "ชนิด"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "ไม่รู้จัก"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "ลบ"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "เพิ่มแล้ว"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "ลบ?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s ถูกลบแล้ว"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "ลบเรียบร้อย"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "ลบ?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "ตั้งเป็นเสียงเรียก\nเข้าผู้โทร"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "ไม่สามารถเปลี่ยนชื่อรายการเพลง"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "ไม่สามารถตั้งเป็นเสียงเรียกเข้า"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "ไม่สามารถใช้ไฟล์ DRM ร่วมกันได้"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "อัลบั้ม"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "ชีวประวัติ"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "เครดิต"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "ข้อมูลมีเดีย"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "ดิสโก้กราฟี"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "เนื้อเพลง"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "ชื่อยาวเกินไป"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "เรตหลัก"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "ได้"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "แสดง"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "รายการแทร็ก"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "เพิ่มแล้ว"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1 แชนแนล"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "เพิ่มในรายการเพลง"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "ศิลปิน"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "ศิลปิน"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "อัตโนมัติ"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "อนุญาตใช้"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Bass enhancement"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "ลูกคู่"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Classic"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Composer"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "ผู้แต่ง"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Concert hall"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "กำหนดเอง"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dance"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "ข้อมูลมีเดีย"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Dynamic"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "เอฟเฟ็กต์"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "อีควอไลเซอร์"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Externalisation"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "ส่งต่อ"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "ประเภท"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "ประเภท"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Live"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "เล่นบ่อยที่สุด"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Music clarity"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "เมนูเพลง"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "การตั้งค่าเพลง"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "อัลบั้มอาร์ท"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "รายการเพลง"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "ที่เพิ่มเร็วๆ นี้"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "ที่เล่นไม่นานมานี้"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "ความยาวแทร็ก"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "เสียงสั่น"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "การอนุมัติ"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Wide"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "ปี"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "ปิด"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "ไม่มีเพลง"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "เพลง"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "เพิ่มรายการเพลง"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "เสียงเรียกเข้า"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "สร้างรายการเพลง"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "แก้ไขชื่อ"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "ประวัติ"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "ลบ"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "เปลี่ยนชื่อ"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "เรียงลำดับใหม่"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "บันทึกเป็นรายการเพลง"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "เสียงเตือน"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "เสียงเรียกเข้าผู้โทร"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "เพิ่มไปที่ %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "หยุดเชื่อมต่อกับบลูทูธแล้ว"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "เลือกจำนวนรายการสูงสุด (%d) แล้ว"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "ไม่ได้เลือกอะไรเลย"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "ลบไม่ได้ กำลังเล่นเพลงที่เลือก"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "เล่นไม่ได้ มีข้อผิดพลาดเกิดขึ้น"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "เล่นไม่ได้ ไม่รองรับชนิดไฟล์"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "เพิ่ม"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "แชร์"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "ทั้งหมด"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "ศิลปิน"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "ตัวเขียน"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "ผู้ควบคุม"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "ประเภท"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "พอดแคสต์"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "ปี"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "เลือกอุปกรณ์"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "ห้ามแสดงอีก"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "คุณสามารถสตรีมเพลงของคุณกับอุปกรณ์โดยใช้ AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "แสดงเป็น"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "ปกติ"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "ผู้ใช้"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vocal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "เพิ่มเสียงเบส"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "เพิ่มเสียงสูง"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Cafe"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "หลังจาก 15 นาที"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "หลังจาก 30 นาที"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "หลังจาก 1 ชั่วโมง"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "หลังจาก 1 ชั่วโมง 30 นาที"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "หลังจาก 2 ชั่วโมง"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "ปิดเพลงอัตโนมัติ"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "เอฟเฟ็กต์เสียงนี้จะใช้งานได้\nในโหมดหูฟังและโหมด\nหูฟังบลูทูธเท่านั้น"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Yüksek ses düzeyi, uzun süre dinlemeniz durumunda işitme duyunuza zarar verebilir"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Eklenemiyor"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Söz yok"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "5.1 kanalı kullanılırken ses efektleri değiştirilemiyor"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Etiket bul"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 kanal ses efekti sadece kulaklık modunda çalışır"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1 kanalı sadece ses efektleri kapalı olduğunda etkinleştirilebilir"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Parça listesi oluşturulamıyor"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "İm alınamıyor"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Klasörler"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "Öğe kaldırılamıyor"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "Yıl"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Cihaz seçin"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Bir daha gösterme"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "AllShare kullanarak, müziğinizi cihazlara yayınlayabilirsiniz"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Göster"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Kullanıcı"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Vokal"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Bas güçlendirme"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Tiz güçlendirme"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Kafe"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 ch"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "15 dak. sonra"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "30 dakika sonra"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "1 saat sonra"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "1 saat 30 dakika sonra"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "2 saat sonra"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Müziği otomatik kapat"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Bu ses efekti sadece kulaklık ve Bluetooth kulaklık modlarında çalışır"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Тривале прослуховування за високого рівня гучності може призвести до погіршення слуху"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Неможливо додати"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Без тексту"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Неможливо змінити звукові ефекти під час використання 5.1-канального звуку"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Пошук тегів"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1-канальний звуковий ефект працює лише в режимі навушників"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1-канальний звук доступний лише за вимкнених звукових ефектів"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Неможливо створити список відтворення"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Неможливо отримати тег"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Папки"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Неможливо вилучити об’єкт"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Неможливо додати більше %d музичних файлів"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Неможливо відтворити під час виклику"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Альбом"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Альбоми"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Автор"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Авторське право"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Створити список відтворення"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Опис"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Обране"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Формат"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Неможливо"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Немає списків відтворення"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Номер запису"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Тип"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Невідома"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Додано"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Видалити?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s видалено"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Видалено"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Видалити?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Встановити як звук дзвінка абонента"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Неможливо перейменувати список відтворення"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Неможливо встановити як звук дзвінка"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Неможливо відкрити спільний доступ до файла DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Альбоми"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Біографія"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Титри"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Інформація про медіадані"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Дискографія"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Лірика"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Задовге ім'я"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Основний рейтинг"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Можливо"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Огляд"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Список записів"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Вже додано"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "5.1-канальний"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Додати до списку"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Виконавець"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Виконавці"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Авто"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Доступні використання"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Підсилення басів"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Хор"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Класика"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Композитор"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Композитори"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Концертний зал"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Особливий"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Танцювальний"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Інформація про медіадані"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Динамічний"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Ефект"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Еквалайзер"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Уособлення"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Переадресація"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Жанр"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Жанри"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Джаз"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Пряма трансляція"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "Найчастіше відтворювані"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Ясність музики"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Музичне меню"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Установки музики"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Альбом зображень"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "Списки відтворення"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Поп-музика"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Останні додані"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Останні відтворені"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Рок"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Тривалість запису"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Тремоло"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Термін дії"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Вау-ва"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Широкий діапазон"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Роки"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Вимкнено"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Немає композицій"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Пісні"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Додати список відтворення"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Звук дзвінка"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Створити список відтворення"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Редагувати назву"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Історія"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Видалити"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Перейменувати"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Упорядкувати"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Зберегти як список відтворення"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Сигнал будильника"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Звук дзвінка абонента"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Додано до %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth відключено"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Вибрано максимальну кількість об’єктів: %d"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Нічого не вибрано"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Неможливо видалити. Вибрана музика відтворюється"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Неможливо відтворити. Сталася помилка"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Неможливо відтворити. Формат не підтримується"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Додати"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Відкр.д-п"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Всі"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Виконавці"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Композ."
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Дириг."
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Жанри"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Подкасти"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Роки"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Вибрати пристрій"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Більше не показувати"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Можна здійснити потокову передачу музики на пристрій за допомогою AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Перег. як"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Звичайний"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Користувач"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Вокальна"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Підсилення баса"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Підсилення сопрано"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Для кафе"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Віртуальний 7.1"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Через 15 хв."
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Через 30 хв."
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Через 1 годину"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Через 1 год. 30 хв."
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Через 2 години"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Автоматичне вимк. музики"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Цей звуковий ефект працює лише в режимах навушників і гарнітури Bluetooth"
+
--- /dev/null
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Nghe âm lượng to trong thời gian dài có thể làm hại thính giác của bạn"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "Không thể thêm"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "Không có lời"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "Không thể thay đổi hiệu ứng âm thanh khi đang sử hiệu ứng 5.1"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "Tìm tag"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "Hiệu ứng âm thanh 5.1 chỉ hoạt động khi gắn tai nghe"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "Hiệu ứng kênh 5.1 chỉ có thể được kích hoạt khi tắt hiệu ứng âm thanh"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "Không thể tạo ra Danh sách nhạc"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "Không thể lấy tag"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "Thư mục"
+
+msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
+msgstr "Không thể xóa khoản mục"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE"
+msgstr "Không thể thêm nhiều hơn %d file nhạc"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Không thể phát khi đang gọi"
+
+msgid "IDS_MUSIC_BODY_ALBUM"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_ALBUMS"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_AUTHOR"
+msgstr "Tác giả"
+
+msgid "IDS_MUSIC_BODY_COPYRIGHT"
+msgstr "Bản quyền"
+
+msgid "IDS_MUSIC_BODY_CREATE_PLAYLIST"
+msgstr "Tạo danh sách"
+
+msgid "IDS_MUSIC_BODY_DESCRIPTION"
+msgstr "Mô tả"
+
+msgid "IDS_MUSIC_BODY_FAVOURITES"
+msgstr "Yêu thích"
+
+msgid "IDS_MUSIC_BODY_FORMAT"
+msgstr "Định dạng"
+
+msgid "IDS_MUSIC_BODY_IMPOSSIBLE"
+msgstr "Không thể được"
+
+msgid "IDS_MUSIC_BODY_MUSIC_LOCATION"
+msgstr "Vị trí"
+
+msgid "IDS_MUSIC_BODY_NO_PLAYLISTS"
+msgstr "Không có danh sách"
+
+msgid "IDS_MUSIC_BODY_TRACK_NUMBER"
+msgstr "Số của bài hát"
+
+msgid "IDS_MUSIC_BODY_TYPE_CNOUN"
+msgstr "Loại"
+
+msgid "IDS_MUSIC_BODY_UNKNOWN"
+msgstr "Không biết"
+
+msgid "IDS_MUSIC_OPT_DELETE"
+msgstr "Xóa"
+
+msgid "IDS_MUSIC_POP_ADDED"
+msgstr "Đã thêm"
+
+msgid "IDS_MUSIC_POP_DELETE_Q"
+msgstr "Xóa?"
+
+msgid "IDS_MUSIC_POP_PS_REMOVED"
+msgstr "%s đã xóa"
+
+msgid "IDS_MUSIC_POP_REMOVED"
+msgstr "Đã xóa"
+
+msgid "IDS_MUSIC_POP_REMOVE_Q"
+msgstr "Xóa?"
+
+msgid "IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE"
+msgstr "Đặt như nhạc chuông người gọi"
+
+msgid "IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"
+msgstr "Không thể đổi tên Danh sách nhạc"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE"
+msgstr "Không thể đặt làm nhạc chuông"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
+msgstr "Không thể chia sẻ file DRM"
+
+msgid "IDS_MUSIC_TAB4_ALBUMS"
+msgstr "Albums"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
+msgstr "Add to home"
+
+msgid "IDS_MUSIC_BODY_BIOGRAPHY"
+msgstr "Tiểu sử"
+
+msgid "IDS_MUSIC_BODY_CREDITS"
+msgstr "Tín dụng"
+
+msgid "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"
+msgstr "Thông tin media"
+
+msgid "IDS_MUSIC_BODY_DISCOGRAPHY"
+msgstr "Danh sách đĩa hát"
+
+msgid "IDS_MUSIC_BODY_LYRIC"
+msgstr "Lời nhạc"
+
+msgid "IDS_MUSIC_BODY_NAME_TOO_LONG"
+msgstr "Tên quá dài"
+
+msgid "IDS_MUSIC_BODY_PARENT_RATING"
+msgstr "Đề cử"
+
+msgid "IDS_MUSIC_BODY_POSSIBLE"
+msgstr "Có thể"
+
+msgid "IDS_MUSIC_BODY_REVIEW"
+msgstr "Xem trước"
+
+msgid "IDS_MUSIC_HEADER_TRACK_LIST"
+msgstr "Danh sách bài hát"
+
+msgid "IDS_MUSIC_ALREADY_ADDED"
+msgstr "Đã thêm"
+
+msgid "IDS_MUSIC_BODY_51_CHANNEL"
+msgstr "Kênh 5.1"
+
+msgid "IDS_MUSIC_BODY_ADD_TO_PLAYLIST"
+msgstr "Thêm vào danh sách"
+
+msgid "IDS_MUSIC_BODY_ARTIST"
+msgstr "Nghệ sĩ"
+
+msgid "IDS_MUSIC_BODY_ARTISTS"
+msgstr "Nghệ sĩ"
+
+msgid "IDS_MUSIC_BODY_AUTO"
+msgstr "Tự động"
+
+msgid "IDS_MUSIC_BODY_AVAILABLE_USES"
+msgstr "Các ứng dụng"
+
+msgid "IDS_MUSIC_BODY_BASS_ENHANCEMENT"
+msgstr "Bass enhancement"
+
+msgid "IDS_MUSIC_BODY_CHOROUS"
+msgstr "Dàn hợp xướng"
+
+msgid "IDS_MUSIC_BODY_CLASSIC"
+msgstr "Classic"
+
+msgid "IDS_MUSIC_BODY_COMPOSER"
+msgstr "Composer"
+
+msgid "IDS_MUSIC_BODY_COMPOSERS"
+msgstr "Nhạc sĩ"
+
+msgid "IDS_MUSIC_BODY_CONCERT_HALL"
+msgstr "Concert hall"
+
+msgid "IDS_MUSIC_BODY_CUSTOM"
+msgstr "Tùy chọn"
+
+msgid "IDS_MUSIC_BODY_DANCE"
+msgstr "Dance"
+
+msgid "IDS_MUSIC_BODY_DETAILSMEADIAINFO"
+msgstr "Thông tin media"
+
+msgid "IDS_MUSIC_BODY_DYNAMIC"
+msgstr "Sống động"
+
+msgid "IDS_MUSIC_BODY_EFFECT"
+msgstr "Hiệu ứng"
+
+msgid "IDS_MUSIC_BODY_EQUALISER"
+msgstr "Bộ chỉnh âm"
+
+msgid "IDS_MUSIC_BODY_EXTERNALISATION"
+msgstr "Externalisation"
+
+msgid "IDS_MUSIC_BODY_FORWARDING"
+msgstr "Chuyển tiếp"
+
+msgid "IDS_MUSIC_BODY_GENRE"
+msgstr "Thể loại"
+
+msgid "IDS_MUSIC_BODY_GENRES"
+msgstr "Thể loại"
+
+msgid "IDS_MUSIC_BODY_JAZZ"
+msgstr "Jazz"
+
+msgid "IDS_MUSIC_BODY_LIVE"
+msgstr "Live"
+
+msgid "IDS_MUSIC_BODY_MOST_PLAYED"
+msgstr "D.sách nghe nhiều nhất"
+
+msgid "IDS_MUSIC_BODY_MUSIC_CLARITY"
+msgstr "Music clarity"
+
+msgid "IDS_MUSIC_BODY_MUSIC_MENU"
+msgstr "Menu nhạc"
+
+msgid "IDS_MUSIC_BODY_MUSIC_SETTINGS"
+msgstr "Cài đặt nhạc"
+
+msgid "IDS_MUSIC_BODY_PLAYINGDETAILS_ALBUM_ART"
+msgstr "Album"
+
+msgid "IDS_MUSIC_BODY_PLAYLISTS"
+msgstr "D.sách nhạc"
+
+msgid "IDS_MUSIC_BODY_POP"
+msgstr "Pop"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_ADDED"
+msgstr "Đã thêm gần đây"
+
+msgid "IDS_MUSIC_BODY_RECENTLY_PLAYED"
+msgstr "Những bài vừa nghe"
+
+msgid "IDS_MUSIC_BODY_ROCK"
+msgstr "Rock"
+
+msgid "IDS_MUSIC_BODY_TRACK_LENGTH"
+msgstr "Độ dài bài hát"
+
+msgid "IDS_MUSIC_BODY_TREMOLO"
+msgstr "Âm rung"
+
+msgid "IDS_MUSIC_BODY_VALIDITY"
+msgstr "Hiệu lực"
+
+msgid "IDS_MUSIC_BODY_WHA_WHA"
+msgstr "Wha-wha"
+
+msgid "IDS_MUSIC_BODY_WIDE"
+msgstr "Wide"
+
+msgid "IDS_MUSIC_BODY_YEARS"
+msgstr "Năm"
+
+msgid "IDS_MUSIC_BUTTON_OFF"
+msgstr "Tắt"
+
+msgid "IDS_MUSIC_HEADER_NO_SONGS"
+msgstr "Không có bài hát"
+
+msgid "IDS_MUSIC_HEADER_SONGS"
+msgstr "Bài hát"
+
+msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
+msgstr "Thêm danh sách"
+
+msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
+msgstr "Nhạc chuông cuộc gọi"
+
+msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
+msgstr "Tạo danh sách"
+
+msgid "IDS_MUSIC_OPT_EDIT_TITLE"
+msgstr "Sửa tiêu đề"
+
+msgid "IDS_MUSIC_OPT_HISTORY"
+msgstr "Nhật ký"
+
+msgid "IDS_MUSIC_OPT_REMOVE"
+msgstr "Xóa"
+
+msgid "IDS_MUSIC_OPT_RENAME"
+msgstr "Đổi tên"
+
+msgid "IDS_MUSIC_OPT_REORDER"
+msgstr "Sắp xếp lại"
+
+msgid "IDS_MUSIC_OPT_SAVE_AS_PLAYLIST"
+msgstr "Lưu làm danh sách phát"
+
+msgid "IDS_MUSIC_OPT_SETAS_ALARM_TONE"
+msgstr "Âm báo thức"
+
+msgid "IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE"
+msgstr "Chuông người gọi"
+
+msgid "IDS_MUSIC_POP_ADDED_TO_PS"
+msgstr "Đã thêm vào %s"
+
+msgid "IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"
+msgstr "Bluetooth đã ngắt kết nối"
+
+msgid "IDS_MUSIC_POP_MAXIMUM_NUMBER_OF_ITEMS_HPD_SELECTED"
+msgstr "Đã chọn số mục tối đa (%d)"
+
+msgid "IDS_MUSIC_POP_NOTHING_SELECTED"
+msgstr "Chưa chọn"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"
+msgstr "Không thể xóa. Nhạc đã chọn đang phát"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"
+msgstr "Không thể phát. Đã xảy ra lỗi"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"
+msgstr "Không thể phát. Loại File không hỗ trợ"
+
+msgid "IDS_MUSIC_SK_ADD_LITE"
+msgstr "Thêm"
+
+msgid "IDS_MUSIC_SK_SHARE"
+msgstr "Chia sẻ"
+
+msgid "IDS_MUSIC_TAB4_ALL"
+msgstr "Tất cả"
+
+msgid "IDS_MUSIC_TAB4_ARTISTS"
+msgstr "Nghệ sĩ"
+
+msgid "IDS_MUSIC_TAB4_COMPOSERS"
+msgstr "Soạn giả"
+
+msgid "IDS_MUSIC_TAB4_CONDUCTORS"
+msgstr "Người chỉ đạo"
+
+msgid "IDS_MUSIC_TAB4_GENRES"
+msgstr "Thể loại"
+
+msgid "IDS_MUSIC_TAB4_PODCASTS"
+msgstr "Podcast"
+
+msgid "IDS_MUSIC_TAB4_YEARS"
+msgstr "Năm"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "Chọn thiết bị"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "Không hiện lại"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "Bạn có thể truyền nhạc đến các thiết bị thông qua AllShare"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "Xem"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "Bình thường"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "Người dùng"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "Giọng hát"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "Tăng âm trầm"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "Tăng âm cao"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "Cafe"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Kênh 7.1 ảo"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "Sau 15 phút"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "Sau 30 phút"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "Sau 1 giờ"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "Sau 1 giờ 30 phút"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "Sau 2 giờ"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "Tự tắt nhạc"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "Hiệu ứng âm thanh này chỉ hoạt động khi dùng tai nghe và bộ tai nghe Bluetooth"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "如果长时间用高音量收听,可能会损坏听力"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "无法添加"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "没有歌词"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "使用5.1声道时无法更改声音效果"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "查找标签"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 声道声音效果只适用于耳机模式"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1声道仅在关闭声音效果时才能激活"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "无法创建播放列表"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "无法获取标签"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "文件夹"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "无法移除项目"
msgstr "专辑"
msgid "IDS_MUSIC_BODY_ALBUMS"
-msgstr "唱片"
+msgstr "专辑"
msgid "IDS_MUSIC_BODY_AUTHOR"
msgstr "作者"
msgstr "说明"
msgid "IDS_MUSIC_BODY_FAVOURITES"
-msgstr "æ\88\91ç\9a\84æ\9c\80ç\88±"
+msgstr "æ\88\91ç\9a\84æ\94¶è\97\8f"
msgid "IDS_MUSIC_BODY_FORMAT"
msgstr "格式"
msgstr "无法共享DRM文件"
msgid "IDS_MUSIC_TAB4_ALBUMS"
-msgstr "唱片"
+msgstr "专辑"
msgid "IDS_MUSIC_BODY_ADD_TO_HOME"
msgstr "Add to home"
msgstr "添加播放列表"
msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
-msgstr "æ\9d¥ç\94µ铃声"
+msgstr "æ\89\8bæ\9cº铃声"
msgid "IDS_MUSIC_OPT_CREATE_PLAYLIST"
msgstr "新建播放列表"
msgstr "播客"
msgid "IDS_MUSIC_TAB4_YEARS"
-msgstr "年"
+msgstr "年代"
+
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "选择设备"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "不要再显示"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "您可使用 AllShare 将您的音乐导入至设备"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "查看"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "普通"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "用户"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "声乐"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "低音增强"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "高音增强"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "咖啡馆"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "虚拟7.1 声道"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "15 分钟后"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "30分钟后"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "1小时后"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "1 小时 30 分钟后"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "2小时后"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "音乐自动关"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "此声音效果仅在耳机和蓝牙耳机模式下有效"
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "長期聆聽高音量會損害您的聽力"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "無法加入"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "無歌詞"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "當使用 5.1 頻道時無法更改音效"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "尋找標籤"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 聲道音效只適用於耳機模式"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "只有在關閉音效時,才可啟動 5.1 聲道"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "無法建立播放清單"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "無法取得標籤"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "資料夾"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "無法移除項目"
msgstr "類型"
msgid "IDS_MUSIC_BODY_UNKNOWN"
-msgstr "不明"
+msgstr "未知"
msgid "IDS_MUSIC_OPT_DELETE"
msgstr "刪除"
msgstr "無法設定為鈴聲"
msgid "IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"
-msgstr "ç\84¡æ³\95å\85±äº«DRM檔案"
+msgstr "ç\84¡æ³\95å\88\86享 DRM 檔案"
msgid "IDS_MUSIC_TAB4_ALBUMS"
msgstr "專輯"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "年"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "選擇裝置"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "不再顯示"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "您可以使用 AllShare 將音樂串流至裝置"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "檢視方式"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "正常"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "用戶"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "聲樂"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "低音增強"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "高音增強"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "咖啡廳"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 聲道"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "15 分鐘後"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "30 分鐘後"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "1 小時後"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "1小時30分鐘後"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "2 小時後"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "音樂自動關"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "此音效只在耳筒及藍牙耳機模式中有效"
+
+msgid "IDS_MUSIC_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "長期聆聽過大音量會損害您的聽力"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_ADD"
+msgstr "無法加入"
+
+msgid "IDS_MUSIC_SK3_NO_LYRICS"
+msgstr "沒有歌詞"
+
+msgid "IDS_MUSIC_BODY_UNABLE_TO_CHANGE_SOUND_EFFECTS_WHEN_USING_51_CHANNEL"
+msgstr "當使用5.1聲道時無法改變聲音效果"
+
+msgid "IDS_MUSIC_OPT_FIND_TAG"
+msgstr "尋找標籤"
+
+msgid "IDS_MUSIC_POP_51_CHANNEL_SOUND_EFFECT_WORKS_IN_EARPHONE_MODE_ONLY"
+msgstr "5.1 聲道音效只適用於耳機模式"
+
+msgid "IDS_MUSIC_POP_5_1_CHANNEL_CAN_ONLY_BE_ACTIVATED_WHEN_SOUND_EFFECTS_ARE_OFF"
+msgstr "5.1聲道只能關閉音效時啟動"
+
+msgid "IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"
+msgstr "無法建立播放清單"
+
+msgid "IDS_MUSIC_POP_UNABLE_TO_GET_TAG"
+msgstr "無法取得標籤"
+
+msgid "IDS_MUSIC_TAB4_FOLDERS"
+msgstr "資料夾"
+
msgid "IDS_MUSIC_POP_ITEM_NOT_REMOVE"
msgstr "無法移除項目"
msgstr "通話期間無法播放"
msgid "IDS_MUSIC_BODY_ALBUM"
-msgstr "專輯"
+msgstr "相簿"
msgid "IDS_MUSIC_BODY_ALBUMS"
msgstr "專輯"
msgstr "歌曲"
msgid "IDS_MUSIC_OPT_ADD_PLAYLIST"
-msgstr "加入播放清單"
+msgstr "新增播放清單"
msgid "IDS_MUSIC_OPT_CALL_RINGTONE"
msgstr "來電鈴聲"
msgstr "無法播放。不支援的檔案類型"
msgid "IDS_MUSIC_SK_ADD_LITE"
-msgstr "加入"
+msgstr "新增"
msgid "IDS_MUSIC_SK_SHARE"
msgstr "分享"
msgid "IDS_MUSIC_TAB4_YEARS"
msgstr "年"
+msgid "IDS_MUSIC_HEADER_SELECT_DEVICE"
+msgstr "選擇裝置"
+
+msgid "IDS_MUSIC_BODY_DO_NOT_SHOW_AGAIN"
+msgstr "不再顯示"
+
+msgid "IDS_MUSIC_BODY_YOU_CAN_STREAM_YOUR_MUSIC_TO_DEVICES_USING_ALLSHARE"
+msgstr "您可以使用數位連結將音樂串流至裝置"
+
+msgid "IDS_MUSIC_SK_VIEW_AS"
+msgstr "檢視方式"
+
+msgid "IDS_MUSIC_BODY_SOUNDEFFECTS_NORMAL"
+msgstr "正常"
+
+msgid "IDS_MUSIC_BODY_USER"
+msgstr "使用者"
+
+msgid "IDS_MUSIC_BODY_VOCAL_M_SOUNDEFFECT"
+msgstr "聲樂"
+
+msgid "IDS_MUSIC_MBODY_BASS_BOOST"
+msgstr "低音增強"
+
+msgid "IDS_MUSIC_MBODY_TREBLE_BOOST"
+msgstr "高音增強"
+
+msgid "IDS_MUSIC_BODY_CAFE_M_SOUNDEFFECT"
+msgstr "咖啡廳"
+
+msgid "IDS_MUSIC_OPT_VIRTUAL_71_CH"
+msgstr "Virtual 7.1 聲道"
+
+msgid "IDS_MUSIC_OPT_AFTER_15_MIN_ABB"
+msgstr "15 分鐘後"
+
+msgid "IDS_MUSIC_BODY_AFTER_30_MIN"
+msgstr "30 分鐘後"
+
+msgid "IDS_MUSIC_BODY_AFTER_1_HOUR"
+msgstr "1 小時後"
+
+msgid "IDS_MUSIC_POP_AFTER_1_HOUR_30_MIN"
+msgstr "1小時30分鐘後"
+
+msgid "IDS_MUSIC_BODY_AFTER_2_HOURS"
+msgstr "2 小時後"
+
+msgid "IDS_MUSIC_BODY_MUSIC_AUTO_OFF"
+msgstr "音樂自動關閉"
+
+msgid "IDS_MUSIC_POP_THIS_SOUND_EFFECT_WORKS_IN_EARPHONE_AND_BLUETOOTH_HEADSET_MODES_ONLY"
+msgstr "音效只適用耳機或是藍牙耳機模式"
+
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+SET(PROJECT_NAME sound-player)
+PROJECT(${PROJECT_NAME} C CXX)
+
+SET(VENDOR "tizen")
+SET(PACKAGE ${PROJECT_NAME})
+SET(PKGNAME "org.${VENDOR}.${PACKAGE}")
+SET(PREFIX "/opt/apps/${PKGNAME}")
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+SET(DATADIR "${PREFIX}/data")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(ICONDIR "${RESDIR}/icons/default/small")
+SET(EDJDIR "${RESDIR}/edje")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+ SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(sp_pkgs REQUIRED
+ elementary
+ ecore
+ dlog
+ edbus
+ drm-client
+ ui-gadget-1
+ syspopup-caller
+ capi-system-power
+ vconf
+ libxml-2.0
+ eina
+ ecore-imf
+ ecore-x
+ ecore-file
+ ecore-input
+ libcrypto
+ edje
+ evas
+ capi-appfw-application
+ capi-appfw-app-manager
+ capi-media-player
+ capi-media-sound-manager
+ capi-media-metadata-extractor
+ capi-system-haptic
+ capi-system-media-key
+ capi-content-media-content
+ minicontrol-provider
+)
+
+INCLUDE_DIRECTORIES(
+ ${GLOBAL_INCLUDE}
+ ${CMAKE_SOURCE_DIR}/src/include
+ ${CMAKE_SOURCE_DIR}/src/common/include
+ ${CMAKE_SOURCE_DIR}/src/core/include
+ ${CMAKE_SOURCE_DIR}/src/view/include
+ ${CMAKE_SOURCE_DIR}/src/widget/include
+
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/include
+)
+
+SET(SRCS
+ ${CMAKE_SOURCE_DIR}/src/mp-main.c
+
+ ${CMAKE_SOURCE_DIR}/src/core/mp-file-tag-info.c
+ ${CMAKE_SOURCE_DIR}/src/core/mp-player-control.c
+ ${CMAKE_SOURCE_DIR}/src/core/mp-player-mgr.c
+ ${CMAKE_SOURCE_DIR}/src/core/mp-player-drm.c
+ ${CMAKE_SOURCE_DIR}/src/core/mp-setting-ctrl.c
+ ${CMAKE_SOURCE_DIR}/src/core/mp-play-list.c
+ ${CMAKE_SOURCE_DIR}/src/core/mp-streaming-mgr.c
+ ${CMAKE_SOURCE_DIR}/src/core/mp-http-mgr.c
+
+ ${CMAKE_SOURCE_DIR}/src/common/mp-item.c
+ ${CMAKE_SOURCE_DIR}/src/common/mp-ta.c
+ ${CMAKE_SOURCE_DIR}/src/common/mp-menu.c
+ ${CMAKE_SOURCE_DIR}/src/common/mp-ug-launch.c
+ ${CMAKE_SOURCE_DIR}/src/common/mp-widget.c
+ ${CMAKE_SOURCE_DIR}/src/common/mp-util.c
+ ${CMAKE_SOURCE_DIR}/src/common/mp-play.c
+ ${CMAKE_SOURCE_DIR}/src/common/mp-app.c
+ ${CMAKE_SOURCE_DIR}/src/common/mp-media-info.c
+
+ ${CMAKE_SOURCE_DIR}/src/view/mp-play-view.c
+
+ ${CMAKE_SOURCE_DIR}/src/widget/mp-smart-event-box.c
+ ${CMAKE_SOURCE_DIR}/src/widget/mp-popup.c
+ ${CMAKE_SOURCE_DIR}/src/widget/mp-minicontroller.c
+# ${CMAKE_SOURCE_DIR}/src/widget/mp-mini-player.c
+
+ ${CMAKE_SOURCE_DIR}/src/core/mp-language-mgr.c
+ # sound-player only
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/sp-view-manager.c
+)
+
+
+FOREACH(flag ${sp_pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fpie")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -fpie")
+
+ADD_DEFINITIONS("-DMP_SOUND_PLAYER")
+ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
+#ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+#ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+#ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
+#ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+#ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
+#ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+
+if("${CMAKE_SYSTEM_VERSION}" STREQUAL "arm" OR "${CMAKE_SYSTEM_VERSION}" STREQUAL "armv7l")
+ADD_DEFINITIONS("-D__ARM__")
+endif()
+
+#SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -pie")
+SET(CMAKE_LDFLAGS "-Wl,-zdefs" )
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${sp_pkgs_LDFLAGS} -lm)
+
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
+INSTALL(DIRECTORY DESTINATION ${DATADIR})
+
+# install desktop file & icon
+#CONFIGURE_FILE(${PKGNAME}.desktop.in ${PKGNAME}.desktop)
+#INSTALL(FILES ${PKGNAME}.desktop DESTINATION /opt/share/applications)
+
+# install xml file
+#INSTALL(FILES ${PKGNAME}.xml DESTINATION /usr/share/packages)
+
+#INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/target_images/music_player DESTINATION ${RESDIR}/icons)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PKGNAME}.png DESTINATION ${CMAKE_DESKTOP_ICON_DIR})
+
+ADD_SUBDIRECTORY(res/locale)
+
--- /dev/null
+Name=Sound Player
+Name[en_US]=Sound Player
+Name[nl_NL]=Sound Player
+Name[de_DE]=Sound Player
+Name[zh_HK]=Sound Player
+Name[zh_CN]=Sound Player
+Name[ru_RU]=Sound Player
+Name[zh_TW]=Sound Player
+Name[ja_JP]=Sound Player
+Name[es_ES]=Sound Player
+Name[el_GR]=Sound Player
+Name[it_IT]=Sound Player
+Name[tr_TR]=Sound Player
+Name[pt_PT]=Sound Player
+Name[fr_FR]=Sound Player
+Name[ko_KR]=사운드 플레이어
+Type=Application
+Exec=${PREFIX}/bin/sound-player
+Icon=org.tizen.sound-player.png
+Network=TRUE
+Version=0.1.0
+Comment=sound-player
+X-Tizen-TaskManage=True
+X-Tizen-Multiple=False
+X-Tizen-Removable=False
+MimeType=audio/x-flac;audio/mpeg; audio/aac; audio/AMR; audio/AMR-WB; audio/ac3; audio/x-ms-wma; audio/ogg; audio/vorbis; audio/x-wav; audio/imelody; audio/iMelody; audio/rmf; audio/x-rmf; application/x-smaf; application/vnd.smaf; audio/x-xmf; audio/mobile-xmf; audio/mid; audio/vnd.ms-playready.media.pya; audio/imy; audio/m4a; audio/melody; audio/midi; audio/mmf; audio/mp3; audio/mp4; audio/MP4A-LATM; audio/mpeg3; audio/mpeg4; audio/mpg; audio/mpg3; audio/smaf; audio/sp-midi; audio/wav; audio/wave; audio/wma; audio/xmf; audio/amr; audio/amr-wb; audio/x-amr; audio/x-mid; audio/x-midi; audio/x-mp3; audio/-mpeg; audio/x-mpeg3; audio/x-mpegaudio; audio/x-mpg; audio/x-ms-asf; audio/x-wave; application/ogg
+X-Tizen-SVC=http://tizen.org/appsvc/operation/view|NULL|audio/*;http://tizen.org/appsvc/operation/view|http|audio/*;http://tizen.org/appsvc/operation/view|https|audio/*;http://tizen.org/appsvc/operation/view|NULL|text/x-iMelody;http://tizen.org/appsvc/operation/view|NULL|application/x-smaf;http://tizen.org/appsvc/operation/view|http|text/x-iMelody;http://tizen.org/appsvc/operation/view|http|application/x-smaf
+Nodisplay=TRUE
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.sound-player" version="0.1.0" install-location="internal-only">
+ <label>Sound Player</label>
+ <author email="hm2007.kim@samsung.com" href="www.samsung.com">Hyungmin Kim</author>
+ <description>Sound player</description>
+ <ui-application appid="org.tizen.sound-player" exec="/opt/apps/org.tizen.sound-player/bin/sound-player" nodisplay="true" multiple="false" type="capp" taskmanage="true">
+ <label>Sound player</label>
+ <icon>org.tizen.sound-player.png</icon>
+ <label xml:lang="en-us">Sound Player</label>
+ <label xml:lang="nl-nl">Sound Player</label>
+ <label xml:lang="de-de">Sound Player</label>
+ <label xml:lang="zh-hk">Sound Player</label>
+ <label xml:lang="zh-cn">Sound Player</label>
+ <label xml:lang="ru-ru">Sound Player</label>
+ <label xml:lang="zh-tw">Sound Player</label>
+ <label xml:lang="ja-jp">Sound Player</label>
+ <label xml:lang="es-es">Sound Player</label>
+ <label xml:lang="el-gr">Sound Player</label>
+ <label xml:lang="it-it">Sound Player</label>
+ <label xml:lang="tr-tr">Sound Player</label>
+ <label xml:lang="pt-pt">Sound Player</label>
+ <label xml:lang="fr-fr">Sound Player</label>
+ <label xml:lang="ko-kr">사운드 플레이어</label>
+ <application-service>
+ <operation name="http://tizen.org/appsvc/operation/view" />
+ <mime name="audio/*" />
+ <mime name="text/x-iMelody" />
+ <mime name="application/x-smaf" />
+ <mime name="text/x-iMelody" />
+ <uri name="http" />
+ <uri name="https" />
+ <uri name="NULL" />
+ </application-service>
+ </ui-application>
+</manifest>
--- /dev/null
+# for i18n
+
+SET(POFILES
+ de_DE.po
+ el_GR.po
+ en.po
+ es_ES.po
+ fr_FR.po
+ it_IT.po
+ ko_KR.po
+ nl_NL.po
+ pt_PT.po
+ ru_RU.po
+ tr_TR.po
+ zh_CN.po
+ zh_HK.po
+ zh_TW.po
+ ja_JP.po
+)
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+ SET(pofile ${CMAKE_SOURCE_DIR}/po/${pofile})
+ MESSAGE("PO: ${pofile}")
+ GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+ SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${moFile}
+ COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+ DEPENDS ${absPofile}
+ )
+ INSTALL(FILES ${moFile}
+ DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+ SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(sound-player_po ALL DEPENDS ${moFiles})
+
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#ifndef __SP_VIEW_MANAGER_H__
+#define __SP_VIEW_MANAGER_H__
+
+#include <Elementary.h>
+
+typedef struct _Sp_View_Manager Sp_View_Manager;
+
+typedef enum {
+ SP_VIEW_TYPE_DEFAULT,
+ SP_VIEW_TYPE_PLAY,
+ SP_VIEW_TYPE_INFO,
+ SP_VIEW_TYPE_NUM,
+} Sp_View_Type;
+
+Sp_View_Manager* sp_view_mgr_create(Evas_Object *navi);
+void sp_view_mgr_destroy(Sp_View_Manager* view_mgr);
+Evas_Object* sp_view_mgr_get_naviframe(Sp_View_Manager *view_mgr);
+void sp_view_mgr_push_view_content(Sp_View_Manager *view_mgr, Evas_Object *content, Sp_View_Type type);
+void sp_view_mgr_pop_view_content(Sp_View_Manager *view_mgr, bool pop_to_first);
+void sp_view_mgr_pop_view_to(Sp_View_Manager *view_mgr, Sp_View_Type type);
+Elm_Object_Item * sp_view_mgr_get_play_view_navi_item(Sp_View_Manager *view_mgr);
+void sp_view_mgr_play_view_title_label_set(Sp_View_Manager *view_mgr, const char *title);
+void sp_view_mgr_set_title_label(Sp_View_Manager *view_mgr, const char *title);
+void sp_view_mgr_set_back_button(Sp_View_Manager *view_mgr, Evas_Smart_Cb cb, void *data);
+
+#endif /* __SP_VIEW_MANAGER_H__ */
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#include "mp-define.h"
+#include "sp-view-manager.h"
+#include "mp-widget.h"
+
+struct _Sp_View_Manager {
+ Evas_Object *navi;
+ GList *view_history;
+};
+
+typedef struct {
+ int index;
+ Elm_Object_Item *navi_item;
+ Sp_View_Type type;
+} Sp_View_Data;
+
+
+Sp_View_Manager*
+sp_view_mgr_create(Evas_Object *navi)
+{
+ startfunc;
+ MP_CHECK_NULL(navi);
+
+ Sp_View_Manager *view_mgr = (Sp_View_Manager *)calloc(1, sizeof(Sp_View_Manager));
+ mp_assert(view_mgr);
+
+ view_mgr->navi = navi;
+
+ return view_mgr;
+}
+
+void
+sp_view_mgr_destroy(Sp_View_Manager* view_mgr)
+{
+ startfunc;
+ MP_CHECK(view_mgr);
+
+ if (view_mgr->view_history) {
+ GList *current = view_mgr->view_history;
+ while(current) {
+ IF_FREE(current->data);
+ current = current->next;
+ }
+
+ g_list_free(view_mgr->view_history);
+ view_mgr->view_history = NULL;
+ }
+
+
+ IF_FREE(view_mgr);
+}
+
+Evas_Object*
+sp_view_mgr_get_naviframe(Sp_View_Manager *view_mgr)
+{
+ MP_CHECK_NULL(view_mgr);
+ return view_mgr->navi;
+}
+
+void
+sp_view_mgr_push_view_content(Sp_View_Manager *view_mgr, Evas_Object *content, Sp_View_Type type)
+{
+ startfunc;
+ MP_CHECK(view_mgr);
+ MP_CHECK(view_mgr->navi);
+ MP_CHECK(content);
+
+ Sp_View_Data *view_data = calloc(1, sizeof(Sp_View_Data));
+ mp_assert(view_data);
+
+ view_data->navi_item = elm_naviframe_item_push(view_mgr->navi, NULL, NULL, NULL, content, "1line/music");
+ view_data->type = type;
+ view_data->index = g_list_length(view_mgr->view_history);
+
+ view_mgr->view_history = g_list_append(view_mgr->view_history, view_data);
+}
+
+void
+sp_view_mgr_pop_view_content(Sp_View_Manager *view_mgr, bool pop_to_first)
+{
+ startfunc;
+ MP_CHECK(view_mgr);
+ MP_CHECK(view_mgr->navi);
+
+ GList *last = g_list_last(view_mgr->view_history);
+ MP_CHECK(last);
+ Sp_View_Data *view_data = last->data;
+ MP_CHECK(view_data);
+
+ if (pop_to_first) {
+ Elm_Object_Item *bottom_item = elm_naviframe_bottom_item_get(view_mgr->navi);
+ if (bottom_item)
+ elm_naviframe_item_pop_to(bottom_item);
+
+ while(view_data && view_data->index > 0) {
+ SAFE_FREE(view_data);
+ view_mgr->view_history = g_list_delete_link(view_mgr->view_history, last);
+ last = g_list_last(view_mgr->view_history);
+ if (last)
+ view_data = last->data;
+ }
+ } else {
+ elm_naviframe_item_pop(view_mgr->navi);
+ IF_FREE(view_data);
+ view_mgr->view_history = g_list_delete_link(view_mgr->view_history, last);
+ }
+
+ if (g_list_length(view_mgr->view_history) == 0) {
+ g_list_free(view_mgr->view_history);
+ view_mgr->view_history = NULL;
+ }
+}
+
+void
+sp_view_mgr_pop_view_to(Sp_View_Manager *view_mgr, Sp_View_Type type)
+{
+ MP_CHECK(view_mgr);
+ MP_CHECK(view_mgr->view_history);
+
+ GList *last = g_list_last(view_mgr->view_history);
+ MP_CHECK(last);
+ Sp_View_Data *view_data = last->data;
+ MP_CHECK(view_data);
+
+ while(view_data) {
+ if (view_data->type == type)
+ break;
+
+ SAFE_FREE(view_data);
+ view_mgr->view_history = g_list_delete_link(view_mgr->view_history, last);
+ last = g_list_last(view_mgr->view_history);
+ if (last)
+ view_data = last->data;
+ }
+
+ if (view_data->navi_item)
+ elm_naviframe_item_pop_to(view_data->navi_item);
+}
+
+Elm_Object_Item*
+sp_view_mgr_get_play_view_navi_item(Sp_View_Manager *view_mgr)
+{
+ MP_CHECK_NULL(view_mgr);
+ MP_CHECK_NULL(view_mgr->view_history);
+
+ GList *current = view_mgr->view_history;
+ Sp_View_Data *view_data = NULL;
+ while(current) {
+ view_data = current->data;
+ if (view_data && view_data->type == SP_VIEW_TYPE_PLAY)
+ return view_data->navi_item;
+
+ current = current->next;
+ }
+
+ return NULL;
+}
+
+void
+sp_view_mgr_play_view_title_label_set(Sp_View_Manager *view_mgr, const char *title)
+{
+ MP_CHECK(view_mgr);
+
+ Elm_Object_Item *navi_item = sp_view_mgr_get_play_view_navi_item(view_mgr);
+ if (navi_item)
+ elm_object_item_text_set(navi_item, title);
+}
+
+void
+sp_view_mgr_set_title_label(Sp_View_Manager *view_mgr, const char *title)
+{
+ MP_CHECK(view_mgr);
+
+ Evas_Object *navi = sp_view_mgr_get_naviframe(view_mgr);
+ MP_CHECK(navi);
+
+ Elm_Object_Item *navi_item = elm_naviframe_top_item_get(navi);
+ if (navi_item)
+ elm_object_item_text_set(navi_item, title);
+}
+
+void
+sp_view_mgr_set_back_button(Sp_View_Manager *view_mgr, Evas_Smart_Cb cb, void *data)
+{
+ MP_CHECK(view_mgr);
+
+ Evas_Object *navi = view_mgr->navi;
+ MP_CHECK(navi);
+ Elm_Object_Item *navi_item = elm_naviframe_top_item_get(navi);
+ MP_CHECK(navi_item);
+
+ Evas_Object *button = NULL;
+ if(cb)
+ {
+ button = mp_widget_create_button(navi, "naviframe/back_btn/default", NULL, NULL, cb, data);
+ elm_object_item_part_content_set(navi_item, ELM_NAVIFRAME_ITEM_PREV_BTN, button);
+ }
+ else
+ {
+ elm_object_item_part_content_set(navi_item, ELM_NAVIFRAME_ITEM_PREV_BTN, NULL);
+ }
+}
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
+
#ifndef __MP_APP_H__
#define __MP_APP_H__
#include <sys/inotify.h>
+#include <app.h>
typedef enum _mp_inotify_event
{
MP_INOTI_MODIFY, // IN_MODIFY
MP_INOTI_MOVE_OUT, // IN_MOVED_FROM
MP_INOTI_MOVE_IN, // IN_MOVED_TO
+ //MP_INOTI_DELETE_SELF, // IN_DELETE_SELF
+ //MP_INOTI_MOVE_SELF, // IN_MOVE_SELF
MP_INOTI_MAX,
} mp_inotify_event;
void mp_app_inotify_finalize(struct appdata *ad);
int mp_app_inotify_add_watch(const char *path, mp_inotify_cb callback, void *user_data);
int mp_app_inotify_rm_watch(int index);
-
-Eina_Bool mp_app_hard_key_down_cb(void *data, int type, void *event_info);
-Eina_Bool mp_app_hard_key_up_cb(void *data, int type, void *event_info);
+Eina_Bool mp_app_mouse_event_cb(void *data, int type, void *event);
+bool mp_app_grab_mm_keys(void *data);
+void mp_app_ungrab_mm_keys();
+void mp_app_live_box_init(struct appdata *ad);
+void mp_app_live_box_deinit(struct appdata *ad);
#endif // __MP_APP_H__
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#ifndef __mp_common_H__
#define __mp_common_H__
#include "music.h"
#include "mp-view-layout.h"
-#define _EDJ(obj) elm_layout_edje_get(obj) /**< get evas object from elm layout */
-
struct text_part
{
char *part;
char *msgid;
};
-Evas_Object *mp_create_win(const char *name);
-Evas_Object *mp_get_main_win(void);
-int mp_check_battery_available(void);
-
-inline Evas_Object *mp_common_load_edj(Evas_Object * parent, const char *file, const char *group);
-
char *mp_common_track_list_label_get(void *data, Evas_Object * obj, const char *part);
Evas_Object *mp_common_track_list_icon_get(void *data, Evas_Object * obj, const char *part);
Evas_Object *mp_common_create_editfield_layout(Evas_Object * parent, struct appdata *ad, char *text);
void mp_common_track_genlist_sel_cb(void *data, Evas_Object * obj, void *event_info);
-int mp_check_mass_storage_mode(void);
int mp_check_db_initializing(void);
-int mp_commmon_check_rotate_lock(void);
+
void mp_common_hide_search_ise_context(view_data_t * view_data);
void mp_common_search_button_cb(void *data, Evas_Object * obj, void *event_info);
void mp_common_edit_button_cb(void *data, Evas_Object * obj, void *event_info);
void mp_common_item_check_changed_cb(void *data, Evas_Object * obj, void *event_info);
void mp_common_set_title_button_sensitivity(mp_layout_data_t * layout_data, int selected_count);
void mp_common_change_item_class(Evas_Object * genlist, Elm_Genlist_Item_Class * itc);
-bool mp_common_track_get_aa_index(int index, mp_layout_data_t *layout_data, Elm_Object_Item *gli, bool is_item_del);
void mp_common_navigationbar_finish_effect(void *data, Evas_Object * obj, void *event_info);
#endif // __mp_common_H__
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __MP_ITEM_H_
#define __MP_ITEM_H_
#include <Elementary.h>
#include <mp-define.h>
-bool mp_item_update_db(MediaSvcHandle *media_svc_handle, char *fid);
+bool mp_item_update_db(char *fid);
+
+int mp_item_share_by_bt(const char *formed_path, int file_cnt);
+
+#define AS_IPC_REQUEST_METHOD "Request"
+
+typedef struct
+{
+ int param1; //Allshare_opp_req_t type
+ int param2; //the number of files
+ char *param3; //file path
+} Allshare_para_info_t;
+
+typedef enum
+{
+ AS_OPP_REQ_FILE_PLAY
+} Allshare_opp_req_t;
+
+#define mp_object_free(obj) \
+do { \
+ if(obj != NULL) { \
+ g_free(obj); \
+ obj = NULL; \
+ } \
+}while(0)
#endif
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#ifndef __MP_MEDIA_INFO_H__
+#define __MP_MEDIA_INFO_H__
+
+#include <stdbool.h>
+
+#define MAX_FILTER_LEN 1024
+
+typedef struct mp_media_list_s *mp_media_list_h;
+typedef struct mp_media_info_s *mp_media_info_h;
+typedef struct filter_s *mp_filter_h;
+typedef struct playlist_s *mp_playlist_h;
+
+typedef bool(* mp_media_info_cb)(mp_media_info_h media, void *user_data);
+
+
+typedef enum
+{
+ MP_MEDIA_CONTENT_COLLATE_DEFAULT = 0, /**< default collation BINARY */
+ MP_MEDIA_CONTENT_COLLATE_NOCASE = 1, /**< collation NOCASE, not case sensitive */
+ MP_MEDIA_CONTENT_COLLATE_RTRIM = 2, /**< collation RTRIM, trailing space characters are ignored */
+} mp_media_content_collation_e;
+
+typedef enum
+{
+ MP_MEDIA_TYPE_MUSIC,
+ MP_MEDIA_TYPE_SOUND,
+}mp_media_type_e;
+
+typedef enum{
+ MP_TRACK_ALL, /**< All tracks*/
+ MP_TRACK_BY_ALBUM, /**< Album tracks*/
+ MP_TRACK_BY_ARTIST_ALBUM, /** < Albums which has special artist condition */
+ MP_TRACK_BY_ARTIST, /**< Artist tracks*/
+ MP_TRACK_BY_ARTIST_GENRE, /**< Genre tracks which has special artist condition*/
+ MP_TRACK_BY_GENRE, /**< Genre tracks*/
+ MP_TRACK_BY_FOLDER, /**< Genre tracks*/
+ MP_TRACK_BY_YEAR, /**< Year tracks*/
+ MP_TRACK_BY_COMPOSER, /**< Author tracks*/
+ MP_TRACK_BY_FAVORITE, /**< Toprating tracks*/
+ MP_TRACK_BY_PLAYED_TIME, /**< Recently played tracks*/
+ MP_TRACK_BY_ADDED_TIME, /**< Recently added tracks*/
+ MP_TRACK_BY_PLAYED_COUNT, /**< Most played tracks*/
+ MP_TRACK_BY_PLAYLIST, /**< User playlist tracks*/
+}mp_track_type_e;
+
+typedef enum{
+ MP_GROUP_BY_ALBUM, /**< Group by album*/
+ MP_GROUP_BY_ARTIST, /**< Group by artist*/
+ MP_GROUP_BY_ARTIST_ALBUM, /**< Group by album which has special artist condition*/
+ MP_GROUP_BY_GENRE, /**< Group by genre*/
+ MP_GROUP_BY_FOLDER, /**< Group by folder*/
+ MP_GROUP_BY_YEAR, /**< Group by year*/
+ MP_GROUP_BY_COMPOSER, /**< Group by author*/
+ MP_GROUP_BY_PLAYLIST,
+ MP_GROUP_BY_SYS_PLAYLIST,
+ MP_GROUP_NONE
+}mp_group_type_e;
+
+typedef enum{
+ MP_SYS_PLST_MOST_PLAYED = -3,
+ MP_SYS_PLST_RECENTELY_ADDED = -2,
+ MP_SYS_PLST_RECENTELY_PLAYED = -1,
+ MP_SYS_PLST_QUICK_LIST = 0,
+}mp_sys_playlsit_id;
+
+/*connection*/
+int mp_media_info_connect(void);
+int mp_media_info_disconnect(void);
+
+/*filter*/
+int mp_media_filter_create(mp_filter_h *filter);
+int mp_media_filter_destory(mp_filter_h filter);
+int mp_media_filter_set_offset(mp_filter_h filter, int offset, int count);
+int mp_media_filter_set_order(mp_filter_h filter, bool asc, const char *order_keyword, mp_media_content_collation_e collation);
+int mp_media_filter_set_condition(mp_filter_h filter, const char *condition, mp_media_content_collation_e collation );
+
+/*media infomation*/
+int mp_media_info_get_media_id(mp_media_info_h media, char **media_id);
+int mp_media_info_get_file_path(mp_media_info_h media, char **path);
+int mp_media_info_get_thumbnail_path(mp_media_info_h media, char **path);
+int mp_media_info_get_favorite(mp_media_info_h media, bool *favorite);
+int mp_media_info_is_drm(mp_media_info_h media, bool *drm);
+int mp_media_info_get_title(mp_media_info_h media, char **title);
+int mp_media_info_get_album(mp_media_info_h media, char **album);
+int mp_media_info_get_genre(mp_media_info_h media, char **genre);
+int mp_media_info_get_artist(mp_media_info_h media, char **artist);
+int mp_media_info_get_composer(mp_media_info_h media, char **composer);
+int mp_media_info_get_year(mp_media_info_h media, char **year);
+int mp_media_info_get_copyright(mp_media_info_h media, char **copyright);
+int mp_media_info_get_track_num(mp_media_info_h media, char **track_num);
+int mp_media_info_get_format(mp_media_info_h media, char **format);
+int mp_media_info_get_media_type(mp_media_info_h media, int *media_type);
+int mp_media_info_get_bit_rate(mp_media_info_h media, int *bitrate);
+int mp_media_info_get_sample_rate(mp_media_info_h media, int *sample_rate);
+int mp_media_info_get_duration(mp_media_info_h media, int *duration);
+int mp_media_info_get_played_time(mp_media_info_h media, time_t *time);
+int mp_media_info_get_played_count(mp_media_info_h media, int *count);
+int mp_media_info_get_playlist_member_id(mp_media_info_h media, int *member_id);
+
+int mp_media_info_set_favorite(mp_media_info_h media, bool favorite);
+int mp_media_info_set_played_time(mp_media_info_h media, time_t time);
+int mp_media_info_set_played_count(mp_media_info_h media, int count);
+int mp_media_info_set_added_time(mp_media_info_h media, time_t time);
+
+/*media*/
+int mp_media_info_create(mp_media_info_h *media_list, const char *media_id);
+int mp_media_info_create_by_path(mp_media_info_h *media_info, const char *file_path);
+int mp_media_info_destroy(mp_media_info_h media_info);
+
+/*media list*/
+int mp_media_info_list_count(mp_track_type_e track_type, const char *type_string,const char *type_string2, const char *filter_string, int playlist_id, int *count);
+int mp_media_info_list_count_w_filter(mp_track_type_e track_type, const char *folder_id, int playlist_id, mp_filter_h filter, int *count);
+int mp_media_info_list_create(mp_media_list_h *media_list, mp_track_type_e track_type, const char *type_string, const char *type_string2, const char *filter_string, int playlist_id, int offset, int count);
+int mp_media_info_list_create_w_filter(mp_track_type_e track_type, const char *folder_id, int playlist_id, mp_filter_h filter, mp_media_list_h *media_list);
+int mp_media_info_list_destroy(mp_media_list_h media_list);
+mp_media_info_h mp_media_info_list_nth_item(mp_media_list_h media_list, int index);
+
+/*group list*/
+int mp_media_info_group_list_count(mp_group_type_e group_type, const char *type_string, const char *filter_string, int *count);
+int mp_media_info_group_list_count_w_filter(mp_group_type_e group_type, mp_filter_h filter, int *count);
+int mp_media_info_group_list_create(mp_media_list_h *media_list, mp_group_type_e group_type, const char *type_string, const char *filter_string, int offset, int count);
+int mp_media_info_group_list_create_w_filter(mp_filter_h filter, mp_group_type_e group_type, mp_media_list_h *media_list);
+int mp_media_info_group_list_destroy(mp_media_list_h media_list);
+mp_media_info_h mp_media_info_group_list_nth_item(mp_media_list_h media_list, int index);
+
+int mp_media_info_group_get_main_info(mp_media_info_h media, char **main_info);
+int mp_media_info_group_get_sub_info(mp_media_info_h media, char **sub_info);
+int mp_media_info_group_get_playlist_id(mp_media_info_h media, int *playlist_id);
+int mp_media_info_group_get_folder_id(mp_media_info_h media, char **folder_id);
+int mp_media_info_group_get_thumbnail_path(mp_media_info_h media, char **path);
+
+/*playlist list*/
+int mp_media_info_playlist_get_id_by_name(const char *playlist_name, int *playlist_id);
+int mp_media_info_playlist_insert_to_db(const char * name, int *playlist_id, mp_playlist_h *playlist_handle);
+int mp_media_info_playlist_handle_destroy(mp_playlist_h playlist_handle);
+int mp_media_info_playlist_delete_from_db(int playlist_id);
+int mp_media_info_playlist_add_media(int playlist_id, const char *media_id);
+int mp_media_info_playlist_remove_media(mp_media_info_h playlist, int memeber_id);
+int mp_media_info_playlist_set_play_order(mp_media_info_h playlist, int memeber_id, int play_order);
+int mp_media_info_playlist_is_exist(const char *playlist_name, bool *exist);
+int mp_media_info_playlist_unique_name(const char *orig_name, char *unique_name, size_t max_unique_name_length);
+int mp_media_info_playlist_rename(mp_media_info_h playlist, const char *new_name);
+int mp_media_info_playlist_get_play_order(mp_media_info_h playlist, int playlist_member_id, int * play_order);
+
+#endif
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
-
#ifndef __MP_MENU_H_
#define __MP_MENU_H_
+void mp_menu_share_list_select_cb(void *data, Evas_Object * obj, void *event_info);
+void mp_menu_share_select_cb(void *data, Evas_Object * obj, void *event_info);
+void mp_menu_set_as_select_cb(void *data, Evas_Object * obj, void *event_info);
+void mp_menu_share_cb(void *data, Evas_Object * obj, void *event_info);
+void mp_menu_set_cb(void *data, Evas_Object * obj, void *event_info);
+#ifndef MP_SOUND_PLAYER
void mp_menu_delete_cb(void *data, Evas_Object * obj, void *event_info);
void mp_menu_add_to_playlist_cb(void *data, Evas_Object * obj, void *event_info);
-audio_svc_track_type_e mp_menu_get_track_type_by_group(audio_svc_group_type_e group_type);
+mp_track_type_e mp_menu_get_track_type_by_group(mp_group_type_e group_type);
void mp_menu_add_to_play_list_cancel_create_cb(void *data, Evas_Object * obj, void *event_info);
void mp_menu_add_to_play_list_done_create_cb(void *data, Evas_Object * obj, void *event_info);
+#endif
void mp_util_create_notify(void *data, const char *noti_msg);
+#define ADD_TO_HOME ("IDS_MUSIC_BODY_ADD_TO_HOME")
+#define CALLER_RINGTONE ("IDS_MUSIC_OPT_SETAS_CALLER_RINGTONE")
+#define ALARM_TONE ("IDS_MUSIC_OPT_SETAS_ALARM_TONE")
+#define CALL_RINGTONE ("IDS_MUSIC_OPT_CALL_RINGTONE")
+
+//system string
+#define BLUETOOTH_SYS GET_SYS_STR("IDS_COM_BODY_BLUETOOTH")
+#define ALLSHARE_SYS GET_SYS_STR("IDS_COM_BODY_ALLSHARE")
+#define EMAIL_SYS GET_SYS_STR("IDS_COM_BODY_EMAIL")
+#define MESSAGE_SYS GET_SYS_STR("IDS_COM_BODY_MESSAGE")
+#define WIFI_SYS GET_SYS_STR("IDS_COM_BODY_WI_FI")
+#define NFC_SYS GET_SYS_STR("IDS_COM_BODY_NFC")
+
#endif // __MP_MENU_H_
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __MP_PLAY_H_
#define __MP_PLAY_H_
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#ifndef _MP_TA_H_
+#define _MP_TA_H_
+
+#include "mp-define.h"
+
+#define ENABLE_MP_TA
+#ifdef ENABLE_MP_TA
+
+// defs.
+#define MP_TA_MAX_CHECKPOINT 500
+#define MP_TA_MAX_ACCUM 500
+
+typedef struct _mp_ta_checkpoint
+{
+ unsigned long timestamp;
+ char *name;
+} mp_ta_checkpoint;
+
+typedef struct _mp_ta_accum_item
+{
+ unsigned long elapsed_accum;
+ unsigned long num_calls;
+ unsigned long elapsed_min;
+ unsigned long elapsed_max;
+ unsigned long first_start;
+ unsigned long last_end;
+
+ char *name;
+
+ unsigned long timestamp;
+ int on_estimate;
+ int num_unpair;
+} mp_ta_accum_item;
+
+#define MP_TA_SHOW_STDOUT 0
+#define MP_TA_SHOW_STDERR 1
+#define MP_TA_SHOW_FILE 2
+#define MP_TA_ENABLE_FILE MP_INI_DIR"/ta"
+#define MP_TA_RESULT_FILE MP_INI_DIR"/mp-ta.log"
+
+/////////////////////////////
+// COMMON
+int mp_ta_init(void);
+int mp_ta_release(void);
+void mp_ta_set_enable(int enable);
+char *mp_ta_fmt(const char *fmt, ...);
+
+/////////////////////////////
+// CHECK POINT
+int mp_ta_add_checkpoint(char *name, int show, char *filename, int line);
+void mp_ta_show_checkpoints(void);
+void mp_ta_show_diff(char *name1, char *name2);
+
+int mp_ta_get_numof_checkpoints();
+unsigned long mp_ta_get_diff(char *name1, char *name2);
+//char* mp_ta_get_name(int idx);
+
+
+/////////////////////////////
+// ACCUM ITEM
+int mp_ta_accum_item_begin(char *name, int show, char *filename, int line);
+int mp_ta_accum_item_end(char *name, int show, char *filename, int line);
+void mp_ta_accum_show_result(int direction);
+
+// macro.
+#define MP_TA_INIT() ( mp_ta_init() )
+#define MP_TA_RELEASE() ( mp_ta_release() )
+#define MP_TA_SET_ENABLE(enable) ( mp_ta_set_enable(enable) )
+
+// checkpoint handling
+#define MP_TA_ADD_CHECKPOINT(name,show) ( mp_ta_add_checkpoint(name,show,__FILE__,__LINE__) )
+#define MP_TA_SHOW_CHECKPOINTS() ( mp_ta_show_checkpoints() )
+#define MP_TA_SHOW_DIFF(name1, name2) ( mp_ta_show_diff(name1, name2) )
+#define MP_TA_GET_NUMOF_CHECKPOINTS() ( mp_ta_get_numof_checkpoints() )
+#define MP_TA_GET_DIFF(name1, name2) ( mp_ta_get_diff(name1, name2) )
+//#define MP_TA_GET_NAME(idx) ( mp_ta_get_name(idx) )
+
+// accum item handling
+#define MP_TA_ACUM_ITEM_BEGIN(name,show) ( mp_ta_accum_item_begin(name,show,__FILE__,__LINE__) )
+#define MP_TA_ACUM_ITEM_END(name,show) ( mp_ta_accum_item_end(name,show,__FILE__,__LINE__) )
+#define MP_TA_ACUM_ITEM_SHOW_RESULT() ( mp_ta_accum_show_result(MP_TA_SHOW_STDOUT) )
+#define MP_TA_ACUM_ITEM_SHOW_RESULT_TO(x) ( mp_ta_accum_show_result(x) )
+/*
+#define __mp_ta__(name, x) \
+MP_TA_ACUM_ITEM_BEGIN(name, 0); \
+x \
+MP_TA_ACUM_ITEM_END(name, 0);
+
+#define __mm_tafmt__(fmt, args...) ( mp_ta_fmt(fmt, ##args) )
+*/
+
+#else //#ifdef ENABLE_MP_TA
+
+#define MP_TA_INIT()
+#define MP_TA_RELEASE()
+#define MP_TA_SET_ENABLE(enable)
+
+// checkpoint handling
+#define MP_TA_ADD_CHECKPOINT(name,show)
+#define MP_TA_SHOW_CHECKPOINTS()
+#define MP_TA_SHOW_DIFF(name1, name2)
+#define MP_TA_GET_NUMOF_CHECKPOINTS()
+#define MP_TA_GET_DIFF(name1, name2)
+//#define MP_TA_GET_NAME(idx)
+
+// accum item handling
+#define MP_TA_ACUM_ITEM_BEGIN(name,show)
+#define MP_TA_ACUM_ITEM_END(name,show)
+#define MP_TA_ACUM_ITEM_SHOW_RESULT()
+#define MP_TA_ACUM_ITEM_SHOW_RESULT_TO(x)
+/*
+#define __mp_ta__(name, x)
+#define __mm_tafmt__(fmt, args...)
+*/
+#endif //#ifdef ENABLE_MP_TA
+
+#endif // _MP_TA_H_
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+
+#ifndef __MP_ug_launch_H_
+#define __MP_ug_launch_H_
+
+int mp_ug_email_attatch_file(const char *filepath, void *user_data);
+int mp_ug_bt_attatch_file(const char *filepath, int count, void *user_data);
+int mp_ug_message_attatch_file(const char *filepath, void *user_data);
+int mp_ug_contact_user_sel(const char *filepath, void *user_data);
+void mp_ug_send_message(struct appdata *ad, mp_ug_message_t message);
+#ifdef MP_FEATURE_WIFI_SHARE
+int mp_ug_wifi_attatch_file(const char *filepath, int count, void *user_data);
+#endif
+void mp_ug_destory_current(struct appdata *ad);
+void mp_ug_destory_all(struct appdata *ad);
+bool mp_ug_active(struct appdata *ad);
+
+#endif // __MP_ug_launch_H_
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __MP_UTIL_H_
#define __MP_UTIL_H_
bool mp_util_check_uri_available(const char *uri);
bool mp_check_file_exist (const char *path);
void mp_util_format_duration(char *time, int ms);
-bool mp_util_add_to_playlist_by_key(MediaSvcHandle *handle, int plst_id, char *key_id);
+bool mp_util_add_to_playlist_by_key(int playlist_id, char *key_id);
Evas_Object * mp_util_create_thumb_icon(Evas_Object *obj, const char *path, int w, int h);
const char* mp_util_get_index(const char *p);
const char* mp_util_get_second_index(const char *p);
void mp_util_create_selectioninfo_with_count(void* data, int count);
-char * mp_util_get_new_playlist_name (MediaSvcHandle *handle);
-bool mp_util_add_selected_items_to_playlist(Evas_Object *genlist, int playlist_id);
+char * mp_util_get_new_playlist_name (void);
mp_file_delete_err_t mp_util_delete_track(void *data, char *fid, char *file_path, bool show_popup);
-Eina_Bool mp_util_is_item_in_playlist (MediaSvcHandle *handle, gint plst_id, char *key_id);
-bool mp_util_check_item_exist_in_playlist (MediaSvcHandle *handle, gint plst_id, char *key_id);
+int mp_util_share_via_bt(const char *formed_path, int file_cnt);
int mp_util_file_is_in_phone_memory(const char *path);
-char* mp_util_get_playlist_thumbpath(MediaSvcHandle *handle, AudioHandleType *plst);
-char *mp_util_get_fid_by_handle(mp_layout_data_t *layout_data, AudioHandleType *record);
-char* mp_util_get_path_by_handle(mp_layout_data_t *layout_data , AudioHandleType *record);
-Elm_Object_Item * mp_util_get_genlist_item_by_item_handle(Evas_Object *genlist, AudioHandleType *handle);
+char *mp_util_get_fid_by_handle(mp_layout_data_t *layout_data, mp_media_info_h record);
+char* mp_util_get_path_by_handle(mp_layout_data_t *layout_data , mp_media_info_h record);
char* mp_util_isf_get_edited_str(Evas_Object *isf_entry, bool permit_first_blank);
- int mp_util_create_playlist(struct appdata *ad, char *name);
+ int mp_util_create_playlist(struct appdata *ad, char *name, mp_playlist_h *playlist_handle);
+
+bool mp_util_set_screen_mode(void *data , int mode);
bool mp_util_launch_browser(const char *url, struct appdata *ad);
gchar *mp_util_get_utf8_initial(const char *name);
gchar * mp_get_new_playlist_name (void);
gchar *mp_parse_get_title_from_path (const gchar *path);
-char *mp_util_item_get_value_by_type(audio_svc_track_data_type_e item_type,struct music_list_item *item);
char *mp_util_get_title_from_path (const char *path);
bool mp_util_is_playlist_name_valid(char *name);
bool mp_util_get_recent_play_data(mp_layout_data_t *layout_data, int *index, char **path);
bool mp_util_get_list_data(mp_layout_data_t *layout_data);
void mp_util_set_library_controlbar_items(void *data);
-bool mp_util_get_uri_from_app_svc(bundle * b, struct appdata *ad, char **path);
+bool mp_util_get_uri_from_app_svc(service_h service, struct appdata *ad, char **path);
void mp_util_reset_genlist_mode_item(Evas_Object *genlist);
+#ifndef MP_SOUND_PLAYER
view_data_t * mp_util_get_view_data(struct appdata *ad);
mp_layout_data_t* mp_util_get_layout_data(Evas_Object* obj);
+#endif
bool mp_util_is_image_valid(Evas *evas, const char *path);
char *mp_util_shorten_path(char *path_info);
-void mp_util_grab_mm_keys(struct appdata *ad);
-void mp_util_ungrab_mm_keys(struct appdata *ad);
-
+#ifndef MP_SOUND_PLAYER
void mp_util_unset_rename(mp_layout_data_t * layout_data);
+#endif
bool mp_util_is_db_updating(void);
void mp_util_stop_vibration(struct appdata *ad);
bool mp_util_play_vibration(struct appdata *ad, float duration);
const char * mp_util_search_markup_keyword(const char *string, char *searchword, bool *result);
-inline Elm_Object_Item *mp_util_toolbar_append_object(Evas_Object *toolbar, Evas_Object *obj, int sel);
-bool mp_util_toolbar_item_valid_check(Elm_Object_Item *item);
+bool mp_util_is_other_player_playing();
+
+int mp_commmon_check_rotate_lock(void);
+int mp_check_battery_available(void);
+int mp_check_mass_storage_mode(void);
+bool mp_util_sleep_lock_set(bool lock);
+bool mp_util_toolbar_item_valid_check(Elm_Object_Item *item);
+void mp_util_strncpy_safe(char *x_dst, const char *x_src, int max_len);
#endif //__MP_UTIL_H_
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#ifndef __MP_VIEW_MANAGER_H_
#define __MP_VIEW_MANAGER_H_
int mp_view_manager_count_view_content(view_data_t * view_data);
bool mp_view_manager_is_play_view(struct appdata *ad);
void mp_view_manager_update_list_contents(view_data_t * view_data, bool update_edit_list);
-void mp_view_manager_set_title_and_buttons(view_data_t * view_data, char *title, void *data);
+void mp_view_manager_set_title_and_buttons(view_data_t * view_data, char *text_ID, void *data);
void mp_view_manager_set_now_playing(view_data_t * view_data, bool show);
void mp_view_manager_freeze_progress_timer(struct appdata *ad);
Elm_Object_Item *mp_view_manager_get_edit_controlbar_item(struct appdata *ad);
Elm_Object_Item *mp_view_manager_get_search_controlbar_item(struct appdata *ad);
Elm_Object_Item *mp_view_manager_get_cancel_controlbar_item(struct appdata * ad);
+Elm_Object_Item *mp_view_manager_get_navi_item(struct appdata * ad);
Elm_Object_Item *mp_view_manager_get_controlbar_item(struct appdata *ad, mp_navi_control_button_type type);
void mp_view_manager_play_view_title_label_set(struct appdata *ad, const char *title);
void mp_view_manager_unswallow_info_ug_layout(struct appdata *ad);
-void mp_view_manager_set_option_header_visible(Elm_Object_Item *navi_item, mp_view_content_t content_type);
Elm_Object_Item * mp_view_manager_get_play_view_navi_item(struct appdata *ad);
+void mp_view_manager_clear(struct appdata *ad);
+void mp_view_manager_set_controlbar_visible(Elm_Object_Item *navi_item, bool visible);
+
+
#endif //__MP_VIEW_MANAGER_H_
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __MP_WIDGET_H_
#define __MP_WIDGET_H_
#include "music.h"
+#define _EDJ(obj) elm_layout_edje_get(obj) /**< get evas object from elm layout */
+
Evas_Object *mp_widget_navigation_new(Evas_Object * parent, struct appdata *ad);
Evas_Object *mp_widget_genlist_create(struct appdata *ad, Evas_Object * parent, bool homogeneous);
bool mp_widget_check_lowbattery(void *data, Evas_Object * parent);
Evas_Object * mp_widget_create_editfield(Evas_Object * parent, int limit_size, char *guide_txt, struct appdata *ad);
Evas_Object * mp_widget_editfield_entry_get(Evas_Object *editfield);
Evas_Object * mp_widget_create_title_btn(Evas_Object *parent, const char *text, const char * icon_path, Evas_Smart_Cb func, void *data);
+Evas_Object * mp_widget_create_layout_main(Evas_Object * parent);
+inline Evas_Object *mp_common_load_edj(Evas_Object * parent, const char *file, const char *group);
+Evas_Object *mp_create_win(const char *name);
+Evas_Object *mp_get_main_win(void);
+
#endif
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
+#include "mp-ta.h"
#include "music.h"
-#include "mp-library.h"
#include "mp-setting-ctrl.h"
#include "mp-item.h"
#include "mp-player-control.h"
#include "mp-play-view.h"
-#include "mp-common.h"
#include "mp-play-list.h"
-#include "mp-group-view.h"
#include <signal.h>
-#include <aul.h>
#include <glib.h>
#include <glib-object.h>
#include "mp-player-mgr.h"
#include "mp-player-debug.h"
-#include <utilX.h>
#include <syspopup_caller.h>
#include <pthread.h>
+#include <media_key.h>
+#include "mp-minicontroller.h"
#include "mp-play.h"
#include "mp-app.h"
+#include "mp-ug-launch.h"
#include "ui-gadget.h"
#include "mp-widget.h"
#include "mp-util.h"
+#include "mp-edit-view.h"
+
+#ifndef MP_SOUND_PLAYER
+#include "mp-library.h"
+#include "mp-common.h"
+#include "mp-group-view.h"
+#endif
static void _mp_add_inofity_refresh_watch(struct appdata *ad);
else if (ad->player_state == PLAY_STATE_PAUSED)
{
ad->paused_by_user = FALSE;
- mp_player_mgr_resume(ad);
+ if(mp_player_mgr_resume(ad))
+ {
+ vconf_set_int(MP_VCONFKEY_PLAYING_PID, getpid());
+ if (ad->player_state == PLAY_STATE_PAUSED)
+ mp_play_resume(ad);
+ ad->player_state = PLAY_STATE_PLAYING;
+ }
}
else if (ad->player_state == PLAY_STATE_READY)
{
if (mp_play_list_get_current_item(ad->playing_list)
&& strstr(mp_play_list_get_current_item(ad->playing_list)->filename, MP_MMC_ROOT_PATH))
mp_play_stop_and_updateview(ad, TRUE);
+#ifndef MP_SOUND_PLAYER
else
mp_library_update_view(ad);
+#endif
_mp_add_inofity_refresh_watch(ad);
}
}
{
mp_play_view_update_snd_path(ad);
}
+ else if (strcmp(keyname, MP_VCONFKEY_PLAYING_PID) == 0)
+ {
+ int playing_pid = vconf_keynode_get_int(node);
+ if (playing_pid != getpid())
+ {
+ DEBUG_TRACE("other player activated : [pid:%d]", playing_pid);
+ if (ad->player_state == PLAY_STATE_PLAYING) {
+ ad->paused_by_other_player = TRUE;
+ mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
+ }
+
+ mp_minicontroller_destroy(ad);
+ }
+ }
}
bool
ERROR_TRACE("Fail to register VCONFKEY_SYSMAN_EARJACK key callback");
res = FALSE;
}
+ if (vconf_notify_key_changed(MP_VCONFKEY_PLAYING_PID, _mp_app_noti_changed_cb, ad) < 0)
+ {
+ ERROR_TRACE("Fail to register MP_VCONFKEY_PLAYING_PID key callback");
+ res = FALSE;
+ }
return res;
}
return TRUE;
}
+#define AUDIO_SVC_DATABASE_NAME "/opt/dbspace/.music.db"
+
+//#define MP_WATCH_FLAGS IN_CREATE | IN_DELETE | IN_CLOSE_WRITE | IN_MODIFY
#define MP_WATCH_FLAGS IN_CREATE | IN_DELETE | IN_DELETE_SELF | IN_CLOSE_WRITE | IN_MOVED_TO
+
#define MP_EVENT_SIZE (sizeof (struct inotify_event))
+/** reasonable guess as to size of 1024 events */
#define MP_EVENT_BUF_LEN (1024 * (MP_EVENT_SIZE + 16))
+#define INOTI_FOLDER_COUNT_MAX 1024
typedef struct _mp_inotify_t
{
len = read(handle->fd, event_buff, sizeof(event_buff) - 1);
if (len <= 0 || len > sizeof(event_buff) - 1)
{
- ERROR_TRACE("Fail to read() -fd : %d, len : %d", handle->fd, len);
+
}
while (i < len)
{
s_event = MP_INOTI_NONE;
}
- else if (pevent->mask & IN_ISDIR)
+ else if (pevent->mask & IN_ISDIR) //directory
{
+ /*
+ if (pevent->mask & IN_DELETE_SELF)
+ s_event = MP_INOTI_DELETE_SELF;
+ if (pevent->mask & IN_MOVE_SELF)
+ s_event = MP_INOTI_MOVE_SELF;
+
+ if (pevent->mask & IN_CREATE)
+ s_event = MP_INOTI_CREATE;
+
+ if (pevent->mask & IN_DELETE)
+ s_event = MP_INOTI_DELETE;
+
+ if (pevent->mask & IN_MOVED_FROM)
+ s_event = MP_INOTI_MOVE_OUT;
+
+ if (pevent->mask & IN_MOVED_TO)
+ s_event = MP_INOTI_MOVE_IN;
+ */
}
- else
+ else //file
{
if (pevent->mask & IN_CREATE)
{
}
}
+#ifndef MP_SOUND_PLAYER
mp_library_update_view(ad);
-
+#endif
_g_inotyfy_timer = NULL;
return EINA_FALSE;
}
mp_retm_if(ad == NULL, "appdata is NULL");
DEBUG_TRACE("%s modified..", path);
- mp_retm_if(ad->prohibit_aul_relaunch, "Do not refresh list");
+ mp_retm_if(ad->app_is_foreground, "Do not refresh list");
if (_g_inotyfy_timer)
ecore_timer_del(_g_inotyfy_timer);
return;
}
+
+Eina_Bool
+mp_app_mouse_event_cb(void *data, int type, void *event)
+{
+ Ecore_Event_Mouse_Button *ev = event;
+ struct appdata *ad = data;
+
+ if (type == ECORE_EVENT_MOUSE_BUTTON_DOWN) {
+ if (!ad->mouse.downed) {
+ ad->mouse.downed = TRUE;
+ ad->mouse.sx = ev->x;
+ ad->mouse.sy = ev->y;
+ }
+ }
+ else if (type == ECORE_EVENT_MOUSE_BUTTON_UP) {
+ ad->mouse.sx = 0;
+ ad->mouse.sy = 0;
+ ad->mouse.downed = FALSE;
+ ad->mouse.moving = FALSE;
+ }
+ else if (type == ECORE_EVENT_MOUSE_MOVE) {
+ }
+
+ return 0;
+}
+
void
mp_app_exit(void *data)
{
#define CTR_EDJ_SIG_SRC "ctrl_edj"
-Eina_Bool
-mp_app_hard_key_down_cb(void *data, int type, void *event_info)
+void
+_mp_app_media_key_event_cb(media_key_e key, media_key_event_e event, void *user_data)
{
- Ecore_Event_Key *ev = event_info;
- struct appdata *ad = (struct appdata *)data;
+ struct appdata *ad = (struct appdata *)user_data;
+ MP_CHECK(ad);
- DEBUG_TRACE("%s", ev->keyname);
+ mp_debug("key [%d], event [%d]", key, event);
+ bool released = false;
+ if (event == MEDIA_KEY_STATUS_RELEASED)
+ released = true;
- if (!strcmp(ev->keyname, KEY_END))
- {
- DEBUG_TRACE("KEY_END");
- mp_app_exit(ad);
- return ECORE_CALLBACK_DONE;
- }
- else if(!strcmp(ev->keyname, KEY_NEXTSONG))
- {
- mp_play_control_ff_cb(data, NULL, "ff_btn_down", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(ev->keyname, KEY_PREVIOUSSONG))
- {
- mp_play_control_rew_cb(data, NULL, "rew_btn_down", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(ev->keyname, "XF86AudioForward"))
- {
- mp_play_control_ff_cb(data, NULL, "ff_btn_down", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(ev->keyname, KEY_REWIND))
- {
- mp_play_control_rew_cb(data, NULL, "rew_btn_down", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(ev->keyname, KEY_SELECT))
- {
- mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
+ if (event == MEDIA_KEY_STATUS_UNKNOWN) {
+ mp_debug("unknown key status");
+ return;
}
- return ECORE_CALLBACK_PASS_ON;
-}
-Eina_Bool
-mp_app_hard_key_up_cb(void *data, int type, void *event_info)
-{
- Ecore_Event_Key *ev = event_info;
- struct appdata *ad = (struct appdata *)data;
-
- DEBUG_TRACE("%s", ev->keyname);
+ const char *signal = NULL;
- if (!strcmp(ev->keyname, KEY_END))
- {
- DEBUG_TRACE("KEY_END");
- return ECORE_CALLBACK_DONE;
- }
- else if(!strcmp(ev->keyname, KEY_NEXTSONG))
- {
- mp_play_control_ff_cb(data, NULL, "ff_btn_up", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(ev->keyname, KEY_PREVIOUSSONG))
- {
- mp_play_control_rew_cb(data, NULL, "rew_btn_up", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(ev->keyname, KEY_PAUSECD) || !strcmp(ev->keyname, KEY_PLAYCD))
- {
- if (ad->player_state != PLAY_STATE_PLAYING)
- {
- mp_play_control_play_cb(ad, NULL, SIGNAL_PLAY, NULL);
- }
- else
- {
- mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
+ switch (key) {
+ case MEDIA_KEY_PLAY:
+ case MEDIA_KEY_PAUSE:
+ if (released) {
+ if (ad->player_state != PLAY_STATE_PLAYING)
+ mp_play_control_play_cb(ad, NULL, SIGNAL_PLAY, NULL);
+ else
+ mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
}
- }
- else if(!strcmp(ev->keyname, KEY_FASTFORWARD))
- {
- mp_play_control_ff_cb(data, NULL, "ff_btn_up", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(ev->keyname, KEY_REWIND))
- {
- mp_play_control_rew_cb(data, NULL, "rew_btn_up", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(ev->keyname, KEY_SELECT))
- {
- mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
- }
- return ECORE_CALLBACK_PASS_ON;
-}
-
-void
-_mp_app_ext_control_key_changed_cb(keynode_t * node, void *data)
-{
- struct appdata *ad = (struct appdata *)data;
+ break;
- char *keyname = vconf_keynode_get_name(node);
+ case MEDIA_KEY_PREVIOUS:
+ case MEDIA_KEY_REWIND:
+ signal = (released) ? "rew_btn_up" : "rew_btn_down";
+ mp_play_control_rew_cb(ad, NULL, signal, CTR_EDJ_SIG_SRC);
+ break;
- DEBUG_TRACE("key changed: %s", keyname);
+ case MEDIA_KEY_NEXT:
+ case MEDIA_KEY_FASTFORWARD:
+ signal = (released) ? "ff_btn_up" : "ff_btn_down";
+ mp_play_control_ff_cb(ad, NULL, signal, CTR_EDJ_SIG_SRC);
+ break;
- if (strcmp(keyname, MP_EXT_PLAY_CLICKED) == 0 ||strcmp(keyname, MP_EXT_PAUSE_CLICKED) == 0 )
- {
- if (ad->player_state != PLAY_STATE_PLAYING)
- {
- mp_play_control_play_cb(ad, NULL, SIGNAL_PLAY, NULL);
- }
- else
- {
- mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
- }
+ default:
+ mp_debug("Undefined key");
+ break;
}
- else if(!strcmp(keyname, MP_EXT_NEXT_PRESSED))
- {
- ad->seek_off = true;
- mp_play_control_ff_cb(data, NULL, "ff_btn_down", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(keyname, MP_EXT_PREV_PRESSED))
- {
- ad->seek_off = true;
- mp_play_control_rew_cb(data, NULL, "rew_btn_down", CTR_EDJ_SIG_SRC);
- }
- else if(!strcmp(keyname, MP_EXT_NEXT_RELEASED))
- {
- mp_play_control_ff_cb(data, NULL, "ff_btn_up", CTR_EDJ_SIG_SRC);
- ad->seek_off = false;
- }
- else if(!strcmp(keyname, MP_EXT_PREV_RELEASED))
- {
- mp_play_control_rew_cb(data, NULL, "rew_btn_up", CTR_EDJ_SIG_SRC);
- ad->seek_off = false;
+}
+
+bool
+mp_app_grab_mm_keys(void *data)
+{
+ int err = media_key_reserve(_mp_app_media_key_event_cb, data);
+ if (err != MEDIA_KEY_ERROR_NONE) {
+ mp_error("media_key_reserve().. [0x%x]", err);
+ return false;
}
+
+ return true;
}
+void
+mp_app_ungrab_mm_keys()
+{
+ media_key_release();
+}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Ecore_X.h>
-#include <appcore-efl.h>
#include <vconf.h>
#include "mp-common.h"
#include "mp-player-debug.h"
-#include "audio-svc.h"
+#include "mp-media-info.h"
#include "mp-view-layout.h"
#include "mp-util.h"
#include "mp-menu.h"
#include "mp-view-manager.h"
#include "mp-widget.h"
#include "mp-library.h"
-#include "mp-player-control.h"
-
-static Evas_Object *g_main_win;
-
-static void
-_mp_common_win_del(void *data, Evas_Object * obj, void *event)
-{
- elm_exit();
-}
-
-Evas_Object *
-mp_create_win(const char *name)
-{
- Evas_Object *eo;
- int w, h;
-
- if (g_main_win)
- return g_main_win;
-
- g_main_win = eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
- if (eo)
- {
- elm_win_title_set(eo, name);
- elm_win_borderless_set(eo, EINA_TRUE);
- evas_object_smart_callback_add(eo, "delete,request", _mp_common_win_del, NULL);
- ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
- evas_object_resize(eo, w, h);
- }
-
- return eo;
-}
-
-Evas_Object *
-mp_get_main_win(void)
-{
- if (!g_main_win)
- ERROR_TRACE("main_win is NULL, create it first!!!!!");
- return g_main_win;
-}
-
-int
-mp_commmon_check_rotate_lock(void)
-{
- int lock = FALSE;
- lock = -1;
- if (!vconf_get_bool(VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, &lock))
- {
- mp_debug("lock state: %d", lock);
- return lock;
- }
- else
- return -1;
-}
-
-
-int
-mp_check_battery_available(void)
-{
- int batt_state = -1;
-
- if (!vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &batt_state))
- {
- /* low battery status
- * VCONFKEY_SYSMAN_BAT_WARNING_LOW = 15 %
- * VCONFKEY_SYSMAN_BAT_CRITICAL_LOW = 5 %
- * VCONFKEY_SYSMAN_BAT_POWER_OFF = 1 %
- * since 2011. 03. 02
- */
- if (batt_state <= VCONFKEY_SYSMAN_BAT_POWER_OFF) //VCONFKEY_SYSMAN_BAT_POWER_OFF - 1% remaninging
- {
- WARN_TRACE("batt_state: %d", batt_state);
- return -1;
- }
- }
- else
- {
- ERROR_TRACE("Fail to get battery status");
- }
- return 0;
-}
-
-int
-mp_check_mass_storage_mode(void)
-{
- int mass_storage = -1;
-
- if (!vconf_get_int(VCONFKEY_USB_STORAGE_STATUS, &mass_storage))
- {
- DEBUG_TRACE("current mass_storage : %d", mass_storage);
- if (mass_storage != VCONFKEY_USB_STORAGE_STATUS_OFF)
- return -1;
- }
- else
- {
- ERROR_TRACE("Fail to get status");
- }
- return 0;
-}
-
-inline Evas_Object *
-mp_common_load_edj(Evas_Object * parent, const char *file, const char *group)
-{
- Evas_Object *eo = NULL;
- int r = -1;
-
- eo = elm_layout_add(parent);
- if (eo)
- {
- r = elm_layout_file_set(eo, file, group);
- if (!r)
- {
- evas_object_del(eo);
- return NULL;
- }
- evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(eo);
- }
-
- return eo;
-}
char *
mp_common_track_list_label_get(void *data, Evas_Object * obj, const char *part)
{
mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
MP_CHECK_NULL(item);
- AudioHandleType *track = (AudioHandleType *) (item->handle);
+ mp_media_info_h track = (mp_media_info_h) (item->handle);
mp_retvm_if(!track, NULL, "data is null");
mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
MP_CHECK_NULL(layout_data);
MP_CHECK_LAYOUT_DATA(layout_data);
- if (!strcmp(part, "elm.text.1"))
+ if (layout_data->track_type == MP_TRACK_BY_FOLDER && !g_strcmp0(part, "elm.text.1"))
+ {
+ char *pathname = NULL;
+ mp_media_info_get_file_path(track, &pathname);
+ mp_retv_if(!pathname, NULL);
+ const char *fileanme = ecore_file_file_get(pathname);
+
+ return g_strdup(fileanme);
+ }
+ else if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.slide.text.1"))
{
char *title = NULL;
- int size = 0;
- if (layout_data->playlist_id < 0)
- audio_svc_list_item_get_val(track, 0, AUDIO_SVC_LIST_ITEM_TITLE, &title, &size, -1);
- else
- audio_svc_playlist_item_get_val(track, 0, AUDIO_SVC_PLAYLIST_ITEM_TITLE, &title, &size, -1);
+
+ mp_media_info_get_title(track, &title);
mp_retv_if(!title, NULL);
if(layout_data->filter_str)
if(res)
return strdup(markup_name);
}
- return elm_entry_utf8_to_markup(title);
+ else if (!strcmp(part, "elm.text.1"))
+ {
+ char *markup = elm_entry_utf8_to_markup(title);
+ return markup;
+ }
+ else
+ return g_strdup(title);
}
- else if (!strcmp(part, "elm.text.2"))
+ else if (!strcmp(part, "elm.text.2") && layout_data->track_type != MP_TRACK_BY_FOLDER)
{
char *artist = NULL;
- int size = 0;
- if (layout_data->playlist_id < 0)
- audio_svc_list_item_get_val(track, 0, AUDIO_SVC_LIST_ITEM_ARTIST, &artist, &size, -1);
- else
- audio_svc_playlist_item_get_val(track, 0, AUDIO_SVC_PLAYLIST_ITEM_ARTIST, &artist, &size, -1);
+ mp_media_info_get_artist(track, &artist);
mp_retv_if(!artist, NULL);
- return strdup(artist);
+ return g_strdup(artist);
}
- else if (!strcmp(part, "elm.text.3"))
+ else if (!strcmp(part, "elm.text.3") ||
+ (layout_data->track_type == MP_TRACK_BY_FOLDER && !g_strcmp0(part, "elm.text.2")))
{
int duration;
char time[16] = "";
- if (layout_data->playlist_id < 0)
- audio_svc_list_item_get_val(track, 0, AUDIO_SVC_LIST_ITEM_DURATION, &duration, -1);
- else
- audio_svc_playlist_item_get_val(track, 0, AUDIO_SVC_PLAYLIST_ITEM_DURATION, &duration, -1);
+ mp_media_info_get_duration(track, &duration);
mp_util_format_duration(time, duration);
time[15] = '\0';
- return strdup(time);
+ return g_strdup(time);
}
return NULL;
}
-bool mp_common_track_get_aa_index(int index, mp_layout_data_t *layout_data, Elm_Object_Item *gli, bool is_item_del)
-{
- MP_CHECK_FALSE(layout_data);
- MP_CHECK_FALSE(gli);
- MP_CHECK_FALSE(index >= 0);
-
- if (!is_item_del) {
- index = 0;
- Elm_Object_Item *gli2 = elm_genlist_first_item_get(layout_data->genlist);
- DEBUG_TRACE("gli=%p,gli2=%p", gli,gli2);
- while (gli2) {
- if(gli2 == gli)
- break;
- gli2 = elm_genlist_item_next_get(gli2);
- DEBUG_TRACE("gli=%p,gli2=%p", gli,gli2);
- index++;
- }
- }
-
- int group_index = 0;
- int sub_index = 0;
- int item_count = 0;
- int selected_index = 0;
- for (; group_index < layout_data->aa_group_count; group_index++) {
- item_count = layout_data->aa_item_count[group_index];
- if(item_count > 0)
- index--;
- for (sub_index = 0; sub_index < item_count; sub_index++) {
- index--;
- if (index < 0) {
- layout_data->selected_index = selected_index;
- layout_data->selected_group_index = group_index;
- layout_data->selected_album_sub_index = sub_index;
- return TRUE;
- }
- selected_index++;
- }
- }
-
- return FALSE;
-}
-
static Eina_Bool
_mp_common_update_view_idler_cb(void *data)
{
elm_check_state_pointer_set(layout_data->select_all_checkbox, &layout_data->select_all_checked);
}
- //elm_genlist_item_update(item->it);
elm_genlist_item_fields_update(item->it, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
mp_util_create_selectioninfo_with_count(layout_data->ad, layout_data->checked_count);
mp_common_set_title_button_sensitivity(layout_data, layout_data->checked_count);
}
mp_util_reset_genlist_mode_item(layout_data->genlist);
+ /* If genlist item removed by sweep menu or editing,
+ * layout_data->svc_handle can not be used for creating playlist..
+ * update layout again before start play from list view.
+ */
+ MP_TA_ACUM_ITEM_BEGIN("Selected_Item_to_Playing_View", 0);
+ MP_TA_ACUM_ITEM_BEGIN("Selected_Item_to_play_start_cb", 0);
int index = 0;
if(layout_data->is_item_del)
{
gli2 = elm_genlist_first_item_get(layout_data->genlist);
- while(gli2)
+ if (MP_TRACK_BY_ARTIST == layout_data->track_type) {
+ while(gli2)
+ {
+ if(gli2 == gli)
+ break;
+ if(elm_genlist_item_parent_get(gli2))
+ index++;
+ gli2 = elm_genlist_item_next_get(gli2);
+ }
+ }
+ else
{
- if(gli2 == gli)
- break;
- gli2 = elm_genlist_item_next_get(gli2);
- index++;
+ while(gli2)
+ {
+ if(gli2 == gli)
+ break;
+ gli2 = elm_genlist_item_next_get(gli2);
+ index++;
+ }
}
- if (AUDIO_SVC_TRACK_BY_ARTIST == layout_data->track_type) {
- bool ret_val = FALSE;
- ret_val = mp_common_track_get_aa_index(index, layout_data, gli, layout_data->is_item_del);
- if (ret_val) {
- index = layout_data->selected_index;
- }
- } else if (AUDIO_SVC_TRACK_BY_ALBUM == layout_data->track_type) {
+ if (MP_TRACK_BY_ALBUM == layout_data->track_type) {
--index;
}
if(!mp_play_view_load_by_index(layout_data, index, FALSE))
mp_widget_text_popup(layout_data->ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"));
+ MP_TA_ACUM_ITEM_END("Selected_Item_to_Playing_View", 0);
+ MP_TA_ACUM_ITEM_BEGIN("navi_frame_transition_time", 0);
return;
}
{
mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
MP_CHECK_NULL(item);
- AudioHandleType *track = (AudioHandleType *) (item->handle);
+ mp_media_info_h track = item->handle;
mp_retvm_if(!track, NULL, "data is null");
mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
mp_retvm_if(!layout_data, NULL, "list_data is null!!");
if (!strcmp(part, "elm.icon"))
{
char *thumbpath = NULL;
- int size = 0;
- if (layout_data->playlist_id < 0)
- audio_svc_list_item_get_val(track, 0, AUDIO_SVC_LIST_ITEM_THUMBNAIL_PATH, &thumbpath, &size,
- -1);
- else
- audio_svc_playlist_item_get_val(track, 0, AUDIO_SVC_PLAYLIST_ITEM_THUMBNAIL_PATH, &thumbpath,
- &size, -1);
- return mp_util_create_thumb_icon(obj, thumbpath, MP_LIST_ICON_SIZE, MP_LIST_ICON_SIZE);
+ Evas_Object *icon;
+ mp_media_info_get_thumbnail_path(track, &thumbpath);
+ icon = mp_util_create_thumb_icon(obj, thumbpath, MP_LIST_ICON_SIZE, MP_LIST_ICON_SIZE);
+ return icon;
+ }
+
+ Evas_Object *button;
+
+ if (!strcmp(part, "elm.slide.swallow.3"))
+ {
+ button = elm_button_add(obj);
+ elm_object_style_set(button, "sweep/multiline");
+ elm_object_text_set(button, GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"));
+ mp_language_mgr_register_object(button, OBJ_TYPE_ELM_OBJECT, NULL, "IDS_MUSIC_BODY_ADD_TO_PLAYLIST");
+ evas_object_smart_callback_add(button, "clicked", mp_menu_add_to_playlist_cb, track);
+ evas_object_data_set(button, "layout_data", layout_data);
+ return button;
+ }
+ else if (!strcmp(part, "elm.slide.swallow.1"))
+ {
+ button = elm_button_add(obj);
+ elm_object_style_set(button, "sweep/multiline");
+ elm_object_text_set(button, GET_SYS_STR("IDS_COM_BUTTON_SHARE"));
+ mp_language_mgr_register_object(button, OBJ_TYPE_ELM_OBJECT, NULL, "IDS_COM_BUTTON_SHARE");
+ evas_object_smart_callback_add(button, "clicked", mp_menu_share_cb, track);
+ evas_object_data_set(button, "layout_data", layout_data);
+ return button;
+ }
+ else if (!strcmp(part, "elm.slide.swallow.2"))
+ {
+ button = elm_button_add(obj);
+ elm_object_style_set(button, "sweep/multiline");
+ elm_object_text_set(button, GET_SYS_STR("IDS_COM_SK_SET"));
+ mp_language_mgr_register_object(button, OBJ_TYPE_ELM_OBJECT, NULL, "IDS_COM_SK_SET");
+ evas_object_smart_callback_add(button, "clicked", mp_menu_set_cb, track);
+ evas_object_data_set(button, "layout_data", layout_data);
+ return button;
+ }
+ else if (!strcmp(part, "elm.slide.swallow.4"))
+ {
+ button = elm_button_add(obj);
+ elm_object_style_set(button, "sweep/delete");
+ MP_CHECK_NULL(layout_data->view_data);
+ elm_object_text_set(button, GET_SYS_STR("IDS_COM_OPT_DELETE"));
+ mp_language_mgr_register_object(button, OBJ_TYPE_ELM_OBJECT, NULL, "IDS_COM_OPT_DELETE");
+ evas_object_smart_callback_add(button, "clicked", mp_menu_delete_cb, track);
+ evas_object_data_set(button, "layout_data", layout_data);
+ return button;
+ }
+ else if (!g_strcmp0(part, "elm.icon.storage"))
+ {
+ char *folder = NULL;
+ int ret = mp_media_info_get_file_path(track, &folder);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
+ if (folder) {
+ const char *icon_path = NULL;
+ if (g_strstr_len(folder, strlen(MP_PHONE_ROOT_PATH), MP_PHONE_ROOT_PATH))
+ icon_path = MP_ICON_STORAGE_PHONE;
+ else if (g_strstr_len(folder, strlen(MP_MMC_ROOT_PATH), MP_MMC_ROOT_PATH))
+ icon_path = MP_ICON_STORAGE_MMC;
+ else
+ icon_path = MP_ICON_STORAGE_EXTERNAL;
+
+ Evas_Object *icon = elm_icon_add(obj);
+ MP_CHECK_NULL(icon);
+ elm_icon_file_set(icon, icon_path, NULL);
+ evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ return icon;
+ }
}
Evas_Object *check = NULL;
if (elm_genlist_decorate_mode_get(obj) || layout_data->ad->b_add_tracks)
- {
+ { // if edit mode
if (!strcmp(part, "elm.edit.icon.1"))
- {
+ { // swallow checkbox or radio button
check = elm_check_add(obj);
elm_check_state_pointer_set(check, &item->checked);
evas_object_smart_callback_add(check, "changed", mp_common_item_check_changed_cb, item);
if (!strcmp(part, "elm.icon"))
{
ad->editfiled_new_playlist = editfield =
- mp_widget_create_editfield(obj, AUDIO_SVC_PLAYLIST_NAME_SIZE - 1, ad->new_playlist_name, ad);
-
+ mp_widget_create_editfield(obj, MP_PLAYLIST_NAME_SIZE - 1, NULL, ad);
+ Evas_Object *entry = mp_widget_editfield_entry_get(editfield);
+ elm_entry_entry_set(entry, ad->new_playlist_name);
+ elm_entry_cursor_end_set(entry);
evas_object_show(editfield);
return editfield;
Evas_Object *genlist = NULL;
Elm_Object_Item *item = NULL;
static Elm_Genlist_Item_Class itc;
+ Evas_Object *layout = NULL;
MP_CHECK_NULL(parent);
MP_CHECK_NULL(ad);
+ layout = elm_layout_add(parent);
+ elm_layout_file_set(layout, EDJ_NAME, "create_playlist");
+
IF_FREE(ad->new_playlist_name);
if (text)
ad->new_playlist_name = strdup(text);
- itc.item_style = "music/1icon";
+ itc.version = ELM_GENGRID_ITEM_CLASS_VERSION;
+ itc.refcount = 0;
+ itc.delete_me = EINA_FALSE;
+ itc.item_style = "1icon";
itc.func.text_get = NULL;
itc.func.content_get = _mp_common_gl_icon_get;
itc.func.state_get = NULL;
itc.func.del = NULL;
- genlist = elm_genlist_add(parent);
+ genlist = elm_genlist_add(layout);
item = elm_genlist_item_append(genlist, &itc, ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
elm_object_scroll_freeze_push(genlist);
- return genlist;
+ elm_object_part_content_set(layout, "elm.swallow.content", genlist);
+ evas_object_show(layout);
+
+ return layout;
}
void
view_data_t *view_data = (view_data_t *) data;
MP_CHECK(view_data);
MP_CHECK_VIEW_DATA(view_data);
+ //view_data->view_mode = MP_VIEW_MODE_DEFAULT;
}
mp_layout_data_t *layout_data = evas_object_data_get(top_view, "layout_data");
MP_CHECK_LAYOUT_DATA(layout_data);
+ // list must be updated. label changed callback does not called any more...
mp_view_layout_update(layout);
mp_view_manager_push_view_content(view_data, layout, MP_VIEW_CONTENT_SEARCH);
evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, _mp_common_search_layout_del_cb, view_data);
- mp_view_manager_set_title_and_buttons(view_data, GET_SYS_STR("IDS_COM_SK_SEARCH"), mp_util_get_layout_data(layout));
+ mp_view_manager_set_title_and_buttons(view_data, "IDS_COM_SK_SEARCH", mp_util_get_layout_data(layout));
}
MP_CHECK(view_data);
MP_CHECK_VIEW_DATA(view_data);
+ bool b_play_all = false;
+
struct appdata *ad = view_data->ad;
MP_CHECK(ad);
mp_retm_if(ad->navi_effect_in_progress, "navi effect in progress");
if (layout_data && layout_data->search_bar) {
Evas_Object *en = mp_search_entry_get(layout_data->search_bar);
Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
+ /* hide SIP */
if (imf_context)
ecore_imf_context_input_panel_hide(imf_context);
- elm_object_focus_allow_set (en, EINA_FALSE);
+ /* set the entry object not be focused */
+ elm_object_focus_allow_set(en, EINA_FALSE);
}
if(mp_view_manager_count_view_content(view_data) == 1)
{
DEBUG_TRACE("First view. go to background");
- mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
elm_win_lower(ad->win_main);
return;
}
+ /* get the flag if the playing view is created by playall */
+ if (ad->playing_view != NULL)
+ {
+ b_play_all = ad->playing_view->b_play_all;
+ ad->playing_view->b_play_all = false;
+ }
+
mp_view_manager_pop_view_content(view_data, FALSE, FALSE);
evas_object_smart_callback_del(obj, "clicked", mp_common_back_button_cb);
mp_view_layout_update(top_view);
}
}
+ else if (b_play_all)
+ {
+ /* when back from play view which created by playall option, the layout_data is NULL */
+ Evas_Object *top_view = mp_view_manager_get_last_view_layout(ad);
+ mp_view_layout_update(top_view);
+ }
}
void
else
layout_data->checked_count--;
+ // update select all check button
if (layout_data->select_all_layout)
{
if (layout_data->item_count == layout_data->checked_count)
if(selected_count > 0)
disable = false;
- //item = mp_view_manager_get_controlbar_item(layout_data->ad, 0);
- //elm_object_item_disabled_set(item, false);
-
for (i = 0; i < MP_NAVI_CONTROL_BUTTON_MAX; i++) //Cancel button always enabled.
{
item = mp_view_manager_get_controlbar_item(layout_data->ad, i);
else
{
bool disable_option = true;
- audio_svc_count_list_item(layout_data->ad->media_svc_handle, AUDIO_SVC_TRACK_ALL, NULL, NULL, NULL, NULL, &all_track_count);
+ mp_media_info_list_count(MP_TRACK_ALL, NULL, NULL, NULL, 0, &all_track_count);
if(all_track_count > 0)
disable_option = false;
edit_item = mp_view_manager_get_edit_controlbar_item(layout_data->ad);
ad->navi_effect_in_progress = FALSE;
- int cnt = mp_view_manager_count_view_content(mp_util_get_view_data(ad));
- if(cnt == 1)
- {
- DEBUG_TRACE("show controlbar");
- mp_library_controlbar_visible_set(ad, true);
+ if(!elm_naviframe_prev_btn_auto_pushed_get(ad->naviframe))
+ elm_naviframe_prev_btn_auto_pushed_set(ad->naviframe, EINA_TRUE);
+
+ if (ad->editfiled_new_playlist) {
+ Evas_Object *entry = mp_widget_editfield_entry_get(ad->editfiled_new_playlist);
+ elm_object_focus_set(entry, EINA_TRUE);
}
- MP_CHECK(ad->library);
- if(!elm_naviframe_prev_btn_auto_pushed_get(ad->library->cur_view))
- elm_naviframe_prev_btn_auto_pushed_set(ad->library->cur_view, EINA_TRUE);
mp_layout_data_t * layout_data = mp_util_get_layout_data(mp_view_manager_get_last_view_layout(ad));
MP_CHECK(layout_data);
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#include <sys/time.h>
-#include <aul.h>
#include <vconf.h>
#include <glib.h>
#include <fcntl.h>
#include "music.h"
#include "mp-item.h"
#include "mp-menu.h"
+#include "mp-ug-launch.h"
#include "mp-player-debug.h"
#include "mp-group-view.h"
bool
-mp_item_update_db(MediaSvcHandle *media_svc_handle, char *fid)
+mp_item_update_db(char *fid)
{
- MP_CHECK_FALSE(media_svc_handle);
- AudioHandleType *item = NULL;
+ mp_media_info_h media;
int count = 0;
bool ret = FALSE;
- ret = audio_svc_item_new(&item);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, FALSE, "error to get item");
-
- ret = audio_svc_get_item_by_audio_id(media_svc_handle, fid, item);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_create(&media, fid);
+ if (ret != 0)
{
- audio_svc_item_free(item);
return false;
}
- audio_svc_item_get_val(item, AUDIO_SVC_TRACK_DATA_PLAYED_COUNT, &count, -1);
+ mp_media_info_get_played_count(media, &count);
- audio_svc_update_item_metadata(media_svc_handle, fid, AUDIO_SVC_TRACK_DATA_PLAYED_COUNT, ++count,
- AUDIO_SVC_TRACK_DATA_PLAYED_TIME, time(NULL), -1);
+ mp_media_info_set_played_count(media, ++count);
+ mp_media_info_set_played_time(media, time(NULL));
- audio_svc_item_free(item);
+ mp_media_info_destroy(media);
return TRUE;
}
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#include <glib.h>
+#include <stdlib.h>
+#include <string.h>
+#include <media_content.h>
+
+#include "mp-media-info.h"
+#include "mp-player-debug.h"
+#include "mp-define.h"
+
+#define PRINT_STR(s) //DEBUG_TRACE("%s", s);
+#define PRINT_INT(i) //DEBUG_TRACE("%d", i);
+
+#define MP_MEDIA_TYPE "(MEDIA_TYPE=3)"
+
+struct mp_media_list_s
+{
+ GList *list;
+ int count;
+ mp_group_type_e group_type;
+};
+
+struct mp_minfo_s
+{
+ char *media_id;
+ char *title;
+ char *artist;
+ char *album;
+ char *genre;
+ char *composer;
+ char *year;
+ char *copyright;
+ char *track_num;
+ char *format;
+ char *file_path;
+ char *thumbnail_path;
+ int playlist_member_id;
+};
+
+struct mp_ginfo_s
+{
+ char *main_info;
+ char *sub_info;
+ char *thumb_path;
+};
+
+struct mp_media_info_s
+{
+ union{
+ media_info_h media; //media_info_h
+ void *group; //handle for group item like media_playlist_h, media_album_h, media_folder_h...
+ }h;
+
+ union{
+ audio_meta_h meta; //audio_meta_h for a media
+ mp_group_type_e group_type;
+ }s;
+
+ union {
+ struct mp_minfo_s *minfo; //media info
+ struct mp_ginfo_s *ginfo; //group info
+ }i;
+};
+
+#define STRNCAT_LEN(dest) (sizeof(dest)-1-strlen(dest))
+
+static bool __mp_media_info_cb(media_info_h media, void *user_data)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ mp_media_list_h media_list = user_data;
+ mp_media_info_h media_info = NULL;
+ media_info_h m = NULL;
+ MP_CHECK_FALSE(media_list);
+
+ res = media_info_clone(&m, media);
+ MP_CHECK_VAL (res == MEDIA_CONTENT_ERROR_NONE, true);
+ MP_CHECK_VAL(m, true);
+
+ media_info = calloc(1, sizeof(struct mp_media_info_s));
+ MP_CHECK_FALSE(media_info);
+
+ media_info->i.minfo = calloc(1, sizeof(struct mp_minfo_s));
+ MP_CHECK_FALSE(media_info->i.minfo);
+
+ media_info->h.media = m;
+ media_list->list = g_list_prepend(media_list->list, media_info);
+
+ res = media_info_get_audio(m, &media_info->s.meta);
+ MP_CHECK_VAL (res == MEDIA_CONTENT_ERROR_NONE, true);
+
+ return true;
+}
+
+static bool __mp_playlist_media_info_cb(int playlist_member_id, media_info_h media, void *user_data)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ mp_media_list_h media_list = user_data;
+ mp_media_info_h media_info = NULL;
+ media_info_h m = NULL;
+ MP_CHECK_FALSE(media_list);
+
+ res = media_info_clone(&m, media);
+ MP_CHECK_FALSE (res == MEDIA_CONTENT_ERROR_NONE);
+ MP_CHECK_FALSE(m);
+
+ media_info = calloc(1, sizeof(struct mp_media_info_s));
+ MP_CHECK_FALSE(media_info);
+
+ media_info->i.minfo = calloc(1, sizeof(struct mp_minfo_s));
+ MP_CHECK_FALSE(media_info->i.minfo);
+ media_info->i.minfo->playlist_member_id = playlist_member_id;
+
+ media_info->h.media = m;
+ media_list->list = g_list_prepend(media_list->list, media_info);
+
+ res = media_info_get_audio(m, &media_info->s.meta);
+ MP_CHECK_FALSE (res == MEDIA_CONTENT_ERROR_NONE);
+
+ return true;
+}
+
+static bool __mp_media_album_cb(media_album_h album, void *user_data)
+{
+ mp_media_info_h media_info = NULL;
+ mp_media_list_h media_list = user_data;
+ MP_CHECK_FALSE(media_list);
+
+ media_info = calloc(1, sizeof(struct mp_media_info_s));
+ MP_CHECK_FALSE(media_info);
+
+ media_info->i.ginfo = calloc(1, sizeof(struct mp_ginfo_s));
+ MP_CHECK_FALSE(media_info->i.ginfo);
+
+ media_album_clone((media_album_h *)&media_info->h.group, album);
+ media_info->s.group_type = media_list->group_type;
+
+ media_list->list = g_list_prepend(media_list->list, media_info);
+
+ return true;
+}
+
+static bool __mp_media_folder_cb(media_folder_h folder, void *user_data)
+{
+ mp_media_info_h media_info = NULL;
+ mp_media_list_h media_list = user_data;
+ MP_CHECK_FALSE(media_list);
+
+ media_info = calloc(1, sizeof(struct mp_media_info_s));
+ MP_CHECK_FALSE(media_info);
+
+ media_info->i.ginfo = calloc(1, sizeof(struct mp_ginfo_s));
+ MP_CHECK_FALSE(media_info->i.ginfo);
+
+ media_folder_clone((media_folder_h *)&media_info->h.group, folder);
+ media_info->s.group_type = media_list->group_type;
+
+ media_list->list = g_list_prepend(media_list->list, media_info);
+
+ return true;
+}
+
+static bool __mp_media_playlist_cb(media_playlist_h playlist, void *user_data)
+{
+ mp_media_info_h media_info = NULL;
+ mp_media_list_h media_list = user_data;
+ MP_CHECK_FALSE(media_list);
+
+ media_info = calloc(1, sizeof(struct mp_media_info_s));
+ MP_CHECK_FALSE(media_info);
+
+ media_info->i.ginfo = calloc(1, sizeof(struct mp_ginfo_s));
+ MP_CHECK_FALSE(media_info->i.ginfo);
+
+ media_playlist_clone((media_playlist_h *)&media_info->h.group, playlist);
+ media_info->s.group_type = media_list->group_type;
+
+ media_list->list = g_list_prepend(media_list->list, media_info);
+
+ return true;
+}
+
+static bool __mp_media_group_cb(const char* name, void *user_data)
+{
+ mp_media_info_h media_info = NULL;
+ mp_media_list_h media_list = user_data;
+ MP_CHECK_FALSE(media_list);
+
+ media_info = calloc(1, sizeof(struct mp_media_info_s));
+ MP_CHECK_FALSE(media_info);
+
+ media_info->i.ginfo = calloc(1, sizeof(struct mp_ginfo_s));
+ MP_CHECK_FALSE(media_info->i.ginfo);
+
+ media_info->h.group = g_strdup(name);
+ media_info->s.group_type = media_list->group_type;
+
+ media_list->list = g_list_prepend(media_list->list, media_info);
+
+ return true;
+}
+
+static void __mp_media_info_destory(void *data)
+{
+ mp_media_info_destroy(data);
+}
+
+static void __mp_media_group_destory(void *data)
+{
+ mp_media_info_h media_info = data;
+ MP_CHECK(media_info);
+
+ if(media_info->s.group_type == MP_GROUP_BY_FOLDER)
+ media_folder_destroy(media_info->h.group);
+ else if(media_info->s.group_type == MP_GROUP_BY_ALBUM)
+ media_album_destroy(media_info->h.group);
+ else if(media_info->s.group_type == MP_GROUP_BY_PLAYLIST)
+ media_playlist_destroy(media_info->h.group);
+ else
+ IF_FREE(media_info->h.group);
+
+ if(media_info->i.ginfo)
+ {
+ IF_FREE(media_info->i.ginfo->main_info);
+ IF_FREE(media_info->i.ginfo->sub_info);
+ IF_FREE(media_info->i.ginfo->thumb_path);
+ free(media_info->i.ginfo);
+ }
+
+ free(media_info);
+}
+
+
+static void __mp_media_info_set_group_filter(mp_filter_h filter, mp_group_type_e group_type, const char *type_string, const char *filter_string)
+{
+ char cond[MAX_FILTER_LEN] = {0,};
+ if(group_type != MP_GROUP_BY_PLAYLIST)
+ strncat(cond, MP_MEDIA_TYPE, STRNCAT_LEN(cond));
+ else
+ strncat(cond, "((MEDIA_TYPE=3 and MEDIA_COUNT>0) or MEDIA_COUNT=0)", STRNCAT_LEN(cond));
+ switch(group_type)
+ {
+ case MP_GROUP_BY_ALBUM:
+ if(filter_string)
+ {
+ strncat(cond, " AND MEDIA_ALBUM like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ALBUM, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ case MP_GROUP_BY_ARTIST:
+ if(filter_string)
+ {
+ strncat(cond, " AND MEDIA_ARTIST like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ case MP_GROUP_BY_ARTIST_ALBUM:
+ MP_CHECK(type_string && strlen(type_string));
+ if(filter_string)
+ {
+ strncat(cond, " AND MEDIA_ALBUM like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\" AND ", STRNCAT_LEN(cond));
+ }
+ strncat(cond, " AND MEDIA_ARTIST = \"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\"", STRNCAT_LEN(cond));
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ALBUM, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ case MP_GROUP_BY_GENRE:
+ if(filter_string)
+ {
+ strncat(cond, " AND MEDIA_GENRE like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_GENRE, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ case MP_GROUP_BY_FOLDER:
+ if(filter_string)
+ {
+ strncat(cond, " AND FOLDER_PATH like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, FOLDER_NAME, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ case MP_GROUP_BY_YEAR:
+ if(filter_string)
+ {
+ strncat(cond, " AND MEDIA_YEAR like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_YEAR, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ case MP_GROUP_BY_COMPOSER:
+ if(filter_string)
+ {
+ strncat(cond, " AND MEDIA_COMPOSER like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_COMPOSER, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ case MP_GROUP_BY_PLAYLIST:
+ if(filter_string)
+ {
+ strncat(cond, " AND PLAYLIST_NAME like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_NAME, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ default:
+ WARN_TRACE("Unhandled type: %d", group_type);
+ break;
+ }
+ if(strlen(cond))
+ {
+ DEBUG_TRACE("cond: %s", cond);
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_NOCASE);
+ }
+
+}
+
+static void __mp_media_info_set_filter(filter_h filter, mp_track_type_e track_type, const char *type_string, const char *type_string2, const char *filter_string)
+{
+ char cond[MAX_FILTER_LEN] = {0,};
+ strncat(cond, MP_MEDIA_TYPE, STRNCAT_LEN(cond));
+ switch (track_type)
+ {
+ case MP_TRACK_ALL:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ case MP_TRACK_BY_ALBUM:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+ if(type_string)
+ {
+ strncat(cond, " AND MEDIA_ALBUM=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\"", STRNCAT_LEN(cond));
+ }
+ else
+ {
+ strncat(cond, " AND MEDIA_ALBUM is null", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_TRACK_BY_ARTIST:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, "MEDIA_ALBUM, MEDIA_TITLE", MEDIA_CONTENT_COLLATE_NOCASE);
+ if(type_string)
+ {
+ strncat(cond, " AND MEDIA_ARTIST=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\"", STRNCAT_LEN(cond));
+ }
+ else
+ {
+ strncat(cond, " AND MEDIA_ARTIST is null", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_TRACK_BY_GENRE:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+ if(type_string)
+ {
+ strncat(cond, " AND MEDIA_GENRE=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\"", STRNCAT_LEN(cond));
+ }
+ else
+ {
+ strncat(cond, " AND MEDIA_GENRE is null", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_TRACK_BY_FOLDER:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ case MP_TRACK_BY_YEAR:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+ if(type_string)
+ {
+ strncat(cond, " AND MEDIA_YEAR=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\"", STRNCAT_LEN(cond));
+ }
+ else
+ {
+ strncat(cond, " AND MEDIA_YEAR is null", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_TRACK_BY_COMPOSER:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+ if(type_string)
+ {
+ strncat(cond, " AND MEDIA_COMPOSER=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\"", STRNCAT_LEN(cond));
+ }
+ else
+ {
+ strncat(cond, " AND MEDIA_COMPOSER is null", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_TRACK_BY_ARTIST_ALBUM:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+ if(type_string)
+ {
+ strncat(cond, " AND MEDIA_ALBUM=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\"", STRNCAT_LEN(cond));
+ }
+ else
+ {
+ strncat(cond, " AND MEDIA_ALBUM is null", STRNCAT_LEN(cond));
+ }
+ if(type_string2)
+ {
+ strncat(cond, " AND MEDIA_ARTIST=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string2, STRNCAT_LEN(cond));
+ strncat(cond, "\"", STRNCAT_LEN(cond));
+ }
+ else
+ {
+ strncat(cond, " AND MEDIA_ARTIST is null", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_TRACK_BY_FAVORITE:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+ strncat(cond, " AND MEDIA_FAVORITE=1", STRNCAT_LEN(cond));
+ break;
+ case MP_TRACK_BY_PLAYED_TIME:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_LAST_PLAYED_TIME, MEDIA_CONTENT_COLLATE_NOCASE);
+ strncat(cond, " AND MEDIA_LAST_PLAYED_TIME>0", STRNCAT_LEN(cond));
+ break;
+ case MP_TRACK_BY_ADDED_TIME:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_ADDED_TIME, MEDIA_CONTENT_COLLATE_NOCASE);
+ strncat(cond, " AND MEDIA_ADDED_TIME>0", STRNCAT_LEN(cond));
+ break;
+ case MP_TRACK_BY_PLAYED_COUNT:
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_PLAYED_COUNT, MEDIA_CONTENT_COLLATE_NOCASE);
+ strncat(cond, " AND MEDIA_PLAYED_COUNT>0", STRNCAT_LEN(cond));
+ break;
+ case MP_TRACK_BY_PLAYLIST:
+ //media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_MEMBER_ORDER, MEDIA_CONTENT_COLLATE_NOCASE);
+ break;
+ default:
+ WARN_TRACE("Unhandled type: %d", track_type);
+ break;
+ }
+
+ if(filter_string && strlen(filter_string))
+ {
+ strncat(cond, " AND MEDIA_TITLE like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+
+ DEBUG_TRACE("cond: %s", cond);
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_NOCASE);
+
+}
+
+
+int mp_media_info_connect(void)
+{
+ int res = media_content_connect();
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error: media_content_connect");
+
+ return res;
+}
+int mp_media_info_disconnect(void)
+{
+ int res = media_content_disconnect();
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error: media_content_disconnect");
+
+ return res;
+}
+
+/*filter*/
+int mp_media_filter_create(mp_filter_h *filter)
+{
+ startfunc;
+ int res = media_filter_create(filter);
+ if(res != MEDIA_CONTENT_ERROR_NONE) ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+int mp_media_filter_destory(mp_filter_h filter)
+{
+ startfunc;
+ int res = media_filter_destroy(filter);
+ if(res != MEDIA_CONTENT_ERROR_NONE) ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+int mp_media_filter_set_offset(mp_filter_h filter, int offset, int count)
+{
+ startfunc;
+ int res = media_filter_set_offset(filter, offset, count);
+ if(res != MEDIA_CONTENT_ERROR_NONE) ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+int mp_media_filter_set_order(mp_filter_h filter, bool descending, const char *order_keyword, mp_media_content_collation_e collation)
+{
+ startfunc;
+ int res = media_filter_set_order(filter, descending, order_keyword, collation);
+ if(res != MEDIA_CONTENT_ERROR_NONE) ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+int mp_media_filter_set_condition(mp_filter_h filter, const char *condition, mp_media_content_collation_e collation )
+{
+ startfunc;
+ int res = media_filter_set_condition(filter, condition, collation);
+ if(res != MEDIA_CONTENT_ERROR_NONE) ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+/*media infomation*/
+int mp_media_info_list_count_w_filter(mp_track_type_e track_type, const char * folder_id, int playlist_id, mp_filter_h filter, int *count)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ if(track_type == MP_TRACK_BY_FOLDER)
+ res = media_folder_get_media_count_from_db(folder_id, filter, count);
+ else if(track_type == MP_TRACK_BY_PLAYLIST)
+ res = media_playlist_get_media_count_from_db(playlist_id, filter, count);
+ else
+ res = media_info_get_media_count_from_db(filter, count);
+ if(res != MEDIA_CONTENT_ERROR_NONE) ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+int mp_media_info_list_count(mp_track_type_e track_type, const char *type_string, const char *type_string2, const char *filter_string, int playlist_id, int *count)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ filter_h filter = NULL;
+
+ DEBUG_TRACE("track_type: %d, type_str: %s, type_str2: %s, filter: %s, id: %d", track_type, type_string, type_string2, filter_string, playlist_id);
+
+ res = media_filter_create(&filter);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+ __mp_media_info_set_filter(filter, track_type, type_string, type_string2, filter_string);
+
+ res = mp_media_info_list_count_w_filter(track_type, type_string, playlist_id, filter, count);
+ media_filter_destroy(filter);
+
+ return res;
+}
+
+int mp_media_info_list_create_w_filter(mp_track_type_e track_type, const char *folder_id, int playlist_id, mp_filter_h filter, mp_media_list_h *media_list)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(media_list, -1);
+
+ *media_list = calloc(1, sizeof(struct mp_media_list_s));
+ MP_CHECK_VAL(*media_list, -1);
+ (*media_list)->group_type = MP_GROUP_NONE;
+
+ if(track_type == MP_TRACK_BY_FOLDER)
+ res = media_folder_foreach_media_from_db(folder_id, filter, __mp_media_info_cb, *media_list);
+ else if(track_type == MP_TRACK_BY_PLAYLIST)
+ {
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_MEMBER_ORDER, MEDIA_CONTENT_COLLATE_NOCASE);
+ res = media_playlist_foreach_media_from_db(playlist_id, filter, __mp_playlist_media_info_cb, *media_list);
+ }
+ else
+ res = media_info_foreach_media_from_db(filter, __mp_media_info_cb, *media_list);
+
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ {
+ ERROR_TRACE("Error code 0x%x", res);
+ free(*media_list);
+ return res;
+ }
+
+ (*media_list)->list = g_list_reverse((*media_list)->list);
+ (*media_list)->count = g_list_length((*media_list)->list);
+
+ DEBUG_TRACE("count : %d", (*media_list)->count);
+ return res;
+}
+
+int mp_media_info_list_create(mp_media_list_h *out_list,
+ mp_track_type_e track_type, const char *type_string, const char *type_string2, const char *filter_string, int playlist_id, int offset, int count)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ filter_h filter = NULL;
+
+
+ res = media_filter_create(&filter);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+
+ res = media_filter_set_offset(filter, offset, count);
+ DEBUG_TRACE("track_type: %d, type_str: %s, type_str2: %s, filter: %s, playlist_id: %d", track_type, type_string, type_string2, filter_string, playlist_id);
+ DEBUG_TRACE("offset: %d, count: %d", offset, count);
+ __mp_media_info_set_filter(filter, track_type, type_string, type_string2, filter_string);
+
+ res = mp_media_info_list_create_w_filter(track_type, type_string, playlist_id, filter, out_list);
+ media_filter_destroy(filter);
+
+ return res;
+}
+
+int mp_media_info_list_destroy(mp_media_list_h media_list)
+{
+ startfunc;
+ MP_CHECK_VAL(media_list, -1);
+
+ if(media_list->list)
+ g_list_free_full(media_list->list, __mp_media_info_destory);
+ free(media_list);
+
+ return 0;
+}
+
+mp_media_info_h mp_media_info_list_nth_item(mp_media_list_h media_list, int index)
+{
+ MP_CHECK_NULL(media_list);
+ MP_CHECK_NULL(index < media_list->count);
+
+ return g_list_nth_data(media_list->list, index);
+}
+
+int mp_media_info_create(mp_media_info_h *media_info, const char *media_id)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ *media_info = calloc(1, sizeof(struct mp_media_info_s));
+
+ (*media_info)->i.minfo = calloc(1, sizeof(struct mp_minfo_s));
+ MP_CHECK_VAL((*media_info)->i.minfo, -1);
+
+ res = media_info_get_media_from_db(media_id, &(*media_info)->h.media);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+
+ res = media_info_get_audio((*media_info)->h.media, &(*media_info)->s.meta);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+
+ return res;
+}
+
+int mp_media_info_create_by_path(mp_media_info_h *media_info, const char *file_path)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ mp_filter_h filter = NULL;
+ char *cond = NULL;
+ mp_media_list_h list = NULL;
+
+ res = media_filter_create(&filter);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+ cond = g_strdup_printf("MEDIA_PATH = \"%s\"", file_path);
+
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_DEFAULT);
+ IF_FREE(cond);
+
+ media_filter_set_offset(filter, 0, 1);
+
+ res = mp_media_info_list_create_w_filter(MP_TRACK_ALL, NULL, 0, filter, &list);
+ media_filter_destroy(filter);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+ MP_CHECK_VAL(list, -1);
+ MP_CHECK_VAL(list->count > 0, -1);
+
+ list->list = g_list_nth(list->list, 0);
+ MP_CHECK_VAL(list->list, res);
+ *media_info = list->list->data;
+ list->list = g_list_delete_link(list->list, list->list);
+
+ mp_media_info_list_destroy(list);
+
+ return res;
+}
+
+int mp_media_info_destroy(mp_media_info_h media_info)
+{
+ MP_CHECK_VAL(media_info, -1);
+
+ audio_meta_destroy(media_info->s.meta);
+ media_info_destroy(media_info->h.media);
+
+ if(media_info->i.minfo)
+ {
+ IF_FREE(media_info->i.minfo->media_id);
+ IF_FREE(media_info->i.minfo->title);
+ IF_FREE(media_info->i.minfo->album);
+ IF_FREE(media_info->i.minfo->artist);
+ IF_FREE(media_info->i.minfo->genre);
+ IF_FREE(media_info->i.minfo->composer);
+ IF_FREE(media_info->i.minfo->year);
+ IF_FREE(media_info->i.minfo->file_path);
+ IF_FREE(media_info->i.minfo->thumbnail_path);
+ free(media_info->i.minfo);
+ }
+
+ free(media_info);
+ return 0;
+}
+
+
+int mp_media_info_get_media_id(mp_media_info_h media, char **media_id)
+{
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ if(!media->i.minfo->media_id)
+ {
+ res = media_info_get_media_id(media->h.media, &media->i.minfo->media_id);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *media_id = media->i.minfo->media_id;
+ PRINT_STR(*media_id);
+
+ return res;
+}
+
+int mp_media_info_get_file_path(mp_media_info_h media, char **path)
+{
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ if(!media->i.minfo->file_path)
+ {
+ res = media_info_get_file_path(media->h.media, &media->i.minfo->file_path);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *path = media->i.minfo->file_path;
+ PRINT_STR(*path);
+ return res;
+}
+int mp_media_info_get_thumbnail_path(mp_media_info_h media, char **path)
+{
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ if(!media->i.minfo->thumbnail_path)
+ {
+ res = media_info_get_thumbnail_path(media->h.media, &media->i.minfo->thumbnail_path);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *path = media->i.minfo->thumbnail_path;
+ PRINT_STR(*path);
+ return res;
+}
+int mp_media_info_get_favorite(mp_media_info_h media, bool *favorite)
+{
+ MP_CHECK_VAL(media, -1);
+
+ int res = media_info_get_favorite(media->h.media, favorite);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+int mp_media_info_is_drm(mp_media_info_h media, bool *drm)
+{
+ MP_CHECK_VAL(media, -1);
+ int res = media_info_is_drm(media->h.media, drm);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+int mp_media_info_get_media_type(mp_media_info_h media, int *media_type)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->h.media, -1);
+
+ media_content_type_e mtype;
+
+ res = media_info_get_media_type(media->h.media, &mtype);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+
+ if(mtype == MEDIA_CONTENT_TYPE_SOUND)
+ *media_type = MP_MEDIA_TYPE_SOUND;
+ else
+ *media_type = MP_MEDIA_TYPE_MUSIC;
+
+ return res;
+}
+
+int mp_media_info_get_title(mp_media_info_h media, char **title)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ if(!media->i.minfo->title)
+ {
+ res = audio_meta_get_title(media->s.meta, &media->i.minfo->title);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *title = media->i.minfo->title;
+ PRINT_STR(*title);
+ return res;
+}
+int mp_media_info_get_album(mp_media_info_h media, char **album)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ if(!media->i.minfo->album)
+ {
+ res = audio_meta_get_album(media->s.meta, &media->i.minfo->album);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *album = media->i.minfo->album;
+ PRINT_STR(*album);
+ return res;
+}
+int mp_media_info_get_artist(mp_media_info_h media, char **artist)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ if(!media->i.minfo->artist)
+ {
+ res = audio_meta_get_artist(media->s.meta, &media->i.minfo->artist);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *artist = media->i.minfo->artist;
+ PRINT_STR(*artist);
+ return res;
+}
+
+int mp_media_info_get_genre(mp_media_info_h media, char **genre)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ if(!media->i.minfo->genre)
+ {
+ res = audio_meta_get_genre(media->s.meta, &media->i.minfo->genre);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *genre = media->i.minfo->genre;
+ PRINT_STR(*genre);
+ return res;
+}
+
+int mp_media_info_get_composer(mp_media_info_h media, char **composer)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ if(!media->i.minfo->composer)
+ {
+ res = audio_meta_get_composer(media->s.meta, &media->i.minfo->composer);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *composer = media->i.minfo->composer;
+ PRINT_STR(*composer);
+ return res;
+}
+int mp_media_info_get_year(mp_media_info_h media, char **year)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ if(!media->i.minfo->year)
+ {
+ res = audio_meta_get_composer(media->s.meta, &media->i.minfo->year);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *year = media->i.minfo->year;
+ PRINT_STR(*year);
+ return res;
+}
+int mp_media_info_get_copyright(mp_media_info_h media, char **copyright)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ if(!media->i.minfo->copyright)
+ {
+ res = audio_meta_get_copyright(media->s.meta, &media->i.minfo->copyright);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *copyright = media->i.minfo->copyright;
+ PRINT_STR(*copyright);
+ return res;
+}
+
+int mp_media_info_get_track_num(mp_media_info_h media, char **track_num)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ if(!media->i.minfo->track_num)
+ {
+ res = audio_meta_get_track_num(media->s.meta, &media->i.minfo->track_num);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ }
+ *track_num = media->i.minfo->track_num;
+ PRINT_STR(*track_num);
+ return res;
+}
+
+int mp_media_info_get_format(mp_media_info_h media, char **format)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ int bit_rate = 0;
+ int sample_rate = 0;
+ int channel = 0;
+
+ if(!media->i.minfo->format)
+ {
+ res = audio_meta_get_sample_rate(media->s.meta, &sample_rate);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ res = audio_meta_get_bit_rate(media->s.meta, &bit_rate);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ res = audio_meta_get_channel(media->s.meta, &channel);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+
+ media->i.minfo->format = g_strdup_printf("%dkbps %dHz %dch", bit_rate, sample_rate, channel);
+ }
+ *format = media->i.minfo->track_num;
+ PRINT_STR(*format);
+ return res;
+}
+
+int mp_media_info_get_bit_rate(mp_media_info_h media, int *bitrate)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+
+ res = audio_meta_get_bit_rate(media->s.meta, bitrate);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+int mp_media_info_get_sample_rate(mp_media_info_h media, int *sample_rate)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+
+ res = audio_meta_get_sample_rate(media->s.meta, sample_rate);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+int mp_media_info_get_duration(mp_media_info_h media, int *duration)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+
+ res = audio_meta_get_duration(media->s.meta, duration);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+int mp_media_info_get_played_time(mp_media_info_h media, time_t *time)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+
+ res = audio_meta_get_played_time(media->s.meta, time);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+int mp_media_info_get_played_count(mp_media_info_h media, int *count)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+
+ res = audio_meta_get_played_count(media->s.meta, count);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+int mp_media_info_get_playlist_member_id(mp_media_info_h media, int *member_id)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->i.minfo, -1);
+
+ *member_id = media->i.minfo->playlist_member_id;
+ return res;
+}
+
+int mp_media_info_set_favorite(mp_media_info_h media, bool favorite)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->h.media, -1);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ {
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+ }
+
+ res = media_info_set_favorite(media->h.media, favorite);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ {
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+ }
+
+ res = media_info_update_to_db(media->h.media);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+int mp_media_info_set_played_time(mp_media_info_h media, time_t time)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+
+ res = audio_meta_set_played_time(media->s.meta, time);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ {
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+ }
+ res = audio_meta_update_to_db(media->s.meta);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+int mp_media_info_set_played_count(mp_media_info_h media, int count)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.meta, -1);
+
+ res = audio_meta_set_played_count(media->s.meta, count);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ {
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+ }
+ res = audio_meta_update_to_db(media->s.meta);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+int mp_media_info_set_added_time(mp_media_info_h media, time_t time)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->h.media, -1);
+
+ res = media_info_set_added_time(media->h.media, time);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ {
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+ }
+ res = media_info_update_to_db(media->h.media);
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+ return res;
+}
+
+int mp_media_info_group_list_count(mp_group_type_e group_type, const char *type_string, const char *filter_string, int *count)
+{
+ startfunc;
+ mp_filter_h filter = NULL;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ res = media_filter_create(&filter);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+ DEBUG_TRACE("group_type: %d, type_string:s, filter_string:%s", group_type, type_string, filter_string);
+
+ __mp_media_info_set_group_filter(filter, group_type, type_string, filter_string);
+
+ res = mp_media_info_group_list_count_w_filter(group_type, filter, count);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+
+ media_filter_destroy(filter);
+
+ return res;
+}
+int mp_media_info_group_list_count_w_filter(mp_group_type_e group_type, mp_filter_h filter, int *count)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ switch(group_type)
+ {
+ case MP_GROUP_BY_ALBUM:
+ case MP_GROUP_BY_ARTIST_ALBUM:
+ res = media_album_get_album_count_from_db(filter, count);
+ break;
+ case MP_GROUP_BY_ARTIST:
+ res = media_group_get_group_count_from_db(filter, MEDIA_CONTENT_GROUP_ARTIST, count);
+ break;
+ case MP_GROUP_BY_GENRE:
+ res = media_group_get_group_count_from_db(filter, MEDIA_CONTENT_GROUP_GENRE, count);
+ break;
+ case MP_GROUP_BY_FOLDER:
+ res = media_folder_get_folder_count_from_db(filter, count);
+ break;
+ case MP_GROUP_BY_YEAR:
+ res = media_group_get_group_count_from_db(filter, MEDIA_CONTENT_GROUP_YEAR, count);
+ break;
+ case MP_GROUP_BY_COMPOSER:
+ res = media_group_get_group_count_from_db(filter, MEDIA_CONTENT_GROUP_COMPOSER, count);
+ break;
+ case MP_GROUP_BY_PLAYLIST:
+ res = media_playlist_get_playlist_count_from_db(filter, count);
+ break;
+ default:
+ WARN_TRACE("Unhandled type: %d", group_type);
+ res = -1;
+ break;
+ }
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ ERROR_TRACE("Error code 0x%x", res);
+
+ return res;
+}
+
+#define STR_MP_MOST_PLAYED ("IDS_MUSIC_BODY_MOST_PLAYED")
+#define STR_MP_RECENTLY_ADDED ("IDS_MUSIC_BODY_RECENTLY_ADDED")
+#define STR_MP_RECENTLY_PLAYED ("IDS_MUSIC_BODY_RECENTLY_PLAYED")
+#define STR_MP_QUICK_LIST ("IDS_MUSIC_BODY_FAVOURITES")
+
+int mp_media_info_group_list_create(mp_media_list_h *media_list, mp_group_type_e group_type, const char *type_string, const char *filter_string, int offset, int count)
+{
+ startfunc;
+ mp_filter_h filter = NULL;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ if(group_type != MP_GROUP_BY_SYS_PLAYLIST)
+ {
+ res = media_filter_create(&filter);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+ media_filter_set_offset(filter, offset, count);
+
+ __mp_media_info_set_group_filter(filter, group_type, type_string, filter_string);
+
+ res = mp_media_info_group_list_create_w_filter(filter, group_type, media_list);
+ media_filter_destroy(filter);
+ MP_CHECK_VAL(res == MEDIA_CONTENT_ERROR_NONE, res);
+ }
+ else
+ {
+
+ int i;
+ mp_media_info_h media_info = NULL;
+ *media_list = calloc(1, sizeof(struct mp_media_list_s));
+ MP_CHECK_VAL(*media_list, -1);
+ (*media_list)->group_type = group_type;
+
+ char names[][50] =
+ { STR_MP_MOST_PLAYED, STR_MP_RECENTLY_ADDED, STR_MP_RECENTLY_PLAYED, STR_MP_QUICK_LIST };
+ char thumb[][4096]=
+ { THUMBNAIL_MOST_PLAYED, THUMBNAIL_RECENTLY_PLAYED, THUMBNAIL_RECENTLY_ADDED, THUMBNAIL_QUICK_LIST};
+
+ for(i=0; i< 4; i++)
+ {
+ media_info = calloc(1, sizeof(struct mp_media_info_s));
+ MP_CHECK_FALSE(media_info);
+
+ media_info->i.ginfo = calloc(1, sizeof(struct mp_ginfo_s));
+ MP_CHECK_FALSE(media_info->i.ginfo);
+
+ media_info->i.ginfo->main_info = g_strdup(names[i]);
+ media_info->i.ginfo->thumb_path= g_strdup(thumb[i]);
+ media_info->s.group_type = group_type;
+ (*media_list)->list = g_list_append((*media_list)->list, media_info);
+ }
+ (*media_list)->count = g_list_length((*media_list)->list);
+
+ }
+ return res;
+}
+
+int mp_media_info_group_list_create_w_filter(mp_filter_h filter, mp_group_type_e group_type, mp_media_list_h *media_list)
+{
+ startfunc;
+ MP_CHECK_VAL(media_list, -1);
+
+ *media_list = calloc(1, sizeof(struct mp_media_list_s));
+ MP_CHECK_VAL(*media_list, -1);
+ (*media_list)->group_type = group_type;
+
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ switch(group_type)
+ {
+ case MP_GROUP_BY_ALBUM:
+ case MP_GROUP_BY_ARTIST_ALBUM:
+ res = media_album_foreach_album_from_db(filter, __mp_media_album_cb, *media_list);
+ break;
+ case MP_GROUP_BY_ARTIST:
+ res = media_group_foreach_group_from_db(filter, MEDIA_CONTENT_GROUP_ARTIST, __mp_media_group_cb, *media_list);
+ break;
+ case MP_GROUP_BY_GENRE:
+ res = media_group_foreach_group_from_db(filter, MEDIA_CONTENT_GROUP_GENRE, __mp_media_group_cb, *media_list);
+ break;
+ case MP_GROUP_BY_FOLDER:
+ res = media_folder_foreach_folder_from_db(filter, __mp_media_folder_cb, *media_list);
+ break;
+ case MP_GROUP_BY_YEAR:
+ res = media_group_foreach_group_from_db(filter, MEDIA_CONTENT_GROUP_YEAR, __mp_media_group_cb, *media_list);
+ break;
+ case MP_GROUP_BY_COMPOSER:
+ res = media_group_foreach_group_from_db(filter, MEDIA_CONTENT_GROUP_COMPOSER, __mp_media_group_cb, *media_list);
+ break;
+ case MP_GROUP_BY_PLAYLIST:
+ res = media_playlist_foreach_playlist_from_db(filter, __mp_media_playlist_cb, *media_list);
+ break;
+ default:
+ WARN_TRACE("Unhandled type: %d", group_type);
+ res = -1;
+ break;
+ }
+ if(res != MEDIA_CONTENT_ERROR_NONE)
+ {
+ ERROR_TRACE("Error code 0x%x", res);
+ free(*media_list);
+ }
+ else
+ {
+ (*media_list)->list = g_list_reverse((*media_list)->list);
+ (*media_list)->count = g_list_length((*media_list)->list);
+ }
+
+ return res;
+}
+
+int mp_media_info_group_list_destroy(mp_media_list_h media_list)
+{
+ startfunc;
+ MP_CHECK_VAL(media_list, -1);
+ g_list_free_full(media_list->list, __mp_media_group_destory);
+ free(media_list);
+ return 0;
+}
+mp_media_info_h mp_media_info_group_list_nth_item(mp_media_list_h media_list, int index)
+{
+ MP_CHECK_NULL(media_list);
+ MP_CHECK_NULL(index < media_list->count);
+
+ return g_list_nth_data(media_list->list, index);
+}
+
+int mp_media_info_group_get_main_info(mp_media_info_h media, char **main_info)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(main_info, -1);
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->i.ginfo, -1);
+ if(!media->i.ginfo->main_info && media->s.group_type != MP_GROUP_BY_SYS_PLAYLIST)
+ {
+ if(media->s.group_type == MP_GROUP_BY_FOLDER)
+ res = media_folder_get_name(media->h.group, &media->i.ginfo->main_info);
+ else if(media->s.group_type == MP_GROUP_BY_ALBUM || media->s.group_type == MP_GROUP_BY_ARTIST_ALBUM)
+ res = media_album_get_name(media->h.group, &media->i.ginfo->main_info);
+ else if(media->s.group_type == MP_GROUP_BY_PLAYLIST)
+ res = media_playlist_get_name(media->h.group, &media->i.ginfo->main_info);
+ else
+ media->i.ginfo->main_info = g_strdup(media->h.group);
+ }
+ *main_info = media->i.ginfo->main_info;
+ PRINT_STR(*main_info);
+ return res;
+}
+
+int mp_media_info_group_get_sub_info(mp_media_info_h media, char **sub_info)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(sub_info, -1);
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->i.ginfo, -1);
+ if(!media->i.ginfo->sub_info && media->s.group_type != MP_GROUP_BY_SYS_PLAYLIST)
+ {
+ if(media->s.group_type == MP_GROUP_BY_FOLDER)
+ res = media_folder_get_path(media->h.group, &media->i.ginfo->sub_info);
+ else if(media->s.group_type == MP_GROUP_BY_ALBUM || media->s.group_type == MP_GROUP_BY_ARTIST_ALBUM)
+ res = media_album_get_artist(media->h.group, &media->i.ginfo->sub_info);
+ }
+ *sub_info = media->i.ginfo->sub_info;
+ PRINT_STR(*sub_info);
+ return res;
+}
+
+int mp_media_info_group_get_playlist_id(mp_media_info_h media, int *playlist_id)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(playlist_id, -1);
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.group_type == MP_GROUP_BY_PLAYLIST || media->s.group_type == MP_GROUP_BY_SYS_PLAYLIST, -1);
+
+ if(media->s.group_type == MP_GROUP_BY_SYS_PLAYLIST)
+ {
+ if(!g_strcmp0(media->i.ginfo->main_info, STR_MP_QUICK_LIST))
+ *playlist_id = MP_SYS_PLST_QUICK_LIST;
+ else if(!g_strcmp0(media->i.ginfo->main_info, STR_MP_RECENTLY_PLAYED))
+ *playlist_id = MP_SYS_PLST_RECENTELY_PLAYED;
+ else if(!g_strcmp0(media->i.ginfo->main_info, STR_MP_RECENTLY_ADDED))
+ *playlist_id = MP_SYS_PLST_RECENTELY_ADDED;
+ else
+ *playlist_id = MP_SYS_PLST_MOST_PLAYED;
+ }
+ else
+ res = media_playlist_get_playlist_id(media->h.group, playlist_id);
+ PRINT_INT(*playlist_id);
+ return res;
+}
+
+int mp_media_info_group_get_folder_id(mp_media_info_h media, char **folder_id)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(folder_id, -1);
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->s.group_type == MP_GROUP_BY_FOLDER, -1);
+
+ res = media_folder_get_folder_id(media->h.group, folder_id);
+ PRINT_INT(*folder_id);
+ return res;
+}
+
+int mp_media_info_group_get_thumbnail_path(mp_media_info_h media, char **path)
+{
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(path, -1);
+ MP_CHECK_VAL(media, -1);
+ MP_CHECK_VAL(media->i.ginfo, -1);
+ if(!media->i.ginfo->thumb_path)
+ {
+
+ if(media->s.group_type == MP_GROUP_BY_ALBUM || media->s.group_type == MP_GROUP_BY_ARTIST_ALBUM)
+ res = media_album_get_album_art(media->h.group, &media->i.ginfo->thumb_path);
+ else{
+ filter_h filter;
+ mp_media_list_h list = NULL;
+ mp_media_info_h minfo = NULL;
+ char *type_string = NULL;
+ char cond[MAX_FILTER_LEN] = {0,};
+ int count = 0;
+
+ mp_media_info_group_get_main_info(media, &type_string);
+
+ media_filter_create(&filter);
+ strncat(cond, MP_MEDIA_TYPE, STRNCAT_LEN(cond));
+ if(media->s.group_type == MP_GROUP_BY_PLAYLIST)
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_MEMBER_ORDER, MEDIA_CONTENT_COLLATE_NOCASE);
+ else
+ media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
+
+ if(media->s.group_type == MP_GROUP_BY_ARTIST){
+ strncat(cond, " AND MEDIA_ARTIST=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\" AND MEDIA_THUMBNAIL_PATH is not null", STRNCAT_LEN(cond));
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_NOCASE);
+
+ mp_media_info_list_count_w_filter(MP_TRACK_ALL, NULL, 0, filter, &count);
+ if(count>0)
+ {
+ media_filter_set_offset(filter, 0, 1);
+ mp_media_info_list_create_w_filter(MP_TRACK_ALL, NULL, 0, filter, &list);
+ }
+
+ }else if(media->s.group_type == MP_GROUP_BY_GENRE){
+ strncat(cond, " AND MEDIA_GENRE=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\" AND MEDIA_THUMBNAIL_PATH is not NULL", STRNCAT_LEN(cond));
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_NOCASE);
+
+ mp_media_info_list_count_w_filter(MP_TRACK_ALL, NULL, 0, filter, &count);
+ if(count>0)
+ {
+ media_filter_set_offset(filter, 0, 1);
+ mp_media_info_list_create_w_filter(MP_TRACK_ALL, NULL, 0, filter, &list);
+ }
+ }else if(media->s.group_type == MP_GROUP_BY_FOLDER){
+ char *folde_id = NULL;
+ mp_media_info_group_get_folder_id(media, &folde_id);
+
+ strncat(cond, " AND MEDIA_THUMBNAIL_PATH is not NULL", STRNCAT_LEN(cond));
+
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_NOCASE);
+ mp_media_info_list_count_w_filter(MP_TRACK_BY_FOLDER, folde_id, 0, filter, &count);
+ if(count>0)
+ {
+ media_filter_set_offset(filter, 0, 1);
+ mp_media_info_list_create_w_filter(MP_TRACK_BY_FOLDER, folde_id, 0, filter, &list);
+ }
+ }else if(media->s.group_type == MP_GROUP_BY_YEAR){
+ strncat(cond, " AND MEDIA_YEAR=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\" AND MEDIA_THUMBNAIL_PATH is not NULL", STRNCAT_LEN(cond));
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_NOCASE);
+
+ mp_media_info_list_count_w_filter(MP_TRACK_ALL, NULL, 0, filter, &count);
+ if(count>0)
+ {
+ media_filter_set_offset(filter, 0, 1);
+ mp_media_info_list_create_w_filter(MP_TRACK_ALL, NULL, 0, filter, &list);
+ }
+ }else if(media->s.group_type == MP_GROUP_BY_COMPOSER){
+ strncat(cond, " AND MEDIA_COMPOSER=\"", STRNCAT_LEN(cond));
+ strncat(cond, type_string, STRNCAT_LEN(cond));
+ strncat(cond, "\" AND MEDIA_THUMBNAIL_PATH is not NULL", STRNCAT_LEN(cond));
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_NOCASE);
+
+ mp_media_info_list_count_w_filter(MP_TRACK_ALL, NULL, 0, filter, &count);
+ if(count>0)
+ {
+ media_filter_set_offset(filter, 0, 1);
+ mp_media_info_list_create_w_filter(MP_TRACK_ALL, NULL, 0, filter, &list);
+ }
+ }else if(media->s.group_type == MP_GROUP_BY_PLAYLIST){
+ int playlist_id = 0;
+ mp_media_info_group_get_playlist_id(media, &playlist_id);
+
+ strncat(cond, " AND MEDIA_THUMBNAIL_PATH is not NULL", STRNCAT_LEN(cond));
+
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_NOCASE);
+ mp_media_info_list_count_w_filter(MP_TRACK_BY_PLAYLIST, NULL, playlist_id, filter, &count);
+ if(count>0)
+ {
+ media_filter_set_offset(filter, 0, 1);
+ mp_media_info_list_create_w_filter(MP_TRACK_BY_PLAYLIST, NULL, playlist_id, filter, &list);
+ }
+ }else{
+ WARN_TRACE("Unhandled type: %d", media->s.group_type);
+ media_filter_destroy(filter);
+ goto END;
+ }
+ WARN_TRACE("count: %d", count);
+
+ if(list)
+ {
+ char *thumb_path = NULL;
+ minfo = mp_media_info_list_nth_item(list, 0);
+ MP_CHECK_VAL(minfo, -1);
+ mp_media_info_get_thumbnail_path(minfo, &thumb_path);
+ media->i.ginfo->thumb_path = g_strdup(thumb_path);
+ mp_media_info_list_destroy(list);
+ }
+ media_filter_destroy(filter);
+ }
+
+ }
+ END:
+ *path = media->i.ginfo->thumb_path;
+ PRINT_STR(*path);
+ return res;
+}
+
+
+int mp_media_info_playlist_get_id_by_name(const char *playlist_name, int *playlist_id)
+{
+ startfunc;
+ mp_filter_h filter;
+ mp_media_list_h list;
+ mp_media_info_h media;
+ char *cond = NULL;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ res = mp_media_filter_create(&filter);
+ MP_CHECK_VAL(res == 0, res);
+ cond = g_strdup_printf("PLAYLIST_NAME = \"%s\"", playlist_name);
+ MP_CHECK_VAL(cond, -1);
+ res = mp_media_filter_set_condition(filter, cond, MP_MEDIA_CONTENT_COLLATE_DEFAULT);
+ free(cond);
+ MP_CHECK_VAL(res == 0, res);
+ res = mp_media_filter_set_offset(filter, 0, 1);
+ MP_CHECK_VAL(res == 0, res);
+
+ res = mp_media_info_group_list_create_w_filter(filter, MP_GROUP_BY_PLAYLIST, &list);
+ mp_media_filter_destory(filter);
+ MP_CHECK_VAL(res == 0, res);
+ MP_CHECK_VAL(list, -1);
+
+ media = mp_media_info_group_list_nth_item(list, 0);
+ MP_CHECK_VAL(media, -1);
+
+ res = mp_media_info_group_get_playlist_id(media, playlist_id);
+ mp_media_info_group_list_destroy(list);
+
+ return res;
+}
+
+int mp_media_info_playlist_insert_to_db(const char * name, int *playlist_id, mp_playlist_h *playlist_handle)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ media_playlist_h playlist = NULL;
+
+ res = media_playlist_insert_to_db(name, &playlist);
+ MP_CHECK_VAL(res == 0, res);
+
+ res = media_playlist_get_playlist_id(playlist, playlist_id);
+ DEBUG_TRACE("name: %s, playlist_id: %d", name, *playlist_id);
+
+ if(playlist_handle)
+ *playlist_handle = (mp_playlist_h)playlist;
+ else
+ media_playlist_destroy(playlist);
+ return res;
+}
+
+int mp_media_info_playlist_handle_destroy(mp_playlist_h playlist_handle)
+{
+ MP_CHECK_VAL(playlist_handle, -1);
+ return media_playlist_destroy((media_playlist_h)playlist_handle);
+}
+
+int mp_media_info_playlist_delete_from_db(int playlist_id)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ res = media_playlist_delete_from_db(playlist_id);
+ return res;
+}
+
+int mp_media_info_playlist_add_media(int playlist_id, const char *media_id)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ media_playlist_h playlist = NULL;
+
+ res = media_playlist_get_playlist_from_db(playlist_id, NULL, &playlist);
+ MP_CHECK_VAL(res == 0, res);
+
+ res = media_playlist_add_media(playlist, media_id);
+ MP_CHECK_VAL(res == 0, res);
+
+ res = media_playlist_update_to_db(playlist);
+ MP_CHECK_VAL(res == 0, res);
+
+ media_playlist_destroy(playlist);
+
+ return res;
+}
+
+int mp_media_info_playlist_remove_media(mp_media_info_h playlist, int memeber_id)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(playlist, -1);
+
+ res = media_playlist_remove_media(playlist->h.group, memeber_id);
+ MP_CHECK_VAL(res == 0, res);
+
+ res = media_playlist_update_to_db(playlist->h.group);
+ MP_CHECK_VAL(res == 0, res);
+
+ return res;
+}
+
+int mp_media_info_playlist_is_exist(const char *playlist_name, bool *exist)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+ filter_h filter = NULL;
+ char cond[MAX_FILTER_LEN] = {0,};
+ int count = 0;
+ media_filter_create(&filter);
+ strncat(cond, "((MEDIA_TYPE=3 and MEDIA_COUNT>0) or MEDIA_COUNT=0) and PLAYLIST_NAME = \"", STRNCAT_LEN(cond));
+ strncat(cond, playlist_name, STRNCAT_LEN(cond));
+ strncat(cond, "\"", STRNCAT_LEN(cond));
+ media_filter_set_condition(filter, cond, MEDIA_CONTENT_COLLATE_DEFAULT);
+ res = mp_media_info_group_list_count_w_filter(MP_GROUP_BY_PLAYLIST, filter, &count);
+ media_filter_destroy(filter);
+ if(count ==0)
+ *exist = false;
+ else
+ *exist = true;
+ return res;
+}
+
+int mp_media_info_playlist_unique_name(const char *orig_name, char *unique_name, size_t max_unique_name_length)
+{
+ startfunc;
+ bool exist = false;
+ int i = 1;
+
+ snprintf(unique_name, max_unique_name_length, "%s_001", orig_name);
+ mp_media_info_playlist_is_exist(unique_name, &exist);
+
+ if (exist) {
+ while (i < 1000) {
+ snprintf(unique_name, max_unique_name_length, "%s_%.3d", orig_name, i + 1);
+ mp_media_info_playlist_is_exist(unique_name, &exist);
+ if (!exist) {
+ return 0;
+ } else {
+ i++;
+ }
+ }
+ MP_CHECK_VAL(i<1000, -1);
+ }
+ return 0;
+}
+
+int mp_media_info_playlist_rename(mp_media_info_h playlist, const char *new_name)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(playlist, -1);
+ MP_CHECK_VAL(playlist->h.group, -1);
+ MP_CHECK_VAL(playlist->i.ginfo, -1);
+ MP_CHECK_VAL(new_name, -1);
+ MP_CHECK_VAL(playlist->s.group_type == MP_GROUP_BY_PLAYLIST, -1);
+
+ res = media_playlist_set_name((media_playlist_h)playlist->h.group, new_name);
+ MP_CHECK_VAL(res == 0, res);
+
+ res = media_playlist_update_to_db(playlist->h.group);
+ MP_CHECK_VAL(res == 0, res);
+
+ IF_FREE(playlist->i.ginfo->main_info);
+ playlist->i.ginfo->main_info = g_strdup(new_name);
+
+ return res;
+}
+
+int mp_media_info_playlist_get_play_order(mp_media_info_h playlist, int playlist_member_id, int * play_order)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(playlist, -1);
+ MP_CHECK_VAL(playlist->h.group, -1);
+ MP_CHECK_VAL(playlist->s.group_type == MP_GROUP_BY_PLAYLIST, -1);
+
+ res = media_playlist_get_play_order(playlist->h.group, playlist_member_id, play_order);
+ MP_CHECK_VAL(res == 0, res);
+
+ return res;
+}
+
+int mp_media_info_playlist_set_play_order(mp_media_info_h playlist, int playlist_member_id, int play_order)
+{
+ startfunc;
+ int res = MEDIA_CONTENT_ERROR_NONE;
+
+ MP_CHECK_VAL(playlist, -1);
+ MP_CHECK_VAL(playlist->h.group, -1);
+ MP_CHECK_VAL(playlist->s.group_type == MP_GROUP_BY_PLAYLIST, -1);
+
+ res = media_playlist_set_play_order(playlist->h.group, playlist_member_id, play_order);
+ MP_CHECK_VAL(res == 0, res);
+
+ res = media_playlist_update_to_db(playlist->h.group);
+ MP_CHECK_VAL(res == 0, res);
+
+ return res;
+}
+
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include "music.h"
#include <stdio.h>
#include <glib.h>
#include "mp-player-debug.h"
#include "mp-menu.h"
-#include "mp-view-layout.h"
#include "mp-util.h"
#include "mp-popup.h"
#include "mp-play-list.h"
+#include "mp-ug-launch.h"
#include "mp-item.h"
#include "mp-player-drm.h"
-#include "mp-playlist-view.h"
#include "mp-widget.h"
+
+#include "mp-setting-ctrl.h"
+
+#ifndef MP_SOUND_PLAYER
+#include "mp-view-layout.h"
+#include "mp-playlist-view.h"
#include "mp-common.h"
#include "mp-view-manager.h"
-#include "mp-setting-ctrl.h"
+#endif
#define MP_MENU_FID "mp_menu_fid"
#define MP_MENU_PLAY_LIST_FID "mp_menu_playlist_id"
} mp_menu_func_type;
-audio_svc_track_type_e
-mp_menu_get_track_type_by_group(audio_svc_group_type_e group_type)
+mp_track_type_e
+mp_menu_get_track_type_by_group(mp_group_type_e group_type)
{
- audio_svc_track_type_e item_type = AUDIO_SVC_TRACK_ALL;
+ mp_track_type_e item_type = MP_TRACK_ALL;
- if (group_type == AUDIO_SVC_GROUP_BY_ALBUM)
- {
- item_type = AUDIO_SVC_TRACK_BY_ALBUM;
- }
- else if (group_type == AUDIO_SVC_GROUP_BY_ARTIST)
- {
- item_type = AUDIO_SVC_TRACK_BY_ARTIST;
- }
- else if (group_type == AUDIO_SVC_GROUP_BY_ARTIST_ALBUM)
+ if (group_type == MP_GROUP_BY_ALBUM)
{
- item_type = AUDIO_SVC_TRACK_BY_ALBUM;
+ item_type = MP_TRACK_BY_ALBUM;
}
- else if (group_type == AUDIO_SVC_GROUP_BY_GENRE)
+ else if (group_type == MP_GROUP_BY_ARTIST)
{
- item_type = AUDIO_SVC_TRACK_BY_GENRE;
+ item_type = MP_TRACK_BY_ARTIST;
}
- else if (group_type == AUDIO_SVC_GROUP_BY_GENRE_ARTIST)
+ else if (group_type == MP_GROUP_BY_ARTIST_ALBUM)
{
- item_type = AUDIO_SVC_TRACK_BY_GENRE;
+ item_type = MP_TRACK_BY_ALBUM;
}
- else if (group_type == AUDIO_SVC_GROUP_BY_GENRE_ALBUM)
+ else if (group_type == MP_GROUP_BY_GENRE)
{
- item_type = AUDIO_SVC_TRACK_BY_GENRE;
+ item_type = MP_TRACK_BY_GENRE;
}
- else if (group_type == AUDIO_SVC_GROUP_BY_GENRE_ARTIST_ALBUM)
+ else if (group_type == MP_GROUP_BY_YEAR)
{
- item_type = AUDIO_SVC_TRACK_BY_GENRE;
+ item_type = MP_TRACK_BY_YEAR;
}
- else if (group_type == AUDIO_SVC_GROUP_BY_YEAR)
+ else if (group_type == MP_GROUP_BY_COMPOSER)
{
- item_type = AUDIO_SVC_TRACK_BY_YEAR;
+ item_type = MP_TRACK_BY_COMPOSER;
}
- else if (group_type == AUDIO_SVC_GROUP_BY_COMPOSER)
+ else if (group_type == MP_GROUP_BY_FOLDER)
{
- item_type = AUDIO_SVC_TRACK_BY_COMPOSER;
+ item_type = MP_TRACK_BY_FOLDER;
}
return item_type;
}
-
+#ifndef MP_SOUND_PLAYER
bool
-_mp_menu_func_by_group_handle(int plst_id, mp_layout_data_t * layout_data, AudioHandleType * svc_handle,
+_mp_menu_func_by_group_handle(int plst_id, mp_layout_data_t * layout_data, mp_media_info_h svc_handle,
mp_menu_func_type menu_func)
{
startfunc;
int err = -1;
int count = 0;
int index = 0;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
int playlist_item_count = 0;
- AudioHandleType *tracks = NULL;
- audio_svc_track_type_e item_type = AUDIO_SVC_TRACK_ALL;
+ mp_media_list_h tracks = NULL;
+ mp_track_type_e item_type = MP_TRACK_ALL;
item_type = mp_menu_get_track_type_by_group(layout_data->group_type);
char *name = NULL;
- int size = 0;
- ret = audio_svc_group_item_get_val(svc_handle, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &name, &size, -1);
+ if ((item_type == MP_TRACK_BY_FOLDER))
+ {
+ ret = mp_media_info_group_get_folder_id(svc_handle, &name);
+ }
+ else
+ {
+ ret = mp_media_info_group_get_main_info(svc_handle, &name);
+ }
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, FALSE, "Fail to get value");
+ mp_retvm_if(ret != 0, FALSE, "Fail to get value");
mp_retvm_if(name == NULL, FALSE, "Fail to get value");
mp_debug("%s", name);
- audio_svc_count_list_item(ad->media_svc_handle, item_type, name, "", "", "", &count);
- mp_debug("%d", count);
+ ret = mp_media_info_list_count(item_type, name, NULL, NULL, 0, &count);
+ MP_CHECK_EXCEP(ret == 0);
- ret = audio_svc_list_item_new(&tracks, count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, FALSE, "Fail to audio_svc_list_item_new");
-
- ret = audio_svc_get_list_item(ad->media_svc_handle, item_type, name, NULL, NULL, NULL, 0, count, tracks);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ ret = mp_media_info_list_create(&tracks, item_type, name, NULL, NULL, 0, 0, count);
+ MP_CHECK_EXCEP(ret == 0);
+#ifdef MP_PLAYLIST_MAX_ITEM_COUNT
if (menu_func == MP_MENU_FUNC_ADD_TO_LIST)
{
- audio_svc_count_playlist_item(ad->media_svc_handle, plst_id, NULL, NULL, &playlist_item_count);
+ mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL, NULL, plst_id, &playlist_item_count);
if (playlist_item_count >= MP_PLAYLIST_MAX_ITEM_COUNT)
{
return false;
}
}
+#endif
for (index = 0; index < count; ++index)
{
char *fid = 0;
- int size = 0;
char *path = NULL;
+ mp_media_info_h item;
- mp_debug("%d", index);
+ item = mp_media_info_list_nth_item(tracks, index);
+ mp_media_info_get_media_id(item, &fid);
+ mp_media_info_get_file_path(item, &path);
- audio_svc_list_item_get_val(tracks, index, AUDIO_SVC_LIST_ITEM_AUDIO_ID, &fid, &size,
- AUDIO_SVC_LIST_ITEM_PATHNAME, &path, &size, -1);
if (menu_func == MP_MENU_FUNC_ADD_TO_LIST)
{
- if (playlist_item_count >= 1000)
+#ifdef MP_PLAYLIST_MAX_ITEM_COUNT
+ if (playlist_item_count >= MP_PLAYLIST_MAX_ITEM_COUNT)
{
- return false;
- }
- err = audio_svc_add_item_to_playlist(ad->media_svc_handle, plst_id, fid);
- if (err != AUDIO_SVC_ERROR_NONE)
- {
- ERROR_TRACE("Error in audio_svc_list_append_item (%d)\n", err);
- MP_CHECK_EXCEP(false);
+ goto mp_exception;
}
+#endif
+ err = mp_media_info_playlist_add_media(plst_id, fid);
+ MP_CHECK_EXCEP(err == 0);
playlist_item_count++;
}
else
if ((cur_item != NULL) && !g_strcmp0(cur_item->key_id ,fid))
{
mp_widget_text_popup(layout_data->view_data->ad,
- GET_STR
- ("IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"));
+ GET_STR("IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"));
goto mp_exception;
}
err = remove(path);
-
- if (err < 0)
- {
- ERROR_TRACE("Error in remove (%s)\n", path);
- MP_CHECK_EXCEP(false);
- }
+ MP_CHECK_EXCEP(err == 0);
}
}
-
- audio_svc_list_item_free(tracks);
+ mp_media_info_list_destroy(tracks);
return true;
mp_exception:
- audio_svc_list_item_free(tracks);
+ mp_media_info_list_destroy(tracks);
return false;
}
{
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
- MP_CHECK(ad->library);
mp_retm_if(ad->navi_effect_in_progress, "navi effect in progress");
Evas_Object *current_navi_bar = NULL;
- current_navi_bar = ad->library->cur_view;
+ current_navi_bar = ad->naviframe;
MP_CHECK(current_navi_bar);
view_data_t *view_data = evas_object_data_get(current_navi_bar, "view_data");
DEBUG_TRACE_FUNC();
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
- MP_CHECK(ad->library);
mp_retm_if(ad->navi_effect_in_progress, "navi effect in progress");
Evas_Object *current_navi_bar = NULL;
- current_navi_bar = ad->library->cur_view;
+ current_navi_bar = ad->naviframe;
MP_CHECK(current_navi_bar);
int plst_uid = -1;
}
converted_name = elm_entry_markup_to_utf8(name);
- plst_uid = mp_util_create_playlist(ad, converted_name);
+ plst_uid = mp_util_create_playlist(ad, converted_name, NULL);
IF_FREE(converted_name);
if (plst_uid < 0)
return;
if (category == MP_LAYOUT_TRACK_LIST)
{
- result = mp_util_add_to_playlist_by_key(ad->media_svc_handle, plst_uid, ad->fid);
+ result = mp_util_add_to_playlist_by_key(plst_uid, ad->fid);
}
else if (category == MP_LAYOUT_GROUP_LIST)
{
else
{
mp_debug("fail add to play list");
+#ifdef MP_PLAYLIST_MAX_ITEM_COUNT
char *fmt_str = GET_STR("IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE");
char *noti_str = g_strdup_printf(fmt_str, MP_PLAYLIST_MAX_ITEM_COUNT);
mp_util_create_notify(ad, noti_str);
IF_FREE(noti_str);
+#else
+ mp_util_create_notify(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_ADD"));
+#endif
}
return;
MP_CHECK(ad);
MP_CHECK(ad->library);
- current_navi_bar = ad->library->cur_view;
- MP_CHECK(current_navi_bar);
+ current_navi_bar = ad->naviframe;
view_data = evas_object_data_get(current_navi_bar, "view_data");
- new_playlist_name = mp_util_get_new_playlist_name(ad->media_svc_handle);
+ new_playlist_name = mp_util_get_new_playlist_name();
Evas_Object *create_plst_layout = mp_common_create_editfield_layout(current_navi_bar, ad, new_playlist_name);
IF_FREE(new_playlist_name);
mp_retm_if(create_plst_layout == NULL, "create_plst_layout is NULL");
mp_view_manager_push_view_content(view_data, create_plst_layout, MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP);
- mp_view_manager_set_title_and_buttons(view_data, GET_STR("IDS_MUSIC_OPT_ADD_PLAYLIST"), ad);
evas_object_show(create_plst_layout);
ad->group_item_handler = evas_object_data_get(obj, MP_MENU_GROUP_ITEM_HANDLER);
}
+ if (layout_data->genlist)
+ mp_util_reset_genlist_mode_item(layout_data->genlist);
+
mp_popup_destroy(layout_data->ad);
endfunc;
{
DEBUG_TRACE_FUNC();
struct appdata *ad = NULL;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
int playlist_id = -1;
- AudioHandleType *item_handler = (AudioHandleType *) data;
- AudioHandleType *play_list_handle = NULL;
-
+ mp_media_info_h item_handler = data;
mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
mp_list_category_t category = MP_LAYOUT_TRACK_LIST;
}
MP_CHECK(ad);
- int size = 0;
char *playlist_name = NULL;
int item_count = 0;
- ret = audio_svc_playlist_get_val(item_handler, 0, AUDIO_SVC_PLAYLIST_ID, &playlist_id,
- AUDIO_SVC_PLAYLIST_NAME, &playlist_name, &size, -1);
- audio_svc_count_playlist_item(ad->media_svc_handle, playlist_id, NULL, NULL, &item_count);
+ ret = mp_media_info_group_get_main_info(item_handler, &playlist_name);
+ ret = mp_media_info_group_get_playlist_id(item_handler, &playlist_id);
+
+ mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL, NULL, playlist_id, &item_count);
+
+#ifdef MP_PLAYLIST_MAX_ITEM_COUNT
if (item_count > MP_PLAYLIST_MAX_ITEM_COUNT)
{
char *fmt_str = GET_STR("IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE");
IF_FREE(noti_str);
goto END;
}
+#endif
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
+ mp_retm_if(ret != 0, "Fail to get value");
bool result = false;
if (category == MP_LAYOUT_TRACK_LIST)
{
char *fid = (char *)evas_object_data_get(obj, MP_MENU_FID);
- result = mp_util_add_to_playlist_by_key(ad->media_svc_handle, playlist_id, fid);
+ result = mp_util_add_to_playlist_by_key(playlist_id, fid);
IF_FREE(fid);
}
else if (category == MP_LAYOUT_GROUP_LIST)
{
- AudioHandleType *group_item_handler = evas_object_data_get(obj, MP_MENU_GROUP_ITEM_HANDLER);
+ mp_media_info_h group_item_handler = evas_object_data_get(obj, MP_MENU_GROUP_ITEM_HANDLER);
MP_CHECK(group_item_handler);
else
{
mp_debug("fail add to play list");
+#ifdef MP_PLAYLIST_MAX_ITEM_COUNT
char *fmt_str = GET_STR("IDS_MUSIC_POP_UNABLE_TO_ADD_MORE_THAN_PD_MUSIC_FILE");
char *noti_str = g_strdup_printf(fmt_str, MP_PLAYLIST_MAX_ITEM_COUNT);
mp_util_create_notify(ad, noti_str);
IF_FREE(noti_str);
+#else
+ mp_util_create_notify(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_ADD"));
+#endif
}
+#ifdef MP_PLAYLIST_MAX_ITEM_COUNT
END:
+#endif
- play_list_handle = evas_object_data_get(obj, MP_MENU_POPUP_PLAY_LIST_HANDLER);
-
- if (play_list_handle)
- audio_svc_playlist_free(play_list_handle);
- play_list_handle = NULL;
+ mp_media_list_h list = evas_object_data_get(obj, MP_MENU_POPUP_PLAY_LIST_HANDLER);
+ mp_media_info_group_list_destroy(list);
mp_popup_destroy(ad);
return;
{
DEBUG_TRACE_FUNC();
- AudioHandleType *handle = (AudioHandleType *) data;
+ mp_media_info_h handle = data;
MP_CHECK(handle);
struct appdata *ad = NULL;
char *fid = NULL;
int ret = 0;
- mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
+ Evas_Object *popup = obj;
+ mp_layout_data_t *layout_data = evas_object_data_get(popup, "layout_data");
MP_CHECK(layout_data);
MP_CHECK_LAYOUT_DATA(layout_data);
ad = layout_data->ad;
ad->popup_delete = NULL;
- if ((int)event_info == MP_POPUP_YES)
+ mp_evas_object_del(popup);
+ int response = (int)event_info;
+
+ if (response == MP_POPUP_YES)
{
bool result = TRUE;
if (layout_data->category == MP_LAYOUT_TRACK_LIST)
{
- fid = mp_util_get_fid_by_handle(layout_data, handle);
- if (layout_data->track_type == AUDIO_SVC_TRACK_BY_PLAYLIST)
+ if (layout_data->track_type == MP_TRACK_BY_PLAYLIST)
{
- int uid = 0;
- audio_svc_playlist_item_get_val(handle, 0, AUDIO_SVC_PLAYLIST_ITEM_UID, &uid, -1);
-
- ret = audio_svc_remove_item_from_playlist_by_uid(ad->media_svc_handle, layout_data->playlist_id, uid);
- if (ret != AUDIO_SVC_ERROR_NONE)
- result = false;
- else
- result = true;
+ int member_id = 0;
+ ret = mp_media_info_get_playlist_member_id(handle, &member_id);
+ mp_media_info_playlist_remove_media(layout_data->playlist_handle, member_id);
}
- else if (layout_data->track_type == AUDIO_SVC_TRACK_BY_ADDED_TIME)
+ else if (layout_data->track_type == MP_TRACK_BY_ADDED_TIME)
{
- ret = audio_svc_update_item_metadata(ad->media_svc_handle, fid, AUDIO_SVC_TRACK_DATA_ADDED_TIME, 0, -1);
- if (ret != AUDIO_SVC_ERROR_NONE)
- result = false;
- else
- result = true;
+ ret = mp_media_info_set_added_time(handle, 0);
}
- else if (layout_data->track_type == AUDIO_SVC_TRACK_BY_PLAYED_TIME)
+ else if (layout_data->track_type == MP_TRACK_BY_FAVORITE)
{
- ret = audio_svc_update_item_metadata(ad->media_svc_handle, fid, AUDIO_SVC_TRACK_DATA_PLAYED_TIME, 0. - 1);
- if (ret != AUDIO_SVC_ERROR_NONE)
- result = false;
- else
- result = true;
+ ret = mp_media_info_set_favorite(handle, false);
}
- else if (layout_data->track_type == AUDIO_SVC_TRACK_BY_PLAYED_COUNT)
+ else if (layout_data->track_type == MP_TRACK_BY_PLAYED_TIME)
{
- ret = audio_svc_update_item_metadata(ad->media_svc_handle, fid, AUDIO_SVC_TRACK_DATA_PLAYED_COUNT, 0, -1);
- if (ret != AUDIO_SVC_ERROR_NONE)
- result = false;
- else
- result = true;
+ ret = mp_media_info_set_played_time(handle, 0);
+ }
+ else if (layout_data->track_type == MP_TRACK_BY_PLAYED_COUNT)
+ {
+ ret = mp_media_info_set_played_count(handle, 0);
}
else
{
+ fid = mp_util_get_fid_by_handle(layout_data, handle);
if (MP_FILE_DELETE_ERR_NONE != mp_util_delete_track(ad, fid, NULL, FALSE))
- result = false;
- else
- result = true;
+ ret = -1;
}
+ if (ret != 0)
+ result = false;
+ else
+ result = true;
}
else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
{
else if (layout_data->category == MP_LAYOUT_PLAYLIST_LIST)
{
int plst_id = 0;
- ret = audio_svc_playlist_get_val(handle, 0, AUDIO_SVC_PLAYLIST_ID, &plst_id, -1);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
+ ret = mp_media_info_group_get_playlist_id(handle, &plst_id);
+ mp_retm_if(ret != 0, "Fail to get value");
- ret = audio_svc_delete_playlist(ad->media_svc_handle, plst_id);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to delete playlist");
+ ret = mp_media_info_playlist_delete_from_db(plst_id);
+ mp_retm_if(ret != 0, "Fail to delete playlist");
}
if (result)
layout_data->item_count--;
/* update last view when change album track view or artist track view */
- if (AUDIO_SVC_TRACK_BY_ALBUM == layout_data->track_type
- || AUDIO_SVC_TRACK_BY_ARTIST == layout_data->track_type) {
+ if (MP_TRACK_BY_ALBUM == layout_data->track_type
+ || MP_TRACK_BY_ARTIST == layout_data->track_type) {
layout_data->album_delete_flag = TRUE;
mp_view_manager_update_list_contents(layout_data->view_data, FALSE);
layout_data->album_delete_flag = FALSE;
mp_view_layout_update(layout_data->layout);
else
{
- if (AUDIO_SVC_TRACK_BY_ARTIST == layout_data->track_type) {
- int index = -1;
- int sub_index = -1;
- bool ret_val = FALSE;
- /* get group index and sub index when the status is artist album */
- ret_val = mp_common_track_get_aa_index(0, layout_data, it, FALSE);
- if (ret_val) {
- index = layout_data->selected_group_index;
- sub_index = layout_data->selected_album_sub_index;
+ if (MP_TRACK_BY_ARTIST == layout_data->track_type) {
+ if(!elm_genlist_item_parent_get(elm_genlist_item_next_get(it))
+ && !elm_genlist_item_parent_get(elm_genlist_item_prev_get(it)))
+ {
+ elm_object_item_del(elm_genlist_item_parent_get(it));
}
- DEBUG_TRACE("index=%d, sub_index=%d, ret_val=%d", index, sub_index, ret_val);
- if(ret_val) {
- --layout_data->aa_item_count[index];
- if (layout_data->aa_item_count[index] < 1) {
- /* delete group title if this album have no item */
- elm_object_item_del(layout_data->aa_group[index]);
- } else {
- /* update group title */
- elm_genlist_item_item_class_update(layout_data->aa_group[index],
- layout_data->aa_group_itc);
- }
+ else
+ {
+ elm_genlist_item_update(elm_genlist_item_parent_get(it));
}
- } else if (AUDIO_SVC_TRACK_BY_ALBUM == layout_data->track_type) {
+ } else if (MP_TRACK_BY_ALBUM == layout_data->track_type) {
/* update group title */
- elm_genlist_item_item_class_update(layout_data->album_group,
- layout_data->album_group_itc);
+ elm_genlist_item_update(layout_data->album_group);
}
elm_object_item_del(it);
layout_data->is_item_del = true;
+
}
}
MP_CHECK(layout_data->view_data);
- if(layout_data->category == MP_LAYOUT_TRACK_LIST
- && layout_data->view_data->view_type == MP_VIEW_TYPE_PLAYLIST)
- mp_util_create_notify(layout_data->ad, GET_SYS_STR("IDS_COM_POP_REMOVED"));
- else
- mp_util_create_notify(layout_data->ad, GET_SYS_STR("IDS_COM_POP_DELETED"));
+ mp_util_create_notify(layout_data->ad, GET_SYS_STR("IDS_COM_POP_DELETED"));
}
else
mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"));
}
}
+#endif
+
+int
+_mp_menu_set_isf_entry(mp_layout_data_t * layout_data)
+{
+
+ char *init_str = NULL;
+
+ init_str = elm_entry_utf8_to_markup(layout_data->old_name);
+
+
+ if (init_str)
+ {
+ elm_entry_entry_set(layout_data->isf_entry, init_str);
+ g_free(init_str);
+ init_str = NULL;
+ }
+ else
+ {
+ DEBUG_TRACE("+++++++ the init str for entry is empty!");
+ elm_entry_entry_set(layout_data->isf_entry, "");
+ }
+ return 0;
+}
+
+void
+mp_menu_share_list_select_cb(void *data, Evas_Object * obj, void *event_info)
+{
+ mp_layout_data_t *layout_data = (mp_layout_data_t *) data;
+
+ MP_CHECK(layout_data);
+ MP_CHECK_LAYOUT_DATA(layout_data);
+
+ const char *label = elm_object_item_data_get((Elm_Object_Item *) event_info);
+
+ if (label)
+ {
+ GString *path = NULL;
+ char *path_name = NULL;
+ char *fmt = NULL;
+
+ if (g_strcmp0(label, BLUETOOTH_SYS) == 0 || g_strcmp0(label, NFC_SYS) == 0)
+ fmt = "?%s";
+ else if ( !g_strcmp0(label, EMAIL_SYS) ||!g_strcmp0(label, MESSAGE_SYS))
+ fmt = "\n%s";
+#ifdef MP_FEATURE_WIFI_SHARE
+ else if (g_strcmp0(label, WIFI_SYS) == 0)
+ fmt = "|%s";
+#endif
+ else
+ {
+ ERROR_TRACE("not available");
+ return;
+ }
+
+ mp_retm_if(layout_data->genlist == NULL, "genlist is NULL");
+
+ Elm_Object_Item *first_item = elm_genlist_first_item_get(layout_data->genlist);
+ MP_CHECK(first_item);
+
+ Elm_Object_Item *current_item = NULL;
+ Elm_Object_Item *next_item = NULL;
+ mp_genlist_item_data_t *gl_item = NULL;
+ int i = 0;
+
+ if (layout_data->checked_count < 1)
+ {
+ ERROR_TRACE("There is no seleted Item");
+ return;
+ }
+
+ MP_GENLIST_CHECK_FOREACH_SAFE(first_item, current_item, next_item, gl_item)
+ {
+ if(elm_genlist_item_select_mode_get(current_item) == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
+ continue;
+
+ if (gl_item->checked)
+ {
+ mp_media_info_h item = (gl_item->handle);
+ MP_CHECK(item);
+
+ if (item)
+ {
+
+ int ret = 0;
+ ret = mp_media_info_get_file_path(item, &path_name);
+ if (ret != 0)
+ {
+ DEBUG_TRACE("Fail to get file path... ");
+ continue;
+ }
+
+ if (path_name)
+ {
+ if (path == NULL)
+ {
+ path = g_string_new(path_name);
+ }
+ else
+ {
+ g_string_append_printf(path, fmt, path_name);
+ }
+ }
+ else
+ {
+ ERROR_TRACE("path name is NULL");
+ continue;
+ }
+
+
+ }
+ else
+ {
+ ERROR_TRACE("item_data is NULL");
+ return;
+ }
+ i++;
+ }
+ }
+
+ if (path && path->str)
+ {
+ DEBUG_TRACE("path is [%s]", path->str);
+
+ if (g_strcmp0(label, EMAIL_SYS) == 0)
+ mp_ug_email_attatch_file(path->str, layout_data->ad);
+ else if(g_strcmp0(label, MESSAGE_SYS) == 0)
+ mp_ug_message_attatch_file(path->str, layout_data->ad);
+ else if(g_strcmp0(label, BLUETOOTH_SYS) == 0)
+ mp_ug_bt_attatch_file(path->str, i, layout_data->ad);
+#ifdef MP_FEATURE_WIFI_SHARE
+ else if(g_strcmp0(label, WIFI_SYS) == 0)
+ mp_ug_wifi_attatch_file(path->str, i, layout_data->ad);
+#endif
+ g_string_free(path, TRUE);
+ }
+ else
+ {
+ ERROR_TRACE("path is NULL");
+ }
+ }
+
+ mp_popup_destroy(layout_data->ad);
+}
+
+void
+mp_menu_share_select_cb(void *data, Evas_Object * obj, void *event_info)
+{
+ char *path = NULL; //do not free
+ struct appdata *ad = NULL;
+ music_list_item *item = NULL;
+
+ const char *label = elm_object_item_data_get((Elm_Object_Item *) event_info);
+ mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
+
+ if (layout_data)
+ {
+ MP_CHECK_LAYOUT_DATA(layout_data);
+ mp_media_info_h handle = NULL;
+ handle = data;
+ ad = layout_data->ad;
+ path = mp_util_get_path_by_handle(layout_data, handle);
+ MP_CHECK(path);
+
+ mp_debug("path =%s", path);
+ }
+ else
+ {
+ ad = data;
+ MP_CHECK(ad);
+
+ item = mp_play_list_get_current_item(ad->playing_list);
+ MP_CHECK(item);
+
+ path = item->filename;
+ }
+
+ if (label)
+ {
+ DEBUG_TRACE("%s selected", label);
+
+ if (g_strcmp0(label, BLUETOOTH_SYS) == 0)
+ {
+ mp_ug_bt_attatch_file(path, 1, ad);
+ }
+ else if (g_strcmp0(label, EMAIL_SYS) == 0)
+ {
+ mp_ug_email_attatch_file(path, ad);
+ }
+ else if (g_strcmp0(label, MESSAGE_SYS) == 0)
+ mp_ug_message_attatch_file(path, ad);
+#ifdef MP_FEATURE_WIFI_SHARE
+ else if (g_strcmp0(label, WIFI_SYS) == 0)
+ mp_ug_wifi_attatch_file(path, 1, ad);
+#endif
+ }
+
+ mp_popup_destroy(ad);
+}
+
+static int
+_mp_menu_set_caller_rington(char *path)
+{
+ int ret = -1;
+ bool is_drm = FALSE;
+ char *prev_ring_tone_path = NULL;
+
+ //drm check..
+ prev_ring_tone_path = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
+ if (prev_ring_tone_path && mp_drm_file_right(prev_ring_tone_path))
+ {
+ mp_drm_request_setas_ringtone(prev_ring_tone_path, SETAS_REQUEST_UNREGISTER);
+ free(prev_ring_tone_path);
+ }
+
+ if (mp_drm_file_right(path))
+ {
+ if (!mp_drm_request_setas_ringtone(path, SETAS_REQUEST_CHECK_STATUS))
+ return -1;
+ is_drm = true;
+ }
+
+ ret = vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, path);
+
+ if (is_drm)
+ mp_drm_request_setas_ringtone(path, SETAS_REQUEST_REGISTER);
+
+ return ret;
+
+}
+
+void
+mp_menu_set_as_select_cb(void *data, Evas_Object * obj, void *event_info)
+{
+ int ret = 0;
+ char *path = NULL; //do not free
+ struct appdata *ad = NULL;
+ music_list_item *item = NULL;
+
+ const char *label = elm_object_item_data_get((Elm_Object_Item *) event_info);
+ mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
+
+ if (layout_data)
+ {
+ MP_CHECK_LAYOUT_DATA(layout_data);
+ mp_media_info_h handle = NULL;
+ handle = data;
+ ad = layout_data->ad;
+ path = mp_util_get_path_by_handle(layout_data, handle);
+ }
+ else
+ {
+ ad = data;
+ MP_CHECK(ad);
+
+ item = mp_play_list_get_current_item(ad->playing_list);
+ MP_CHECK(item);
+
+ path = item->filename;
+ }
+
+ if (label)
+ {
+ DEBUG_TRACE("%s selected", label);
+ if (g_strcmp0(label, GET_STR(CALLER_RINGTONE)) == 0)
+ {
+ mp_ug_contact_user_sel(path, ad);
+ }
+ else if (g_strcmp0(label, GET_STR(CALL_RINGTONE)) == 0)
+ {
+ char *popup_txt = NULL;
+
+ DEBUG_TRACE("path =%s", path);
+
+ ret = _mp_menu_set_caller_rington(path);
+
+ if (!ret)
+ popup_txt = GET_STR("IDS_MUSIC_POP_SET_AS_CALLER_RINGTONE");
+ else
+ popup_txt = GET_STR("IDS_MUSIC_POP_UNABLE_TO_SET_AS_RINGTONE");
+
+ mp_widget_text_popup(ad, popup_txt);
+
+ }
+ }
+
+ mp_popup_destroy(ad);
+
+ return;
+}
+
+void
+mp_menu_share_cb(void *data, Evas_Object * obj, void *event_info)
+{
+ DEBUG_TRACE("");
+
+ if (data == NULL)
+ return;
+ struct appdata *ad = NULL;
+
+ Evas_Object *share_popup = NULL;
+ Evas_Object *genlist = NULL;
+
+ mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
+
+ char *file_name = NULL;
+
+ if (layout_data)
+ {
+ MP_CHECK_LAYOUT_DATA(layout_data);
+ mp_retm_if(layout_data->ad->navi_effect_in_progress, "navi effect in progress");
+ ad = layout_data->ad;
+
+ mp_media_info_h handle = NULL;
+ handle = data;
+ ad = layout_data->ad;
+ file_name = mp_util_get_path_by_handle(layout_data, handle);
+
+ if (mp_drm_check_foward_lock(file_name))
+ {
+ mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"));
+ return;
+ }
+
+ share_popup = mp_genlist_popup_create(ad->win_main, MP_POPUP_PV_SHARE, data, ad);
+ MP_CHECK(share_popup);
+ genlist = evas_object_data_get(share_popup, "genlist");
+ evas_object_data_set(genlist, "layout_data", layout_data);
+
+ }
+ else
+ {
+ ad = data;
+ mp_retm_if(ad->navi_effect_in_progress, "navi effect in progress");
+ music_list_item *item = mp_play_list_get_current_item(ad->playing_list);
+
+ MP_CHECK(item);
+
+ mp_debug("excuete by list view %s", item->filename);
+
+ if (mp_drm_check_foward_lock(item->filename))
+ {
+ mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_SHARE_DRM_FILE"));
+ return;
+ }
+
+ share_popup = mp_genlist_popup_create(ad->win_main, MP_POPUP_PV_SHARE, data, ad);
+ MP_CHECK(share_popup);
+ genlist = evas_object_data_get(share_popup, "genlist");
+ }
+
+ return;
+
+}
+
+void
+mp_menu_set_cb(void *data, Evas_Object * obj, void *event_info)
+{
+ DEBUG_TRACE("");
+
+ if (data == NULL)
+ return;
+ struct appdata *ad = NULL;
+
+ mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
+
+ if (layout_data)
+ {
+ MP_CHECK_LAYOUT_DATA(layout_data);
+ ad = layout_data->ad;
+ }
+ else
+ ad = data;
+
+ mp_retm_if(ad->navi_effect_in_progress, "navi effect in progress");
+
+ Evas_Object *popup;
+
+ if (layout_data)
+ popup = mp_genlist_popup_create(ad->win_main, MP_POPUP_PV_SET_AS, data, ad);
+ else
+ popup = mp_genlist_popup_create(ad->win_main, MP_POPUP_PV_SET_AS_INCLUDE_ADD_TO_HOME, data, ad);
+
+ if (layout_data)
+ {
+ Evas_Object *genlist = evas_object_data_get(popup, "genlist");
+ evas_object_data_set(genlist, "layout_data", layout_data);
+ }
+
+ return;
+
+}
+
+#ifndef MP_SOUND_PLAYER
void
mp_menu_delete_cb(void *data, Evas_Object * obj, void *event_info)
{
MP_CHECK(layout_data);
MP_CHECK_LAYOUT_DATA(layout_data);
- AudioHandleType *handle = NULL;
- handle = (AudioHandleType *) data;
+ mp_media_info_h handle = NULL;
+ handle = data;
ad = layout_data->ad;
- Evas_Object *popup = elm_popup_add(ad->win_main);
+ Evas_Object *popup = mp_popup_create(ad->win_main, MP_POPUP_NORMAL, NULL, handle, _mp_menu_excute_delete_cb, ad);
ad->popup_delete = popup;
evas_object_data_set(popup, "layout_data", layout_data);
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- mp_popup_desc_set(popup, GET_SYS_STR("IDS_COM_POP_DELETE_Q"));
- mp_popup_set_response_cb(popup, _mp_menu_excute_delete_cb, handle);
- mp_popup_button_set(popup, "button1", GET_SYS_STR("IDS_COM_SK_YES"), MP_POPUP_YES);
- mp_popup_button_set(popup, "button2", GET_SYS_STR("IDS_COM_SK_NO"), MP_POPUP_NO);
+
+ elm_object_text_set(popup, GET_SYS_STR("IDS_COM_POP_DELETE_Q"));
+
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_BODY_DELETE"), MP_POPUP_YES);
+ mp_popup_button_set(popup, MP_POPUP_BTN_2, GET_SYS_STR("IDS_COM_SK_CANCEL"), MP_POPUP_NO);
evas_object_show(popup);
}
{
DEBUG_TRACE_FUNC();
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
music_list_item *item = NULL;
struct appdata *ad = NULL;
- AudioHandleType *handle = NULL;
+ mp_media_info_h handle = NULL;
Evas_Object *popup = NULL;
{
evas_object_data_set(genlist, "layout_data", layout_data);
- handle = (AudioHandleType *) data;
+ handle = data;
if (layout_data->category == MP_LAYOUT_TRACK_LIST)
{
evas_object_data_set(genlist, MP_MENU_FID, (void *)fid); //set request fid
}
else
- evas_object_data_set(genlist, MP_MENU_GROUP_ITEM_HANDLER, (void *)handle); //set group item handler
-
+ {
+ evas_object_data_set(genlist, MP_MENU_GROUP_ITEM_HANDLER, handle); //set group item handler
+ }
evas_object_data_set(genlist, "layout_data", layout_data);
}
else
mp_genlist_popup_item_append(popup, GET_STR("IDS_MUSIC_OPT_CREATE_PLAYLIST"), NULL,
_mp_menu_add_playlist_create_select_cb, ad);
- err = audio_svc_count_playlist(ad->media_svc_handle, "", "", &count);
+ err = mp_media_info_group_list_count(MP_GROUP_BY_PLAYLIST, NULL, NULL, &count);
- if ((err != AUDIO_SVC_ERROR_NONE) || (count < 0))
+ if ((err != 0) || (count < 0))
{
- ERROR_TRACE("Error in audio_svc_list_get_count (%d)\n", err);
+ ERROR_TRACE("Error in mp_media_info_group_list_count (%d)\n", err);
return;
}
if (count)
{
- AudioHandleType *playlists = NULL; //must be free
- ret = audio_svc_playlist_new(&playlists, count);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to make new playlist");
- evas_object_data_set(popup, MP_MENU_POPUP_PLAY_LIST_HANDLER, (void *)playlists); //set request handle id for support group item
+ mp_media_list_h playlists = NULL; //must be free
- ret = audio_svc_get_playlist(ad->media_svc_handle, "", "", 0, count, playlists);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get playlist");
+ ret = mp_media_info_group_list_create(&playlists, MP_GROUP_BY_PLAYLIST, NULL, NULL, 0, count);
+ mp_retm_if(ret != 0, "Fail to get playlist");
+ evas_object_data_set(popup, MP_MENU_POPUP_PLAY_LIST_HANDLER, (void *)playlists); //set request handle id for support group item
for (i = 0; i < count; i++)
{
/* it should be released in a proper place */
- AudioHandleType *plst = NULL;
+ mp_media_info_h plst = NULL;
char *name = NULL;
- int size;
- ret = audio_svc_playlist_get_item(playlists, i, &plst);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get item");
+ plst = mp_media_info_group_list_nth_item(playlists, i);
+ mp_retm_if(!plst, "Fail to get item");
- ret = audio_svc_playlist_get_val(plst, 0, AUDIO_SVC_PLAYLIST_NAME, &name, &size, -1);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
+ ret = mp_media_info_group_get_main_info(plst, &name);
+ mp_retm_if(ret != 0, "Fail to get value");
mp_genlist_popup_item_append(popup, name, NULL, _mp_menu_add_playlist_select_cb, (void *)plst);
}
mp_evas_object_del(popup);
return;
}
+#endif
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
-#include <aul.h>
-#include <utilX.h>
#include <syspopup_caller.h>
+#include <sound_manager.h>
#include "music.h"
+#include "mp-ta.h"
#include "mp-player-control.h"
#include "mp-player-mgr.h"
-#include <mm_sound.h>
#include "mp-player-drm.h"
#include "mp-play-view.h"
#include "mp-item.h"
-#include "mp-common.h"
#include "mp-play-list.h"
-#include "mp-library.h"
#include "mp-widget.h"
#include "mp-app.h"
#include "mp-streaming-mgr.h"
#include "mp-util.h"
#include "mp-player-debug.h"
-#include <pmapi.h>
-
+#include "mp-minicontroller.h"
#include "mp-play.h"
+#include "mp-setting-ctrl.h"
+
+#ifndef MP_SOUND_PLAYER
+#include "mp-common.h"
+#include "mp-library.h"
+#endif
static bool
_mp_play_item_set(void *data, char * fid)
return true;
}
-static Eina_Bool
-_mp_play_set_pos(void *data)
-{
- struct appdata *ad = (struct appdata *)data;
- MP_CHECK_FALSE(ad);
-
- char play_time[16] = { 0, };
- int pos = mp_player_mgr_get_position();
- int duration = mp_player_mgr_get_duration();
- snprintf(play_time, sizeof(play_time), "%" PLAY_TIME_FORMAT, PLAY_TIME_ARGS(pos/1000));
-
- if(vconf_set_str(MP_EXT_CUR_POS, play_time))
- WARN_TRACE("fail to set time...");
- if(duration>0)
- {
- if(vconf_set_dbl(MP_EXT_CUR_PROGRESS_POS, pos/(double)duration))
- WARN_TRACE("fail to ratio");
- }
- else
- vconf_set_dbl(MP_EXT_CUR_PROGRESS_POS, 0.0);
-
- return EINA_TRUE;
-}
-
bool
mp_play_current_file(void *data)
{
startfunc;
struct appdata *ad = data;
MP_CHECK_FALSE(ad);
+ MP_CHECK_FALSE(ad->player_state == PLAY_STATE_READY);
- if (ad->player_state != PLAY_STATE_READY)
- return FALSE;
music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
MP_CHECK_FALSE(current_item);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_player_mgr_play", 0);
if(!ad->paused_by_user)
{
if (!mp_player_mgr_play(ad))
{
DEBUG_TRACE("stay in pause state..");
}
+ MP_TA_ACUM_ITEM_END(" mp_player_mgr_play", 0);
+
+ if(ad->is_focus_out)
+ {
+ if(!ad->win_minicon)
+ mp_minicontroller_create(ad);
+ else
+ mp_minicontroller_show(ad);
+ }
+ if (ad->b_minicontroller_show)
+ mp_minicontroller_update(ad);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_setting_set_albumart_path", 0);
mp_setting_set_albumart_path(current_item->albumart);
+ MP_TA_ACUM_ITEM_END(" mp_setting_set_albumart_path", 0);
- if (!mp_item_update_db(ad->media_svc_handle, current_item->key_id))
+ MP_TA_ACUM_ITEM_BEGIN(" mp_item_update_db", 0);
+#ifdef MP_FEATURE_ALLSHARE
+ if (ad->playing_list->list_type != MP_PLST_TYPE_MSS)
{
- WARN_TRACE("Error when update db");
+#endif
+ if (!mp_item_update_db(current_item->key_id))
+ {
+ WARN_TRACE("Error when update db");
+ }
+#ifdef MP_FEATURE_ALLSHARE
}
+#endif
+ MP_TA_ACUM_ITEM_END(" mp_item_update_db", 0);
return TRUE;
}
struct appdata *ad = data;
mp_play_view_update_progressbar(ad);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_play_current_file", 0);
if (!mp_play_current_file(ad))
return FALSE;
+ MP_TA_ACUM_ITEM_END(" mp_play_current_file", 0);
+#ifndef MP_SOUND_PLAYER
mp_library_now_playing_set(ad);
-
+#endif
mp_setting_save_now_playing(ad);
music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
struct appdata *ad = data;
mp_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+ MP_TA_ACUM_ITEM_BEGIN(" mp_player_control_ready_new_file", 0);
if (!mp_player_control_ready_new_file(ad, check_drm))
{
return FALSE;
}
+ MP_TA_ACUM_ITEM_END(" mp_player_control_ready_new_file", 0);
return TRUE;
}
if (ad->playing_list->current_item)
{
- if (g_strcmp0(ad->latest_playing_key_id, fid))
+ if (g_strcmp0(ad->latest_playing_key_id, fid)) //playing a new file
{
mp_debug("current key = %s it->key id = %s\n", ad->latest_playing_key_id, fid);
if (ad->playing_list->list_type == MP_PLST_TYPE_PATH)
{
+#ifdef MP_SOUND_PLAYER
+ if (ad->is_focus_out)
+ mp_app_exit(ad);
+#endif
return;
}
else
if (ad->playing_view)
{
- ad->playing_view->flick_direction = 0;
+ ad->playing_view->flick_direction = 0; //reset flick_direction
}
- if(!ad->live_pos_timer)
- ad->live_pos_timer = ecore_timer_add(1, _mp_play_set_pos, ad);
+ music_list_item * item = mp_play_list_get_current_item(ad->playing_list);
+ MP_CHECK(item);
ad->player_state = PLAY_STATE_PLAYING;
+
vconf_set_int(VCONFKEY_MUSIC_STATE, VCONFKEY_MUSIC_PLAY);
- mp_drm_start_consumption(mp_play_list_get_current_item(ad->playing_list)->filename);
- pm_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
+ mp_util_sleep_lock_set(TRUE);
mp_play_control_visible_set(ad, FALSE);;
+ if(ad->is_focus_out)
+ {
+ if(!ad->win_minicon)
+ mp_minicontroller_create(ad);
+ else
+ mp_minicontroller_show(ad);
+ }
+ if (ad->b_minicontroller_show)
+ mp_minicontroller_update(ad);
+
+#ifdef MP_SOUND_PLAYER
+ mp_play_view_progress_timer_thaw(ad);
+#else
mp_view_manager_thaw_progress_timer(ad);
+#endif
- mp_util_grab_mm_keys(ad);
+ mp_app_grab_mm_keys(ad);
endfunc;
}
struct appdata *ad = data;
mp_retm_if(ad == NULL, "appdata is NULL");
- mp_ecore_timer_del(ad->live_pos_timer);
-
ad->player_state = PLAY_STATE_PAUSED;
- vconf_set_int(VCONFKEY_MUSIC_STATE, VCONFKEY_MUSIC_PAUSE);
- mp_drm_pause_consumption();
- pm_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
+
+ if (!ad->paused_by_other_player)
+ vconf_set_int(VCONFKEY_MUSIC_STATE, VCONFKEY_MUSIC_PAUSE);
+ mp_util_sleep_lock_set(FALSE);
mp_play_control_visible_set(ad, TRUE);
+ if (ad->b_minicontroller_show)
+ mp_minicontroller_update(ad);
+
mp_play_view_update_progressbar(ad);
+#ifdef MP_SOUND_PLAYER
+ mp_play_view_progress_timer_freeze(ad);
+#else
mp_view_manager_freeze_progress_timer(ad);
+#endif
endfunc;
}
struct appdata *ad = data;
mp_retm_if(ad == NULL, "appdata is NULL");
- mp_ecore_timer_del(ad->live_pos_timer);
-
ad->player_state = PLAY_STATE_STOP;
if (!ad->freeze_indicator_icon)
{
- vconf_set_int(VCONFKEY_MUSIC_STATE, VCONFKEY_MUSIC_STOP);
+ if (!mp_util_is_other_player_playing())
+ vconf_set_int(VCONFKEY_MUSIC_STATE, VCONFKEY_MUSIC_STOP);
+ mp_minicontroller_destroy(ad);
+ }
+ else
+ {
+ if (ad->b_minicontroller_show)
+ mp_minicontroller_update(ad);
}
- vconf_set_dbl(MP_EXT_CUR_PROGRESS_POS, 0.0);
- mp_drm_stop_consumption();
- mp_drm_set_consumption(FALSE);
- pm_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
+ mp_util_sleep_lock_set(FALSE);
+
+#ifdef MP_SOUND_PLAYER
+ ad->music_pos = 0;
+ mp_play_view_update_progressbar(ad);
+ mp_play_view_progress_timer_freeze(ad);
+#else
if (mp_view_manager_is_play_view(ad))
{
ad->music_pos = 0;
}
else
mp_view_manager_freeze_progress_timer(ad);
+#endif
mp_play_control_visible_set(ad, TRUE);
endfunc;
struct appdata *ad = data;
mp_retm_if(ad == NULL, "appdata is NULL");
- if(!ad->live_pos_timer)
- ad->live_pos_timer = ecore_timer_add(1, _mp_play_set_pos, ad);
-
ad->player_state = PLAY_STATE_PLAYING;
+
vconf_set_int(VCONFKEY_MUSIC_STATE, VCONFKEY_MUSIC_PLAY);
- mp_drm_resume_consumption();
- pm_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
+ mp_util_sleep_lock_set(TRUE);
mp_play_control_visible_set(ad, FALSE);
+ if(ad->is_focus_out)
+ {
+ if(!ad->win_minicon)
+ mp_minicontroller_create(ad);
+ else
+ mp_minicontroller_show(ad);
+ }
+ if (ad->b_minicontroller_show)
+ mp_minicontroller_update(ad);
+#ifdef MP_SOUND_PLAYER
+ mp_play_view_progress_timer_thaw(ad);
+#else
mp_view_manager_thaw_progress_timer(ad);
- mp_util_grab_mm_keys(ad);
+#endif
+ mp_app_grab_mm_keys(ad);
+
endfunc;
}
}
mp_play_list_clear_play_list(&ad->playing_list);
-
+#ifndef MP_SOUND_PLAYER
mp_library_now_playing_hide(ad);
mp_library_update_view(ad);
+#endif
return;
}
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#include <stdio.h>
+#include <malloc.h>
+#include <string.h>
+#include <assert.h>
+#include <time.h>
+#include <sys/time.h>
+#include <sys/utsname.h>
+#include <sys/resource.h>
+#include <unistd.h>
+#include <stdarg.h>
+
+#include "mp-ta.h"
+
+#define MP_TA_BUFF_SIZE 256
+
+#ifdef ENABLE_MP_TA
+// internal func.
+static void __free_cps(void);
+static int __get_cp_index(char *name);
+
+static void __free_accums(void);
+static int __get_accum_index(char *name);
+
+// global var.
+mp_ta_checkpoint **mm_g_cps = NULL;
+static int mm_g_cp_index = 0;
+
+mp_ta_accum_item **mm_g_accums = NULL;
+static int mm_g_accum_index = 0;
+static int mm_g_accum_longest_name = 0;
+static unsigned long mm_g_accum_first_time = 0xFFFFFFFF; // jmlee
+static int mm_g_enable = 1;
+
+int
+mp_ta_init(void)
+{
+ if(!ecore_file_exists(MP_TA_ENABLE_FILE))
+ return -1;
+
+ if (mm_g_accums)
+ return 0;
+
+ mm_g_cps = (mp_ta_checkpoint **) malloc(MP_TA_MAX_CHECKPOINT * sizeof(mp_ta_checkpoint *));
+ if (!mm_g_cps)
+ return -1;
+
+ mm_g_accums = (mp_ta_accum_item **) malloc(MP_TA_MAX_CHECKPOINT * sizeof(mp_ta_accum_item *));
+ if (!mm_g_accums)
+ return -1;
+
+ mm_g_accum_first_time = 0xFFFFFFFF;
+
+ return 0;
+}
+
+int
+mp_ta_release(void)
+{
+ if (!mm_g_accums)
+ return 0;
+
+ __free_cps();
+ __free_accums();
+
+ mm_g_accum_first_time = 0xFFFFFFFF;
+
+ return 0;
+}
+
+void
+mp_ta_set_enable(int enable)
+{
+ printf("MP_TA : setting enable to %d\n", enable);
+ mm_g_enable = enable;
+}
+
+int
+mp_ta_get_numof_checkpoints()
+{
+ return mm_g_cp_index;
+}
+
+char *
+mp_ta_fmt(const char *fmt, ...)
+{
+ static char ta_buf[512];
+ va_list args;
+
+ memset(ta_buf, '\0', 512);
+
+ va_start(args, fmt);
+ vsnprintf(ta_buf, 512, fmt, args);
+ va_end(args);
+
+ return ta_buf;
+}
+
+
+int
+mp_ta_add_checkpoint(char *name, int show, char *filename, int line)
+{
+ mp_ta_checkpoint *cp = NULL;
+ struct timeval t;
+
+ if (!mm_g_enable)
+ return -1;
+
+ if (!mm_g_accums)
+ return 0;
+
+ if (mm_g_cp_index == MP_TA_MAX_CHECKPOINT)
+ return -1;
+
+ if (!name)
+ return -1;
+
+ if (strlen(name) == 0)
+ return -1;
+
+ cp = (mp_ta_checkpoint *) malloc(sizeof(mp_ta_checkpoint));
+ if (!cp)
+ return -1;
+
+ int name_len = strlen(name);
+ cp->name = (char *)malloc(name_len + 1);
+ if (!cp->name)
+ {
+ free(cp);
+ return -1;
+ }
+ strncpy(cp->name, name, name_len);
+ cp->name[name_len] = 0;
+ if (show)
+ printf("[CHECK-POINT] %s...(%s:%d)\n", name, filename, line);
+
+ gettimeofday(&t, NULL);
+ cp->timestamp = t.tv_sec * 1000000L + t.tv_usec;
+#ifdef MP_TA_UNIT_MSEC
+ cp->timestamp = (cp->timestamp >= 1000) ? cp->timestamp / 1000 : 0;
+#endif
+
+ mm_g_cps[mm_g_cp_index] = cp;
+
+ mm_g_cp_index++;
+
+ return 0;
+}
+
+void
+mp_ta_show_checkpoints(void)
+{
+ int i = 0;
+ if (!mm_g_accums)
+ return;
+
+ printf("BEGIN RESULT ============================\n");
+ for (i = 0; i < mm_g_cp_index; i++)
+ {
+ printf("[%d] %s : %ld us.\n", i, mm_g_cps[i]->name, mm_g_cps[i]->timestamp);
+ }
+ printf("END RESULT ============================\n");
+}
+
+void
+mp_ta_show_diff(char *name1, char *name2)
+{
+ if (!mm_g_accums)
+ return;
+
+
+ printf("Time takes from [%s] to [%s] : %ld us.\n", name1, name2, mp_ta_get_diff(name1, name2));
+}
+
+unsigned long
+mp_ta_get_diff(char *name1, char *name2)
+{
+ int cp1, cp2;
+
+ if (!mm_g_accums)
+ return 0;
+
+
+ // fail if bad param.
+ if (!name1 || !name2)
+ return -1;
+
+ // fail if same.
+ if (strcmp(name1, name2) == 0)
+ return -1;
+
+ // get index
+ if ((cp1 = __get_cp_index(name1)) == -1)
+ return -1;
+
+ if ((cp2 = __get_cp_index(name2)) == -1)
+ return -1;
+
+ // NOTE :
+ // return value must be positive value.
+ // bcz the value of higher index of mm_g_cps always higher than lower one.
+ return mm_g_cps[cp2]->timestamp - mm_g_cps[cp1]->timestamp;
+
+}
+
+static int
+__get_cp_index(char *name)
+{
+ int i;
+
+ assert(name);
+
+ // find index
+ for (i = 0; i < mm_g_cp_index; i++)
+ {
+ if (strcmp(name, mm_g_cps[i]->name) == 0)
+ return i;
+ }
+
+ return -1;
+}
+
+static int
+__get_accum_index(char *name)
+{
+ int i;
+
+ assert(name);
+
+ // find index
+ for (i = 0; i < mm_g_accum_index; i++)
+ {
+ if (strcmp(name, mm_g_accums[i]->name) == 0)
+ return i;
+ }
+
+ return -1;
+}
+
+static void
+__free_cps(void)
+{
+ int i = 0;
+
+ if (!mm_g_cps)
+ return;
+
+ for (i = 0; i < mm_g_cp_index; i++)
+ {
+ if (mm_g_cps[i])
+ {
+ if (mm_g_cps[i]->name)
+ free(mm_g_cps[i]->name);
+
+ free(mm_g_cps[i]);
+
+ mm_g_cps[i] = NULL;
+ }
+ }
+
+ free(mm_g_cps);
+ mm_g_cps = NULL;
+
+ mm_g_cp_index = 0;
+}
+
+static void
+__free_accums(void)
+{
+ int i = 0;
+
+ if (!mm_g_accums)
+ return;
+
+ for (i = 0; i < mm_g_accum_index; i++)
+ {
+ if (mm_g_accums[i])
+ {
+ if (mm_g_accums[i]->name)
+ free(mm_g_accums[i]->name);
+
+ free(mm_g_accums[i]);
+
+ mm_g_accums[i] = NULL;
+ }
+ }
+
+ mm_g_accum_index = 0;
+ mm_g_accum_longest_name = 0;
+
+ free(mm_g_accums);
+ mm_g_accums = NULL;
+}
+
+
+int
+mp_ta_accum_item_begin(char *name, int show, char *filename, int line)
+{
+ mp_ta_accum_item *accum = NULL;
+ int index = 0;
+ int name_len = 0;
+ struct timeval t;
+
+ if (!mm_g_enable)
+ return -1;
+
+ if (!mm_g_accums)
+ return 0;
+
+
+
+ if (mm_g_accum_index == MP_TA_MAX_ACCUM)
+ return -1;
+
+ if (!name)
+ return -1;
+
+ name_len = strlen(name);
+ if (name_len == 0)
+ return -1;
+
+ // if 'name' is new one. create new item.
+ if ((index = __get_accum_index(name)) == -1)
+ {
+ accum = (mp_ta_accum_item *) malloc(sizeof(mp_ta_accum_item));
+ if (!accum)
+ return -1;
+
+ // clear first.
+ memset(accum, 0, sizeof(mp_ta_accum_item));
+ accum->elapsed_min = 0xFFFFFFFF;
+
+ accum->name = (char *)malloc(name_len + 1);
+ if (!accum->name)
+ {
+ free(accum);
+ return -1;
+ }
+ strncpy(accum->name, name, name_len);
+ accum->name[name_len] = 0;
+ // add it to list.
+ mm_g_accums[mm_g_accum_index] = accum;
+ mm_g_accum_index++;
+
+ if (mm_g_accum_longest_name < name_len)
+ mm_g_accum_longest_name = name_len;
+
+ }
+ else
+ {
+ accum = mm_g_accums[index];
+ }
+
+ // verify pairs of begin, end.
+ if (accum->on_estimate)
+ {
+ printf("[%s] is not 'end'ed!\n", accum->name);
+ accum->num_unpair++;
+ return -1;
+ }
+
+ // get timestamp
+ gettimeofday(&t, NULL);
+ accum->timestamp = t.tv_sec * 1000000L + t.tv_usec;
+#ifdef MP_TA_UNIT_MSEC
+ accum->timestamp = (accum->timestamp >= 1000) ? accum->timestamp / 1000 : 0;
+#endif
+ accum->on_estimate = 1;
+
+ if (accum->first_start == 0)
+ { // assum that timestamp never could be zero.
+ accum->first_start = accum->timestamp;
+
+ if (mm_g_accum_first_time > accum->first_start)
+ mm_g_accum_first_time = accum->first_start;
+ }
+
+ if (show)
+ printf("[ACCUM BEGIN] %s : %ld ---(%s:%d)\n", name, accum->timestamp, filename, line);
+
+ accum->num_calls++;
+
+ return 0;
+}
+
+int
+mp_ta_accum_item_end(char *name, int show, char *filename, int line)
+{
+ mp_ta_accum_item *accum = NULL;
+ unsigned int tval = 0;
+ int index = 0;
+ struct timeval t;
+
+ if (!mm_g_enable)
+ return -1;
+
+ if (!mm_g_accums)
+ return 0;
+
+
+ // get time first for more accuracy.
+ gettimeofday(&t, NULL);
+
+ if (mm_g_accum_index == MP_TA_MAX_ACCUM)
+ return -1;
+
+ if (!name)
+ return -1;
+
+ if (strlen(name) == 0)
+ return -1;
+
+ // varify the 'name' is already exist.
+ if ((index = __get_accum_index(name)) == -1)
+ {
+ printf("[%s] is not added before!\n", name);
+ return -1;
+ }
+
+ accum = mm_g_accums[index];
+
+ // verify pairs of begin, end.
+ if (!accum->on_estimate)
+ {
+ printf("[%s] is not 'begin' yet!\n", accum->name);
+ accum->num_unpair++;
+ return -1;
+ }
+
+ // get current timestamp.
+ tval = t.tv_sec * 1000000L + t.tv_usec;
+#ifdef MP_TA_UNIT_MSEC
+ tval = (tval >= 1000) ? tval / 1000 : 0;
+#endif
+
+ // update last_end
+ accum->last_end = tval;
+
+ // make get elapsed time.
+ tval = tval - accum->timestamp;
+
+ // update min/max
+ accum->elapsed_max = tval > accum->elapsed_max ? tval : accum->elapsed_max;
+ accum->elapsed_min = tval < accum->elapsed_min ? tval : accum->elapsed_min;
+
+ if (show)
+ printf("[ACCUM END] %s : %ld + %u ---(%s:%d)\n", name, accum->elapsed_accum, tval, filename, line);
+
+ // add elapsed time
+ accum->elapsed_accum += tval;
+ accum->on_estimate = 0;
+
+ return 0;
+}
+
+void
+__print_some_info(FILE * fp)
+{
+ if (!fp)
+ return;
+
+ // comment
+ {
+ fprintf(fp, "\nb~ b~ b~\n\n");
+ }
+
+ // General infomation
+ {
+ time_t t_val;
+ char hostname[MP_TA_BUFF_SIZE] = { '\0', };
+ char buf[MP_TA_BUFF_SIZE] = {'\0', };
+ struct utsname uts;
+ struct rusage r_usage;
+
+ fprintf(fp, "\n[[ General info ]]\n");
+
+ // time and date
+ time(&t_val);
+ ctime_r(&t_val, buf);
+ fprintf(fp, "Date : %s", buf);
+
+ // system
+ if (gethostname(hostname, 255) == 0 && uname(&uts) >= 0)
+ {
+ fprintf(fp, "Hostname : %s\n", hostname);
+ fprintf(fp, "System : %s\n", uts.sysname);
+ fprintf(fp, "Machine : %s\n", uts.machine);
+ fprintf(fp, "Nodename : %s\n", uts.nodename);
+ fprintf(fp, "Release : %s \n", uts.release);
+ fprintf(fp, "Version : %s \n", uts.version);
+ }
+
+ // process info.
+ fprintf(fp, "Process priority : %d\n", getpriority(PRIO_PROCESS, getpid()));
+ getrusage(RUSAGE_SELF, &r_usage);
+ fprintf(fp, "CPU usage : User = %ld.%06ld, System = %ld.%06ld\n",
+ r_usage.ru_utime.tv_sec, r_usage.ru_utime.tv_usec,
+ r_usage.ru_stime.tv_sec, r_usage.ru_stime.tv_usec);
+
+
+ }
+
+ // host environment variables
+ {
+ extern char **environ;
+ char **env = environ;
+
+ fprintf(fp, "\n[[ Host environment variables ]]\n");
+ while (*env)
+ {
+ fprintf(fp, "%s\n", *env);
+ env++;
+ }
+ }
+}
+
+void
+mp_ta_accum_show_result(int direction)
+{
+ int i = 0;
+ char format[MP_TA_BUFF_SIZE];
+ FILE *fp = stderr;
+
+ if (!mm_g_accums)
+ return;
+
+ switch (direction)
+ {
+ case MP_TA_SHOW_STDOUT:
+ fp = stdout;
+ break;
+ case MP_TA_SHOW_STDERR:
+ fp = stderr;
+ break;
+ case MP_TA_SHOW_FILE:
+ {
+ fp = fopen(MP_TA_RESULT_FILE, "wt");
+ if (!fp)
+ return;
+ }
+ }
+ __print_some_info(fp);
+
+#ifdef MP_TA_UNIT_MSEC
+ snprintf(format, sizeof(format),
+ "[%%3d] %%-%ds | \ttotal : %%4ld\tcalls : %%3ld\tavg : %%4ld\tmin : %%4ld\tmax : %%4ld\tstart : %%4lu\tend : %%4lu\tunpair : %%3ld\n",
+ mm_g_accum_longest_name);
+ fprintf(fp, "BEGIN RESULT ACCUM============================ : NumOfItems : %d, unit(msec)\n", mm_g_accum_index);
+#else
+ snprintf(format, sizeof(format),
+ "[%%3d] %%-%ds | \ttotal : %%ld\tcalls : %%ld\tavg : %%ld\tmin : %%ld\tmax : %%ld\tstart : %%lu\tend : %%lu\tunpair : %%ld\n",
+ mm_g_accum_longest_name);
+ fprintf(fp, "BEGIN RESULT ACCUM============================ : NumOfItems : %d, unit(usec)\n", mm_g_accum_index);
+#endif
+
+ for (i = 0; i < mm_g_accum_index; i++)
+ {
+ // prevent 'devide by zero' error
+ if (mm_g_accums[i]->num_calls == 0)
+ mm_g_accums[i]->num_calls = 1;
+
+ fprintf(fp, format, i, mm_g_accums[i]->name, mm_g_accums[i]->elapsed_accum, mm_g_accums[i]->num_calls, (mm_g_accums[i]->elapsed_accum == 0) ? 0 : (int)(mm_g_accums[i]->elapsed_accum / mm_g_accums[i]->num_calls), // Fix it! : devide by zero.
+ mm_g_accums[i]->elapsed_min,
+ mm_g_accums[i]->elapsed_max,
+ mm_g_accums[i]->first_start - mm_g_accum_first_time,
+ mm_g_accums[i]->last_end - mm_g_accum_first_time, mm_g_accums[i]->num_unpair);
+ }
+ fprintf(fp, "END RESULT ACCUM ============================\n");
+
+ if (direction == MP_TA_SHOW_FILE)
+ fclose(fp);
+}
+
+#endif
+//#endif //_MM_TA_C_
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <glib.h>
+#include <ui-gadget.h>
+
+#include <sys/time.h>
+#include <vconf.h>
+#include <glib.h>
+#include <fcntl.h>
+#include <app.h>
+
+#include "music.h"
+#include "mp-item.h"
+#include "mp-menu.h"
+#include "mp-ug-launch.h"
+#include "mp-define.h"
+
+#include "music.h"
+#include "mp-item.h"
+#include "mp-player-debug.h"
+#include "mp-play-view.h"
+#include "mp-widget.h"
+
+#ifdef MP_SOUND_PLAYER
+#include "sp-view-manager.h"
+#else
+#include "mp-common.h"
+#include "mp-group-view.h"
+#include "mp-view-manager.h"
+#endif
+
+#define UG_EMAIL_NAME "email-composer-efl"
+#define UG_BT_NAME "setting-bluetooth-efl"
+#define UG_MUSIC_INFO "music-info-efl"
+#define UG_MSG_NAME "msg-composer-efl"
+#ifdef MP_FEATURE_WIFI_SHARE
+#define UG_FTM_NAME "fileshare-efl"
+#endif
+#define UG_MUSIC_SETTINGS "setting-music-player-efl"
+
+#define MP_UG_INFO_PATH "path"
+#define MP_UG_INFO_ALBUMART "albumart"
+#define MP_UG_INFO_ARTIST "artist"
+#define MP_UG_INFO_ID "id"
+#define MP_UG_INFO_DESTROY "destroy"
+#define MP_UG_INFO_BACK "back"
+#define MP_UG_INFO_LOAD "load"
+#define MP_UG_INFO_ALBUMART_CLICKED "albumart_clicked"
+#define MP_UG_INFO_MEDIA_SVC_HANDLE "media_service_handle"
+
+/* for contact ug */
+#define CT_UG_REQUEST_SAVE_RINGTONE 42
+#define CT_UG_BUNDLE_TYPE "type"
+#define CT_UG_BUNDLE_PATH "ct_path"
+#define UG_CONTACTS_LIST "contacts-list-efl"
+
+static void
+_mp_ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+ startfunc;
+ Evas_Object *base, *win;
+
+ MP_CHECK(priv);
+ MP_CHECK(ug);
+
+ base = ug_get_layout(ug);
+ if (!base)
+ return;
+
+ win = ug_get_window();
+
+ switch (mode)
+ {
+ case UG_MODE_FULLVIEW:
+ evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, base);
+ evas_object_show(base);
+ break;
+ default:
+ break;
+ }
+
+ endfunc;
+}
+
+
+static void
+_mp_ug_destroy(struct appdata *ad)
+{
+ startfunc;
+
+ if (ad->ug) {
+ ug_destroy(ad->ug);
+ ad->ug = NULL;
+ }
+}
+
+static void
+_mp_ug_destroy_cb(ui_gadget_h ug, void *priv)
+{
+ startfunc;
+ if (!ug || !priv)
+ return;
+
+ struct appdata *ad = priv;
+
+ _mp_ug_destroy(ad);
+ return;
+}
+
+static ui_gadget_h
+_mp_ug_create_ug(struct appdata *ad, ui_gadget_h parent, const char *name, enum ug_mode mode, service_h service,
+ struct ug_cbs *cbs)
+{
+ startfunc;
+ MP_CHECK_NULL(ad);
+
+ ui_gadget_h ug = NULL;
+
+ ug = ug_create(parent, name, mode, service, cbs);
+
+ if (!ug)
+ {
+ ERROR_TRACE("unable to create ug %s", name);
+ mp_widget_text_popup(ad, GET_SYS_STR("IDS_COM_BODY_APPLICATION_NOT_INSTALLED"));
+ }
+ endfunc;
+ return ug;
+}
+
+int
+mp_ug_email_attatch_file(const char *filepath, void *user_data)
+{
+ startfunc;
+ struct appdata *ad = NULL;
+ service_h service = NULL;
+ struct ug_cbs cbs = { 0, };
+ int option = 0;
+
+ mp_retvm_if(filepath == NULL, -1, "file path is NULL");
+ mp_retvm_if(user_data == NULL, -1, "appdata is NULL");
+
+ ad = (struct appdata *)user_data;
+ MP_CHECK_VAL(ad, -1);
+
+ if (ad->ug)
+ {
+ ERROR_TRACE("Destory previous ui-gadget first !!!!");
+ return -1;
+ }
+ option = UG_OPT_INDICATOR_ENABLE;
+
+ UG_INIT_EFL(ad->win_main, option);
+
+ if(service_create(&service) != SERVICE_ERROR_NONE)
+ {
+ ERROR_TRACE("Error: service_create");
+ return -1;
+ }
+
+ service_add_extra_data(service, "RUN_TYPE", "5");
+ service_add_extra_data(service, "ATTACHMENT", filepath);
+
+ cbs.priv = user_data;
+ cbs.layout_cb = _mp_ug_layout_cb;
+ cbs.result_cb = NULL;
+ cbs.destroy_cb = _mp_ug_destroy_cb;
+
+
+ ad->ug = _mp_ug_create_ug(ad, NULL, UG_EMAIL_NAME, UG_MODE_FULLVIEW, service, &cbs);
+
+ service_destroy(service);
+ endfunc;
+ return 0;
+}
+
+int
+mp_ug_message_attatch_file(const char *filepath, void *user_data)
+{
+ startfunc;
+ struct appdata *ad = NULL;
+ service_h service = NULL;
+ struct ug_cbs cbs = { 0, };
+ int option = 0;
+
+ mp_retvm_if(filepath == NULL, -1, "file path is NULL");
+ mp_retvm_if(user_data == NULL, -1, "appdata is NULL");
+
+ ad = (struct appdata *)user_data;
+ MP_CHECK_VAL(ad, -1);
+
+ if (ad->ug)
+ {
+ ERROR_TRACE("Destory previous ui-gadget first !!!!");
+ return -1;
+ }
+ option = UG_OPT_INDICATOR_ENABLE;
+
+ UG_INIT_EFL(ad->win_main, option);
+
+ if(service_create(&service) != SERVICE_ERROR_NONE)
+ {
+ ERROR_TRACE("Error: service_create");
+ return -1;
+ }
+ service_add_extra_data(service, "ATTACHFILE", filepath);
+
+ cbs.priv = user_data;
+ cbs.layout_cb = _mp_ug_layout_cb;
+ cbs.result_cb = NULL;
+ cbs.destroy_cb = _mp_ug_destroy_cb;
+
+ ad->ug = _mp_ug_create_ug(ad, NULL, UG_MSG_NAME, UG_MODE_FULLVIEW, service, &cbs);
+ service_destroy(service);
+ return 0;
+}
+
+int
+mp_ug_bt_attatch_file(const char *filepath, int count, void *user_data)
+{
+ startfunc;
+ struct appdata *ad = NULL;
+ service_h service = NULL;
+ struct ug_cbs cbs = { 0, };
+ int option = 0;
+ char *file_count = NULL;
+
+ mp_retvm_if(filepath == NULL, -1, "file path is NULL");
+ mp_retvm_if(user_data == NULL, -1, "appdata is NULL");
+
+ ad = user_data;
+ if (ad->ug)
+ {
+ ERROR_TRACE("Destory previous ui-gadget first !!!!");
+ return -1;
+ }
+
+ option = UG_OPT_INDICATOR_ENABLE;
+
+ UG_INIT_EFL(ad->win_main, option);
+
+ file_count = g_strdup_printf("%d", count);
+
+ if(service_create(&service) != SERVICE_ERROR_NONE)
+ {
+ ERROR_TRACE("Error: service_create");
+ return -1;
+ }
+ service_add_extra_data(service, "launch-type", "send");
+ service_add_extra_data(service, "filecount", file_count);
+ service_add_extra_data(service, "files", filepath);
+
+ cbs.priv = user_data;
+ cbs.layout_cb = _mp_ug_layout_cb;
+ cbs.result_cb = NULL;
+ cbs.destroy_cb = _mp_ug_destroy_cb;
+
+ ad->ug = _mp_ug_create_ug(ad, NULL, UG_BT_NAME, UG_MODE_FULLVIEW, service, &cbs);
+
+ service_destroy(service);
+ IF_FREE(file_count);
+
+ return 0;
+}
+#ifdef MP_FEATURE_WIFI_SHARE
+int
+mp_ug_wifi_attatch_file(const char *filepath, int count, void *user_data)
+{
+ startfunc;
+ struct appdata *ad = NULL;
+ service_h service = NULL;
+ struct ug_cbs cbs = { 0, };
+ int option = 0;
+ char *file_count = NULL;
+
+ mp_retvm_if(filepath == NULL, -1, "file path is NULL");
+ mp_retvm_if(user_data == NULL, -1, "appdata is NULL");
+
+ ad = user_data;
+ if (ad->ug)
+ {
+ ERROR_TRACE("Destory previous ui-gadget first !!!!");
+ return -1;
+ }
+ option = UG_OPT_INDICATOR_ENABLE;
+ UG_INIT_EFL(ad->win_main, option);
+ file_count = g_strdup_printf("%d", count);
+ if(service_create(&service) != SERVICE_ERROR_NONE)
+ {
+ ERROR_TRACE("Error: service_create");
+ return -1;
+ }
+ service_add_extra_data(service, "filecount", file_count);
+ service_add_extra_data(service, "files", filepath);
+ cbs.priv = user_data;
+ cbs.layout_cb = _mp_ug_layout_cb;
+ cbs.result_cb = NULL;
+ cbs.destroy_cb = _mp_ug_destroy_cb;
+ ad->ug = _mp_ug_create_ug(ad, NULL, UG_FTM_NAME, UG_MODE_FULLVIEW, service, &cbs);
+ service_destroy(service);
+ IF_FREE(file_count);
+ return 0;
+}
+#endif
+
+int
+mp_ug_contact_user_sel(const char *filepath, void *user_data)
+{
+ startfunc;
+ struct appdata *ad = NULL;
+ service_h service = NULL;
+ struct ug_cbs cbs = { 0, };
+ int option = 0;
+
+ mp_retvm_if(filepath == NULL, -1, "file path is NULL");
+ mp_retvm_if(user_data == NULL, -1, "appdata is NULL");
+ ad = user_data;
+
+ if (ad->ug)
+ {
+ ERROR_TRACE("Destory previous ui-gadget first !!!!");
+ return -1;
+ }
+
+ option = UG_OPT_INDICATOR_ENABLE;
+
+ UG_INIT_EFL(ad->win_main, option);
+
+ if(service_create(&service) != SERVICE_ERROR_NONE)
+ {
+ ERROR_TRACE("Error: service_create");
+ return -1;
+ }
+
+ char buf[16];
+
+ snprintf(buf, sizeof(buf), "%d", CT_UG_REQUEST_SAVE_RINGTONE);
+ service_add_extra_data(service, CT_UG_BUNDLE_TYPE, buf);
+ service_add_extra_data(service, CT_UG_BUNDLE_PATH, filepath);
+
+ cbs.priv = ad;
+ cbs.layout_cb = _mp_ug_layout_cb;
+ cbs.result_cb = NULL;
+ cbs.destroy_cb = _mp_ug_destroy_cb;
+
+ ad->ug = _mp_ug_create_ug(ad, NULL, UG_CONTACTS_LIST, UG_MODE_FULLVIEW, service, &cbs);
+
+ service_destroy(service);
+
+ return 0;
+}
+
+
+void
+mp_ug_send_message(struct appdata *ad, mp_ug_message_t message)
+{
+ startfunc;
+ ui_gadget_h ug = NULL;
+ char *id = NULL;
+ MP_CHECK(ad);
+
+ service_h service = NULL;
+
+ if(service_create(&service) != SERVICE_ERROR_NONE)
+ {
+ ERROR_TRACE("Error: service_create");
+ return;
+ }
+ MP_CHECK(service);
+
+ switch(message)
+ {
+ case MP_UG_MESSAGE_DEL:
+ ug = ad->info_ug;
+ service_add_extra_data(service, MP_UG_INFO_DESTROY, MP_UG_INFO_DESTROY);
+ break;
+ case MP_UG_MESSAGE_BACK:
+ ug = ad->info_ug;
+ service_add_extra_data(service, MP_UG_INFO_BACK, MP_UG_INFO_BACK);
+ break;
+ case MP_UG_MESSAGE_LOAD:
+ {
+ ug = ad->info_ug;
+ service_add_extra_data(service, MP_UG_INFO_LOAD, MP_UG_INFO_LOAD);
+ music_list_item *item = mp_play_list_get_current_item(ad->playing_list);
+ MP_CHECK_EXCEP(item);
+
+ service_add_extra_data(service, MP_UG_INFO_PATH, item->filename);
+ service_add_extra_data(service, MP_UG_INFO_ALBUMART, item->albumart);
+ service_add_extra_data(service, MP_UG_INFO_ARTIST, item->artist);
+
+ id = g_strdup(item->key_id);
+ MP_CHECK_EXCEP(id);
+ service_add_extra_data(service, MP_UG_INFO_ID, id);
+ break;
+ }
+ default:
+ service_destroy(service);
+ return;
+ }
+ ug_send_message(ug, service);
+
+ mp_exception:
+ if(service)
+ service_destroy(service);
+ IF_FREE(id);
+}
+
+void
+mp_ug_destory_all(struct appdata *ad)
+{
+ startfunc;
+ // ad->info_ug should not be destoryed!!
+ MP_CHECK(ad);
+ ug_destroy(ad->ug);
+ ad->ug = NULL;
+}
+
+bool
+mp_ug_active(struct appdata *ad)
+{
+ startfunc;
+ MP_CHECK_FALSE(ad);
+
+ if (ad->ug)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
-
#include "music.h"
#include "mp-util.h"
#include "mp-file-tag-info.h"
#include "mp-play-list.h"
+#include "mp-ug-launch.h"
#include "mp-widget.h"
+#include <app.h>
+#include <haptic.h>
+#include <sound_manager.h>
+#include <player.h>
+#include <power.h>
+#ifdef MP_SOUND_PLAYER
+#include "sp-view-manager.h"
+#include "mp-library.h"
+#else
#include "mp-common.h"
#include "mp-library.h"
-#include <bundle.h>
-#include <aul.h>
-#include <appsvc.h>
-#include <utilX.h>
-#include <devman_haptic.h>
-#include <svi.h>
-#include <mm_sound.h>
+#endif
+
+#define SINGLE_BYTE_MAX 0x7F
+
+struct index_s
+{
+ const char *index;
+ unsigned short start;
+ unsigned short end;
+};
+
+static struct index_s multi_index[] = {
+ {"\xE3\x84\xB1", 0xAC00, 0xB098}, /* Kiyeok + A */
+ {"\xE3\x84\xB4", 0xB098, 0xB2E4}, /* Nieun + A */
+ {"\xE3\x84\xB7", 0xB2E4, 0xB77C},
+ {"\xE3\x84\xB9", 0xB77C, 0xB9C8},
+ {"\xE3\x85\x81", 0xB9C8, 0xBC14},
+ {"\xE3\x85\x82", 0xBC14, 0xC0AC},
+ {"\xE3\x85\x85", 0xC0AC, 0xC544},
+ {"\xE3\x85\x87", 0xC544, 0xC790},
+ {"\xE3\x85\x88", 0xC790, 0xCC28},
+ {"\xE3\x85\x8A", 0xCC28, 0xCE74},
+ {"\xE3\x85\x8B", 0xCE74, 0xD0C0},
+ {"\xE3\x85\x8C", 0xD0C0, 0xD30C},
+ {"\xE3\x85\x8D", 0xD30C, 0xD558},
+ {"\xE3\x85\x8E", 0xD558, 0xD7A4}, /* Hieuh + A */
+
+ {"\xE3\x84\xB1", 0x3131, 0x3134}, /* Kiyeok */
+ {"\xE3\x84\xB4", 0x3134, 0x3137}, /* Nieun */
+ {"\xE3\x84\xB7", 0x3137, 0x3139},
+ {"\xE3\x84\xB9", 0x3139, 0x3141},
+ {"\xE3\x85\x81", 0x3141, 0x3142},
+ {"\xE3\x85\x82", 0x3142, 0x3145},
+ {"\xE3\x85\x85", 0x3145, 0x3147},
+ {"\xE3\x85\x87", 0x3147, 0x3148},
+ {"\xE3\x85\x88", 0x3148, 0x314A},
+ {"\xE3\x85\x8A", 0x314A, 0x314B},
+ {"\xE3\x85\x8B", 0x314B, 0x314C},
+ {"\xE3\x85\x8C", 0x314C, 0x314D},
+ {"\xE3\x85\x8D", 0x314D, 0x314E},
+ {"\xE3\x85\x8E", 0x314E, 0x314F}, /* Hieuh */
+};
+
+static char *single_upper_index[] = {
+ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
+ "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
+};
+
+static char *single_lower_index[] = {
+ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
+ "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
+};
+
+
+static char *single_numeric_index[] = {
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "."
+};
+
+static const char *kor_sec[] = {
+ "\xe3\x85\x8f", /* A */
+ "\xe3\x85\x90", /* AE */
+ "\xe3\x85\x91", /* YA */
+ "\xe3\x85\x92",
+ "\xe3\x85\x93",
+ "\xe3\x85\x94",
+ "\xe3\x85\x95",
+ "\xe3\x85\x96",
+ "\xe3\x85\x97",
+ "\xe3\x85\x98",
+ "\xe3\x85\x99",
+ "\xe3\x85\x9a",
+ "\xe3\x85\x9b",
+ "\xe3\x85\x9c",
+ "\xe3\x85\x9d",
+ "\xe3\x85\x9e",
+ "\xe3\x85\x9f",
+ "\xe3\x85\xa0",
+ "\xe3\x85\xa1",
+ "\xe3\x85\xa2",
+ "\xe3\x85\xa3",
+};
+
+static unsigned char mask_len[] = {
+ 0x80, /* 1000 0000 */ 0x00, /* 0xxx xxxx */
+ 0xE0, /* 1110 0000 */ 0xC0, /* 110x xxxx */
+ 0xF0, /* 1111 0000 */ 0xE0, /* 1110 xxxx */
+ 0xF8, /* 1111 1000 */ 0xF0, /* 1111 0xxx */
+ 0xFC, /* 1111 1100 */ 0xF8, /* 1111 10xx */
+ 0xFE, /* 1111 1110 */ 0xFC, /* 1111 110x */
+};
+
+static int
+_mp_util_get_len(const char *p)
+{
+ int i, r = -1;
+ unsigned char c;
+
+ if (p)
+ {
+ c = *p;
+ for (i = 0; i < sizeof(mask_len) / sizeof(char); i = i + 2)
+ {
+ if ((c & mask_len[i]) == mask_len[i + 1])
+ {
+ r = (i >> 1) + 1;
+ break;
+ }
+ }
+ }
+
+ return r;
+}
+
+static unsigned short
+_mp_util_utf8_to_ucs2(const char *p)
+{
+ unsigned short r = 0;
+ int len;
+
+ len = _mp_util_get_len(p);
+ if (len == -1 || len > 3)
+ {
+ return r;
+ }
+
+ switch (len)
+ {
+ case 1:
+ {
+ r = *p & 0x7F;
+ break;
+ }
+ case 2:
+ {
+ r = *p & 0x1F;
+ break;
+ }
+ case 3:
+ {
+ r = *p & 0x0F;
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+
+ while (len > 1)
+ {
+ r = r << 6;
+ p++;
+ r |= *p & 0x3F;
+ len--;
+ }
+
+ return r;
+}
+
+static const char *
+_mp_util_get_single(const char *p)
+{
+ int c = (int)*p;
+
+ if (islower(c) != 0)
+ {
+ return single_lower_index[c - 'a'];
+ }
+ else if (isupper(c) != 0)
+ {
+ return single_upper_index[c - 'A'];
+ }
+ else if (48 <= c && 57 >= c)
+ {
+ return single_numeric_index[c - '0'];
+ }
+ else
+ {
+ return single_numeric_index[10];
+ }
+
+ return NULL;
+}
+
+static const char *
+_mp_util_get_multi(unsigned short u)
+{
+ int i;
+
+ for (i = 0; i < sizeof(multi_index) / sizeof(struct index_s); i++)
+ {
+ if (u >= multi_index[i].start && u < multi_index[i].end)
+ {
+ return multi_index[i].index;
+ }
+ }
+ return NULL;
+}
+
+static char *
+_mp_util_get_next_char(const char *p)
+{
+ int n;
+
+ MP_CHECK_NULL(p);
+
+ n = _mp_util_get_len(p);
+ if (n == -1)
+ {
+ return NULL;
+ }
+
+ if (strlen(p) < n)
+ {
+ return NULL;
+ }
+
+ DEBUG_TRACE("%s", &p[n]);
+
+ return (char *)&p[n];
+}
+
+
+static const char *
+_mp_util_get_second_kor(unsigned short u)
+{
+ unsigned short t;
+
+ t = u - 0xAC00;
+ t = (t / 28) % 21;
+
+ return kor_sec[t];
+}
void
mp_util_format_duration(char *time, int ms)
if(min >= 60)
{
int hour = min / 60;
- snprintf(time, 15, "%02u:%02u:%02u", hour, min % 60, sec % 60);
+ snprintf(time, TIME_FORMAT_LEN, "%02u:%02u:%02u", hour, min % 60, sec % 60);
}
else
- snprintf(time, 15, "%02u:%02u", min, sec % 60);
+ snprintf(time, TIME_FORMAT_LEN, "%02u:%02u", min, sec % 60);
}
-bool
-mp_util_add_to_playlist_by_key(MediaSvcHandle *handle, int plst_id, char *key_id)
+const char *
+mp_util_get_index(const char *p)
+{
+ if (p == NULL)
+ {
+ return NULL;
+ }
+
+ if ((unsigned char)*p < SINGLE_BYTE_MAX)
+ {
+ return _mp_util_get_single(p);
+ }
+
+ return _mp_util_get_multi(_mp_util_utf8_to_ucs2(p));
+}
+
+const char *
+mp_util_get_second_index(const char *p)
{
- //startfunc;
- MP_CHECK_FALSE(handle);
+ unsigned short u2;
+
+ if (p == NULL)
+ {
+ return NULL;
+ }
+
+ if ((unsigned char)*p < SINGLE_BYTE_MAX)
+ {
+ return mp_util_get_index(_mp_util_get_next_char(p));
+ }
+
+ u2 = _mp_util_utf8_to_ucs2(p);
+ if (u2 >= 0xAC00 && u2 < 0xD7A4)
+ {
+ return _mp_util_get_second_kor(u2);
+ }
+ return mp_util_get_index(_mp_util_get_next_char(p));
+}
+
+bool
+mp_util_add_to_playlist_by_key(int playlist_id, char *key_id)
+{
int err;
{
- err = audio_svc_add_item_to_playlist(handle, plst_id, key_id);
- if (err != AUDIO_SVC_ERROR_NONE)
+ err = mp_media_info_playlist_add_media(playlist_id, key_id);
+ if (err != 0)
{
- ERROR_TRACE("Error in audio_svc_list_append_item (%d)\n", err);
+ ERROR_TRACE("Error in mp_media_info_playlist_add_media (%d)\n", err);
return FALSE;
}
}
Evas_Object *
mp_util_create_thumb_icon(Evas_Object * obj, const char *path, int w, int h)
{
+ mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
+
Evas_Object *thumbnail = elm_bg_add(obj);
elm_bg_load_size_set(thumbnail, w, h);
}
else
{
- elm_bg_file_set(thumbnail, DEFAULT_THUMBNAIL, NULL);
+ if (layout_data->category == MP_LAYOUT_GROUP_LIST
+ && layout_data->view_data->view_type == MP_VIEW_TYPE_FOLDER)
+ {
+ elm_bg_file_set(thumbnail, DEFAULT_THUMBNAIL_FOLDER, NULL);
+ }
+ else
+ {
+ elm_bg_file_set(thumbnail, DEFAULT_THUMBNAIL, NULL);
+ }
}
evas_object_size_hint_aspect_set(thumbnail, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ //evas_object_show(thumbnail);
return thumbnail;
}
Evas_Object *notify_layout = NULL;
MP_CHECK(ad);
- MP_CHECK(ad->library);
-
+ Evas_Object *parent = NULL;
+#ifdef MP_SOUND_PLAYER
+ parent = sp_view_mgr_get_naviframe(ad->view_mgr);
+#else
+ parent = ad->naviframe;
+#endif
if (ad->notify != NULL)
{
mp_evas_object_del(ad->notify);
if (count > 0)
{
- notify = elm_notify_add(ad->library->cur_view);
+ notify = elm_notify_add(parent);
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);
- notify_layout = elm_layout_add(ad->library->cur_view);
- elm_layout_theme_set(notify_layout, "standard", "selectioninfo", "music/vertical/bottom_64");
+ notify_layout = elm_layout_add(parent);
+ elm_layout_theme_set(notify_layout, "standard", "selectioninfo", "vertical/bottom_64");
evas_object_size_hint_weight_set(notify_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(notify_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_content_set(notify, notify_layout);
Evas_Object *notify_layout = NULL;
MP_CHECK(ad);
- MP_CHECK(ad->library);
+ Evas_Object *parent = NULL;
+#ifdef MP_SOUND_PLAYER
+ parent = sp_view_mgr_get_naviframe(ad->view_mgr);
+#else
+ MP_CHECK(ad->naviframe);
+ parent = ad->naviframe;
+#endif
if (ad->notify != NULL)
{
ad->notify = NULL;
ad->notify_layout = NULL;
- notify = elm_notify_add(ad->library->cur_view);
+ {
+ notify = elm_notify_add(parent);
+ notify_layout = elm_layout_add(parent);
+
+ if(ad->win_angle == 90 || ad->win_angle == -90)
+ elm_layout_theme_set(notify_layout, "standard", "selectioninfo", "horizontal/bottom_64");
+ else
+ elm_layout_theme_set(notify_layout, "standard", "selectioninfo", "vertical/bottom_64");
+ }
+
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);
- notify_layout = elm_layout_add(ad->library->cur_view);
- elm_layout_theme_set(notify_layout, "standard", "selectioninfo", "vertical/bottom_64");
evas_object_size_hint_weight_set(notify_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(notify_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_content_set(notify, notify_layout);
}
-char *
-mp_util_get_playlist_thumbpath(MediaSvcHandle *handle, AudioHandleType * plst)
+int
+mp_util_share_via_email(const char *formed_path, void *data)
{
- MP_CHECK_NULL(handle);
-
- char *thumbpath = NULL;
- int ret = AUDIO_SVC_ERROR_NONE;
- int plst_id = -1;
-
- mp_retvm_if(!plst, NULL, "plst is NULL!!");
-
- ret = audio_svc_playlist_get_val(plst, 0, AUDIO_SVC_PLAYLIST_ID, &plst_id, -1);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to get playlist id\n");
- return NULL;
- }
-
- AudioHandleType *playlists = NULL;
- ret = audio_svc_playlist_item_new(&playlists, 1);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to create structure\n");
- return NULL;
- }
-
- ret = audio_svc_get_playlist_item(handle, plst_id, "", "", 0, 1, playlists);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to get items\n");
- audio_svc_playlist_item_free(playlists);
- return NULL;
- }
- int size = -1;
- ret = audio_svc_playlist_item_get_val(playlists, 0, AUDIO_SVC_PLAYLIST_ITEM_THUMBNAIL_PATH, &thumbpath, &size,
- -1);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- audio_svc_playlist_item_free(playlists);
- DEBUG_TRACE("Fail to get value\n");
- return NULL;
- }
-
- ret = audio_svc_playlist_item_free(playlists);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to free search structure\n");
- return thumbpath;
- }
-
- if (!thumbpath)
- thumbpath = MP_CTRBAR_ICON_PLAYLIST;
+ if (mp_ug_email_attatch_file(formed_path, data))
+ return -1;
- return thumbpath;
+ return 0;
}
char *
-mp_util_get_new_playlist_name(MediaSvcHandle *handle)
+mp_util_get_new_playlist_name(void)
{
- MP_CHECK_NULL(handle);
-
- char unique_name[AUDIO_SVC_PLAYLIST_NAME_SIZE] = "\0";
+ char unique_name[MP_PLAYLIST_NAME_SIZE] = "\0";
int ret = 0;
- ret = audio_svc_get_unique_playlist_name(handle, "My playlist", unique_name, AUDIO_SVC_PLAYLIST_NAME_SIZE);
- if (ret == AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_playlist_unique_name("My playlist", unique_name, MP_PLAYLIST_NAME_SIZE);
+ if (ret == 0)
{
if (strlen(unique_name) <= 0)
{
}
else
{
- ERROR_TRACE("fail to audio_svc_get_unique_playlist_name() : error code [%x] ", ret);
+ ERROR_TRACE("fail to mp_media_info_playlist_unique_name() : error code [%x] ", ret);
return NULL;
}
return NULL;
}
-
-Eina_Bool
-mp_util_is_item_in_playlist(MediaSvcHandle *handle, gint plst_id, char *key_id)
-{
- MP_CHECK_VAL(handle, EINA_FALSE);
-
- int count = -1;
- int ret = -1;
- ret = audio_svc_check_duplicate_insertion_in_playlist(handle, plst_id, key_id, &count);
- if (ret == AUDIO_SVC_ERROR_NONE)
- {
- if (count > 0)
- return TRUE;
- else
- return FALSE;
- }
- else
- {
- ERROR_TRACE("Error from libmusic-service");
- return FALSE;
- }
-}
-
-bool
-mp_util_check_item_exist_in_playlist(MediaSvcHandle *handle, gint plst_id, char *key_id)
-{
- MP_CHECK_FALSE(handle);
-
- int count = -1;
- int ret = -1;
- ret = audio_svc_check_duplicate_insertion_in_playlist(handle, plst_id, key_id, &count);
- if (ret == AUDIO_SVC_ERROR_NONE)
- {
- if (count > 0)
- return TRUE;
- else
- return FALSE;
- }
- else
- {
- ERROR_TRACE("Error from libmusic-service");
- return FALSE;
- }
-}
-
-bool
-mp_util_add_selected_items_to_playlist(Evas_Object * genlist, int plst_id)
-{
- Elm_Object_Item *first_item = elm_genlist_first_item_get(genlist);
- Elm_Object_Item *current_item = NULL;
- Elm_Object_Item *next_item = NULL;
- mp_genlist_item_data_t *gl_item = NULL;
- char *fid = NULL;
- int size;
- int ret;
- int count;
- mp_layout_data_t *layout_data = evas_object_data_get(genlist, "layout_data");
- MP_CHECK_FALSE(layout_data);
- MP_CHECK_LAYOUT_DATA(layout_data);
- MP_CHECK_FALSE(layout_data->ad);
-
- audio_svc_count_playlist_item(layout_data->ad->media_svc_handle, plst_id, NULL, NULL, &count);
- if (count >= MP_PLAYLIST_MAX_ITEM_COUNT)
- return FALSE;
-
- if (first_item)
- {
- MP_GENLIST_CHECK_FOREACH_SAFE(first_item, current_item, next_item, gl_item)
- {
- if (count == MP_PLAYLIST_MAX_ITEM_COUNT)
- {
- DEBUG_TRACE("Max count reached...");
- return TRUE;
- }
- if (gl_item->checked)
- {
- AudioHandleType *item = (AudioHandleType *) (gl_item->handle);
- MP_CHECK_FALSE(item);
- if (layout_data->playlist_id < 0)
- ret = audio_svc_list_item_get_val(item, 0, AUDIO_SVC_LIST_ITEM_AUDIO_ID, &fid, &size,
- -1);
- else
- ret = audio_svc_playlist_item_get_val(item, 0, AUDIO_SVC_PLAYLIST_ITEM_AUDIO_ID,
- &fid, &size, -1);
- if (ret == AUDIO_SVC_ERROR_NONE)
- {
- if (mp_util_add_to_playlist_by_key(layout_data->ad->media_svc_handle, plst_id, fid))
- count++;
- }
- else
- {
- ERROR_TRACE("Error!! ret: %d", ret);
- return FALSE;
- }
- }
- }
- }
- else
- {
- DEBUG_TRACE("genlist item not exist...");
- return FALSE;
- }
-
- return TRUE;
-}
-
char *
-mp_util_get_fid_by_handle(mp_layout_data_t * layout_data, AudioHandleType * record)
+mp_util_get_fid_by_handle(mp_layout_data_t * layout_data, mp_media_info_h record)
{
MP_CHECK_FALSE(record);
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
char *fid = NULL;
- int size;
- if (layout_data->playlist_id < 0)
- ret = audio_svc_list_item_get_val(record, 0, AUDIO_SVC_LIST_ITEM_AUDIO_ID, &fid, &size, -1);
- else
- ret = audio_svc_playlist_item_get_val(record, 0, AUDIO_SVC_PLAYLIST_ITEM_AUDIO_ID, &fid, &size, -1);
+ ret = mp_media_info_get_media_id(record, &fid);
return fid;
}
char *
-mp_util_get_path_by_handle(mp_layout_data_t * layout_data, AudioHandleType * record)
+mp_util_get_path_by_handle(mp_layout_data_t * layout_data, mp_media_info_h record)
{
MP_CHECK_NULL(record);
char *path = NULL;
- int size = -1, ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
+
+ ret = mp_media_info_get_file_path(record, &path);
- if (layout_data->playlist_id < 0)
- ret = audio_svc_list_item_get_val(record, 0, AUDIO_SVC_LIST_ITEM_PATHNAME, &path, &size, -1);
- else
- ret = audio_svc_playlist_item_get_val(record, 0, AUDIO_SVC_PLAYLIST_ITEM_PATHNAME, &path, &size, -1);
return path;
}
mp_util_delete_track(void *data, char *fid, char *file_path, bool show_popup)
{
struct appdata *ad = (struct appdata *)data;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
DEBUG_TRACE("music id = %s, path: %s", fid, file_path);
MP_CHECK_VAL(fid || file_path, MP_FILE_DELETE_ERR_INVALID_FID);
}
}
- char path[AUDIO_SVC_PATHNAME_SIZE] = "";
-
+ char *path = NULL;
+ mp_media_info_h item = NULL;
if (!file_path)
{
- audio_svc_get_path_by_audio_id(ad->media_svc_handle, fid, path, AUDIO_SVC_PATHNAME_SIZE);
+ mp_media_info_create(&item, fid);
+ mp_media_info_get_file_path(item, &path);
}
else
- {
- strncpy(path, file_path, AUDIO_SVC_PATHNAME_SIZE);
- path[AUDIO_SVC_PATHNAME_SIZE - 1] = '\0';
- }
-
+ path = file_path;
ret = remove(path);
+
+ if(item)
+ mp_media_info_destroy(item);
+
if (ret < 0)
{
ERROR_TRACE("fail to unlink file : %s, ret: %d", path, ret);
mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"));
return MP_FILE_DELETE_ERR_REMOVE_FAIL;
}
- else
- {
- ret = audio_svc_delete_item_by_path(ad->media_svc_handle, path);
- if (ret != AUDIO_SVC_ERROR_NONE)
- DEBUG_TRACE("Error audio_svc_delete_item_by_path() ret: %d", ret);
- }
return MP_FILE_DELETE_ERR_NONE;
}
return 0;
}
-Elm_Object_Item *
-mp_util_get_genlist_item_by_item_handle(Evas_Object * genlist, AudioHandleType * handle)
-{
- Elm_Object_Item *it = NULL;
-
- it = elm_genlist_first_item_get(genlist);
- while (it)
- {
- mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) elm_object_item_data_get(it);
- MP_CHECK_NULL(item);
- AudioHandleType *item_data = (AudioHandleType *) (item->handle);
- MP_CHECK_NULL(item_data);
- if (item_data == handle)
- break;
- it = elm_genlist_item_next_get(it);
- }
-
- MP_CHECK_NULL(it);
- return it;
-}
-
-/*return value must be freed.*/
+// return value must be freed.
char *
mp_util_isf_get_edited_str(Evas_Object * isf_entry, bool permit_first_blank)
{
free(strip_msg);
return strdup("");
}
+
if (strip_msg[strip_len - 1] == '\n' || strip_msg[strip_len - 1] == '\r')
{
strip_msg[strip_len - 1] = '\0';
}
}
-char *
-mp_util_item_get_value_by_type(audio_svc_track_data_type_e item_type, struct music_list_item *item)
+bool
+mp_util_set_screen_mode(void *data, int mode)
{
- mp_retvm_if(!item, NULL, "ITEM IS NULL");
-
- if (item_type == AUDIO_SVC_TRACK_DATA_TITLE)
- return strdup(item->title);
- else if (item_type == AUDIO_SVC_TRACK_DATA_ALBUM)
- return strdup(item->artist);
- else if (item_type == AUDIO_SVC_TRACK_DATA_ARTIST)
- return strdup(item->album);
- else
- return NULL;
+ struct appdata *ad = data;
+
+ ad->current_appcore_rm = mode; //set current appcore rm
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &ad->screen_width, &ad->screen_height); //get current screen height width
+
+ if (mode == APP_DEVICE_ORIENTATION_270 || mode == APP_DEVICE_ORIENTATION_90)
+ {
+ ad->screen_mode = MP_SCREEN_MODE_LANDSCAPE;
+ mp_debug("Set MP_SCREEN_MODE_LANDSCAPE");
+ }
+ else if (mode == APP_DEVICE_ORIENTATION_0 || mode == APP_DEVICE_ORIENTATION_180)
+ {
+ ad->screen_mode = MP_SCREEN_MODE_PORTRAIT;
+ mp_debug("Set MP_SCREEN_MODE_PORTRAIT");
+ }
+ return true;
}
bool
{
DEBUG_TRACE("url: %s", url);
- bundle *b = NULL;
- int res;
-
- b = bundle_create();
- bundle_add(b, "url", url);
+ service_h service;
+ bool res;
+ service_create(&service);
+ service_set_operation(service, SERVICE_OPERATION_DEFAULT);
+ service_set_package(service, "org.tizen.browser");
+ service_set_uri(service, url);
- res = aul_launch_app("org.tizen.browser", b);
- DEBUG_TRACE("aul raunch. res: %d", res);
- bundle_free(b);
-
- if (res >= AUL_R_OK)
- return TRUE;
- else
- return FALSE;
+ if (service_send_launch_request(service, NULL, NULL) == SERVICE_ERROR_NONE) {
+ DEBUG_TRACE("Succeeded to launch a calculator app.");
+ res = true;
+ } else {
+ DEBUG_TRACE("Failed to launch a calculator app.");
+ res = false;
+ }
+ service_destroy(service);
+ return res;
}
first = g_utf8_get_char(next);
}
- if (first >= 0xAC00 && first <= 0xD7A3) // korean range
+ if (first >= 0xAC00 && first <= 0xD7A3)
{ //korean
int index = 0;
index = ((((first - 0xAC00) - ((first - 0xAC00) % 28)) / 28) / 21);
}
int
-mp_util_create_playlist(struct appdata *ad, char *name)
+mp_util_create_playlist(struct appdata *ad, char *name, mp_playlist_h *playlist_handle)
{
MP_CHECK_VAL(ad, -1);
MP_CHECK_VAL(name, -1);
return -1;
}
- int count = -1;
- int ret = audio_svc_count_playlist_by_name(ad->media_svc_handle, name, &count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, -1, "Fail to get playlist count by name");
- if (count > 0)
+ bool exist = false;
+ int ret = mp_media_info_playlist_is_exist(name, &exist);
+ if(ret != 0)
+ {
+ ERROR_TRACE("Fail to get playlist count by name: %d", ret);
+ mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"));
+ return -1;
+ }
+
+ if (exist)
{
- mp_widget_text_popup(ad, GET_SYS_STR("IDS_COM_POP_ALREDY_EXISTS"));
+ char buf[256] = { 0, };
+
+ snprintf(buf, sizeof(buf), "Playlist name %s is exist", name);
+ mp_widget_text_popup(ad, buf);
return -1;
}
- ret = audio_svc_add_playlist(ad->media_svc_handle, name, &plst_uid);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, -1, "Fail to add playlist");
+ ret = mp_media_info_playlist_insert_to_db(name, &plst_uid, playlist_handle);
+ if(ret != 0)
+ {
+ ERROR_TRACE("Fail to get playlist count by name: %d", ret);
+ mp_widget_text_popup(ad, GET_SYS_STR("IDS_COM_BODY_UNABLE_TO_ADD"));
+ return -1;
+ }
return plst_uid;
}
bool
mp_util_get_recent_play_data(mp_layout_data_t * layout_data, int *index, char **path)
{
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
char *last_audio_id = NULL;
char *audio_id = NULL;
- int size = 0;
int i = 0;
if (!ecore_file_exists(MP_NOWPLAYING_INI_FILE_NAME))
layout_data->filter_str);
if (layout_data->playlist_id < 0)
- ret = audio_svc_count_list_item(ad->media_svc_handle, layout_data->track_type, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, &(layout_data->item_count));
+ ret = mp_media_info_list_count(layout_data->track_type, layout_data->type_str, NULL,
+ layout_data->filter_str, 0, &(layout_data->item_count));
else
- ret = audio_svc_count_playlist_item(ad->media_svc_handle, layout_data->playlist_id, layout_data->filter_str, NULL,
- &(layout_data->item_count));
+ ret = mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL, layout_data->filter_str, layout_data->playlist_id, &(layout_data->item_count));
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, false, "ret: %d", ret);
+ mp_retvm_if(ret != 0, false, "ret: %d", ret);
if (layout_data->item_count <= 0)
{
return false;
}
- if (layout_data->playlist_id < 0)
- ret = audio_svc_list_item_new(&(layout_data->svc_handle), layout_data->item_count);
- else
- ret = audio_svc_playlist_item_new(&(layout_data->svc_handle), layout_data->item_count);
-
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, false, "ret: %d", ret);
+ mp_retvm_if(ret != 0, false, "ret: %d", ret);
- if (layout_data->playlist_id < 0)
- ret = audio_svc_get_list_item(ad->media_svc_handle, layout_data->track_type, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, 0, layout_data->item_count,
- layout_data->svc_handle);
- else
- ret = audio_svc_get_playlist_item(ad->media_svc_handle, layout_data->playlist_id, layout_data->filter_str, NULL, 0,
- layout_data->item_count, layout_data->svc_handle);
+ ret = mp_media_info_list_create(&layout_data->svc_handle,
+ layout_data->track_type, layout_data->type_str, NULL,
+ layout_data->filter_str, layout_data->playlist_id, 0, layout_data->item_count);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ if (ret != 0)
{
DEBUG_TRACE("fail to get list item: %d", ret);
- if (layout_data->playlist_id < 0)
- ret = audio_svc_list_item_free(layout_data->svc_handle);
- else
- ret = audio_svc_playlist_item_free(layout_data->svc_handle);
+ ret = mp_media_info_list_destroy(layout_data->svc_handle);
return false;
}
{
for (i = 0; i < layout_data->item_count; i++)
{
- audio_svc_list_item_get_val(layout_data->svc_handle, i, AUDIO_SVC_LIST_ITEM_AUDIO_ID, &audio_id, &size,
- -1);
+ mp_media_info_h item = mp_media_info_list_nth_item(layout_data->svc_handle, i);
+ MP_CHECK_FALSE(item);
+ mp_media_info_get_media_id(item, &audio_id);
if (!g_strcmp0(audio_id, last_audio_id))
{
if (index)
struct appdata *ad = layout_data->ad;
MP_CHECK_FALSE(ad);
- int ret = AUDIO_SVC_ERROR_NONE;
- int playlist_idx = 0;
-
- ret = audio_svc_get_playlist_id_by_playlist_name(ad->media_svc_handle, playlist_name, &playlist_idx);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, false, "ret: %d, playlist_name: %s", ret, playlist_name);
- mp_retvm_if(playlist_idx < 0, false, "playlist_idx is not valid.. %d", playlist_idx);
- layout_data->playlist_id = playlist_idx;
+ int ret = 0;
+ int playlist_id = 0;
- ret = audio_svc_count_playlist_item(ad->media_svc_handle, layout_data->playlist_id, layout_data->filter_str, NULL,
- &(layout_data->item_count));
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, false, "ret: %d", ret);
+ ret = mp_media_info_playlist_get_id_by_name(playlist_name, &playlist_id);
+ mp_retvm_if(ret != 0, false, "ret: %d, playlist_name: %s", ret, playlist_name);
+ layout_data->playlist_id = playlist_id;
+ ret = mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL, layout_data->filter_str, layout_data->playlist_id, &(layout_data->item_count));
+ mp_retvm_if(ret != 0, false, "ret: %d", ret);
if (layout_data->item_count <= 0)
{
DEBUG_TRACE("Recently played tracks were removed...");
return false;
}
-
- ret = audio_svc_playlist_item_new(&(layout_data->svc_handle), layout_data->item_count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, false, "ret: %d", ret);
-
- ret = audio_svc_get_playlist_item(ad->media_svc_handle, layout_data->playlist_id, layout_data->filter_str, NULL, 0,
- layout_data->item_count, layout_data->svc_handle);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_list_create(&layout_data->svc_handle, MP_TRACK_BY_PLAYLIST,
+ NULL, NULL, layout_data->filter_str, layout_data->playlist_id, 0, layout_data->item_count);
+ if (ret != 0)
{
- DEBUG_TRACE("fail to get list item: %d", ret);
- ret = audio_svc_playlist_item_free(layout_data->svc_handle);
+ WARN_TRACE("fail to mp_media_info_list_create: %d", ret);
return false;
}
return true;
}
+#define STRNCAT_LEN(dest) (sizeof(dest)-1-strlen(dest))
+static void __mp_util_set_filter(mp_filter_h filter, mp_group_type_e group_type, const char *filter_string)
+{
+ char cond[MAX_FILTER_LEN] = {0,};
+
+ switch(group_type)
+ {
+ case MP_GROUP_BY_ALBUM:
+ if(filter_string)
+ {
+ strncat(cond, "MEDIA_ALBUM like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_GROUP_BY_ARTIST:
+ if(filter_string)
+ {
+ strncat(cond, "MEDIA_ARTIST like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_GROUP_BY_GENRE:
+ if(filter_string)
+ {
+ strncat(cond, "MEDIA_GENRE like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_GROUP_BY_FOLDER:
+ if(filter_string)
+ {
+ strncat(cond, "MEDIA_PATH like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_GROUP_BY_YEAR:
+ if(filter_string)
+ {
+ strncat(cond, "MEDIA_YEAR like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_GROUP_BY_COMPOSER:
+ if(filter_string)
+ {
+ strncat(cond, "MEDIA_COMPOSER like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ break;
+ case MP_GROUP_BY_PLAYLIST:
+ if(filter_string)
+ {
+ strncat(cond, "PLAYLIST_NAME like \"\%", STRNCAT_LEN(cond));
+ strncat(cond, filter_string, STRNCAT_LEN(cond));
+ strncat(cond, "\%\"", STRNCAT_LEN(cond));
+ }
+ break;
+ default:
+ WARN_TRACE("Unhandled type: %d", group_type);
+ break;
+ }
+ if(strlen(cond))
+ {
+ DEBUG_TRACE("cond: %s", cond);
+ mp_media_filter_set_condition(filter, cond, MP_MEDIA_CONTENT_COLLATE_NOCASE);
+ }
+ mp_media_filter_set_order(filter, false, "MEDIA_TITLE", MP_MEDIA_CONTENT_COLLATE_NOCASE);
+
+}
+
bool
mp_util_get_list_data(mp_layout_data_t * layout_data)
{
MP_CHECK_FALSE(layout_data);
struct appdata *ad = NULL;
- AudioHandleType *group_record = NULL;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
+ mp_filter_h filter = NULL;
ad = layout_data->ad;
MP_CHECK_FALSE(ad);
if (ad->launch_type != MP_LAUNCH_PLAY_GROUP)
{
- ret = audio_svc_count_list_item(ad->media_svc_handle, layout_data->track_type, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, &(layout_data->item_count));
+ ret = mp_media_info_list_count(layout_data->track_type, layout_data->type_str, NULL,
+ layout_data->filter_str, layout_data->playlist_id, &(layout_data->item_count));
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, false, "ret: %d", ret);
+ mp_retvm_if(ret != 0, false, "ret: %d", ret);
if (layout_data->item_count <= 0)
{
return false;
}
- ret = audio_svc_list_item_new(&(layout_data->svc_handle), layout_data->item_count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, false, "ret: %d", ret);
-
- ret = audio_svc_get_list_item(ad->media_svc_handle, layout_data->track_type, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, 0, layout_data->item_count,
- layout_data->svc_handle);
-
- if (ret != AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_list_create(&(layout_data->svc_handle),
+ layout_data->track_type, layout_data->type_str, NULL,
+ layout_data->filter_str, layout_data->playlist_id, 0, layout_data->item_count);
+ if (ret != 0)
{
DEBUG_TRACE("fail to get list item: %d", ret);
goto error;
}
else
{
- int group_count = 0;
- int i = 0;
- int index = 0;
-
- ret = audio_svc_count_group_item(ad->media_svc_handle, layout_data->group_type, NULL, NULL, layout_data->filter_str, NULL,
- &group_count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, false, "ret: %d", ret);
-
- if (group_count <= 0)
- {
- DEBUG_TRACE("No such groups");
- goto error;
- }
+ int count = 0;
+ int res = 0;
- ret = audio_svc_group_item_new(&group_record, group_count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, false, "ret: %d", ret);
+ mp_media_filter_create(&filter);
+ __mp_util_set_filter(filter, layout_data->group_type, layout_data->filter_str);
- ret = audio_svc_get_group_item(ad->media_svc_handle, layout_data->group_type, NULL, NULL, layout_data->filter_str, NULL, 0,
- group_count, group_record);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("fail to get list item: %d", ret);
- goto error;
- }
-
- char *group_title[group_count];
- int item_count[group_count];
-
- for (i = 0; i < group_count; i++)
- {
- int count = 0;
- int size = 0;
-
- ret = audio_svc_group_item_get_val(group_record, i, AUDIO_SVC_GROUP_ITEM_MAIN_INFO,
- &(group_title[i]), &size, -1);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("fail to get list item: %d", ret);
- goto error;
- }
-
- ret = audio_svc_count_list_item(ad->media_svc_handle, layout_data->track_type, group_title[i], NULL, NULL, NULL,
- &count);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("fail to get list item: %d", ret);
- goto error;
- }
-
- item_count[i] = count;
- layout_data->item_count += count;
- }
-
- if (layout_data->item_count <= 0)
- {
- DEBUG_TRACE("No group items");
- goto error;
- }
-
- ret = audio_svc_list_item_new(&(layout_data->svc_handle), layout_data->item_count);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("fail to get list item: %d", ret);
- goto error;
- }
-
- for (i = 0; i < group_count; i++)
- {
- AudioHandleType *handle;
- ret = audio_svc_list_item_get(layout_data->svc_handle, index, &handle);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("fail to get list item: %d", ret);
- goto error;
- }
-
- ret = audio_svc_get_list_item(ad->media_svc_handle, layout_data->track_type, group_title[i], NULL, NULL, NULL, 0,
- item_count[i], handle);
- DEBUG_TRACE("0x%x, index: %d", handle, index);
- index += item_count[i];
-
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("fail to get list item: %d", ret);
- goto error;
- }
-
- }
-
- for (i = 0; i < layout_data->item_count; i++)
- {
- char *title;
- int size;
- audio_svc_list_item_get_val(layout_data->svc_handle, i, AUDIO_SVC_LIST_ITEM_TITLE, &title,
- &size, -1);
- DEBUG_TRACE("%s", title);
- }
+ res = mp_media_info_list_count_w_filter(layout_data->track_type,layout_data->type_str, layout_data->playlist_id, filter, &count);
+ if(res || count <= 0) goto error;
+ mp_media_filter_destory(filter);
}
-
return true;
- error:
- if (group_record)
- audio_svc_group_item_free(group_record);
+ error:
+ mp_media_filter_destory(filter);
if (layout_data->svc_handle)
- audio_svc_list_item_free(layout_data->svc_handle);
+ mp_media_info_list_destroy(layout_data->svc_handle);
return false;
}
+#ifndef MP_SOUND_PLAYER
void
_mp_util_set_tabbar_item(Evas_Object *control_bar, Elm_Object_Item **item,
Elm_Object_Item **after, int enabled, char *icon, char *label, void *data)
{
if (*item && !enabled)
{
+ mp_language_mgr_unregister_object_item(*item);
elm_object_item_del(*item);
*item = NULL;
}
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
MP_CHECK(ad->library);
+
+ Elm_Object_Item *prev_selected = elm_toolbar_selected_item_get(ad->tabbar);
+
Elm_Object_Item *after = ad->library->ctltab_plist;
- _mp_util_set_tabbar_item(ad->ctrl_bar, &(ad->library->ctltab_album), &after,
+ _mp_util_set_tabbar_item(ad->tabbar, &(ad->library->ctltab_album), &after,
ad->library->albums, MP_CTRBAR_ICON_ALBUM, GET_STR(STR_MP_ALBUMS), ad);
- _mp_util_set_tabbar_item(ad->ctrl_bar, &(ad->library->ctltab_artist), &after,
+ _mp_util_set_tabbar_item(ad->tabbar, &(ad->library->ctltab_artist), &after,
ad->library->artists, MP_CTRBAR_ICON_ARTIST, GET_STR(STR_MP_ARTISTS), ad);
- _mp_util_set_tabbar_item(ad->ctrl_bar, &(ad->library->ctltab_genres), &after,
+ _mp_util_set_tabbar_item(ad->tabbar, &(ad->library->ctltab_genres), &after,
ad->library->genres, MP_CTRBAR_ICON_GENRE, GET_STR(STR_MP_GENRES), ad);
- _mp_util_set_tabbar_item(ad->ctrl_bar, &(ad->library->ctltab_composer), &after,
+ _mp_util_set_tabbar_item(ad->tabbar, &(ad->library->ctltab_composer), &after,
ad->library->composers, MP_CTRBAR_ICON_COMPOSER, GET_STR(STR_MP_COMPOSERS), ad);
- _mp_util_set_tabbar_item(ad->ctrl_bar, &(ad->library->ctltab_year), &after,
+ _mp_util_set_tabbar_item(ad->tabbar, &(ad->library->ctltab_year), &after,
ad->library->years, MP_CTRBAR_ICON_YEAR, GET_STR(STR_MP_YEARS), ad);
+ _mp_util_set_tabbar_item(ad->tabbar, &(ad->library->ctltab_folder), &after,
+ ad->library->folders, MP_CTRBAR_ICON_FOLDER, GET_SYS_STR(STR_MP_FOLDERS), ad);
+ if (prev_selected != elm_toolbar_selected_item_get(ad->tabbar)) {
+ mp_debug("prev selected item is deleted.. select song tab");
+ elm_toolbar_item_selected_set(ad->library->ctltab_songs, EINA_TRUE);
+ }
}
+#endif
bool
-mp_util_get_uri_from_app_svc(bundle * b, struct appdata *ad, char **path)
+mp_util_get_uri_from_app_svc(service_h service, struct appdata *ad, char **path)
{
char *uri = NULL;
- const char *operation = NULL;
+ char *operation = NULL;
+ char *mime = NULL;
- if (!b || !bundle_get_count(b))
- {
- WARN_TRACE("No exist b pointer or bundle count value.");
- return FALSE;
- }
+ MP_CHECK_FALSE(service);
- operation = appsvc_get_operation(b);
+ service_get_operation(service, &operation);
DEBUG_TRACE("operation: %s", operation);
if(!operation)
return FALSE;
}
- if(!strcmp(APPSVC_OPERATION_VIEW , operation))
+ if(!strcmp(SERVICE_OPERATION_VIEW , operation))
{
- uri = (char *)appsvc_get_uri(b);
- if (uri)
+ service_get_uri(service, &uri);
+ if (uri && strlen(uri))
{
- *path = strdup(uri);
+ *path = uri;
}
else
{
+ *path = NULL;
WARN_TRACE("No URI.");
+ SAFE_FREE(operation);
return FALSE;
}
+
+ service_get_mime(service, &mime);
+ mp_debug("mime : %s", mime);
+ SAFE_FREE(mime);
}
else
{
+ *path = NULL;
WARN_TRACE("No Operation.");
return FALSE;
}
+ SAFE_FREE(operation);
DEBUG_TRACE("URI path uri : %s", uri);
return TRUE;
}
MP_CHECK(genlist);
Elm_Object_Item *gl_item =
(Elm_Object_Item *)elm_genlist_decorated_item_get(genlist);
- if (gl_item)
+ if (gl_item) {
elm_genlist_item_decorate_mode_set(gl_item, "slide", EINA_FALSE);
+ elm_genlist_item_select_mode_set(gl_item, ELM_OBJECT_SELECT_MODE_DEFAULT);
+ }
}
+#ifndef MP_SOUND_PLAYER
view_data_t *
mp_util_get_view_data(struct appdata *ad)
{
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
-
- Evas_Object *cur_view = ad->library->cur_view;
- MP_CHECK_NULL(cur_view);
+ MP_CHECK_NULL(ad->naviframe);
- return evas_object_data_get(cur_view, "view_data");
+ return evas_object_data_get(ad->naviframe, "view_data");
}
mp_layout_data_t*
MP_CHECK_NULL(obj);
return evas_object_data_get(obj, "layout_data");
}
+#endif
bool
mp_util_is_image_valid(Evas *evas, const char *path)
return output;
}
-void
-mp_util_grab_mm_keys(struct appdata *ad)
-{
- utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_NEXTSONG, OR_EXCLUSIVE_GRAB);
- utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_PREVIOUSSONG, OR_EXCLUSIVE_GRAB);
- utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_PAUSECD, OR_EXCLUSIVE_GRAB);
- utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_PLAYCD, OR_EXCLUSIVE_GRAB);
- utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_FASTFORWARD, OR_EXCLUSIVE_GRAB);
- utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_REWIND, OR_EXCLUSIVE_GRAB);
-}
-
-void
-mp_util_ungrab_mm_keys(struct appdata *ad)
-{
- utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_NEXTSONG);
- utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_PREVIOUSSONG);
- utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_PAUSECD);
- utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_PLAYCD);
- utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_FASTFORWARD);
- utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win_main), KEY_REWIND);
-}
-
+#ifndef MP_SOUND_PLAYER
void
mp_util_unset_rename(mp_layout_data_t * layout_data)
{
}
layout_data->rename_git = NULL;
layout_data->rename_mode = false;
+
//set title button sensitivity
mp_common_set_title_button_sensitivity(layout_data, layout_data->checked_count);
}
}
+#endif
bool
mp_util_is_db_updating(void)
}
/*haptic*/
+
+#define MP_VIBRATION_DEVICE 0
+
void mp_util_stop_vibration(struct appdata *ad)
{
startfunc;
MP_CHECK(ad);
int ret = -1;
- if (ad->haptic_handle > 0) {
- ret = device_haptic_stop_play(ad->haptic_handle);
- if (ret != 0)
- ERROR_TRACE("device_haptic_stop_play failed[%d]!", ret);
-
- ret = device_haptic_close(ad->haptic_handle);
- if (ret != 0)
- ERROR_TRACE("device_haptic_close failed[%d]!", ret);
- }
-
- ad->haptic_handle = 0;
+ ret = haptic_stop_device(MP_VIBRATION_DEVICE);
+ if (ret != 0)
+ ERROR_TRACE("haptic_stop_device failed[%d]!", ret);
+ ret = haptic_deinitialize();
+ if (ret != 0)
+ ERROR_TRACE("haptic_deinitialize failed[%d]!", ret);
}
static Eina_Bool _mp_util_vibration_timer_cb(void *data)
MP_CHECK_FALSE(duration > 0);
int ret = 0;
- if (ad->haptic_handle > 0) {
- DEBUG_TRACE("Remove previous haptic handle.");
- mp_util_stop_vibration(ad);
- }
- ad->haptic_handle = device_haptic_open(DEV_IDX_0, 0);
- if (ad->haptic_handle < 0) {
- ERROR_TRACE("device_haptic_open failed[%d]!", ret);
+ ret = haptic_initialize();
+ if(ret != HAPTIC_ERROR_NONE)
+ {
+ DEBUG_TRACE("Error:haptic_initialize: %d ", ret);
return FALSE;
}
mp_ecore_timer_del(ad->vib_timer);
ad->vib_timer = ecore_timer_add(duration, _mp_util_vibration_timer_cb, ad);
- char filepath[MAX_NAM_LEN+1];
- svi_get_path(SVI_TYPE_VIB, SVI_VIB_TOUCH_TOUCH, filepath, sizeof(filepath));
-
- ret = device_haptic_play_file(ad->haptic_handle, filepath, 1, HAPTIC_FEEDBACK_LEVEL_5);
-
+ ret = haptic_vibrate_monotone(MP_VIBRATION_DEVICE, duration, HAPTIC_LEVEL_AUTO);
if (ret != 0) {
- ERROR_TRACE("device_haptic_play_pattern failed[%d]!", ret);
+ ERROR_TRACE("haptic_vibrate_monotone failed[%d]!", ret);
return FALSE;
}
mp_util_is_bt_connected(void)
{
int ret = 0;
- int connected = 0;
+ bool connected = 0;
bool ret_val = FALSE;
char *bt_name = NULL;
- ret = mm_sound_route_get_a2dp_status(&connected, &bt_name);
- if (ret == MM_ERROR_NONE) {
+ ret = sound_manager_get_a2dp_status(&connected, &bt_name);
+ if (ret == SOUND_MANAGER_ERROR_NONE)
+ {
DEBUG_TRACE("Is Bluetooth A2DP On Success : [%d][%s]", connected,
bt_name);
if (connected != 0) {
void
mp_util_get_sound_path(mp_snd_path *snd_path)
{
- system_audio_route_t policy = 0;
- mm_sound_route_get_system_policy(&policy);
+ sound_device_in_e in;
+ sound_device_out_e out;
- if (policy == SYSTEM_AUDIO_ROUTE_POLICY_DEFAULT)
- {
- DEBUG_TRACE("SYSTEM_AUDIO_ROUTE_POLICY_DEFAULT");
- if (mp_util_is_bt_connected())
- *snd_path = MP_SND_PATH_BT;
- else if (mp_util_is_earjack_inserted())
- *snd_path = MP_SND_PATH_EARPHONE;
- else
- *snd_path = MP_SND_PATH_SPEAKER;
- }
- else if (policy == SYSTEM_AUDIO_ROUTE_POLICY_IGNORE_A2DP)
- {
- DEBUG_TRACE("SYSTEM_AUDIO_ROUTE_POLICY_IGNORE_A2DP");
- if (mp_util_is_earjack_inserted())
- *snd_path = MP_SND_PATH_EARPHONE;
- else
- *snd_path = MP_SND_PATH_SPEAKER;
- }
- else
- {
- DEBUG_TRACE("SYSTEM_AUDIO_ROUTE_POLICY_HANDSET_ONLY");
+ sound_manager_get_active_device(&in, &out);
+ switch(out) {
+ case SOUND_DEVICE_OUT_SPEAKER:
+ ERROR_TRACE("SOUND_DEVICE_OUT_SPEAKER");
*snd_path = MP_SND_PATH_SPEAKER;
+ break;
+
+ case SOUND_DEVICE_OUT_WIRED_ACCESSORY:
+ ERROR_TRACE("SOUND_DEVICE_OUT_WIRED_ACCESSORY");
+ *snd_path = MP_SND_PATH_EARPHONE;
+ break;
+
+ case SOUND_DEVICE_OUT_BT_A2DP:
+ ERROR_TRACE("SOUND_DEVICE_OUT_BT_A2DP");
+ *snd_path = MP_SND_PATH_BT;
+ break;
+
+ default:
+ DEBUG_TRACE("default:speaker");
+ *snd_path = MP_SND_PATH_SPEAKER;
+ break;
}
}
return return_string;
}
-inline Elm_Object_Item *
-mp_util_toolbar_append_object(Evas_Object *toolbar, Evas_Object *obj, int sel)
+bool
+mp_util_is_other_player_playing()
{
- MP_CHECK_NULL(toolbar);
+ bool ret = FALSE;
+
+ int state = 0;
+ int pid = 0;
+ if (vconf_get_int(VCONFKEY_MUSIC_STATE, &state) == 0) {
+ if (state == VCONFKEY_MUSIC_PLAY) {
+ if (vconf_get_int(MP_VCONFKEY_PLAYING_PID, &pid) == 0) {
+ if (pid != getpid()) {
+ mp_debug("## other player is playing some music ##");
+ ret = TRUE;
+ }
+ } else {
+ mp_error("vconf_get_int() error");
+ }
+ }
+ } else {
+ mp_error("vconf_get_int() error");
+ }
+
+ return ret;
+}
+
+int
+mp_commmon_check_rotate_lock(void)
+{
+ int lock = FALSE;
+ lock = -1;
+ if (!vconf_get_bool(VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, &lock))
+ {
+ mp_debug("lock state: %d", lock);
+ return lock;
+ }
+ else
+ return -1;
+}
- Elm_Object_Item *item = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(item, "object", obj);
- return item;
+int
+mp_check_battery_available(void)
+{
+ int batt_state = -1;
+
+ if (!vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &batt_state))
+ {
+ /* low battery status
+ * VCONFKEY_SYSMAN_BAT_WARNING_LOW = 15 %
+ * VCONFKEY_SYSMAN_BAT_CRITICAL_LOW = 5 %
+ * VCONFKEY_SYSMAN_BAT_POWER_OFF = 1 %
+ * since 2011. 03. 02
+ */
+ if (batt_state <= VCONFKEY_SYSMAN_BAT_POWER_OFF) //VCONFKEY_SYSMAN_BAT_POWER_OFF - 1% remaninging
+ {
+ // don't need to check changing state.
+ /*
+ if(!vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &batt_state))
+ {
+ if(batt_state ==1)
+ {
+ DEBUG_TRACE("current chargine status");
+ return 0;
+ }
+ } */
+
+ WARN_TRACE("batt_state: %d", batt_state);
+ return -1;
+ }
+ }
+ else
+ {
+ ERROR_TRACE("Fail to get battery status");
+ }
+ return 0;
+}
+
+int
+mp_check_mass_storage_mode(void)
+{
+ int mass_storage = -1;
+
+ if (!vconf_get_int(VCONFKEY_USB_STORAGE_STATUS, &mass_storage))
+ {
+ DEBUG_TRACE("current mass_storage : %d", mass_storage);
+ if (mass_storage != VCONFKEY_USB_STORAGE_STATUS_OFF)
+ return -1;
+ }
+ else
+ {
+ ERROR_TRACE("Fail to get status");
+ }
+ return 0;
+}
+
+bool
+mp_util_sleep_lock_set(bool lock)
+{
+ int ret = POWER_ERROR_NONE;
+
+ if (lock) {
+ mp_debug("sleep_lock");
+ ret = power_lock_state(POWER_STATE_SCREEN_OFF, 0);
+ } else {
+ mp_debug("sleep_unlock");
+ ret = power_unlock_state(POWER_STATE_SCREEN_OFF);
+ }
+
+ if (ret != POWER_ERROR_NONE) {
+ mp_error("pm_lock(un_lock) error.. [%d]", ret);
+ return FALSE;
+ }
+
+ return TRUE;
}
bool
return FALSE;
}
+void
+mp_util_strncpy_safe(char *x_dst, const char *x_src, int max_len)
+{
+ if (!x_src || strlen(x_src) == 0) {
+ mp_error("x_src is NULL");
+ return;
+ }
+
+ if (max_len < 1) {
+ mp_error("length is Wrong");
+ return;
+ }
+
+ strncpy(x_dst, x_src, max_len-1);
+ x_dst[max_len-1] = '\0';
+}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include "mp-view-manager.h"
#include "mp-edit-view.h"
#include "mp-playlist-view.h"
#include "mp-common.h"
#include "mp-menu.h"
#include "mp-play-view.h"
+#include "mp-ug-launch.h"
#include "mp-search.h"
#include "mp-widget.h"
#include "mp-library.h"
-#include "mp-util.h"
-
-#define MP_OPTION_HEADER_COND(type) type == MP_VIEW_CONTENT_NEW_PLAYLIST\
- || type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP\
- || type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_EDIT
typedef struct
{
{
int view_idx = -1;
mp_view_histroy_t *last_history;
+ Evas_Object *top_view = NULL;
startfunc;
Elm_Object_Item *navi_item = elm_naviframe_top_item_get(view_data->navibar);
if (navi_item)
{
- Evas_Object *top_view = elm_object_item_content_get(navi_item);
+ top_view = elm_object_item_content_get(navi_item);
MP_CHECK(top_view);
mp_view_layout_progress_timer_freeze(top_view);
last_history->view_index = view_idx;
last_history->view_layout = content;
- /*
- last_history->navi_item =
- elm_navigationbar_ex_item_push(view_data->navibar, content, "music/title_option_header");
- */
- if(MP_VIEW_CONTENT_PLAY == type || MP_OPTION_HEADER_COND(type))
+ MP_TA_ACUM_ITEM_BEGIN(" elm_naviframe_item_push(play_view)", 0);
+ if(view_idx == 0)
+ {
+ last_history->navi_item =
+ elm_naviframe_item_push(view_data->navibar, NULL, NULL, NULL, content, "tabbar");
+ }
+ else if(MP_VIEW_CONTENT_PLAY == type)
{
elm_naviframe_prev_btn_auto_pushed_set(view_data->navibar, EINA_FALSE);
last_history->navi_item =
elm_naviframe_item_push(view_data->navibar, NULL, NULL, NULL, content, "1line/music");
}
else
- last_history->navi_item =
- elm_naviframe_item_push(view_data->navibar, NULL, NULL, NULL, content, "1line/music");
-
- mp_view_manager_set_option_header_visible(last_history->navi_item, last_history->content_type);
-
- if(view_idx == 0)
{
- mp_library_controlbar_visible_set(ad, true);
- elm_naviframe_item_title_visible_set(last_history->navi_item, false);
+ if (last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST
+ || last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_EDIT
+ || last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP)
+ {
+ last_history->navi_item =
+ elm_naviframe_item_push(view_data->navibar, GET_STR("IDS_MUSIC_BODY_CREATE_PLAYLIST"), NULL, NULL, content, "1line");
+
+ Evas_Object *btn_save = NULL;
+ btn_save = elm_button_add(view_data->navibar);
+ elm_object_style_set(btn_save, "naviframe/title/default");
+ evas_object_size_hint_align_set(btn_save, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ if(last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST)
+ evas_object_smart_callback_add(btn_save, "clicked", mp_playlist_view_create_new_done_cb, view_data);
+ else if(last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP)
+ evas_object_smart_callback_add(btn_save, "clicked", mp_menu_add_to_play_list_done_create_cb, ad);
+ else
+ evas_object_smart_callback_add(btn_save, "clicked", mp_edit_view_create_new_done_cb, evas_object_data_get(top_view, "layout_data"));
+
+ elm_object_text_set(btn_save, GET_SYS_STR("IDS_COM_SK_SAVE"));
+ mp_language_mgr_object_item_text_ID_set(last_history->navi_item, "IDS_COM_SK_SAVE");
+ evas_object_show(btn_save);
+ elm_object_item_part_content_set(last_history->navi_item, "title_left_btn", btn_save);
+
+ Evas_Object *btn_cancel = elm_button_add(view_data->navibar);
+ elm_object_style_set(btn_cancel, "naviframe/title/default");
+ evas_object_size_hint_align_set(btn_cancel, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_smart_callback_add(btn_cancel, "clicked", mp_playlist_view_create_new_cancel_cb, view_data);
+ elm_object_text_set(btn_cancel, GET_SYS_STR("IDS_COM_SK_CANCEL"));
+ mp_language_mgr_object_item_text_ID_set(last_history->navi_item, "IDS_COM_SK_CANCEL");
+ evas_object_show(btn_cancel);
+ elm_object_item_part_content_set(last_history->navi_item, "title_right_btn", btn_cancel);
+
+ mp_view_manager_set_controlbar_visible(last_history->navi_item, false);
+ }
+ else
+ {
+ last_history->navi_item =
+ elm_naviframe_item_push(view_data->navibar, NULL, NULL, NULL, content, "1line");
+ }
}
- else
- mp_library_controlbar_visible_set(ad, false);
+ MP_TA_ACUM_ITEM_END(" elm_naviframe_item_push(play_view)", 0);
+
+ mp_language_mgr_register_object_item(last_history->navi_item, NULL);
evas_object_data_set(content, "navi_item", last_history->navi_item);
- if (view_idx) //It shouldn't be set true when first navi content is pushed. Effect finished callback not called in this case..
+ if (view_idx) //Do not set as true when first push. Effect finished callback not called in this case..
ad->navi_effect_in_progress = TRUE;
ad->view_history = g_list_append(ad->view_history, last_history);
mp_view_manager_unswallow_info_ug_layout(struct appdata *ad)
{
MP_CHECK(ad);
+ if(ad->info_ug_base)
+ {
+ edje_object_part_unswallow(ad->info_ug_base, ad->info_ug_layout);
+ evas_object_hide(ad->info_ug_layout);
+ mp_ug_send_message(ad, MP_UG_MESSAGE_DEL);
+ }
}
void
{
elm_naviframe_item_pop(view_data->navibar);
ad->navi_effect_in_progress = TRUE;
- SAFE_FREE(view_item->data);
+ mp_language_mgr_unregister_object_item(last_history->navi_item);
+ SAFE_FREE(last_history);
ad->view_history =
g_list_delete_link(ad->view_history, view_item);
view_item = g_list_last(ad->view_history);
elm_naviframe_item_pop_to(elm_naviframe_bottom_item_get(view_data->navibar));
while (last_history->view_index > 0)
{
- SAFE_FREE(view_item->data);
+ mp_language_mgr_unregister_object_item(last_history->navi_item);
+ SAFE_FREE(last_history);
ad->view_history =
g_list_delete_link(ad->view_history, view_item);
view_item = g_list_last(ad->view_history);
}
}
- mp_view_manager_set_option_header_visible(last_history->navi_item, last_history->content_type);
-
Elm_Object_Item *navi_item = elm_naviframe_top_item_get(view_data->navibar);
MP_CHECK(navi_item);
Evas_Object *top_view = elm_object_item_content_get(navi_item);
mp_view_manager_unswallow_info_ug_layout(ad);
- if (last_history->content_type != type) {
- while (last_history->view_index > 0)
+ while (last_history->view_index > 0)
+ {
+ DEBUG_TRACE("Content type: %d", last_history->content_type);
+ if (last_history->content_type == type)
{
- DEBUG_TRACE("Content type: %d", last_history->content_type);
- if (last_history->content_type == type)
- {
- find_view = true;
- }
- SAFE_FREE(view_item->data);
- ad->view_history =
- g_list_delete_link(ad->view_history, view_item);
- view_item = g_list_last(ad->view_history);
- MP_CHECK(view_item);
- last_history = view_item->data;
+ find_view = true;
+ }
+ mp_language_mgr_unregister_object_item(last_history->navi_item);
+ SAFE_FREE(last_history);
+ ad->view_history =
+ g_list_delete_link(ad->view_history, view_item);
+ view_item = g_list_last(ad->view_history);
+ MP_CHECK(view_item);
+ last_history = view_item->data;
- if (find_view)
- {
- elm_naviframe_item_pop_to(last_history->navi_item);
- break;
- }
+ if (find_view)
+ {
+ elm_naviframe_item_pop_to(last_history->navi_item);
+ break;
}
}
- mp_view_manager_set_option_header_visible(last_history->navi_item, last_history->content_type);
-
Elm_Object_Item *navi_item = elm_naviframe_top_item_get(view_data->navibar);
MP_CHECK(navi_item);
Evas_Object *top_view = elm_object_item_content_get(navi_item);
mp_view_manager_get_last_view_layout(struct appdata * ad)
{
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
+ MP_CHECK_NULL(ad->naviframe);
- Evas_Object *cur_view = ad->library->cur_view;
- MP_CHECK_NULL(cur_view);
+ Evas_Object *cur_view = ad->naviframe;
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
MP_CHECK_NULL(cur_view_data);
{
startfunc;
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
+ MP_CHECK_NULL(ad->naviframe);
mp_view_histroy_t *history;
- Evas_Object *cur_view = ad->library->cur_view;
- MP_CHECK_NULL(cur_view);
+ Evas_Object *cur_view = ad->naviframe;
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
MP_CHECK_NULL(cur_view_data);
MP_CHECK(ad);
navi_item = mp_view_manager_get_play_view_navi_item(ad);
- if(navi_item)
+ if(navi_item) {
+ MP_TA_ACUM_ITEM_BEGIN(" elm_object_item_text_set(play_view_title)", 0);
elm_object_item_text_set(navi_item, title);
+ MP_TA_ACUM_ITEM_END(" elm_object_item_text_set(play_view_title)", 0);
+ }
}
mp_view_manager_get_first_view_layout(struct appdata *ad)
{
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
- Evas_Object *cur_view = ad->library->cur_view;
+ Evas_Object *cur_view = ad->naviframe;
MP_CHECK_NULL(cur_view);
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
mp_view_histroy_t *history = NULL;
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
- Evas_Object *cur_view = ad->library->cur_view;
+ Evas_Object *cur_view = ad->naviframe;
MP_CHECK_NULL(cur_view);
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
mp_view_manager_is_play_view(struct appdata * ad)
{
MP_CHECK_FALSE(ad);
- MP_CHECK_FALSE(ad->library);
- Evas_Object *cur_view = ad->library->cur_view;
+ Evas_Object *cur_view = ad->naviframe;
MP_CHECK_FALSE(cur_view);
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
mp_view_histroy_t *history = NULL;
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
- Evas_Object *cur_view = ad->library->cur_view;
+ Evas_Object *cur_view = ad->naviframe;
MP_CHECK_NULL(cur_view);
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
Evas_Object *button = NULL;
if(cb)
{
- button = mp_widget_create_button(navibar, "naviframe/back_btn/music/default", NULL, NULL, cb, data);
+ button = mp_widget_create_button(navibar, "naviframe/back_btn/default", NULL, NULL, cb, data);
elm_object_item_part_content_set(last_history->navi_item, ELM_NAVIFRAME_ITEM_PREV_BTN, button);
}
else
{
last_history->controlbar = elm_toolbar_add(navibar);
elm_toolbar_shrink_mode_set(last_history->controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
- if(MP_OPTION_HEADER_COND(last_history->content_type))
- {
- elm_object_style_set(last_history->controlbar, "music/naviframe");
- elm_object_item_part_content_set(last_history->navi_item, ELM_NAVIFRAME_ITEM_OPTIONHEADER, last_history->controlbar);
- }
- else
- {
- elm_object_style_set(last_history->controlbar, "music/naviframe");
- elm_object_item_part_content_set(last_history->navi_item, ELM_NAVIFRAME_ITEM_CONTROLBAR, last_history->controlbar);
- }
+ elm_object_style_set(last_history->controlbar, "naviframe");
+ elm_object_item_part_content_set(last_history->navi_item, ELM_NAVIFRAME_ITEM_CONTROLBAR, last_history->controlbar);
}
control_bar = last_history->controlbar;
MP_CHECK(control_bar);
- if(MP_OPTION_HEADER_COND(last_history->content_type))
- {
- if (label || icon_path)
- {
-
- button = elm_button_add(control_bar);
- elm_object_style_set(button, "music/navigationbar_control/multiline");
- evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5);
+ if(!icon_path && !label)
+ {
+ Elm_Object_Item *item = elm_toolbar_item_append(control_bar, NULL, NULL, NULL, NULL);
+ elm_object_item_part_content_set(item, "object", button);
+ elm_object_item_disabled_set(item, EINA_TRUE);
+ last_history->control_buttons[type] = item;
+ }
+ else
+ {
+ button = elm_button_add(control_bar);
+ elm_object_style_set(button, "bottom_control");
- if (label)
- elm_object_text_set(button, label);
+ evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5);
- evas_object_smart_callback_add(button, "clicked", cb, data);
- elm_object_focus_allow_set(button, EINA_FALSE); /* Cancel the rename mode without be focused */
+ evas_object_smart_callback_add(button, "clicked", cb, data);
+ elm_object_focus_allow_set(button, EINA_FALSE); /* Cancel the rename mode without be focused */
- evas_object_show(button);
+ if (icon_path) {
+ Evas_Object *icon = elm_icon_add(control_bar);
+ elm_icon_file_set(icon, icon_path, NULL);
+ elm_object_content_set(button, icon);
}
- last_history->control_buttons[type] = elm_toolbar_item_append(control_bar, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(last_history->control_buttons[type], "object", button);
+ evas_object_show(button);
- if (label)
- {
- if (!strcmp(GET_SYS_STR("IDS_COM_SK_EDIT"), label) ||!strcmp(GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), label))
- {
- last_history->edit_button = last_history->control_buttons[type];
- }
- else if (!strcmp(GET_SYS_STR("IDS_COM_SK_SEARCH"), label))
- {
- last_history->search_button = last_history->control_buttons[type];
- }
- else if (!strcmp(GET_SYS_STR("IDS_COM_SK_CANCEL"), label))
- {
- last_history->cancel_button = last_history->control_buttons[type];
- }
- }
+ Elm_Object_Item *item = elm_toolbar_item_append(control_bar, icon_path, NULL, cb, data);
+ last_history->control_buttons[type] = item;
}
- else
+
+ if (label)
{
- if(!icon_path && !label) {
- last_history->control_buttons[type] = elm_toolbar_item_append(control_bar, NULL, NULL, NULL, NULL);
- elm_object_item_disabled_set(last_history->control_buttons[type], EINA_TRUE);
+ if (!strcmp(GET_SYS_STR("IDS_COM_SK_EDIT"), label) ||!strcmp(GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), label))
+ {
+ last_history->edit_button = last_history->control_buttons[type];
}
- else
+ else if (!strcmp(GET_SYS_STR("IDS_COM_SK_SEARCH"), label))
{
- button = elm_button_add(control_bar);
- elm_object_style_set(button, "music/bottom_control");
-
- evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5);
-
- evas_object_smart_callback_add(button, "clicked", cb, data);
- elm_object_focus_allow_set(button, EINA_FALSE); /* Cancel the rename mode without be focused */
-
- if(icon_path)
- {
- Evas_Object *icon = elm_icon_add(control_bar);
- elm_icon_file_set(icon, icon_path, NULL);
- elm_object_content_set(button, icon);
- }
-
- evas_object_show(button);
-
- Elm_Object_Item *item = elm_toolbar_item_append(control_bar, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(item, "object", button);
- last_history->control_buttons[type] = item;
+ last_history->search_button = last_history->control_buttons[type];
}
-
- if (label)
+ else if (!strcmp(GET_SYS_STR("IDS_COM_SK_CANCEL"), label))
{
- if (!strcmp(GET_SYS_STR("IDS_COM_SK_EDIT"), label) ||!strcmp(GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), label))
- {
- last_history->edit_button = last_history->control_buttons[type];
- }
- else if (!strcmp(GET_SYS_STR("IDS_COM_SK_SEARCH"), label))
- {
- last_history->search_button = last_history->control_buttons[type];
- }
- else if (!strcmp(GET_SYS_STR("IDS_COM_SK_CANCEL"), label))
- {
- last_history->cancel_button = last_history->control_buttons[type];
- }
+ last_history->cancel_button = last_history->control_buttons[type];
}
}
}
void
-mp_view_manager_set_title_and_buttons(view_data_t * view_data, char *title, void *data)
+mp_view_manager_set_title_and_buttons(view_data_t * view_data, char *text_ID, void *data)
{
startfunc;
- Evas_Object *content = NULL;
+ struct appdata *ad = NULL;
+ GList *last_node = NULL;
+ mp_view_histroy_t *last_history = NULL;
+ Evas_Object *navibar = NULL;
+ char *title = NULL;
int i = 0;
MP_CHECK(view_data);
MP_CHECK_VIEW_DATA(view_data);
- struct appdata *ad = view_data->ad;
+ ad = view_data->ad;
MP_CHECK(ad);
- GList *last_item = g_list_last(ad->view_history);
- MP_CHECK(last_item);
+ last_node = g_list_last(ad->view_history);
+ MP_CHECK(last_node);
- mp_view_histroy_t *last_history = last_item->data;
+ last_history = last_node->data;
MP_CHECK(last_history);
- content = last_history->view_layout;
- MP_CHECK(content);
-
- Evas_Object *navibar = view_data->navibar;
+ navibar = ad->naviframe;
MP_CHECK(navibar);
+ if(text_ID && strstr(text_ID, "IDS_COM"))
+ title = GET_SYS_STR(text_ID);
+ else
+ title = GET_STR(text_ID);
+
if (title)
{
DEBUG_TRACE("title: %s", title);
+ if (last_history->content_type == MP_VIEW_CONTENT_PLAY)
+ MP_TA_ACUM_ITEM_BEGIN(" elm_object_item_text_set(play_view_first)", 0);
+ else
+ MP_TA_ACUM_ITEM_BEGIN(" elm_object_item_text_set(track_view)", 0);
elm_object_item_text_set(last_history->navi_item, title);
+ mp_language_mgr_object_item_text_ID_set(last_history->navi_item, text_ID);
+ if (last_history->content_type == MP_VIEW_CONTENT_PLAY)
+ MP_TA_ACUM_ITEM_END(" elm_object_item_text_set(play_view_first)", 0);
+ else
+ MP_TA_ACUM_ITEM_END(" elm_object_item_text_set(track_view)", 0);
}
//delete all buttons...
{
mp_layout_data_t *layout_data = evas_object_data_get(last_history->view_layout, "layout_data");
MP_CHECK(layout_data);
+ DEBUG_TRACE("layout_data: 0x%x", layout_data);
MP_CHECK_LAYOUT_DATA(layout_data);
DEBUG_TRACE("MP_VIEW_CONTENT_LIST. category: %d, rename mode: %d, add tracks : %d ",
if (layout_data->ad->b_add_tracks)
{
DEBUG_TRACE("");
- _mp_view_manager_set_title_button(navibar, last_history, GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"),
- MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON1,
- mp_track_view_add_to_playlist_done_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_CANCEL"), MP_ICON_NAVI_CANCEL,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_track_view_add_to_playlist_cancel_cb, data);
_mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
_mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
_mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history,
- GET_SYS_STR("IDS_COM_SK_CANCEL"), MP_ICON_NAVI_CANCEL,
- MP_NAVI_CONTROL_BUTTON5,
- mp_track_view_add_to_playlist_cancel_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"),
+ MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON5,
+ mp_track_view_add_to_playlist_done_cb, data);
}
else
{
MP_NAVI_CONTROL_BUTTON1,
mp_edit_view_delete_cb, data);
}
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_SK_SHARE"),
+ MP_ICON_NAVI_SHARE, MP_NAVI_CONTROL_BUTTON2,
+ mp_edit_view_share_cb, data);
_mp_view_manager_set_title_button(navibar, last_history,
GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), MP_ICON_NAVI_ADD_TO_PLST,
MP_NAVI_CONTROL_BUTTON3,
mp_edit_view_add_to_plst_cb, data);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
_mp_view_manager_set_title_button(navibar, last_history,
GET_SYS_STR("IDS_COM_SK_CANCEL"),
- MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON5,
+ MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON4,
mp_edit_view_cencel_cb, data);
-
}
else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
{
GET_SYS_STR("IDS_COM_SK_CANCEL"),
MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON5,
mp_edit_view_cencel_cb, data);
-
}
else
{
if (title)
layout_data->navibar_title = g_strdup(title);
- if (AUDIO_SVC_TRACK_BY_ALBUM == layout_data->track_type
- || AUDIO_SVC_TRACK_BY_ARTIST == layout_data->track_type)
+ if (MP_TRACK_BY_ALBUM == layout_data->track_type
+ || MP_TRACK_BY_ARTIST == layout_data->track_type)
layout_data->navibar_title = g_strdup(layout_data->type_str);
layout_data->callback_data = data;
DEBUG_TRACE("");
_mp_view_manager_set_title_button(navibar, last_history,
GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"),
- MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON5,
+ MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON1,
mp_track_view_add_to_playlist_done_cb, data);
_mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
_mp_view_manager_set_title_button(navibar, last_history,
GET_SYS_STR("IDS_COM_SK_CANCEL"),
- MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON1,
+ MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON5,
mp_track_view_add_to_playlist_cancel_cb,
data);
}
- else if (layout_data->track_type == AUDIO_SVC_TRACK_BY_PLAYLIST)
+ else if (layout_data->track_type == MP_TRACK_BY_PLAYLIST)
{
if (!mp_view_manager_get_view_layout(ad, MP_VIEW_CONTENT_SEARCH))
{
mp_common_edit_button_cb, data);
_mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+
if (layout_data->playlist_id > 0)
_mp_view_manager_set_title_button(navibar, last_history,
GET_SYS_STR("IDS_COM_ADD"),
data);
_mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
+ MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
}
else
{
DEBUG_TRACE("");
_mp_view_manager_set_title_button(navibar, last_history,
GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"),
- MP_ICON_NAVI_EDIT,
+ MP_ICON_NAVI_ADD_TO_PLST,
MP_NAVI_CONTROL_BUTTON1,
mp_common_edit_button_cb,
data);
DEBUG_TRACE("");
_mp_view_manager_set_title_button(navibar, last_history,
GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"),
- MP_ICON_NAVI_EDIT,
+ MP_ICON_NAVI_ADD_TO_PLST,
MP_NAVI_CONTROL_BUTTON1,
mp_common_edit_button_cb,
data);
}
}
- else if (last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST)
- {
- DEBUG_TRACE("MP_VIEW_CONTENT_NEW_PLAYLIST. ");
- mp_layout_data_t *layout_data = evas_object_data_get(last_history->view_layout, "layout_data");
- if (layout_data)
- {
- MP_CHECK_LAYOUT_DATA(layout_data);
- if (layout_data->view_mode == MP_VIEW_MODE_EDIT)
- {
- DEBUG_TRACE("");
- _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_DONE"),
- MP_ICON_NAVI_DONE, MP_NAVI_CONTROL_BUTTON1,
- mp_edit_view_create_new_done_cb, data);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history,
- GET_SYS_STR("IDS_COM_SK_CANCEL"), MP_ICON_NAVI_CANCEL,
- MP_NAVI_CONTROL_BUTTON4,
- mp_edit_view_create_new_cancel_cb, data);
- }
- }
- else
- {
- DEBUG_TRACE("");
- _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_DONE"),
- MP_ICON_NAVI_DONE, MP_NAVI_CONTROL_BUTTON1,
- mp_playlist_view_create_new_done_cb, data);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_CANCEL"),
- MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON5,
- mp_playlist_view_create_new_cancel_cb, data);
- }
- }
- else if (last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP)
- {
- DEBUG_TRACE("MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP. ");
- _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_DONE"),
- MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON1,
- mp_menu_add_to_play_list_done_create_cb, data);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_CANCEL"),
- MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON4,
- mp_menu_add_to_play_list_cancel_create_cb, data);
- }
- else if (last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_EDIT)
- {
- DEBUG_TRACE("MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP. ");
- _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_DONE"),
- MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON1,
- mp_edit_view_create_new_done_cb, data);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
- MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
- _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_CANCEL"),
- MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON4,
- mp_edit_view_create_new_cancel_cb, data);
- }
else if (last_history->content_type == MP_VIEW_CONTENT_SEARCH)
{
DEBUG_TRACE("MP_VIEW_CONTENT_SEARCH. ");
void
mp_view_manager_thaw_progress_timer(struct appdata *ad)
{
- mp_retm_if(!ad->prohibit_aul_relaunch, "app is in background. not thaw progress timer.. ");
+ mp_retm_if(!ad->app_is_foreground, "app is in background. not thaw progress timer.. ");
Evas_Object *top_view = mp_view_manager_get_last_view_layout(ad);
if (top_view)
mp_view_manager_get_edit_controlbar_item(struct appdata *ad)
{
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
- Evas_Object *cur_view = ad->library->cur_view;
+ Evas_Object *cur_view = ad->naviframe;
MP_CHECK_NULL(cur_view);
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
mp_view_manager_get_search_controlbar_item(struct appdata * ad)
{
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
- Evas_Object *cur_view = ad->library->cur_view;
+ Evas_Object *cur_view = ad->naviframe;
MP_CHECK_NULL(cur_view);
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
mp_view_manager_get_cancel_controlbar_item(struct appdata * ad)
{
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
- Evas_Object *cur_view = ad->library->cur_view;
+ Evas_Object *cur_view = ad->naviframe;
MP_CHECK_NULL(cur_view);
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
mp_view_manager_get_controlbar_item(struct appdata * ad, mp_navi_control_button_type type)
{
MP_CHECK_NULL(ad);
- MP_CHECK_NULL(ad->library);
- Evas_Object *cur_view = ad->library->cur_view;
+ Evas_Object *cur_view = ad->naviframe;
MP_CHECK_NULL(cur_view);
view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
return last_history->control_buttons[type];
}
+Elm_Object_Item *
+mp_view_manager_get_navi_item(struct appdata * ad)
+{
+ MP_CHECK_NULL(ad);
+
+ Evas_Object *cur_view = ad->naviframe;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *last_item = g_list_last(ad->view_history);
+ MP_CHECK_NULL(last_item);
+
+ mp_view_histroy_t *last_history = last_item->data;
+ MP_CHECK_NULL(last_history);
+
+ return last_history->navi_item;
+}
+
void
mp_view_manager_pop_info_view(struct appdata *ad)
{
MP_CHECK(ad);
- MP_CHECK(ad->library);
- MP_CHECK(ad->playing_view);
+ MP_CHECK(ad->naviframe);
- view_data_t *view_data = evas_object_data_get(ad->library->cur_view, "view_data");
+ view_data_t *view_data = evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK(view_data);
- mp_view_manager_pop_to_view_content(view_data, MP_VIEW_CONTENT_PLAY);
+ if(ad->info_ug_base)
+ mp_view_manager_pop_to_view_content(view_data, MP_VIEW_CONTENT_PLAY);
MP_CHECK(ad->playing_view);
- if (ad->playing_view->layout)
- evas_object_show(ad->playing_view->layout);
+ evas_object_show(ad->playing_view->layout);
}
void
mp_view_manager_pop_play_view(struct appdata *ad)
{
MP_CHECK(ad);
- MP_CHECK(ad->library);
+ MP_CHECK(ad->naviframe);
view_data_t *view_data;
- view_data = evas_object_data_get(ad->library->cur_view, "view_data");
+ view_data = evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK(view_data);
if (ad->playing_view)
{
MP_CHECK(ad);
- GList *view_item = g_list_last(ad->view_history);
-
- while (ad->view_history)
+ GList *view_item = ad->view_history;
+ while (view_item)
{
- SAFE_FREE(view_item->data);
- ad->view_history =
- g_list_delete_link(ad->view_history, ad->view_history);
+ mp_view_histroy_t *last_history = view_item->data;
+ mp_language_mgr_unregister_object_item(last_history->navi_item);
+ SAFE_FREE(last_history);
+ view_item = g_list_delete_link(view_item, view_item);
}
-
+ ad->view_history = NULL;
}
void
-mp_view_manager_set_option_header_visible(Elm_Object_Item *navi_item, mp_view_content_t content_type)
+mp_view_manager_set_controlbar_visible(Elm_Object_Item *navi_item, bool visible)
{
- DEBUG_TRACE("content type: %d", content_type);
- if(MP_OPTION_HEADER_COND(content_type))
- elm_object_item_signal_emit(navi_item, ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_OPEN);
- else
- elm_object_item_signal_emit(navi_item, ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_CLOSE);
+ startfunc;
+ MP_CHECK(navi_item);
+ DEBUG_TRACE("visible: %d", visible);
+ if(visible)
+ elm_object_item_signal_emit(navi_item, "elm,state,controlbar,open", "");
+ else
+ elm_object_item_signal_emit(navi_item, "elm,state,controlbar,close", "");
}
-
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#include "mp-widget.h"
#include "mp-player-debug.h"
-#include "mp-common.h"
#include "mp-util.h"
#include "mp-popup.h"
+#ifndef MP_SOUND_PLAYER
+#include "mp-common.h"
+#endif
#define MAX_LEN_VIB_DURATION 0.5
+static void _mp_widget_genlist_flick_left_cb(void *data, Evas_Object * obj, void *event_info);
+static void _mp_widget_genlist_flick_right_cb(void *data, Evas_Object * obj, void *event_info);
+static void _mp_widget_genlist_flick_stop_cb(void *data, Evas_Object * obj, void *event_info);
+static void _mp_widget_realize_genlist_cb(void *data, Evas_Object * obj, void *event_info);
+
+
+static Evas_Object *g_main_win;
+
+
static void
-_mp_widget_genlist_flick_start_cb(void *data, Evas_Object * obj, void *event_info)
+_mp_widget_genlist_flick_left_cb(void *data, Evas_Object * obj, void *event_info)
{
- startfunc;
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+ if(ad->vertical_scroll)
+ return;
+ elm_object_scroll_freeze_push(obj);
+}
+
+static void
+_mp_widget_genlist_flick_right_cb(void *data, Evas_Object * obj, void *event_info)
+{
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+ if(ad->vertical_scroll)
+ return;
elm_object_scroll_freeze_push(obj);
}
static void
_mp_widget_genlist_flick_stop_cb(void *data, Evas_Object * obj, void *event_info)
{
- startfunc;
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+ ad->vertical_scroll = false;
elm_object_scroll_freeze_pop(obj);
}
+static void
+_mp_widget_realize_genlist_cb(void *data, Evas_Object * obj, void *event_info)
+{
+
+}
+
Evas_Object *
mp_widget_navigation_new(Evas_Object * parent, struct appdata *ad)
{
mp_retv_if(parent == NULL, NULL);
navi_bar = elm_naviframe_add(parent);
mp_retvm_if(navi_bar == NULL, NULL, "Fail to create navigation bar");
+#ifndef MP_SOUND_PLAYER
evas_object_smart_callback_add(navi_bar, "transition,finished", mp_common_navigationbar_finish_effect, ad);
+#endif
evas_object_show(navi_bar);
return navi_bar;
}
+static void
+_mp_widget_gl_mode_right(void *data, Evas_Object * obj, void *event_info)
+{
+ MP_CHECK(obj);
+ MP_CHECK(event_info);
+
+ /* reset old sweep item mode */
+ mp_util_reset_genlist_mode_item(obj);
+
+ // disable sweep if edit mode.
+ MP_CHECK(elm_genlist_decorate_mode_get(obj) == EINA_FALSE);
+ MP_CHECK(elm_genlist_item_flip_get(event_info) == EINA_FALSE);
+ // Start genlist sweep
+ elm_genlist_item_decorate_mode_set(event_info, "slide", EINA_TRUE);
+ elm_genlist_item_select_mode_set(event_info, ELM_OBJECT_SELECT_MODE_NONE);
+}
+
+static void
+_mp_widget_gl_mode_left(void *data, Evas_Object * obj, void *event_info)
+{
+ MP_CHECK(obj);
+ MP_CHECK(event_info);
+ // disable sweep if edit mode.
+ MP_CHECK(elm_genlist_decorate_mode_get(obj) == EINA_FALSE);
+ MP_CHECK(elm_genlist_item_flip_get(event_info) == EINA_FALSE);
+ // Finish genlist sweep
+ elm_genlist_item_decorate_mode_set(event_info, "slide", EINA_FALSE);
+ elm_genlist_item_select_mode_set(event_info, ELM_OBJECT_SELECT_MODE_DEFAULT);
+}
+
+static void
+_mp_widget_gl_mode_cancel(void *data, Evas_Object * obj, void *event_info)
+{
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+ MP_CHECK(obj);
+
+ mp_util_reset_genlist_mode_item(obj);
+
+ ad->vertical_scroll = true;
+}
+
Evas_Object *
mp_widget_genlist_create(struct appdata *ad, Evas_Object * parent, bool homogeneous)
{
Evas_Object *list = NULL;
+ MP_TA_ACUM_ITEM_BEGIN("elm_genlist_add()", 0);
list = elm_genlist_add(parent);
+ MP_TA_ACUM_ITEM_END("elm_genlist_add()", 0);
CHECK(list);
+ evas_object_data_set(list, "ap", ad);
evas_object_show(list);
elm_genlist_mode_set(list, ELM_LIST_COMPRESS);
elm_genlist_homogeneous_set(list, homogeneous);
+
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_smart_callback_add(list, "realized", _mp_widget_realize_genlist_cb, ad);
- evas_object_smart_callback_add(list, "drag,start,left", _mp_widget_genlist_flick_start_cb, ad);
- evas_object_smart_callback_add(list, "drag,start,right", _mp_widget_genlist_flick_start_cb, ad);
+ evas_object_smart_callback_add(list, "drag,start,left", _mp_widget_genlist_flick_left_cb, ad);
+ evas_object_smart_callback_add(list, "drag,start,right", _mp_widget_genlist_flick_right_cb, ad);
evas_object_smart_callback_add(list, "drag,stop", _mp_widget_genlist_flick_stop_cb, ad);
+ evas_object_smart_callback_add(list, "drag,start,right", _mp_widget_gl_mode_right, NULL);
+ evas_object_smart_callback_add(list, "drag,start,left", _mp_widget_gl_mode_left, NULL);
+ evas_object_smart_callback_add(list, "drag,start,up", _mp_widget_gl_mode_cancel, ad);
+ evas_object_smart_callback_add(list, "drag,start,down", _mp_widget_gl_mode_cancel, ad);
+
return list;
}
_mp_widget_lowbattery_del_cb(void *data, Evas * e, Evas_Object * eo, void *event_info)
{
struct appdata *ad = (struct appdata *)data;
- ad->popup[MP_POPUP_NORAML] = NULL;
+ ad->popup[MP_POPUP_NORMAL] = NULL;
}
static void
_mp_widget_lowbattery_res_cb(void *data, Evas_Object * obj, void *event_info)
{
- evas_object_del(obj);
-
- return;
+ mp_evas_object_del(obj);
}
bool
if (mp_check_battery_available())
{
- Evas_Object *popup = elm_popup_add(parent);
- mp_popup_desc_set(popup, GET_SYS_STR("IDS_COM_BODY_LOW_BATTERY"));
- mp_popup_set_response_cb(popup, _mp_widget_lowbattery_res_cb, ad);
- mp_popup_button_set(popup, "button1", GET_SYS_STR("IDS_COM_SK_OK"), MP_POPUP_YES);
+ Evas_Object *popup = mp_popup_create(ad->win_main, MP_POPUP_NORMAL, NULL, NULL, _mp_widget_lowbattery_res_cb, ad);
+ elm_object_text_set(popup, GET_SYS_STR("IDS_COM_BODY_LOW_BATTERY"));
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_SK_OK"), 0);
evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _mp_widget_lowbattery_del_cb, ad);
evas_object_show(popup);
return TRUE;
}
-bool
-mp_widget_load_fastscroller(Evas_Object * index, struct music_list_item * item, char **latest_string)
+static void
+_mp_widget_text_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
{
- char *current_group_title = NULL;
- char *item_value = NULL;
-
- MP_CHECK_FALSE(index);
- MP_CHECK_FALSE(item);
-
- audio_svc_track_data_type_e item_type = AUDIO_SVC_TRACK_DATA_TITLE;
- bool make_group_title = false;
-
-
- struct appdata *ad = item->ad;
- MP_CHECK_FALSE(ad);
-
- item_type = (int)evas_object_data_get(index, MP_FAST_SCROLLER_TYPE);
-
- item_value = mp_util_item_get_value_by_type(item_type, item);
-
- if (item_value)
- {
- if (*latest_string)
- {
- char *title_initial = mp_util_get_utf8_initial(item_value);
-
- if (title_initial)
- {
- if (strcmp(*latest_string, title_initial) != 0)
- {
- make_group_title = TRUE;
- current_group_title = title_initial;
- }
- else
- {
- make_group_title = false;
- IF_FREE(title_initial);
- }
- }
- }
- else
- {
- make_group_title = true;
- current_group_title = mp_util_get_utf8_initial(item_value);
- mp_debug("latest_set_group is invalid=%s", current_group_title);
- }
- }
-
- if (current_group_title && make_group_title)
- {
- mp_debug("current_group_title =%s", current_group_title);
- elm_index_item_append(index, current_group_title, NULL, item->list_item);
- IF_FREE(*latest_string);
- *latest_string = strdup(current_group_title);
- }
-
- IF_FREE(current_group_title);
- IF_FREE(item_value);
+ mp_evas_object_del(obj);
- return true;
+ struct appdata *ad = data;
+ MP_CHECK(ad);
+ ad->notify_delete = NULL;
}
-
int
mp_widget_text_popup(void *data, const char *message)
{
struct appdata *ad = data;
Evas_Object *popup;
- popup = elm_popup_add(ad->win_main);
+ popup = mp_popup_create(ad->win_main, MP_POPUP_NOTIFY, NULL, ad, _mp_widget_text_popup_timeout_cb, ad);
ad->notify_delete = popup;
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- mp_popup_desc_set(popup, message);
- mp_popup_block_clicked_set(popup);
- mp_popup_timeout_set(popup, 2.0);
+ elm_object_text_set(popup, message);
+ mp_popup_timeout_set(popup, MP_POPUP_TIMEOUT);
evas_object_show(popup);
return 0;
}
elm_win_resize_object_add(parent, bg);
evas_object_color_set(bg, 37, 37, 37, 255);
evas_object_show(bg);
+
return bg;
}
elm_entry_entry_set(entry, "");
}
+
Evas_Object *
mp_widget_create_editfield(Evas_Object * parent, int limit_size, char *guide_txt, struct appdata *ad)
{
entry = elm_entry_add(editfield);
MP_CHECK_NULL(entry);
- elm_object_style_set(entry, "music/default");
+ elm_object_style_set(entry, "default");
elm_entry_single_line_set(entry, EINA_TRUE);
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_NONE);
elm_object_part_text_set(editfield, "elm.guidetext", guide_txt);
return editfield;
+
}
Evas_Object *
return entry;
}
-
Evas_Object *
mp_widget_create_title_btn(Evas_Object *parent, const char *text, const char * icon_path, Evas_Smart_Cb func, void *data)
{
Evas_Object *btn = elm_button_add(parent);
Evas_Object * icon = NULL;
MP_CHECK_NULL(btn);
+
if(text)
elm_object_text_set(btn, text);
else if(icon_path)
MP_CHECK_NULL(icon);
elm_icon_file_set(icon, icon_path, NULL);
elm_object_content_set(btn, icon);
- elm_object_style_set(btn, "music/title_button");
+ elm_object_style_set(btn, "title_button");
}
evas_object_smart_callback_add(btn, "clicked", func, data);
return btn;
}
+
+Evas_Object *
+mp_widget_create_layout_main(Evas_Object * parent)
+{
+ Evas_Object *layout;
+
+ mp_retv_if(parent == NULL, NULL);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_layout_add", 0);
+ layout = elm_layout_add(parent);
+ MP_TA_ACUM_ITEM_END(" elm_layout_add", 0);
+ mp_retvm_if(layout == NULL, NULL, "Failed elm_layout_add.\n");
+
+ MP_TA_ACUM_ITEM_BEGIN(" elm_layout_theme_set()", 0);
+ const char *profile = elm_config_profile_get();
+ mp_debug("elm_profile = %s", profile);
+ if (!g_strcmp0(profile, "desktop"))
+ elm_layout_theme_set(layout, "layout", "application", "noindicator");
+ else
+ elm_layout_theme_set(layout, "layout", "application", "default");
+ MP_TA_ACUM_ITEM_END(" elm_layout_theme_set()", 0);
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, layout);
+
+ evas_object_show(layout);
+
+ return layout;
+}
+
+inline Evas_Object *
+mp_common_load_edj(Evas_Object * parent, const char *file, const char *group)
+{
+ Evas_Object *eo = NULL;
+ int r = -1;
+
+ eo = elm_layout_add(parent);
+ if (eo)
+ {
+ r = elm_layout_file_set(eo, file, group);
+ if (!r)
+ {
+ evas_object_del(eo);
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(eo);
+ }
+
+ return eo;
+}
+
+static void
+_mp_common_win_del(void *data, Evas_Object * obj, void *event)
+{
+ elm_exit();
+}
+
+Evas_Object *
+mp_create_win(const char *name)
+{
+ Evas_Object *eo;
+ int w, h;
+
+ if (g_main_win)
+ return g_main_win;
+
+ MP_TA_ACUM_ITEM_BEGIN(" elm_win_add()", 0);
+ g_main_win = eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+ MP_TA_ACUM_ITEM_END(" elm_win_add()", 0);
+ if (eo)
+ {
+ elm_win_title_set(eo, name);
+ evas_object_smart_callback_add(eo, "delete,request", _mp_common_win_del, NULL);
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+ evas_object_resize(eo, w, h);
+ }
+
+ return eo;
+}
+
+Evas_Object *
+mp_get_main_win(void)
+{
+ if (!g_main_win)
+ ERROR_TRACE("main_win is NULL, create it first!!!!!");
+ return g_main_win;
+}
+
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
-
#ifndef __mp_file_tag_info_H__
#define __mp_file_tag_info_H__
char *track;
char *rating;
int duration;
- int audio_codec;
int audio_samplerate;
int audio_bitrate;
int audio_channel;
} mp_tag_info_t;
+/* tag_info which must be freed with mp_file_tag_free() after use. */
int mp_file_tag_info_get_all_tag(const char *filename, mp_tag_info_t * tag_info);
-void mp_file_tag_free(mp_tag_info_t * tag_info);
+char *mp_file_tag_info_get_genre(const char *filename);
+int mp_file_tag_info_get_albumart(const char *filename, char **albumart_path);
+
+void mp_file_tag_free(mp_tag_info_t * tag_info);
#endif //__mp_file_tag_info_H__
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
-
#ifndef __MP_HTTP_MGR_H__
#define __MP_HTTP_MGR_H__
typedef enum
{
MP_HTTP_SVC_DEFAULT,
+ MP_HTTP_SVC_SHAZAM,
MP_HTTP_SVC_STREAMING,
MP_HTTP_SVC_MAX,
} mp_http_svc_type;
} MpHttpRespResultType_t;
typedef void (*MpHttpRespCb) (gpointer user_data, int type, char *id, MpHttpRespResultType_t res, int view_id);
+typedef void (*MpHttpOpenCb) (gpointer user_data);
typedef bool (*MpHttpRespExcuteCb)(gpointer user_data, mp_http_response_type response_type);
typedef bool(*MpHttpOpenExcuteCb) (gpointer user_data);
typedef struct mp_http_mgr_t
{
struct appdata *ad;
- MpHttpState_t http_state;
+ MpHttpState_t http_state; //the state of the http
char ip[HTTP_ADDR_LEN_MAX];
char proxy[HTTP_ADDR_LEN_MAX];
bool mp_http_mgr_create(void *data);
bool mp_http_mgr_destory(void *data);
MpHttpState_t mp_http_mgr_get_state(void *data);
-/* return value should be freed */
-char* mp_http_mgr_get_user_agent();
+char* mp_http_mgr_get_user_agent(); /* return value should be freed */
const char* mp_http_mgr_get_ip(void *data);
const char* mp_http_mgr_get_proxy(void *data);
bool mp_http_mgr_start_svc(void *data, mp_http_svc_type svc_type, MpHttpOpenExcuteCb open_cb, MpHttpRespExcuteCb rsp_cb, gpointer cb_data);
bool mp_http_mgr_stop_svc(void *data, mp_http_svc_type svc_type, mp_http_response_type response_type);
+#define TOKEN "025B58C0"
#endif //__MP_HTTP_MGR_H__
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#ifndef __MP_LANGUAGE_CHANGER_H
+#define __MP_LANGUAGE_CHANGER_H
+
+#include <Elementary.h>
+
+typedef enum
+{
+ OBJ_TYPE_ELM_OBJECT, //elm_object_text_set(obj, text)
+ OBJ_TYPE_EDJE_OBJECT, //edje_object_part_text_set(obj, part, text)
+ OBJ_TYPE_MAX,
+}obj_type;
+
+int mp_language_mgr_create();
+int mp_language_mgr_destroy();
+
+/*part and string_id must be static*/
+void mp_language_mgr_register_object(Evas_Object *obj, obj_type type, const char *part, const char *string_id);
+void mp_language_mgr_register_object_item(Elm_Object_Item *object_item, const char *text_ID);
+void mp_language_mgr_unregister_object_item(Elm_Object_Item *object_item);
+void mp_language_mgr_object_item_text_ID_set(Elm_Object_Item *object_item, const char *text_ID);
+
+
+void mp_language_mgr_register_genlist_item(Elm_Object_Item *item);
+void mp_language_mgr_unregister_genlist_item(Elm_Object_Item *item);
+
+void mp_language_mgr_register_gengrid_item(Elm_Object_Item *item);
+void mp_language_mgr_unregister_gengrid_item(Elm_Object_Item *item);
+
+void mp_language_mgr_update();
+
+#endif
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __MP_PLAY_LIST_H_
#define __MP_PLAY_LIST_H_
-#include <mm_player.h>
#include "mp-define.h"
+#include "mp-media-info.h"
typedef enum
{
MP_PLST_TYPE_NONE,
typedef struct mp_list_item
{
- char fid[AUDIO_SVC_UUID_SIZE+1];
+ char *fid;
gint list_index;
- bool removed;
+
+ mp_plst_type_t item_type;
} mp_list_item;
typedef struct music_list_item
/* music metadata */
int id;
char filename[MAX_NAM_LEN+1];
- char title[AUDIO_SVC_METADATA_LEN_MAX+1];
- char artist[AUDIO_SVC_METADATA_LEN_MAX+1];
- char album[AUDIO_SVC_METADATA_LEN_MAX+1];
+ char title[MP_METADATA_LEN_MAX+1];
+ char artist[MP_METADATA_LEN_MAX+1];
+ char album[MP_METADATA_LEN_MAX+1];
char time[16];
char albumart[MAX_NAM_LEN+1];
+ int favorite;
struct appdata *ad;
struct music_list_item *prev;
struct music_list_item *next;
- char key_id[AUDIO_SVC_UUID_SIZE+1];
- gint playlist_uid;
+ char *key_id;
+ gint playlist_uid; //playlist_uid; Use it to remove from favorite playlist...
gint index; // private.
gint list_index;
gboolean checked;
gint order;
+ // to disable favorite button for sound type
int category;
} music_list_item;
char *type_string;
char *filter_string;
int playlist_id;
- audio_svc_track_type_e item_type;
+ mp_track_type_e item_type;
+
} mp_play_list;
void mp_play_list_item_copy(music_list_item ** to, music_list_item * from);
music_list_item *mp_play_list_get_current_item(mp_play_list * playing_list); // do not free
+mp_list_item *mp_play_list_get_nth_item(mp_play_list * playing_list, int index);
bool mp_play_list_get_prev_item(void *data, mp_play_list * play_list, music_list_item ** item); //must be free , allocation inside
mp_plst_ret_t mp_play_list_get_next_item(void *data, mp_play_list * play_list, music_list_item ** item, bool forced); //must be free , allocation inside
bool mp_play_list_get_item_by_index(void *data, mp_play_list * playing_list, music_list_item ** item, int value); //must be free , allocation inside
bool mp_play_list_refresh(void *data);
bool mp_play_list_reset(void *data, mp_play_list ** set_play_list, char *fid);
-bool mp_play_list_create_play_list(void *data, AudioHandleType * svc_track, int count, int current_index,
+bool mp_play_list_create_play_list(void *data, mp_media_list_h svc_track, int count, int current_index,
int playlist_id);
bool mp_play_list_create_by_path(void *data, mp_play_list ** set_play_list, char *path);
bool mp_play_list_remove_item_by_key(mp_play_list * play_list, char *key_id);
bool mp_play_list_create_current_play_list(void *data, mp_play_list ** set_play_list,
- AudioHandleType * svc_track, const char *full_path,
+ mp_media_list_h svc_track, const char *full_path,
int count, int current_index, bool shuffler_play_list, int playlist_id);
-bool mp_play_list_delete_item(mp_play_list *playing_list, char *fid);
#endif
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __DEF_music_player_contro_H_
#define __DEF_music_player_contro_H_
void mp_play_control_menu_cb(void *data, Evas_Object * o, const char *emission, const char *source);
void mp_play_control_end_of_stream(void *data);
bool mp_player_control_ready_new_file(void *data, bool check_drm);
+
void mp_play_stop_and_updateview(void *data, bool mmc_removed);
void mp_play_control_visible_set(void *data, bool play_enable);
void mp_play_control_shuffle_set(void *data, bool shuffle_enable);
void mp_play_control_repeat_set(void *data, int repeat_state);
-
#endif /*__DEF_music_player_contro_H_*/
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __MP_PLAYER_DRM_H_
#define __MP_PLAYER_DRM_H_
char description[256];
} mp_drm;
-void mp_drm_set_consumption(bool enabled);
-bool mp_drm_get_consumption(void);
-void mp_drm_start_consumption(char *path);
-void mp_drm_pause_consumption(void);
-void mp_drm_resume_consumption(void);
-void mp_drm_stop_consumption(void);
+typedef struct
+{
+ char *type;
+ char *validity;
+} mp_drm_right_status_t;
+
+typedef enum
+{
+ SETAS_REQUEST_CHECK_STATUS,
+ SETAS_REQUEST_REGISTER,
+ SETAS_REQUEST_UNREGISTER,
+} mp_drm_setas_request_type_e;
+
+typedef enum {
+ DRM_CONTENT_INFO_NULL = -1,
+ DRM_CONTENT_INFO_AUTHOR,
+ DRM_CONTENT_INFO_RIGHTS_URL,
+ DRM_CONTENT_INFO_DESCRIPTION,
+} drm_content_info_e;
+
+enum {
+ MP_DRM_CONSTRAINT_UNLIMITED = 0x0,
+ MP_DRM_CONSTRAINT_COUNT = 0x01,
+ MP_DRM_CONSTRAINT_DATE_TIME = 0x02,
+ MP_DRM_CONSTRAINT_INTERVAL = 0x04,
+ MP_DRM_CONSTRAINT_TIMED_COUNT = 0x08,
+ MP_DRM_CONSTRAINT_ACCUMLATED_TIME = 0x10,
+};
+
+typedef struct {
+ int constraints;
+
+ int remaining_count;
+ bool date_time_expired;
+ int remaining_interval_sec;
+ int remaining_timed_count;
+ int remaining_acc_sec;
+} mp_constraints_info_s;
+
+bool mp_drm_get_content_info(const char *path, drm_content_info_e first_info, ...);
+void mp_drm_set_notify(void *data, char *message);
bool mp_drm_file_right(char *path);
bool mp_drm_has_valid_ro(char *path);
bool mp_drm_get_description(void *data, char *path);
bool mp_drm_check_forward(void *data, char *path);
+bool mp_drm_get_left_ro_info(const char *path, mp_constraints_info_s *info);
bool mp_drm_check_left_ro(void *data, char *path);
bool mp_drm_check_expiration(char *path, bool expired);
bool mp_drm_check_foward_lock(char *path);
+GList* mp_drm_get_right_status(const char *path);
+void mp_drm_free_right_status(GList *list);
+bool mp_drm_request_setas_ringtone(const char *path, mp_drm_setas_request_type_e type);
+
#endif /*__MP_PLAYER_DRM_H_*/
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#ifndef __MP_player_mgr_H_
#define __MP_player_mgr_H_
-#include <mm_sound.h>
-#include <mm_sound_private.h>
-#include <mm_player.h>
+#include <sound_manager.h>
+#include <player.h>
#include <vconf.h>
+#define EQ_USER_SLOT_NUM 7
+
+typedef enum {
+ MP_AUDIO_EFFECT_CUSTOM_EQ,
+ MP_AUDIO_EFFECT_3D,
+ MP_AUDIO_EFFECT_BASS,
+ MP_AUDIO_EFFECT_ROOM,
+ MP_AUDIO_EFFECT_REVERB,
+ MP_AUDIO_EFFECT_CLARITY,
+ MP_AUDIO_EFFECT_NUM,
+} Mp_Audio_Effect_Type;
+
+typedef struct {
+ /* equalizer */
+ double eq_level[EQ_USER_SLOT_NUM];
+
+ /* extended */
+ double effect_ratio[MP_AUDIO_EFFECT_NUM];
+} Audio_Effect_Data;
+
+
+typedef void (*Seek_Done_Cb)(void *data);
+
bool mp_player_mgr_is_active(void);
-void mp_player_mgr_pipe_cb(void *data, void *buffer, unsigned int nbyte);
-bool mp_player_mgr_set_msg_callback(MMMessageCallback cb, gpointer user_data);
+void mp_player_mgr_set_started_cb(player_started_cb callback, void *user_data);
+void mp_player_mgr_set_paused_cb(player_paused_cb callback, void *user_data);
+void mp_player_mgr_set_completed_cb(player_completed_cb callback, void *user_data);
+void mp_player_mgr_set_interrupted_cb(player_interrupted_cb callback, void *user_data);
+void mp_player_mgr_set_error_cb(player_error_cb callback, void *user_data);
+void mp_player_mgr_set_buffering_cb(player_buffering_cb callback, void *user_data);
+void mp_player_mgr_unset_started_cb(void);
+void mp_player_mgr_unset_paused_cb(void);
+void mp_player_mgr_unset_completed_cb(void);
+void mp_player_mgr_unset_interrupted_cb(void);
+void mp_player_mgr_unset_error_cb(void);
+void mp_player_mgr_unset_buffering_cb(void);
+
bool mp_player_mgr_create(void *data, const gchar * path);
bool mp_player_mgr_destroy(void *data);
bool mp_player_mgr_realize(void *data);
bool mp_player_mgr_resume(void *data);
bool mp_player_mgr_pause(void *data);
void mp_player_mgr_set_mute(bool bMuteEnable);
-bool mp_player_mgr_set_position(guint pos);
+bool mp_player_mgr_set_position(guint pos, Seek_Done_Cb done_cb, void *data);
int mp_player_mgr_get_position(void);
int mp_player_mgr_get_duration(void);
-int player_msg_cb(int msg_type, void *msg_param, void *user_param);
-
int mp_player_mgr_vol_type_set(void);
int mp_player_mgr_vol_type_unset(void);
bool mp_player_mgr_session_init(void);
bool mp_player_mgr_session_finish(void);
-MMPlayerStateType mp_player_mgr_get_state(void);
+player_state_e mp_player_mgr_get_state(void);
#endif //__MP_player_mgr_H_
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
+ /*
+ * Copyright 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://www.tizenopensource.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.
+ */
#ifndef __MP_SETTING_CTRL_H_
#define __MP_SETTING_CTRL_H_
#include <vconf-keys.h>
+#ifndef MP_SOUND_PLAYER
#include "mp-view-layout.h"
-
-enum mp_setting_rep_state
-{
- MP_SETTING_REP_ALL,
- MP_SETTING_REP_NON,
- MP_SETTING_REP_1
-};
+#endif
typedef struct _mp_setting_menu_t
{
int genres;
int composers;
int years;
+ int folders;
} mp_setting_menu_t;
typedef void (*MpSettingMenu_Cb) (mp_setting_menu_t * state, void *data);
typedef void (*MpSettingSRS_Cb) (int state, void *data);
+typedef void (*MpSettingAutoOff_Cb)(int min, void *data);
int mp_setting_init(struct appdata *ad);
int mp_setting_deinit(struct appdata *ad);
int mp_setting_menu_get_state(mp_setting_menu_t * menu_state);
int mp_setting_menu_set_callback(MpSettingMenu_Cb func, void *data);
+int mp_setting_auto_off_set_callback(MpSettingAutoOff_Cb func, void *data);
void mp_setting_save_now_playing(void *ad);
+void mp_setting_save_shortcut(char *shortcut_title, char *artist, char *shortcut_description,
+ char *shortcut_image_path);
+#ifndef MP_SOUND_PLAYER
void mp_setting_save_last_played(mp_layout_data_t * layout_data);
+#endif
#endif // __MP_SETTING_CTRL_H_
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#ifndef __MP_STREAMING_MGR_H__
#define __MP_STREAMING_MGR_H__
+#include <player.h>
+
inline void mp_streaming_mgr_buffering_popup_control(struct appdata *ad, bool is_show);
-int mp_streaming_mgr_message_callback(int msg_type, void *msg_param, void *user_param);
bool mp_streaming_mgr_check_streaming(struct appdata *ad, const char *path);
-bool mp_streaming_mgr_set_attribute(struct appdata *ad, MMHandleType player);
+bool mp_streaming_mgr_set_attribute(struct appdata *ad, player_h player);
bool mp_streaming_mgr_play_new_streaming(struct appdata *ad);
#endif /* __MP_STREAMING_MGR_H__ */
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <glib.h>
+#include <metadata_extractor.h>
#include <mm_file.h>
#include <mm_error.h>
#include "mp-file-tag-info.h"
#include "mp-player-debug.h"
-#include "mp-define.h"
+
+#define SAFE_FREE(x) if(x) {free(x); x = NULL;}
/* tag_info which must be freed with mp_file_tag_free() after use. */
int
mp_file_tag_info_get_all_tag(const char *filename, mp_tag_info_t * tag_info)
{
- MMHandleType tag_attrs = 0;
- MMHandleType content_attrs = 0;
int ret = 0;
if (!filename || !tag_info)
memset(tag_info, 0x00, sizeof(mp_tag_info_t));
- ret = mm_file_create_content_attrs(&content_attrs, filename);
- if (ret == MM_ERROR_NONE)
- {
- char *error = NULL;
- int dur = 0;
- int audio_codec = 0;
- int audio_samplerate = 0;
- int audio_bitrate = 0;
- int audio_channel = 0;
-
- ret = mm_file_get_attrs(content_attrs,
- &error,
- MM_FILE_CONTENT_DURATION, &dur,
- MM_FILE_CONTENT_AUDIO_CODEC, &audio_codec,
- MM_FILE_CONTENT_AUDIO_SAMPLERATE, &audio_samplerate,
- MM_FILE_CONTENT_AUDIO_BITRATE, &audio_bitrate,
- MM_FILE_CONTENT_AUDIO_CHANNELS, &audio_channel, NULL);
-
- if (ret != MM_ERROR_NONE)
- {
- if (error)
- {
- ERROR_TRACE("fail to mm_file_get_attrs() - ret(%x), error(%s)", ret, error);
- free(error);
- }
- else
- {
- ERROR_TRACE("fail to mm_file_get_attrs() - ret(%x)", ret);
- }
- goto CATCH_ERROR;
- }
- tag_info->duration = dur;
- tag_info->audio_codec = audio_codec;
- tag_info->audio_samplerate = audio_samplerate;
- tag_info->audio_bitrate = audio_bitrate;
- tag_info->audio_channel = audio_channel;
+ metadata_extractor_h handle = NULL;
+ ret = metadata_extractor_create(&handle);
+ if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+ mp_error("metadata_extractor_create().. %d", ret);
+ goto CATCH_ERROR;
}
- else
+
+ ret = metadata_extractor_set_path(handle, filename);
+ if (ret != METADATA_EXTRACTOR_ERROR_NONE)
{
- ERROR_TRACE("fail to mm_file_create_content_attrs() - ret(%x)", ret);
+ mp_error("metadata_extractor_set_path().. %d", ret);
goto CATCH_ERROR;
}
+ char *value = NULL;
+ ret = metadata_extractor_get_metadata(handle, METADATA_DURATION, &value);
+ if (ret == METADATA_EXTRACTOR_ERROR_NONE && value) {
+ tag_info->duration = atoi(value);
+ }
+ SAFE_FREE(value);
+
+ ret = metadata_extractor_get_metadata(handle, METADATA_AUDIO_SAMPLERATE, &value);
+ if (ret == METADATA_EXTRACTOR_ERROR_NONE && value) {
+ tag_info->audio_samplerate = atoi(value);
+ }
+ SAFE_FREE(value);
+
+ ret = metadata_extractor_get_metadata(handle, METADATA_AUDIO_BITRATE, &value);
+ if (ret == METADATA_EXTRACTOR_ERROR_NONE && value) {
+ tag_info->audio_bitrate = atoi(value);
+ }
+ SAFE_FREE(value);
- ret = mm_file_create_tag_attrs(&tag_attrs, filename);
- if (ret == MM_ERROR_NONE)
+ value = NULL;
+ ret = metadata_extractor_get_metadata(handle, METADATA_AUDIO_CHANNELS, &value);
+ if (ret == METADATA_EXTRACTOR_ERROR_NONE && value) {
+ tag_info->audio_channel = atoi(value);
+ }
+ SAFE_FREE(value);
+
+ metadata_extractor_get_metadata(handle, METADATA_ARTIST, &tag_info->artist);
+ metadata_extractor_get_metadata(handle, METADATA_ALBUM, &tag_info->album);
+ metadata_extractor_get_metadata(handle, METADATA_TITLE, &tag_info->title);
+ metadata_extractor_get_metadata(handle, METADATA_GENRE, &tag_info->genre);
+ metadata_extractor_get_metadata(handle, METADATA_AUTHOR, &tag_info->author);
+ metadata_extractor_get_metadata(handle, METADATA_COPYRIGHT, &tag_info->copyright);
+ metadata_extractor_get_metadata(handle, METADATA_DATE, &tag_info->date);
+ metadata_extractor_get_metadata(handle, METADATA_DESCRIPTION, &tag_info->desc);
+ metadata_extractor_get_metadata(handle, METADATA_TRACK_NUM, &tag_info->track);
+ metadata_extractor_get_metadata(handle, METADATA_RATING, &tag_info->rating);
+
+ void *albumart = NULL;
+ int albumart_size = 0;
+ char *mime = NULL;
+ ret = metadata_extractor_get_artwork(handle, &albumart, &albumart_size, &mime);
+ if (ret == METADATA_EXTRACTOR_ERROR_NONE && albumart)
{
- char *error = NULL;
- char *album = NULL;
- int album_len = 0;
- char *artist = NULL;
- int artist_len = 0;
- char *title = NULL;
- int title_len = 0;
- void *albumart = NULL;
- int albumart_len = 0;
- int albumart_size = 0;
- char *genre = NULL;
- int genre_len = 0;
- char *copyright = NULL;
- int copyright_len = 0;
- char *date = NULL;
- int date_len = 0;
- char *desc = NULL;
- int desc_len = 0;
- char *author = NULL;
- int author_len = 0;
- char *track = NULL;
- int track_len = 0;
- char *rating = NULL;
- int rating_len = 0;
-
- ret = mm_file_get_attrs(tag_attrs,
- &error,
- MM_FILE_TAG_ARTIST, &artist, &artist_len,
- MM_FILE_TAG_ALBUM, &album, &album_len,
- MM_FILE_TAG_TITLE, &title, &title_len,
- MM_FILE_TAG_GENRE, &genre, &genre_len,
- MM_FILE_TAG_AUTHOR, &author, &author_len,
- MM_FILE_TAG_COPYRIGHT, ©right, ©right_len,
- MM_FILE_TAG_DATE, &date, &date_len,
- MM_FILE_TAG_DESCRIPTION, &desc, &desc_len,
- MM_FILE_TAG_ARTWORK, &albumart, &albumart_len,
- MM_FILE_TAG_ARTWORK_SIZE, &albumart_size,
- MM_FILE_TAG_TRACK_NUM, &track, &track_len,
- MM_FILE_TAG_RATING, &rating, &rating_len, NULL);
-
- if (ret != MM_ERROR_NONE)
+ gchar *path = NULL;
+ int fd = g_file_open_tmp(NULL, &path, NULL);
+
+ if (fd != -1)
{
- if (error)
+ FILE *fp = fdopen(fd, "w");
+ if (fp == NULL)
{
- ERROR_TRACE("fail to mm_file_get_attrs() - ret(%x), error(%s)", ret, error);
- free(error);
+ ERROR_TRACE("fail to fdopen()");
+ close(fd);
}
else
{
- ERROR_TRACE("fail to mm_file_get_attrs() - ret(%x)", ret);
- }
- goto CATCH_ERROR;
- }
-
- if (albumart)
- {
- gchar *path = NULL;
- int fd = g_file_open_tmp(NULL, &path, NULL);
-
- if (fd != -1)
- {
- FILE *fp = fdopen(fd, "w");
- if (fp == NULL)
+ int n = fwrite((unsigned char *)albumart, 1, albumart_size, fp);
+ if (n != albumart_size)
{
- ERROR_TRACE("fail to fdopen()");
+ ERROR_TRACE("fail to fwrite()");
+ fclose(fp);
close(fd);
}
else
{
- int n = fwrite((unsigned char *)albumart, 1, albumart_size, fp);
- if (n != albumart_size)
- {
- ERROR_TRACE("fail to fwrite()");
- fclose(fp);
- close(fd);
- }
- else
- {
- fflush(fp);
- fclose(fp);
- close(fd);
- }
+ fflush(fp);
+ fclose(fp);
+ close(fd);
}
}
- tag_info->albumart_path = path;
}
-
- if (album)
- tag_info->album = strdup(album);
- if (artist)
- tag_info->artist = strdup(artist);
- if (title)
- tag_info->title = strdup(title);
- if (genre)
- tag_info->genre = strdup(genre);
- if (copyright)
- tag_info->copyright = strdup(copyright);
- if (date)
- tag_info->date = strdup(date);
- if (desc)
- tag_info->desc = strdup(desc);
- if (author)
- tag_info->author = strdup(author);
- if (track)
- tag_info->track = strdup(track);
- if (rating)
- tag_info->rating = strdup(rating);
-
- }
- else
- {
- ERROR_TRACE("fail to mm_file_create_tag_attrs() - ret(%x)", ret);
- goto CATCH_ERROR;
+ tag_info->albumart_path = path;
}
+ SAFE_FREE(mime);
DEBUG_TRACE
("file : %s\n duration: %d \n album: %s\n artist: %s\n title: %s\n genre: %s\n copyright:%s\n date: %s\n desc : %s\n author: %s\n albumart : %s",
filename, tag_info->duration, tag_info->album, tag_info->artist, tag_info->title, tag_info->genre,
tag_info->copyright, tag_info->date, tag_info->desc, tag_info->author, tag_info->albumart_path);
- if (content_attrs)
- mm_file_destroy_content_attrs(content_attrs);
-
- if (tag_attrs)
- mm_file_destroy_content_attrs(tag_attrs);
+ if (handle)
+ metadata_extractor_destroy(handle);
return 0;
CATCH_ERROR:
- if (content_attrs)
- mm_file_destroy_content_attrs(content_attrs);
-
- if (tag_attrs)
- mm_file_destroy_content_attrs(tag_attrs);
+ if (handle)
+ metadata_extractor_destroy(handle);
return -1;
}
+char *
+mp_file_tag_info_get_genre(const char *filename)
+{
+ /* return value shold be freed */
+ MP_CHECK_NULL(filename);
+
+ int ret = METADATA_EXTRACTOR_ERROR_NONE;
+
+ metadata_extractor_h handle = NULL;
+ ret = metadata_extractor_create(&handle);
+ if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+ mp_error("metadata_extractor_create().. %d", ret);
+ goto CATCH_ERROR;
+ }
+
+ ret = metadata_extractor_set_path(handle, filename);
+ if (ret != METADATA_EXTRACTOR_ERROR_NONE)
+ {
+ mp_error("metadata_extractor_set_path().. %d", ret);
+ goto CATCH_ERROR;
+ }
+
+ char *genre = NULL;
+ ret = metadata_extractor_get_metadata(handle, METADATA_GENRE, &genre);
+ if (ret != METADATA_EXTRACTOR_ERROR_NONE)
+ {
+ mp_error("metadata_extractor_get_metadata().. %d", ret);
+ SAFE_FREE(genre);
+ goto CATCH_ERROR;
+ }
+
+ mp_debug("METADATA_GENRE = [%s]", genre);
+ metadata_extractor_destroy(handle);
+ return genre;
+
+CATCH_ERROR:
+ if (handle)
+ metadata_extractor_destroy(handle);
+
+ return NULL;
+}
+
void
mp_file_tag_free(mp_tag_info_t * tag_info)
if (tag_info == NULL)
return;
- IF_FREE(tag_info->album);
- IF_FREE(tag_info->genre);
- IF_FREE(tag_info->author);
- IF_FREE(tag_info->artist);
- IF_FREE(tag_info->title);
- IF_FREE(tag_info->copyright);
- IF_FREE(tag_info->date);
- IF_FREE(tag_info->desc);
- IF_FREE(tag_info->albumart_path);
- IF_FREE(tag_info->track);
- IF_FREE(tag_info->rating);
+ SAFE_FREE(tag_info->album);
+ SAFE_FREE(tag_info->genre);
+ SAFE_FREE(tag_info->author);
+ SAFE_FREE(tag_info->artist);
+ SAFE_FREE(tag_info->title);
+ SAFE_FREE(tag_info->copyright);
+ SAFE_FREE(tag_info->date);
+ SAFE_FREE(tag_info->desc);
+ SAFE_FREE(tag_info->albumart_path);
+ SAFE_FREE(tag_info->track);
+ SAFE_FREE(tag_info->rating);
return;
}
+
+/* albumart_path as a string which should be freed after use */
+int
+mp_file_tag_info_get_albumart(const char *filename, char **albumart_path)
+{
+ /* return value shold be freed */
+ MP_CHECK_VAL(filename, -1);
+ MP_CHECK_VAL(albumart_path, -1);
+
+ int ret = METADATA_EXTRACTOR_ERROR_NONE;
+
+ metadata_extractor_h handle = NULL;
+ ret = metadata_extractor_create(&handle);
+ if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+ mp_error("metadata_extractor_create().. %d", ret);
+ goto CATCH_ERROR;
+ }
+
+ void *albumart = NULL;
+ int albumart_size = 0;
+ char *mime = NULL;
+ ret = metadata_extractor_get_artwork(handle, &albumart, &albumart_size, &mime);
+ if (ret == METADATA_EXTRACTOR_ERROR_NONE && albumart)
+ {
+ gchar *path = NULL;
+ int fd = g_file_open_tmp(NULL, &path, NULL);
+
+ if (fd != -1)
+ {
+ FILE *fp = fdopen(fd, "w");
+ if (fp == NULL)
+ {
+ ERROR_TRACE("fail to fdopen()");
+ close(fd);
+ }
+ else
+ {
+ int n = fwrite((unsigned char *)albumart, 1, albumart_size, fp);
+ if (n != albumart_size)
+ {
+ ERROR_TRACE("fail to fwrite()");
+ fclose(fp);
+ close(fd);
+ }
+ else
+ {
+ fflush(fp);
+ fclose(fp);
+ close(fd);
+ }
+ }
+ }
+ *albumart_path = path;
+ }
+ SAFE_FREE(mime);
+
+ if (handle) {
+ metadata_extractor_destroy(handle);
+ handle = NULL;
+ }
+
+ return 0;
+
+CATCH_ERROR:
+ if (handle)
+ metadata_extractor_destroy(handle);
+
+ *albumart_path = NULL;
+ return -1;
+}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
return FALSE;
}
+ /* excute open callback */
if (open_cb) {
if (!open_cb(cb_data)) {
mp_error("[%d] svc fail to start", svc_type);
mp_debug("## [%d] svc started ##", svc_type);
mp_http_mgr_t *http_mgr = (mp_http_mgr_t *)ad->http_mgr;
+ /* register callback */
http_mgr->cb_data[svc_type] = cb_data;
http_mgr->http_open_cb[svc_type] = open_cb;
http_mgr->http_resp_cb[svc_type] = rsp_cb;
+ /* set open state */
http_mgr->svc_state[svc_type] = TRUE;
return TRUE;
}
mp_http_mgr_t *http_mgr = (mp_http_mgr_t *)ad->http_mgr;
if (http_mgr->svc_state[svc_type] && http_mgr->http_resp_cb[svc_type]) {
+ /* send response */
http_mgr->http_resp_cb[svc_type](http_mgr->cb_data[svc_type], response_type);
}
+ /* deregister callback */
http_mgr->cb_data[svc_type] = NULL;
http_mgr->http_open_cb[svc_type] = NULL;
http_mgr->http_resp_cb[svc_type] = NULL;
+ /* set open state */
http_mgr->svc_state[svc_type] = FALSE;
mp_debug("## [%d] svc stopped ##", svc_type);
startfunc;
MP_CHECK(http_mgr);
+ /* reset network info */
memset(http_mgr->ip, 0, sizeof(http_mgr->ip));
memset(http_mgr->proxy, 0, sizeof(http_mgr->proxy));
http_mgr->http_state = _mp_http_mgr_get_network_status();
if (http_mgr->http_state != MP_HTTP_STATE_OFF) {
+ /* refresh network infomation */
char *ip = vconf_get_str(VCONFKEY_NETWORK_IP);
if (ip) {
strncpy(http_mgr->ip, ip, sizeof(http_mgr->ip)-1);
char* mp_http_mgr_get_user_agent()
{
+ /* return value should be free */
char *user_agent = vconf_get_str(USER_AGENT_KEY);
return user_agent;
}
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#include <libintl.h>
+
+#include "mp-language-mgr.h"
+#include "glib.h"
+#include "mp-player-debug.h"
+
+typedef struct
+{
+ Evas_Object *obj;
+ obj_type type;
+ const char *text_id;
+ const char *part;
+}obj_data;
+
+typedef struct
+{
+ Elm_Object_Item *obj_item;
+ const char *text_id;
+}obj_item_data;
+
+typedef struct _lang_mgr *lang_mgr;
+struct _lang_mgr{
+ GList *objs;
+ GList *obj_items;
+ GList *glist_items;
+ GList *grid_items;
+}_lang_mgr;
+
+
+static lang_mgr g_lang_mgr;
+
+#define G_LIST_FOREACH(list, l, data) \
+ for (l = list, \
+ data = g_list_nth_data(l, 0); \
+ l; \
+ l = g_list_next(l), \
+ data = g_list_nth_data(l, 0))
+
+static void __glist_free(void *data)
+{
+ obj_data *item = data;
+ MP_CHECK(item);
+ free(item);
+}
+
+static char *__get_text(const char *ID)
+{
+ MP_CHECK_NULL(ID);
+ char *str;
+
+ if(strstr(ID, "IDS_COM"))
+ str = dgettext("sys_string", ID);
+ else
+ str = gettext(ID);
+
+ return str;
+}
+
+static void __update_obj(void *data, void *userdata)
+{
+ char *text;
+ obj_data *item = data;
+ MP_CHECK(item);
+ DEBUG_TRACE("handle: 0x%x, ID:%s",item->obj, item->text_id);
+
+ text = __get_text(item->text_id);
+
+ if(item->type == OBJ_TYPE_ELM_OBJECT)
+ elm_object_text_set(item->obj, text);
+ else if(item->type == OBJ_TYPE_EDJE_OBJECT)
+ edje_object_part_text_set(elm_layout_edje_get(item->obj), item->part, text);
+ else
+ WARN_TRACE("Unhandled case");
+}
+
+static void __update_obj_item(void *data, void *userdata)
+{
+ char *text;
+ obj_item_data *item_data = data;
+ MP_CHECK(item_data);
+ DEBUG_TRACE("handle: 0x%x, ID:%s",item_data->obj_item, item_data->text_id);
+ text = __get_text(item_data->text_id);
+ elm_object_item_text_set(item_data->obj_item, text);
+}
+
+static void __update_list(void *data, void *userdata)
+{
+ Elm_Object_Item *item = data;
+ MP_CHECK(item);
+ DEBUG_TRACE("handle: 0x%x",item);
+ elm_genlist_item_update(item);
+}
+
+static void __update_grid(void *data, void *userdata)
+{
+ Elm_Object_Item *item = data;
+ MP_CHECK(item);
+ DEBUG_TRACE("handle: 0x%x",item);
+ elm_gengrid_item_update(item);
+}
+
+static void __obj_del_cb(void *data, Evas * e, Evas_Object * eo, void *event_info)
+{
+ obj_data *item = data;
+ MP_CHECK(g_lang_mgr);
+ MP_CHECK(item);
+
+ g_lang_mgr->objs =
+ g_list_delete_link(g_lang_mgr->objs, g_list_find(g_lang_mgr->objs, item));
+
+ free(item);
+}
+
+int mp_language_mgr_create(void)
+{
+ DEBUG_TRACE("");
+ if(!g_lang_mgr)
+ {
+ lang_mgr mgr = calloc(1, sizeof(_lang_mgr));
+ if(!mgr)
+ {
+ WARN_TRACE("Error: calloc");
+ return -1;
+ }
+ g_lang_mgr = mgr;
+ }
+ return 0;
+}
+
+int mp_language_mgr_destroy(void)
+{
+ MP_CHECK_VAL(g_lang_mgr, -1);
+ g_list_free_full(g_lang_mgr->objs, __glist_free);
+ g_lang_mgr->objs = NULL;
+
+ g_list_free(g_lang_mgr->glist_items);
+ g_lang_mgr->glist_items = NULL;
+
+ g_list_free(g_lang_mgr->grid_items);
+ g_lang_mgr->grid_items = NULL;
+
+ free(g_lang_mgr);
+ g_lang_mgr = NULL;
+
+ return 0;
+}
+
+void mp_language_mgr_register_object(Evas_Object *obj, obj_type type, const char *part, const char *text_id)
+{
+ MP_CHECK(g_lang_mgr);
+ obj_data *item = calloc(1, sizeof(obj_data));
+ MP_CHECK(item);
+
+ item->type = type;
+ item->part = part;
+ item->text_id = text_id;
+ item->obj = obj;
+
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, __obj_del_cb, item);
+
+ g_lang_mgr->objs = g_list_append(g_lang_mgr->objs, item);
+}
+
+void mp_language_mgr_register_object_item(Elm_Object_Item *object_item, const char *text_ID)
+{
+ MP_CHECK(g_lang_mgr);
+ obj_item_data *data = calloc(1, sizeof(obj_item_data));
+ MP_CHECK(data);
+
+ data->obj_item = object_item;
+ data->text_id = text_ID;
+
+ g_lang_mgr->obj_items= g_list_append(g_lang_mgr->obj_items, data);
+}
+
+void mp_language_mgr_unregister_object_item(Elm_Object_Item *object_item)
+{
+ GList *l;
+ obj_item_data *data;
+
+ G_LIST_FOREACH(g_lang_mgr->obj_items, l, data)
+ {
+ if(data->obj_item == object_item)
+ {
+ g_lang_mgr->obj_items = g_list_delete_link(g_lang_mgr->obj_items, l);
+ if(data)
+ free(data);
+ break;
+ }
+ }
+}
+
+void mp_language_mgr_object_item_text_ID_set(Elm_Object_Item *object_item, const char *text_ID)
+{
+ MP_CHECK(g_lang_mgr);
+ GList *l;
+ obj_item_data *data;
+
+ G_LIST_FOREACH(g_lang_mgr->obj_items, l, data)
+ {
+ if(data->obj_item == object_item)
+ {
+ DEBUG_TRACE("set ID: %s", text_ID);
+ data->text_id = text_ID;
+ break;
+ }
+ }
+
+}
+
+void mp_language_mgr_register_genlist_item(Elm_Object_Item *item)
+{
+ MP_CHECK(g_lang_mgr);
+ g_lang_mgr->glist_items =
+ g_list_append(g_lang_mgr->glist_items, item);
+}
+
+void mp_language_mgr_unregister_genlist_item(Elm_Object_Item *item)
+{
+ MP_CHECK(g_lang_mgr);
+ g_lang_mgr->glist_items =
+ g_list_delete_link(g_lang_mgr->glist_items, g_list_find(g_lang_mgr->glist_items, item));
+}
+
+void mp_language_mgr_register_gengrid_item(Elm_Object_Item *item)
+{
+ MP_CHECK(g_lang_mgr);
+ g_lang_mgr->grid_items =
+ g_list_append(g_lang_mgr->grid_items, item);
+}
+
+void mp_language_mgr_unregister_gengrid_item(Elm_Object_Item *item)
+{
+ MP_CHECK(g_lang_mgr);
+ g_lang_mgr->grid_items =
+ g_list_delete_link(g_lang_mgr->grid_items, g_list_find(g_lang_mgr->grid_items, item));
+}
+
+void mp_language_mgr_update()
+{
+ DEBUG_TRACE("language changed. update text");
+ MP_CHECK(g_lang_mgr);
+ g_list_foreach(g_lang_mgr->objs, __update_obj, NULL);
+ g_list_foreach(g_lang_mgr->obj_items, __update_obj_item, NULL);
+ g_list_foreach(g_lang_mgr->glist_items, __update_list, NULL);
+ g_list_foreach(g_lang_mgr->grid_items, __update_grid, NULL);
+}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#include "music.h"
#include "mp-play-list.h"
#include "mp-player-debug.h"
if (handle)
{
+ SAFE_FREE(handle->fid);
free(handle);
}
handle = NULL;
mp_tag_info_t tag_info;
struct appdata *ad = (struct appdata *)data;
- AudioHandleType *record = NULL;
+ mp_media_info_h record = NULL;
char *pathname = NULL, *title = NULL, *album = NULL, *artist = NULL, *thumbname = NULL;
int duration = 0;
- int size = 0, ret = 1, category = -1;
+ bool favorite = 0;
+ int ret = 1, category = -1;
MP_CHECK_FALSE(path);
*get_item = calloc(1, sizeof(music_list_item));
MP_CHECK_EXCEP((*get_item));
- ret = audio_svc_item_new(&record);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
-
- if (mp_util_file_is_in_phone_memory(path))
- ret = audio_svc_get_item_by_path(ad->media_svc_handle, path, record);
- else
- ret = audio_svc_get_item_by_path(ad->media_svc_handle, path, record);
+ ret = mp_media_info_create_by_path(&record, path);
- if (ret == AUDIO_SVC_ERROR_NONE)
+ if (ret == 0)
{
INFO_TRACE("get item from music db..");
- ret = audio_svc_item_get_val(record,
- AUDIO_SVC_TRACK_DATA_THUMBNAIL_PATH, &thumbname, &size,
- AUDIO_SVC_TRACK_DATA_TITLE, &title, &size,
- AUDIO_SVC_TRACK_DATA_ARTIST, &artist, &size,
- AUDIO_SVC_TRACK_DATA_PATHNAME, &pathname, &size,
- AUDIO_SVC_TRACK_DATA_ALBUM, &album, &size,
- AUDIO_SVC_TRACK_DATA_DURATION, &duration,
- AUDIO_SVC_TRACK_DATA_CATEGORY, &category, -1);
-
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ mp_media_info_get_thumbnail_path(record, &thumbname);
+ mp_media_info_get_title(record, &title);
+ mp_media_info_get_artist(record, &artist);
+ mp_media_info_get_file_path(record, &pathname);
+ mp_media_info_get_album(record, &album);
+ mp_media_info_get_duration(record, &duration);
+ mp_media_info_get_media_type(record, &category);
+ mp_media_info_get_favorite(record, &favorite);
*get_item = calloc(1, sizeof(music_list_item));
MP_CHECK_EXCEP(*get_item);
}
if (title)
- g_strlcpy((*get_item)->title, title, AUDIO_SVC_METADATA_LEN_MAX);
+ g_strlcpy((*get_item)->title, title, MP_METADATA_LEN_MAX);
mp_util_format_duration((*get_item)->time, duration);
g_strlcpy((*get_item)->albumart, DEFAULT_THUMBNAIL, MAX_NAM_LEN);
if (artist)
- g_strlcpy((*get_item)->artist, artist, AUDIO_SVC_METADATA_LEN_MAX);
+ g_strlcpy((*get_item)->artist, artist, MP_METADATA_LEN_MAX);
if (album)
- g_strlcpy((*get_item)->album, album, AUDIO_SVC_METADATA_LEN_MAX);
+ g_strlcpy((*get_item)->album, album, MP_METADATA_LEN_MAX);
(*get_item)->ad = ad;
(*get_item)->list_index = set_item->list_index;
(*get_item)->category = category;
+ (*get_item)->favorite = favorite;
}
else
{
title = mp_util_get_title_from_path(path);
if (title)
{
- strncpy((*get_item)->title, title, AUDIO_SVC_METADATA_LEN_MAX);
- (*get_item)->title[AUDIO_SVC_METADATA_LEN_MAX - 1] = '\0';
+ strncpy((*get_item)->title, title, MP_METADATA_LEN_MAX);
+ (*get_item)->title[MP_METADATA_LEN_MAX - 1] = '\0';
free(title);
}
else
{
- strncpy((*get_item)->title, path, AUDIO_SVC_METADATA_LEN_MAX);
- (*get_item)->title[AUDIO_SVC_METADATA_LEN_MAX - 1] = '\0';
+ strncpy((*get_item)->title, path, MP_METADATA_LEN_MAX);
+ (*get_item)->title[MP_METADATA_LEN_MAX - 1] = '\0';
}
strncpy((*get_item)->filename, path, MAX_NAM_LEN);
(*get_item)->filename[MAX_NAM_LEN - 1] = '\0';
}
else
{
- strncpy((*get_item)->filename, path, AUDIO_SVC_METADATA_LEN_MAX);
- (*get_item)->filename[AUDIO_SVC_METADATA_LEN_MAX - 1] = '\0';
+ strncpy((*get_item)->filename, path, MP_METADATA_LEN_MAX);
+ (*get_item)->filename[MP_METADATA_LEN_MAX - 1] = '\0';
if (tag_info.title)
{
- strncpy((*get_item)->title, tag_info.title, AUDIO_SVC_METADATA_LEN_MAX);
- (*get_item)->title[AUDIO_SVC_METADATA_LEN_MAX - 1] = '\0';
+ strncpy((*get_item)->title, tag_info.title, MP_METADATA_LEN_MAX);
+ (*get_item)->title[MP_METADATA_LEN_MAX - 1] = '\0';
}
else
{
char *title = mp_util_get_title_from_path(path);
if (title)
{
- strncpy((*get_item)->title, title, AUDIO_SVC_METADATA_LEN_MAX);
- (*get_item)->title[AUDIO_SVC_METADATA_LEN_MAX - 1] = '\0';
+ strncpy((*get_item)->title, title, MP_METADATA_LEN_MAX);
+ (*get_item)->title[MP_METADATA_LEN_MAX - 1] = '\0';
free(title);
}
}
if (tag_info.artist)
{
- strncpy((*get_item)->artist, tag_info.artist, AUDIO_SVC_METADATA_LEN_MAX);
- (*get_item)->artist[AUDIO_SVC_METADATA_LEN_MAX - 1] = '\0';
+ strncpy((*get_item)->artist, tag_info.artist, MP_METADATA_LEN_MAX);
+ (*get_item)->artist[MP_METADATA_LEN_MAX - 1] = '\0';
}
else
{
strncpy((*get_item)->artist, GET_SYS_STR("IDS_COM_BODY_UNKNOWN"),
- AUDIO_SVC_METADATA_LEN_MAX);
- (*get_item)->artist[AUDIO_SVC_METADATA_LEN_MAX - 1] = '\0';
+ MP_METADATA_LEN_MAX);
+ (*get_item)->artist[MP_METADATA_LEN_MAX - 1] = '\0';
}
if (tag_info.album)
{
- strncpy((*get_item)->album, tag_info.album, AUDIO_SVC_METADATA_LEN_MAX);
- (*get_item)->album[AUDIO_SVC_METADATA_LEN_MAX - 1] = '\0';
+ strncpy((*get_item)->album, tag_info.album, MP_METADATA_LEN_MAX);
+ (*get_item)->album[MP_METADATA_LEN_MAX - 1] = '\0';
}
else
{
strncpy((*get_item)->album, GET_SYS_STR("IDS_COM_BODY_UNKNOWN"),
- AUDIO_SVC_METADATA_LEN_MAX);
- (*get_item)->album[AUDIO_SVC_METADATA_LEN_MAX - 1] = '\0';
+ MP_METADATA_LEN_MAX);
+ (*get_item)->album[MP_METADATA_LEN_MAX - 1] = '\0';
}
mp_util_format_duration((*get_item)->time, tag_info.duration);
(*get_item)->ad = ad;
(*get_item)->list_index = set_item->list_index;
- (*get_item)->category = AUDIO_SVC_CATEGORY_SOUND;
+ (*get_item)->category = MP_MEDIA_TYPE_SOUND;
+ (*get_item)->favorite = 0;
}
- audio_svc_item_free(record);
+ mp_media_info_destroy(record);
return true;
mp_exception:
- audio_svc_item_free(record);
+ mp_media_info_destroy(record);
IF_FREE(*get_item);
+
return false;
}
MP_CHECK_FALSE(set_item);
DEBUG_TRACE("set_item->fid: %s", set_item->fid);
- MP_CHECK_FALSE(strlen(set_item->fid));
+ MP_CHECK_FALSE(set_item->fid && strlen(set_item->fid));
char *pathname = NULL, *title = NULL, *album = NULL, *artist = NULL, *thumbname = NULL;
int duration = 0;
+ bool favorite = false;
- int size = 0, ret = 1, category = -1;
+ int ret = 1, category = -1;
- AudioHandleType *item_handle = NULL;
+ mp_media_info_h item_handle = NULL;
{
- ret = audio_svc_item_new(&item_handle);
- MP_CHECK_FALSE(ret == AUDIO_SVC_ERROR_NONE);
-
- ret = audio_svc_get_item_by_audio_id(ad->media_svc_handle, set_item->fid, item_handle);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
-
- ret = audio_svc_item_get_val(item_handle,
- AUDIO_SVC_TRACK_DATA_THUMBNAIL_PATH, &thumbname, &size,
- AUDIO_SVC_TRACK_DATA_TITLE, &title, &size,
- AUDIO_SVC_TRACK_DATA_ARTIST, &artist, &size,
- AUDIO_SVC_TRACK_DATA_PATHNAME, &pathname, &size,
- AUDIO_SVC_TRACK_DATA_ALBUM, &album, &size,
- AUDIO_SVC_TRACK_DATA_DURATION, &duration,
- AUDIO_SVC_TRACK_DATA_CATEGORY, &category, -1);
-
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ ret = mp_media_info_create(&item_handle, set_item->fid);
+ MP_CHECK_EXCEP(ret == 0);
+
+ mp_media_info_get_file_path(item_handle, &pathname);
+ mp_media_info_get_title(item_handle, &title);
+ mp_media_info_get_album(item_handle, &album);
+ mp_media_info_get_artist(item_handle, &artist);
+ mp_media_info_get_thumbnail_path(item_handle, &thumbname);
+ mp_media_info_get_duration(item_handle, &duration);
+ mp_media_info_get_media_type(item_handle, &category);
+ mp_media_info_get_favorite(item_handle, &favorite);
+
+ MP_CHECK_EXCEP(ret == 0);
}
*get_item = calloc(1, sizeof(music_list_item));
}
if (title)
- g_strlcpy((*get_item)->title, title, AUDIO_SVC_METADATA_LEN_MAX);
+ g_strlcpy((*get_item)->title, title, MP_METADATA_LEN_MAX);
mp_util_format_duration((*get_item)->time, duration);
g_strlcpy((*get_item)->albumart, DEFAULT_THUMBNAIL, MAX_NAM_LEN);
if (artist)
- g_strlcpy((*get_item)->artist, artist, AUDIO_SVC_METADATA_LEN_MAX);
+ g_strlcpy((*get_item)->artist, artist, MP_METADATA_LEN_MAX);
if (album)
- g_strlcpy((*get_item)->album, album, AUDIO_SVC_METADATA_LEN_MAX);
- g_strlcpy((*get_item)->key_id, set_item->fid, AUDIO_SVC_UUID_SIZE+1);
+ g_strlcpy((*get_item)->album, album, MP_METADATA_LEN_MAX);
+
+ SAFE_FREE((*get_item)->key_id);
+ (*get_item)->key_id = g_strdup(set_item->fid);
+
(*get_item)->ad = ad;
(*get_item)->list_index = set_item->list_index;
(*get_item)->category = category;
+ (*get_item)->favorite = favorite;
{
if (item_handle)
- audio_svc_item_free(item_handle);
+ mp_media_info_destroy(item_handle);
item_handle = NULL;
}
IF_FREE(*get_item);
if (item_handle)
- audio_svc_item_free(item_handle);
+ mp_media_info_destroy(item_handle);
item_handle = NULL;
return false;
(*to)->gen_list = from->gen_list;
(*to)->ad = from->ad;
- SAFE_STRCPY((*to)->key_id, from->key_id);
+ (*to)->key_id = g_strdup(from->key_id);
+ (*to)->playlist_uid = from->playlist_uid;
+
(*to)->list_item = from->list_item;
(*to)->list_index = from->list_index;
+ (*to)->favorite = from->favorite;
return;
}
IF_FREE((*play_list)->filter_string);
IF_FREE((*play_list)->current_item);
IF_FREE((*play_list)->path_excpetionDB);
+
_mp_play_list_clear_list(&((*play_list)->normal_list));
_mp_play_list_clear_list(&((*play_list)->shuffle_list));
(*play_list)->list = NULL;
mp_assert(new_item);
memcpy(new_item, get_item, sizeof(mp_list_item));
- SAFE_STRCPY(new_item->fid, get_item->fid);
+ new_item->fid = g_strdup(get_item->fid);
new_item->list_index = index;
+ new_item->item_type = get_item->item_type;
+
play_list->shuffle_list = g_list_append(play_list->shuffle_list, (gpointer) new_item);
if (!g_strcmp0(fid, new_item->fid))
{
bool
mp_play_list_create_current_play_list(void *data, mp_play_list ** set_play_list,
- AudioHandleType * svc_track, const char *full_path,
+ mp_media_list_h svc_track, const char *full_path,
int count, int current_index, bool shuffler_play_list, int playlist_id)
{
startfunc;
*set_play_list = calloc(1, sizeof(mp_play_list));
+ (*set_play_list)->ad = ad;
(*set_play_list)->current_item = NULL;
(*set_play_list)->play_shuffle_state = shuffler_play_list;
(*set_play_list)->start_index = -1;
char *fid = NULL;
char *current_index_fid = NULL;
char *fid_by_full_path = NULL;
- int size;
if (!svc_track)
{ //2 create play list by current full path
MP_CHECK_FALSE(full_path);
- AudioHandleType *record = NULL;
+ mp_media_info_h record = NULL;
if (mp_check_file_exist(full_path))
{
- ret = audio_svc_item_new(&record);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
-
- if (mp_util_file_is_in_phone_memory(full_path))
- ret = audio_svc_get_item_by_path(ad->media_svc_handle, full_path, record);
- else
- ret = audio_svc_get_item_by_path(ad->media_svc_handle, full_path, record);
-
- if(ret == AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_create_by_path(&record, full_path);
+ if(ret == 0)
{
- ret = audio_svc_item_get_val(record, AUDIO_SVC_TRACK_DATA_AUDIO_ID, &fid_by_full_path, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ ret = mp_media_info_get_media_id(record, &fid_by_full_path);
+ MP_CHECK_EXCEP(ret == 0);
DEBUG_TRACE("fid_by_full_path: %s", fid_by_full_path);
if (fid_by_full_path == NULL)
goto mp_exception;
shuffle_state = false;
if (record)
- audio_svc_item_free(record);
+ mp_media_info_destroy(record);
record = NULL;
}
if (svc_track)
{
-
+ {
IF_FREE(fid);
- if (playlist_id >= 0)
- ret = audio_svc_playlist_item_get_val(svc_track, get_index,
- AUDIO_SVC_PLAYLIST_ITEM_AUDIO_ID, &fid, &size, -1);
- else
- ret = audio_svc_list_item_get_val(svc_track, get_index, AUDIO_SVC_LIST_ITEM_AUDIO_ID,
- &fid, &size,-1);
- DEBUG_TRACE("fid: %s", fid);
+ {
+ mp_media_info_h item = mp_media_info_list_nth_item(svc_track, get_index);
+ ret = mp_media_info_get_media_id(item, &fid);
+ }
+ MP_CHECK_EXCEP(ret == 0);
fid = g_strdup(fid);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ }
}
else
{
IF_FREE(fid);
fid = g_strdup(fid_by_full_path);
}
+
mp_list_item *new_item = calloc(1, sizeof(mp_list_item));
mp_assert(new_item);
- SAFE_STRCPY(new_item->fid, fid);
- DEBUG_TRACE("fid: %s", fid);
new_item->list_index = index;
+ /* for allshare item */
+ new_item->item_type = (*set_play_list)->list_type;
+ new_item->fid = g_strdup(fid);
+ DEBUG_TRACE("fid: %s", fid);
+
(*set_play_list)->normal_list = g_list_append((*set_play_list)->normal_list, (gpointer) new_item);
if (current_index == get_index)
{
- if (shuffle_state && count > 1)
+ if (shuffle_state && count > 1) /* shufflist not created if count is 1 */
{
DEBUG_TRACE("current request get fid = %s", current_index_fid);
IF_FREE(current_index_fid);
return false;
}
+char* mp_play_list_get_fid_by_full_path(void *data, const char *full_path)
+{
+ startfunc;
+
+ struct appdata *ad = (struct appdata *)data;
+
+ MP_CHECK_NULL(ad);
+ char *fid_by_full_path = NULL;
+
+ MP_CHECK_NULL(full_path);
+
+ int ret = 0;
+ mp_media_info_h record = NULL;
+ if (mp_check_file_exist(full_path))
+ {
+ ret = mp_media_info_create_by_path(&record, full_path);
+ if(ret == 0)
+ {
+ ret = mp_media_info_get_media_id(record, &fid_by_full_path);
+ if (ret != 0) {
+ mp_media_info_destroy(record);
+ return NULL;
+ }
+ DEBUG_TRACE("fid_by_full_path: %s", fid_by_full_path);
+ if (fid_by_full_path == NULL) {
+ mp_media_info_destroy(record);
+ return NULL;
+ }
+ fid_by_full_path = g_strdup(fid_by_full_path);
+ }
+ }
+ else if (mp_util_check_uri_available(full_path))
+ {
+ DEBUG_TRACE("full_path: %s", full_path);
+ fid_by_full_path = NULL;
+ }
+
+ mp_media_info_destroy(record);
+ record = NULL;
+
+ return fid_by_full_path;
+}
bool
mp_play_list_reset(void *data, mp_play_list ** set_play_list, char *fid)
mp_play_list *playing_list = ad->playing_list;
music_list_item *item = mp_play_list_get_current_item(playing_list);
-
if (item)
{
if(strlen(item->key_id))
current_fid = g_strdup(item->key_id);
}
- AudioHandleType *svc_track = NULL;
+ mp_media_list_h svc_track = NULL;
int ret = -1, count = 0;
if (playing_list->playlist_id >= 0)
{
- ret = audio_svc_count_playlist_item(ad->media_svc_handle, playing_list->playlist_id, playing_list->filter_string, NULL,
- &count);
- ret = audio_svc_playlist_item_new(&svc_track, count);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE && count == 0);
- audio_svc_get_playlist_item(ad->media_svc_handle, playing_list->playlist_id, playing_list->filter_string, NULL, 0, count,
- svc_track);
+ ret = mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL,
+ playing_list->filter_string, playing_list->playlist_id, &count);
+ MP_CHECK_EXCEP(ret == 0);
+ ret = mp_media_info_list_create(&svc_track, MP_TRACK_BY_PLAYLIST, NULL, NULL,
+ playing_list->filter_string, playing_list->playlist_id, 0, count);
+ MP_CHECK_EXCEP(ret == 0);
}
else
{
- ret = audio_svc_count_list_item(ad->media_svc_handle, playing_list->item_type, playing_list->type_string, NULL,
- playing_list->filter_string, NULL, &count);
- ret = audio_svc_list_item_new(&svc_track, count);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE && count == 0);
- audio_svc_get_list_item(ad->media_svc_handle, playing_list->item_type, playing_list->type_string, NULL,
- playing_list->filter_string, NULL, 0, count, svc_track);
+ ret = mp_media_info_list_count(playing_list->item_type, playing_list->type_string, NULL, playing_list->filter_string, 0, &count);
+ MP_CHECK_EXCEP(ret == 0);
+
+ ret = mp_media_info_list_create(&svc_track, playing_list->item_type, playing_list->type_string, NULL,
+ playing_list->filter_string, 0, 0, count);
+ MP_CHECK_EXCEP(ret == 0);
}
DEBUG_TRACE("count =%d", count);
mp_play_list_set_current_item(ad, ad->playing_list, current_fid);
if (svc_track)
{
- if (playing_list->playlist_id >= 0)
- audio_svc_playlist_item_free(svc_track);
- else
- audio_svc_list_item_free(svc_track);
-
+ mp_media_info_list_destroy(svc_track);
svc_track = NULL;
}
IF_FREE(current_fid);
if (svc_track)
{
- if (playing_list->playlist_id >= 0)
- audio_svc_playlist_item_free(svc_track);
- else
- audio_svc_list_item_free(svc_track);
-
+ mp_media_info_list_destroy(svc_track);
svc_track = NULL;
}
IF_FREE(current_fid);
}
bool
-mp_play_list_create_play_list(void *data, AudioHandleType * svc_track, int count, int current_index, int playlist_id)
+mp_play_list_create_play_list(void *data, mp_media_list_h svc_track, int count, int current_index, int playlist_id)
{
startfunc;
mp_play_list_create_current_play_list(ad, &ad->playing_list, svc_track, NULL, count, current_index,
ad->play_shuffle_state, playlist_id);
+
endfunc;
return true;
return playing_list->current_item;
}
+mp_list_item *
+mp_play_list_get_nth_item(mp_play_list * playing_list, int index)
+{
+ MP_CHECK_NULL(playing_list);
+
+ mp_list_item *item = (mp_list_item *)g_list_nth_data(playing_list->list, index);
+
+ return item;
+}
+
bool
mp_play_list_get_item_by_index(void *data, mp_play_list * playing_list, music_list_item ** get_item, int value)
{ //must be free
if (0 > next_index)
next_index = (count - 1);
- do {
- item = (mp_list_item *) g_list_nth_data(play_list->list, next_index);
- if (!item->removed)
- break;
- mp_debug("[index : %d] removed from playlist", next_index);
-
- next_index--;
- if (0 > next_index)
- next_index = (count - 1);
+ DEBUG_TRACE("get index = %d", next_index);
- if (next_index == play_list->current_index)
- return MP_PLST_RET_END;
- } while (1);
+ item = (mp_list_item *) g_list_nth_data(play_list->list, next_index);
- DEBUG_TRACE("get index = %d", next_index);
ret = _mp_play_list_get_item_by_list_data(data, request_item, item);
endfunc;
next_index = 0;
}
- do {
- item = (mp_list_item *) g_list_nth_data(play_list->list, next_index);
- if (!item->removed)
- break;
- mp_debug("[index : %d] removed from playlist", next_index);
-
- next_index++;
- if (next_index >= count)
- next_index = 0;
+ DEBUG_TRACE("get index = %d", next_index);
- if (next_index == play_list->current_index)
- return MP_PLST_RET_END;
- } while (1);
+ item = (mp_list_item *) g_list_nth_data(play_list->list, next_index);
- DEBUG_TRACE("get index = %d", next_index);
if(!_mp_play_list_get_item_by_list_data(data, request_item, item))
ret = MP_PLST_RET_ERR;
if (play_list->shuffle_list == play_list->list)
{
+ // shuffle list case , must refind at normal list
int count = g_list_length(play_list->normal_list);
int index = 0;
return select_request_index;
}
-bool
-mp_play_list_delete_item(mp_play_list *playing_list, char *fid)
-{
- MP_CHECK_FALSE(playing_list);
- MP_CHECK_FALSE(fid);
-
- bool ret = FALSE;
-
- mp_list_item *item = NULL;
- int count = g_list_length(playing_list->normal_list);
- int i = 0;
- for (; i < count ; i++) {
- item = (mp_list_item *)g_list_nth_data(playing_list->normal_list, i);
- if (item) {
- if (!g_strcmp0(fid, item->fid)) {
- item->removed = TRUE;
- ret = TRUE;
- mp_debug("[%d : %s]", i, fid);
- break;
- }
- }
- }
-
- if (playing_list->shuffle_list) {
- count = g_list_length(playing_list->shuffle_list);
- for (i = 0; i < count ; i++) {
- item = (mp_list_item *)g_list_nth_data(playing_list->shuffle_list, i);
- if (item) {
- if (!g_strcmp0(fid, item->fid)) {
- item->removed = TRUE;
- ret = TRUE;
- mp_debug("[%d : %s]", item->list_index, fid);
- break;
- }
- }
- }
- }
-
- return ret;
-}
-
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-#include <aul.h>
-#include <utilX.h>
#include <syspopup_caller.h>
+#include <sound_manager.h>
+#include <player.h>
#include "music.h"
+#include "mp-ta.h"
#include "mp-player-control.h"
#include "mp-player-mgr.h"
-#include <mm_sound.h>
#include "mp-player-drm.h"
#include "mp-play-view.h"
#include "mp-item.h"
-#include "mp-common.h"
#include "mp-play-list.h"
#include "mp-play.h"
#include "mp-play-list.h"
#include "mp-util.h"
#include "mp-setting-ctrl.h"
-#include "mp-view-manager.h"
#include "mp-player-mgr.h"
-
+#include "mp-app.h"
#include "mp-player-debug.h"
-#include <pmapi.h>
+#include "mp-minicontroller.h"
#include "mp-widget.h"
#include "mp-streaming-mgr.h"
+#ifdef MP_SOUND_PLAYER
+#include "mp-ug-launch.h"
+#include "sp-view-manager.h"
+#else
+#include "mp-common.h"
+#include "mp-view-manager.h"
+#endif
#define CTR_EDJ_SIG_SRC "ctrl_edj"
#define CTR_PROG_SIG_SRC "ctrl_prog"
-#define LONG_PRESS_INTERVAL 0.5
-#define FF_REW_INTERVAL 0.05
-#define LONG_PRESS_TIME_INCREASE 0.1
+#define LONG_PRESS_INTERVAL 0.5 //sec
+#define FF_REW_INTERVAL 0.25 //sec
+#define LONG_PRESS_TIME_INCREASE 0.5 //sec
+
+#define PAUSE_OFF_TIMEOUT (2 * 60) // sec
static Eina_Bool _mp_play_mute_popup_cb(void *data);
+static void
+_mp_play_control_long_press_seek_done_cb(void *data)
+{
+ struct appdata *ad = data;
+ mp_play_view_progress_timer_thaw(ad);
+}
+
static Eina_Bool
_mp_play_control_long_pressed_cb(void *data)
{
ad->is_Longpress = true;
- if (ad->player_state == PLAY_STATE_PLAYING)
- mp_player_mgr_pause(ad);
-
if (ad->is_ff)
ad->ff_rew += LONG_PRESS_TIME_INCREASE;
else
mp_debug("new pos=%f", new_pos);
+ int req_seek_pos = 0;
if (new_pos < 0.)
{
- mp_player_mgr_set_position(0);
ad->music_pos = 0;
+ req_seek_pos = 0;
}
else if (new_pos > ad->music_length)
{
- mp_player_mgr_set_position(duration);
ad->music_pos = ad->music_length;
+ req_seek_pos = duration;
}
else
{
- mp_player_mgr_set_position(new_pos * 1000);
ad->music_pos = new_pos;
+ req_seek_pos = new_pos * 1000;
}
- vconf_set_dbl(MP_EXT_CUR_PROGRESS_POS, ad->music_pos / ad->music_length);
+ if (mp_player_mgr_set_position(req_seek_pos, _mp_play_control_long_press_seek_done_cb, ad)) {
+ mp_play_view_progress_timer_freeze(ad);
+ mp_play_view_update_progressbar(ad);
+ }
- mp_play_view_update_progressbar(data);
ecore_timer_interval_set(ad->longpress_timer, FF_REW_INTERVAL);
endfunc;
mp_play_list_reset(ad, &ad->playing_list, current_item->key_id);
}
- current_item = mp_play_list_get_current_item(ad->playing_list);
+ current_item = mp_play_list_get_current_item(ad->playing_list); //reset at mp_play_list_reset, so must reget current item
MP_CHECK_FALSE(current_item);
mp_playing_view *playing_view = ad->playing_view;
return true;
}
+static void _hide_reflection(struct appdata *ad)
+{
+ MP_CHECK(ad);
+ if(ad->playing_view && ad->info_ug_base)
+ {
+ if (ad->playing_view->albumart_image_reflection)
+ {
+ DEBUG_TRACE("hide albumart_image_reflection");
+ evas_object_hide(ad->playing_view->albumart_image_reflection);
+ }
+ if (ad->playing_view->albumart_image)
+ {
+ DEBUG_TRACE("hide albumart_image");
+ evas_object_hide(ad->playing_view->albumart_image);
+ }
+ }
+}
+
+static void
+_mp_play_control_start_cb(void *userdata)
+{
+ MP_TA_ACUM_ITEM_END(" mm_player_start_cb_time", 0);
+ MP_TA_ACUM_ITEM_END("Selected_Item_to_play_start_cb", 0);
+ startfunc;
+ struct appdata *ad = userdata;
+ MP_CHECK(ad);
+
+ _hide_reflection(ad);
+
+ mp_play_start(ad);
+
+ vconf_set_int(MP_VCONFKEY_PLAYING_PID, getpid());
+
+ if (ad->player_state == PLAY_STATE_PAUSED)
+ mp_play_resume(ad);
+
+ ad->player_state = PLAY_STATE_PLAYING;
+
+}
+
+static void
+_mp_play_control_paused_cb(void *userdata)
+{
+ startfunc;
+ struct appdata *ad = userdata;
+ MP_CHECK(ad);
+
+ _hide_reflection(ad);
+
+ mp_play_pause(ad);
+ ad->player_state = PLAY_STATE_PAUSED;
+ ad->paused_by_other_player = FALSE;
+}
+
+static void
+_mp_play_control_completed_cb(void *userdata)
+{
+ startfunc;
+ struct appdata *ad = userdata;
+ MP_CHECK(ad);
+
+ _hide_reflection(ad);
+ mp_play_control_end_of_stream(ad);
+}
+
+static void
+_mp_play_control_interrupted_cb(player_interrupted_code_e code, void *userdata)
+{
+ startfunc;
+ struct appdata *ad = userdata;
+ MP_CHECK(ad);
+
+ _hide_reflection(ad);
+
+ switch(code)
+ {
+ case PLAYER_INTERRUPTED_BY_OTHER_APP:
+ DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_OTHER_APP");
+ break;
+ case PLAYER_INTERRUPTED_BY_CALL:
+ DEBUG_TRACE("receive PLAYER_INTERRUPTED_BY_CALL");
+ break;
+ case PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG:
+ DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_EARJACK_UNPLUG");
+ break;
+ case PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT:
+ DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_RESOURCE_CONFLICT");
+ break;
+ case PLAYER_INTERRUPTED_BY_ALARM:
+ DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_ALARM_START");
+ break;
+ case PLAYER_INTERRUPTED_COMPLETED:
+ DEBUG_TRACE("PLAYER_INTERRUPTED_COMPLETED");
+ return;
+ break;
+ default:
+ DEBUG_TRACE("Unhandled code: %d", code);
+ break;
+ }
+
+ mp_play_pause(ad);
+}
+
+static Eina_Bool
+_mp_play_control_error(void *data)
+{
+ struct appdata *ad = data;
+ MP_CHECK_FALSE(ad);
+
+ mp_play_destory(ad);
+ ad->playing_err_idler = NULL;
+ return EINA_FALSE;
+}
+
+static void
+_mp_play_control_error_cb(int error_code, void *userdata)
+{
+ startfunc;
+ struct appdata *ad = userdata;
+ MP_CHECK(ad);
+
+ _hide_reflection(ad);
+
+ switch (error_code)
+ {
+ case PLAYER_ERROR_OUT_OF_MEMORY:
+ DEBUG_TRACE("PLAYER_ERROR_OUT_OF_MEMORY");
+ break;
+ case PLAYER_ERROR_INVALID_PARAMETER:
+ DEBUG_TRACE("PLAYER_ERROR_INVALID_PARAMETER");
+ //mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"));
+ break;
+ case PLAYER_ERROR_NOT_SUPPORTED_FILE: //can receive error msg while playing.
+ DEBUG_TRACE("receive MM_ERROR_PLAYER_CODEC_NOT_FOUND\n");
+ mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"));
+ break;
+ case PLAYER_ERROR_CONNECTION_FAILED:
+ mp_debug("MM_ERROR_PLAYER_STREAMING_CONNECTION_FAIL");
+ mp_streaming_mgr_buffering_popup_control(ad, FALSE);
+ mp_widget_text_popup(ad, GET_SYS_STR("IDS_COM_POP_CONNECTION_FAILED"));
+ break;
+ default:
+ mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"));
+ DEBUG_TRACE("error_code: %d", error_code);
+ }
+
+ if(!ad->playing_err_idler)
+ ad->playing_err_idler = ecore_idler_add(_mp_play_control_error, ad);
+}
+
+static void
+_mp_play_control_buffering_cb(int percent, void *userdata)
+{
+ startfunc;
+ struct appdata *ad = userdata;
+ MP_CHECK(ad);
+
+ _hide_reflection(ad);
+
+ mp_debug("Buffering : %d%% \n", percent);
+
+ bool is_show_buffering = true;
+ if (percent > 95 || ad->player_state == PLAY_STATE_PLAYING)
+ is_show_buffering = false;
+
+ mp_streaming_mgr_buffering_popup_control(ad, is_show_buffering);
+}
+
bool
mp_player_control_ready_new_file(void *data, bool check_drm)
{
bool is_drm = FALSE;
+ //mp_play_control_visible_set(ad, TRUE);
DEBUG_TRACE("current item pathname : [%s]", current_item->filename);
if (mp_util_check_uri_available(current_item->filename))
{
else if (!mp_check_file_exist(current_item->filename))
{
ERROR_TRACE("There is no such file\n");
- mp_widget_text_popup(ad, GET_SYS_STR("IDS_COM_POP_FILE_NOT_EXIST"));
+ mp_widget_text_popup(ad, GET_SYS_STR("IDS_COM_POP_FILE_NOT_EXIST")); //show popup when file not exitst
return FALSE;
}
+ //DRM File Check
if (check_drm)
{
if (mp_drm_file_right(current_item->filename))
DEBUG_TRACE("This is DRM Contents\n");
is_drm = TRUE;
- if (!mp_drm_check_left_ro(ad, current_item->filename))
+ if (!mp_drm_check_left_ro(ad, current_item->filename)) //drm pop-up raised.
return FALSE;
if (!mp_drm_check_forward(ad, current_item->filename))
else
is_drm = TRUE;
- if (is_drm)
- mp_drm_set_consumption(TRUE);
-
ad->player_state = PLAY_STATE_INIT;
if (!mp_player_mgr_create(ad, current_item->filename))
return FALSE;
}
- if (!mp_player_mgr_set_msg_callback(player_msg_cb, ad)) //callback has to be set before realize
- {
- mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"));
- return FALSE;
- }
+ mp_player_mgr_set_started_cb(_mp_play_control_start_cb, ad);
+ mp_player_mgr_set_paused_cb(_mp_play_control_paused_cb, ad);
+ mp_player_mgr_set_completed_cb(_mp_play_control_completed_cb, ad);
+ mp_player_mgr_set_interrupted_cb(_mp_play_control_interrupted_cb, ad);
+ mp_player_mgr_set_error_cb(_mp_play_control_error_cb, ad);
+ mp_player_mgr_set_buffering_cb(_mp_play_control_buffering_cb, ad);
if (!mp_player_mgr_realize(ad))
{
return FALSE;
}
+ mp_play_ready(ad);
+
return TRUE;
}
if (ad->player_state == PLAY_STATE_PAUSED)
{
- mp_player_mgr_resume(ad);
+ if(mp_player_mgr_resume(ad))
+ {
+ vconf_set_int(MP_VCONFKEY_PLAYING_PID, getpid());
+ if (ad->player_state == PLAY_STATE_PAUSED)
+ mp_play_resume(ad);
+ ad->player_state = PLAY_STATE_PLAYING;
+ }
}
else if (ad->player_state == PLAY_STATE_READY)
{
}
else
{
+ //silentmode -> go to listview -> click one track -> silent mode play no -> go to playing view -> click play icon
mp_play_new_file(ad, TRUE);
}
}
if (ad->is_Longpress)
{
ad->is_Longpress = false;
- if (!ad->paused_by_user)
- mp_player_mgr_resume(ad);
}
else
{
if(ad->playing_view)
ad->playing_view->flick_direction = 1;
+
mp_play_next_file(ad, TRUE);
}
}
if (ad->is_Longpress)
{
ad->is_Longpress = false;
- if (!ad->paused_by_user)
- mp_player_mgr_resume(ad);
}
else
{
int pos = mp_player_mgr_get_position();
if (pos > 3000 ||mp_play_list_get_current_list_count(ad->playing_list) == 1)
{
- mp_player_mgr_set_position(0);
+ mp_player_mgr_set_position(0, NULL, NULL);
- if (!ad->paused_by_user)
+ if (!ad->paused_by_user && ad->player_state == PLAY_STATE_PAUSED)
{
- mp_player_mgr_resume(ad);
+ if(mp_player_mgr_resume(ad))
+ {
+ vconf_set_int(MP_VCONFKEY_PLAYING_PID, getpid());
+ if (ad->player_state == PLAY_STATE_PAUSED)
+ mp_play_resume(ad);
+ ad->player_state = PLAY_STATE_PLAYING;
+ }
}
else
{
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK_FALSE(playing_view);
+ //previous status is mute
if (ad->mute_flag)
{
mp_player_mgr_set_mute(false);
ad->mute_flag = false;
}
else
- {
+ { //previous status is unmute
mp_player_mgr_set_mute(true);
edje_object_signal_emit(_EDJ(playing_view->play_icon), "mute", "volume");
edje_object_signal_emit(_EDJ(playing_view->play_view), SIGNAL_MAIN_MUTE_SHOW, "*");
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
+ //initilize flag data
ad->volume_long_pressed = false;
+
mp_ecore_timer_del(ad->volume_down_timer);
+
ad->volume_down_timer = ecore_timer_add(MP_LONG_PRESS_TIMEOUT, _mp_play_control_volume_timer_cb, (void *)ad);
return;
DEBUG_TRACE("volume_long_pressed=%d,mute_flag=%d", ad->volume_long_pressed, ad->mute_flag);
if (ad->volume_long_pressed)
- {
+ { //longpress volume button
ad->volume_long_pressed = false;
}
else if (ad->mute_flag)
- {
+ { //previous status is mute
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK(playing_view);
edje_object_signal_emit(_EDJ(playing_view->play_view), SIGNAL_MAIN_MUTE_SHOW, "*");
{
}
else if (!strcmp(emission, SIGNAL_SHUFFLE))
- {
+ { // TURN OFF SHUFFLE
if (!mp_setting_set_shuffle_state(FALSE))
{
mp_play_control_shuffle_set(ad, FALSE);
}
else if (!strcmp(emission, SIGNAL_SHUFNON))
- {
+ { // TURN ON SHUFFE
if (!mp_setting_set_shuffle_state(TRUE))
{
}
else if (!strcmp(emission, SIGNAL_REPALL)) //off -1 - all - off
{
+ //turn off srs
if (!mp_setting_set_repeat_state(MP_SETTING_REP_NON))
mp_play_control_repeat_set(ad, MP_SETTING_REP_NON);
}
else if (!strcmp(emission, SIGNAL_REPNON))
{
+ //turn off srs
if (!mp_setting_set_repeat_state(MP_SETTING_REP_1))
mp_play_control_repeat_set(ad, MP_SETTING_REP_1);
}
else if (!strcmp(emission, SIGNAL_REP1))
{
+ //turn off srs
if (!mp_setting_set_repeat_state(MP_SETTING_REP_ALL))
mp_play_control_repeat_set(ad, MP_SETTING_REP_ALL);
}
ERROR_TRACE("Error when set repeat\n");
}
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
+#include <drm_client.h>
+#include <drm_client_types.h>
#include "music.h"
#include "mp-player-drm.h"
#include "mp-play-list.h"
#include "mp-util.h"
#include "mp-popup.h"
+#include "mp-widget.h"
-static bool _g_drm_consumption = FALSE;
#define ACCUMULATED_DATE 86400 // 24*60*60
-void
-mp_drm_set_consumption(bool enabled)
-{
- _g_drm_consumption = enabled;
-}
+static bool check_interval_constraint = false;
bool
-mp_drm_get_consumption(void)
+mp_drm_get_content_info(const char *path, drm_content_info_e first_info, ...)
{
- return _g_drm_consumption;
-}
+ /* return info shoud be freed */
+ MP_CHECK_FALSE(path);
-void
-mp_drm_start_consumption(char *path)
-{
+ drm_content_info_s info;
+ memset(&info, 0x0, sizeof(drm_content_info_s));
+ int res = drm_get_content_info(path, &info);
+ if (res != DRM_RETURN_SUCCESS) {
+ mp_error("drm_get_content_info().. [0x%x]", res);
+ return false;
+ }
+
+ va_list var_args;
+ drm_content_info_e attr;
+
+ attr = first_info;
+ va_start(var_args, first_info);
+ char **ret_val = NULL;
+ char *value = NULL;
+ while (attr > DRM_CONTENT_INFO_NULL) {
+ ret_val = va_arg((var_args), char **);
+ switch (attr) {
+ case DRM_CONTENT_INFO_AUTHOR:
+ value = info.author;
+ break;
+
+ case DRM_CONTENT_INFO_RIGHTS_URL:
+ value = info.rights_url;
+ break;
+
+ case DRM_CONTENT_INFO_DESCRIPTION:
+ value = info.description;
+ break;
+
+ default:
+ mp_debug("Not defined [%d]", attr);
+ value = NULL;
+ break;
+ }
+
+ /* output */
+ *ret_val = g_strdup(value);
+
+ attr = va_arg(var_args, drm_content_info_e);
+ }
+
+ va_end(var_args);
+
+ return true;
}
-void
-mp_drm_pause_consumption(void)
+static void
+_mp_drm_check_remain_ro(struct appdata *ad)
{
+ MP_CHECK(ad);
+ music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
+ MP_CHECK(current_item);
+
+ const char *format_str = NULL;
+ char *message = NULL;
+
+ mp_constraints_info_s *info = &ad->drm_constraints_info;
+ if (info->constraints & MP_DRM_CONSTRAINT_COUNT && info->remaining_count <= 2)
+ {
+ int remain = info->remaining_count - 1;
+ if (remain == 1) {
+ format_str = GET_SYS_STR("IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_GET_ANOTHER_LICENCE_Q");
+ message = g_strdup_printf(format_str, current_item->title);
+ } else if (remain == 0) {
+ format_str = GET_SYS_STR("IDS_COM_POP_YOU_CANNOT_USE_PS_ANY_MORE_TIMES_GET_ANOTHER_LICENCE_Q");
+ message = g_strdup_printf(format_str, current_item->title);
+ }
+ }
+ else if (info->constraints & MP_DRM_CONSTRAINT_ACCUMLATED_TIME)
+ {
+ if (info->remaining_acc_sec/ACCUMULATED_DATE <= 1) {
+ format_str = GET_SYS_STR("IDS_COM_POP_PS_IS_ABOUT_TO_EXPIRE_GET_ANOTHER_LICENCE_Q");
+ message = g_strdup_printf(format_str, current_item->title);
+ }
+ }
+
+ if (message)
+ {
+ ad->can_play_drm_contents = false; // wap launch
+ mp_drm_set_notify(ad, message);
+ SAFE_FREE(message);
+ }
}
-void
-mp_drm_resume_consumption(void)
+static void
+mp_drm_popup_response_cb(void *data, Evas_Object * obj, void *event_info)
{
+ struct appdata *ad = (struct appdata *)data;
+ DEBUG_TRACE("response callback=%d", (int)event_info);
+ mp_retm_if(!ad, "ad is NULL!!!!");
+ if(obj)
+ evas_object_del(obj);
+
+ music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
+
+ int response = (int)event_info;
+ if (response == MP_POPUP_YES && current_item)
+ {
+ if (ad->can_play_drm_contents)
+ {
+ if (mp_play_new_file(data, FALSE))
+ {
+ _mp_drm_check_remain_ro(ad);
+ }
+ }
+ else
+ {
+ char *rights_url = NULL;
+ bool ret = mp_drm_get_content_info(current_item->filename, DRM_CONTENT_INFO_RIGHTS_URL, &rights_url, -1);
+ if (ret && rights_url) {
+ DEBUG_TRACE("right url : %s", rights_url);
+ if (!mp_util_launch_browser(rights_url, NULL))
+ WARN_TRACE("Fail to launch browser!!!");
+ SAFE_FREE(rights_url);
+ }
+ else
+ {
+ WARN_TRACE("Fail to get right url");
+ }
+ }
+ }
+ else if (response == MP_POPUP_NO)
+ {
+ // do nothing
+ }
}
void
-mp_drm_stop_consumption(void)
+mp_drm_set_notify(void *data, char *message)
{
+ struct appdata *ad = (struct appdata *)data;
+
+ mp_popup_destroy(ad);
+
+ Evas_Object *popup = mp_popup_create(ad->win_main, MP_POPUP_NORMAL, NULL, ad, mp_drm_popup_response_cb, ad);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_text_set(popup, message);
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_SK_YES"), MP_POPUP_YES);
+ mp_popup_button_set(popup, MP_POPUP_BTN_2, GET_SYS_STR("IDS_COM_SK_NO"), MP_POPUP_NO);
+ evas_object_show(popup);
+ ad->popup[MP_POPUP_NORMAL] = popup;
}
bool
mp_drm_file_right(char *path)
{
+ MP_CHECK_FALSE(path);
+
+ drm_bool_type_e is_drm = DRM_UNKNOWN;
+ drm_is_drm_file(path, &is_drm);
+ if (is_drm == DRM_TRUE)
+ return TRUE;
+
return FALSE;
}
bool
mp_drm_has_valid_ro(char *path)
{
- return TRUE;
+ MP_CHECK_FALSE(path);
+
+ drm_license_status_e license_status = DRM_LICENSE_STATUS_UNDEFINED;
+ int res = drm_get_license_status(path, DRM_PERMISSION_TYPE_PLAY, &license_status);
+ if (res != DRM_RETURN_SUCCESS) {
+ mp_debug("drm_get_license_status().. [0x%x]", res);
+ }
+
+ mp_debug("license_status = %d", license_status);
+
+ if (license_status == DRM_LICENSE_STATUS_VALID)
+ return TRUE;
+
+ return FALSE;
+}
+
+static drm_file_type_e
+_mp_drm_get_file_type(const char *path)
+{
+ MP_CHECK_VAL(path, DRM_TYPE_UNDEFINED);
+
+ drm_file_type_e type = DRM_TYPE_UNDEFINED;
+ int ret = drm_get_file_type(path, &type);
+ if (ret != DRM_RETURN_SUCCESS) {
+ mp_error("drm_get_file_type().. [0x%x]", ret);
+ type = DRM_TYPE_UNDEFINED;
+ }
+
+ mp_debug("DRM file type[%s=>%d]", path, type);
+ return type;
}
bool
mp_drm_get_description(void *data, char *path)
{
- return FALSE;
+ struct appdata *ad = data;
+ MP_CHECK_FALSE(ad && path);
+
+ char *description = NULL;
+ bool ret = mp_drm_get_content_info(path, DRM_CONTENT_INFO_DESCRIPTION, &description, -1);
+ if (ret && description) {
+ mp_debug("description = [%s]", description);
+ SAFE_STRCPY(ad->drm_info.description, description);
+ ret = TRUE;
+ } else {
+ ret = FALSE;
+ }
+
+ SAFE_FREE(description);
+
+ return ret;
}
bool
mp_drm_check_forward(void *data, char *path)
{
+ struct appdata *ad = data;
+ MP_CHECK_FALSE(ad && path);
+
+ drm_file_type_e type = _mp_drm_get_file_type(path);
+
+ if (type == DRM_TYPE_OMA_V1 || type == DRM_TYPE_OMA_V2)
+ {
+ drm_file_info_s info;
+ memset(&info, 0x0, sizeof(drm_file_info_s));
+ int ret = drm_get_file_info(path, &info);
+ if (ret != DRM_RETURN_SUCCESS) {
+ mp_error("drm_get_file_info()... [0x%x]", ret);
+ return FALSE;
+ }
+
+ ad->drm_info.version = info.oma_info.version;
+ if (info.oma_info.version == DRM_OMA_DRMV1_RIGHTS)
+ {
+ if (info.oma_info.method == DRM_METHOD_TYPE_SEPARATE_DELIVERY)
+ ad->drm_info.forward = TRUE;
+ else
+ ad->drm_info.forward = FALSE;
+ }
+ else if (info.oma_info.version == DRM_OMA_DRMV2_RIGHTS)
+ {
+ //all drmv2 contents can be forwared.
+ ad->drm_info.forward = TRUE;
+ }
+ else
+ {
+ ERROR_TRACE("Unknown version\n");
+ return FALSE;
+ }
+ }
+ else if (type == DRM_TYPE_PLAYREADY)
+ {
+ DEBUG_TRACE("playready drm file");
+ ad->drm_info.forward = TRUE;
+ }
+ else
+ {
+ ERROR_TRACE("Not supported drm type");
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool
+mp_drm_get_left_ro_info(const char *path, mp_constraints_info_s *info)
+{
+ MP_CHECK_FALSE(path && info);
+
+ if (!mp_drm_has_valid_ro((char *)path))
+ {
+ mp_error("No valid ro");
+ return false;
+ }
+
+ /* init info */
+ memset(info, 0x0, sizeof(mp_constraints_info_s));
+
+ drm_constraint_info_s constraint;
+ memset(&constraint, 0x0, sizeof(drm_constraint_info_s));
+
+ int res = drm_get_constraint_info(path, DRM_PERMISSION_TYPE_PLAY, &constraint);
+ if (res == DRM_RETURN_SUCCESS) {
+ if (constraint.const_type.is_unlimited) {
+ DEBUG_TRACE("UNLIMITED");
+ info->constraints = MP_DRM_CONSTRAINT_UNLIMITED;
+ return true;
+ }
+
+ if (constraint.const_type.is_count) {
+ DEBUG_TRACE("DRM_COUNT [%d]", constraint.remaining_count);
+ info->constraints |= MP_DRM_CONSTRAINT_COUNT;
+ info->remaining_count = constraint.remaining_count;
+ }
+
+ if (constraint.const_type.is_datetime) {
+ DEBUG_TRACE("DRM_DATETIME");
+ info->constraints |= MP_DRM_CONSTRAINT_DATE_TIME;
+ DEBUG_TRACE("%d.%d.%d %d:%d~%d.%d.%d %d:%d",
+ constraint.start_time.tm_mday,
+ constraint.start_time.tm_mon + 1,
+ constraint.start_time.tm_year + 1900,
+ constraint.start_time.tm_hour,
+ constraint.start_time.tm_min,
+ constraint.end_time.tm_mday,
+ constraint.end_time.tm_mon + 1,
+ constraint.end_time.tm_year + 1900,
+ constraint.end_time.tm_hour,
+ constraint.end_time.tm_min);
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ struct tm *ptm = NULL;
+ ptm = localtime(&tv.tv_sec);
+
+ if (ptm->tm_year >= constraint.start_time.tm_year
+ && ptm->tm_mon >= constraint.start_time.tm_mon
+ && ptm->tm_mday >= constraint.start_time.tm_mday
+ && ptm->tm_hour >= constraint.start_time.tm_hour
+ && ptm->tm_min >= constraint.start_time.tm_min
+ && ptm->tm_mon <= constraint.end_time.tm_mon
+ && ptm->tm_mday <= constraint.end_time.tm_mday
+ && ptm->tm_hour <= constraint.end_time.tm_hour
+ && ptm->tm_min <= constraint.end_time.tm_min)
+ {
+ /* not expired */
+ info->date_time_expired = false;
+ }
+ else
+ {
+ info->date_time_expired = true;
+ }
+
+ }
+
+ if (constraint.const_type.is_interval) {
+ DEBUG_TRACE("DRM_INTERVAL");
+ info->constraints |= MP_DRM_CONSTRAINT_INTERVAL;
+ DEBUG_TRACE("Remain... %d.%d.%d %d:%d",
+ constraint.interval_time.tm_mon,
+ constraint.interval_time.tm_mday,
+ constraint.interval_time.tm_year,
+ constraint.interval_time.tm_hour,
+ constraint.interval_time.tm_min);
+
+ info->remaining_interval_sec = constraint.interval_time.tm_sec + constraint.interval_time.tm_min * 60 + constraint.interval_time.tm_hour * 3600;
+ info->remaining_interval_sec += (constraint.interval_time.tm_mday + constraint.interval_time.tm_mon * 30 + constraint.interval_time.tm_year * 365) * (3600 *24);
+ }
+
+ if (constraint.const_type.is_timedcount) {
+ DEBUG_TRACE("DRM_TIMED_COUNT");
+ DEBUG_TRACE("%d left (%d sec)", constraint.timed_remaining_count, constraint.timed_count_timer);
+ info->constraints |= MP_DRM_CONSTRAINT_TIMED_COUNT;
+ info->remaining_timed_count = constraint.timed_remaining_count;
+ }
+
+ if (constraint.const_type.is_accumulated) {
+ DEBUG_TRACE("DRM_ACCUMULATED [%d]", constraint.accumulated_remaining_seconds);
+ info->constraints |= MP_DRM_CONSTRAINT_ACCUMLATED_TIME;
+ info->remaining_acc_sec = constraint.accumulated_remaining_seconds;
+ }
+
+ if (constraint.const_type.is_individual) {
+ mp_debug("DRM_INDIVISUAL_ID [%s]", constraint.individual_id);
+ }
+
+ if (constraint.const_type.is_system) {
+ mp_debug("DRM_SYSTEM [ID:%s, type:%d]", constraint.system_id, constraint.system_identity_type);
+ }
+ }
+ else {
+ mp_error("drm_get_constraint_info().. 0x%x", res);
+ return FALSE;
+ }
+
return TRUE;
}
+
bool
mp_drm_check_left_ro(void *data, char *path)
{
+ struct appdata *ad = data;
+ MP_CHECK_FALSE(ad);
+
+ bool wap_launch = FALSE;
+ bool expired = FALSE;
+
+ mp_retvm_if(!ad, NULL, "ad is NULL!!!!");
+ music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
+ MP_CHECK_FALSE(current_item);
+
+ char *title = current_item->title;
+ ad->can_play_drm_contents = FALSE;
+
+ DEBUG_TRACE("mp_drm_check_left_ro\n");
+ mp_constraints_info_s *info = &(ad->drm_constraints_info);
+ memset(info, 0x0, sizeof(mp_constraints_info_s));
+ bool has_valid_ro = mp_drm_get_left_ro_info(path, info);
+
+ const char *format_str = NULL;
+ char *message = NULL;
+ if (has_valid_ro)
+ {
+ while (info->constraints)
+ {
+ if (info->constraints & MP_DRM_CONSTRAINT_COUNT)
+ {
+ if (info->remaining_count == 2) {
+ format_str = GET_SYS_STR("IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q");
+ message = g_strdup_printf(format_str, title);
+ } else if (info->remaining_count == 1) {
+ format_str = GET_SYS_STR("IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q");
+ message = g_strdup_printf(format_str, title);
+ } else if (info->remaining_count == 0) {
+ wap_launch = true;
+ break;
+ }
+ }
+
+ if (info->constraints & MP_DRM_CONSTRAINT_DATE_TIME)
+ {
+ if (info->date_time_expired) {
+ wap_launch = true;
+ break;
+ }
+ }
+
+ if (info->constraints & MP_DRM_CONSTRAINT_INTERVAL)
+ {
+ if (info->remaining_interval_sec == 0) {
+ wap_launch = true;
+ break;
+ } else if (!check_interval_constraint) {
+ check_interval_constraint = true;
+ format_str = GET_SYS_STR("IDS_COM_POP_YOU_CAN_USE_PS_FOR_PD_DAYS_START_NOW_Q");
+ int days = info->remaining_interval_sec / ACCUMULATED_DATE + 1;
+ message = g_strdup_printf(format_str, title, days);
+ }
+ }
+
+ if (info->constraints & MP_DRM_CONSTRAINT_TIMED_COUNT)
+ {
+ if (info->remaining_timed_count == 2) {
+ format_str = GET_SYS_STR("IDS_COM_POP_YOU_CAN_USE_PS_2_MORE_TIMES_START_NOW_Q");
+ message = g_strdup_printf(format_str, title);
+ } else if (info->remaining_timed_count == 1) {
+ format_str = GET_SYS_STR("IDS_COM_POP_YOU_CAN_USE_PS_1_MORE_TIME_START_NOW_Q");
+ message = g_strdup_printf(format_str, title);
+ } else if (info->remaining_timed_count == 0) {
+ wap_launch = true;
+ break;
+ }
+ }
+
+ if (info->constraints & MP_DRM_CONSTRAINT_ACCUMLATED_TIME)
+ {
+ if (info->remaining_acc_sec == 0) {
+ wap_launch = true;
+ break;
+ }
+ }
+
+ ad->can_play_drm_contents = true;
+ break;
+ }
+
+ if (info->constraints == MP_DRM_CONSTRAINT_UNLIMITED) {
+ ad->can_play_drm_contents = true;
+ }
+ }
+
+ if (!has_valid_ro || (wap_launch && !mp_drm_check_expiration(path, expired)))
+ {
+ DEBUG_TRACE("have no valid ro");
+ format_str = GET_SYS_STR("IDS_COM_POP_PS_CURRENTLY_LOCKED_UNLOCK_Q");
+ message = g_strdup_printf(format_str, title);
+ mp_drm_set_notify(ad, message);
+ SAFE_FREE(message);
+ return FALSE;
+ }
+ else if (message)
+ {
+ /* play possible */
+ mp_debug("warning popup=[%s]", message);
+ mp_drm_set_notify(ad, message);
+ SAFE_FREE(message);
+ return FALSE;
+ }
+
return TRUE;
}
bool
mp_drm_check_expiration(char *path, bool expired)
{
- return TRUE;
+ if (mp_drm_file_right(path))
+ {
+
+ drm_file_info_s info;
+ memset(&info, 0x0, sizeof(drm_file_info_s));
+ int ret = drm_get_file_info(path, &info);
+ if (ret == DRM_RETURN_SUCCESS) {
+ DEBUG_TRACE("method [%d] expired [%d]\n", info.oma_info.method, expired);
+ if (info.oma_info.method == DRM_METHOD_TYPE_COMBINED_DELIVERY
+ || info.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) {
+
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+ }
+
+ return FALSE;
}
bool
mp_drm_check_foward_lock(char *path)
{
- return TRUE;
+ if (mp_drm_file_right(path))
+ {
+
+ drm_file_info_s info;
+ memset(&info, 0x0, sizeof(drm_file_info_s));
+ int ret = drm_get_file_info(path, &info);
+ if (ret == DRM_RETURN_SUCCESS) {
+ if (info.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) {
+ mp_debug("forward lock..");
+ return TRUE;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+static mp_drm_right_status_t*
+_mp_drm_create_right_status_item(const char *type, const char *validity)
+{
+ MP_CHECK_NULL(type);
+
+ mp_drm_right_status_t *rs = calloc(1, sizeof(mp_drm_right_status_t));
+ mp_assert(rs);
+ rs->type = g_strdup(type);
+ rs->validity = g_strdup(validity);
+
+ return rs;
+}
+
+GList*
+mp_drm_get_right_status(const char *path)
+{
+ startfunc;
+ MP_CHECK_NULL(path);
+
+ GList *rs_list = NULL;
+
+ drm_constraint_info_s constraint;
+ memset(&constraint, 0x0, sizeof(drm_constraint_info_s));
+ int res = drm_get_constraint_info(path, DRM_PERMISSION_TYPE_PLAY, &constraint);
+ if (res != DRM_RETURN_SUCCESS) {
+ mp_error("drm_get_constraint_info().. [0x%x]", res);
+ return NULL;
+ }
+
+ char *validity_str = NULL;
+
+ if (constraint.const_type.is_unlimited) {
+ DEBUG_TRACE("UNLIMITED");
+ mp_drm_right_status_t *rs = _mp_drm_create_right_status_item(GET_SYS_STR("IDS_COM_POP_UNLIMITED"), NULL);
+ rs_list = g_list_append(rs_list, rs);
+ }
+
+ if (constraint.const_type.is_count) {
+ validity_str = g_strdup_printf("%d left", constraint.remaining_count);
+ mp_drm_right_status_t *rs = _mp_drm_create_right_status_item(GET_STR("Count"), validity_str);
+ SAFE_FREE(validity_str);
+ rs_list = g_list_append(rs_list, rs);
+ }
+
+ if (constraint.const_type.is_datetime) {
+ DEBUG_TRACE("DRM_DATETIME\n");
+ validity_str = g_strdup_printf("%d.%d.%d %d:%d~%d.%d.%d %d:%d",
+ constraint.start_time.tm_mday,
+ constraint.start_time.tm_mon + 1,
+ constraint.start_time.tm_year + 109,
+ constraint.start_time.tm_hour,
+ constraint.start_time.tm_min,
+ constraint.end_time.tm_mday,
+ constraint.end_time.tm_mon + 1,
+ constraint.end_time.tm_year + 109,
+ constraint.end_time.tm_hour,
+ constraint.end_time.tm_min);
+
+ mp_drm_right_status_t *rs = _mp_drm_create_right_status_item(GET_SYS_STR("IDS_COM_POP_TIME"), validity_str);
+ SAFE_FREE(validity_str);
+ rs_list = g_list_append(rs_list, rs);
+ }
+
+ if (constraint.const_type.is_interval) {
+ DEBUG_TRACE("DRM_INTERVAL\n");
+ int val = constraint.interval_time.tm_hour;
+ val += 24 * (constraint.interval_time.tm_mday + constraint.interval_time.tm_mon * 30 + constraint.interval_time.tm_year * 365);
+ const char *format = GET_SYS_STR("IDS_COM_POP_PD_HOURS");
+ validity_str = g_strdup_printf(format, val);
+ mp_drm_right_status_t *rs = _mp_drm_create_right_status_item(GET_STR("Interval"), validity_str);
+ SAFE_FREE(validity_str);
+ rs_list = g_list_append(rs_list, rs);
+ }
+
+ if (constraint.const_type.is_timedcount) {
+ validity_str = g_strdup_printf("%d left", constraint.timed_remaining_count);
+ mp_drm_right_status_t *rs = _mp_drm_create_right_status_item(GET_STR("Timed count"), validity_str);
+ SAFE_FREE(validity_str);
+ rs_list = g_list_append(rs_list, rs);
+ }
+
+ if (constraint.const_type.is_accumulated) {
+ const char *format = GET_SYS_STR("IDS_COM_POP_PD_HOURS");
+ int acc_sec = constraint.accumulated_remaining_seconds;
+ int hour = acc_sec / 3600;
+ validity_str = g_strdup_printf(format, hour);
+ mp_drm_right_status_t *rs = _mp_drm_create_right_status_item(GET_STR("Accumulate time"), validity_str);
+ SAFE_FREE(validity_str);
+ rs_list = g_list_append(rs_list, rs);
+ }
+
+ if (constraint.const_type.is_individual) {
+ mp_debug("DRM_INDIVISUAL_ID [%s]", constraint.individual_id);
+ }
+
+ if (constraint.const_type.is_system) {
+ mp_debug("DRM_SYSTEM [ID:%s, type:%d]", constraint.system_id, constraint.system_identity_type);
+ }
+ return rs_list;
+}
+
+void
+mp_drm_free_right_status(GList *list)
+{
+ MP_CHECK(list);
+
+ GList *current = list;
+ while(current) {
+ mp_drm_right_status_t *rs = current->data;
+ if (rs) {
+ SAFE_FREE(rs->type);
+ SAFE_FREE(rs->validity);
+
+ free(rs);
+ }
+
+ current = current->next;
+ }
+
+ g_list_free(list);
+}
+
+bool
+mp_drm_request_setas_ringtone(const char *path, mp_drm_setas_request_type_e type)
+{
+ MP_CHECK_FALSE(path);
+
+ bool ret = false;
+
+ switch (type) {
+ case SETAS_REQUEST_CHECK_STATUS:
+ {
+ drm_bool_type_e allowed = DRM_UNKNOWN;
+ drm_action_allowed_data_s data;
+ memset(&data, 0x0, sizeof(drm_action_allowed_data_s));
+ SAFE_STRCPY(data.file_path, path);
+ int res = drm_is_action_allowed(DRM_HAS_VALID_SETAS_STATUS, &data, &allowed);
+ if (res == DRM_RETURN_SUCCESS) {
+ if (allowed == DRM_TRUE)
+ ret = true;
+ } else {
+ mp_error("drm_is_action_allowed().. [0x%x]", res);
+ }
+
+ break;
+ }
+ case SETAS_REQUEST_REGISTER:
+ {
+ drm_register_setas_info_s info;
+ memset(&info, 0x0, sizeof(drm_register_setas_info_s));
+ SAFE_STRCPY(info.file_path, path);
+ info.setas_cat = DRM_SETAS_RINGTONE;
+ int res = drm_process_request(DRM_REQUEST_TYPE_REGISTER_SETAS, (void *)&info, NULL);
+ if (res == DRM_RETURN_SUCCESS)
+ ret = true;
+ else
+ mp_error("drm_process_request().. [0x%x]", res);
+ break;
+ }
+ case SETAS_REQUEST_UNREGISTER:
+ {
+
+ drm_unregister_setas_info_s info;
+ memset(&info, 0x0, sizeof(drm_unregister_setas_info_s));
+ SAFE_STRCPY(info.file_path, path);
+ info.setas_cat = DRM_SETAS_RINGTONE;
+ int res = drm_process_request(DRM_REQUEST_TYPE_UNREGISTER_SETAS, (void *)&info, NULL);
+ if (res == DRM_RETURN_SUCCESS)
+ ret = true;
+ else
+ mp_error("drm_process_request().. [0x%x]", res);
+ break;
+ }
+ default:
+ mp_debug("Not defined");
+ break;
+ }
+
+ return ret;
}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include <glib.h>
-#include <mm_error.h>
#include "music.h"
#include "mp-player-mgr.h"
#include "mp-player-control.h"
#include "mp-play.h"
#include "mp-player-drm.h"
-#include <mm_session.h>
-#include <mm_message.h>
+#include <player.h>
+
+#include "mp-ta.h"
#include "mp-player-debug.h"
#include "mp-widget.h"
#include "mp-play-view.h"
#include "mp-streaming-mgr.h"
+#include "mp-util.h"
+
+#define MAX_PATH_LEN 1024
+
+static player_h _player = 0;
+
+static bool is_seeking = false;
+static int g_reserved_seek_pos = -1;
+
+static Seek_Done_Cb g_requesting_cb = NULL;
+static void *g_requesting_cb_data = NULL;
+
+static Seek_Done_Cb g_reserved_cb = NULL;
+static void *g_reserved_cb_data = NULL;
+
+static Ecore_Pipe *g_player_pipe = NULL;
-#define MAX_PATH_LEN MAX_NAM_LEN
+typedef enum {
+ MP_PLAYER_CB_TYPE_STARTED,
+ MP_PLAYER_CB_TYPE_PAUSED,
+ MP_PLAYER_CB_TYPE_COMPLETED,
+ MP_PLAYER_CB_TYPE_INTURRUPTED,
+ MP_PLAYER_CB_TYPE_ERROR,
+ MP_PLAYER_CB_TYPE_BUFFERING,
+ MP_PLAYER_CB_TYPE_NUM,
+} mp_player_cb_type;
-static MMHandleType _player = 0;
+typedef struct {
+ /* player callbacks */
+ player_started_cb started_cb;
+ player_paused_cb paused_cb;
+ player_completed_cb completed_cb;
+ player_interrupted_cb interrupted_cb;
+ player_error_cb error_cb;
+ player_buffering_cb buffering_cb;
+
+ /* callback user data */
+ void *user_data[MP_PLAYER_CB_TYPE_NUM];
+} mp_player_cbs;
+
+typedef struct {
+ mp_player_cb_type cb_type;
+
+ union {
+ player_interrupted_code_e interrupted_code;
+ int error_code;
+ int percent;
+ } param;
+} mp_player_cb_extra_data;
+
+static mp_player_cbs *g_player_cbs = NULL;
bool
mp_player_mgr_is_active(void)
return _player ? TRUE : FALSE;
}
-bool
-mp_player_mgr_set_msg_callback(MMMessageCallback cb, gpointer user_data)
+void mp_player_mgr_set_started_cb(player_started_cb callback, void *user_data)
{
if (!mp_player_mgr_is_active())
- return FALSE;
+ return;
- if (mm_player_set_message_callback(_player, cb, user_data) != MM_ERROR_NONE)
- {
- ERROR_TRACE("Error when mp_player_mgr_set_msg_callback\n");
- return FALSE;
- }
- return TRUE;
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->started_cb = callback;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_STARTED] = user_data;
+}
+
+void mp_player_mgr_set_paused_cb(player_paused_cb callback, void *user_data)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->paused_cb = callback;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_PAUSED] = user_data;
+}
+
+void mp_player_mgr_set_completed_cb(player_completed_cb callback, void *user_data)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->completed_cb = callback;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_COMPLETED] = user_data;
+}
+
+void mp_player_mgr_set_interrupted_cb(player_interrupted_cb callback, void *user_data)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->interrupted_cb = callback;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_INTURRUPTED] = user_data;
+}
+
+void mp_player_mgr_set_error_cb(player_error_cb callback, void *user_data)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->error_cb = callback;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_ERROR] = user_data;
+}
+
+void mp_player_mgr_set_buffering_cb(player_buffering_cb callback, void *user_data)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->buffering_cb = callback;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_BUFFERING] = user_data;
+}
+
+void mp_player_mgr_unset_started_cb(void)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->started_cb = NULL;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_STARTED] = NULL;
+}
+
+void mp_player_mgr_unset_paused_cb(void)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->paused_cb = NULL;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_PAUSED] = NULL;
+}
+
+void mp_player_mgr_unset_completed_cb(void)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->completed_cb = NULL;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_COMPLETED] = NULL;
+}
+
+void mp_player_mgr_unset_interrupted_cb(void)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->interrupted_cb = NULL;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_INTURRUPTED] = NULL;
}
-MMPlayerStateType
+void mp_player_mgr_unset_error_cb(void)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->error_cb = NULL;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_ERROR] = NULL;
+}
+
+void mp_player_mgr_unset_buffering_cb(void)
+{
+ if (!mp_player_mgr_is_active())
+ return;
+
+ MP_CHECK(g_player_cbs);
+
+ g_player_cbs->buffering_cb = NULL;
+ g_player_cbs->user_data[MP_PLAYER_CB_TYPE_BUFFERING] = NULL;
+}
+
+player_state_e
mp_player_mgr_get_state(void)
{
int ret = -1;
- MMPlayerStateType state_now = MM_PLAYER_STATE_NULL;
+ player_state_e state_now = PLAYER_STATE_NONE;
if (!_player)
return state_now;
- ret = mm_player_get_state(_player, &state_now);
+ ret = player_get_state(_player, &state_now);
return state_now;
}
+static void
+_mp_player_mgr_callback_pipe_handler(void *data, void *buffer, unsigned int nbyte)
+{
+ mp_player_cb_extra_data *extra_data = buffer;
+ MP_CHECK(extra_data);
+ MP_CHECK(g_player_cbs);
+
+ switch (extra_data->cb_type) {
+ case MP_PLAYER_CB_TYPE_STARTED:
+ if (g_player_cbs->started_cb)
+ g_player_cbs->started_cb(g_player_cbs->user_data[MP_PLAYER_CB_TYPE_STARTED]);
+ break;
+
+ case MP_PLAYER_CB_TYPE_PAUSED:
+ if (g_player_cbs->paused_cb)
+ g_player_cbs->paused_cb(g_player_cbs->user_data[MP_PLAYER_CB_TYPE_PAUSED]);
+ break;
+
+ case MP_PLAYER_CB_TYPE_COMPLETED:
+ if (g_player_cbs->completed_cb)
+ g_player_cbs->completed_cb(g_player_cbs->user_data[MP_PLAYER_CB_TYPE_COMPLETED]);
+ break;
+
+ case MP_PLAYER_CB_TYPE_INTURRUPTED:
+ if (g_player_cbs->interrupted_cb)
+ g_player_cbs->interrupted_cb(extra_data->param.interrupted_code, g_player_cbs->user_data[MP_PLAYER_CB_TYPE_INTURRUPTED]);
+ break;
+
+ case MP_PLAYER_CB_TYPE_ERROR:
+ if (g_player_cbs->error_cb)
+ g_player_cbs->error_cb(extra_data->param.error_code, g_player_cbs->user_data[MP_PLAYER_CB_TYPE_ERROR]);
+ break;
+
+ case MP_PLAYER_CB_TYPE_BUFFERING:
+ if (g_player_cbs->buffering_cb)
+ g_player_cbs->buffering_cb(extra_data->param.percent ,g_player_cbs->user_data[MP_PLAYER_CB_TYPE_BUFFERING]);
+ break;
+
+ default:
+ WARN_TRACE("Not suppoted callback type [%d]", extra_data->cb_type);
+ }
+}
+
+static void
+_mp_player_mgr_start_cb(void *userdata)
+{
+ MP_CHECK(g_player_pipe);
+
+ mp_player_cb_extra_data extra_data;
+ extra_data.cb_type = MP_PLAYER_CB_TYPE_STARTED;
+
+ ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mp_player_cb_extra_data));
+}
+
+static void
+_mp_player_mgr_paused_cb(void *userdata)
+{
+ MP_CHECK(g_player_pipe);
+
+ mp_player_cb_extra_data extra_data;
+ extra_data.cb_type = MP_PLAYER_CB_TYPE_PAUSED;
+
+ ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mp_player_cb_extra_data));
+}
+
+static void
+_mp_player_mgr_completed_cb(void *userdata)
+{
+ MP_CHECK(g_player_pipe);
+
+ mp_player_cb_extra_data extra_data;
+ extra_data.cb_type = MP_PLAYER_CB_TYPE_COMPLETED;
+
+ ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mp_player_cb_extra_data));
+}
+
+static void
+_mp_player_mgr_interrupted_cb(player_interrupted_code_e code, void *userdata)
+{
+ MP_CHECK(g_player_pipe);
+
+ mp_player_cb_extra_data extra_data;
+ extra_data.cb_type = MP_PLAYER_CB_TYPE_INTURRUPTED;
+ extra_data.param.interrupted_code = code;
+
+ ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mp_player_cb_extra_data));
+}
+
+
+static void
+_mp_player_mgr_error_cb(int error_code, void *userdata)
+{
+ MP_CHECK(g_player_pipe);
+
+ mp_player_cb_extra_data extra_data;
+ extra_data.cb_type = MP_PLAYER_CB_TYPE_ERROR;
+ extra_data.param.error_code = error_code;
+
+ ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mp_player_cb_extra_data));
+}
+
+static void
+_mp_player_mgr_buffering_cb(int percent, void *userdata)
+{
+ MP_CHECK(g_player_pipe);
+
+ mp_player_cb_extra_data extra_data;
+ extra_data.cb_type = MP_PLAYER_CB_TYPE_BUFFERING;
+ extra_data.param.percent = percent;
+
+ ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mp_player_cb_extra_data));
+}
+
bool
mp_player_mgr_create(void *data, const gchar * path)
struct appdata *ad = (struct appdata *)data;
int path_len = strlen(path);
- char *g_err_name = NULL;
- int ret = MM_ERROR_NONE;
+ int ret = PLAYER_ERROR_NONE;
DEBUG_TRACE("mp_player_mgr_create with [%s]\n", path);
- if(!ad->player_msg_pipe)
- ad->player_msg_pipe = ecore_pipe_add(mp_player_mgr_pipe_cb, ad);
-
if (path_len > 0 && path_len < MAX_PATH_LEN)
{
{
return FALSE;
}
- if (mm_player_create(&_player) != MM_ERROR_NONE)
+ MP_TA_ACUM_ITEM_BEGIN(" mm_player_create", 0);
+ if (player_create(&_player) != PLAYER_ERROR_NONE)
{
ERROR_TRACE("Error when mp_player_mgr_create\n");
return FALSE;
}
+ MP_TA_ACUM_ITEM_END(" mm_player_create", 0);
+ /*avsysaudiosink volume table setting */
- ret = mm_player_set_attribute(_player, &g_err_name,
- "sound_volume_type", MM_SOUND_VOLUME_TYPE_MEDIA,
- "profile_uri", path, strlen(path), NULL);
- if (ret != MM_ERROR_NONE)
+ ret = player_set_uri(_player, path);
+
+ if (ret != PLAYER_ERROR_NONE)
{
- ERROR_TRACE(">>>>>>>>>>>>>g_err_name : %s\n", g_err_name);
- SAFE_FREE(g_err_name);
+ ERROR_TRACE("fail to set uri");
+ mp_player_mgr_destroy(data);
return FALSE;
}
+ player_set_sound_type(_player, SOUND_TYPE_MEDIA);
+
if (mp_streaming_mgr_check_streaming(ad, path)) {
if (!mp_streaming_mgr_set_attribute(ad, _player)) {
mp_error("streaming set attribute fail");
+ mp_player_mgr_destroy(data);
return FALSE;
}
}
return FALSE;
}
+
+ is_seeking = false;
+ g_reserved_seek_pos = -1;
+
+ g_player_cbs = calloc(1, sizeof(mp_player_cbs));
+ mp_assert(g_player_cbs);
+
+ g_player_pipe = ecore_pipe_add(_mp_player_mgr_callback_pipe_handler, ad);
+
+ player_set_started_cb(_player, _mp_player_mgr_start_cb, NULL);
+ player_set_paused_cb(_player, _mp_player_mgr_paused_cb, NULL);
+ player_set_completed_cb(_player, _mp_player_mgr_completed_cb, NULL);
+ player_set_interrupted_cb(_player, _mp_player_mgr_interrupted_cb, NULL);
+ player_set_error_cb(_player, _mp_player_mgr_error_cb, NULL);
+ player_set_buffering_cb(_player, _mp_player_mgr_buffering_cb, NULL);
+
return TRUE;
}
{
struct appdata *ad = data;
- if(ad->player_msg_pipe)
- {
- ecore_pipe_del(ad->player_msg_pipe);
- ad->player_msg_pipe = NULL;
- }
-
if (!mp_player_mgr_is_active())
return FALSE;
- if (mm_player_destroy(_player) != MM_ERROR_NONE)
+ if (player_destroy(_player) != PLAYER_ERROR_NONE)
{
ERROR_TRACE("Error when mp_player_mgr_destroy\n");
return FALSE;
_player = 0;
ad->player_state = PLAY_STATE_INIT;
- if (!ad->freeze_indicator_icon)
+ if (!ad->freeze_indicator_icon && !mp_util_is_other_player_playing())
vconf_set_int(VCONFKEY_MUSIC_STATE, VCONFKEY_MUSIC_OFF);
else
ad->freeze_indicator_icon = FALSE;
+ is_seeking = false;
+ g_reserved_seek_pos = -1;
+ g_reserved_cb = NULL;
+ g_reserved_cb_data = NULL;
+ g_requesting_cb = NULL;
+ g_requesting_cb_data = NULL;
+
+ SAFE_FREE(g_player_cbs);
+ if (g_player_pipe) {
+ ecore_pipe_del(g_player_pipe);
+ g_player_pipe = NULL;
+ }
+
return TRUE;
}
bool
mp_player_mgr_realize(void *data)
{
+ struct appdata *ad = data;
+
if (!mp_player_mgr_is_active())
return FALSE;
- if (mm_player_realize(_player) != MM_ERROR_NONE)
+ MP_TA_ACUM_ITEM_BEGIN(" mm_player_realize", 0);
+ if (player_prepare(_player) != PLAYER_ERROR_NONE)
{
ERROR_TRACE("Error when mp_player_mgr_realize\n");
_player = 0;
return FALSE;
}
+ MP_TA_ACUM_ITEM_END(" mm_player_realize", 0);
+ ad->player_state = PLAY_STATE_READY;
return TRUE;
}
if (!mp_player_mgr_is_active())
return FALSE;
- if (mm_player_unrealize(_player) != MM_ERROR_NONE)
+ if (player_unprepare(_player) != PLAYER_ERROR_NONE)
{
ERROR_TRACE("Error when mp_player_mgr_unrealize\n");
return FALSE;
if (!mp_player_mgr_is_active())
return FALSE;
- err = mm_player_start(_player);
- if (err != MM_ERROR_NONE)
+ MP_TA_ACUM_ITEM_BEGIN(" mm_player_start", 0);
+ err = player_start(_player);
+ if (err != PLAYER_ERROR_NONE)
{
- if (err == MM_ERROR_POLICY_BLOCKED)
+ if (err == PLAYER_ERROR_SOUND_POLICY)
{
mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"));
}
ERROR_TRACE("Error when mp_player_mgr_play. err[%x]\n", err);
return FALSE;
}
+ MP_TA_ACUM_ITEM_END(" mm_player_start", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" mm_player_start_cb_time", 0);
+
+ is_seeking = false;
+ g_reserved_seek_pos = -1;
+
return TRUE;
}
if (!mp_player_mgr_is_active())
return FALSE;
- if (mm_player_stop(_player) != MM_ERROR_NONE)
+ if (player_stop(_player) != PLAYER_ERROR_NONE)
{
ERROR_TRACE("Error when mp_player_mgr_stop\n");
return FALSE;
}
+ is_seeking = false;
+ g_reserved_seek_pos = -1;
+
mp_play_stop(ad);
return TRUE;
}
if (!mp_player_mgr_is_active())
return FALSE;
- err = mm_player_resume(_player);
- if (err != MM_ERROR_NONE)
+ err = player_start(_player);
+ if (err != PLAYER_ERROR_NONE)
{
ERROR_TRACE("Error when mp_player_mgr_resume. err[%x]\n", err);
- if (err == MM_ERROR_POLICY_BLOCKED)
+ if (err == PLAYER_ERROR_SOUND_POLICY)
{
mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_DURING_CALL"));
}
return FALSE;
}
+ is_seeking = false;
+ g_reserved_seek_pos = -1;
+
mp_play_view_update_progressbar(data);
mp_play_view_progress_timer_thaw(data);
if (!mp_player_mgr_is_active())
return FALSE;
- err = mm_player_pause(_player);
- if (err != MM_ERROR_NONE)
+ err = player_pause(_player);
+ if (err != PLAYER_ERROR_NONE)
{
ERROR_TRACE("Error when mp_player_mgr_pause. err[%x]\n", err);
return FALSE;
}
+
return TRUE;
}
+static Eina_Bool
+_mp_player_mgr_seek_done_idler(void *data)
+{
+ mp_debug("seek done[%d]", (int)data);
+
+ if (!is_seeking) {
+ mp_debug("seek canceled");
+ return ECORE_CALLBACK_DONE;
+ }
+
+ is_seeking = false;
+
+ if (g_requesting_cb) {
+ /* invoke seek done callback */
+ g_requesting_cb(g_requesting_cb_data);
+
+ g_requesting_cb = NULL;
+ g_requesting_cb_data = NULL;
+ }
+
+ if (g_reserved_seek_pos >= 0) {
+ mp_debug("request reseved seek");
+ mp_player_mgr_set_position(g_reserved_seek_pos, g_reserved_cb, g_reserved_cb_data);
+ g_reserved_seek_pos = -1;
+ g_reserved_cb = NULL;
+ g_reserved_cb_data = NULL;
+ }
+
+ return ECORE_CALLBACK_DONE;
+}
+
+static void
+_mp_player_mgr_seek_done_cb(void *data)
+{
+ if (is_seeking)
+ ecore_idler_add(_mp_player_mgr_seek_done_idler, data);
+}
+
bool
-mp_player_mgr_set_position(guint pos)
+mp_player_mgr_set_position(guint pos, Seek_Done_Cb done_cb, void *data)
{
- startfunc;
if (!mp_player_mgr_is_active())
return FALSE;
- if (mm_player_set_position(_player, MM_PLAYER_POS_FORMAT_TIME, (int)pos) != MM_ERROR_NONE)
+ if (is_seeking) {
+ mp_debug("previous seek is NOT completed.. reserve seek[%d]", pos);
+ g_reserved_seek_pos = pos;
+ g_reserved_cb = done_cb;
+ g_reserved_cb_data = data;
+ return TRUE;
+ }
+
+ int err = player_set_position(_player, (int)pos, _mp_player_mgr_seek_done_cb, (void *)pos);
+ if (err != PLAYER_ERROR_NONE)
{
- ERROR_TRACE("Error when mp_player_mgr_set_position\n");
+ ERROR_TRACE("Error [0x%x] when mp_player_mgr_set_position(%d)\n", err, pos);
return FALSE;
}
+ mp_debug("seek reqeuesting.. [%d]", pos);
+ is_seeking = true;
+ g_requesting_cb = done_cb;
+ g_requesting_cb_data = data;
+
return TRUE;
}
if (!mp_player_mgr_is_active())
return 0;
- if (mm_player_get_position(_player, MM_PLAYER_POS_FORMAT_TIME, &pos) != MM_ERROR_NONE)
+ if (player_get_position(_player, &pos) != PLAYER_ERROR_NONE)
{
ERROR_TRACE("Error when mp_player_mgr_get_position\n");
return 0;
if (!mp_player_mgr_is_active())
return -1;
- int ret = MM_ERROR_NONE;
- char *g_err_name = NULL;
- int duration = -1;
-
- ret = mm_player_get_attribute(_player, &g_err_name, "content_duration", &duration, NULL);
- if (ret != MM_ERROR_NONE)
- {
- ERROR_TRACE(">>>>>>>>>>>>>g_err_name : %s\n", g_err_name);
- SAFE_FREE(g_err_name);
- return FALSE;
- }
- else
- {
- return duration;
- }
- return duration;
-}
-
-static Eina_Bool
-mp_playing_paused_by_bluetooth(void *data)
-{
- struct appdata *ad = data;
- MP_CHECK_FALSE(ad);
-
- int earjack = 0;
-
- if (vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &earjack))
- {
- WARN_TRACE("Earjack state get Fail...");
-
- if (earjack == 0)
- {
- mp_play_pause(ad);
- }
- }
-
- mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_BLUETOOTH_DISCONNECTED"));
- ad->bt_pause_idler = NULL;
- return 0;
-}
-
-static Eina_Bool
-mp_playing_error(void *data)
-{
- struct appdata *ad = data;
- MP_CHECK_FALSE(ad);
-
- mp_play_destory(ad);
- ad->playing_err_idler = NULL;
- return EINA_FALSE;
-}
-
-typedef struct{
- int msg_type;
- MMMessageParamType msg_param;
-}mp_pipe_msg;
-
-void
-mp_player_mgr_pipe_cb(void *data, void *buffer, unsigned int nbyte)
-{
- struct appdata *ad = data;
- MP_CHECK(ad);
- MP_CHECK(buffer);
- mp_pipe_msg *pipe_msg = buffer;
- MMMessageParamType *param = &(pipe_msg->msg_param);
- int msg_type = pipe_msg->msg_type;
+ int duration = 0;
- DEBUG_TRACE("msg_type: %d,", msg_type);
+ if (!mp_player_mgr_is_active())
+ return 0;
- switch (msg_type)
+ if (player_get_duration(_player, &duration) != PLAYER_ERROR_NONE)
{
- case MM_MESSAGE_BEGIN_OF_STREAM:
- DEBUG_TRACE("receive MM_MESSAGE_BEGIN_OF_STREAM\n");
- mp_play_start(ad);
- break;
-
- case MM_MESSAGE_ERROR:
- DEBUG_TRACE("receive MM_MESSAGE_ERROR \n");
- DEBUG_TRACE("Error Code=%x\n", param->code);
- MP_CHECK(param);
- switch (param->code)
- {
- case MM_ERROR_PLAYER_BT_CONNECTION:
- DEBUG_TRACE("receive MM_ERROR_PLAYER_BT_CONNECTION\n");
- break;
- case MM_ERROR_PLAYER_INTERNAL:
- DEBUG_TRACE("receive MM_ERROR_PLAYER_INTERNAL\n");
- mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED"));
- break;
- case MM_ERROR_PLAYER_CODEC_NOT_FOUND:
- DEBUG_TRACE("receive MM_ERROR_PLAYER_CODEC_NOT_FOUND\n");
- mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"));
- break;
- default:
- if (!mp_streaming_mgr_message_callback(msg_type, param, ad))
- mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_UNSUPPORTED_FILETYPE"));
- break;
- }
- if(!ad->playing_err_idler)
- ad->playing_err_idler = ecore_idler_add(mp_playing_error, ad);
- break;
-
- case MM_MESSAGE_WARNING:
- DEBUG_TRACE("receive MM_MESSAGE_WARNING\n");
- break;
-
- case MM_MESSAGE_END_OF_STREAM:
- DEBUG_TRACE("receive MM_MESSAGE_END_OF_STREAM\n");
- mp_play_control_end_of_stream(ad);
- break;
-
- case MM_MESSAGE_STATE_CHANGED:
- MP_CHECK(param);
- switch (param->state.current)
- {
- case MM_PLAYER_STATE_NONE:
- DEBUG_TRACE("==> [MediaPlayerApp] Player is [NONE]\n");
- break;
- case MM_PLAYER_STATE_READY:
- DEBUG_TRACE("==> [MediaPlayerApp] Player is [READY]\n");
- ad->player_state = PLAY_STATE_READY;
- mp_play_ready(ad);
- break;
- case MM_PLAYER_STATE_PLAYING:
- DEBUG_TRACE("==> [MediaPlayerApp] Player is [PLAYING]\n");
- if (ad->player_state == PLAY_STATE_PAUSED)
- mp_play_resume(ad);
-
- ad->player_state = PLAY_STATE_PLAYING;
-
- if (ad->is_focus_out) {
- mp_debug("prohibit playing in bg");
- mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
- }
-
- break;
- case MM_PLAYER_STATE_PAUSED:
- DEBUG_TRACE("==> [MediaPlayerApp] Player is [PAUSED]\n");
- mp_play_pause(ad);
- ad->player_state = PLAY_STATE_PAUSED;
- break;
- case MM_PLAYER_STATE_NULL:
- DEBUG_TRACE("==> [MediaPlayerApp] Player is [NULL]\n");
- break;
- }
-
- break;
-
- case MM_MESSAGE_STATE_INTERRUPTED:
- DEBUG_TRACE("receive MM_MESSAGE_STATE_CHANGED_BY_ASM\n");
- MP_CHECK(param);
- switch (param->code)
- {
- case MM_MSG_CODE_INTERRUPTED_BY_OTHER_APP:
- DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_OTHER_APP");
- break;
- case MM_MSG_CODE_INTERRUPTED_BY_CALL_START:
- DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_CALL_START");
- break;
- case MM_MSG_CODE_INTERRUPTED_BY_CALL_END:
- DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_CALL_END");
- break;
- case MM_MSG_CODE_INTERRUPTED_BY_EARJACK_UNPLUG:
- DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_EARJACK_UNPLUG");
- break;
- case MM_MSG_CODE_INTERRUPTED_BY_RESOURCE_CONFLICT:
- DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_RESOURCE_CONFLICT");
- break;
- case MM_MSG_CODE_INTERRUPTED_BY_ALARM_START:
- DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_ALARM_START");
- break;
- case MM_MSG_CODE_INTERRUPTED_BY_ALARM_END:
- DEBUG_TRACE("receive MM_MSG_CODE_INTERRUPTED_BY_ALARM_END");
- break;
- }
- mp_play_pause(ad);
-
- break;
-
- case MM_MESSAGE_BLUETOOTH_OFF:
- DEBUG_TRACE("receive MM_MESSAGE_BLUETOOTH_OFF\n");
- if(!ad->bt_pause_idler)
- ad->bt_pause_idler = ecore_idler_add(mp_playing_paused_by_bluetooth, ad);
- break;
-
- case MM_MESSAGE_READY_TO_RESUME:
- DEBUG_TRACE("receive MM_MESSAGE_READY_TO_RESUME");
-
- if (ad->player_state == PLAY_STATE_PAUSED)
- mp_player_mgr_resume(ad);
- else
- ERROR_TRACE("Check player state");
- break;
-
- default:
- if (!mp_streaming_mgr_message_callback(msg_type, param, ad)) {
- DEBUG_TRACE("receive unknown msg [0x%x]", msg_type);
- }
+ ERROR_TRACE("Error when mp_player_mgr_get_position\n");
+ return 0;
}
- return;
-}
-
-int
-player_msg_cb(int msg_type, void *msg_param, void *user_param)
-{
- startfunc;
- struct appdata *ad = user_param;
- MP_CHECK_VAL(ad, 0);
-
- MP_CHECK_VAL(mp_player_mgr_is_active(), 1);
- mp_pipe_msg *pipe_msg = calloc(sizeof(mp_pipe_msg), 1);
- if(msg_param)
- memcpy(&(pipe_msg->msg_param), msg_param, sizeof(MMMessageParamType));
- pipe_msg->msg_type = msg_type;
-
- ecore_pipe_write(ad->player_msg_pipe, pipe_msg, sizeof(mp_pipe_msg));
-
- IF_FREE(pipe_msg);
- return 1;
+ return duration;
}
int
mp_player_mgr_vol_type_set(void)
{
- return mm_sound_volume_primary_type_set(VOLUME_TYPE_MEDIA);
+ return sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_MEDIA);
}
int
mp_player_mgr_vol_type_unset(void)
{
- return mm_sound_volume_primary_type_clear();
+ return sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_NONE);
}
bool
mp_player_mgr_session_init(void)
{
- int ret = MM_ERROR_NONE;
+ int ret = SOUND_MANAGER_ERROR_NONE;
- ret = mm_session_init(MM_SESSION_TYPE_SHARE);
+ ret = sound_manager_set_session_type(SOUND_SESSION_TYPE_SHARE);
- if (ret != MM_ERROR_NONE)
+ if (ret != SOUND_MANAGER_ERROR_NONE)
return FALSE;
return TRUE;
bool
mp_player_mgr_session_finish(void)
{
- int ret = MM_ERROR_NONE;
-
- ret = mm_session_finish();
-
- if (ret != MM_ERROR_NONE)
- return FALSE;
-
return TRUE;
-
}
void
if (!mp_player_mgr_is_active())
return;
- if (mm_player_set_mute(_player, (int)bMuteEnable) != MM_ERROR_NONE)
+ if (player_set_mute(_player, bMuteEnable) != PLAYER_ERROR_NONE)
{
ERROR_TRACE("[ERR] mm_player_set_mute");
}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
-
#include <string.h>
#include <stdlib.h>
#include <vconf.h>
-#include <audio-svc.h>
+#include "mp-media-info.h"
#include "music.h"
#include "mp-setting-ctrl.h"
-#include "mp-setting-keys.h"
#include "mp-player-debug.h"
#include "mp-file-tag-info.h"
#include "mp-player-mgr.h"
#include "mp-widget.h"
#include "mp-util.h"
+#include "mp-vconf-private-keys.h"
+
+enum _mp_menu_item
+{
+ MP_MENU_ALBUMS,
+ MP_MENU_ARTISTS,
+ MP_MENU_GENRES,
+ MP_MEMU_COMPOSER,
+ MP_MENU_YEARS,
+ MP_MENU_FOLDERS,
+ MP_MENU_NUMS,
+};
typedef struct _mp_setting_t
{
int output;
MpSettingMenu_Cb menu_cb;
void *menu_udata;
+ MpSettingAutoOff_Cb auto_off_cb;
+ void *auto_off_udata;
} mp_setting_t;
-
-#define MP_VCONFKEY_MUSIC_SHUFFLE "db/music/menu/shuffle"
-#define MP_VCONFKEY_MUSIC_REPEAT "db/music/menu/repeat"
-#define MP_VCONFKEY_MUSIC_ALBUM_ART "memory/music/album_art"
-
static mp_setting_t *g_setting = NULL;
static char *c_file_path = NULL;
static Eina_Bool _mp_setting_init_idler_cb(void *data);
+
+
void
mp_setting_set_albumart_path(const char *path)
{
if (path && strlen(path))
- vconf_set_str(MP_VCONFKEY_MUSIC_ALBUM_ART, path);
+ vconf_set_str(VCONFKEY_MUSIC_ALBUM_ART, path);
+ else
+ vconf_set_str(VCONFKEY_MUSIC_ALBUM_ART, DEFAULT_THUMBNAIL);
+}
+
+static void
+_mp_setting_earjack_changed_cb(keynode_t * node, void *user_data)
+{
+ mp_setting_t *sd = NULL;
+ int ear_jack = 0;
+
+ mp_retm_if(node == NULL, "keymode is NULL");
+ mp_retm_if(user_data == NULL, "user_date is NULL");
+ sd = (mp_setting_t *) user_data;
+
+ ear_jack = vconf_keynode_get_int(node);
+ if (ear_jack == VCONFKEY_SYSMAN_EARJACK_REMOVED)
+ sd->output = SOUND_DEVICE_OUT_SPEAKER;
else
- vconf_set_str(MP_VCONFKEY_MUSIC_ALBUM_ART, DEFAULT_THUMBNAIL);
+ sd->output = SOUND_DEVICE_OUT_WIRED_ACCESSORY;
+
+ return;
}
static void
mp_retvm_if(g_setting == NULL, -1, "setting data is not initialized, init first!!!!!");
+ if (vconf_notify_key_changed(VCONFKEY_SYSMAN_EARJACK, _mp_setting_earjack_changed_cb, g_setting) < 0)
+ {
+ ERROR_TRACE("Fail to register VCONFKEY_SYSMAN_EARJACK key callback");
+ ret = -1;
+ }
+
if (vconf_notify_key_changed(VCONFKEY_MUSIC_MENU_CHANGE, _mp_setting_menu_changed_cb, g_setting) < 0)
{
ERROR_TRACE("Fail to register VCONFKEY_MUSIC_MENU_CHANGE key callback");
mp_setting_key_cb_deinit(void)
{
+ vconf_ignore_key_changed(VCONFKEY_SYSMAN_EARJACK, _mp_setting_earjack_changed_cb);
vconf_ignore_key_changed(VCONFKEY_MUSIC_MENU_CHANGE, _mp_setting_menu_changed_cb);
return;
{
struct appdata *ad = (struct appdata *)data;
+ //output
+ int ear_jack = 0;
+ if (vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &ear_jack))
+ {
+ ERROR_TRACE("Fail to get VCONFKEY_SYSMAN_EARJACK");
+ }
+ else
+ {
+ DEBUG_TRACE("VCONFKEY_SYSMAN_EARJACK : %d", ear_jack);
+ if (ear_jack == VCONFKEY_SYSMAN_EARJACK_REMOVED)
+ {
+ g_setting->output = SOUND_DEVICE_OUT_SPEAKER;
+ }
+ else
+ g_setting->output = SOUND_DEVICE_OUT_WIRED_ACCESSORY;
+ }
+
mp_setting_key_cb_init();
ad->setting_idler = NULL;
+
return EINA_FALSE;
}
}
memset(g_setting, 0x00, sizeof(mp_setting_t));
+ //menu
+ MP_TA_ACUM_ITEM_BEGIN(" vconf_get_bool()", 0);
if (vconf_get_int(VCONFKEY_SETAPPL_MUSIC_MENU_VAL_INT, &(g_setting->menu_state)))
{
ERROR_TRACE("Fail to get %s", VCONFKEY_SETAPPL_MUSIC_MENU_VAL_INT);
ret = -1;
}
+ MP_TA_ACUM_ITEM_END(" vconf_get_bool()", 0);
if(!ad->setting_idler)
ad->setting_idler = ecore_idler_add(_mp_setting_init_idler_cb, ad);
+
+ mp_setting_get_shuffle_state(&ad->play_shuffle_state);
+
return ret;
}
return 0;
}
+
int
mp_setting_set_shuffle_state(int b_val)
{
return 0;
}
-
int
mp_setting_menu_get_state(mp_setting_menu_t * menu_state)
{
menu_state->genres = g_setting->menu_state & SETTING_MUSIC_MENU_GENRE ? true : false;
menu_state->composers = g_setting->menu_state & SETTING_MUSIC_MENU_COMPOSER ? true : false;
menu_state->years = g_setting->menu_state & SETTING_MUSIC_MENU_YEAR ? true : false;
+ menu_state->folders = g_setting->menu_state & SETTING_MUSIC_MENU_FOLDER ? true : false;
return 0;
}
return 0;
}
+int
+mp_setting_auto_off_set_callback(MpSettingAutoOff_Cb func, void *data)
+{
+ mp_retvm_if(g_setting == NULL, -1, "setting data is not initialized, init first!!!!!");
+
+ g_setting->auto_off_cb = func;
+ g_setting->auto_off_udata = data;
+
+ return 0;
+}
+
void
mp_setting_save_now_playing(void *data)
{
item = mp_play_list_get_current_item(ad->playing_list);
MP_CHECK(item);
- fp = fopen(MP_NOWPLAYING_INI_FILE_NAME, "w");
+ fp = fopen(MP_NOWPLAYING_INI_FILE_NAME, "w"); // make new file.
if (fp == NULL)
{
endfunc;
}
+#define MP_SHORTCUT_COUNT 4
+
+void
+mp_setting_save_shortcut(char *shortcut_title, char *artist, char *shortcut_description, char *shortcut_image_path)
+{
+ startfunc;
+ FILE *fp = NULL;
+
+ if (ecore_file_exists(MP_SHORTCUT_INI_FILE_NAME_2))
+ {
+ rename(MP_SHORTCUT_INI_FILE_NAME_2, MP_SHORTCUT_INI_FILE_NAME_3);
+ }
+ if (ecore_file_exists(MP_SHORTCUT_INI_FILE_NAME_1))
+ {
+ rename(MP_SHORTCUT_INI_FILE_NAME_1, MP_SHORTCUT_INI_FILE_NAME_2);
+ }
+ if (ecore_file_exists(MP_SHORTCUT_INI_FILE_NAME_0))
+ {
+ rename(MP_SHORTCUT_INI_FILE_NAME_0, MP_SHORTCUT_INI_FILE_NAME_1);
+ }
+
+ fp = fopen(MP_SHORTCUT_INI_FILE_NAME_0, "w"); // make new file.
+
+ if (fp == NULL)
+ {
+ ERROR_TRACE("Failed to open ini files. : %s", MP_SHORTCUT_INI_FILE_NAME_0);
+ return;
+ }
+
+ fprintf(fp, "[ShortCut]\n");
+ fprintf(fp, "title=%s\n", shortcut_title);
+ if (artist)
+ fprintf(fp, "artist=%s\n", artist);
+ fprintf(fp, "desc=%s\n", shortcut_description);
+ fprintf(fp, "artwork=%s\n", shortcut_image_path);
+ fprintf(fp, "\n");
+
+ fclose(fp);
+
+ endfunc;
+}
+
+#ifndef MP_SOUND_PLAYER
void
mp_setting_save_last_played(mp_layout_data_t * layout_data)
{
MP_CHECK(ad);
MP_CHECK(ad->playing_list);
- if (ad->loadtype != LOAD_PLAY)
+
+ if (ad->loadtype == LOAD_VOICE_UI)
{
- fp = fopen(MP_RECENT_PLAYED_INI_FILE_NAME, "w");
+
+
+ }
+ else
+ {
+ fp = fopen(MP_RECENT_PLAYED_INI_FILE_NAME, "w"); // make new file.
if (fp == NULL)
{
- ERROR_TRACE("Failed to open ini files. : %s", MP_RECENT_PLAYED_INI_FILE_NAME);
+ ERROR_TRACE("Failed to open ini files. : %s", MP_SHORTCUT_INI_FILE_NAME_0);
return;
}
}
}
+#endif
+
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include "music.h"
#include "mp-streaming-mgr.h"
#include "mp-http-mgr.h"
}
}
-int
-mp_streaming_mgr_message_callback(int msg_type, void *msg_param, void *user_param)
-{
- startfunc;
- struct appdata *ad = user_param;
- MMMessageParamType *param = (MMMessageParamType *) msg_param;
-
- int ret = TRUE;
-
- switch (msg_type)
- {
- case MM_MESSAGE_ERROR:
- DEBUG_TRACE("receive MM_MESSAGE_ERROR(Streaming) \n");
- DEBUG_TRACE("Error Code=%x\n", param->code);
- switch (param->code)
- {
- case MM_ERROR_PLAYER_STREAMING_CONNECTION_FAIL:
- mp_debug("MM_ERROR_PLAYER_STREAMING_CONNECTION_FAIL");
- mp_streaming_mgr_buffering_popup_control(ad, FALSE);
- mp_widget_text_popup(ad, GET_SYS_STR("IDS_COM_POP_CONNECTION_FAILED"));
- break;
-
- case MM_ERROR_PLAYER_STREAMING_SERVER_DISCONNECTED:
- mp_debug("MM_ERROR_PLAYER_STREAMING_SERVER_DISCONNECTED");
- mp_widget_text_popup(ad, GET_SYS_STR("IDS_COM_POP_CONNECTION_FAILED"));
- break;
-
- default:
- mp_debug("Unhandled error!!");
- ret = FALSE;
- }
- break;
-
- case MM_MESSAGE_CONNECTING:
- mp_debug("MM_MESSAGE_CONNECTING");
- break;
-
- case MM_MESSAGE_CONNECTED:
- mp_debug("MM_MESSAGE_CONNECTED");
- break;
-
- case MM_MESSAGE_CONNECTION_TIMEOUT:
- mp_debug("MM_MESSAGE_CONNECTION_TIMEOUT");
- break;
-
- case MM_MESSAGE_BUFFERING:
- {
- mp_debug("MM_MESSAGE_BUFFERING");
- mp_debug("Buffering : %d%% \n", param->connection.buffering);
-
- bool is_show_buffering = true;
- if (param->connection.buffering > 95 || ad->player_state == PLAY_STATE_PLAYING)
- is_show_buffering = false;
-
- mp_streaming_mgr_buffering_popup_control(ad, is_show_buffering);
- }
- break;
-
- case MM_MESSAGE_RTP_SENDER_REPORT:
- mp_debug("MM_MESSAGE_RTP_SENDER_REPORT");
- break;
-
- case MM_MESSAGE_RTP_RECEIVER_REPORT: /**< RTP receiver report */
- mp_debug("MM_MESSAGE_RTP_RECEIVER_REPORT");
- break;
-
- case MM_MESSAGE_RTP_SESSION_STATUS: /**< RTP session status */
- mp_debug("MM_MESSAGE_RTP_SESSION_STATUS");
- break;
-
- case MM_MESSAGE_SENDER_STATE: /**< Sender state */
- mp_debug("MM_MESSAGE_SENDER_STATE");
- break;
-
- case MM_MESSAGE_RECEIVER_STATE: /**< Receiver state */
- mp_debug("MM_MESSAGE_RECEIVER_STATE");
- break;
-
- default:
- mp_debug("@@@@@@@@ streaming msg cb [%d]", msg_type);
- ret = FALSE;
- break;
- }
-
- return ret;
-}
-
bool mp_streaming_mgr_check_streaming(struct appdata *ad, const char *path)
{
MP_CHECK_FALSE(path);
return FALSE;
}
-bool mp_streaming_mgr_set_attribute(struct appdata *ad, MMHandleType player)
+bool mp_streaming_mgr_set_attribute(struct appdata *ad, player_h player)
{
startfunc;
- MP_CHECK_FALSE(ad);
- MP_CHECK_FALSE(player);
-
- int ret = 0;
- char *g_err_name = NULL;
-
- const char *proxy_addr = NULL;
- proxy_addr = mp_http_mgr_get_proxy(ad);
- if (proxy_addr && strlen(proxy_addr) > 0) {
- ret = mm_player_set_attribute(player, &g_err_name,
- "streaming_proxy", proxy_addr, strlen(proxy_addr), NULL);
- if (ret != MM_ERROR_NONE) {
- ERROR_TRACE(">>>>>>>>>>>>>g_err_name : %s\n", g_err_name);
- SAFE_FREE(g_err_name);
- return FALSE;
- }
- }
-
- char *user_agent = mp_http_mgr_get_user_agent();
- if (user_agent) {
- if (strlen(user_agent) > 0) {
- mp_debug("UA = [%s]", user_agent);
- ret = mm_player_set_attribute(player, &g_err_name,
- "streaming_user_agent", user_agent, strlen(user_agent),
- NULL);
- if (ret != MM_ERROR_NONE) {
- ERROR_TRACE(">>>>>>>>>>>>>g_err_name : %s\n", g_err_name);
- SAFE_FREE(g_err_name);
- SAFE_FREE(user_agent);
- return FALSE;
- }
- }
- SAFE_FREE(user_agent);
- }
return TRUE;
}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
-
#ifndef __MP_DEFINE_H_
#define __MP_DEFINE_H_
#include <unistd.h>
#include <glib.h>
#include <vconf.h>
-#include <audio-svc.h>
+#include "mp-media-info.h"
#include <Ecore_IMF.h>
#include <Ecore_X.h>
-#include <E_DBus.h>
-#include <appcore-efl.h>
#include <Edje.h>
#include <errno.h>
#include <libintl.h>
-#include <mm_error.h>
-#include <mm_player.h>
#include <libxml/tree.h>
#include <libxml/parser.h>
#include <libxml/xpath.h>
#include <sys/times.h>
#include "mp-player-debug.h"
+#include "mp-ta.h"
+#include "mp-vconf-private-keys.h"
#ifndef bool
#define bool Eina_Bool
#define GET_SYS_STR(str) dgettext("sys_string", str)
#define GET_STR(str) _(str)
+#ifdef __ARM__
+#else
+#define __I386__ //define for support i386
+#endif
#ifndef PREFIX
# define PREFIX "/opt/apps/org.tizen.music-player"
#endif
+/* define macro to remove content related to AMG icon */
+#ifndef PACKAGE
#define PACKAGE "music-player"
+#endif
+
+#define LOCALE_PACKAGE "music-player"
#define INSTALL_DIR PREFIX
#ifndef LOCALEDIR
#define LOCALEDIR INSTALL_DIR"/res/locale"
#endif
+#define DATA_DIR INSTALL_DIR"/data"
+
#ifndef MP_INI_DIR
#define MP_INI_DIR INSTALL_DIR"/data"
#endif
#define EDJDIR PREFIX"res/edj"
#endif
+#define PKGNAME_FOR_SHORTCUT "org.tizen.music-player"
+
#define EDJ_PATH EDJDIR
#define EDJ_NAME EDJ_PATH"/mp-library.edj"
+#define MINICON_EDJ_NAME EDJ_PATH"/mp-minicontroller.edj"
#define GRP_MAIN "main"
#define THEME_NAME EDJ_PATH"/mp-custom-winset-style.edj"
#define TITLE_H 90
+#define START_Y_POSITION 94
#define MP_PHONE_ROOT_PATH "/opt/media"
#define MP_MMC_ROOT_PATH "/opt/storage/sdcard"
#define MAX_URL_LEN MAX_NAM_LEN
#define DEFAULT_THUMBNAIL ICON_DIRECTORY"/music_player/34_thumb_07.png"
+#define DEFAULT_THUMBNAIL_FOLDER ICON_DIRECTORY"/music_player/default_folder.png"
#define THUMBNAIL_MOST_PLAYED ICON_DIRECTORY"/music_player/34_mostplayed.png"
#define THUMBNAIL_RECENTLY_PLAYED ICON_DIRECTORY"/music_player/34_recentlyplayed.png"
#define THUMBNAIL_PLAYLIST ICON_DIRECTORY"/music_player/34_playlist.png"
#define THUMBNAIL_PLAYLIST_NOITEM ICON_DIRECTORY"/music_player/34_player_list_thum_noitems.png"
-#define MP_CTRBAR_ICON_SONGS ICON_DIRECTORY"/music_player/01_controlbar_icon_songs.png"
-#define MP_CTRBAR_ICON_PLAYLIST ICON_DIRECTORY"/music_player/01_controlbar_icon_playlists.png"
-#define MP_CTRBAR_ICON_ALBUM ICON_DIRECTORY"/music_player/01_controlbar_icon_music_albums.png"
-#define MP_CTRBAR_ICON_ARTIST ICON_DIRECTORY"/music_player/01_controlbar_icon_artist.png"
-#define MP_CTRBAR_ICON_GENRE ICON_DIRECTORY"/music_player/01_controlbar_icon_genre.png"
-#define MP_CTRBAR_ICON_YEAR ICON_DIRECTORY"/music_player/01_controlbar_icon_year.png"
-#define MP_CTRBAR_ICON_COMPOSER ICON_DIRECTORY"/music_player/01_controlbar_icon_composer.png"
-#define MP_CTRBAR_ICON_FOLDER ICON_DIRECTORY"/music_player/01_controlbar_icon_albums.png"
+#define MP_CTRBAR_ICON_SONGS ICON_DIRECTORY"/music_player/T02_controlbar_icon_all.png"
+#define MP_CTRBAR_ICON_PLAYLIST ICON_DIRECTORY"/music_player/T02_controlbar_icon_playlists.png"
+#define MP_CTRBAR_ICON_ALBUM ICON_DIRECTORY"/music_player/T02_controlbar_icon_music_albums.png"
+#define MP_CTRBAR_ICON_ARTIST ICON_DIRECTORY"/music_player/T02_controlbar_icon_artist.png"
+#define MP_CTRBAR_ICON_GENRE ICON_DIRECTORY"/music_player/T02_controlbar_icon_genres.png"
+#define MP_CTRBAR_ICON_YEAR ICON_DIRECTORY"/music_player/T02_controlbar_icon_years.png"
+#define MP_CTRBAR_ICON_COMPOSER ICON_DIRECTORY"/music_player/T02_controlbar_icon_composer.png"
+#define MP_CTRBAR_ICON_FOLDER ICON_DIRECTORY"/music_player/T02_controlbar_icon_folders.png"
+#define MP_CTRBAR_ICON_SQUARE ICON_DIRECTORY"/music_player/T02_controlbar_icon_music_square.png"
#define MP_ICON_NAVI_EDIT ICON_DIRECTORY"/music_player/T02_controlbar_icon_edit.png"
#define MP_ICON_NAVI_SEARCH ICON_DIRECTORY"/music_player/T02_controlbar_icon_search.png"
#define MP_ICON_NAVI_CANCEL ICON_DIRECTORY"/music_player/T02_controlbar_icon_cancel.png"
#define MP_ICON_NAVI_DONE NULL
+#define MP_ICON_NAVI_SHARE ICON_DIRECTORY"/music_player/T02_controlbar_icon_share.png"
#define MP_ICON_NAVI_INFO NULL
#define MP_ICON_NAVI_DELETE ICON_DIRECTORY"/music_player/T02_controlbar_icon_delete.png"
#define MP_ICON_NAVI_ADD_TO_PLST ICON_DIRECTORY"/music_player/T02_controlbar_icon_add_to_playlist.png"
#define MP_ICON_NAVI_NEW ICON_DIRECTORY"/music_player/T02_controlbar_icon_add.png"
+#define MP_ICON_NAVI_SYNC_START ICON_DIRECTORY"/music_player/02_controlbar_icon_synchronise_start_sync.png"
#define MP_ICON_SOUND_PATH ICON_DIRECTORY"/music_player/T02_icon_soundPath.png"
+#define MP_ICON_ALL_SHARE ICON_DIRECTORY"/music_player/T02_controlbar_icon_nearby_device.png"
+#define MP_ICON_NEARBY_DMR ICON_DIRECTORY"/music_player/T02_title_icon_nearby_device.png"
#define MP_ICON_BG ICON_DIRECTORY"/music_player/12_music_list_bg.png"
+#define MP_ICON_MINI_PLAYER ICON_DIRECTORY"/music_player/mini_app/T02_control_icon_apps.png"
+
+#define MP_ICON_STORAGE_PHONE ICON_DIRECTORY"/music_player/storage_type/T02_phone_02.png"
+#define MP_ICON_STORAGE_MMC ICON_DIRECTORY"/music_player/storage_type/T02_memory_card_02.png"
+#define MP_ICON_STORAGE_EXTERNAL ICON_DIRECTORY"/music_player/storage_type/T02_external_storage_02.png"
+
#define PLAY_VIEW_EDJ_NAME EDJ_PATH"/music.edj"
#define SIGNAL_PAUSE "pause_clicked"
#define SIGNAL_ALBUMART_DOWN "album_art_down"
#define SIGNAL_ALBUMART_MOVE "album_art_move"
#define SIGNAL_INFO "play_info_clicked"
+#define SIGNAL_SRS "srs_clicked"
+#define SIGNAL_SRS_DIM "srs_dim_clicked"
#define SIGNAL_SHUFFLE "shuffle_clicked"
#define SIGNAL_SHUFNON "shuffle_non_clicked"
#define SIGNAL_REPALL "rep_all_clicked"
#define SIGNAL_FAVORITE_CLICKED "favorite_clicked"
#define SIGNAL_NOW_PLAYING_CLICKED "now_playing_clicked"
+//2 support add to home playlist
+#define MP_FUNC_ADD_TO_HOME_SEPARATION "/"
+#define MP_FUNC_ADD_TO_HOME_DESC_PREFIX "_Shortcut:Description://"
+#define MP_FUNC_ADD_TO_HOME_THUMBNAIL_PREFIX "_Shortcut:ThumbnailPath://"
+#define MP_FUNC_ADD_TO_HOME_PREFIX "_Shortcut:MusicPlayer://"
+#define MP_SHORTCUT_PLAYLIST "playlist/"
+#define MP_SHORTCUT_GROUP "group/"
+#define MP_SHORTCUT_SONG "song/"
+#define MP_FUNC_ADD_TO_HOME_PLAYLIST MP_FUNC_ADD_TO_HOME_PREFIX"playlist/"
+#define MP_FUNC_ADD_TO_HOME_GROUP MP_FUNC_ADD_TO_HOME_PREFIX"group/"
+#define MP_FUNC_ADD_TO_HOME_SONG MP_FUNC_ADD_TO_HOME_PREFIX"song/"
+
+//2 EVAS_OBJECT_TYPE define
#define MP_FAST_SCROLLER_TYPE "mp_data_fast_scroller_type"
+//2 FEATURE define
+#define MP_FEATURE_WIFI_SHARE
+#define MP_FUNC_ALLSHARE_PLAYLIST "music-player:allshare_"
+
+
#define MP_POPUP_YES 1
-#define MP_POPUP_NO 0
-#define MP_POPUP_DEL -1
+#define MP_POPUP_NO 0
+#define MP_POPUP_TIMEOUT (2.0)
+#define MP_STR_UNKNOWN "Unknown"
#define MP_YEAR_S "%03u0s"
+typedef int SLP_Bool;
+typedef void (*MpHttpOpenRspCb) (gpointer user_data);
+typedef void (*MpGetShazamSigCb) (char *signature, int size, void *data);
+
+#define TIME_FORMAT_LEN 15
#define PLAY_TIME_ARGS(t) \
(((int)t) / 60) % 60, \
((int)t) % 60
((int)t) % 60
#define MUSIC_TIME_FORMAT "02u:%02u:%02u"
+#undef FREE
+#define FREE(ptr) free(ptr); ptr = NULL;
+
#undef IF_FREE
#define IF_FREE(ptr) if (ptr) {free(ptr); ptr = NULL;}
+#undef IF_G_FREE
+#define IF_G_FREE(p) ({g_free(p);p=NULL;})
#define mp_evas_object_del(object) do { \
if(object) { \
} \
} while (0)
+#define mp_elm_genlist_del(list) do { \
+ if(list) { \
+ elm_genlist_clear(list);\
+ evas_object_del(list); \
+ list = NULL; \
+ } \
+} while (0)
+
#define mp_ecore_timer_del(timer) do { \
if(timer) { \
ecore_timer_del(timer);\
strncpy (dest , src, sizeof(dest)-1);\
dest[sizeof(dest)-1] = 0; }while(0)
+#define mp_evas_object_response_set(obj, response) do { \
+ if (obj) { \
+ evas_object_data_set((obj), "response", (void *)(response)); \
+ } \
+} while (0)
+
+#define mp_evas_object_response_get(obj) (int)evas_object_data_get((obj), "response")
+
+
+typedef enum
+{
+ MP_SCREEN_MODE_PORTRAIT = 0,
+ MP_SCREEN_MODE_LANDSCAPE,
+} mp_screen_mode;
+
+
typedef enum
{
MP_SND_PATH_BT,
next = elm_genlist_item_next_get(current), \
data = elm_object_item_data_get(current))
-#define MP_PLAYLIST_MAX_ITEM_COUNT 1000
-#define MP_NOW_PLAYING_ICON_SIZE 48 * elm_scale_get()
-#define MP_LIST_ICON_SIZE 70 * elm_scale_get()
-#define MP_ALBUM_LIST_ICON_SIZE 48 * elm_scale_get()
-#define MP_PLAY_VIEW_ARTWORK_SIZE 480 * elm_scale_get()
+//#define MP_PLAYLIST_MAX_ITEM_COUNT 1000
+#define MP_NOW_PLAYING_ICON_SIZE 48 * elm_config_scale_get()
+#define MP_LIST_ICON_SIZE 70 * elm_config_scale_get()
+#define MP_ALBUM_LIST_ICON_SIZE 48 * elm_config_scale_get()
+#define MP_PLAY_VIEW_ARTWORK_SIZE 480 * elm_config_scale_get()
#define MP_NOWPLAYING_INI_FILE_NAME MP_INI_DIR"/now_playing.ini"
+#define MP_SHORTCUT_INI_FILE_NAME_0 MP_INI_DIR"/shortcut_0.ini"
+#define MP_SHORTCUT_INI_FILE_NAME_1 MP_INI_DIR"/shortcut_1.ini"
+#define MP_SHORTCUT_INI_FILE_NAME_2 MP_INI_DIR"/shortcut_2.ini"
+#define MP_SHORTCUT_INI_FILE_NAME_3 MP_INI_DIR"/shortcut_3.ini"
+
#define MP_RECENT_PLAYED_INI_FILE_NAME MP_INI_DIR"/recent_played.ini"
#define SINGLE_BYTE_MAX 0x7F
MP_UG_MESSAGE_LOAD,
}mp_ug_message_t;
-#define MP_LIVE_VCONF_PREFIX "memory/music/"
-
-#define MP_EXT_PLAY_STATE VCONFKEY_MUSIC_STATE
-#define MP_EXT_CUR_POS MP_LIVE_VCONF_PREFIX"pos" //str
-#define MP_EXT_CUR_PROGRESS_POS MP_LIVE_VCONF_PREFIX"progress_pos" //double
-
-#define MP_EXT_PLAY_CLICKED MP_LIVE_VCONF_PREFIX"play_clicked" //bool
-#define MP_EXT_PAUSE_CLICKED MP_LIVE_VCONF_PREFIX"pause_clicked" //bool
-#define MP_EXT_PREV_PRESSED MP_LIVE_VCONF_PREFIX"prev_pressed" //bool
-#define MP_EXT_PREV_RELEASED MP_LIVE_VCONF_PREFIX"prev_released" //bool
-#define MP_EXT_NEXT_PRESSED MP_LIVE_VCONF_PREFIX"next_pressed" //bool
-#define MP_EXT_NEXT_RELEASED MP_LIVE_VCONF_PREFIX"next_released" //bool
-
#define MP_POPUP_GENLIST_ITEM_H 112
#define MP_POPUP_GENLIST_ITEM_H_MAX 408
#define MP_POPUP_GENLIST_ITEM_W 610
-#define MP_B_PATH "path"
-#define MP_MM_KEY "multimedia_key"
-#define MP_PLAY_RECENT "play_recent"
-#define MP_PLAY_PLAYLIST "play_playlist"
-#define MP_PLAY_ARTIST "play_artist"
-#define MP_PLAY_ALBUM "play_album"
-#define MP_PLAY_GENRE "play_genre"
-#define MP_PLAY_SOMETHING "play_music"
-
#define ELM_NAVIFRAME_ITEM_CONTENT "default"
#define ELM_NAVIFRAME_ITEM_ICON "icon"
#define ELM_NAVIFRAME_ITEM_OPTIONHEADER "optionheader"
#define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_CLOSE "elm,state,optionheader,close", ""
#define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_OPEN "elm,state,optionheader,open", ""
+#define MP_PLAYLIST_NAME_SIZE 101
+#define MP_METADATA_LEN_MAX 193
+
#endif /* __MP_DEFINE_H_ */
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#ifndef __MP_PLAYER_DEBUG_H_
#define __MP_PLAYER_DEBUG_H_
#include "assert.h"
#include <linux/unistd.h>
-#define ENABLE_CHECK_START_END_FUNCTION
+#define ENABLE_CHECK_START_END_FUNCTION // support enter leave debug message
+
#define ENABLE_LOG_SYSTEM
#ifdef ENABLE_LOG_SYSTEM
#undef LOG_TAG
#endif //LOG_TAG
+#ifdef MP_SOUND_PLAYER
+#define LOG_TAG "SOUND_PLAYER"
+#else
#define LOG_TAG "MUSIC"
+#endif
+#define LOG_COLOR_RESET "\033[0m"
+#define LOG_COLOR_RED "\033[31m"
+#define LOG_COLOR_YELLOW "\033[33m"
+#define LOG_COLOR_GREEN "\033[32m"
+#define LOG_COLOR_BLUE "\033[36m"
-#define mp_debug(fmt, arg...) LOGD("[TID:%d][ %s : %d] "fmt"\n", gettid(), __FUNCTION__, __LINE__,##arg)
-#define mp_error(fmt, arg...) LOGE("[TID:%d]########### ERROR CHECK ############# [ %s : %d] "fmt"\n", gettid(), __FUNCTION__, __LINE__,##arg)
+#define mp_debug(fmt, arg...) LOGD(LOG_COLOR_GREEN"[TID:%d][ %s : %d] "fmt""LOG_COLOR_RESET, gettid(), __FUNCTION__, __LINE__,##arg)
+#define mp_error(fmt, arg...) LOGE(LOG_COLOR_RED"[TID:%d]# ERROR CHECK # [ %s : %d] "fmt""LOG_COLOR_RESET, gettid(), __FUNCTION__, __LINE__,##arg)
-#define DEBUG_TRACE(fmt, arg...) LOGD("[TID:%d][ %s : %d] "fmt"\n", gettid(), __FUNCTION__, __LINE__,##arg)
-#define INFO_TRACE(fmt, arg...) LOGI("[TID:%d][ %s : %d] "fmt"\n", gettid(), __FUNCTION__, __LINE__,##arg)
-#define WARN_TRACE(fmt, arg...) LOGW("[TID:%d][ %s : %d] "fmt"\n", gettid(), __FUNCTION__, __LINE__,##arg)
-#define ERROR_TRACE(fmt, arg...) LOGE("[TID:%d][ %s : %d] "fmt"\n", gettid(), __FUNCTION__, __LINE__,##arg)
-#define mp_debug_temp(fmt, arg...) LOGD("[TID:%d][Temp debug %s : %d] "fmt"\n", gettid(), __FUNCTION__, __LINE__,##arg)
+#define DEBUG_TRACE(fmt, arg...) LOGD(LOG_COLOR_GREEN"[TID:%d][ %s : %d] "fmt""LOG_COLOR_RESET, gettid(), __FUNCTION__, __LINE__,##arg)
+#define INFO_TRACE(fmt, arg...) LOGI(LOG_COLOR_GREEN"[TID:%d][ %s : %d] "fmt""LOG_COLOR_RESET, gettid(), __FUNCTION__, __LINE__,##arg)
+#define WARN_TRACE(fmt, arg...) LOGW(LOG_COLOR_YELLOW"[TID:%d][ %s : %d] "fmt""LOG_COLOR_RESET, gettid(), __FUNCTION__, __LINE__,##arg)
+#define ERROR_TRACE(fmt, arg...) LOGE(LOG_COLOR_RED"[TID:%d][ %s : %d] "fmt""LOG_COLOR_RESET, gettid(), __FUNCTION__, __LINE__,##arg)
+#define mp_debug_temp(fmt, arg...) LOGD(LOG_COLOR_GREEN"[TID:%d][Temp debug %s : %d] "fmt""LOG_COLOR_RESET, gettid(), __FUNCTION__, __LINE__,##arg)
#else // use USE_DLOG_SYSTEM
#ifdef ENABLE_CHECK_START_END_FUNCTION
#define startfunc DEBUG_TRACE("+- START -------------------------");
#define endfunc DEBUG_TRACE("+- END --------------------------");
-#define exceptionfunc ERROR_TRACE("################################# CRITICAL ERROR #####################################");
+#define exceptionfunc ERROR_TRACE("### CRITICAL ERROR ###");
#else
#define startfunc
#define endfunc
#define MP_CHECK_EXCEP(expr) do { \
if(!(expr)) { \
- ERROR_TRACE("CRITICAL ERROR ########################################## CHECK BELOW ITEM");\
+ ERROR_TRACE("CRITICAL ERROR ## CHECK BELOW ITEM");\
goto mp_exception;\
} \
} while (0)
-#define MP_CHECK_VAL(expr, val) mp_retvm_if(!(expr),val,"INVALID PARM RETURN NULL")
+#define MP_CHECK_VAL(expr, val) mp_retvm_if(!(expr),val,"INVALID PARM RETURN VAL: 0x%x", val)
#define MP_CHECK_NULL(expr) mp_retvm_if(!(expr),NULL,"INVALID PARM RETURN NULL")
#define MP_CHECK_FALSE(expr) mp_retvm_if(!(expr),FALSE,"INVALID PARM RETURN FALSE")
#define MP_CHECK_CANCEL(expr) mp_retvm_if(!(expr), ECORE_CALLBACK_CANCEL, "INVALID PARAM RETURN")
#define mp_assert(expr) do { \
if(!(expr)) { \
- ERROR_TRACE("CRITICAL ERROR ########################################## CHECK BELOW ITEM");\
+ ERROR_TRACE("CRITICAL ERROR ## CHECK BELOW ITEM");\
assert(FALSE); \
} \
} while (0)
+++ /dev/null
-/*
- * Copyright 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://www.tizenopensource.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.
- */
-
-
-
-#ifndef __mp_setting_keys_H__
-#define __mp_setting_keys_H__
-
-#ifndef VCONFKEY_SETAPPL_MUSIC_MENU_VAL_INT
-enum
-{
- SETTING_MUSIC_MENU_ALBUM = 0x0001,
- SETTING_MUSIC_MENU_ARTIST = 0x0002,
- SETTING_MUSIC_MENU_GENRE = 0x0004,
- SETTING_MUSIC_MENU_COMPOSER = 0x0008,
- SETTING_MUSIC_MENU_YEAR = 0x0010,
-};
-#define VCONFKEY_SETAPPL_MUSIC_MENU_VAL_INT "db/setting/music-player/menu"
-#endif
-
-#define VCONFKEY_MUSIC_MENU_CHANGE "db/setting/music-player/menu_change"
-
-#endif //__mp_setting_keys_H__
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
#include <unistd.h>
#include <glib.h>
#include <vconf.h>
-#include <audio-svc.h>
-#include <audio-svc-error.h>
-#include <audio-svc-types.h>
#include <Ecore_IMF.h>
#include <Ecore_X.h>
-#include <appcore-efl.h>
+#include <app.h>
#include <Edje.h>
#include <errno.h>
#include <libintl.h>
+#include <ui-gadget.h>
-#include <mm_error.h>
-#include <mm_player.h>
#include <sys/times.h>
#include "mp-player-debug.h"
#include "mp-define.h"
#include "mp-play-list.h"
#include "mp-http-mgr.h"
+#include "mp-ta.h"
+#include "mp-language-mgr.h"
+#include "mp-media-info.h"
+
+#ifdef MP_SOUND_PLAYER
+#include "sp-view-manager.h"
+#endif
+
+E_DBus_Connection *EDBusHandle;
typedef struct
{
Elm_Object_Item *ctltab_genres;
Elm_Object_Item *ctltab_year;
Elm_Object_Item *ctltab_composer;
-
- /* navi bar */
- Evas_Object *cur_view; //navibar of current view
+ Elm_Object_Item *ctltab_folder;
//relative to music setting
int albums;
int genres;
int composers;
int years;
+ int folders;
+
+ bool first_append;
} mp_library;
MP_VIEW_TYPE_ARTIST,
MP_VIEW_TYPE_YEAR,
MP_VIEW_TYPE_COMPOSER,
+ MP_VIEW_TYPE_FOLDER,
+ MP_VIEW_TYPE_ALLSHARE,
MP_VIEW_TYPE_PLAYVIEW,
MP_VIEW_TYPE_MAX,
} mp_view_type_t;
struct appdata *ad; //appdata
} view_data_t;
+
+typedef struct
+{
+ Evas_Object *layout;
+ void *EvasPlugin;
+ Evas_Object *box;
+
+ Ecore_Timer *mouse_up_timer;
+ Ecore_Timer *left_title_timer;
+ Ecore_Timer *now_playing_timer;
+
+ Evas_Object *track_list;
+
+ mp_media_list_h svc_handle;
+ int track_count;
+
+ Evas_Object *left_title;
+ Evas_Object *now_playing;
+ Evas_Object *back_button;
+
+ int now_playing_album_seq;
+
+ struct appdata *ad;
+} mp_coverflow_view;
+
+
typedef struct
{
//EDJ Layout
Evas_Object *play_info;
Evas_Object *play_progressbar;
Evas_Object *play_ctrl; //progress bar and index, track name
+ Evas_Object *land_naviframe;
+ Elm_Object_Item* play_head;
Evas_Object *play_title;
- Evas_Object *albumart_bg;
+ Evas_Object *albumart_img;
+
+ Evas_Object *albumart_image;
+ Evas_Object *albumart_bg;
+ Evas_Object *albumart_image_reflection; // for showing the reflection of albumart_image
+ Evas_Object *pre_albumart_image_reflection;
int flick_direction; //1 for right, 2 for left, other for invalid
+ bool hide_image_flag; //flag for hide pre_albumart_image_reflection
int albumart_width;
int albumart_height;
Evas_Object *play_view_next;
char music_play_time_text[16];
+ int x;
+ int y;
+ int favour_longpress;
+ Ecore_Timer *favourite_timer;
Ecore_Timer *progressbar_timer;
+
Ecore_Timer *show_ctrl_timer;
- bool transition_state;
+ bool transition_state; //if user start transiton start, set that value if finish transiton reset it
+
struct music_list_item *playing_list_item;
+ mp_screen_mode play_view_screen_mode;
Evas_Object *play_icon;
- bool paused_by_progressbar;
+ bool b_play_all; /* for update playlist view when back from playview which created by playall */
struct appdata *ad;
} mp_playing_view;
MP_CREATE_PLAYLIST_MODE_SWEEP
};
-typedef struct
-{
- AudioHandleType *plst;
- Elm_Object_Item *item;
- void *data;
-} mp_playlist_item_t;
-
typedef enum
{
- MP_LAUNCH_DEFAULT = 0,
- MP_LAUNCH_PATH,
- MP_LAUNCH_PLAY_RECENT,
- MP_LAUNCH_PLAY_GROUP,
+ MP_LAUNCH_DEFAULT = 0, //normal case
+ MP_LAUNCH_UG, //ug case
+ MP_LAUNCH_ADD_TO_HOME, //add to home
+
+ /*voice ui */
+ MP_LAUNCH_PLAY_RECENT, //play recent
+ MP_LAUNCH_PLAY_GROUP, // play album, genre,
MP_LAUNCH_PLAY_PLAYLIST,
- MP_LAUNCH_PLAY_SOMETHING,
+ MP_LAUNCH_PLAY_SOMETHING, //play track by title
+ /*voice ui */
} mp_launch_type;
{
LOAD_DEFAULT,
LOAD_TRACK, //load by path
- LOAD_GROUP,
- LOAD_PLAYLIST,
- LOAD_PLAY,
+ LOAD_GROUP, //load by shortcut
+ LOAD_PLAYLIST, //load by shortcut
+
+ /*voice ui */
+ LOAD_VOICE_UI,
+ /*voice ui */
LOAD_MM_KEY,
} mp_load_type;
typedef enum
{
- MP_POPUP_NORAML = 0,
+ MP_POPUP_NORMAL = 0,
MP_POPUP_GENLIST,
MP_POPUP_CTX,
MP_POPUP_PROGRESS,
+ MP_POPUP_NOTIFY, // NOT destroyed by mp_popup_destroy()
MP_POPUP_MAX,
} mp_popup_type;
Evas_Object *win_main;
Evas_Object *bg;
Evas_Object *popup[MP_POPUP_MAX];
+ int win_angle;
Ecore_X_Window xwin;
/* Layout for each view */
Evas_Object *base_layout_main; //layout for transparent indicator area
+ Evas_Object *naviframe;
Evas_Object *controlbar_layout; //layout for show hide controlbar.
bool show_optional_menu;
double music_pos;
double music_length;
+ //int isDragging;
Ecore_Timer *progressbar_timer;
mp_playing_view *playing_view;
// for Plalying Control
mp_player_rep_state play_rep_state; //repeat_all, repeat_non, repeat_1
- bool play_shuffle_state; //shuffle on/off
+ int play_shuffle_state; //shuffle on/off
bool can_play_drm_contents;
bool show_now_playing;
mp_player_state player_state;
+ Evas_Object *bgimage;
+
mp_drm drm_info;
+ mp_constraints_info_s drm_constraints_info;
char * latest_playing_key_id;
mp_play_list *playing_list;
- mp_launch_type launch_type;
- mp_load_type loadtype;
- audio_svc_track_type_e track_type;
- audio_svc_group_type_e group_type;
+ mp_launch_type launch_type; // Support Play from outside
+ mp_load_type loadtype; // Support Add to home
+ mp_track_type_e track_type; // Support voice ui
+ mp_group_type_e group_type; // Support voice ui
char *request_group_name;
char *request_playing_path;
- audio_svc_group_type_e request_group_type;
+ mp_group_type_e request_group_type;
int request_play_id;
- //update default view layout if this flag set. set true when album/artist/genre short cut pressed.
+ // update default view layout if this flag set. set true when album/artist/genre short cut pressed.
+ bool update_default_view;
Ecore_IMF_Context *imf_context;
+#ifdef MP_SOUND_PLAYER
+ Sp_View_Manager *view_mgr;
+#else
mp_library *library;
-
- Evas_Object *ctrl_bar;
+ GList *view_history;
+#endif
+ Evas_Object *tabbar;
+ Evas_Object *genlist_edit;
Evas_Object *editfiled_new_playlist;
Evas_Object *editfiled_entry;
int new_playlist_id;
+ struct {
+ bool downed;
+ bool moving;
+ Evas_Coord sx;
+ Evas_Coord sy;
+ } mouse;
+
Evas_Object *radio_group;
Evas_Object *notify;
Evas_Object *notify_layout;
int ear_key_press_cnt;
Ecore_Timer *ear_key_timer;
- //scale factor for scalable UI..
- double scale; //scale factor;
+ Evas_Object *win_minicon;
+ Evas_Object *minicontroller_layout;
+ Evas_Object *minicon_icon;
+ Ecore_Timer *minicon_timer;
+ Ecore_Timer *minicon_progress_timer;
+ bool b_minicontroller_show;
+ bool minicon_visible;
+
+ mp_playing_view *backup_playing_view;
+ Evas_Object *backup_layout_play_view; //Used to swap the Playing layout from Landscape and Portrait.
+ double latest_moved_left_size;
+
+ int current_appcore_rm;
+ mp_screen_mode screen_mode;
+
+ int screen_height; //current screen height
+ int screen_width; //current screen width
+
+ Evas_Object *edit_ctrl_bar;
- GList *view_history;
Ecore_Pipe *inotify_pipe;
+ // for add to playlist
void *layout_data;
- AudioHandleType *group_item_handler;
+ mp_media_info_h group_item_handler;
char *fid;
bool paused_by_user;
- mp_http_mgr_t *http_mgr; //http mgr
+ mp_http_mgr_t *http_mgr;
+
+ bool navi_effect_in_progress; // Use this not to excute button callbacks while transition effect
- bool navi_effect_in_progress; //Use this not to excute button callbacks while transition effect
- bool prohibit_aul_relaunch; //aul relaunch only available when music is in pause state
- bool is_focus_out;
+ bool app_is_foreground; // relaunch only available when music is in pause state
- mp_snd_path snd_path; //indicate sound path;
+ bool is_focus_out; // update minicontroller in bgm mode.
+
+ mp_snd_path snd_path; // indicate sound path;
Ecore_Event_Handler *key_down;
+ Ecore_Event_Handler *mouse_button_down;
Ecore_Event_Handler *focus_in;
Ecore_Event_Handler *focus_out;
Ecore_Event_Handler *visibility_change;
Ecore_Event_Handler *client_msg;
+ Ecore_Event_Handler *mouse_button_up;
+ Ecore_Event_Handler *mouse_move;
+
+ int motion_handle;
Evas_Object *buffering_popup;
- bool edit_in_progress; //don't update view in inotify callback while delete operation.
+ ui_gadget_h ug;
+ ui_gadget_h setting_ug;
+ ui_gadget_h info_ug; //info ug handle - Do not destory info ug.
+ Evas_Object *info_ug_base; //if thist is not null, info ug is visible. use this to determine info view is exist or not.
+ Evas_Object *info_ug_layout; //do not del this object. if it is deleted, info ug layout will not be displayed properly.
+ bool info_click_flag; //flag for click info button in play view
+ bool info_back_play_view_flag; //flag for info view back play view
+
+ bool edit_in_progress; // don't update view in inotify callback while delete operation.
Ecore_Timer *volume_down_timer;
Ecore_Timer *mute_popup_show_timer; //timer for showing mute popup
bool volume_long_pressed;
bool mute_flag; //flag for mute
- double ff_rew; //for ff and rew when there is no play view
+ double ff_rew; // for ff and rew when there is no play view
bool music_setting_change_flag; //true for change music setting data, false for not
bool is_Longpress;
bool is_ff;
+ Ecore_Idler *mss_startup_idler;
Ecore_Idler *playing_err_idler;
Ecore_Idler *bt_pause_idler;
Ecore_Idler *setting_idler;
Ecore_Idler *app_init_idler;
+ Ecore_Idler *playview_show_idler;
Ecore_Timer *longpress_timer;
- Ecore_Timer *live_pos_timer;
bool seek_off;
- int haptic_handle;
+ bool vertical_scroll;
+
Ecore_Timer *vib_timer;
- Ecore_Pipe *player_msg_pipe;
+
+ char *shortcut_descrition;
+ char *shortcut_image_path;
Ecore_Animator *minfo_ani;
GList *minfo_list;
Evas_Object *minfo_genlist;
- MediaSvcHandle *media_svc_handle;
+ bool direct_win_minimize;
+
+ int album_image_w;
+ int album_image_h;
+
+ bool prohibit_activate_win;
+
+ bool paused_by_other_player;
};
+
+typedef void (*mpOptCallBack) (void *, Evas_Object *, void *);
+
+typedef struct
+{
+ const char *name;
+ mpOptCallBack cb;
+} MpOptItemType;
+
+typedef struct
+{
+ MpOptItemType *l_opt;
+ MpOptItemType *m_opt;
+ MpOptItemType *r_opt;
+} MpOptGroupType;
+
#endif /* __DEF_music_H__ */
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
+#include "mp-ta.h"
#include "music.h"
-#include "mp-library.h"
#include "mp-widget.h"
#include "mp-util.h"
#include "mp-setting-ctrl.h"
#include "mp-player-control.h"
#include "mp-play-view.h"
#include "mp-http-mgr.h"
-#include "mp-common.h"
#include "mp-play-list.h"
-#include "mp-view-manager.h"
+#include "mp-ug-launch.h"
#include "mp-popup.h"
#include <signal.h>
-#include <aul.h>
#include <glib.h>
#include <glib-object.h>
#include "mp-player-mgr.h"
#include "mp-player-debug.h"
-#include <utilX.h>
#include <syspopup_caller.h>
-#include <media-svc.h>
+#include <power.h>
+#include "mp-minicontroller.h"
#include "mp-app.h"
#include "mp-play.h"
+#ifdef MP_SOUND_PLAYER
+#include "sp-view-manager.h"
+#else
+#include "mp-library.h"
+#include "mp-common.h"
+#include "mp-view-manager.h"
+#endif
+
+#define MP_B_PATH "path"
+#define MP_MM_KEY "multimedia_key"
+#define MP_PLAY_RECENT "play_recent"
+#define MP_PLAY_PLAYLIST "play_playlist"
+#define MP_PLAY_ARTIST "play_artist"
+#define MP_PLAY_ALBUM "play_album"
+#define MP_PLAY_GENRE "play_genre"
+#define MP_PLAY_FOLDER "play_folder"
+#define MP_PLAY_SOMETHING "play_music"
+#define MP_DIRECT_WIND_MINIMIZE "direct_win_minimize"
+
static bool _mp_main_init(struct appdata *ad);
static Eina_Bool _mp_main_win_visibility_change_cb(void *data, int type, void *event);
static Eina_Bool _mp_main_win_focus_in_cb(void *data, int type, void *event);
static void
_mp_main_exit_cb(void *data, Evas_Object * obj, void *event_info)
{
- evas_object_del(obj);
- mp_app_exit(data);
-}
+ mp_evas_object_del(obj);
-static int
-_mp_main_low_battery_cb(void *data)
-{
- struct appdata *ad = (struct appdata *)data;
- MP_CHECK_VAL(ad, 0);
-
- if (mp_check_battery_available())
- {
- mp_app_exit(ad);
- }
- return 0;
+ mp_app_exit(data);
}
static void
{
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
+
evas_event_callback_del(e, EVAS_CALLBACK_RENDER_FLUSH_POST, _mp_evas_flush_post);
}
static bool
_mp_main_init(struct appdata *ad)
{
- /* initialize library view layout */
+ EDBusHandle = NULL;
ad->request_play_id = -1;
- ad->music_setting_change_flag = false; //initialize
- MediaSvcHandle *handle = NULL;
- if (media_svc_connect(&handle) != AUDIO_SVC_ERROR_NONE)
- {
- ERROR_TRACE("Fail when init music db");
- return FALSE;
- }
- ad->media_svc_handle = handle;
+ ad->music_setting_change_flag = false;
+
+ MP_TA_ACUM_ITEM_BEGIN(" mp_media_info_connect", 0);
+ mp_media_info_connect();
+ MP_TA_ACUM_ITEM_END(" mp_media_info_connect", 0);
return TRUE;
}
{
startfunc;
ad->loadtype = LOAD_TRACK;
-
mp_play_list_create_current_play_list(ad, &ad->playing_list, NULL, current_player_path, 1, 0, FALSE, -1);
-
- ad->launch_type = MP_LAUNCH_PATH;
+ ad->launch_type = MP_LAUNCH_UG;
return true;
static bool
_mp_main_is_launching_available(struct appdata *ad)
{
+ MP_TA_ACUM_ITEM_BEGIN(" battery_check", 0);
if (mp_check_battery_available())
{
- Evas_Object *popup = elm_popup_add(ad->win_main);
- mp_popup_desc_set(popup, GET_SYS_STR("IDS_COM_BODY_LOW_BATTERY"));
- mp_popup_set_response_cb(popup, _mp_main_exit_cb, ad);
- mp_popup_button_set(popup, "button1", GET_SYS_STR("IDS_COM_SK_OK"), MP_POPUP_YES);
- mp_popup_timeout_set(popup, 3.0);
+ Evas_Object *popup = mp_popup_create(ad->win_main, MP_POPUP_NORMAL, NULL, ad, _mp_main_exit_cb, ad);
+ elm_object_text_set(popup, GET_SYS_STR("IDS_COM_BODY_LOW_BATTERY"));
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_SK_OK"), MP_POPUP_YES);
+ mp_popup_timeout_set(popup, MP_POPUP_TIMEOUT);
evas_object_show(ad->win_main);
evas_object_show(popup);
return false;
}
+ MP_TA_ACUM_ITEM_END(" battery_check", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" mass_stroage_check", 0);
if (mp_check_mass_storage_mode())
{
- Evas_Object *popup = elm_popup_add(ad->win_main);
- mp_popup_desc_set(popup, GET_SYS_STR("IDS_COM_POP_UNABLE_TO_USE_DURING_MASS_STORAGE_MODE"));
- mp_popup_set_response_cb(popup, _mp_main_exit_cb, ad);
- mp_popup_button_set(popup, "button1", GET_SYS_STR("IDS_COM_SK_OK"), MP_POPUP_YES);
- mp_popup_timeout_set(popup, 3.0);
+ Evas_Object *popup = mp_popup_create(ad->win_main, MP_POPUP_NORMAL, NULL, ad, _mp_main_exit_cb, ad);
+ elm_object_text_set(popup, GET_SYS_STR("IDS_COM_POP_UNABLE_TO_USE_DURING_MASS_STORAGE_MODE"));
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_SK_OK"), MP_POPUP_YES);
+ mp_popup_timeout_set(popup, MP_POPUP_TIMEOUT);
evas_object_show(ad->win_main);
evas_object_show(popup);
return false;
}
+ MP_TA_ACUM_ITEM_END(" mass_stroage_check", 0);
return true;
}
+#ifndef MP_SOUND_PLAYER
+void
+_mp_main_create_view_by_item(struct appdata *ad, const char *argv1)
+{
+ mp_retm_if(argv1 == NULL, "argv1 is NULL");
+ mp_retm_if(ad == NULL, "ad is NULL");
+
+ if (argv1)
+ {
+ if (strstr(argv1, MP_SHORTCUT_PLAYLIST) == argv1)
+ {
+ int playlist_id = -1;
+ char *id;
+ id = strtok((char *)argv1, MP_FUNC_ADD_TO_HOME_SEPARATION);
+ id = strtok(NULL, MP_FUNC_ADD_TO_HOME_SEPARATION);
+ if(id)
+ {
+ playlist_id = atoi(id);
+ DEBUG_TRACE("Playlist id is %d", playlist_id);
+ ad->launch_type = MP_LAUNCH_ADD_TO_HOME;
+ ad->loadtype = LOAD_PLAYLIST;
+ ad->request_play_id = playlist_id;
+
+ mp_library_load(ad);
+ }
+ }
+ else if (strstr(argv1, MP_SHORTCUT_GROUP) == argv1)
+ {
+ char *id;
+ id = strtok((char *)argv1, MP_FUNC_ADD_TO_HOME_SEPARATION);
+ id = strtok(NULL, MP_FUNC_ADD_TO_HOME_SEPARATION);
+ if (id)
+ {
+ ad->request_group_type = (atoi(id));
+ mp_debug("view_type is %d", ad->request_group_type);
+
+ id = strtok(NULL, MP_FUNC_ADD_TO_HOME_SEPARATION);
+
+ if (id)
+ {
+ IF_FREE(ad->request_group_name);
+ ad->request_group_name = g_strdup(id);
+
+ DEBUG_TRACE("Reqest Album name is %s", ad->request_group_name);
+ ad->launch_type = MP_LAUNCH_ADD_TO_HOME;
+ ad->loadtype = LOAD_GROUP;
+ mp_library_load(ad);
+ }
+ }
+ }
+ else if (strstr(argv1, MP_SHORTCUT_SONG) == argv1)
+ {
+ char current_player_path[255] = { 0, };
+ char temp[255] = { 0, };
+ strncpy(temp, argv1, 255);
+
+ int i = 0;
+ for (i = 0; i < strlen(temp); i++)
+ {
+ if (temp[i] == '/')
+ {
+ int j = i + 1;
+ while (temp[j])
+ {
+ current_player_path[j - (i + 1)] = temp[j];
+ j++;
+ }
+ DEBUG_TRACE("current_player_path is %s", current_player_path);
+ break;
+ }
+ }
+
+ ad->launch_type = MP_LAUNCH_ADD_TO_HOME;
+ ad->loadtype = LOAD_TRACK;
+
+ IF_FREE(ad->request_playing_path);
+ ad->request_playing_path = g_strdup(current_player_path);
+
+ }
+ }
+}
+#endif
+
static Eina_Bool _mp_main_win_visibility_change_cb(void *data, int type, void *event)
{
struct appdata *ad = (struct appdata *)data;
mp_debug("hide main window");
mp_player_mgr_vol_type_unset();
- ad->prohibit_aul_relaunch = false;
+ ad->app_is_foreground = false;
hided = true;
-
+#ifdef MP_SOUND_PLAYER
+ mp_play_view_progress_timer_freeze(ad);
+#else
mp_view_manager_freeze_progress_timer(ad);
- mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
+#endif
} else {
mp_debug("show main window");
mp_player_mgr_vol_type_set();
- ad->prohibit_aul_relaunch = true;
+ ad->app_is_foreground = true;
DEBUG_TRACE("load_type: %d", ad->loadtype);
+
+ /* for refresh progressbar */
+ ad->music_pos = mp_player_mgr_get_position() / 1000.0;
+ ad->music_length = mp_player_mgr_get_duration() / 1000.0;
+
+#ifdef MP_SOUND_PLAYER
+ mp_play_view_progress_timer_thaw(ad);
+#else
mp_view_manager_thaw_progress_timer(ad);
+#endif
}
}
Ecore_X_Event_Window_Focus_In *ev = (Ecore_X_Event_Window_Focus_In *)event;
if (ev->win == ad->xwin) {
ad->is_focus_out = false;
+ if (ad->win_minicon && ad->b_minicontroller_show)
+ mp_minicontroller_destroy(ad);
}
-
+#ifndef MP_SOUND_PLAYER
int db_state = VCONFKEY_FILEMANAGER_DB_UPDATED;
vconf_get_int(VCONFKEY_FILEMANAGER_DB_STATUS, &db_state);
if(db_state == VCONFKEY_FILEMANAGER_DB_UPDATING)
DEBUG_TRACE("update list");
mp_view_manager_update_list_contents(mp_util_get_view_data(ad), true);
}
+#endif
+
return ECORE_CALLBACK_PASS_ON;
}
Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)event;
if (ev->win == ad->xwin) {
+ /* Testing Code. If a track is getting played or paused,
+ the MiniController should be displayed as soon as the main window goes to back ground.
+ When again the Music ICon in Main menu is pressed, the mini controller will be hidden and
+ The Main Screen of the Music Application will be displayed. */
+
ad->is_focus_out = true;
- mp_play_control_play_cb(ad, NULL, SIGNAL_PAUSE, NULL);
+ if (ad->player_state == PLAY_STATE_PAUSED || ad->player_state == PLAY_STATE_PLAYING)
+ {
+ if (!ad->win_minicon)
+ mp_minicontroller_create(ad);
+ else
+ mp_minicontroller_show(ad);
+ }
+ }
+
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool _mp_main_client_message_cb(void *data, int type, void *event)
+{
+ struct appdata *ad = data;
+ MP_CHECK_FALSE(ad);
+
+ Ecore_X_Event_Client_Message *ev =
+ (Ecore_X_Event_Client_Message *) event;
+ int new_angle = 0;
+
+ if (ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE)
+ {
+ new_angle = ev->data.l[0];
+ DEBUG_TRACE("ROTATION: %d", new_angle);
+ mp_minicontroller_rotate(ad, new_angle);
+ }
+ else if (ev->message_type == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE)
+ {
+ bool visible = false;
+ if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON)
+ {
+ mp_debug("quickpanel show");
+ visible = true;
+ }
+ else
+ {
+ mp_debug("quickpanel hide");
+ visible = false;
+ }
+ mp_minicontroller_visible_set(ad, visible);
}
+
return ECORE_CALLBACK_PASS_ON;
}
+static void __mp_main_lcd_state_changed_cb(power_state_e state, void *user_data)
+{
+ DEBUG_TRACE("power_state: %d", state);
+
+ struct appdata *ad = user_data;
+ MP_CHECK(ad);
+}
+
static Eina_Bool
_mp_main_app_init_idler_cb(void *data)
{
{
ERROR_TRACE("Error when noti init");
}
- ad->key_down =
- ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, mp_app_hard_key_down_cb, ad);
- ad->key_down =
- ecore_event_handler_add(ECORE_EVENT_KEY_UP, mp_app_hard_key_up_cb, ad);
- ad->visibility_change =
- ecore_event_handler_add(ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE, _mp_main_win_visibility_change_cb, ad);
- ad->focus_in =
- ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, _mp_main_win_focus_in_cb, ad);
- ad->focus_out =
- ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, _mp_main_win_focus_out_cb, ad);
+
+ ad->mouse_button_down = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, mp_app_mouse_event_cb, ad);
+ ad->mouse_button_up = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, mp_app_mouse_event_cb, ad);
+ ad->mouse_move = ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE, mp_app_mouse_event_cb, ad);
+ /* window visibility change event */
+ ad->visibility_change = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE, _mp_main_win_visibility_change_cb, ad);
+ /* window focus in/out event */
+ ad->focus_in = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, _mp_main_win_focus_in_cb, ad);
+ ad->focus_out = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, _mp_main_win_focus_out_cb, ad);
+ ad->client_msg = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _mp_main_client_message_cb, ad);
mp_app_inotify_init(ad);
elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_SHOW);
-
ad->app_init_idler = NULL;
+
+ power_set_changed_cb(__mp_main_lcd_state_changed_cb, ad);
+
return ECORE_CALLBACK_CANCEL;
}
-static void
-_mp_main_scale_set(struct appdata *ad)
+static bool __mp_main_service_extra_data_cb(service_h service, const char *key, void *user_data)
{
- Evas_Coord w, h;
- evas_object_geometry_get(ad->win_main, NULL, NULL, &w, &h);
+ MP_CHECK_FALSE(service);
+ char * value = NULL;
+ service_get_extra_data(service, key, &value);
+ DEBUG_TRACE("key: %s, value: %s", key, value);
+ IF_FREE(value);
- if (w < h)
- {
- ad->scale = (double)w / 480;
- }
- else
- {
- ad->scale = (double)h / 480;
- }
-
- DEBUG_TRACE("scale factor: %f", ad->scale);
+ return true;
}
static void
-mp_main_parse_bundle(struct appdata *ad, bundle *b, char **request_title, char **path, int *lunching_by_menu_icon)
+_mp_main_parse_service(struct appdata *ad, service_h service, char **request_title, char **path, int *lunching_by_menu_icon)
{
+ MP_CHECK(service);
+ service_foreach_extra_data(service, __mp_main_service_extra_data_cb, NULL);
- if (b)
+#ifdef MP_SOUND_PLAYER
+ if(mp_util_get_uri_from_app_svc(service, ad, path))
{
- const char *mime_type = NULL;
- mime_type = (char *)bundle_get_val(b, AUL_K_MIME_TYPE);
- if (mime_type)
+ DEBUG_TRACE("uri: %s", *path);
+ }
+ else
+ ERROR_TRACE("No uri...");
+#else
+ char *value = NULL;
+ char *uri = NULL;
+
+ service_get_extra_data(service, "shortcut", &uri);
+ if (uri)
+ {
+ mp_debug("uri = %s", uri);
+ *lunching_by_menu_icon = 1;
+ *path = uri;
+ }
+ else
+ {
+ if (!service_get_extra_data(service, MP_PLAY_RECENT, &value))
{
- if (!strcmp(mime_type, "music-player.uri"))
- {
- *path = g_strdup(bundle_get_val(b, AUL_K_MIME_CONTENT));
- *lunching_by_menu_icon = 1;
- DEBUG_TRACE("bundle: mime_type[%s], contents[%s]\n", mime_type, *path);
- }
- else
- {
- *path = g_strdup(bundle_get_val(b, AUL_K_MIME_CONTENT));
- }
+ ad->launch_type = MP_LAUNCH_PLAY_RECENT;
+ ad->loadtype = LOAD_VOICE_UI;
+ IF_FREE(value);
}
- else if(mp_util_get_uri_from_app_svc(b, ad, path))
+ else if (!service_get_extra_data(service, MP_PLAY_PLAYLIST, &value))
{
- DEBUG_TRACE("launching by APP SVC. path: %s", *path);
+ *request_title = value;
+ ad->launch_type = MP_LAUNCH_PLAY_PLAYLIST;
+ ad->loadtype = LOAD_VOICE_UI;
}
- else
+ else if (!service_get_extra_data(service, MP_PLAY_ARTIST, &value))
{
- *path = g_strdup(bundle_get_val(b, MP_B_PATH));
- if (!*path)
- {
- if (bundle_del(b, MP_PLAY_RECENT) == 0)
- {
- ad->launch_type = MP_LAUNCH_PLAY_RECENT;
- ad->loadtype = LOAD_PLAY;
- }
- else if (bundle_get_val(b, MP_PLAY_PLAYLIST))
- {
- *request_title = (char *)bundle_get_val(b, MP_PLAY_PLAYLIST);
- ad->launch_type = MP_LAUNCH_PLAY_PLAYLIST;
- ad->loadtype = LOAD_PLAY;
- }
- else if (bundle_get_val(b, MP_PLAY_ARTIST))
- {
- *request_title = (char *)bundle_get_val(b, MP_PLAY_ARTIST);
- ad->launch_type = MP_LAUNCH_PLAY_GROUP;
- ad->loadtype = LOAD_PLAY;
- ad->track_type = AUDIO_SVC_TRACK_BY_ARTIST;
- ad->group_type = AUDIO_SVC_GROUP_BY_ARTIST;
- }
- else if (bundle_get_val(b, MP_PLAY_ALBUM))
- {
- *request_title = (char *)bundle_get_val(b, MP_PLAY_ALBUM);
- ad->launch_type = MP_LAUNCH_PLAY_GROUP;
- ad->loadtype = LOAD_PLAY;
- ad->track_type = AUDIO_SVC_TRACK_BY_ALBUM;
- ad->group_type = AUDIO_SVC_GROUP_BY_ALBUM;
- }
- else if (bundle_get_val(b, MP_PLAY_GENRE))
- {
- *request_title = (char *)bundle_get_val(b, MP_PLAY_GENRE);
- ad->launch_type = MP_LAUNCH_PLAY_GROUP;
- ad->loadtype = LOAD_PLAY;
- ad->track_type = AUDIO_SVC_TRACK_BY_GENRE;
- ad->group_type = AUDIO_SVC_GROUP_BY_GENRE;
- }
- else if (bundle_get_val(b, MP_PLAY_SOMETHING))
- {
- *request_title = (char *)bundle_get_val(b, MP_PLAY_SOMETHING);
- ad->launch_type = MP_LAUNCH_PLAY_SOMETHING;
- ad->loadtype = LOAD_PLAY;
- ad->track_type = AUDIO_SVC_TRACK_ALL;
- }
-
- }
+ *request_title = value;
+ ad->launch_type = MP_LAUNCH_PLAY_GROUP;
+ ad->loadtype = LOAD_VOICE_UI;
+ ad->track_type = MP_TRACK_BY_ARTIST;
+ ad->group_type = MP_GROUP_BY_ARTIST;
}
- if(*path)
- DEBUG_TRACE("Path is %s", *path);
-
- if(bundle_get_val(b, MP_MM_KEY))
+ else if (!service_get_extra_data(service, MP_PLAY_ALBUM, &value))
+ {
+ *request_title = value;
+ ad->launch_type = MP_LAUNCH_PLAY_GROUP;
+ ad->loadtype = LOAD_VOICE_UI;
+ ad->track_type = MP_TRACK_BY_ALBUM;
+ ad->group_type = MP_GROUP_BY_ALBUM;
+ }
+ else if (!service_get_extra_data(service, MP_PLAY_GENRE, &value))
+ {
+ *request_title = value;
+ ad->launch_type = MP_LAUNCH_PLAY_GROUP;
+ ad->loadtype = LOAD_VOICE_UI;
+ ad->track_type = MP_TRACK_BY_GENRE;
+ ad->group_type = MP_GROUP_BY_GENRE;
+ }
+ else if (!service_get_extra_data(service, MP_PLAY_FOLDER, &value))
+ {
+ *request_title = value;
+ ad->launch_type = MP_LAUNCH_PLAY_GROUP;
+ ad->loadtype = LOAD_VOICE_UI;
+ ad->track_type = MP_TRACK_BY_FOLDER;
+ ad->group_type = MP_GROUP_BY_FOLDER;
+ }
+ else if (!service_get_extra_data(service, MP_PLAY_SOMETHING, &value))
+ {
+ *request_title = value;
+ ad->launch_type = MP_LAUNCH_PLAY_SOMETHING;
+ ad->loadtype = LOAD_VOICE_UI;
+ ad->track_type = MP_TRACK_ALL;
+ }
+ else if(!service_get_extra_data(service, MP_MM_KEY, &value))
{
DEBUG_TRACE("mm key event, ad->player_state : %d", ad->player_state);
+ ad->prohibit_activate_win = true;
if(ad->player_state == PLAY_STATE_PAUSED)
{
+ ad->launch_type = MP_LAUNCH_DEFAULT;
+ ad->loadtype = LOAD_DEFAULT;
mp_play_control_play_cb(ad, NULL, SIGNAL_PLAY, NULL);
- ad->loadtype = LOAD_MM_KEY;
}
else
{
ad->launch_type = MP_LAUNCH_PLAY_RECENT;
- ad->loadtype = LOAD_PLAY;
+ ad->loadtype = LOAD_VOICE_UI;
}
+ IF_FREE(value);
}
}
+#endif
+}
+
+static void
+_mp_main_win_profile_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+ struct appdata *ad = data;
+ MP_CHECK(ad);
+ MP_CHECK(ad->base_layout_main);
+
+ const char *profile = elm_config_profile_get();
+ mp_debug("profile = %s", profile);
+ if (!g_strcmp0(profile, "desktop"))
+ elm_layout_theme_set(ad->base_layout_main, "layout", "application", "noindicator");
+ else
+ elm_layout_theme_set(ad->base_layout_main, "layout", "application", "default");
+ evas_object_size_hint_weight_set(ad->base_layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(ad->base_layout_main);
+}
+
+static void
+_mp_atexit_cb(void)
+{
+ ERROR_TRACE("%%%%%%%%%%%%%%%%%%%%%");
+ ERROR_TRACE("#exit() invoked. music-player is exiting");
+ ERROR_TRACE("%%%%%%%%%%%%%%%%%%%%%");
}
/**< Called before main loop */
-static int
+static bool
mp_create(void *data)
{
struct appdata *ad = data;
- int ret = 0;
- MP_CHECK_VAL(ad, -1);
+ elm_config_preferred_engine_set("opengl_x11");
+ atexit(_mp_atexit_cb);
- ret = appcore_set_i18n(PACKAGE, LOCALEDIR);
- mp_retv_if(ret, -1);
+ MP_CHECK_VAL(ad, EINA_FALSE);
- appcore_set_event_callback(APPCORE_EVENT_LOW_BATTERY, _mp_main_low_battery_cb, ad);
+ MP_TA_ACUM_ITEM_END("main_to_create", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_create", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_theme_extension_add", 0);
/* do extension add before add elm object.*/
elm_theme_extension_add(NULL, THEME_NAME);
+ MP_TA_ACUM_ITEM_END(" elm_theme_extension_add", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" create_window_time", 0);
ad->win_main = mp_create_win(PACKAGE);
+ mp_retv_if(ad->win_main == NULL, EINA_FALSE);
evas_event_callback_add(evas_object_evas_get(ad->win_main), EVAS_CALLBACK_RENDER_FLUSH_POST,
_mp_evas_flush_post, ad);
-
- mp_retv_if(ad->win_main == NULL, -1);
+ evas_object_smart_callback_add(ad->win_main, "profile,changed", _mp_main_win_profile_changed_cb, ad);
ad->xwin = elm_win_xwindow_get(ad->win_main);
+ MP_TA_ACUM_ITEM_END(" create_window_time", 0);
- mp_widget_create_bgimg(ad->win_main);
+ MP_TA_ACUM_ITEM_BEGIN(" create_bg_img", 0);
+ ad->bgimage = mp_widget_create_bgimg(ad->win_main);
ad->evas = evas_object_evas_get(ad->win_main);
+ MP_TA_ACUM_ITEM_END(" create_bg_img", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_player_mgr_session_init", 0);
+ /*initialize session type */
if (!mp_player_mgr_session_init())
{
ERROR_TRACE("Error when set session");
- return -1;
+ return EINA_FALSE;
}
+ MP_TA_ACUM_ITEM_END(" mp_player_mgr_session_init", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_setting_init()", 0);
mp_setting_init(ad);
+ MP_TA_ACUM_ITEM_END(" mp_setting_init()", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" music_init_time", 0);
if (!_mp_main_init(ad))
{
ERROR_TRACE("Fail when init music");
- return -1;
+ return EINA_FALSE;
}
+ MP_TA_ACUM_ITEM_END(" music_init_time", 0);
- _mp_main_scale_set(ad);
-
+ MP_TA_ACUM_ITEM_BEGIN(" mp_http_mgr_create", 0);
mp_http_mgr_create(ad);
+ MP_TA_ACUM_ITEM_END(" mp_http_mgr_create", 0);
ad->app_init_idler = ecore_idler_add(_mp_main_app_init_idler_cb, ad);
- return 0;
+ MP_TA_ACUM_ITEM_BEGIN(" mp_language_mgr_create", 0);
+ mp_language_mgr_create();
+ MP_TA_ACUM_ITEM_END(" mp_language_mgr_create", 0);
+
+ MP_TA_ACUM_ITEM_END(" mp_create", 0);
+ MP_TA_ACUM_ITEM_BEGIN("create_to_reset", 0);
+ return EINA_TRUE;
}
/**< Called after main loop */
-static int
+static void
mp_terminate(void *data)
{
struct appdata *ad = data;
DEBUG_TRACE_FUNC();
- MP_CHECK_VAL(ad, 0);
+ MP_CHECK(ad);
+ mp_language_mgr_destroy();
+
+ mp_ecore_idler_del(ad->mss_startup_idler);
mp_ecore_idler_del(ad->playing_err_idler);
mp_ecore_idler_del(ad->bt_pause_idler);
mp_ecore_idler_del(ad->app_init_idler);
mp_ecore_timer_del(ad->longpress_timer);
- mp_ecore_timer_del(ad->live_pos_timer);
mp_util_stop_vibration(ad);
mp_ecore_timer_del(ad->vib_timer);
- mp_util_ungrab_mm_keys(ad);
+ mp_app_ungrab_mm_keys();
if (ad->key_down)
ecore_event_handler_del(ad->key_down);
+ if (ad->mouse_button_down)
+ ecore_event_handler_del(ad->mouse_button_down);
if (ad->visibility_change) {
ecore_event_handler_del(ad->visibility_change);
ad->visibility_change = NULL;
mp_player_mgr_destroy(ad);
}
- vconf_set_int(VCONFKEY_MUSIC_STATE, VCONFKEY_MUSIC_OFF);
+ if (!mp_util_is_other_player_playing())
+ vconf_set_int(VCONFKEY_MUSIC_STATE, VCONFKEY_MUSIC_OFF);
+ mp_minicontroller_destroy(ad);
mp_player_mgr_vol_type_unset();
if (!mp_player_mgr_session_finish())
ERROR_TRACE("Error when set session");
mp_http_mgr_destory(ad);
- if (ad->media_svc_handle) {
- media_svc_disconnect(ad->media_svc_handle);
- }
+ mp_media_info_disconnect();
mp_setting_deinit(ad);
if (!mp_app_noti_ignore())
ERROR_TRACE("Error when ignore noti");
- return 0;
+#ifdef MP_SOUND_PLAYER
+ sp_view_mgr_destroy(ad->view_mgr);
+ ad->view_mgr = NULL;
+#endif
+
+ MP_TA_ACUM_ITEM_SHOW_RESULT_TO(MP_TA_SHOW_FILE);
+ MP_TA_RELEASE();
+
+ return;
}
/**< Called when every window goes back */
-static int
+static void
mp_pause(void *data)
{
+// struct appdata *ad = data;
+
DEBUG_TRACE_FUNC();
- return 0;
+ return;
}
/**< Called when any window comes on top */
-static int
+static void
mp_resume(void *data)
{
DEBUG_TRACE_FUNC();
- return 0;
+ return;
}
/**< Called at the first idler and relaunched by AUL*/
-static int
-mp_reset(bundle * b, void *data)
+static void
+mp_service(service_h service, void *data)
{
startfunc;
+
struct appdata *ad = data;
- mp_retv_if(ad == NULL, -1);
+ mp_ret_if(ad == NULL);
+
+ mp_retm_if(ad->app_is_foreground, "relaunch not allowed.. ");
+ if (!ad->app_is_foreground)
+ ad->app_is_foreground = true;
- mp_retvm_if(ad->prohibit_aul_relaunch, 0, "relaunch not allowed.. ");
- if (!ad->prohibit_aul_relaunch)
- ad->prohibit_aul_relaunch = true;
+ MP_TA_ACUM_ITEM_END("create_to_reset", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_service", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" _mp_main_is_launching_available", 0);
if (!_mp_main_is_launching_available(ad))
- return -1;
+ return;
+ MP_TA_ACUM_ITEM_END(" _mp_main_is_launching_available", 0);
char *request_title = NULL;
int lunching_by_menu_icon = 0;
- char *path;
+ char *path = NULL;
+
+ MP_TA_ACUM_ITEM_BEGIN(" parse_bundle", 0);
+ _mp_main_parse_service(ad, service, &request_title, &path, &lunching_by_menu_icon);
+ MP_TA_ACUM_ITEM_END(" parse_bundle", 0);
+
+#ifdef MP_SOUND_PLAYER
+ if (path) {
+ _mp_main_set_current_playing_item(ad, path);
+ free(path);
+ }
+ else {
+ mp_error("no path");
+ _mp_main_exit_cb(ad, NULL, NULL);
+
+ return;
+ }
+
+ IF_FREE(ad->latest_playing_key_id);
+ if (!ad->base_layout_main) {
+ ad->base_layout_main = mp_widget_create_layout_main(ad->win_main);
- mp_main_parse_bundle(ad, b, &request_title, &path, &lunching_by_menu_icon);
+ ad->loadtype = LOAD_TRACK;
+ /* create base navi bar */
+ Evas_Object *navibar = mp_widget_navigation_new(ad->base_layout_main, ad);
+ elm_object_part_content_set(ad->base_layout_main, "elm.swallow.content", navibar);
+
+ ad->view_mgr = sp_view_mgr_create(navibar);
+ }
+
+ mp_play_destory(ad);
+ mp_play_view_load(ad);
+ ad->paused_by_user = FALSE;
+ mp_play_new_file(data, TRUE);
+#else
if (path)
{
- _mp_main_set_current_playing_item(ad, path);
- IF_FREE(ad->request_playing_path);
- ad->request_playing_path = g_strdup(path);
+ if (lunching_by_menu_icon)
+ _mp_main_create_view_by_item(ad, path);
+ else
+ {
+ _mp_main_set_current_playing_item(ad, path);
+ IF_FREE(ad->request_playing_path);
+ ad->request_playing_path = g_strdup(path);
+ }
free(path);
}
if (ad->launch_type != MP_LAUNCH_DEFAULT)
{
+ //destory popup
mp_popup_destroy(ad);
+
+ //destroy info view..
mp_view_manager_pop_info_view(ad);
+
+ //destroy ug.
+ mp_ug_destory_all(ad);
+
}
if (ad->launch_type != MP_LAUNCH_DEFAULT && ad->loadtype == LOAD_TRACK)
ad->paused_by_user = FALSE;
}
- else if (ad->launch_type >= MP_LAUNCH_PLAY_RECENT
- && ad->launch_type <= MP_LAUNCH_PLAY_SOMETHING)
+ else if (ad->launch_type >= MP_LAUNCH_PLAY_RECENT && ad->launch_type <= MP_LAUNCH_PLAY_SOMETHING)
{
IF_FREE(ad->latest_playing_key_id);
ad->load_play_view = true;
ad->paused_by_user = FALSE;
- if (!mp_play_view_load_by_play(ad, request_title))
- return -1;
+ if (!mp_play_view_load_by_voice_ui(ad, request_title))
+ return;
}
else if (ad->launch_type == MP_LAUNCH_DEFAULT)
{
+ MP_TA_ACUM_ITEM_BEGIN(" load_library_view", 0);
if (ad->base_layout_main == NULL)
mp_library_create(ad);
+ MP_TA_ACUM_ITEM_END(" load_library_view", 0);
}
+#endif
-
- enum appcore_rm mode;
- appcore_get_rotation_state(&mode);
-
+ MP_TA_ACUM_ITEM_BEGIN(" evas_object_show()-win", 0);
evas_object_show(ad->win_main);
+ MP_TA_ACUM_ITEM_END(" evas_object_show()-win", 0);
- if(ad->loadtype != LOAD_MM_KEY)
+ if(!ad->prohibit_activate_win)
+ {
+ DEBUG_TRACE("activate window");
+ MP_TA_ACUM_ITEM_BEGIN(" elm_win_activate()", 0);
elm_win_activate(ad->win_main);
+ MP_TA_ACUM_ITEM_END(" elm_win_activate()", 0);
+ }
+ MP_TA_ACUM_ITEM_BEGIN(" mp_player_mgr_vol_type_set", 0);
mp_player_mgr_vol_type_set();
+ MP_TA_ACUM_ITEM_END(" mp_player_mgr_vol_type_set", 0);
+
+ MP_TA_ACUM_ITEM_END("MP-LAUNCH_TIME", 0);
+ MP_TA_ACUM_ITEM_END(" mp_service", 0);
endfunc;
- return 0;
+ return;
+}
+
+static void
+mp_low_battery(void *data)
+{
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+
+ if (mp_check_battery_available())
+ {
+ mp_app_exit(ad);
+ }
+ return;
+}
+
+void
+mp_device_orientation_cb(app_device_orientation_e orientation, void *user_data)
+{
+
+}
+
+static void
+__mp_language_changed_cb(void *user_data)
+{
+ DEBUG_TRACE("");
+ struct appdata *ad = user_data;
+ mp_popup_destroy(ad);
+#ifndef MP_SOUND_PLAYER
+ mp_view_manager_pop_info_view(ad);
+#endif
+ mp_ug_destory_all(ad);
+ mp_language_mgr_update();
}
int
main(int argc, char *argv[])
{
struct appdata ad;
- struct appcore_ops ops = {
- .create = mp_create,
- .terminate = mp_terminate,
- .pause = mp_pause,
- .resume = mp_resume,
- .reset = mp_reset,
- };
+ app_event_callback_s event_callbacks;
+
+ event_callbacks.create = mp_create;
+ event_callbacks.terminate = mp_terminate;
+ event_callbacks.pause = mp_pause;
+ event_callbacks.resume = mp_resume;
+ event_callbacks.service = mp_service;
+ event_callbacks.low_memory = NULL;
+ event_callbacks.low_battery = mp_low_battery;
+ event_callbacks.device_orientation = mp_device_orientation_cb;
+ event_callbacks.language_changed = __mp_language_changed_cb;
+ event_callbacks.region_format_changed = NULL;
+
DEBUG_TRACE(" starting music main");
+ MP_TA_INIT();
+ MP_TA_ACUM_ITEM_BEGIN("MP-LAUNCH_TIME", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" main", 0);
memset(&ad, 0x0, sizeof(struct appdata));
- ops.data = &ad;
- return appcore_efl_main(PACKAGE, &argc, &argv, &ops);
+ MP_TA_ACUM_ITEM_END(" main", 0);
+ MP_TA_ACUM_ITEM_BEGIN("main_to_create", 0);
+
+ return app_efl_main(&argc, &argv, &event_callbacks, &ad);
}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
#include "music.h"
#include "mp-view-layout.h"
-\rEvas_Object * mp_edit_view_create(view_data_t * view_data);
+ \rEvas_Object * mp_edit_view_create(view_data_t * view_data);
\rvoid mp_edit_view_back_button_cb(void *data, Evas_Object * obj, void *event_info);
\rvoid mp_edit_view_create_new_cancel_cb(void *data, Evas_Object * obj, void *event_info);
\rvoid mp_edit_view_create_new_done_cb(void *data, Evas_Object * obj, void *event_info);
\rvoid mp_edit_view_delete_cb(void *data, Evas_Object * obj, void *event_info);
\rvoid mp_edit_view_add_to_plst_cb(void *data, Evas_Object * obj, void *event_info);
+\rvoid mp_edit_view_share_cb(void *data, Evas_Object * obj, void *event_info);
\rvoid mp_edit_view_excute_edit(mp_layout_data_t * layout_data, mp_edit_operation_t edit_operation);
\rvoid mp_edit_view_cencel_cb(void *data, Evas_Object * obj, void *event_info);
\rvoid mp_edit_view_genlist_sel_cb(void *data, Evas_Object * obj, void *event_info);
+bool mp_edit_view_get_selected_track_list(void *data, GList **p_list);
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-#ifndef __MP_GROUP_VIEW_H__
-#define __MP_GROUP_VIEW_H__
-
#include "music.h"
+ \rEvas_Object * mp_group_view_create(struct appdata *ad, mp_view_type_t type);
+\rvoid mp_group_view_destroy(Evas_Object * group_view);
+\rvoid mp_group_view_refresh(Evas_Object * group_view);
+\rbool mp_group_view_create_by_group_name(Evas_Object * obj, char *group_name, mp_group_type_e type);
+\rEvas_Object * mp_group_view_icon_get(void *data, Evas_Object * obj, const char *part);
+\rchar *mp_group_view_album_list_label_get(void *data, Evas_Object * obj, const char *part);
+\rvoid mp_group_view_group_list_select_cb(void *data, Evas_Object * obj, void *event_info);
+\rchar *mp_group_view_list_label_get(void *data, Evas_Object * obj, const char *part);
+\rEvas_Object * mp_group_view_icon_get(void *data, Evas_Object * obj, const char *part);
-Evas_Object * mp_group_view_create(struct appdata *ad, mp_view_type_t type);
-void mp_group_view_destroy(Evas_Object * group_view);
-void mp_group_view_refresh(Evas_Object * group_view);
-Evas_Object * mp_group_view_icon_get(void *data, Evas_Object * obj, const char *part);
-char *mp_group_view_album_list_label_get(void *data, Evas_Object * obj, const char *part);
-void mp_group_view_group_list_select_cb(void *data, Evas_Object * obj, void *event_info);
-char *mp_group_view_list_label_get(void *data, Evas_Object * obj, const char *part);
-Evas_Object * mp_group_view_icon_get(void *data, Evas_Object * obj, const char *part);
-bool mp_group_view_create_by_group_name(Evas_Object * obj, char *group_name, audio_svc_group_type_e type);
-
-#endif //__MP_GROUP_VIEW_H__
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
#include "mp-view-manager.h"
#include "mp-setting-ctrl.h"
-#define STR_MP_ALL_TRACKS N_("IDS_MUSIC_HEADER_SONGS")
-#define STR_MP_PLAYLISTS N_("IDS_MUSIC_BODY_PLAYLISTS")
-#define STR_MP_ALBUMS N_("IDS_MUSIC_TAB4_ALBUMS")
-#define STR_MP_ARTISTS N_("IDS_MUSIC_TAB4_ARTISTS")
-#define STR_MP_GENRES N_("IDS_MUSIC_TAB4_GENRES")
-#define STR_MP_COMPOSERS N_("IDS_MUSIC_TAB4_COMPOSERS")
-#define STR_MP_CONDUCTORS N_("IDS_MUSIC_TAB4_CONDUCTORS")
-#define STR_MP_YEARS N_("IDS_MUSIC_TAB4_YEARS")
-#define STR_MP_PODCASTS N_("IDS_MUSIC_TAB4_PODCASTS")
-#define STR_MP_MOST_PLAYED N_("IDS_MUSIC_BODY_MOST_PLAYED")
-#define STR_MP_RECENTLY_ADDED N_("IDS_MUSIC_BODY_RECENTLY_ADDED")
-#define STR_MP_RECENTLY_PLAYED N_("IDS_MUSIC_BODY_RECENTLY_PLAYED")
-#define STR_MP_QUICK_LIST N_("IDS_MUSIC_BODY_FAVOURITES")
-#define STR_MP_ADD_TO_PLAYLIST N_("IDS_MUSIC_BODY_ADD_TO_PLAYLIST")
+#define STR_MP_ALL_TRACKS ("IDS_MUSIC_TAB4_ALL")
+#define STR_MP_PLAYLISTS ("IDS_MUSIC_BODY_PLAYLISTS")
+#define STR_MP_ALBUMS ("IDS_MUSIC_TAB4_ALBUMS")
+#define STR_MP_ARTISTS ("IDS_MUSIC_TAB4_ARTISTS")
+#define STR_MP_GENRES ("IDS_MUSIC_TAB4_GENRES")
+#define STR_MP_COMPOSERS ("IDS_MUSIC_TAB4_COMPOSERS")
+#define STR_MP_CONDUCTORS ("IDS_MUSIC_TAB4_CONDUCTORS")
+#define STR_MP_YEARS ("IDS_MUSIC_TAB4_YEARS")
+#define STR_MP_PODCASTS ("IDS_MUSIC_TAB4_PODCASTS")
+#define STR_MP_FOLDERS ("IDS_COM_BODY_FOLDERS")
+#define STR_MP_MOST_PLAYED ("IDS_MUSIC_BODY_MOST_PLAYED")
+#define STR_MP_RECENTLY_ADDED ("IDS_MUSIC_BODY_RECENTLY_ADDED")
+#define STR_MP_RECENTLY_PLAYED ("IDS_MUSIC_BODY_RECENTLY_PLAYED")
+#define STR_MP_QUICK_LIST ("IDS_MUSIC_BODY_FAVOURITES")
+#define STR_MP_ADD_TO_PLAYLIST ("IDS_MUSIC_BODY_ADD_TO_PLAYLIST")
+#define STR_MP_ALLSHARE_TAB ("Nearby device")
void mp_library_create(struct appdata *ad);
void mp_library_update_view(struct appdata *ad);
-void mp_library_view_change_cb(void *data, Evas_Object * obj, void *event_info);
void mp_library_now_playing_hide(struct appdata *ad);
void mp_library_now_playing_set(struct appdata *ad);
bool mp_library_load(struct appdata *ad);
void mp_view_manager_clear(struct appdata *ad);
-void mp_library_controlbar_visible_set(struct appdata *ad, bool visible);
+void mp_library_view_change_cb(void *data, Evas_Object * obj, void *event_info);
#endif //__MP_LIBRARY_H_
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __MP_PLAY_VIEW_H_
#define __MP_PLAY_VIEW_H_
#include "music.h"
+#ifndef MP_SOUND_PLAYER
#include "mp-view-layout.h"
+#endif
+bool mp_play_view_set_screen_mode(void *data, int mode);
bool mp_play_view_stop_transit(void *data);
bool mp_play_view_pop(void *data);
bool mp_play_view_load(void *data);
-bool mp_play_view_load_by_path(struct appdata *ad, char *path);
bool mp_play_view_load_track(void *data);
+#ifdef MP_SOUND_PLAYER
+void mp_play_view_unswallow_info_ug_layout(struct appdata *ad);
+#else
+bool mp_play_view_load_by_path(struct appdata *ad, char *path);
bool mp_play_view_load_by_index(mp_layout_data_t * layout_data, int index, bool effect_value);
-bool mp_play_view_refresh(void *data);
+#endif
+bool mp_play_view_refresh(void *data); // use for refresh playing view
-bool mp_play_view_create_library(void *data);
+bool mp_play_view_create_library(void *data); //create base layout
bool mp_play_view_create(void *data);
bool mp_play_view_destory(void *data);
void mp_play_view_info_cb(void *data, Evas_Object * obj, void *event_info);
void mp_play_view_back_clicked_cb(void *data, Evas_Object * obj, void *event_info);
-bool mp_play_view_load_by_play(struct appdata *ad, const char *request_title);
+bool mp_play_view_load_by_voice_ui(struct appdata *ad, const char *request_title);
void mp_play_view_info_back_cb(void *data, Evas_Object * obj, void *event_info);
void mp_play_view_show_default_info(struct appdata *ad);
void mp_play_view_update_snd_path(struct appdata *ad);
+void mp_play_view_update_dmr_icon_state(struct appdata *ad);
bool mp_play_view_set_menu_state(void *data, bool show, bool animation);
void mp_play_view_set_snd_path_cb(void *data, Evas_Object *obj, void *event_info);
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#ifndef __MP_PLAYLIST_VIEW_H_
#define __MP_PLAYLIST_VIEW_H_
#include "music.h"
#include "mp-view-layout.h"
-
Evas_Object * mp_playlist_view_create(struct appdata *ad, mp_view_type_t type);
void mp_playlist_view_destroy(Evas_Object * playlist);
void mp_playlist_view_refresh(Evas_Object * playlist);
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include "mp-edit-view.h"
#include "mp-view-layout.h"
#include "mp-library.h"
#include "mp-menu.h"
#include "mp-play-list.h"
#include "mp-playlist-view.h"
-#include "mp-popup.h"
-
-static void
-_mp_edit_view_destroy_view(view_data_t * view_data)
-{
- startfunc;
- MP_CHECK(view_data);
- MP_CHECK_VIEW_DATA(view_data);
- mp_view_manager_pop_view_content(view_data, true, TRUE);
- if (view_data->ad->notify)
- evas_object_del(view_data->ad->notify);
- endfunc;
-}
void
mp_edit_view_back_button_cb(void *data, Evas_Object * obj, void *event_info)
evas_object_smart_callback_del(obj, "clicked", mp_edit_view_back_button_cb);
mp_view_manager_pop_view_content(view_data, FALSE, FALSE);
- if (view_data->ad->notify)
- evas_object_del(view_data->ad->notify);
+ mp_evas_object_del(view_data->ad->notify);
}
static char *
{
char *title = NULL;
- GET_SYS_STR("IDS_COM_SK_SELECT");
-
+ title = "IDS_COM_BODY_EDIT";
return title;
}
void
+mp_edit_view_share_cb(void *data, Evas_Object * obj, void *event_info)
+{
+ DEBUG_TRACE("");
+
+ mp_layout_data_t *layout_data = (mp_layout_data_t *) data;
+ MP_CHECK(layout_data);
+ MP_CHECK_LAYOUT_DATA(layout_data);
+
+ mp_retm_if(layout_data->ad->navi_effect_in_progress, "navi effect in progress");
+
+ if (layout_data->checked_count <= 0)
+ {
+ mp_widget_text_popup(layout_data->ad, GET_STR("IDS_MUSIC_POP_NOTHING_SELECTED"));
+ return;
+ }
+
+ mp_genlist_popup_create(layout_data->ad->win_main, MP_POPUP_LIST_SHARE, data, layout_data->ad);
+
+ return;
+}
+
+void
mp_edit_view_create_new_cancel_cb(void *data, Evas_Object * obj, void *event_info)
{
DEBUG_TRACE("");
mp_edit_view_create_new_done_cb(void *data, Evas_Object * obj, void *event_info)
{
DEBUG_TRACE_FUNC();
+ mp_playlist_h playlist_handle;
mp_layout_data_t *layout_data = (mp_layout_data_t *) data;
MP_CHECK(layout_data);
MP_CHECK_LAYOUT_DATA(layout_data);
}
converted_name = elm_entry_markup_to_utf8(name);
- plst_uid = mp_util_create_playlist(ad, converted_name);
+ if(layout_data->edit_playlist_handle)
+ {
+ mp_media_info_playlist_handle_destroy(layout_data->edit_playlist_handle);
+ layout_data->edit_playlist_handle = NULL;
+ }
+
+ plst_uid = mp_util_create_playlist(ad, converted_name, &playlist_handle);
IF_FREE(converted_name);
if (plst_uid < 0)
return;
mp_view_manager_pop_view_content(view_data, FALSE, TRUE);
layout_data->edit_playlist_id = plst_uid;
+ layout_data->edit_playlist_handle = playlist_handle;
mp_edit_view_excute_edit(layout_data, MP_EDIT_ADD_TO_PLAYLIST);
if (view_data->view_type == MP_VIEW_TYPE_PLAYLIST)
Evas_Object *create_plst_layout = NULL;
char *new_playlist_name = NULL;
- new_playlist_name = mp_util_get_new_playlist_name(view_data->ad->media_svc_handle);
+ new_playlist_name = mp_util_get_new_playlist_name();
create_plst_layout = mp_common_create_editfield_layout(view_data->navibar, view_data->ad, new_playlist_name);
IF_FREE(new_playlist_name);
mp_retm_if(create_plst_layout == NULL, "create_plst_layout is NULL");
mp_view_manager_push_view_content(view_data, create_plst_layout, MP_VIEW_CONTENT_NEW_PLAYLIST_BY_EDIT);
- mp_view_manager_set_title_and_buttons(view_data, GET_STR("IDS_MUSIC_OPT_ADD_PLAYLIST"), layout_data);
evas_object_show(create_plst_layout);
mp_popup_destroy(layout_data->ad);
-
}
static void
mp_edit_view_excute_edit(layout_data, MP_EDIT_ADD_TO_PLAYLIST);
}
+static void _mp_edit_view_popup_del_cb(void *data, Evas * e, Evas_Object * eo, void *event_info)
+{
+ mp_media_list_h list = data;
+ mp_media_info_group_list_destroy(list);
+}
void
mp_edit_view_add_to_plst_cb(void *data, Evas_Object * obj, void *event_info)
_mp_edit_view_create_playlist_cb, layout_data);
int i = 0, count = -1, ret = -1;
- ret = audio_svc_count_playlist(layout_data->ad->media_svc_handle, "", "", &count);
-
- if (ret != AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_group_list_count(MP_GROUP_BY_PLAYLIST, NULL, NULL, &count);
+ if (ret != 0)
{
- ERROR_TRACE("Error in audio_svc_list_get_count (%d)\n", ret);
- evas_object_del(popup);
+ ERROR_TRACE("Error in mp_media_info_group_list_count (%d)\n", ret);
return;
}
if (count)
{
- AudioHandleType *playlists = NULL;
- ret = audio_svc_playlist_new(&playlists, count);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to make new playlist");
+ mp_media_list_h list = NULL;
- ret = audio_svc_get_playlist(layout_data->ad->media_svc_handle, "", "", 0, count, playlists);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_group_list_create(&list, MP_GROUP_BY_PLAYLIST, NULL, NULL, 0, count);
+ if (ret != 0)
{
WARN_TRACE("Fail to get playlist");
- audio_svc_playlist_free(playlists);
return;
}
for (i = 0; i < count; i++)
{
char *name = NULL;
- int size;
int id;
+ mp_media_info_h item = NULL;
+ item = mp_media_info_group_list_nth_item(list, i);
- ret = audio_svc_playlist_get_val(playlists, i, AUDIO_SVC_PLAYLIST_NAME, &name, &size,
- AUDIO_SVC_PLAYLIST_ID, &id, -1);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
+ ret = mp_media_info_group_get_main_info(item, &name);
+ mp_retm_if(ret != 0, "Fail to get value");
+ ret = mp_media_info_group_get_playlist_id(item, &id);
+ mp_retm_if(ret != 0, "Fail to get value");
mp_genlist_popup_item_append(popup, name, NULL, _mp_edit_view_add_to_playlist_cb, (void *)id);
}
+
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _mp_edit_view_popup_del_cb, list);
}
evas_object_show(popup);
mp_layout_data_t *layout_data = (mp_layout_data_t *) data;
struct appdata *ad = NULL;
mp_genlist_item_data_t *item = NULL;
- AudioHandleType *item_handle = NULL;
- int ret = AUDIO_SVC_ERROR_NONE;
+ mp_media_info_h item_handle = NULL;
+ int ret = 0;
int plst_id = -1;
char *fid = NULL;
int uid = 0;
char *file_path;
char *title;
- int size;
bool error_occured = FALSE;
MP_CHECK_FALSE(layout_data);
WARN_TRACE("CHECK here...");
goto END;
}
+
+ if(elm_genlist_item_select_mode_get(layout_data->current_edit_item) == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
+ {
+ layout_data->current_edit_item = elm_genlist_item_next_get(layout_data->current_edit_item);
+ return EINA_TRUE;
+ }
+
item = elm_object_item_data_get(layout_data->current_edit_item);
if (!item)
goto END;
}
- if (AUDIO_SVC_TRACK_BY_ALBUM == layout_data->track_type
- || AUDIO_SVC_TRACK_BY_ARTIST == layout_data->track_type)
+ if (MP_TRACK_BY_ALBUM == layout_data->track_type
+ || MP_TRACK_BY_ARTIST == layout_data->track_type)
layout_data->category = MP_LAYOUT_TRACK_LIST;
if (item->checked)
{
layout_data->current_edit_item =
elm_genlist_item_next_get(layout_data->current_edit_item);
- item_handle = (AudioHandleType *) (item->handle);
+ item_handle = (item->handle);
if (!item_handle)
{
WARN_TRACE("CHECK here...");
goto END;
}
- if (item_handle)
- {
- ret = audio_svc_playlist_get_val(item_handle, 0, AUDIO_SVC_PLAYLIST_ID,
- &plst_id, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ ret = mp_media_info_group_get_playlist_id(item_handle, &plst_id);
+ MP_CHECK_EXCEP(ret == 0);
- ret = audio_svc_delete_playlist(ad->media_svc_handle, plst_id);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ ret = mp_media_info_playlist_delete_from_db(plst_id);
+ MP_CHECK_EXCEP(ret == 0);
- DEBUG_TRACE("playlist (%d) deleted", plst_id);
- }
+ DEBUG_TRACE("playlist (%d) deleted", plst_id);
elm_object_item_del(item->it);
layout_data->is_item_del = true;
layout_data->item_count--;
{
layout_data->current_edit_item =
elm_genlist_item_next_get(layout_data->current_edit_item);
- item_handle = (AudioHandleType *) (item->handle);
+ item_handle = (item->handle);
if (item_handle)
{
if (layout_data->playlist_id >= 0)
{
- ret = audio_svc_playlist_item_get_val(item_handle, 0,
- AUDIO_SVC_PLAYLIST_ITEM_UID,
- &uid, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- ret = audio_svc_remove_item_from_playlist_by_uid(ad->media_svc_handle,
- layout_data->playlist_id,
- uid);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ int member_id = 0;
+ ret = mp_media_info_get_playlist_member_id(item_handle, &member_id);
+ MP_CHECK_EXCEP(ret == 0);
+ ret = mp_media_info_playlist_remove_media(layout_data->playlist_handle, member_id);
+ MP_CHECK_EXCEP(ret == 0);
DEBUG_TRACE("playlist id = %d, id = %d", plst_id, uid);
-
- if (ad->playing_list) {
- if (ad->playing_list->playlist_id == layout_data->playlist_id) {
- mp_debug("delete track from now playing list");
- fid = mp_util_get_fid_by_handle(layout_data, item_handle);
- mp_play_list_delete_item(ad->playing_list, fid);
- }
- }
}
- else if (layout_data->track_type == AUDIO_SVC_TRACK_BY_ADDED_TIME)
+ else if (layout_data->track_type == MP_TRACK_BY_ADDED_TIME)
+ {
+ ret = mp_media_info_set_added_time(item_handle, 0);
+ MP_CHECK_EXCEP(ret == 0);
+ }
+ else if (layout_data->track_type == MP_TRACK_BY_PLAYED_TIME)
{
- ret = audio_svc_list_item_get_val(item_handle, 0,
- AUDIO_SVC_LIST_ITEM_AUDIO_ID,
- &fid, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- ret = audio_svc_update_item_metadata(ad->media_svc_handle, fid,
- AUDIO_SVC_TRACK_DATA_ADDED_TIME,
- 0, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- DEBUG_TRACE("playlist id = %d, id = %d", plst_id, fid);
+ ret = mp_media_info_set_played_time(item_handle, 0);
+ MP_CHECK_EXCEP(ret == 0);
}
- else if (layout_data->track_type == AUDIO_SVC_TRACK_BY_PLAYED_TIME)
+ else if (layout_data->track_type == MP_TRACK_BY_FAVORITE)
{
- ret = audio_svc_list_item_get_val(item_handle, 0,
- AUDIO_SVC_LIST_ITEM_AUDIO_ID,
- &fid, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- ret = audio_svc_update_item_metadata(ad->media_svc_handle, fid,
- AUDIO_SVC_TRACK_DATA_PLAYED_TIME,
- 0, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- DEBUG_TRACE("playlist id = %d, id = %d", plst_id, fid);
+ ret = mp_media_info_set_favorite(item_handle, false);
+ MP_CHECK_EXCEP(ret == 0);
}
- else if (layout_data->track_type == AUDIO_SVC_TRACK_BY_PLAYED_COUNT)
+ else if (layout_data->track_type == MP_TRACK_BY_PLAYED_COUNT)
{
- ret = audio_svc_list_item_get_val(item_handle, 0,
- AUDIO_SVC_LIST_ITEM_AUDIO_ID,
- &fid, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- ret = audio_svc_update_item_metadata(ad->media_svc_handle, fid,
- AUDIO_SVC_TRACK_DATA_PLAYED_COUNT,
- 0, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- DEBUG_TRACE("playlist id = %d, id = %d", plst_id, fid);
+ ret = mp_media_info_set_played_count(item_handle, 0);
+ MP_CHECK_EXCEP(ret == 0);
}
else
{
- ret = audio_svc_list_item_get_val(item_handle, 0,
- AUDIO_SVC_LIST_ITEM_AUDIO_ID,
- &fid, &size,
- AUDIO_SVC_LIST_ITEM_PATHNAME,
- &file_path, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- if (mp_util_delete_track(layout_data->ad, fid, file_path, false)
- != MP_FILE_DELETE_ERR_NONE)
+ ret = mp_media_info_get_media_id(item_handle, &fid);
+ ret = mp_media_info_get_file_path(item_handle, &file_path);
+ MP_CHECK_EXCEP(ret == 0);
+ if (mp_util_delete_track(layout_data->ad, fid, file_path, false) != MP_FILE_DELETE_ERR_NONE)
{
DEBUG_TRACE("Fail to delete item, fid: %d, path: %s",
fid, file_path);
}
if (!error_occured)
{
- if (AUDIO_SVC_TRACK_BY_ARTIST == layout_data->track_type) {
- int index = -1;
- int sub_index = -1;
- bool ret_val = FALSE;
- /* get group index and sub index when the status is artist album */
- ret_val = mp_common_track_get_aa_index(0, layout_data, item->it, FALSE);
- if (ret_val) {
- index = layout_data->selected_group_index;
- sub_index = layout_data->selected_album_sub_index;
- layout_data->aa_item_count[index]--;
- if (layout_data->aa_item_count[index] < 1) {
- /* delete group title if this album have no item */
- elm_object_item_del(layout_data->aa_group[index]);
- } else {
- /* update group title */
- elm_genlist_item_item_class_update(layout_data->aa_group[index],
- layout_data->aa_group_itc);
- }
+ if (MP_TRACK_BY_ARTIST == layout_data->track_type) {
+ if(!elm_genlist_item_parent_get(elm_genlist_item_next_get(item->it))
+ && !elm_genlist_item_parent_get(elm_genlist_item_prev_get(item->it)))
+ {
+ elm_object_item_del(elm_genlist_item_parent_get(item->it));
+ }
+ else
+ {
+ elm_genlist_item_update(elm_genlist_item_parent_get(item->it));
}
- DEBUG_TRACE("index=%d, sub_index=%d, ret_val=%d", index, sub_index, ret_val);
- } else if (AUDIO_SVC_TRACK_BY_ALBUM == layout_data->track_type) {
+ } else if (MP_TRACK_BY_ALBUM == layout_data->track_type) {
/* update group title */
- elm_genlist_item_item_class_update(layout_data->album_group,
- layout_data->album_group_itc);
+ elm_genlist_item_update(layout_data->album_group);
}
elm_object_item_del(item->it);
layout_data->is_item_del = true;
}
break;
}
- case MP_LAYOUT_GROUP_LIST:
- {
- item_handle = (AudioHandleType *) (item->handle);
- if (item_handle)
- {
- audio_svc_track_type_e item_type = AUDIO_SVC_TRACK_ALL;
- int count = 0;
- char *path = NULL;
- int size = 0;
-
- ret = audio_svc_group_item_get_val(item_handle, 0,
- AUDIO_SVC_GROUP_ITEM_MAIN_INFO,
- &title, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- MP_CHECK_EXCEP(title);
-
- item_type = mp_menu_get_track_type_by_group(layout_data->group_type);
-
- if (!layout_data->group_track_handle)
- {
- ret = audio_svc_count_list_item(ad->media_svc_handle, item_type, title, "", "", "",
- &count);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- MP_CHECK_EXCEP(count > 0);
- mp_debug("track_count: %d", count);
-
- ret = audio_svc_list_item_new(&layout_data->group_track_handle,
- count);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
-
- ret = audio_svc_get_list_item(ad->media_svc_handle, item_type, title, NULL, NULL,
- NULL, 0, count,
- layout_data->group_track_handle);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
-
- layout_data->edit_track_index = count - 1;
- layout_data->group_item_delete_error = false;
- }
- ret = audio_svc_list_item_get_val(layout_data->group_track_handle,
- layout_data->edit_track_index,
- AUDIO_SVC_LIST_ITEM_PATHNAME, &path,
- &size, AUDIO_SVC_LIST_ITEM_AUDIO_ID,
- &fid, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- MP_CHECK_EXCEP(path);
-
- music_list_item *cur_item =
- mp_play_list_get_current_item(layout_data->view_data->ad->
- playing_list);
- if ((cur_item != NULL) && !g_strcmp0(cur_item->key_id, fid))
- {
- DEBUG_TRACE("Playing file is not deleted., fid: %s, path: %s",
- fid, path);
- layout_data->error_count++;
- layout_data->group_item_delete_error = TRUE;
- }
- else
- {
- if (mp_util_delete_track(layout_data->ad, 0, path, FALSE) !=
- MP_FILE_DELETE_ERR_NONE)
- {
- DEBUG_TRACE("Fail to delete item, fid: %s, path: %s",
- fid, path);
- layout_data->error_count++;
- layout_data->group_item_delete_error = TRUE;
- }
- }
- DEBUG_TRACE("layout_data->edit_track_index: %d",
- layout_data->edit_track_index);
- if (layout_data->edit_track_index <= 0)
- {
- DEBUG_TRACE("all tracks in %s deleted.", title);
- layout_data->current_edit_item =
- elm_genlist_item_next_get(layout_data->
- current_edit_item);
- audio_svc_list_item_free(layout_data->group_track_handle);
- layout_data->group_track_handle = NULL;
- if (!layout_data->group_item_delete_error)
- {
- elm_object_item_del(item->it);
- layout_data->is_item_del = true;
- layout_data->item_count--;
- layout_data->checked_count--;
- }
- }
- else
- layout_data->edit_track_index--;
-
- }
- break;
- }
default:
WARN_TRACE("unexpected case...");
break;
}
else if (layout_data->edit_operation == MP_EDIT_ADD_TO_PLAYLIST)
{
+#ifdef MP_PLAYLIST_MAX_ITEM_COUNT
if (layout_data->playlist_track_count >= MP_PLAYLIST_MAX_ITEM_COUNT)
{
DEBUG_TRACE("unable to add more tracks...");
goto mp_exception;
}
+#endif
switch (layout_data->category)
{
case MP_LAYOUT_TRACK_LIST:
{
layout_data->current_edit_item =
elm_genlist_item_next_get(layout_data->current_edit_item);
- item_handle = (AudioHandleType *) (item->handle);
+ item_handle = (item->handle);
if (item_handle)
{
- if (layout_data->playlist_id >= 0)
- {
- ret = audio_svc_playlist_item_get_val(item_handle, 0,
- AUDIO_SVC_PLAYLIST_ITEM_AUDIO_ID,
- &fid, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- }
- else
+ ret = mp_media_info_get_media_id(item_handle, &fid);
+ MP_CHECK_EXCEP(ret == 0);
+
+ if (!mp_util_add_to_playlist_by_key(layout_data->edit_playlist_id, fid))
{
- ret = audio_svc_list_item_get_val(item_handle, 0,
- AUDIO_SVC_LIST_ITEM_AUDIO_ID,
- &fid, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- }
- if (!mp_util_add_to_playlist_by_key(ad->media_svc_handle, layout_data->edit_playlist_id, fid))
+ mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_ADD"));
goto mp_exception;
+ }
else
layout_data->playlist_track_count++;
}
}
case MP_LAYOUT_GROUP_LIST:
{
- item_handle = (AudioHandleType *) (item->handle);
+ item_handle = (item->handle);
if (item_handle)
{
- audio_svc_track_type_e item_type = AUDIO_SVC_TRACK_ALL;
+ mp_track_type_e item_type = MP_TRACK_ALL;
int count = 0;
- int size = 0;
+ mp_media_info_h item = NULL;
- ret = audio_svc_group_item_get_val(item_handle, 0,
- AUDIO_SVC_GROUP_ITEM_MAIN_INFO,
- &title, &size, -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ if (layout_data->view_data->view_type == MP_VIEW_TYPE_FOLDER)
+ {
+ ret = mp_media_info_group_get_sub_info(item_handle, &title);
+ }
+ else
+ {
+ ret = mp_media_info_group_get_main_info(item_handle, &title);
+ }
+ MP_CHECK_EXCEP(ret == 0);
MP_CHECK_EXCEP(title);
item_type = mp_menu_get_track_type_by_group(layout_data->group_type);
if (!layout_data->group_track_handle)
{
- ret = audio_svc_count_list_item(ad->media_svc_handle, item_type, title, "", "", "",
- &count);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ ret = mp_media_info_list_count(item_type, title, NULL, NULL, 0, &count);
+
+ MP_CHECK_EXCEP(ret == 0);
MP_CHECK_EXCEP(count > 0);
mp_debug("track_count: %d", count);
- ret = audio_svc_list_item_new(&layout_data->group_track_handle,
- count);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
-
- ret = audio_svc_get_list_item(ad->media_svc_handle, item_type, title, NULL, NULL,
- NULL, 0, count,
- layout_data->group_track_handle);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
+ ret = mp_media_info_list_create(&layout_data->group_track_handle, item_type, title, NULL, NULL, 0, 0, count);
+ MP_CHECK_EXCEP(ret == 0);
layout_data->edit_track_index = count - 1;
layout_data->group_item_delete_error = false;
}
- ret = audio_svc_list_item_get_val(layout_data->group_track_handle,
- layout_data->edit_track_index,
- AUDIO_SVC_LIST_ITEM_AUDIO_ID, &fid, &size,
- -1);
- MP_CHECK_EXCEP(ret == AUDIO_SVC_ERROR_NONE);
- if (!mp_util_add_to_playlist_by_key(ad->media_svc_handle, layout_data->edit_playlist_id, fid))
+ item = mp_media_info_list_nth_item(layout_data->group_track_handle, layout_data->edit_track_index);
+ ret = mp_media_info_get_media_id(item, &fid);
+ MP_CHECK_EXCEP(ret == 0);
+
+ if (!mp_util_add_to_playlist_by_key(layout_data->edit_playlist_id, fid))
goto mp_exception;
else
layout_data->playlist_track_count++;
{
DEBUG_TRACE("all tracks in %s added.", title);
layout_data->current_edit_item =
- elm_genlist_item_next_get(layout_data->
- current_edit_item);
- audio_svc_list_item_free(layout_data->group_track_handle);
+ elm_genlist_item_next_get(layout_data->current_edit_item);
+ mp_media_info_list_destroy(layout_data->group_track_handle);
layout_data->group_track_handle = NULL;
}
else
DEBUG_TRACE("no more items");
END:
- mp_popup_response(ad->popup[MP_POPUP_PROGRESS], 0);
+ mp_popup_response(ad->popup[MP_POPUP_PROGRESS], MP_POPUP_YES);
layout_data->edit_idler = NULL;
return EINA_FALSE;
mp_exception:
if (layout_data->group_track_handle)
{
- audio_svc_list_item_free(layout_data->group_track_handle);
+ mp_media_info_list_destroy(layout_data->group_track_handle);
layout_data->group_track_handle = NULL;
}
- mp_popup_response(ad->popup[MP_POPUP_PROGRESS], 0);
+ mp_popup_response(ad->popup[MP_POPUP_PROGRESS], MP_POPUP_NO);
layout_data->edit_idler = NULL;
return EINA_FALSE;
MP_CHECK(layout_data);
MP_CHECK_LAYOUT_DATA(layout_data);
MP_CHECK(obj);
-
- evas_object_del(obj);
+ mp_evas_object_del(obj);
struct appdata *ad = layout_data->ad;
MP_CHECK(ad);
if (layout_data->group_track_handle)
{
- audio_svc_list_item_free(layout_data->group_track_handle);
+ mp_media_info_list_destroy(layout_data->group_track_handle);
layout_data->group_track_handle = NULL;
}
- if(mp_view_manager_count_view_content(layout_data->view_data) > 1)
+ if(mp_view_manager_count_view_content(layout_data->view_data) >= 1)
mp_view_manager_update_list_contents(layout_data->view_data, TRUE);
- if (layout_data->item_count < 1)
- {
- if(mp_view_manager_count_view_content(layout_data->view_data) > 1)
- {
- int category = layout_data->category;
- int view_type = layout_data->view_data->view_type;
- _mp_edit_view_destroy_view(layout_data->view_data);
- if ((category == MP_LAYOUT_TRACK_LIST)
- && (view_type == MP_VIEW_TYPE_PLAYLIST))
- {
- mp_util_create_notify(ad, GET_SYS_STR("IDS_COM_POP_REMOVED"));
- }
- else
- {
- mp_util_create_notify(ad, GET_SYS_STR("IDS_COM_POP_DELETED"));
- }
- return;
- }
- else
- mp_view_manager_update_list_contents(layout_data->view_data, TRUE);
- }
-
int selected_count = layout_data->selected_count;
mp_edit_view_cencel_cb(layout_data, NULL, NULL);
}
else
{
- bool deleted = FALSE;
- if (layout_data->genlist) {
- int before_count = (int)evas_object_data_get(layout_data->genlist, "item_count_before_delete");
- int current_count = elm_genlist_items_count(layout_data->genlist);
-
- mp_debug("before: %d, after: %d", before_count, current_count);
- if (before_count > current_count)
- deleted = TRUE;
- }
-
if ((selected_count == 1) && layout_data->error_count)
{
if ((layout_data->category == MP_LAYOUT_TRACK_LIST)
mp_util_create_notify(layout_data->ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_DELETE_SELECTED_MUSIC_IS_PLAYING"));
}
}
- else if (deleted)
+ else
{
if ((layout_data->category == MP_LAYOUT_TRACK_LIST)
&& (layout_data->view_data->view_type == MP_VIEW_TYPE_PLAYLIST))
layout_data->ad->edit_in_progress = false;
+ // elm_toolbar_item_selected_set() must be called at last. After that layout_data is not valid anymore...
if (layout_data->edit_operation == MP_EDIT_ADD_TO_PLAYLIST && layout_data->ad->b_add_tracks)
{
layout_data->ad->b_add_tracks = FALSE;
if (edit_operation == MP_EDIT_ADD_TO_PLAYLIST)
{
- audio_svc_count_playlist_item(layout_data->ad->media_svc_handle, layout_data->edit_playlist_id, NULL, NULL,
- &layout_data->playlist_track_count);
+ mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL, NULL, layout_data->edit_playlist_id, &layout_data->playlist_track_count);
DEBUG_TRACE("number of tracks in playlist: %d", layout_data->playlist_track_count);
+#ifdef MP_PLAYLIST_MAX_ITEM_COUNT
if (layout_data->playlist_track_count >= MP_PLAYLIST_MAX_ITEM_COUNT)
{
if (layout_data->ad->b_add_tracks)
IF_FREE(noti_str);
return;
}
+#endif
}
layout_data->edit_idler = ecore_idler_add(_mp_edit_view_edit_idler_cb, layout_data);
MP_CHECK(layout_data);
MP_CHECK_LAYOUT_DATA(layout_data);
- evas_object_del(obj);
MP_CHECK(layout_data->ad);
layout_data->ad->popup_delete = NULL;
- if ((int)event_info == MP_POPUP_NO)
+ mp_evas_object_del(obj);
+
+ int response = (int)event_info;
+ if (response == MP_POPUP_NO)
{
return;
}
- if (layout_data->genlist) {
- int count = elm_genlist_items_count(layout_data->genlist);
- evas_object_data_set(layout_data->genlist, "item_count_before_delete", (void *)count);
- }
-
mp_edit_view_excute_edit(layout_data, MP_EDIT_DELETE);
endfunc;
ad = layout_data->ad;
- if (layout_data->ad->notify)
- evas_object_del(layout_data->ad->notify);
+ mp_evas_object_del(layout_data->ad->notify);
mp_view_layout_set_edit_mode(layout_data, false);
mp_util_unset_rename(layout_data); /* Cancel the rename mode */
ad = layout_data->ad;
- Evas_Object *popup = elm_popup_add(ad->win_main);
+ Evas_Object *popup = mp_popup_create(ad->win_main, MP_POPUP_NORMAL, NULL, layout_data, _mp_edit_view_excute_delete_cb, ad);
evas_object_data_set(popup, "layout_data", layout_data);
ad->popup_delete = popup;
if ((layout_data->category == MP_LAYOUT_TRACK_LIST)
&& (layout_data->view_data->view_type == MP_VIEW_TYPE_PLAYLIST))
{
- mp_popup_desc_set(popup, GET_STR("IDS_MUSIC_POP_REMOVE_Q"));
+ elm_object_text_set(popup, GET_STR("IDS_MUSIC_POP_REMOVE_Q"));
}
else
{
- mp_popup_desc_set(popup, GET_SYS_STR("IDS_COM_POP_DELETE_Q"));
+ elm_object_text_set(popup, GET_SYS_STR("IDS_COM_POP_DELETE_Q"));
}
- mp_popup_set_response_cb(popup, _mp_edit_view_excute_delete_cb, layout_data);
- mp_popup_button_set(popup, "button1", GET_SYS_STR("IDS_COM_SK_YES"), MP_POPUP_YES);
- mp_popup_button_set(popup, "button2", GET_SYS_STR("IDS_COM_SK_NO"), MP_POPUP_NO);
+
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_SK_YES"), MP_POPUP_YES);
+ mp_popup_button_set(popup, MP_POPUP_BTN_2, GET_SYS_STR("IDS_COM_SK_NO"), MP_POPUP_NO);
evas_object_show(popup);
elm_check_state_pointer_set(layout_data->select_all_checkbox, &layout_data->select_all_checked);
}
- //elm_genlist_item_update(item->it);
elm_genlist_item_fields_update(item->it, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
mp_util_create_selectioninfo_with_count(layout_data->ad, layout_data->checked_count);
mp_common_set_title_button_sensitivity(layout_data, layout_data->checked_count);
mp_layout_data_t *layout_data = evas_object_data_get(top_view, "layout_data");
MP_CHECK_LAYOUT_DATA(layout_data);
- if (layout_data->category == MP_LAYOUT_TRACK_LIST && layout_data->track_type == AUDIO_SVC_TRACK_BY_PLAYLIST)
+ if (layout_data->category == MP_LAYOUT_TRACK_LIST && layout_data->track_type == MP_TRACK_BY_PLAYLIST)
reorder = TRUE;
mp_view_layout_set_layout_data(top_view, MP_LAYOUT_EDIT_MODE, TRUE, MP_LAYOUT_REORDER_MODE, reorder, -1);
return NULL;
}
+
+bool
+mp_edit_view_get_selected_track_list(void *data, GList **p_list)
+{
+ struct appdata *ad = data;
+ MP_CHECK_FALSE(ad);
+
+ Evas_Object *top_view = mp_view_manager_get_last_view_layout(ad);
+ MP_CHECK_FALSE(top_view);
+
+ mp_layout_data_t *layout_data = evas_object_data_get(top_view, "layout_data");
+ MP_CHECK_FALSE(layout_data); /* not list layout */
+
+ if (layout_data->category != MP_LAYOUT_TRACK_LIST || !layout_data->edit_mode)
+ {
+ mp_debug("Not track list (edit mode)");
+ return false;
+ }
+
+ if (layout_data->checked_count > 0)
+ {
+ Elm_Object_Item *gl_item = elm_genlist_first_item_get(layout_data->genlist);
+ char *path = NULL;
+ while (gl_item) {
+ mp_genlist_item_data_t *item = elm_object_item_data_get(gl_item);
+ if (item && item->checked) {
+ mp_media_info_get_file_path(item->handle, &path);
+ if (path) {
+ *p_list = g_list_append(*p_list, path);
+ }
+ }
+
+ gl_item = elm_genlist_item_next_get(gl_item);
+ }
+ }
+
+ return true;
+}
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
-
#include "mp-library.h"
+#include "mp-ta.h"
#include "mp-player-debug.h"
#include "mp-common.h"
#include "music.h"
#include "mp-edit-view.h"
#include "mp-util.h"
#include "mp-widget.h"
+#include "mp-play-view.h"
-static void _mp_group_view_push_group_content(view_data_t * view_data, Evas_Object * content);
static void _mp_group_view_push_item_content(view_data_t * view_data, Evas_Object * content, char *title);
-static Elm_Genlist_Item_Class g_track_class_sweep = {
- .item_style = "music_player/1icon.3text",
- .func.text_get = mp_common_track_list_label_get,
- .func.content_get = mp_common_track_list_icon_get,
-};
+static Elm_Genlist_Item_Class *
+_mp_group_view_get_track_list_itc(int list_type)
+{
+ Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+ MP_CHECK_NULL(itc);
+
+ if (list_type == MP_TRACK_BY_ARTIST || list_type == MP_TRACK_BY_ALBUM) {
+ itc->item_style = "music_player/2text";
+ itc->decorate_item_style = "mode/slide4";
+ } else if (list_type == MP_TRACK_BY_FOLDER) {
+ itc->item_style = "music_player/folder_track";
+ itc->decorate_item_style = "mode/slide4.text";
+ } else {
+ itc->item_style = "music_player/1icon.3text";
+ itc->decorate_item_style = "mode/slide4.text";
+ }
-static Elm_Genlist_Item_Class g_aa_track_class_sweep = {
- .item_style = "music_player/2text",
- .func.text_get = mp_common_track_list_label_get,
- .func.content_get = mp_common_track_list_icon_get,
-};
+ itc->func.text_get = mp_common_track_list_label_get;
+ itc->func.content_get = mp_common_track_list_icon_get;
+
+ return itc;
+}
static int
_mp_group_view_get_list_type_by_group_type(int type)
int list_type = 0;
switch (type)
{
- case AUDIO_SVC_GROUP_BY_ALBUM:
- list_type = AUDIO_SVC_TRACK_BY_ALBUM;
+ case MP_GROUP_BY_ALBUM:
+ list_type = MP_TRACK_BY_ALBUM;
break;
- case AUDIO_SVC_GROUP_BY_ARTIST:
- list_type = AUDIO_SVC_TRACK_BY_ARTIST;
+ case MP_GROUP_BY_ARTIST:
+ list_type = MP_TRACK_BY_ARTIST;
break;
- case AUDIO_SVC_GROUP_BY_ARTIST_ALBUM:
- list_type = AUDIO_SVC_TRACK_BY_ARTIST_ALBUM;
+ case MP_GROUP_BY_ARTIST_ALBUM:
+ list_type = MP_TRACK_BY_ARTIST_ALBUM;
break;
- case AUDIO_SVC_GROUP_BY_GENRE:
- list_type = AUDIO_SVC_TRACK_BY_GENRE;
+ case MP_GROUP_BY_GENRE:
+ list_type = MP_TRACK_BY_GENRE;
break;
- case AUDIO_SVC_GROUP_BY_YEAR:
- list_type = AUDIO_SVC_TRACK_BY_YEAR;
+ case MP_GROUP_BY_YEAR:
+ list_type = MP_TRACK_BY_YEAR;
break;
- case AUDIO_SVC_GROUP_BY_COMPOSER:
- list_type = AUDIO_SVC_TRACK_BY_COMPOSER;
+ case MP_GROUP_BY_COMPOSER:
+ list_type = MP_TRACK_BY_COMPOSER;
+ break;
+ case MP_GROUP_BY_FOLDER:
+ list_type = MP_TRACK_BY_FOLDER;
break;
default:
}
static Evas_Object *
-_mp_group_create_detail_view_layout(view_data_t * view_data, char *name, audio_svc_group_type_e type)
+_mp_group_create_detail_view_layout(view_data_t * view_data, char *type_str, mp_group_type_e type)
{
int list_type = 0;
int category = MP_LAYOUT_TRACK_LIST;
mp_assert(layout);
list_type = _mp_group_view_get_list_type_by_group_type(type);
-
- if (AUDIO_SVC_TRACK_BY_ARTIST == list_type
- || AUDIO_SVC_TRACK_BY_ALBUM == list_type) {
- itc = &g_aa_track_class_sweep;
- } else {
- itc = &g_track_class_sweep;
- }
+ itc = _mp_group_view_get_track_list_itc(list_type);
mp_genlist_cb_t genlist_cbs;
memset(&genlist_cbs, 0, sizeof(mp_genlist_cb_t));
mp_view_layout_set_layout_data(layout,
MP_LAYOUT_CATEGORY_TYPE, category,
MP_LAYOUT_TRACK_LIST_TYPE, list_type,
- MP_LAYOUT_TYPE_STR, name,
+ MP_LAYOUT_TYPE_STR, type_str,
MP_LAYOUT_LIST_CB, &genlist_cbs, MP_LAYOUT_GENLIST_ITEMCLASS, itc, -1);
mp_view_layout_update(layout);
}
+static char *
+_get_folder_name_by_id(char *folder_id)
+{
+ mp_retvm_if(!folder_id, NULL, "File path is null...");
+ mp_media_list_h media_list = NULL;
+ int count;
+ char *folder_name = NULL;
+
+ mp_media_info_group_list_count(MP_GROUP_BY_FOLDER, NULL, NULL, &count);
+ mp_media_info_group_list_create(&media_list, MP_GROUP_BY_FOLDER, NULL, NULL, 0, count);
+
+ int i = 0;
+ for (i = 0; i < count; i++)
+ {
+ mp_media_info_h info;
+ char *id = NULL;
+ info = mp_media_info_group_list_nth_item(media_list, i);
+ mp_media_info_group_get_folder_id(info, & id);
+ if(!g_strcmp0(folder_id, id)){
+ mp_media_info_group_get_main_info (info, &folder_name);
+ folder_name = g_strdup(folder_name);
+ IF_FREE(id);
+ break;
+ }
+ IF_FREE(id);
+ }
+ mp_media_info_group_list_destroy(media_list);
+ return folder_name;
+}
+
bool
-mp_group_view_create_by_group_name(Evas_Object * obj, char *group_name, audio_svc_group_type_e type)
+mp_group_view_create_by_group_name(Evas_Object * obj, char *group_name, mp_group_type_e type)
{
startfunc;
MP_CHECK_FALSE(view_data);
MP_CHECK_VIEW_DATA(view_data);
Evas_Object *view_layout = _mp_group_create_detail_view_layout(view_data, group_name, type);
- _mp_group_view_push_item_content(view_data, view_layout, group_name);
+ if(type == MP_GROUP_BY_FOLDER)
+ {
+ char *folder_name = _get_folder_name_by_id(group_name);
+ _mp_group_view_push_item_content(view_data, view_layout, folder_name);
+ IF_FREE(folder_name);
+ }
+ else
+ _mp_group_view_push_item_content(view_data, view_layout, group_name);
endfunc;
return true;
}
+
void
mp_group_view_group_list_select_cb(void *data, Evas_Object * obj, void *event_info)
{
DEBUG_TRACE("");
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
int index = (int)data;
char *name = NULL;
- int size = 0;
+ char *folder_id = 0;
Elm_Object_Item *gli = (Elm_Object_Item *) event_info;
MP_CHECK(gli);
return;
}
- view_data_t *view_data = evas_object_data_get(layout_data->navibar, "view_data");
+ mp_media_info_h item_handle = NULL;
+ view_data_t *view_data = evas_object_data_get(layout_data->ad->naviframe, "view_data");
MP_CHECK(view_data);
MP_CHECK_VIEW_DATA(view_data);
if (layout_data->view_mode == MP_VIEW_MODE_SEARCH)
{
layout_data->group_type = gli_data->group_type;
- if (gli_data->group_type == AUDIO_SVC_GROUP_BY_ARTIST)
- ret = audio_svc_group_item_get_val(layout_data->artist_handle, index,
- AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &name, &size, -1);
- else if (gli_data->group_type == AUDIO_SVC_GROUP_BY_ALBUM)
- ret = audio_svc_group_item_get_val(layout_data->album_handle, index,
- AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &name, &size, -1);
+ if (gli_data->group_type == MP_GROUP_BY_ARTIST)
+ {
+ item_handle = mp_media_info_group_list_nth_item(layout_data->artist_handle, index);
+ ret = mp_media_info_group_get_main_info(item_handle, &name);
+ }
+ else if (gli_data->group_type == MP_GROUP_BY_ALBUM)
+ {
+ item_handle = mp_media_info_group_list_nth_item(layout_data->album_handle, index);
+ ret = mp_media_info_group_get_main_info(item_handle, &name);
+ }
else
{
ERROR_TRACE("never should be here...");
return;
}
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
+ mp_retm_if(ret != 0, "Fail to get value");
mp_retm_if(name == NULL, "Fail to get value");
}
else
{
- ret = audio_svc_group_item_get_val(layout_data->svc_handle, index, AUDIO_SVC_GROUP_ITEM_MAIN_INFO,
- &name, &size, -1);
+ item_handle = mp_media_info_group_list_nth_item(layout_data->svc_handle, index);
+ ret = mp_media_info_group_get_main_info(item_handle, &name);
+ if (view_data->view_type == MP_VIEW_TYPE_FOLDER)
+ ret = mp_media_info_group_get_folder_id(item_handle, &folder_id);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
+ mp_retm_if(ret != 0, "Fail to get value");
mp_retm_if(name == NULL, "Fail to get value");
}
-
DEBUG_TRACE("name: %s, type: %d", name, layout_data->group_type);
Evas_Object *view_layout = NULL;
- view_layout = _mp_group_create_detail_view_layout(view_data, name, layout_data->group_type);
+ if (view_data->view_type == MP_VIEW_TYPE_FOLDER && layout_data->view_mode != MP_VIEW_MODE_SEARCH)
+ {
+ view_layout = _mp_group_create_detail_view_layout(view_data, folder_id, layout_data->group_type);
+ }
+ else
+ {
+ view_layout = _mp_group_create_detail_view_layout(view_data, name, layout_data->group_type);
+ }
mp_util_reset_genlist_mode_item(layout_data->genlist);
}
static void
-_mp_group_view_push_group_content(view_data_t * view_data, Evas_Object * content)
+_mp_group_view_set_title(view_data_t * view_data)
{
char *title = NULL;
MP_CHECK(view_data);
MP_CHECK_VIEW_DATA(view_data);
- mp_view_manager_push_view_content(view_data, content, MP_VIEW_CONTENT_LIST);
-
if (view_data->view_type == MP_VIEW_TYPE_ALBUM)
- title = GET_STR("IDS_MUSIC_TAB4_ALBUMS");
+ title = "IDS_MUSIC_TAB4_ALBUMS";
else if (view_data->view_type == MP_VIEW_TYPE_ARTIST)
- title = GET_STR("IDS_MUSIC_TAB4_ARTISTS");
+ title = "IDS_MUSIC_TAB4_ARTISTS";
else if (view_data->view_type == MP_VIEW_TYPE_GENRE)
- title = GET_STR("IDS_MUSIC_TAB4_GENRES");
+ title = "IDS_MUSIC_TAB4_GENRES";
else if (view_data->view_type == MP_VIEW_TYPE_COMPOSER)
- title = GET_STR("IDS_MUSIC_TAB4_COMPOSERS");
+ title = "IDS_MUSIC_TAB4_COMPOSERS";
else if (view_data->view_type == MP_VIEW_TYPE_YEAR)
- title = GET_STR("IDS_MUSIC_TAB4_YEARS");
+ title = "IDS_MUSIC_TAB4_YEARS";
+ else if (view_data->view_type == MP_VIEW_TYPE_FOLDER)
+ title = "IDS_MUSIC_TAB4_FOLDERS";
else
DEBUG_TRACE("unexpected type: %d", view_data->view_type);
mp_view_manager_set_title_and_buttons(view_data, title, view_data);
}
+static void
+_mp_group_view_playall_button_cb(void *data, Evas_Object * obj, void *event_info)
+{
+ DEBUG_TRACE_FUNC();
+
+ struct appdata *ad = NULL;
+ mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
+
+ MP_CHECK(layout_data);
+ MP_CHECK_LAYOUT_DATA(layout_data);
+ ad = layout_data->ad;
+
+ mp_media_info_h handle = data;
+ MP_CHECK(handle);
+
+ int count = 0;
+ char *folder_id = NULL;
+ int ret = 0;
+
+ /* get playlist name */
+ ret = mp_media_info_group_get_folder_id(handle, &folder_id);
+ MP_CHECK(folder_id);
+
+ /* get playlist data by name */
+ mp_layout_data_t *layout_data_new = calloc(1, sizeof(mp_layout_data_t));
+ MP_CHECK(layout_data_new);
+ MP_SET_LAYOUT_DATA_MAGIC(layout_data_new);
+ layout_data_new->ad = ad;
+
+ layout_data_new->track_type = MP_TRACK_BY_FOLDER;
+ layout_data_new->type_str = folder_id;
+
+ mp_media_info_list_count(MP_TRACK_BY_FOLDER, folder_id, NULL, NULL, 0, &count);
+ mp_media_info_list_create(&layout_data_new->svc_handle,
+ MP_TRACK_BY_FOLDER, folder_id, NULL, NULL, 0, 0, count);
+
+ layout_data_new->item_count = count;
+
+ mp_play_view_load_by_index(layout_data_new, 0, false);
+
+ /* set the flag for update playlist view when back from playview */
+ if (ad->playing_view != NULL)
+ {
+ ad->playing_view->b_play_all = true;
+ }
+
+ if (layout_data_new->svc_handle)
+ {
+ mp_media_info_list_destroy(layout_data_new->svc_handle);
+ }
+
+ free(layout_data_new);
+
+ endfunc;
+}
+
+
Evas_Object *
mp_group_view_icon_get(void *data, Evas_Object * obj, const char *part)
{
mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
MP_CHECK_NULL(item);
- AudioHandleType *svc_item = (AudioHandleType *) (item->handle);
+ mp_media_info_h svc_item = (item->handle);
mp_retv_if(svc_item == NULL, NULL);
mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
MP_CHECK_LAYOUT_DATA(layout_data);
char *thumb_name = NULL;
- int size;
- audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_THUMBNAIL_PATH, &thumb_name, &size, -1);
+ mp_media_info_group_get_thumbnail_path(svc_item, &thumb_name);
if (!strcmp(part, "elm.icon"))
{
icon = mp_util_create_thumb_icon(obj, thumb_name, MP_LIST_ICON_SIZE, MP_LIST_ICON_SIZE);
}
+ Evas_Object *button;
+ if (!strcmp(part, "elm.slide.swallow.1"))
+ {
+ button = elm_button_add(obj);
+ elm_object_style_set(button, "sweep/multiline");
+ elm_object_text_set(button, GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"));
+ mp_language_mgr_register_object(button, OBJ_TYPE_ELM_OBJECT, NULL, "IDS_MUSIC_BODY_ADD_TO_PLAYLIST");
+ evas_object_smart_callback_add(button, "clicked", mp_menu_add_to_playlist_cb, item->handle);
+ evas_object_data_set(button, "layout_data", layout_data);
+ return button;
+ }
+ else if (!strcmp(part, "elm.slide.swallow.2"))
+ {
+ button = elm_button_add(obj);
+ elm_object_style_set(button, "sweep/multiline");
+ elm_object_text_set(button, GET_STR("Play all"));
+ mp_language_mgr_register_object(button, OBJ_TYPE_ELM_OBJECT, NULL, "Play all");
+ evas_object_smart_callback_add(button, "clicked", _mp_group_view_playall_button_cb, item->handle);
+ evas_object_data_set(button, "layout_data", layout_data);
+ return button;
+ }
+ else if (!g_strcmp0(part, "elm.icon.storage"))
+ {
+ char *folder = NULL;
+ icon = NULL;
+ int ret = mp_media_info_group_get_sub_info(svc_item, &folder);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
+ if (folder) {
+ const char *icon_path = NULL;
+ if (g_strstr_len(folder, strlen(MP_PHONE_ROOT_PATH), MP_PHONE_ROOT_PATH))
+ icon_path = MP_ICON_STORAGE_PHONE;
+ else if (g_strstr_len(folder, strlen(MP_MMC_ROOT_PATH), MP_MMC_ROOT_PATH))
+ icon_path = MP_ICON_STORAGE_MMC;
+ else
+ icon_path = MP_ICON_STORAGE_EXTERNAL;
+
+ icon = elm_icon_add(obj);
+ MP_CHECK_NULL(icon);
+ elm_icon_file_set(icon, icon_path, NULL);
+ evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ return icon;
+ }
+ }
+
Evas_Object *check = NULL;
if (elm_genlist_decorate_mode_get(obj) || layout_data->ad->b_add_tracks)
mp_group_view_album_list_label_get(void *data, Evas_Object * obj, const char *part)
{
char *name = NULL;
- int size = 0;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
MP_CHECK_NULL(item);
- AudioHandleType *svc_item = (AudioHandleType *) (item->handle);
+ mp_media_info_h svc_item = (item->handle);
mp_retv_if(svc_item == NULL, NULL);
- if (!strcmp(part, "elm.text.1"))
+ if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.slide.text.1"))
{
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ ret = mp_media_info_group_get_main_info(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
if (!name || !strlen(name))
name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
- return elm_entry_utf8_to_markup(name);
+
+ if (!strcmp(part, "elm.text.1"))
+ return elm_entry_utf8_to_markup(name);
+ else
+ return g_strdup(name);
}
else if (!strcmp(part, "elm.text.2"))
{
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_SUB_INFO, &name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ ret = mp_media_info_group_get_sub_info(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
if (!name || !strlen(name))
name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
- return strdup(name);
+ return g_strdup(name);
}
else if (!strcmp(part, "elm.text.3"))
{
int count = -1;
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ ret = mp_media_info_group_get_main_info(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
+
+ ret = mp_media_info_list_count(MP_TRACK_BY_ALBUM, name, NULL, NULL, 0, &count);
+ mp_retvm_if(ret != 0, NULL, "Fail to get count");
+ mp_retvm_if(count < 0, NULL, "Fail to get count");
+ return g_strdup_printf("(%d)", count);
+ }
- ret = audio_svc_count_list_item(item->media_svc_handle, AUDIO_SVC_TRACK_BY_ALBUM, name, "", "", "", &count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, NULL, "Fail to get count");
+ DEBUG_TRACE("Unusing part: %s", part);
+ return NULL;
+}
+
+static char *
+_mp_group_view_folder_list_label_get(void *data, Evas_Object * obj, const char *part)
+{
+ char *name = NULL;
+ int ret = 0;
+ mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
+ MP_CHECK_NULL(item);
+ mp_media_info_h svc_item = (item->handle);
+ mp_retv_if(svc_item == NULL, NULL);
+
+ if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.slide.text.1"))
+ {
+ ret = mp_media_info_group_get_main_info(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
+ if (!name || !strlen(name))
+ name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
+ return strdup(name);
+ }
+ else if (!strcmp(part, "elm.text.2"))
+ {
+ ret = mp_media_info_group_get_sub_info(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
+ if (!name || !strlen(name))
+ name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
+ return mp_util_shorten_path(name);
+ }
+ else if (!strcmp(part, "elm.text.3"))
+ {
+ int count = -1;
+ ret = mp_media_info_group_get_folder_id(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
+ ret = mp_media_info_list_count(MP_TRACK_BY_FOLDER, name, NULL, NULL, 0, &count);
+ mp_retvm_if(ret != 0, NULL, "Fail to get count");
mp_retvm_if(count < 0, NULL, "Fail to get count");
return g_strdup_printf("(%d)", count);
}
mp_group_view_list_label_get(void *data, Evas_Object * obj, const char *part)
{
char *name = NULL;
- int size = 0;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
MP_CHECK_NULL(item);
- AudioHandleType *svc_item = (AudioHandleType *) (item->handle);
+ mp_media_info_h svc_item = (item->handle);
mp_retv_if(svc_item == NULL, NULL);
mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
MP_CHECK_NULL(layout_data);
- if (!strcmp(part, "elm.text.1"))
+ if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.slide.text.1"))
{
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ ret = mp_media_info_group_get_main_info(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
if (!name || !strlen(name))
name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
if(layout_data->filter_str)
bool res = false;
markup_name = (char *)mp_util_search_markup_keyword(name, layout_data->filter_str, &res);
if(res)
- return strdup(markup_name);
- } else
+ return g_strdup(markup_name);
+ } else if (!strcmp(part, "elm.text.1"))
return elm_entry_utf8_to_markup(name);
+ else
+ return g_strdup(name);
}
else if (!strcmp(part, "elm.text.2"))
{
int count = -1;
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ ret = mp_media_info_group_get_main_info(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
int list_type = _mp_group_view_get_list_type_by_group_type(item->group_type);
DEBUG_TRACE("name: %s, list_type: %d", name, list_type);
- ret = audio_svc_count_list_item(item->media_svc_handle, list_type, name, "", "", "", &count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, NULL, "Fail to get count");
+ ret = mp_media_info_list_count(list_type, name, NULL, NULL, 0, &count);
+ mp_retvm_if(ret != 0, NULL, "Fail to get count");
mp_retvm_if(count < 0, NULL, "Fail to get count");
return g_strdup_printf("(%d)", count);
}
return NULL;
}
-static Elm_Genlist_Item_Class g_group_class_sweep = {
- .item_style = "music_player/1icon.2text",
- .func.text_get = mp_group_view_list_label_get,
- .func.content_get = mp_group_view_icon_get,
-};
-
-static Elm_Genlist_Item_Class g_album_class_sweep = {
- .item_style = "music_player/1icon.3text",
- .func.text_get = mp_group_view_album_list_label_get,
- .func.content_get = mp_group_view_icon_get,
-};
-
static mp_genlist_cb_t g_group_list_cbs = {
.selected_cb = mp_group_view_group_list_select_cb,
};
+static Elm_Genlist_Item_Class*
+_mp_group_view_get_group_list_itec(mp_view_type_t view_type)
+{
+ Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+ MP_CHECK_NULL(itc);
+
+ switch (view_type) {
+ case MP_VIEW_TYPE_ALBUM:
+ itc->item_style = "music_player/1icon.3text";
+ itc->decorate_item_style = "mode/slide";
+ itc->func.text_get = mp_group_view_album_list_label_get;
+ itc->func.content_get = mp_group_view_icon_get;
+ break;
+
+ case MP_VIEW_TYPE_ARTIST:
+ case MP_VIEW_TYPE_GENRE:
+ case MP_VIEW_TYPE_COMPOSER:
+ case MP_VIEW_TYPE_YEAR:
+ itc->item_style = "music_player/1icon.2text";
+ itc->decorate_item_style = "mode/slide";
+ itc->func.text_get = mp_group_view_list_label_get;
+ itc->func.content_get = mp_group_view_icon_get;
+ break;
+
+ case MP_VIEW_TYPE_FOLDER:
+ itc->item_style = "music_player/folder";
+ itc->decorate_item_style = "mode/slide2";
+ itc->func.text_get = _mp_group_view_folder_list_label_get;
+ itc->func.content_get = mp_group_view_icon_get;
+ break;
+
+ default:
+ elm_genlist_item_class_free(itc);
+ itc = NULL;
+ }
+
+ return itc;
+}
+
+
Evas_Object *
mp_group_view_create(struct appdata *ad, mp_view_type_t view_type)
{
Elm_Genlist_Item_Class *itc;
- Evas_Object *navibar = mp_widget_navigation_new(ad->ctrl_bar, ad);
-
- view_data_t *view_data = calloc(sizeof(view_data_t), 1);
- MP_SET_VIEW_DATA_MAGIC(view_data);
- view_data->ad = ad;
- view_data->navibar = navibar;
+ view_data_t *view_data = evas_object_data_get(ad->naviframe, "view_data");
view_data->view_type = view_type;
+ Evas_Object *view_layout = mp_view_layout_create(ad->tabbar, view_data, MP_VIEW_MODE_DEFAULT);
- evas_object_data_set(navibar, "view_data", view_data);
- Evas_Object *view_layout = mp_view_layout_create(navibar, view_data, MP_VIEW_MODE_DEFAULT);
+ mp_layout_data_t *layout_data = NULL;
+ layout_data = evas_object_data_get(view_layout, "layout_data");
+ MP_CHECK_NULL(layout_data);
+ evas_object_data_set(ad->controlbar_layout, "layout_data", layout_data);
if (view_type == MP_VIEW_TYPE_ALBUM)
{
DEBUG_TRACE("album view");
- list_type = AUDIO_SVC_GROUP_BY_ALBUM;
-
- itc = &g_album_class_sweep;
+ list_type = MP_GROUP_BY_ALBUM;
}
else if (view_type == MP_VIEW_TYPE_ARTIST)
{
DEBUG_TRACE("artist view");
- list_type = AUDIO_SVC_GROUP_BY_ARTIST;
- itc = &g_group_class_sweep;
+ list_type = MP_GROUP_BY_ARTIST;
}
else if (view_type == MP_VIEW_TYPE_GENRE)
{
DEBUG_TRACE("genre view");
- list_type = AUDIO_SVC_GROUP_BY_GENRE;
- itc = &g_group_class_sweep;
+ list_type = MP_GROUP_BY_GENRE;
}
else if (view_type == MP_VIEW_TYPE_COMPOSER)
{
DEBUG_TRACE("composer view");
- list_type = AUDIO_SVC_GROUP_BY_COMPOSER;
- itc = &g_group_class_sweep;
+ list_type = MP_GROUP_BY_COMPOSER;
}
else if (view_type == MP_VIEW_TYPE_YEAR)
{
DEBUG_TRACE("year view");
- list_type = AUDIO_SVC_GROUP_BY_YEAR;
- itc = &g_group_class_sweep;
+ list_type = MP_GROUP_BY_YEAR;
+ }
+ else if (view_type == MP_VIEW_TYPE_FOLDER)
+ {
+ DEBUG_TRACE("folder view");
+ list_type = MP_GROUP_BY_FOLDER;
}
else
{
ERROR_TRACE("unexpected type: %d", view_type);
- evas_object_del(navibar);
return NULL;
}
+ itc = _mp_group_view_get_group_list_itec(view_type);
+
mp_view_layout_set_layout_data(view_layout,
MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_GROUP_LIST,
MP_LAYOUT_GROUP_LIST_TYPE, list_type,
MP_LAYOUT_LIST_CB, &g_group_list_cbs, MP_LAYOUT_GENLIST_ITEMCLASS, itc, -1);
- _mp_group_view_push_group_content(view_data, view_layout);
+ _mp_group_view_set_title(view_data);
- return navibar;
+ return view_layout;
}
void
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include "mp-library.h"
+#include "mp-ta.h"
#include "mp-setting-ctrl.h"
#include "mp-player-debug.h"
#include "mp-common.h"
static void _mp_library_init(void *data);
static Evas_Object *_mp_library_create_layout_main(Evas_Object * parent);
-static Evas_Object *_mp_library_create_control_bar(struct appdata *ad);
+static Evas_Object *_mp_library_create_tabbar(struct appdata *ad);
static void _mp_library_controlbar_item_append(struct appdata *ad, mp_setting_menu_t * menu_state);
static bool _mp_library_check_request_item(struct appdata *ad);
Evas_Object *layout;
mp_retv_if(parent == NULL, NULL);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_layout_add", 0);
layout = elm_layout_add(parent);
+ MP_TA_ACUM_ITEM_END(" elm_layout_add", 0);
mp_retvm_if(layout == NULL, NULL, "Failed elm_layout_add.\n");
- elm_layout_theme_set(layout, "layout", "application", "default");
+ MP_TA_ACUM_ITEM_BEGIN(" elm_layout_theme_set", 0);
+ const char *profile = elm_config_profile_get();
+ mp_debug("elm_profile = %s", profile);
+ if (!g_strcmp0(profile, "desktop"))
+ elm_layout_theme_set(layout, "layout", "application", "noindicator");
+ else
+ elm_layout_theme_set(layout, "layout", "application", "default");
+ MP_TA_ACUM_ITEM_END(" elm_layout_theme_set", 0);
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(parent, layout);
}
static Evas_Object *
-_mp_library_create_control_bar(struct appdata *ad)
+_mp_library_create_tabbar(struct appdata *ad)
{
Evas_Object *obj;
- obj = elm_toolbar_add(ad->controlbar_layout);
+ /* create controlbar */
+ MP_TA_ACUM_ITEM_BEGIN(" elm_toolbar_add()", 0);
+
+ obj = elm_toolbar_add(ad->naviframe);
elm_toolbar_shrink_mode_set(obj, ELM_TOOLBAR_SHRINK_EXPAND);
- mp_retvm_if(obj == NULL, NULL, "Fail to create control bar");
- elm_object_style_set(obj, "music/tabbar");
elm_toolbar_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_ALWAYS);
+ elm_object_style_set(obj, "tabbar");
+ MP_TA_ACUM_ITEM_END(" elm_toolbar_add()", 0);
+ mp_retvm_if(obj == NULL, NULL, "Fail to create control bar");
+
+ MP_TA_ACUM_ITEM_BEGIN(" mp_setting_menu_get_state", 0);
mp_setting_menu_t menu_state;
mp_setting_menu_get_state(&menu_state);
+ MP_TA_ACUM_ITEM_END(" mp_setting_menu_get_state", 0);
- ad->ctrl_bar = obj;
+ ad->tabbar = obj;
+ MP_TA_ACUM_ITEM_BEGIN(" _mp_library_controlbar_item_append", 0);
_mp_library_controlbar_item_append(ad, &menu_state);
+ MP_TA_ACUM_ITEM_END(" _mp_library_controlbar_item_append", 0);
evas_object_show(obj);
- elm_object_part_content_set(ad->controlbar_layout, "elm.swallow.controlbar", obj);
-
return obj;
}
+// update menu when menu changed while bgm.
static void
_mp_library_menu_changed(mp_setting_menu_t * menu_state, void *data)
{
struct appdata *ad = (struct appdata *)data;
- Evas_Object *obj;
- obj = ad->ctrl_bar;
-
MP_CHECK(ad->library->ctltab_songs);
- MP_CHECK(obj);
+ MP_CHECK(ad->tabbar);
DEBUG_TRACE("loadtype=%d", ad->loadtype);
if (ad->loadtype == LOAD_TRACK)
return;
}
- ad->music_setting_change_flag = true;
+ //set data from music setting
ad->library->albums = menu_state->albums;
ad->library->artists = menu_state->artists;
ad->library->genres = menu_state->genres;
ad->library->composers = menu_state->composers;
ad->library->years = menu_state->years;
+ ad->library->folders = menu_state->folders;
+
+ if (ad->setting_ug) {
+ mp_debug("setting ug on playing view.. reserve menu change");
+ ad->music_setting_change_flag = true;
+ return;
+ }
mp_util_set_library_controlbar_items(ad);
}
Evas_Object *obj;
- obj = ad->ctrl_bar;
+ obj = ad->tabbar;
+ ad->library->first_append = true;
+ MP_TA_ACUM_ITEM_BEGIN(" CONTROLBAR_SYSTEM_ICON_SONGS", 0);
ad->library->ctltab_songs =
elm_toolbar_item_append(obj, MP_CTRBAR_ICON_SONGS, GET_STR(STR_MP_ALL_TRACKS), mp_library_view_change_cb, ad);
+ mp_language_mgr_register_object_item(ad->library->ctltab_songs, STR_MP_ALL_TRACKS);
+ MP_TA_ACUM_ITEM_END(" CONTROLBAR_SYSTEM_ICON_SONGS", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_toolbar_item_append", 0);
+ ad->library->first_append = false;
ad->library->ctltab_plist =
elm_toolbar_item_append(obj, MP_CTRBAR_ICON_PLAYLIST, GET_STR(STR_MP_PLAYLISTS), mp_library_view_change_cb, ad);
+ mp_language_mgr_register_object_item( ad->library->ctltab_plist,STR_MP_PLAYLISTS);
+ MP_TA_ACUM_ITEM_END(" elm_toolbar_item_append", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_toolbar_item_append", 0);
if (menu_state->albums)
+ {
ad->library->ctltab_album =
elm_toolbar_item_append(obj, MP_CTRBAR_ICON_ALBUM, GET_STR(STR_MP_ALBUMS), mp_library_view_change_cb, ad);
-
+ mp_language_mgr_register_object_item( ad->library->ctltab_album, STR_MP_ALBUMS);
+ }
+ MP_TA_ACUM_ITEM_END(" elm_toolbar_item_append", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_toolbar_item_append", 0);
if (menu_state->artists)
+ {
ad->library->ctltab_artist =
elm_toolbar_item_append(obj, MP_CTRBAR_ICON_ARTIST, GET_STR(STR_MP_ARTISTS), mp_library_view_change_cb, ad);
-
+ mp_language_mgr_register_object_item( ad->library->ctltab_artist, STR_MP_ARTISTS);
+ }
+ MP_TA_ACUM_ITEM_END(" elm_toolbar_item_append", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_toolbar_item_append", 0);
if (menu_state->genres)
+ {
ad->library->ctltab_genres =
elm_toolbar_item_append(obj, MP_CTRBAR_ICON_GENRE, GET_STR(STR_MP_GENRES), mp_library_view_change_cb, ad);
-
+ mp_language_mgr_register_object_item( ad->library->ctltab_genres, STR_MP_GENRES);
+ }
+ MP_TA_ACUM_ITEM_END(" elm_toolbar_item_append", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_toolbar_item_append", 0);
if (menu_state->composers)
+ {
ad->library->ctltab_composer =
elm_toolbar_item_append(obj, MP_CTRBAR_ICON_COMPOSER, GET_STR(STR_MP_COMPOSERS), mp_library_view_change_cb, ad);
-
+ mp_language_mgr_register_object_item( ad->library->ctltab_composer,STR_MP_COMPOSERS);
+ }
+ MP_TA_ACUM_ITEM_END(" elm_toolbar_item_append", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_toolbar_item_append", 0);
if (menu_state->years)
+ {
ad->library->ctltab_year =
elm_toolbar_item_append(obj, MP_CTRBAR_ICON_YEAR, GET_STR(STR_MP_YEARS), mp_library_view_change_cb, ad);
+ mp_language_mgr_register_object_item( ad->library->ctltab_year, STR_MP_YEARS);
+ }
+ MP_TA_ACUM_ITEM_END(" elm_toolbar_item_append", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" elm_toolbar_item_append", 0);
+ if (menu_state->folders)
+ {
+ ad->library->ctltab_folder =
+ elm_toolbar_item_append(obj, MP_CTRBAR_ICON_FOLDER, GET_SYS_STR(STR_MP_FOLDERS), mp_library_view_change_cb, ad);
+ mp_language_mgr_register_object_item(ad->library->ctltab_folder, STR_MP_FOLDERS);
+ }
+ MP_TA_ACUM_ITEM_END(" elm_toolbar_item_append", 0);
mp_setting_menu_set_callback(_mp_library_menu_changed, ad);
}
+/**
+ * load view use for _mp_library_view_change_cb
+ *
+ * @param void *data, Evas_Object* navi_bar
+ * @return FALSE or TRUE if it success create
+ * @author aramie.kim@samsung.com
+ */
+
static bool
_mp_library_load_request_view(void *data, Evas_Object * navi_bar)
{
mp_debug("group name = %s", ad->request_group_name);
mp_group_view_create_by_group_name(navi_bar, ad->request_group_name, ad->request_group_type);
IF_FREE(ad->request_group_name);
+ ad->update_default_view = TRUE;
}
else if (ad->request_play_id > -1)
{
mp_debug("play list id = %d", ad->request_play_id);
mp_playlist_view_create_by_id(navi_bar, ad->request_play_id);
ad->request_play_id = -1;
+ ad->update_default_view = TRUE;
}
else
{
return true;
}
+static Elm_Object_Item *
+_mp_library_get_request_control_item(struct appdata *ad)
+{
+ Elm_Object_Item *select_request_item = NULL;
+
+ if (ad->loadtype == LOAD_DEFAULT)
+ {
+ select_request_item = ad->library->ctltab_songs;
+ }
+ else if (ad->loadtype == LOAD_PLAYLIST)
+ {
+ select_request_item = ad->library->ctltab_plist;
+ }
+ else if (ad->loadtype == LOAD_GROUP)
+ {
+ mp_setting_menu_t menu_state;
+ mp_setting_menu_get_state(&menu_state);
+
+ if (ad->request_group_type == MP_GROUP_BY_ARTIST)
+ {
+ if (menu_state.artists)
+ select_request_item = ad->library->ctltab_artist;
+ }
+ else if (ad->request_group_type == MP_GROUP_BY_ALBUM)
+ {
+ if (menu_state.albums)
+ select_request_item = ad->library->ctltab_album;
+ }
+ else if (ad->request_group_type == MP_GROUP_BY_GENRE)
+ {
+ if (menu_state.genres)
+ select_request_item = ad->library->ctltab_genres;
+ }
+ else if (ad->request_group_type == MP_GROUP_BY_COMPOSER)
+ {
+ if (menu_state.composers)
+ select_request_item = ad->library->ctltab_composer;
+ }
+ else if (ad->request_group_type == MP_GROUP_BY_YEAR)
+ {
+ if (menu_state.years)
+ select_request_item = ad->library->ctltab_year;
+ }
+ else if (ad->request_group_type == MP_GROUP_BY_FOLDER)
+ {
+ if (menu_state.folders)
+ select_request_item = ad->library->ctltab_folder;
+ }
+ else
+ {
+ mp_error("can not support that value");
+ }
+ }
+
+ return select_request_item;
+}
+
+
static void
_mp_library_show_selected_view(struct appdata *ad, const char *label)
{
MP_CHECK(ad);
- MP_CHECK(ad->library);
MP_CHECK(label);
- Evas_Object *navi_bar = NULL;
+ Evas_Object *content = NULL;
view_data_t *view_data = NULL;
+ mp_layout_data_t *layout_data = NULL;
- DEBUG_TRACE("label: %s", label);
+ DEBUG_TRACE("selected view: %s", label);
- if (ad->notify != NULL)
- {
- evas_object_del(ad->notify);
- }
- if (ad->notify_layout != NULL)
- {
- evas_object_del(ad->notify_layout);
- }
+ mp_evas_object_del(ad->notify);
+ mp_evas_object_del(ad->notify_layout);
- ad->notify = NULL;
- ad->notify_layout = NULL;
+ content = elm_object_part_content_unset(ad->controlbar_layout, "elm.swallow.content");
- if (ad->library->cur_view)
+ if (content)
{
+ DEBUG_TRACE("destory previous view");
mp_view_manager_unswallow_info_ug_layout(ad);
- evas_object_del(ad->library->cur_view);
- ad->library->cur_view = NULL;
- mp_view_manager_clear(ad);
+ evas_object_del(content);
+ content = NULL;
}
if (!strcmp(label, GET_STR(STR_MP_ALL_TRACKS)))
{
- navi_bar = mp_track_view_create(ad);
- mp_track_view_update_title_button(navi_bar);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_track_view_create", 0);
+ content = mp_track_view_create(ad);
+ MP_TA_ACUM_ITEM_END(" mp_track_view_create", 0);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_track_view_update_title_button", 0);
+ mp_track_view_update_title_button(ad->naviframe);
+ MP_TA_ACUM_ITEM_END(" mp_track_view_update_title_button", 0);
}
else if (!strcmp(label, GET_STR(STR_MP_ALBUMS)))
{
- navi_bar = mp_group_view_create(ad, MP_VIEW_TYPE_ALBUM);
+ content = mp_group_view_create(ad, MP_VIEW_TYPE_ALBUM);
}
else if (!strcmp(label, GET_STR(STR_MP_ARTISTS)))
{
- navi_bar = mp_group_view_create(ad, MP_VIEW_TYPE_ARTIST);
+ content = mp_group_view_create(ad, MP_VIEW_TYPE_ARTIST);
}
else if (!strcmp(label, GET_STR(STR_MP_GENRES)))
{
- navi_bar = mp_group_view_create(ad, MP_VIEW_TYPE_GENRE);
+ content = mp_group_view_create(ad, MP_VIEW_TYPE_GENRE);
}
else if (!strcmp(label, GET_STR(STR_MP_YEARS)))
{
- navi_bar = mp_group_view_create(ad, MP_VIEW_TYPE_YEAR);
+ content = mp_group_view_create(ad, MP_VIEW_TYPE_YEAR);
}
else if (!strcmp(label, GET_STR(STR_MP_COMPOSERS)))
{
- navi_bar = mp_group_view_create(ad, MP_VIEW_TYPE_COMPOSER);
+ content = mp_group_view_create(ad, MP_VIEW_TYPE_COMPOSER);
}
+ else if (!strcmp(label, GET_SYS_STR(STR_MP_FOLDERS)))
+ {
+ content = mp_group_view_create(ad, MP_VIEW_TYPE_FOLDER);
+ }
+
else if (!strcmp(label, GET_STR(STR_MP_PLAYLISTS)))
{
- navi_bar = mp_playlist_view_create(ad, MP_VIEW_TYPE_PLAYLIST);
+ content = mp_playlist_view_create(ad, MP_VIEW_TYPE_PLAYLIST);
}
else
{
return;
}
+ MP_CHECK(content);
+
+ layout_data = evas_object_data_get(content, "layout_data");
+ MP_CHECK(layout_data);
+
if (strcmp(label, GET_STR(STR_MP_ALL_TRACKS)))
{
ad->b_add_tracks = FALSE;
}
- elm_object_part_content_set(ad->controlbar_layout, "elm.swallow.content", navi_bar);
- ad->library->cur_view = navi_bar;
+ elm_object_part_content_set(ad->controlbar_layout, "elm.swallow.content", content);
+ mp_view_layout_update(content);
- if (!_mp_library_load_request_view(ad, navi_bar))
+ if (!_mp_library_load_request_view(ad, ad->naviframe))
{
DEBUG_TRACE("Update default layout...");
- view_data = (view_data_t *) evas_object_data_get(ad->library->cur_view, "view_data");
+ view_data = (view_data_t *) evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK(view_data);
MP_CHECK_VIEW_DATA(view_data);
- Evas_Object *view_layout = mp_view_manager_get_last_view_layout(ad);
if (view_data->view_type == MP_VIEW_TYPE_PLAYLIST)
{
- mp_layout_data_t *layout_data = evas_object_data_get(view_layout, "layout_data");
- if (layout_data)
- mp_playlist_view_update_navibutton(layout_data);
+ mp_playlist_view_update_navibutton(layout_data);
}
-
- mp_view_layout_update(view_layout);
}
- evas_object_show(navi_bar);
+ evas_object_show(content);
}
-void
-mp_library_view_change_cb(void *data, Evas_Object * obj, void *event_info)
+void mp_library_view_change_cb(void *data, Evas_Object * obj, void *event_info)
{
struct appdata *ad = (struct appdata *)data;
Elm_Object_Item *it;
+ view_data_t *view_data = mp_util_get_view_data(ad);
MP_CHECK(ad);
DEBUG_TRACE_FUNC();
+ if (ad->library->first_append && ad->launch_type == MP_LAUNCH_ADD_TO_HOME) {
+ WARN_TRACE("add to home.. first view change");
+ ad->library->first_append = false;
+ return;
+ }
+
+ if(mp_view_manager_count_view_content(view_data) > 1)
+ {
+ DEBUG_TRACE("pop to first view");
+ mp_view_manager_pop_view_content(view_data, true, true);
+ }
it = elm_toolbar_selected_item_get(obj);
mp_retm_if(it == NULL, "tab item is NULL");
const char *label = elm_object_item_text_get(it);
}
-static Elm_Object_Item *
-_mp_library_get_request_control_item(struct appdata *ad)
-{
- Elm_Object_Item *select_request_item = NULL;
-
- if (ad->loadtype == LOAD_DEFAULT)
- {
- select_request_item = ad->library->ctltab_songs;
- }
- else if (ad->loadtype == LOAD_PLAYLIST)
- {
- select_request_item = ad->library->ctltab_plist;
- }
- else if (ad->loadtype == LOAD_GROUP)
- {
- mp_setting_menu_t menu_state;
- mp_setting_menu_get_state(&menu_state);
-
- if (ad->request_group_type == AUDIO_SVC_GROUP_BY_ARTIST)
- {
- if (menu_state.artists)
- select_request_item = ad->library->ctltab_artist;
- }
- else if (ad->request_group_type == AUDIO_SVC_GROUP_BY_ALBUM)
- {
- if (menu_state.albums)
- select_request_item = ad->library->ctltab_album;
- }
- else if (ad->request_group_type == AUDIO_SVC_GROUP_BY_GENRE)
- {
- if (menu_state.genres)
- select_request_item = ad->library->ctltab_genres;
- }
- else if (ad->request_group_type == AUDIO_SVC_GROUP_BY_COMPOSER)
- {
- if (menu_state.composers)
- select_request_item = ad->library->ctltab_composer;
- }
- else if (ad->request_group_type == AUDIO_SVC_GROUP_BY_YEAR)
- {
- if (menu_state.years)
- select_request_item = ad->library->ctltab_year;
- }
- else
- {
- mp_error("can not support that value");
- }
- }
-
- return select_request_item;
-}
-
static bool
_mp_library_check_request_item(struct appdata *ad)
{
char *popup_text = NULL;
int count = -1;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
MP_CHECK_FALSE(ad);
if (!ad->request_group_name && ad->request_play_id > -1)
{
- char plst_name[AUDIO_SVC_PLAYLIST_NAME_SIZE] = "";
- ret = audio_svc_get_playlist_name_by_playlist_id(ad->media_svc_handle, ad->request_play_id, plst_name,
- AUDIO_SVC_PLAYLIST_NAME_SIZE);
+ int i = 0;
+ mp_media_list_h list = NULL;
+
+ ret = mp_media_info_group_list_count(MP_GROUP_BY_PLAYLIST, NULL, NULL, &count);
+ MP_CHECK_FALSE(ret == 0);
+
+ ret = mp_media_info_group_list_create(&list, MP_GROUP_BY_PLAYLIST, NULL, NULL, 0, count);
+ MP_CHECK_FALSE(ret == 0);
+
+ for(i=0; i<count; i++)
+ {
+ int playlist_id;
+ mp_media_info_h media = NULL;
+ media = mp_media_info_group_list_nth_item(list, i);
+ mp_media_info_group_get_playlist_id(media, &playlist_id);
+ if(playlist_id == ad->request_play_id)
+ {
+ break;
+ }
+ }
- if (!(ret == AUDIO_SVC_ERROR_NONE && g_strcmp0(plst_name, "")))
+ if (i == count)
{
IF_FREE(ad->request_group_name);
ad->request_play_id = -1;
mp_error("removed play list");
- popup_text = g_strdup_printf(GET_STR("IDS_MUSIC_BODY_NO_PLAYLISTS"));
+ popup_text = g_strdup(GET_STR("IDS_MUSIC_BODY_NO_PLAYLISTS"));
}
}
else if (ad->request_group_name)
{
- audio_svc_track_type_e list_type = AUDIO_SVC_TRACK_ALL;
+ mp_track_type_e list_type = MP_TRACK_ALL;
switch (ad->request_group_type)
{
- case AUDIO_SVC_GROUP_BY_ALBUM:
+ case MP_GROUP_BY_ALBUM:
DEBUG_TRACE("create album detail view");
- list_type = AUDIO_SVC_TRACK_BY_ALBUM;
+ list_type = MP_TRACK_BY_ALBUM;
break;
- case AUDIO_SVC_GROUP_BY_ARTIST:
+ case MP_GROUP_BY_ARTIST:
DEBUG_TRACE("create artist detail view");
- list_type = AUDIO_SVC_TRACK_BY_ARTIST;
+ list_type = MP_TRACK_BY_ARTIST;
break;
- case AUDIO_SVC_GROUP_BY_GENRE:
+ case MP_GROUP_BY_GENRE:
DEBUG_TRACE("create genre detail view");
- list_type = AUDIO_SVC_TRACK_BY_GENRE;
+ list_type = MP_TRACK_BY_GENRE;
break;
- case AUDIO_SVC_GROUP_BY_YEAR:
+ case MP_GROUP_BY_YEAR:
DEBUG_TRACE("create year detail view");
- list_type = AUDIO_SVC_TRACK_BY_YEAR;
+ list_type = MP_TRACK_BY_YEAR;
break;
- case AUDIO_SVC_GROUP_BY_COMPOSER:
+ case MP_GROUP_BY_COMPOSER:
DEBUG_TRACE("create composer detail view");
- list_type = AUDIO_SVC_TRACK_BY_COMPOSER;
+ list_type = MP_TRACK_BY_COMPOSER;
+ break;
+ case MP_GROUP_BY_FOLDER:
+ DEBUG_TRACE("create folder detail view");
+ list_type = MP_TRACK_BY_FOLDER;
break;
default:
break;
}
- ret = audio_svc_count_list_item(ad->media_svc_handle, list_type, ad->request_group_name, NULL, NULL, NULL, &count);
-
+ ret = mp_media_info_list_count(list_type, ad->request_group_name, NULL, NULL, 0, &count);
mp_debug("group cout %d", count);
- if (!(ret == AUDIO_SVC_ERROR_NONE && count > 0))
+ if (!(ret == 0 && count > 0))
{
mp_error("removed group");
char *fmt = GET_STR("IDS_MUSIC_POP_PS_REMOVED");
{
mp_error("removed file");
IF_FREE(ad->request_playing_path);
- popup_text = g_strdup(GET_SYS_STR("IDS_COM_POP_FILE_NOT_EXIST"));
+ popup_text = g_strdup_printf(GET_SYS_STR("IDS_COM_POP_FILE_NOT_EXIST"));
}
}
if (popup_text)
{
mp_widget_text_popup(ad, popup_text);
- IF_FREE(popup_text);
+ free(popup_text);
return false;
}
{
MP_CHECK_NULL(ad);
char *label = NULL;
- if (ad->request_group_type == AUDIO_SVC_GROUP_BY_ARTIST)
+ if (ad->request_group_type == MP_GROUP_BY_ARTIST)
{
label = GET_STR(STR_MP_ARTISTS);
}
- else if (ad->request_group_type == AUDIO_SVC_GROUP_BY_ALBUM)
+ else if (ad->request_group_type == MP_GROUP_BY_ALBUM)
{
label = GET_STR(STR_MP_ALBUMS);
}
- else if (ad->request_group_type == AUDIO_SVC_GROUP_BY_GENRE)
+ else if (ad->request_group_type == MP_GROUP_BY_GENRE)
{
label = GET_STR(STR_MP_GENRES);
}
- else if (ad->request_group_type == AUDIO_SVC_GROUP_BY_COMPOSER)
+ else if (ad->request_group_type == MP_GROUP_BY_COMPOSER)
{
label = GET_STR(STR_MP_COMPOSERS);
}
- else if (ad->request_group_type == AUDIO_SVC_GROUP_BY_YEAR)
+ else if (ad->request_group_type == MP_GROUP_BY_YEAR)
{
label = GET_STR(STR_MP_YEARS);
}
+ else if (ad->request_group_type == MP_GROUP_BY_FOLDER)
+ {
+ label = GET_SYS_STR(STR_MP_FOLDERS);
+ }
else
{
mp_error("can not support that value");
return label;
}
+/**
+ * load library use for add to home case
+ *
+ * @param struct appdata *ad, char *path, int fid
+ * @return FALSE or TRUE if it success create
+ * @author aramie.kim@samsung.com
+ */
+
bool
mp_library_load(struct appdata * ad)
{
}
else
{
+ //Select current tab
Elm_Object_Item *selected_item = NULL;
Elm_Object_Item *select_request_item = NULL;
- if (!ad->ctrl_bar)
- _mp_library_create_control_bar(ad);
+ if (!ad->tabbar)
+ _mp_library_create_tabbar(ad);
else
- selected_item = elm_toolbar_selected_item_get(ad->ctrl_bar);
+ selected_item = elm_toolbar_selected_item_get(ad->tabbar);
select_request_item = _mp_library_get_request_control_item(ad);
{
view_data_t *view_data = NULL;
- if (ad->library->cur_view)
+ if (ad->naviframe)
{
- view_data = evas_object_data_get(ad->library->cur_view, "view_data");
+ //clear all item
+ view_data = evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK_FALSE(view_data);
MP_CHECK_VIEW_DATA(view_data);
mp_view_manager_pop_view_content(view_data, TRUE, TRUE);
- _mp_library_load_request_view(ad, ad->library->cur_view);
+ _mp_library_load_request_view(ad, ad->naviframe);
}
else
mp_error("invalid cur_view");
{
char *label = _mp_library_get_control_tab_label(ad);
MP_CHECK_FALSE(label);
- _mp_library_show_selected_view(ad, label);
+ elm_toolbar_item_selected_set(ad->library->ctltab_songs, EINA_TRUE);
}
else
ERROR_TRACE("It shouldn't be here..");
{
startfunc;
+ Evas_Object *tabbar = NULL;
+ view_data_t *view_data = NULL;
+
+ //init
_mp_library_init(ad);
+ //create layout_main
+ MP_TA_ACUM_ITEM_BEGIN(" _mp_library_create_layout_main", 0);
ad->base_layout_main = _mp_library_create_layout_main(ad->win_main);
mp_retm_if(ad->base_layout_main == NULL, "library view layout is not initialized");
+ MP_TA_ACUM_ITEM_END(" _mp_library_create_layout_main", 0);
- ad->controlbar_layout = mp_common_load_edj(ad->base_layout_main, EDJ_NAME, "control_layout");
+ ad->naviframe = mp_widget_navigation_new(ad->base_layout_main, ad);
+
+ view_data = calloc(sizeof(view_data_t), 1);
+ MP_SET_VIEW_DATA_MAGIC(view_data);
+ view_data->ad = ad;
+ view_data->navibar = ad->naviframe;
+
+ evas_object_data_set(ad->naviframe, "view_data", view_data);
+
+ MP_TA_ACUM_ITEM_BEGIN(" elm_layout_add", 0);
+ ad->controlbar_layout = elm_layout_add(ad->base_layout_main);
MP_CHECK(ad->controlbar_layout);
- mp_library_controlbar_visible_set(ad, true);
+ elm_layout_theme_set(ad->controlbar_layout, "layout", "tabbar", "default");
+ MP_TA_ACUM_ITEM_END(" elm_layout_add", 0);
- elm_object_part_content_set(ad->base_layout_main, "elm.swallow.content", ad->controlbar_layout);
+ mp_view_manager_push_view_content(view_data, ad->controlbar_layout, MP_VIEW_CONTENT_LIST);
- _mp_library_create_control_bar(ad);
+ elm_object_part_content_set(ad->base_layout_main, "elm.swallow.content", ad->naviframe);
+
+ //create control tab
+ MP_TA_ACUM_ITEM_BEGIN(" _mp_library_create_tabbar", 0);
+ tabbar = _mp_library_create_tabbar(ad);
+ elm_object_part_content_set(ad->controlbar_layout, "elm.swallow.tabbar", tabbar);
+ MP_TA_ACUM_ITEM_END(" _mp_library_create_tabbar", 0);
if(ad->loadtype == LOAD_TRACK)
{
}
Elm_Object_Item *reqeust_item = _mp_library_get_request_control_item(ad);
+
+ //select tabbar item
if (reqeust_item)
{
+ MP_TA_ACUM_ITEM_BEGIN(" elm_toolbar_item_selected_set", 0);
elm_toolbar_item_selected_set(reqeust_item, EINA_TRUE);
+ MP_TA_ACUM_ITEM_END(" elm_toolbar_item_selected_set", 0);
}
else
{
mp_library_update_view(struct appdata *ad)
{
MP_CHECK(ad);
- MP_CHECK(ad->library);
- Evas_Object *cur_view = ad->library->cur_view;
- MP_CHECK(ad->library->cur_view);
+ MP_CHECK(ad->naviframe);
- view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ view_data_t *cur_view_data = evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK(cur_view_data);
MP_CHECK_VIEW_DATA(cur_view_data);
if (ad->show_now_playing)
{
ad->show_now_playing = FALSE;
- view_data_t *view_data = (view_data_t *) evas_object_data_get(ad->library->cur_view, "view_data");
+ view_data_t *view_data = (view_data_t *) evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK(view_data);
MP_CHECK_VIEW_DATA(view_data);
void
mp_library_now_playing_set(struct appdata *ad)
{
- view_data_t *view_data = (view_data_t *) evas_object_data_get(ad->library->cur_view, "view_data");
+ view_data_t *view_data = (view_data_t *) evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK(view_data);
MP_CHECK_VIEW_DATA(view_data);
mp_view_manager_set_now_playing(view_data, TRUE);
}
-void
-mp_library_controlbar_visible_set(struct appdata *ad, bool visible)
-{
- MP_CHECK(ad);
- if(visible)
- edje_object_signal_emit(_EDJ(ad->controlbar_layout), "show.control", "music_app");
- else
- edje_object_signal_emit(_EDJ(ad->controlbar_layout), "hide.control", "music_app");
-}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#include <glib.h>
#include "music.h"
#include "mp-play-view.h"
#include "mp-player-drm.h"
#include "mp-smart-event-box.h"
#include "mp-file-tag-info.h"
-#include "mp-common.h"
#include "mp-player-mgr.h"
#include "mp-player-debug.h"
#include "mp-play-list.h"
#include "mp-util.h"
-#include "mp-library.h"
#include "mp-app.h"
#include "mp-menu.h"
#include "mp-widget.h"
#include "mp-popup.h"
+#include "mp-ug-launch.h"
#include "mp-streaming-mgr.h"
+#include "mp-minicontroller.h"
+#include "mp-setting-ctrl.h"
+
+#ifdef MP_SOUND_PLAYER
+#include "sp-view-manager.h"
+#else
+#include "mp-common.h"
+#include "mp-library.h"
+#endif
+
+#ifndef ABS
+#define ABS(x) ((x) < 0 ? -(x) : (x))
+#endif
+
+#define MAIN_W 480
+#define MAIN_H 800
+
+#define HD_SCREEN_WIDTH 720.0
+#define HD_INFO_RIGHT_WIDTH 550.0
#define HD_ALBUM_IMAGE_H_SCALE 720/1280
+#define PROGRESS_BAR_POSITION 20 /*80 */
+#define LS_PROGRESS_BAR_POSITION 340 /*400 */
+
#define CTR_EDJ_SIG_SRC "ctrl_edj"
#define CTR_PROG_SIG_SRC "ctrl_prog"
#define PLAYVIEW_TRANSIT_TIME (0.35)
#define FAVOUR_LONG_PRESS_TIME (1.5)
+#define ALBUMART_IMAGE_COLOR 160
+#define ALBUMART_IMAGE_SHADOW_RGBA 60, 60, 60, 123
+#define ALBUMART_IMAGE_SHADOW_RGBA1 100, 100, 100, 123
+#define ALBUMART_IMAGE_SHADOW_RGBA2 0, 0, 0, 123
+#define EVAS_OBJ_SHOW(obj) if(obj){evas_object_show(obj);}
+#define EVAS_OBJ_HIDE(obj) if(obj){evas_object_hide(obj);}
+#define EVAS_OBJ_MOVE(obj, x, y) if(obj){evas_object_move(obj, x, y);}
+static void _mp_play_view_set_album_art(void *data, char *file_path);
+static void _mp_play_view_album_art_update(void *data);
+Evas_Object *_mp_play_view_create_bg_map(void *data, Evas_Object * parents, music_list_item * current_item);
+
static void _mp_play_progress_val_set(void *data, double position);
static bool _mp_play_view_init_progress_bar(void *data);
static bool _mp_play_view_transit_by_item(void *data, struct music_list_item *it, bool move_left);
static void _mp_play_view_destory_cb(void *data, Evas * e, Evas_Object * obj, void *event_info);
static Evas_Object *_mp_play_view_create_ctrl_layout(void *data, Evas_Object * parents, Evas_Object ** progress,
bool remove_signal);
+#ifndef MP_SOUND_PLAYER
static void _mp_play_view_start_request(void *data, Evas_Object * obj, void *event_info);
+#endif
static void _mp_play_view_glist_free_cb(gpointer data);
playing_view->layout = NULL;
playing_view->play_view = NULL;
playing_view->play_control = NULL;
- playing_view->play_menu = NULL; //information, shuffle, repeat
+ playing_view->play_menu = NULL; //information, srs, shuffle, repeat
playing_view->play_progressbar = NULL;
playing_view->play_info = NULL;
+ playing_view->albumart_img = NULL;
playing_view->albumart_bg = NULL;
+ playing_view->albumart_image_reflection = NULL;
+ playing_view->pre_albumart_image_reflection = NULL;
playing_view->flick_direction = 0;
ad->volume_long_pressed = false;
playing_view->play_view_next = NULL;
+ playing_view->x = 0;
+ playing_view->y = 0;
+ playing_view->favour_longpress = 0;
+ playing_view->favourite_timer = NULL;
playing_view->progressbar_timer = NULL;
+ playing_view->play_view_screen_mode = MP_SCREEN_MODE_PORTRAIT;
+
playing_view->transition_state = false;
+ playing_view->b_play_all = false;
endfunc;
mp_evas_object_del(ad->playing_view->play_icon);
{
- MP_CHECK(ad->library);
- view_data_t *view_data = evas_object_data_get(ad->library->cur_view, "view_data");
+#ifdef MP_SOUND_PLAYER
+ mp_play_view_unswallow_info_ug_layout(ad);
+ sp_view_mgr_pop_view_content(ad->view_mgr, FALSE);
+#else
+ view_data_t *view_data = evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK(view_data);
mp_view_manager_pop_view_content(view_data, FALSE, FALSE);
mp_util_set_library_controlbar_items(ad);
ad->music_setting_change_flag = false;
}
+#endif
}
if (ad->buffering_popup)
mp_streaming_mgr_buffering_popup_control(ad, false);
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
mp_retm_if(ad->navi_effect_in_progress, "navi effect in progress");
+ ad->info_click_flag = FALSE;
mp_playing_view *playing_view = ad->playing_view;
- _mp_play_view_clear_animator(ad);
- view_data_t *view_data = evas_object_data_get(ad->library->cur_view, "view_data");
- mp_view_manager_pop_view_content(view_data, FALSE, FALSE);
- if (playing_view)
- playing_view->play_info = NULL;
+ //show albumart_image_reflection
+ if (playing_view && playing_view->albumart_image_reflection)
+ {
+ evas_object_show(playing_view->albumart_image_reflection);
+ evas_object_show(playing_view->albumart_image);
+ }
+ if(ad->info_ug)
+ {
+ int first_view = (int)evas_object_data_get(ad->info_ug_layout, "first_view");
+ if(first_view)
+ {
+ ad->info_back_play_view_flag = TRUE;
+#ifdef MP_SOUND_PLAYER
+ mp_play_view_unswallow_info_ug_layout(ad);
+ sp_view_mgr_pop_view_content(ad->view_mgr, FALSE);
+#else
+ view_data_t *view_data = evas_object_data_get(ad->naviframe, "view_data");
+ mp_view_manager_pop_view_content(view_data, FALSE, FALSE);
+#endif
+ if (playing_view)
+ playing_view->play_info = NULL;
+ }
+ else
+ {
+ ad->info_back_play_view_flag = FALSE;
+ mp_ug_send_message(ad, MP_UG_MESSAGE_BACK);
+ }
+ }
+ else
+ {
+ _mp_play_view_clear_animator(ad);
+ ad->info_back_play_view_flag = TRUE;
+#ifdef MP_SOUND_PLAYER
+ mp_play_view_unswallow_info_ug_layout(ad);
+ sp_view_mgr_pop_view_content(ad->view_mgr, FALSE);
+#else
+ view_data_t *view_data = evas_object_data_get(ad->naviframe, "view_data");
+ mp_view_manager_pop_view_content(view_data, FALSE, FALSE);
+#endif
+ if (playing_view)
+ playing_view->play_info = NULL;
+ }
endfunc;
return;
}
_mp_play_view_info_gl_label_get(void *data, Evas_Object * obj, const char *part)
{
mp_media_info_t *info = (mp_media_info_t *)data;
+ char *text;
if (!g_strcmp0(part, "elm.text.1"))
{
MP_CHECK_NULL(info);
DEBUG_TRACE("%s", info->header);
- return g_strdup(info->header);
+ if(info->header && strstr(info->header, "IDS_COM"))
+ text = GET_SYS_STR(info->header);
+ else
+ text = GET_STR(info->header);
+ return g_strdup(text);
}
else if (!g_strcmp0(part, "elm.text.2"))
{
MP_CHECK_NULL(info);
- return elm_entry_utf8_to_markup(info->detail);
+ if(info->detail && strstr(info->detail, "IDS_COM"))
+ text = GET_SYS_STR(info->detail);
+ else
+ text = GET_STR(info->detail);
+ return g_strdup(text);
}
return NULL;
}
static Elm_Genlist_Item_Class info_view_info_item_class = {
+ .version = ELM_GENGRID_ITEM_CLASS_VERSION,
+ .refcount = 0,
+ .delete_me = EINA_FALSE,
.item_style = "multiline/music_player/info",
.func.text_get = _mp_play_view_info_gl_label_get,
.func.del = _mp_play_view_info_gl_item_del,
if(item)
elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ mp_language_mgr_register_genlist_item(item);
+
ad->minfo_list = g_list_delete_link(ad->minfo_list, ad->minfo_list);
return EINA_TRUE;
}
_mp_play_view_info_gl_item_del(data, NULL);
}
+static void
+_mp_play_view_append_drm_info(Evas_Object *genlist, const char *path)
+{
+ startfunc;
+ MP_CHECK(genlist);
+ MP_CHECK(path);
+
+ GList *rs_list = mp_drm_get_right_status(path);
+ if (rs_list) {
+ mp_debug("show right_status");
+ GList *current = rs_list;
+ while (current) {
+ mp_drm_right_status_t *rs = current->data;
+ if (rs)
+ _mp_play_view_create_info_item(genlist,
+ rs->type,
+ rs->validity);
+
+ current = current->next;
+ }
+
+ mp_drm_free_right_status(rs_list);
+ rs_list = NULL;
+ }
+}
+
static Evas_Object *
_mp_play_view_create_info_detail(Evas_Object * parent, void *data)
{
int ret = 0;
Evas_Object *genlist;
- AudioHandleType *svc_audio_item;
+ mp_media_info_h svc_audio_item;
char *pathname = NULL, *title = NULL, *album = NULL, *artist = NULL, *thumbname = NULL, *genre = NULL;
- char *author = NULL, *copyright = NULL, *format = NULL;
- int duration = 0, track = 0, size = 0;
-
- audio_svc_item_new(&svc_audio_item);
- ret = audio_svc_get_item_by_audio_id(ad->media_svc_handle, cur_item->key_id, svc_audio_item);
- ret = audio_svc_item_get_val(svc_audio_item, AUDIO_SVC_TRACK_DATA_PATHNAME, &pathname, &size,
- AUDIO_SVC_TRACK_DATA_TITLE, &title, &size,
- AUDIO_SVC_TRACK_DATA_ALBUM, &album, &size,
- AUDIO_SVC_TRACK_DATA_ARTIST, &artist, &size,
- AUDIO_SVC_TRACK_DATA_THUMBNAIL_PATH, &thumbname, &size,
- AUDIO_SVC_TRACK_DATA_GENRE, &genre, &size,
- AUDIO_SVC_TRACK_DATA_COPYRIGHT, ©right, &size,
- AUDIO_SVC_TRACK_DATA_AUTHOR, &author, &size,
- AUDIO_SVC_TRACK_DATA_DURATION, &duration,
- AUDIO_SVC_TRACK_DATA_TRACK_NUM, &track,
- AUDIO_SVC_TRACK_DATA_FORMAT, &format, &size, -1);
+ char *author = NULL, *copyright = NULL, *format = NULL, *track_num = NULL;
+ int duration = 0;
+
+ {
+ ret = mp_media_info_create(&svc_audio_item, cur_item->key_id);
+
+ mp_media_info_get_file_path(svc_audio_item, &pathname);
+ mp_media_info_get_title(svc_audio_item, &title);
+ mp_media_info_get_album(svc_audio_item, &album);
+ mp_media_info_get_artist(svc_audio_item, &artist);
+ mp_media_info_get_thumbnail_path(svc_audio_item, &thumbname);
+ mp_media_info_get_genre(svc_audio_item, &genre);
+ mp_media_info_get_copyright(svc_audio_item, ©right);
+ mp_media_info_get_composer(svc_audio_item, &author);
+ mp_media_info_get_duration(svc_audio_item, &duration);
+ mp_media_info_get_track_num(svc_audio_item, &track_num);
+ mp_media_info_get_format(svc_audio_item, &format);
+ }
_mp_play_view_clear_animator(ad);
elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
evas_object_data_set(genlist, "ad", ad);
- if (ret == AUDIO_SVC_ERROR_NONE)
+ if (ret == 0)
{
- if (artist && strlen(artist))
- {
-
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_ARTIST"), artist);
-
- }
-
- _mp_play_view_create_info_item(genlist, GET_SYS_STR("IDS_COM_BODY_DETAILS_TITLE"), title);
+ if (artist && strlen(artist))
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_ARTIST"), artist);
+ _mp_play_view_create_info_item(genlist, ("IDS_COM_BODY_DETAILS_TITLE"), title);
if (album && strlen(album))
- {
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_ALBUM"), album);
-
- }
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_ALBUM"), album);
char duration_format[10] = { 0, };
int dur_sec = duration / 1000;
int min = dur_sec / 60;
snprintf(duration_format, sizeof(duration_format), "%02u:%02u", min, sec);
-
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_TRACK_LENGTH"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_TRACK_LENGTH"),
duration_format);
if (genre && strlen(genre))
- {
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_GENRE"), genre);
-
- }
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_GENRE"), genre);
if (author && strlen(author))
- {
-
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_AUTHOR"), author);
-
- }
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_AUTHOR"), author);
if (copyright && strlen(copyright))
- {
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_COPYRIGHT"), copyright);
-
- }
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_COPYRIGHT"), copyright);
- if(mp_drm_file_right(cur_item->filename))
{
if (mp_drm_get_description(ad, cur_item->filename))
-
- _mp_play_view_create_info_item(genlist,
- GET_STR("IDS_MUSIC_BODY_DESCRIPTION"),
+ _mp_play_view_create_info_item(genlist,
+ ("IDS_MUSIC_BODY_DESCRIPTION"),
ad->drm_info.description);
else
-
- _mp_play_view_create_info_item(genlist,
- GET_STR("IDS_MUSIC_BODY_DESCRIPTION"),
+ _mp_play_view_create_info_item(genlist,
+ ("IDS_MUSIC_BODY_DESCRIPTION"),
"-");
if (ad->drm_info.forward)
-
- _mp_play_view_create_info_item(genlist,
- GET_STR("IDS_MUSIC_BODY_FORWARDING"),
- GET_STR("IDS_MUSIC_BODY_POSSIBLE"));
+ _mp_play_view_create_info_item(genlist,
+ ("IDS_MUSIC_BODY_FORWARDING"),
+ ("IDS_MUSIC_BODY_POSSIBLE"));
else
+ _mp_play_view_create_info_item(genlist,
+ ("IDS_MUSIC_BODY_FORWARDING"),
+ ("IDS_MUSIC_BODY_IMPOSSIBLE"));
- _mp_play_view_create_info_item(genlist,
- GET_STR("IDS_MUSIC_BODY_FORWARDING"),
- GET_STR("IDS_MUSIC_BODY_IMPOSSIBLE"));
-
+ /* right status */
+ _mp_play_view_append_drm_info(genlist, cur_item->filename);
}
- if (track > 0)
+ if (track_num && strlen(track_num))
{
- char *track_num = g_strdup_printf("%d", track);
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_TRACK_NUMBER"), track_num);
-
- SAFE_FREE(track_num);
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_TRACK_NUMBER"), track_num);
}
if (format && strlen(format))
{
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_FORMAT"), format);
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_FORMAT"), format);
}
-
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_MUSIC_LOCATION"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_MUSIC_LOCATION"),
cur_item->filename);
}
else
if (tag_info.artist && strlen(tag_info.artist))
{
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_ARTIST"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_ARTIST"),
tag_info.artist);
}
if (tag_info.title && strlen(tag_info.title))
{
- _mp_play_view_create_info_item(genlist, GET_SYS_STR("IDS_COM_BODY_DETAILS_TITLE"),
+ _mp_play_view_create_info_item(genlist, ("IDS_COM_BODY_DETAILS_TITLE"),
tag_info.title);
}
if (tag_info.album && strlen(tag_info.album))
{
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_ALBUM"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_ALBUM"),
tag_info.album);
}
snprintf(duration_format, sizeof(duration_format), "%02u:%02u", min, sec);
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_TRACK_LENGTH"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_TRACK_LENGTH"),
duration_format);
if (tag_info.genre && strlen(tag_info.genre))
{
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_GENRE"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_GENRE"),
tag_info.genre);
}
if (tag_info.author && strlen(tag_info.author))
{
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_AUTHOR"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_AUTHOR"),
tag_info.author);
}
if (tag_info.copyright && strlen(tag_info.copyright))
{
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_COPYRIGHT"), tag_info.copyright);
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_COPYRIGHT"), tag_info.copyright);
}
- if(mp_drm_file_right(cur_item->filename))
{
if (mp_drm_get_description(ad, cur_item->filename))
_mp_play_view_create_info_item(genlist,
- GET_STR("IDS_MUSIC_BODY_DESCRIPTION"),
+ ("IDS_MUSIC_BODY_DESCRIPTION"),
ad->drm_info.description);
else
_mp_play_view_create_info_item(genlist,
- GET_STR("IDS_MUSIC_BODY_DESCRIPTION"),
+ ("IDS_MUSIC_BODY_DESCRIPTION"),
"-");
if (ad->drm_info.forward)
_mp_play_view_create_info_item(genlist,
- GET_STR("IDS_MUSIC_BODY_FORWARDING"),
- GET_STR("IDS_MUSIC_BODY_POSSIBLE"));
+ ("IDS_MUSIC_BODY_FORWARDING"),
+ ("IDS_MUSIC_BODY_POSSIBLE"));
else
_mp_play_view_create_info_item(genlist,
- GET_STR("IDS_MUSIC_BODY_FORWARDING"),
- GET_STR("IDS_MUSIC_BODY_IMPOSSIBLE"));
+ ("IDS_MUSIC_BODY_FORWARDING"),
+ ("IDS_MUSIC_BODY_IMPOSSIBLE"));
+ /* right status */
+ _mp_play_view_append_drm_info(genlist, cur_item->filename);
}
if (tag_info.track && strlen(tag_info.track))
if (!strstr(tag_info.track, "-") && g_strcmp0(tag_info.track, "0"))
{
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_TRACK_NUMBER"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_TRACK_NUMBER"),
tag_info.track);
}
if (tag_info.rating && strlen(tag_info.rating))
{
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_PARENT_RATING"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_PARENT_RATING"),
tag_info.rating);
}
if (format)
{
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_FORMAT"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_FORMAT"),
format->str);
g_string_free(format, TRUE);
}
- _mp_play_view_create_info_item(genlist, GET_STR("IDS_MUSIC_BODY_MUSIC_LOCATION"),
+ _mp_play_view_create_info_item(genlist, ("IDS_MUSIC_BODY_MUSIC_LOCATION"),
cur_item->filename);
}
evas_object_show(genlist);
- audio_svc_item_free(svc_audio_item);
+
+ mp_media_info_destroy(svc_audio_item);
elm_object_part_content_set(parent, "mi_content", genlist);
return genlist;
}
elm_object_part_content_set(info_view_left_area, "video_play_img", video_play_img);
evas_object_show(video_play_img);
+ //add current albumart image
Evas_Object *album_image = elm_image_add(info_view_left_area);
if (strlen(cur_item->albumart) && mp_util_is_image_valid(ad->evas, cur_item->albumart))
{
evas_object_event_callback_add(video_play_img, EVAS_CALLBACK_MOUSE_MOVE, NULL, NULL);
evas_object_event_callback_add(video_play_img, EVAS_CALLBACK_MOUSE_UP,
_mp_play_view_sb_click_info_albumart, ad);
+ /***********create left area end********************/
+ /***********create right area start********************/
Evas_Object *right_base_box = mp_common_load_edj(parent, PLAY_VIEW_EDJ_NAME, "base_box_no_xml");
MP_CHECK(right_base_box);
elm_object_part_content_set(parent, "base_box", right_base_box);
elm_object_part_content_set(right_base_box, "no_sim_media_content", right_base_box_detail);
evas_object_show(right_base_box_detail);
edje_object_part_text_set(_EDJ(right_base_box_detail), "title", GET_STR("IDS_MUSIC_BODY_DETAILS_MEADIA_INFO"));
+ mp_language_mgr_register_object(right_base_box_detail, OBJ_TYPE_EDJE_OBJECT, "title", "IDS_MUSIC_BODY_DETAILS_MEADIA_INFO");
Evas_Object *item = _mp_play_view_create_info_detail(right_base_box_detail, ad);
MP_CHECK(item);
elm_object_part_content_set(right_base_box_detail, "mi_scroller", item);
+ /***********create right area end********************/
+ //add scroller to right area
elm_object_part_content_set(parent, "no_xml_no_sim_detail_scroller", right_base_box_detail);
}
DEBUG_TRACE_FUNC();
struct appdata *ad = (struct appdata *)data;
- int ret = mm_sound_route_set_system_policy(SYSTEM_AUDIO_ROUTE_POLICY_DEFAULT);
-
- if (ret != MM_ERROR_NONE)
- WARN_TRACE("Error: mm_sound_route_set_system_policy(0x%x)", ret);
+ int ret = sound_manager_set_active_route(SOUND_ROUTE_OUT_BLUETOOTH);
+ if (ret != SOUND_MANAGER_ERROR_NONE)
+ WARN_TRACE("Error: sound_manager_set_route_policy(0x%x)", ret);
else
elm_radio_value_set(ad->radio_group, MP_SND_PATH_BT);
DEBUG_TRACE_FUNC();
struct appdata *ad = (struct appdata *)data;
- int ret = mm_sound_route_set_system_policy(SYSTEM_AUDIO_ROUTE_POLICY_IGNORE_A2DP);
- if (ret != MM_ERROR_NONE)
- WARN_TRACE("Error: mm_sound_route_set_system_policy(0x%x)", ret);
+ int ret = sound_manager_set_active_route(SOUND_ROUTE_OUT_WIRED_ACCESSORY);
+ if (ret != SOUND_MANAGER_ERROR_NONE)
+ WARN_TRACE("Error: sound_manager_set_route_policy(0x%x)", ret);
else
elm_radio_value_set(ad->radio_group, MP_SND_PATH_EARPHONE);
mp_popup_destroy(ad);
}
-
+//2 merge play view at 20110118
static void
_mp_play_view_popup_speaker_cb(void *data, Evas_Object * obj, void *event_info)
{
DEBUG_TRACE_FUNC();
struct appdata *ad = (struct appdata *)data;
- int earjack = 0;
int ret = 0;
-
- if (vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &earjack))
- WARN_TRACE("Earjack state get Fail...");
-
- if (earjack)
- ret = mm_sound_route_set_system_policy(SYSTEM_AUDIO_ROUTE_POLICY_HANDSET_ONLY);
- else
- ret = mm_sound_route_set_system_policy(SYSTEM_AUDIO_ROUTE_POLICY_IGNORE_A2DP);
-
- if (ret != MM_ERROR_NONE)
- WARN_TRACE("Error: mm_sound_route_set_system_policy(0x%x)", ret);
+ ret = sound_manager_set_active_route(SOUND_ROUTE_OUT_SPEAKER);
+ if (ret != SOUND_MANAGER_ERROR_NONE)
+ WARN_TRACE("Error: sound_manager_set_route_policy(0x%x)", ret);
else
elm_radio_value_set(ad->radio_group, MP_SND_PATH_SPEAKER);
MP_CHECK(ad);
bool popup_exist = false;
- int bt_connected = 0;
+ bool bt_connected = false;
int earjack = 0;
static char *bt_name;
int ret = 0;
if(popup_exist)
{
IF_FREE(bt_name);
- ret = mm_sound_route_get_a2dp_status(&bt_connected, &bt_name);
- if (ret != MM_ERROR_NONE)
+ ret = sound_manager_get_a2dp_status(&bt_connected, &bt_name);
+ if (ret != SOUND_MANAGER_ERROR_NONE)
{
- WARN_TRACE("Fail to mm_sound_route_get_a2dp_status ret = [%d]", ret);
+ WARN_TRACE("Fail to sound_manager_get_a2dp_status ret = [%d]", ret);
}
if (vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &earjack))
WARN_TRACE("Earjack state get Fail...");
}
else
{
+ // TODO: updating list is not working now.. there is timing issue... complete it after MMFW support..
evas_object_del(popup);
}
}
Evas_Object *popup = NULL;
int ret = 0;
- int bt_connected = 0;
+ bool bt_connected = false;
int earjack = 0;
+ // use bt_name as static. bt_name can be used again in gl_label_get function when genlist of popup scrolled.
static char *bt_name = NULL;
popup = mp_genlist_popup_create(ad->win_main, MP_POPUP_SOUND_PATH, ad, ad);
evas_object_data_set(genlist, "ad", ad);
IF_FREE(bt_name);
- ret = mm_sound_route_get_a2dp_status(&bt_connected, &bt_name);
- if (ret != MM_ERROR_NONE)
+ ret = sound_manager_get_a2dp_status(&bt_connected, &bt_name);
+ if (ret != SOUND_MANAGER_ERROR_NONE)
{
- WARN_TRACE("Fail to mm_sound_route_get_a2dp_status ret = [%d]", ret);
+ WARN_TRACE("Fail to sound_manager_get_a2dp_status ret = [%d]", ret);
}
if (vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &earjack))
struct appdata *ad = playing_view->ad;
MP_CHECK(ad);
+ mp_evas_object_del(playing_view->albumart_image_reflection);
+ mp_evas_object_del(playing_view->pre_albumart_image_reflection);
playing_view->flick_direction = 0;
+ playing_view->hide_image_flag = false;
//hide mute popup
if (playing_view->play_view)
edje_object_signal_emit(_EDJ(playing_view->play_view), SIGNAL_MAIN_MUTE_HIDE, "*");
//reset flag
ad->volume_long_pressed = false;
+ mp_ecore_timer_del(playing_view->favourite_timer);
mp_ecore_timer_del(playing_view->progressbar_timer);
mp_ecore_timer_del(playing_view->show_ctrl_timer);
- if(ad->playing_view == playing_view)
+ if(ad->backup_playing_view == playing_view)
+ {
+ IF_FREE(ad->backup_playing_view);
+ ad->backup_layout_play_view = NULL;
+ }
+ else if(ad->playing_view == playing_view)
{
IF_FREE(ad->playing_view);
}
else
ERROR_TRACE("++++++++ check here ++++++++++");
+ mp_ecore_idler_del(ad->playview_show_idler);
+
endfunc;
return;
MP_CHECK(playing_view);
mp_evas_object_del(playing_view->play_info);
+ Evas_Object *parent = NULL;
+#ifdef MP_SOUND_PLAYER
+ parent = sp_view_mgr_get_naviframe(ad->view_mgr);
+#else
+ parent = ad->naviframe;
+#endif
playing_view->play_info =
- mp_common_load_edj(ad->library->cur_view, PLAY_VIEW_EDJ_NAME, "richinfo/base_layout");
+ mp_common_load_edj(parent, PLAY_VIEW_EDJ_NAME, "richinfo/test_rich_info");
mp_play_view_create_info_contents(playing_view->play_info, ad);
- view_data_t *view_data = evas_object_data_get(ad->library->cur_view, "view_data");
+#ifdef MP_SOUND_PLAYER
+ sp_view_mgr_push_view_content(ad->view_mgr, playing_view->play_info, SP_VIEW_TYPE_INFO);
+ sp_view_mgr_set_title_label(ad->view_mgr, GET_STR("IDS_MUSIC_BODY_DETAILSMEADIAINFO"));
+ sp_view_mgr_set_back_button(ad->view_mgr, mp_play_view_info_back_cb, ad);
+#else
+ view_data_t *view_data = evas_object_data_get(ad->naviframe, "view_data");
mp_view_manager_push_view_content(view_data, playing_view->play_info, MP_VIEW_CONTENT_INFO);
- mp_view_manager_set_title_and_buttons(view_data, GET_SYS_STR("IDS_COM_BODY_DETAILS"),
+ mp_view_manager_set_title_and_buttons(view_data, "IDS_MUSIC_BODY_DETAILSMEADIAINFO",
ad);
+#endif
}
void
{
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
+ if (ad->info_click_flag && !ad->info_ug)
+ return ;
+ if (!ad->info_ug)
+ ad->info_click_flag = TRUE;
+ else
+ ad->info_click_flag = FALSE;
+ ad->info_back_play_view_flag = FALSE;
mp_retm_if(ad->navi_effect_in_progress, "navi effect in progress");
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK(playing_view);
+ EVAS_OBJ_HIDE(playing_view->albumart_img);
+ EVAS_OBJ_HIDE(playing_view->albumart_image_reflection);
//hide mute popup
if (playing_view->play_view)
edje_object_signal_emit(_EDJ(playing_view->play_view), SIGNAL_MAIN_MUTE_HIDE, "*");
MP_CHECK_FALSE(current_item);
DEBUG_TRACE("category: %d", current_item->category);
- if (current_item->category == AUDIO_SVC_CATEGORY_MUSIC)
+ if (current_item->category == MP_MEDIA_TYPE_MUSIC)
{
if (current_item->key_id > 0
- && mp_util_is_item_in_playlist(ad->media_svc_handle, AUDIO_SVC_FAVORITE_LIST_ID, current_item->key_id))
+ && current_item->favorite)
{
edje_object_signal_emit(_EDJ(playing_view->play_menu), "favorite_on", "play_view");
}
edje_object_signal_emit(_EDJ(playing_view->play_menu), "favorite_invisible", "play_view");
}
- mp_view_manager_play_view_title_label_set(ad, item->title);
+ if (item == current_item) {
+ #ifdef MP_SOUND_PLAYER
+ sp_view_mgr_play_view_title_label_set(ad->view_mgr, item->title);
+ #else
+ mp_view_manager_play_view_title_label_set(ad, item->title);
+ #endif
+ }
+ if(playing_view->play_head)
+ elm_object_item_text_set(playing_view->play_head, current_item->title);
edje_object_part_text_set(_EDJ(playing_view->play_title), "artist", current_item->artist);
edje_object_part_text_set(_EDJ(playing_view->play_title), "album", current_item->album);
mp_debug("next item : %s", next_item->title);
- next_view = mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "mp_play_view");
- evas_object_size_hint_max_set(next_view, 480 * ad->scale, 800 * ad->scale);
+ next_view = elm_layout_add(playing_view->layout);
+
+ if (playing_view->play_view_screen_mode == MP_SCREEN_MODE_LANDSCAPE)
+ {
+ mp_debug_temp
+ (" invalid state MP_SCREEN_MODE_LANDSCAPE MP_SCREEN_MODE_LANDSCAPE MP_SCREEN_MODE_LANDSCAPE MP_SCREEN_MODE_LANDSCAPE");
+ elm_layout_file_set(next_view, PLAY_VIEW_EDJ_NAME, "mp_play_view_landscape");
+ evas_object_size_hint_max_set(next_view, 480 * elm_scale_get(), 480 * elm_scale_get());
+ evas_object_size_hint_align_set(next_view, EVAS_HINT_FILL, EVAS_HINT_EXPAND);
+ evas_object_size_hint_weight_set(next_view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ad->win_main, next_view);
+ }
+ else
+ {
+
+ next_view = mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "mp_play_view");
+ evas_object_size_hint_max_set(next_view, 480 * elm_scale_get(), 800 * elm_scale_get());
+ }
evas_object_show(next_view);
- album_img = evas_object_image_add(ad->evas);
- int w, h;
- ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
- evas_object_image_load_size_set(album_img, w, h*HD_ALBUM_IMAGE_H_SCALE);
- evas_object_image_fill_set(album_img, 0, 0, w, h*HD_ALBUM_IMAGE_H_SCALE);
- if (strlen(next_item->albumart) && mp_util_is_image_valid(ad->evas, next_item->albumart))
+ if (playing_view->play_view_screen_mode == MP_SCREEN_MODE_LANDSCAPE)
{
- evas_object_image_file_set(album_img, next_item->albumart, NULL);
+ album_img = elm_bg_add(next_view);
+ if (strlen(next_item->albumart) && mp_util_is_image_valid(ad->evas, next_item->albumart))
+ {
+ elm_bg_file_set(album_img, next_item->albumart, NULL);
+ }
+ else
+ {
+ elm_bg_file_set(album_img, DEFAULT_THUMBNAIL, NULL);
+ }
}
else
{
- evas_object_image_file_set(album_img, DEFAULT_THUMBNAIL, NULL);
+ album_img = evas_object_image_add(ad->evas);
+ int w, h;
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+ evas_object_image_load_size_set(album_img, w, h*HD_ALBUM_IMAGE_H_SCALE);
+ evas_object_image_fill_set(album_img, 0, 0, w, h*HD_ALBUM_IMAGE_H_SCALE);
+ if (strlen(next_item->albumart) && mp_util_is_image_valid(ad->evas, next_item->albumart))
+ {
+ evas_object_image_file_set(album_img, next_item->albumart, NULL);
+ }
+ else
+ {
+ evas_object_image_file_set(album_img, DEFAULT_THUMBNAIL, NULL);
+ }
}
elm_object_part_content_set(next_view, "album_art", album_img);
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK(playing_view);
+ if (ad->playing_list && ad->playing_list->count <= 1)
+ return;
+
music_list_item *next_item = NULL;
if (mp_play_list_get_next_item(data, ad->playing_list, &next_item, TRUE)== MP_PLST_RET_OK)
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK(playing_view);
+ if (ad->playing_list && ad->playing_list->count <= 1)
+ return;
+
music_list_item *next_item = NULL;
if (mp_play_list_get_prev_item(data, ad->playing_list, &next_item))
return;
}
+static Eina_Bool
+_mp_play_view_favourite_timer_cb(void *data)
+{
+ struct appdata *ad = (struct appdata *)data;
+ mp_retvm_if(!ad, ECORE_CALLBACK_CANCEL, "ad");
+
+ mp_playing_view *playing_view = ad->playing_view;
+ mp_retvm_if(!playing_view, ECORE_CALLBACK_CANCEL, "ad");
+
+ mp_ecore_timer_del(playing_view->favourite_timer);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
static void
_mp_play_view_favourite_cb(void *data, Evas_Object * o, const char *emission, const char *source)
{
DEBUG_TRACE("%s", emission);
- if (!strcmp(emission, "favorite_up"))
+ if (!strcmp(emission, "favorite_down"))
{
- music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
- MP_CHECK(current_item);
+ playing_view->favour_longpress = 0;
- if (current_item->key_id > 0
- && mp_util_is_item_in_playlist(ad->media_svc_handle, AUDIO_SVC_FAVORITE_LIST_ID, current_item->key_id))
+ mp_ecore_timer_del(playing_view->favourite_timer);
+
+ playing_view->favourite_timer =
+ ecore_timer_add(FAVOUR_LONG_PRESS_TIME, _mp_play_view_favourite_timer_cb, ad);
+ }
+ else if (!strcmp(emission, "favorite_up"))
+ {
+ mp_ecore_timer_del(playing_view->favourite_timer);
+
+ if (playing_view->favour_longpress)
{
- int ret = AUDIO_SVC_ERROR_NONE;
- ret = audio_svc_remove_item_from_playlist_by_audio_id(ad->media_svc_handle, AUDIO_SVC_FAVORITE_LIST_ID,
- current_item->key_id);
- if (ret == AUDIO_SVC_ERROR_NONE) {
- edje_object_signal_emit(_EDJ(playing_view->play_menu), "favorite_off",
- "play_view");
- mp_util_create_notify(ad, GET_SYS_STR("IDS_COM_POP_REMOVED"));
- }
+ playing_view->favour_longpress = 0;
}
else
{
- int ret = AUDIO_SVC_ERROR_NONE;
- ret = audio_svc_add_item_to_playlist(ad->media_svc_handle, AUDIO_SVC_FAVORITE_LIST_ID, current_item->key_id);
- if (ret == AUDIO_SVC_ERROR_NONE) {
- edje_object_signal_emit(_EDJ(playing_view->play_menu), "favorite_on",
- "play_view");
+ int ret = 0;
+ mp_media_info_h media = NULL;
+ music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
+ MP_CHECK(current_item);
+
+ ret = mp_media_info_create(&media, current_item->key_id);
+ MP_CHECK(ret == 0);
+ ret = mp_media_info_set_favorite(media, !current_item->favorite);
+ mp_media_info_destroy(media);
+ if(ret)
+ {
+ if(current_item->favorite)
+ mp_util_create_notify(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_ADD"));
+ else
+ mp_util_create_notify(ad, GET_STR("IDS_MUSIC_POP_ITEM_NOT_REMOVE"));
+
+ return;
+ }
+ current_item->favorite = !current_item->favorite;
+
+ if (!current_item->favorite)
+ {
+ edje_object_signal_emit(_EDJ(playing_view->play_menu), "favorite_off", "play_view");
+ mp_util_create_notify(ad, GET_SYS_STR("IDS_COM_POP_REMOVED"));
+ }
+ else
+ {
+ edje_object_signal_emit(_EDJ(playing_view->play_menu), "favorite_on", "play_view");
mp_util_create_notify(ad, GET_STR("IDS_MUSIC_POP_ADDED"));
}
+
}
}
-
- MP_CHECK(ad->library);
- MP_CHECK(ad->library->cur_view);
- view_data_t *view_data = (view_data_t *) evas_object_data_get(ad->library->cur_view, "view_data");
+#ifndef MP_SOUND_PLAYER
+ MP_CHECK(ad->naviframe);
+ view_data_t *view_data = (view_data_t *) evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK(view_data);
if (view_data->view_type == MP_VIEW_TYPE_PLAYLIST)
mp_library_update_view(ad);
-
+#endif
return;
}
if (data == NULL && obj == NULL && event_info == NULL)
return;
+ evas_object_data_set(obj, "pressed", (void *)1);
+
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
return;
}
- if (ad->player_state == PLAY_STATE_PLAYING)
- {
- mp_player_mgr_pause(ad);
- playing_view->paused_by_progressbar = true;
- }
-
mp_play_view_progress_timer_freeze(ad);
evas_object_geometry_get(progressbar, &x, NULL, &w, NULL);
current = ev->canvas.x - x;
}
static void
+_mp_play_view_progressbar_seek_done_cb(void *data)
+{
+ startfunc;
+ struct appdata *ad = data;
+
+ mp_play_view_progress_timer_thaw(ad);
+}
+
+static void
_mp_play_view_progressbar_up_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
{
startfunc;
if (data == NULL && obj == NULL && event_info == NULL)
return;
+ evas_object_data_set(obj, "pressed", (void *)0);
+
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
ERROR_TRACE("Invaild player_state : %d", ad->player_state);
return;
}
+
evas_object_geometry_get(progressbar, &x, NULL, &w, NULL);
current = ev->canvas.x - x;
ad->music_length = duration / 1000.;
ad->music_pos = ratio * ad->music_length;
- mp_play_view_update_progressbar(ad);
- mp_player_mgr_set_position(ad->music_pos * 1000);
+ if (mp_player_mgr_set_position(ad->music_pos * 1000, _mp_play_view_progressbar_seek_done_cb, ad))
+ mp_play_view_update_progressbar(ad);
+ else
+ _mp_play_view_progressbar_seek_done_cb(ad);
+
- if (playing_view->paused_by_progressbar)
- {
- mp_player_mgr_resume(ad);
- playing_view->paused_by_progressbar = false;
- }
return;
}
if (data == NULL && obj == NULL && event_info == NULL)
return;
+ int pressed = (int)evas_object_data_get(obj, "pressed");
+ if (!pressed) {
+ mp_debug("-_- progressbar is not pressed yet!");
+ return;
+ }
+
struct appdata *ad = (struct appdata *)data;
MP_CHECK(ad);
}
Evas_Object *progressbar = obj;
- int duration = 0, w = 0, current = 0;
+ int w = 0, current = 0;
int x;
double ratio = 0.0;
+ int new_pos;
if (ad->player_state == PLAY_STATE_INIT)
return;
current = w;
ratio = (double)current / w;
- duration = mp_player_mgr_get_duration();
-
- ad->music_length = duration / 1000.;
- ad->music_pos = ratio * ad->music_length;
- mp_play_view_update_progressbar(ad);
+ new_pos= ratio * ad->music_length;
+ if(new_pos != mp_player_mgr_get_position()/1000 )
+ {
+ mp_player_mgr_set_position(ad->music_pos*1000, NULL, NULL);
+ ad->music_pos = new_pos;
+ mp_play_view_update_progressbar(ad);
+ }
return;
}
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK_CANCEL(playing_view);
- if(!ad->prohibit_aul_relaunch)
+ if(!ad->app_is_foreground)
{
WARN_TRACE("Check here.. progress timer should be freezed..");
ecore_timer_freeze(playing_view->progressbar_timer);
if (get_length != ad->music_length || get_pos != ad->music_pos)
{
+ // update only value is changed
ad->music_length = get_length;
ad->music_pos = get_pos;
mp_ecore_timer_del(playing_view->progressbar_timer);
playing_view->progressbar_timer = ecore_timer_add(0.1, _mp_play_view_update_progressbar_cb, ad);
- if(ad->player_state != PLAY_STATE_PLAYING || !ad->prohibit_aul_relaunch)
+ if(ad->player_state != PLAY_STATE_PLAYING || !ad->app_is_foreground)
ecore_timer_freeze(playing_view->progressbar_timer);
return;
edje_object_signal_callback_add(_EDJ(playing_view->play_menu), "favorite_up", "*", _mp_play_view_favourite_cb,
ad);
+ if (playing_view->play_view_screen_mode == MP_SCREEN_MODE_LANDSCAPE)
+ evas_object_size_hint_max_set(playing_view->play_menu, elm_scale_get(), 70 * elm_scale_get());
edje_object_signal_callback_add(_EDJ(playing_view->play_menu), SIGNAL_SHUFFLE, "*", mp_play_control_menu_cb,
ad);
edje_object_signal_callback_add(_EDJ(playing_view->play_menu), SIGNAL_SHUFNON, "*", mp_play_control_menu_cb,
MP_CHECK(ad);
int ret = 0;
- int bt_connected = 0;
+ bool bt_connected = 0;
char *bt_name = NULL;
int earjack = 0;
Elm_Object_Item *navi_item = NULL;
+ Elm_Object_Item *land_navi_item = NULL;
Evas_Object *btn = NULL;
+ Evas_Object *land_btn = NULL;
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK(playing_view);
+ if (playing_view->play_view_screen_mode == MP_SCREEN_MODE_LANDSCAPE)
+ {
+ DEBUG_TRACE("");
+ land_navi_item = playing_view->play_head;
+ }
+#ifdef MP_SOUND_PLAYER
+ navi_item = sp_view_mgr_get_play_view_navi_item(ad->view_mgr);
+#else
navi_item = mp_view_manager_get_play_view_navi_item(ad);
+#endif
if(navi_item)
btn = elm_object_item_part_content_get(navi_item, ELM_NAVIFRAME_ITEM_TITLE_LEFT_BTN);
- ret = mm_sound_route_get_a2dp_status(&bt_connected, &bt_name);
+ if(land_navi_item)
+ land_btn = elm_object_item_part_content_get(land_navi_item, ELM_NAVIFRAME_ITEM_TITLE_LEFT_BTN);
+
+
+ ret = sound_manager_get_a2dp_status(&bt_connected, &bt_name);
+ if (ret != SOUND_MANAGER_ERROR_NONE)
+ {
+ WARN_TRACE("Fail to sound_manager_get_a2dp_status ret = [%d]", ret);
+ }
+
if (!bt_connected)
{
if (vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &earjack))
elm_object_item_part_content_unset(navi_item, ELM_NAVIFRAME_ITEM_TITLE_LEFT_BTN);
evas_object_del(btn);
}
+ if(land_btn)
+ {
+ elm_object_item_part_content_unset(land_navi_item, ELM_NAVIFRAME_ITEM_TITLE_LEFT_BTN);
+ evas_object_del(land_btn);
+ }
}
else
{
if(!btn && navi_item)
{
- Evas_Object *btn = mp_widget_create_title_btn(ad->library->cur_view, NULL, MP_ICON_SOUND_PATH,
+ Evas_Object *parent = NULL;
+#ifdef MP_SOUND_PLAYER
+ parent = sp_view_mgr_get_naviframe(ad->view_mgr);
+#else
+ parent = ad->naviframe;
+#endif
+ Evas_Object *btn = mp_widget_create_title_btn(parent, NULL, MP_ICON_SOUND_PATH,
mp_play_view_set_snd_path_cb, ad);
elm_object_item_part_content_set(navi_item, ELM_NAVIFRAME_ITEM_TITLE_LEFT_BTN, btn);
}
+ if(!land_btn && land_navi_item)
+ {
+ Evas_Object *btn = mp_widget_create_title_btn(playing_view->land_naviframe, NULL, MP_ICON_SOUND_PATH,
+ mp_play_view_set_snd_path_cb, ad);
+ elm_object_item_part_content_set(land_navi_item, ELM_NAVIFRAME_ITEM_TITLE_LEFT_BTN, btn);
+ }
}
}
static void
mp_play_view_back_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
{
+#ifdef MP_SOUND_PLAYER
+ struct appdata *ad = (struct appdata *)data;
+#else
view_data_t *view_data = (view_data_t *) data;
MP_CHECK(view_data);
MP_CHECK_VIEW_DATA(view_data);
struct appdata *ad = view_data->ad;
+#endif
MP_CHECK(ad);
mp_retm_if(ad->navi_effect_in_progress, "navi effect in progress");
- mp_common_back_button_cb(data, obj, NULL);
+#ifdef MP_SOUND_PLAYER
+ if (ad->player_state == PLAY_STATE_PLAYING || ad->player_state == PLAY_STATE_PAUSED) {
+ mp_debug("mm player alive");
+ elm_win_lower(ad->win_main);
+ } else {
+ mp_debug("terminate");
+ mp_app_exit(ad);
+ }
+#else
+ if(ad->direct_win_minimize)
+ elm_win_lower(ad->win_main);
+ else
+ mp_common_back_button_cb(data, obj, NULL);
+
+ if (ad->music_setting_change_flag)
+ {
+ mp_debug("# menu update #");
+ mp_util_set_library_controlbar_items(ad);
+ ad->music_setting_change_flag = false;
+ }
+#endif
}
static bool
Evas_Object *play_control = NULL, *play_icon = NULL;
- play_control =
+ if (playing_view->play_view_screen_mode == MP_SCREEN_MODE_LANDSCAPE)
+ play_control =
+ mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "music/playing/main/control_ls");
+ else
+ play_control =
mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "music/playing/main/control");
MP_CHECK_FALSE(play_control);
elm_object_part_content_set(play_control, "buttons", play_icon);
evas_object_data_set(play_control, "buttons", play_icon);
-
- edje_object_signal_callback_add(_EDJ(play_icon), "info_clicked", CTR_EDJ_SIG_SRC, mp_play_view_back_cb,
+#ifdef MP_SOUND_PLAYER
+ edje_object_signal_callback_add(_EDJ(play_icon), "info_clicked", CTR_EDJ_SIG_SRC, mp_play_view_back_cb, ad);
+#else
+ edje_object_signal_callback_add(_EDJ(play_icon), "info_clicked", CTR_EDJ_SIG_SRC, mp_play_view_back_cb,
mp_util_get_view_data(ad));
-
+#endif
edje_object_signal_callback_add(_EDJ(play_icon), "volume_clicked", CTR_EDJ_SIG_SRC, mp_play_control_volume_cb,
ad);
+#ifdef MP_FEATURE_VOLMUE_MUTE
+ edje_object_signal_callback_add(_EDJ(play_icon), "vol_btn_down", CTR_EDJ_SIG_SRC,
+ mp_play_control_volume_down_cb, ad);
+ edje_object_signal_callback_add(_EDJ(play_icon), "vol_btn_up", CTR_EDJ_SIG_SRC, mp_play_control_volume_up_cb,
+ ad);
+#endif
edje_object_signal_callback_add(_EDJ(play_icon), "play_clicked", CTR_EDJ_SIG_SRC, mp_play_control_play_cb, ad);
edje_object_signal_callback_add(_EDJ(play_icon), "pause_clicked", CTR_EDJ_SIG_SRC, mp_play_control_play_cb, ad);
edje_object_signal_callback_add(_EDJ(play_icon), "rew_btn_down", CTR_EDJ_SIG_SRC, mp_play_control_rew_cb, ad);
edje_object_signal_callback_add(_EDJ(play_icon), "rew_btn_up", CTR_EDJ_SIG_SRC, mp_play_control_rew_cb, ad);
- MMPlayerStateType player_state = mp_player_mgr_get_state();
- if (player_state != MM_PLAYER_STATE_PLAYING)
+ player_state_e player_state = mp_player_mgr_get_state();
+ if (player_state != PLAYER_STATE_PLAYING)
edje_object_signal_emit(_EDJ(play_icon), "play", CTR_PROG_SIG_SRC);
else
edje_object_signal_emit(_EDJ(play_icon), "pause", CTR_PROG_SIG_SRC);
return FALSE;
}
- if (playing_view->transition_state)
+ if (playing_view->transition_state) // transiton(transition_state) should be transiit callback
{
mp_debug("skip_by transiton effect");
return FALSE;
mp_play_view_progress_timer_freeze(ad);
- mp_play_view_set_menu_state(ad, ad->show_optional_menu, false);
+ mp_play_view_set_menu_state(ad, false, false);
mp_debug("current index = %d, set index = %d", current_item->list_index, it->list_index);
mp_play_list_item_copy(&playing_view->playing_list_item, it);
next = _mp_play_view_create_next_item(it, ad);
-
MP_CHECK_FALSE(next);
-
playing_view->play_view_next = next;
elm_object_part_content_set(playing_view->layout, "list_content_temp", next);
edje_object_signal_callback_add(elm_layout_edje_get(playing_view->layout), "transit_done", "*",
playing_view->transition_state = true;
+ if (!playing_view->play_view_screen_mode)
+ {
+ mp_evas_object_del(playing_view->albumart_image);
+ playing_view->albumart_image = _mp_play_view_create_bg_map(data, playing_view->play_view, it);
+ elm_object_part_content_set(playing_view->play_view, "album_art", playing_view->albumart_image);
+ evas_object_show(playing_view->albumart_image);
+ evas_object_repeat_events_set(playing_view->albumart_image, 1);
+ }
+
return true;
}
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK_FALSE(playing_view);
+ {
+ elm_object_part_content_set(playing_view->layout, "list_content", playing_view->play_view);
+
+ mp_playing_view *playing_view = ad->playing_view;
+ MP_CHECK_FALSE(playing_view);
- elm_object_part_content_set(playing_view->layout, "list_content", playing_view->play_view);
- view_data_t *view_data = NULL;
+#ifdef MP_SOUND_PLAYER
+ sp_view_mgr_push_view_content(ad->view_mgr, playing_view->layout, SP_VIEW_TYPE_PLAY);
+ sp_view_mgr_set_title_label(ad->view_mgr, GET_SYS_STR("IDS_COM_SK_PLAY"));
+ mp_play_view_set_snd_path_sensitivity(ad);
+#else
+ MP_CHECK_FALSE(ad->naviframe);
- MP_CHECK_FALSE(ad->library);
- MP_CHECK_FALSE(ad->library->cur_view);
+ view_data_t *view_data = NULL;
+ view_data = evas_object_data_get(ad->naviframe, "view_data");
+ MP_CHECK_FALSE(view_data);
+ mp_view_manager_push_view_content(view_data, playing_view->layout, MP_VIEW_CONTENT_PLAY);
- view_data = evas_object_data_get(ad->library->cur_view, "view_data");
- MP_CHECK_FALSE(view_data);
- mp_view_manager_push_view_content(view_data, playing_view->layout, MP_VIEW_CONTENT_PLAY);
- mp_view_manager_set_title_and_buttons(view_data, GET_SYS_STR("IDS_COM_SK_PLAY"), ad);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_view_manager_set_title_and_buttons", 0);
+ mp_view_manager_set_title_and_buttons(view_data, NULL, ad);
+ MP_TA_ACUM_ITEM_END(" mp_view_manager_set_title_and_buttons", 0);
+#endif
+ }
return true;
{
MP_CHECK(emission);
- if (!strcmp(emission, "option_3_clicked"))
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+
+ if (!strcmp(emission, "option_1_clicked"))
+ mp_menu_share_cb(data, obj, NULL);
+ else if (!strcmp(emission, "option_2_clicked"))
+ mp_menu_set_cb(data, obj, NULL);
+ else if (!strcmp(emission, "option_3_clicked"))
{
- struct appdata *ad = (struct appdata *)data;
- MP_CHECK(ad);
- mp_play_view_info_cb(data, obj, NULL);
+ MP_CHECK(ad->playing_view);
+ if (ad->playing_view->play_view_screen_mode != MP_SCREEN_MODE_LANDSCAPE)
+ mp_play_view_info_cb(data, obj, NULL);
}
}
elm_object_part_content_set(parents, "player_info", ctrl_layout);
- *progress = mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "music/playing/progress_box");
+ //2 Create progress bar
+ if (playing_view->play_view_screen_mode == MP_SCREEN_MODE_LANDSCAPE)
+ *progress =
+ mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "music/playing/progress_box_ls");
+ else
+ *progress = mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "music/playing/progress_box");
Evas_Object *play_progress =
mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "music/playing/progress_box/progress_bar");
elm_object_part_content_set(playing_view->layout, "player_info", play_info);
playing_view->play_title = play_info;
- Evas_Object *play_options =
- mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "player_view_options");
- elm_object_part_content_set(playing_view->layout, "player_options", play_options);
+ if (playing_view->play_view_screen_mode != MP_SCREEN_MODE_LANDSCAPE)
+ {
+ Evas_Object *play_options =
+ mp_common_load_edj(playing_view->layout, PLAY_VIEW_EDJ_NAME, "player_view_options");
+
+ edje_object_part_text_set(_EDJ(play_options), "option_1", GET_SYS_STR("IDS_COM_BUTTON_SHARE"));
+ mp_language_mgr_register_object(play_options, OBJ_TYPE_EDJE_OBJECT, "option_1", "IDS_COM_BUTTON_SHARE");
+ edje_object_part_text_set(_EDJ(play_options), "option_2", GET_SYS_STR("IDS_COM_SK_SET"));
+ mp_language_mgr_register_object(play_options, OBJ_TYPE_EDJE_OBJECT, "option_2", "IDS_COM_SK_SET");
+ edje_object_part_text_set(_EDJ(play_options), "option_3", GET_SYS_STR("IDS_COM_BODY_DETAILS"));
+ mp_language_mgr_register_object(play_options, OBJ_TYPE_EDJE_OBJECT, "option_3", "IDS_COM_BODY_DETAILS");
- edje_object_part_text_set(_EDJ(play_options), "option_3", GET_SYS_STR("IDS_COM_BODY_DETAILS"));
+ elm_object_part_content_set(playing_view->layout, "player_options", play_options);
- edje_object_signal_callback_add(_EDJ(play_options), "option_3_clicked", "*", _mp_play_view_play_option_cb,
- ad);
+ edje_object_signal_callback_add(_EDJ(play_options), "option_1_clicked", "*", _mp_play_view_play_option_cb,
+ ad);
+ edje_object_signal_callback_add(_EDJ(play_options), "option_2_clicked", "*", _mp_play_view_play_option_cb,
+ ad);
+ edje_object_signal_callback_add(_EDJ(play_options), "option_3_clicked", "*", _mp_play_view_play_option_cb,
+ ad);
+ }
return ctrl_layout;
}
+static void
+_mp_play_view_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ struct appdata *ad = data;
+ MP_CHECK(ad);
+
+ mp_playing_view *playing_view = ad->playing_view;
+ MP_CHECK(playing_view);
+
+ Evas_Coord w, h;
+ edje_object_part_geometry_get(_EDJ(playing_view->play_view), "album_bg", NULL, NULL, &w, &h);
+ mp_debug("album bg size = [%d * %d]", w, h);
+
+ if (playing_view->albumart_bg)
+ {
+ evas_object_image_load_size_set(playing_view->albumart_bg, w, h);
+ evas_object_image_fill_set(playing_view->albumart_bg, 0, 0, w, h);
+ }
+}
+
static bool
_mp_play_view_create_playing_layout(void *data, Evas_Object * parents_layout, bool b_next)
MP_CHECK_FALSE(playing_view);
//2 Create playing view
- playing_view->play_view = mp_common_load_edj(parents_layout, PLAY_VIEW_EDJ_NAME, "mp_play_view");
+ if (playing_view->play_view_screen_mode == MP_SCREEN_MODE_LANDSCAPE)
+ playing_view->play_view =
+ mp_common_load_edj(parents_layout, PLAY_VIEW_EDJ_NAME, "mp_play_view_landscape");
+ else
+ playing_view->play_view = mp_common_load_edj(parents_layout, PLAY_VIEW_EDJ_NAME, "mp_play_view");
MP_CHECK_FALSE(playing_view->play_view);
+ evas_object_event_callback_add(playing_view->play_view, EVAS_CALLBACK_RESIZE, _mp_play_view_resize_cb, ad);
+
//hide mute popup
edje_object_signal_emit(_EDJ(playing_view->play_view), SIGNAL_MAIN_MUTE_HIDE, "*");
evas_object_smart_callback_add(event_box, "mouse.flick.left", _mp_play_view_eventbox_flick_left_cb, ad);
evas_object_smart_callback_add(event_box, "mouse.flick.right", _mp_play_view_eventbox_flick_right_cb, ad);
-
evas_object_show(event_box);
elm_object_part_content_set(playing_view->play_view, "event_box", event_box);
evas_object_data_set(playing_view->play_view, "event_box", event_box);
- mp_evas_object_del(playing_view->albumart_bg);
- playing_view->albumart_bg = evas_object_image_add(ad->evas);
- int w, h;
- ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
- evas_object_image_load_size_set(playing_view->albumart_bg, w, h*HD_ALBUM_IMAGE_H_SCALE);
- evas_object_image_fill_set(playing_view->albumart_bg, 0, 0, w, h*HD_ALBUM_IMAGE_H_SCALE);
+ if (playing_view->play_view_screen_mode == MP_SCREEN_MODE_LANDSCAPE)
+ { // landscape mode
+ playing_view->albumart_img = elm_bg_add(playing_view->play_view);
+ elm_bg_load_size_set(playing_view->albumart_img, MP_PLAY_VIEW_ARTWORK_SIZE, MP_PLAY_VIEW_ARTWORK_SIZE);
+ elm_object_part_content_set(playing_view->play_view, "album_art", playing_view->albumart_img);
+ }
+ else
+ {
+ mp_evas_object_del(playing_view->albumart_bg);
+ playing_view->albumart_bg = evas_object_image_add(ad->evas);
elm_object_part_content_set(playing_view->play_view, "album_bg", playing_view->albumart_bg);
+ }
playing_view->play_ctrl =
_mp_play_view_create_ctrl_layout(ad, playing_view->play_view, &playing_view->play_progressbar, FALSE);
return TRUE;
}
+static Eina_Bool
+_mp_play_view_idler_cb(void *data)
+{
+ startfunc;
+
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK_FALSE(ad);
+ MP_CHECK_FALSE(ad->playing_view->albumart_bg);
+
+ Evas_Coord img_x, img_y, img_w, img_h;
+ evas_object_geometry_get(ad->playing_view->albumart_bg, &img_x, &img_y, &img_w, &img_h);
+
+ ad->album_image_w = img_w;
+ ad->album_image_h = img_h;
+
+ _mp_play_view_album_art_update(ad);
+ ad->playview_show_idler = NULL;
+
+ endfunc;
+ return EINA_FALSE;
+}
+
static bool
_mp_play_view_create_layout(void *data)
{
return TRUE;
}
- MP_CHECK_FALSE(ad->library);
- MP_CHECK_FALSE(ad->library->cur_view);
- playing_view->layout =
- mp_common_load_edj(ad->library->cur_view, PLAY_VIEW_EDJ_NAME, "mp_play_view_layout");
- MP_CHECK_FALSE(playing_view->layout);
+ {
+ Evas_Object *parent = NULL;
+#ifdef MP_SOUND_PLAYER
+ parent = sp_view_mgr_get_naviframe(ad->view_mgr);
+#else
+ MP_CHECK_FALSE(ad->naviframe);
+ parent = ad->naviframe;
+#endif
+ playing_view->layout =
+ mp_common_load_edj(parent, PLAY_VIEW_EDJ_NAME, "mp_play_view_layout");
+ MP_CHECK_FALSE(playing_view->layout);
+ }
+ MP_CHECK_FALSE(playing_view->layout);
evas_object_event_callback_add(playing_view->layout, EVAS_CALLBACK_DEL, _mp_play_view_destory_cb, playing_view);
//2 Create playing view
+ MP_TA_ACUM_ITEM_BEGIN(" mp_play_view_create_playing_layout", 0);
_mp_play_view_create_playing_layout(ad, playing_view->layout, FALSE);
+ MP_TA_ACUM_ITEM_END(" mp_play_view_create_playing_layout", 0);
//2 Create menu layout
_mp_play_view_create_menu(ad);
_mp_play_view_create_control_bar(ad);
//2 Push at navibar
+ MP_TA_ACUM_ITEM_BEGIN(" mp_play_view_push_navibar", 0);
_mp_play_view_push_navibar(ad);
+ MP_TA_ACUM_ITEM_END(" mp_play_view_push_navibar", 0);
+
+ if(!ad->playview_show_idler)
+ ad->playview_show_idler = ecore_idler_add(_mp_play_view_idler_cb, ad);
mp_debug("");
return true;
}
+
void
_mp_play_view_delete_progress_timer(void *data)
{
mp_debug("set hide state");
mp_ecore_timer_del(ad->longpress_timer);
- _mp_play_view_menu_visible_set(ad, FALSE, anim);
+ _mp_play_view_menu_visible_set(ad, FALSE, anim);
}
else
{
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK(playing_view);
+ MP_CHECK(playing_view->progressbar_timer);
- if (playing_view->progressbar_timer && ad->player_state == PLAY_STATE_PLAYING)
+ if (ad->player_state == PLAY_STATE_PLAYING)
{
ecore_timer_thaw(playing_view->progressbar_timer);
}
+ else if (ad->player_state == PLAY_STATE_PAUSED)
+ {
+ mp_play_view_update_progressbar(ad);
+ }
}
void
return true;
}
-bool
-mp_play_view_load_track(void *data)
+static void
+_mp_play_view_album_art_update(void *data)
+{
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+ mp_playing_view *playing_view = ad->playing_view;
+ MP_CHECK(playing_view);
+
+ Evas_Coord img_x, img_y, img_w, img_h;
+ evas_object_geometry_get(playing_view->albumart_image, &img_x, &img_y, &img_w, &img_h);
+ if ( playing_view->albumart_width <= 0 && playing_view->albumart_height <= 0
+ && ad->album_image_w > 0 && ad->album_image_h > 0
+ && img_w == ad->album_image_w && img_h == ad->album_image_h ) {
+ playing_view->albumart_width = img_w;
+ playing_view->albumart_height = img_h;
+ }
+ DEBUG_TRACE ("albumart_width=%d, albumart_height=%d", playing_view->albumart_width, playing_view->albumart_height);
+
+ if (0 == img_x && playing_view->albumart_width == img_w && playing_view->albumart_height == img_h)
+ {
+ mp_evas_object_del(playing_view->pre_albumart_image_reflection);
+ }
+ if (ad->info_ug_base && !ad->info_back_play_view_flag)
+ {
+ EVAS_OBJ_HIDE(playing_view->albumart_image_reflection);
+ EVAS_OBJ_HIDE(playing_view->pre_albumart_image_reflection);
+ }
+ else
+ {
+ EVAS_OBJ_SHOW(playing_view->albumart_image_reflection);
+ EVAS_OBJ_SHOW(playing_view->pre_albumart_image_reflection);
+ }
+
+ double zoomx = 1.0, zoomy = 1.0;
+ int x = 0, y = 0;
+ int albumart_image_raw_w = 0, albumart_image_raw_h = 0;
+ int albumart_image_x = 0, albumart_image_y = 0, albumart_image_w = 0, albumart_image_h = 0;
+
+ if (playing_view->albumart_image_reflection)
+ {
+ if (playing_view->flick_direction == 1)
+ {
+ x = img_x + playing_view->albumart_width;
+ }
+ else if (playing_view->flick_direction == 2)
+ {
+ x = img_x - playing_view->albumart_width;
+ }
+ y = img_y + playing_view->albumart_height;
+
+ evas_object_geometry_get(playing_view->albumart_image_reflection, &albumart_image_x,
+ &albumart_image_y, &albumart_image_w, &albumart_image_h);
+ evas_object_image_size_get(playing_view->albumart_image_reflection, &albumart_image_raw_w,
+ &albumart_image_raw_h);
+
+ x = x - (albumart_image_raw_w - playing_view->albumart_width) / 2;
+ y = y - (albumart_image_raw_h - playing_view->albumart_height) / 2;
+ zoomx = playing_view->albumart_width / ((double)albumart_image_raw_w);
+ zoomy = playing_view->albumart_height / ((double)albumart_image_raw_h);
+
+ Evas_Map *m2 = evas_map_new(4);
+ MP_CHECK(m2);
+ evas_map_smooth_set(m2, EINA_TRUE);
+ evas_map_point_coord_set(m2, 0, x, y, 0);
+ evas_map_point_image_uv_set(m2, 0, 0, albumart_image_raw_h);
+ if (img_x == 0 && playing_view->hide_image_flag)
+ {
+ evas_map_point_color_set(m2, 0, ALBUMART_IMAGE_SHADOW_RGBA1);
+ }
+ else
+ {
+ evas_map_point_color_set(m2, 0, ALBUMART_IMAGE_SHADOW_RGBA);
+ }
+
+ evas_map_point_coord_set(m2, 1, (x + albumart_image_raw_w), y, 0);
+ evas_map_point_image_uv_set(m2, 1, albumart_image_raw_w, albumart_image_raw_h);
+ if (img_x == 0 && playing_view->hide_image_flag)
+ {
+ evas_map_point_color_set(m2, 1, ALBUMART_IMAGE_SHADOW_RGBA1);
+ }
+ else
+ {
+ evas_map_point_color_set(m2, 1, ALBUMART_IMAGE_SHADOW_RGBA);
+ }
+
+ evas_map_point_coord_set(m2, 2, (x + albumart_image_raw_w), (y + albumart_image_raw_h), 0);
+ evas_map_point_image_uv_set(m2, 2, albumart_image_raw_w, 0);
+ evas_map_point_color_set(m2, 2, ALBUMART_IMAGE_SHADOW_RGBA2);
+
+ evas_map_point_coord_set(m2, 3, x, (y + albumart_image_raw_h), 0);
+ evas_map_point_image_uv_set(m2, 3, 0, 0);
+ evas_map_point_color_set(m2, 3, ALBUMART_IMAGE_SHADOW_RGBA2);
+
+ evas_map_util_3d_rotate(m2, 0, 0, 0, x + (albumart_image_raw_w / 2), y + (albumart_image_raw_h / 2), 0);
+ evas_map_util_3d_perspective(m2, x, y, 0, albumart_image_raw_w * 10);
+ evas_map_util_zoom(m2, zoomx, zoomy, x + (albumart_image_raw_w / 2), y + (albumart_image_raw_h / 2));
+ evas_object_map_enable_set(playing_view->albumart_image_reflection, EINA_TRUE);
+ evas_object_map_set(playing_view->albumart_image_reflection, m2);
+ evas_map_free(m2);
+
+ evas_object_repeat_events_set(playing_view->albumart_image_reflection, 1);
+ }
+
+ if (playing_view->pre_albumart_image_reflection)
+ {
+ x = img_x;
+ y = img_y + playing_view->albumart_height;
+ evas_object_geometry_get(playing_view->pre_albumart_image_reflection, &albumart_image_x,
+ &albumart_image_y, &albumart_image_w, &albumart_image_h);
+ evas_object_image_size_get(playing_view->pre_albumart_image_reflection, &albumart_image_raw_w,
+ &albumart_image_raw_h);
+ x = x - (albumart_image_raw_w - playing_view->albumart_width) / 2;
+ y = y - (albumart_image_raw_h - playing_view->albumart_height) / 2;
+ zoomx = playing_view->albumart_width / ((double)albumart_image_raw_w);
+ zoomy = playing_view->albumart_height / ((double)albumart_image_raw_h);
+
+ Evas_Map *m4 = evas_map_new(4);
+ MP_CHECK(m4);
+ evas_map_smooth_set(m4, EINA_TRUE);
+ evas_map_point_coord_set(m4, 0, x, y, 0);
+ evas_map_point_image_uv_set(m4, 0, 0, albumart_image_raw_h);
+ if (img_x == 0 && playing_view->hide_image_flag)
+ {
+ evas_map_point_color_set(m4, 0, ALBUMART_IMAGE_SHADOW_RGBA1);
+ }
+ else
+ {
+ evas_map_point_color_set(m4, 0, ALBUMART_IMAGE_SHADOW_RGBA);
+ }
+
+ evas_map_point_coord_set(m4, 1, (x + albumart_image_raw_w), y, 0);
+ evas_map_point_image_uv_set(m4, 1, albumart_image_raw_w, albumart_image_raw_h);
+ if (img_x == 0 && playing_view->hide_image_flag)
+ {
+ evas_map_point_color_set(m4, 1, ALBUMART_IMAGE_SHADOW_RGBA1);
+ }
+ else
+ {
+ evas_map_point_color_set(m4, 1, ALBUMART_IMAGE_SHADOW_RGBA);
+ }
+
+ evas_map_point_coord_set(m4, 2, (x + albumart_image_raw_w), (y + albumart_image_raw_h), 0);
+ evas_map_point_image_uv_set(m4, 2, albumart_image_raw_w, 0);
+ evas_map_point_color_set(m4, 2, ALBUMART_IMAGE_SHADOW_RGBA2);
+
+ evas_map_point_coord_set(m4, 3, x, (y + albumart_image_raw_h), 0);
+ evas_map_point_image_uv_set(m4, 3, 0, 0);
+ evas_map_point_color_set(m4, 3, ALBUMART_IMAGE_SHADOW_RGBA2);
+
+ evas_map_util_3d_rotate(m4, 0, 0, 0, x + (albumart_image_raw_w / 2), y + (albumart_image_raw_h / 2), 0);
+ evas_map_util_zoom(m4, zoomx, zoomy, x + (albumart_image_raw_w / 2), y + (albumart_image_raw_h / 2));
+ evas_map_util_3d_perspective(m4, x, y, 0, albumart_image_raw_w * 10);
+ evas_object_map_enable_set(playing_view->pre_albumart_image_reflection, EINA_TRUE);
+ evas_object_map_set(playing_view->pre_albumart_image_reflection, m4);
+ evas_map_free(m4);
+ }
+}
+
+
+static void
+_mp_play_view_bg_map_move(void *data, Evas * e, Evas_Object * obj, void *event_info)
+{
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+ mp_playing_view *playing_view = ad->playing_view;
+ MP_CHECK(ad->playing_view);
+
+ _mp_play_view_album_art_update(data);
+
+ if (playing_view->hide_image_flag && playing_view->flick_direction == 0)
+ {
+ EVAS_OBJ_HIDE(playing_view->pre_albumart_image_reflection);
+ }
+
+ EVAS_OBJ_SHOW(obj);
+}
+
+static void
+_mp_play_view_bg_map_resize(void *data, Evas * e, Evas_Object * obj, void *event_info)
+{
+ startfunc;
+
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+ mp_playing_view *playing_view = ad->playing_view;
+ MP_CHECK(playing_view);
+
+ playing_view->hide_image_flag = true;
+
+ if (playing_view->hide_image_flag && playing_view->flick_direction == 0)
+ {
+ EVAS_OBJ_HIDE(playing_view->pre_albumart_image_reflection);
+ }
+
+ endfunc;
+}
+
+
+static void
+_mp_play_view_bg_map_hide(void *data, Evas * e, Evas_Object * obj, void *event_info)
+{
+ startfunc;
+
+ endfunc;
+}
+
+static void
+_mp_play_view_bg_map_show(void *data, Evas * e, Evas_Object * obj, void *event_info)
+{
+ startfunc;
+
+ if (!data)
+ {
+ return;
+ }
+
+ _mp_play_view_album_art_update(data);
+ EVAS_OBJ_SHOW(obj);
+
+ endfunc;
+}
+
+static void
+_mp_play_view_texture_destory_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
+{
+ startfunc;
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+ MP_CHECK(ad->playing_view);
+
+ if(obj == ad->playing_view->albumart_image_reflection)
+ ad->playing_view->albumart_image_reflection = NULL;
+ else if(obj == ad->playing_view->pre_albumart_image_reflection)
+ ad->playing_view->pre_albumart_image_reflection = NULL;
+ else
+ ERROR_TRACE("++++++++ check here ++++++++++");
+}
+
+static Evas_Object *
+_mp_play_view_load_texture(void *data, const char *const tex_path, const int tex_size_width, const int tex_size_height)
+{
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK_NULL(ad);
+
+ Evas_Object *o = evas_object_image_add(ad->evas);
+ evas_object_image_file_set(o, tex_path, NULL);
+ int w = 0, h = 0;
+ evas_object_image_size_get(o, &w, &h);
+ evas_object_image_fill_set(o, 0, 0, w, h);
+ evas_object_resize(o, w, h);
+ evas_object_image_smooth_scale_set(o, 0);
+
+ evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _mp_play_view_texture_destory_cb, ad);
+
+ EVAS_OBJ_HIDE(o);
+ return o;
+}
+
+static void
+_mp_play_view_set_album_art(void *data, char *file_path)
+{
+ startfunc;
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK(ad);
+ mp_playing_view *playing_view = ad->playing_view;
+ MP_CHECK(ad->playing_view);
+
+ EVAS_OBJ_HIDE(playing_view->albumart_image);
+
+ if (playing_view->albumart_image_reflection)
+ {
+ mp_evas_object_del(playing_view->pre_albumart_image_reflection);
+ playing_view->pre_albumart_image_reflection = playing_view->albumart_image_reflection;
+ playing_view->albumart_image_reflection = NULL;
+ evas_object_hide(playing_view->pre_albumart_image_reflection);
+ playing_view->hide_image_flag = false;
+ }
+ playing_view->albumart_image_reflection =
+ _mp_play_view_load_texture(data, file_path, 0, 0);
+
+ endfunc;
+}
+
+Evas_Object *
+_mp_play_view_create_bg_map(void *data, Evas_Object * parents, music_list_item * current_item)
+{
+ startfunc;
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(parents);
+ mp_playing_view *playing_view = ad->playing_view;
+ MP_CHECK_NULL(ad->playing_view);
+
+ Evas_Object *obj = NULL;
+ Evas *evas = NULL;
+
+ evas = evas_object_evas_get(parents);
+
+ if (evas == NULL)
+ {
+ return NULL;
+ }
+
+ obj = edje_object_add(evas);
+
+ MP_CHECK_NULL(current_item);
+
+ //2 get alubmart
+ if (!strstr(PREFIX, current_item->albumart) && mp_util_is_image_valid(ad->evas, current_item->albumart))
+ {
+ mp_debug(" draw album art");
+ _mp_play_view_set_album_art(data, current_item->albumart);
+ }
+ else
+ {
+ _mp_play_view_set_album_art(data, DEFAULT_THUMBNAIL);
+ }
+
+ if (playing_view->albumart_image_reflection)
+ {
+ evas_object_smart_member_add(playing_view->albumart_image_reflection, obj);
+ }
+
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _mp_play_view_bg_map_resize, data);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _mp_play_view_bg_map_move, data);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, _mp_play_view_bg_map_show, data);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _mp_play_view_bg_map_hide, data);
+
+ endfunc;
+ return obj;
+}
+
+static void
+_mp_play_view_update_option_btn_sensitivity(struct appdata *ad)
+{
+ startfunc;
+
+ MP_CHECK(ad);
+ mp_playing_view *playing_view = ad->playing_view;
+ MP_CHECK(playing_view);
+
+ music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
+ MP_CHECK(current_item);
+
+ const char *filename =current_item->filename;
+
+ if (playing_view->play_view_screen_mode != MP_SCREEN_MODE_LANDSCAPE)
+ {
+ Evas_Object *play_options = elm_object_part_content_get(playing_view->layout, "player_options");
+ MP_CHECK(play_options);
+
+ const char *signal = NULL;
+ if (mp_check_file_exist(filename))
+ signal = "sig_enable_option_btn";
+ else
+ signal = "sig_disable_option_btn";
+
+ edje_object_signal_emit(_EDJ(play_options), signal, "c_source");
+ }
+}
+
+
+bool
+mp_play_view_load_track(void *data)
{
startfunc;
music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
MP_CHECK_FALSE(current_item);
- // get alubmart
- if (!strstr(PREFIX, current_item->albumart) && mp_util_is_image_valid(ad->evas, current_item->albumart))
- {
- evas_object_image_file_set(playing_view->albumart_bg, current_item->albumart, NULL);
+ DEBUG_TRACE("ad->screen_mode=%d,flick_direction=%d", ad->screen_mode, playing_view->flick_direction);
+ if (playing_view->play_view_screen_mode)
+ { // landscape mode
+ // get alubmart
+ if (!strstr(PREFIX, current_item->albumart) && mp_util_is_image_valid(ad->evas, current_item->albumart))
+ {
+ elm_bg_file_set(playing_view->albumart_img, current_item->albumart, NULL);
+ }
+ else
+ {
+ elm_bg_file_set(playing_view->albumart_img, DEFAULT_THUMBNAIL, NULL);
+ }
+ evas_object_show(playing_view->albumart_img);
}
else
- {
- evas_object_image_file_set(playing_view->albumart_bg, DEFAULT_THUMBNAIL, NULL);
+ { //portrait mode
+ if (playing_view->flick_direction || MP_SCREEN_MODE_PORTRAIT == ad->screen_mode)
+ {
+ // get alubmart
+ if (!strstr(PREFIX, current_item->albumart) && mp_util_is_image_valid(ad->evas, current_item->albumart))
+ {
+ evas_object_image_file_set(playing_view->albumart_bg, current_item->albumart, NULL);
+ }
+ else
+ {
+ evas_object_image_file_set(playing_view->albumart_bg, DEFAULT_THUMBNAIL, NULL);
+ }
+ evas_object_show(playing_view->albumart_bg);
+
+ mp_evas_object_del(playing_view->albumart_image);
+ music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
+ playing_view->albumart_image =
+ _mp_play_view_create_bg_map(data, playing_view->play_view, current_item);
+ elm_object_part_content_set(playing_view->play_view, "album_art", playing_view->albumart_image);
+ evas_object_show(playing_view->albumart_image);
+ evas_object_repeat_events_set(playing_view->albumart_image, 1);
+ playing_view->flick_direction = 0;
+ }
}
- evas_object_show(playing_view->albumart_bg);
-
- playing_view->flick_direction = 0;
+ MP_TA_ACUM_ITEM_BEGIN(" _mp_play_view_load_track_info", 0);
_mp_play_view_load_track_info(data, mp_play_list_get_current_item(ad->playing_list));
+ MP_TA_ACUM_ITEM_END(" _mp_play_view_load_track_info", 0);
+
+ /* disable share/set button when file do not exist */
+ _mp_play_view_update_option_btn_sensitivity(ad);
endfunc;
return true;
}
+#ifndef MP_SOUND_PLAYER
+/**
+ * load play view by path use for add to home case
+ *
+ * @param struct appdata *ad, char *path, int fid
+ * @return FALSE or TRUE if it success create
+ * @author aramie.kim@samsung.com
+ */
bool
mp_play_view_load_by_path(struct appdata * ad, char *path)
if (ad->playing_view)
{
- evas_object_del(ad->playing_view->play_control);
+ mp_evas_object_del(ad->playing_view->play_control);
_mp_play_view_create_control_bar(ad);
mp_play_view_play_item(ad, current_item, false, true);
}
else
{
mp_play_view_load(ad);
- MP_CHECK_FALSE(ad->library);
- MP_CHECK_FALSE(ad->library->cur_view);
- evas_object_smart_callback_add(ad->library->cur_view, "transition,finished",
+ MP_CHECK_FALSE(ad->naviframe);
+ evas_object_smart_callback_add(ad->naviframe, "transition,finished",
_mp_play_view_start_request, ad);
}
static void
_mp_play_view_start_request(void *data, Evas_Object * obj, void *event_info)
{
+ MP_TA_ACUM_ITEM_END("navi_frame_transition_time", 0);
struct appdata *ad = (struct appdata *)data;
mp_retm_if(!ad, "ad");
_mp_play_view_init_progress_bar(data);
- evas_object_smart_callback_del(ad->library->cur_view, "transition,finished", _mp_play_view_start_request);
+ evas_object_smart_callback_del(ad->naviframe, "transition,finished", _mp_play_view_start_request);
endfunc;
else
reqest_play = true;
- if (layout_data->view_mode == MP_VIEW_MODE_DEFAULT)
- result = mp_play_list_create_play_list(ad, layout_data->svc_handle, layout_data->item_count, index, layout_data->playlist_id); //set current item here!!1
- else
- result = mp_play_list_create_play_list(ad, layout_data->track_handle, layout_data->track_count, index, layout_data->playlist_id); //use track_handle when playback started from search result...
+ MP_TA_ACUM_ITEM_BEGIN(" create_play_list", 0);
+ mp_media_list_h svc_handle = NULL;
+ int item_count = 0;
+ if (layout_data->view_mode == MP_VIEW_MODE_DEFAULT) {
+ svc_handle = layout_data->svc_handle; //set current item here!!1
+ item_count = layout_data->item_count;
+ }
+ else {
+ svc_handle = layout_data->track_handle; //use track_handle when playback started from search result...
+ item_count = layout_data->track_count;
+ }
+
+ result = mp_play_list_create_play_list(ad, svc_handle, item_count, index, layout_data->playlist_id); //set current item here!!1
+
+ MP_TA_ACUM_ITEM_END(" create_play_list", 0);
current_item = mp_play_list_get_current_item(ad->playing_list); //reget current item
MP_CHECK_EXCEP(result);
MP_CHECK_EXCEP(ad->playing_list);
- if (ad->loadtype != LOAD_PLAY)
+ // TODO: support recent play for voice ui.
+ if (ad->loadtype != LOAD_VOICE_UI) {
+ MP_TA_ACUM_ITEM_BEGIN(" mp_setting_save_last_played", 0);
mp_setting_save_last_played(layout_data); //store playlist info.
+ MP_TA_ACUM_ITEM_END(" mp_setting_save_last_played", 0);
+ }
if (layout_data->type_str)
ad->playing_list->type_string = g_strdup(layout_data->type_str);
ad->playing_list->item_type = layout_data->track_type;
- if (ad->loadtype == LOAD_PLAY) //when there is no transition effect, directly play track.
+ if (ad->loadtype == LOAD_VOICE_UI) //when there is no transition effect, directly play track.
{
ad->paused_by_user = FALSE;
mp_play_destory(ad);
}
else
{
+ MP_TA_ACUM_ITEM_BEGIN(" mp_play_view_load", 0);
mp_play_view_load(ad);
+ MP_TA_ACUM_ITEM_END(" mp_play_view_load", 0);
{
if (reqest_play)
- evas_object_smart_callback_add(ad->library->cur_view, "transition,finished",
+ evas_object_smart_callback_add(ad->naviframe, "transition,finished",
_mp_play_view_start_request, ad);
+
}
}
}
return false;
}
-
+#endif
bool
mp_play_view_play_item(void *data, struct music_list_item * it, bool effect_value, bool move_left)
if (effect_value && (ad->playing_list->count > 1))
{
- if(ad->prohibit_aul_relaunch)
+ if(ad->app_is_foreground)
_mp_play_view_transit_by_item(data, it, move_left);
else
{
return true;
}
+
+
+bool
+mp_play_view_set_screen_mode(void *data, int mode)
+{
+ startfunc;
+
+ struct appdata *ad = (struct appdata *)data;
+ MP_CHECK_FALSE(ad);
+
+ if (mode == MP_SCREEN_MODE_LANDSCAPE)
+ {
+ mp_playing_view *playing_view = ad->playing_view;
+
+ if (playing_view)
+ {
+ playing_view->play_view_screen_mode = mode;
+
+ if (playing_view->layout)
+ {
+ evas_object_hide(playing_view->layout);
+
+ mp_play_view_stop_transit(data);
+
+ if (playing_view->layout)
+ {
+ ad->backup_layout_play_view = playing_view->layout;
+ playing_view->layout = NULL;
+ }
+
+ ad->backup_playing_view = playing_view;
+ if(playing_view->progressbar_timer)
+ ecore_timer_freeze(playing_view->progressbar_timer);
+
+ ad->playing_view = NULL;
+ }
+ }
+ }
+ else
+ {
+ if (mp_play_list_get_current_item(ad->playing_list)
+ && ad->backup_playing_view && ad->backup_layout_play_view)
+ {
+ ad->playing_view = ad->backup_playing_view;
+ ad->playing_view->layout = ad->backup_layout_play_view;
+ ad->playing_view->play_view_screen_mode = MP_SCREEN_MODE_PORTRAIT;
+
+ mp_play_view_stop_transit(ad); //reset transition effect
+
+ _mp_play_view_set_menu_item(ad); //reset menu item
+
+ mp_play_view_refresh(ad);
+
+ evas_object_show(ad->playing_view->layout);
+ evas_object_show(ad->base_layout_main);
+
+ ad->backup_playing_view = NULL;
+ ad->backup_layout_play_view = NULL;
+
+ }
+ else
+ evas_object_show(ad->base_layout_main);
+
+ }
+
+ endfunc;
+
+ return true;
+}
+
+#ifndef MP_SOUND_PLAYER
bool
mp_play_view_create_library(void *data)
{
mp_library_create(ad);
MP_CHECK_FALSE(ad->library);
-
- elm_toolbar_item_selected_set(ad->library->ctltab_songs, EINA_TRUE);
}
ad->b_add_tracks = 0;
return true;
}
+#endif
+/**
+ * create play view
+ *
+ * @param data ,appdata
+ * @return FALSE or TRUE if it success create
+ * @author aramie.kim@samsung.com
+ */
bool
mp_play_view_create(void *data)
MP_CHECK_FALSE(playing_view);
if (playing_view->layout)
+ {
mp_evas_object_del(playing_view->layout); //=> call _mp_play_view_layout_del_cb watchout
+ }
else
IF_FREE(ad->playing_view);
struct appdata *ad = (struct appdata *)data;
MP_CHECK_FALSE(ad);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_play_view_create", 0);
mp_play_view_create(data);
+ MP_TA_ACUM_ITEM_END(" mp_play_view_create", 0);
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK_FALSE(playing_view);
+ MP_TA_ACUM_ITEM_BEGIN(" _mp_play_view_create_layout", 0);
_mp_play_view_create_layout(data);
+ MP_TA_ACUM_ITEM_END(" _mp_play_view_create_layout", 0);
MP_CHECK_FALSE(playing_view->layout);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_play_view_refresh", 0);
mp_play_view_refresh(data);
+ MP_TA_ACUM_ITEM_END(" mp_play_view_refresh", 0);
endfunc;
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK_FALSE(playing_view);
+#ifdef MP_SOUND_PLAYER
+ mp_play_view_unswallow_info_ug_layout(ad);
+
+ if (ad->playing_view)
+ sp_view_mgr_pop_view_to(ad->view_mgr, SP_VIEW_TYPE_PLAY);
+#else
mp_view_manager_pop_play_view(ad);
+#endif
endfunc;
return true;
}
mp_playing_view *playing_view = ad->playing_view;
MP_CHECK_FALSE(playing_view);
+ MP_TA_ACUM_ITEM_BEGIN(" mp_play_view_load_track", 0);
mp_play_view_load_track(ad);
+ MP_TA_ACUM_ITEM_END(" mp_play_view_load_track", 0);
- mp_play_view_set_menu_state(ad, ad->show_optional_menu, false);
+ mp_play_view_set_menu_state(ad, false, false);
_mp_play_view_init_progress_bar(data);
const Evas_Object *play_icon = elm_object_part_content_get(ad->playing_view->play_control, "buttons");
if (play_icon != NULL)
{
- MMPlayerStateType player_state = mp_player_mgr_get_state();
- if (player_state != MM_PLAYER_STATE_PLAYING)
+ player_state_e player_state = mp_player_mgr_get_state();
+ if (player_state != PLAYER_STATE_PLAYING)
{
edje_object_signal_emit(_EDJ(play_icon), "play", CTR_PROG_SIG_SRC);
}
edje_object_signal_emit(_EDJ(play_icon), "pause", CTR_PROG_SIG_SRC);
}
}
+
endfunc;
return true;
}
+#ifdef MP_SOUND_PLAYER
+void mp_play_view_unswallow_info_ug_layout(struct appdata *ad)
+{
+ MP_CHECK(ad);
+
+ if(ad->info_ug_base)
+ {
+ edje_object_part_unswallow(ad->info_ug_base, ad->info_ug_layout);
+ evas_object_hide(ad->info_ug_layout);
+ mp_ug_send_message(ad, MP_UG_MESSAGE_DEL);
+ }
+}
+
+#else
static void
_mp_play_view_popup_response_cb(void *data, Evas_Object * obj, void *event_info)
{
+ mp_evas_object_del(obj);
mp_app_exit(data);
}
bool
-mp_play_view_load_by_play(struct appdata *ad, const char *request_title)
+mp_play_view_load_by_voice_ui(struct appdata *ad, const char *request_title)
{
startfunc;
MP_CHECK_FALSE(ad);
if (layout_data->svc_handle)
{
- if (layout_data->playlist_id < 0)
- audio_svc_list_item_free(layout_data->svc_handle);
- else
- audio_svc_playlist_item_free(layout_data->svc_handle);
+ mp_media_info_list_destroy(layout_data->svc_handle);
}
}
else
if (layout_data->svc_handle)
{
- audio_svc_playlist_item_free(layout_data->svc_handle);
+ mp_media_info_list_destroy(layout_data->svc_handle);
}
}
else
if (layout_data->svc_handle)
{
- audio_svc_group_item_free(layout_data->svc_handle);
+ mp_media_info_group_list_destroy(layout_data->svc_handle);
}
}
else
if (layout_data->svc_handle)
{
- audio_svc_group_item_free(layout_data->svc_handle);
+ mp_media_info_group_list_destroy(layout_data->svc_handle);
}
}
else
if (!success)
{
- Evas_Object *popup = elm_popup_add(ad->win_main);
- mp_popup_desc_set(popup, popup_txt);
- mp_popup_set_response_cb(popup, _mp_play_view_popup_response_cb, ad);
- mp_popup_button_set(popup, "button1", GET_SYS_STR("IDS_COM_SK_OK"), MP_POPUP_YES);
- mp_popup_timeout_set(popup, 3.0);
+ Evas_Object *popup = mp_popup_create(ad->win_main, MP_POPUP_NORMAL, NULL, ad, _mp_play_view_popup_response_cb, ad);
+ elm_object_text_set(popup, popup_txt);
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_SK_OK"), MP_POPUP_YES);
+ mp_popup_timeout_set(popup, MP_POPUP_TIMEOUT);
evas_object_show(ad->win_main);
evas_object_show(popup);
}
endfunc;
return true;
}
+#endif
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include "mp-library.h"
+#include "mp-ta.h"
#include "mp-player-debug.h"
#include "mp-common.h"
#include "music.h"
#include "mp-widget.h"
#include "mp-widget.h"
#include "mp-menu.h"
+#include "mp-play-list.h"
+#include "mp-play.h"
+#include "mp-play-view.h"
-static void _mp_playlist_view_push_group_content(view_data_t * view_data, Evas_Object * content);
static void _mp_playlist_view_push_item_content(view_data_t * view_data, Evas_Object * content, char *title);
static void _mp_playlist_view_playlist_list_select_cb(void *data, Evas_Object * obj, void *event_info);
-static Elm_Genlist_Item_Class g_track_class_sweep = {
- .item_style = "music_player/1icon.3text",
- .func.text_get = mp_common_track_list_label_get,
- .func.content_get = mp_common_track_list_icon_get,
-};
+static Elm_Genlist_Item_Class *
+_mp_playlist_view_get_track_sweep_itc()
+{
+ Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+ MP_CHECK_NULL(itc);
+
+ itc->item_style = "music_player/1icon.3text";
+ itc->decorate_item_style = "mode/slide4.text";
+ itc->func.text_get = mp_common_track_list_label_get;
+ itc->func.content_get = mp_common_track_list_icon_get;
+
+ return itc;
+}
static void
_mp_playlist_view_auto_playlist_list_select_cb(void *data, Evas_Object * obj, void *event_info)
{
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
int index = (int)data;
char *name = NULL;
- int size = 0;
+ mp_media_info_h media;
Elm_Object_Item *gli = (Elm_Object_Item *) event_info;
elm_genlist_item_selected_set(gli, FALSE);
return;
}
- view_data_t *view_data = evas_object_data_get(layout_data->navibar, "view_data");
+ view_data_t *view_data = evas_object_data_get(layout_data->ad->naviframe, "view_data");
mp_retm_if(!view_data, "view_data is null");
MP_CHECK_VIEW_DATA(view_data);
mp_retm_if(mp_view_manager_count_view_content(view_data) != 1, "detail view_layout might be destroying....");
-
- ret = audio_svc_playlist_get_val(layout_data->default_playlists, index, AUDIO_SVC_PLAYLIST_NAME, &name, &size,
- -1);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
+ media = mp_media_info_group_list_nth_item(layout_data->default_playlists, index);
+ ret = mp_media_info_group_get_main_info(media, &name);
+ mp_retm_if(ret != 0, "Fail to get value");
mp_retm_if(name == NULL, "Fail to get value");
DEBUG_TRACE("playlist name: %s, playlist id: %d", name);
memset(&genlist_cbs, 0, sizeof(mp_genlist_cb_t));
genlist_cbs.selected_cb = mp_common_track_genlist_sel_cb;
- if (!strcmp(GET_STR(STR_MP_MOST_PLAYED), name))
+ if (!strcmp((STR_MP_MOST_PLAYED), name))
{
mp_view_layout_set_layout_data(view_layout,
MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_TRACK_LIST,
- MP_LAYOUT_TRACK_LIST_TYPE, AUDIO_SVC_TRACK_BY_PLAYED_COUNT,
- MP_LAYOUT_GENLIST_ITEMCLASS, &g_track_class_sweep,
+ MP_LAYOUT_TRACK_LIST_TYPE, MP_TRACK_BY_PLAYED_COUNT,
+ MP_LAYOUT_GENLIST_ITEMCLASS, _mp_playlist_view_get_track_sweep_itc(),
MP_LAYOUT_LIST_CB, &genlist_cbs, -1);
}
- else if (!strcmp(GET_STR(STR_MP_RECENTLY_ADDED), name))
+ else if (!strcmp((STR_MP_RECENTLY_ADDED), name))
{
mp_view_layout_set_layout_data(view_layout,
MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_TRACK_LIST,
- MP_LAYOUT_TRACK_LIST_TYPE, AUDIO_SVC_TRACK_BY_ADDED_TIME,
- MP_LAYOUT_GENLIST_ITEMCLASS, &g_track_class_sweep,
+ MP_LAYOUT_TRACK_LIST_TYPE, MP_TRACK_BY_ADDED_TIME,
+ MP_LAYOUT_GENLIST_ITEMCLASS, _mp_playlist_view_get_track_sweep_itc(),
MP_LAYOUT_LIST_CB, &genlist_cbs, -1);
}
- else if (!strcmp(GET_STR(STR_MP_RECENTLY_PLAYED), name))
+ else if (!strcmp((STR_MP_RECENTLY_PLAYED), name))
{
mp_view_layout_set_layout_data(view_layout,
MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_TRACK_LIST,
- MP_LAYOUT_TRACK_LIST_TYPE, AUDIO_SVC_TRACK_BY_PLAYED_TIME,
- MP_LAYOUT_GENLIST_ITEMCLASS, &g_track_class_sweep,
+ MP_LAYOUT_TRACK_LIST_TYPE, MP_TRACK_BY_PLAYED_TIME,
+ MP_LAYOUT_GENLIST_ITEMCLASS, _mp_playlist_view_get_track_sweep_itc(),
+ MP_LAYOUT_LIST_CB, &genlist_cbs, -1);
+ }
+ else if (!strcmp((STR_MP_QUICK_LIST), name))
+ {
+ mp_view_layout_set_layout_data(view_layout,
+ MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_TRACK_LIST,
+ MP_LAYOUT_TRACK_LIST_TYPE, MP_TRACK_BY_FAVORITE,
+ MP_LAYOUT_GENLIST_ITEMCLASS, _mp_playlist_view_get_track_sweep_itc(),
MP_LAYOUT_LIST_CB, &genlist_cbs, -1);
}
else
{
mp_view_layout_set_layout_data(view_layout,
MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_TRACK_LIST,
- MP_LAYOUT_TRACK_LIST_TYPE, AUDIO_SVC_TRACK_BY_PLAYLIST,
- MP_LAYOUT_PLAYLIT_ID, AUDIO_SVC_FAVORITE_LIST_ID,
+ MP_LAYOUT_TRACK_LIST_TYPE, MP_TRACK_BY_PLAYLIST,
MP_LAYOUT_LIST_CB, &genlist_cbs,
- MP_LAYOUT_GENLIST_ITEMCLASS, &g_track_class_sweep, -1);
+ MP_LAYOUT_GENLIST_ITEMCLASS, _mp_playlist_view_get_track_sweep_itc(), -1);
}
_mp_playlist_view_push_item_content(view_data, view_layout, name);
mp_playlist_view_create_by_id(Evas_Object * obj, int p_id)
{
startfunc;
-
+ char *name = NULL;
+ mp_media_list_h list = NULL;
+ int count = 0;
+ int res = 0;
+ int i = 0;
+ mp_media_info_h media = NULL;
+ mp_genlist_cb_t genlist_cbs;
+ Evas_Object *view_layout = NULL;
view_data_t *view_data = evas_object_data_get(obj, "view_data");
mp_retvm_if(!view_data, FALSE, "view_data is null");
MP_CHECK_VIEW_DATA(view_data);
- Evas_Object *view_layout = mp_view_layout_create(obj, view_data, MP_VIEW_MODE_DEFAULT);
+ MP_CHECK_FALSE(p_id >= 0);
+
+ view_layout = mp_view_layout_create(obj, view_data, MP_VIEW_MODE_DEFAULT);
- mp_genlist_cb_t genlist_cbs;
memset(&genlist_cbs, 0, sizeof(mp_genlist_cb_t));
genlist_cbs.selected_cb = mp_common_track_genlist_sel_cb;
- char name[AUDIO_SVC_PLAYLIST_NAME_SIZE] = { '0' };
+ res = mp_media_info_group_list_count(MP_GROUP_BY_PLAYLIST, NULL, NULL, &count);
+ MP_CHECK_FALSE(res == 0);
+ MP_CHECK_FALSE(count > 0);
- audio_svc_get_playlist_name_by_playlist_id(view_data->ad->media_svc_handle, p_id, name, AUDIO_SVC_PLAYLIST_NAME_SIZE);
+ res = mp_media_info_group_list_create(&list, MP_GROUP_BY_PLAYLIST, NULL, NULL, 0, count);
+ MP_CHECK_FALSE(res == 0);
- if (p_id >= 0)
+ for(i=0; i<count; i++)
+ {
+ int playlist_id;
+ media = mp_media_info_group_list_nth_item(list, i);
+ mp_media_info_group_get_playlist_id(media, &playlist_id);
+ if(playlist_id == p_id)
+ {
+ mp_media_info_group_get_main_info(media, &name);
+ DEBUG_TRACE("Find playlist. name: %s", name);
+ break;
+ }
+ }
+
+ if ( i < count)
{
mp_view_layout_set_layout_data(view_layout,
MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_TRACK_LIST,
- MP_LAYOUT_TRACK_LIST_TYPE, AUDIO_SVC_TRACK_BY_PLAYLIST,
+ MP_LAYOUT_TRACK_LIST_TYPE, MP_TRACK_BY_PLAYLIST,
MP_LAYOUT_PLAYLIT_ID, p_id,
+ MP_LAYOUT_PLAYLIT_HANDLE, media,
MP_LAYOUT_LIST_CB, &genlist_cbs,
- MP_LAYOUT_GENLIST_ITEMCLASS, &g_track_class_sweep, -1);
+ MP_LAYOUT_GENLIST_ITEMCLASS, _mp_playlist_view_get_track_sweep_itc(), -1);
}
else
WARN_TRACE("invalid playlist!!");
_mp_playlist_view_push_item_content(view_data, view_layout, name);
mp_view_layout_update(view_layout);
+ mp_media_info_group_list_destroy(list);
+
endfunc;
return true;
_mp_playlist_view_playlist_list_select_cb(void *data, Evas_Object * obj, void *event_info)
{
DEBUG_TRACE("");
- int ret = AUDIO_SVC_ERROR_NONE;
- int index = (int)data;
+ int ret = 0;
char *name = NULL;
- int size = 0;
int p_id = 0;
+ mp_genlist_item_data_t *item_data = NULL;
Elm_Object_Item *gli = (Elm_Object_Item *) event_info;
elm_genlist_item_selected_set(gli, FALSE);
return;
}
- view_data_t *view_data = evas_object_data_get(layout_data->navibar, "view_data");
+ view_data_t *view_data = evas_object_data_get(layout_data->ad->naviframe, "view_data");
mp_retm_if(!view_data, "view_data is null");
MP_CHECK_VIEW_DATA(view_data);
mp_retm_if(layout_data->rename_mode, "rename mode.. ignore selection...");
mp_retm_if(mp_view_manager_count_view_content(view_data) != 1, "detail view_layout might be destroying....");
- ret = audio_svc_playlist_get_val(layout_data->svc_handle, index, AUDIO_SVC_PLAYLIST_ID, &p_id,
- AUDIO_SVC_PLAYLIST_NAME, &name, &size, -1);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
+ item_data = elm_object_item_data_get(gli);
+ MP_CHECK(item_data);
+
+ ret = mp_media_info_group_get_playlist_id(item_data->handle, &p_id);
+ mp_retm_if(ret != 0, "Fail to get value");
+
+ ret = mp_media_info_group_get_main_info(item_data->handle, &name);
+ mp_retm_if(ret != 0, "Fail to get value");
mp_retm_if(name == NULL, "Fail to get value");
DEBUG_TRACE("playlist name: %s, playlist id: %d", name, p_id);
{
mp_view_layout_set_layout_data(view_layout,
MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_TRACK_LIST,
- MP_LAYOUT_TRACK_LIST_TYPE, AUDIO_SVC_TRACK_BY_PLAYLIST,
+ MP_LAYOUT_TRACK_LIST_TYPE, MP_TRACK_BY_PLAYLIST,
MP_LAYOUT_PLAYLIT_ID, p_id,
+ MP_LAYOUT_PLAYLIT_HANDLE, item_data->handle,
MP_LAYOUT_LIST_CB, &genlist_cbs,
- MP_LAYOUT_GENLIST_ITEMCLASS, &g_track_class_sweep, -1);
+ MP_LAYOUT_GENLIST_ITEMCLASS, _mp_playlist_view_get_track_sweep_itc(), -1);
}
else
WARN_TRACE("invalid playlist!!");
}
-static void
-_mp_playlist_view_push_group_content(view_data_t * view_data, Evas_Object * content)
-{
- mp_retm_if(!view_data, "view_data is NULL");
- MP_CHECK_VIEW_DATA(view_data);
-
- mp_view_manager_push_view_content(view_data, content, MP_VIEW_CONTENT_LIST);
- mp_view_manager_set_title_and_buttons(view_data, GET_STR("IDS_MUSIC_BODY_PLAYLISTS"), view_data);
-}
-
void
mp_playlist_view_add_button_cb(void *data, Evas_Object * obj, void *event_info)
{
}
converted_name = elm_entry_markup_to_utf8(name);
- plst_uid = mp_util_create_playlist(ad, converted_name);
+ plst_uid = mp_util_create_playlist(ad, converted_name, NULL);
IF_FREE(converted_name);
if (plst_uid < 0)
return;
Evas_Object *create_plst_layout = NULL;
- new_playlist_name = mp_util_get_new_playlist_name(view_data->ad->media_svc_handle);
+ new_playlist_name = mp_util_get_new_playlist_name();
create_plst_layout = mp_common_create_editfield_layout(view_data->navibar, view_data->ad, new_playlist_name);
IF_FREE(new_playlist_name);
mp_retm_if(create_plst_layout == NULL, "create_plst_layout is NULL");
mp_view_manager_push_view_content(view_data, create_plst_layout, MP_VIEW_CONTENT_NEW_PLAYLIST);
- mp_view_manager_set_title_and_buttons(view_data, GET_STR("IDS_MUSIC_BODY_CREATE_PLAYLIST"), view_data);
evas_object_show(create_plst_layout);
{
mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
MP_CHECK_NULL(item);
- AudioHandleType *plst_item = (AudioHandleType *) (item->handle);
-
+ mp_media_info_h plst_item = (item->handle);
MP_CHECK_NULL(plst_item);
- int ret = AUDIO_SVC_ERROR_NONE;
- if (!strcmp(part, "elm.text.1"))
+ int ret = 0;
+ if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.slide.text.1"))
{
char *name = NULL;
- int size;
- ret = audio_svc_playlist_get_val(plst_item, 0, AUDIO_SVC_PLAYLIST_NAME, &name, &size, -1);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, NULL, "Fail to get value");
+ ret = mp_media_info_group_get_main_info(plst_item, &name);
+ mp_retvm_if(ret != 0, NULL, "Fail to get value");
mp_retvm_if(name == NULL, NULL, "Fail to get value");
- return strdup(name);
+
+ if (!strcmp(part, "elm.text.1"))
+ return elm_entry_utf8_to_markup(GET_STR(name));
+ else
+ return g_strdup(GET_STR(name));
}
else if(!strcmp(part, "elm.text.2"))
{
int count = -1;
int plst_id = -1;
- ret = audio_svc_playlist_get_val(plst_item, 0, AUDIO_SVC_PLAYLIST_ID, &plst_id, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
- MP_CHECK_NULL(plst_id > 0);
+ ret = mp_media_info_group_get_playlist_id(plst_item, &plst_id);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
+ MP_CHECK_NULL(plst_id >= 0);
- ret = audio_svc_count_playlist_item(item->media_svc_handle, plst_id, NULL, NULL, &count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, NULL, "Fail to get count");
+ ret = mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL, NULL, plst_id, &count);
+ mp_retvm_if(ret != 0, NULL, "Fail to get count");
mp_retvm_if(count < 0, NULL, "Fail to get count");
return g_strdup_printf("(%d)", count);
-
}
return NULL;
mp_retm_if(layout_data->ad->navi_effect_in_progress, "navi effect in progress");
+ /* save */
+
mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) elm_object_item_data_get(layout_data->rename_git);
MP_CHECK(item);
- AudioHandleType *plst = (AudioHandleType *) (item->handle);
+ mp_media_info_h plst = (item->handle);
MP_CHECK(plst);
bool rename_success = FALSE;
mp_widget_text_popup(layout_data->ad, GET_STR("IDS_MUSIC_POP_UNABLE_RENAME_PLAYLIST"));
else
{
- int count = 0;
- ret = audio_svc_count_playlist_by_name(layout_data->ad->media_svc_handle, text, &count);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ bool exist = false;
+ ret = mp_media_info_playlist_is_exist(text, &exist);
+ if (ret != 0)
{
ERROR_TRACE("Fail to get playlist count by name: %d", ret);
mp_widget_text_popup(layout_data->ad, GET_STR("IDS_MUSIC_POP_UNABLE_CREATE_PLAYLIST"));
}
else
{
- if (count > 0) {
+ if (exist) {
char *origin_name = NULL;
- int size = 0;
- audio_svc_playlist_get_val(plst, 0, AUDIO_SVC_PLAYLIST_NAME, &origin_name, &size, -1);
+ mp_media_info_group_get_main_info(plst, &origin_name);
if (origin_name && !g_strcmp0(origin_name, text)) {
mp_debug("Not edited.. rename OK");
rename_success = TRUE;
SAFE_FREE(msg);
}
} else {
- audio_svc_playlist_set_val(plst, 0, AUDIO_SVC_PLAYLIST_NAME, text, AUDIO_SVC_METADATA_LEN_MAX, -1);
-
- int plst_id = -1;
- audio_svc_playlist_get_val(plst, 0, AUDIO_SVC_PLAYLIST_ID, &plst_id, -1);
- ret = audio_svc_update_playlist_name(layout_data->ad->media_svc_handle, plst_id, text);
- if (ret == AUDIO_SVC_ERROR_NONE) {
- mp_debug("audio_svc_update_playlist_name().. OK");
+ ret = mp_media_info_playlist_rename(plst, text);
+ if (ret == 0) {
+ mp_debug("mp_media_info_playlist_rename().. OK");
rename_success = TRUE;
}
-
}
}
}
mp_common_set_title_button_sensitivity(layout_data, layout_data->checked_count);
}
+
+static bool
+_mp_playlist_view_get_playlist_data_by_name(void *data, char *name)
+{
+ DEBUG_TRACE_FUNC();
+
+ MP_CHECK_FALSE(data);
+ MP_CHECK_FALSE(name);
+
+ int ret = 0;
+ char *playlist_name = name;
+ mp_layout_data_t *layout_data = data;
+
+ mp_media_list_h svc_handle = NULL;
+ int count = -1;
+ int playlist_id = -1;
+
+ if (!strcmp((STR_MP_MOST_PLAYED), playlist_name))
+ {
+ playlist_id = -1;
+
+ mp_media_info_list_count(MP_TRACK_BY_PLAYED_COUNT, NULL, NULL, NULL, 0, &count);
+ DEBUG_TRACE("music count=%d\n", count);
+
+ ret = mp_media_info_list_create(&svc_handle, MP_TRACK_BY_PLAYED_COUNT, NULL, NULL, NULL, 0, 0, count);
+ if (ret != 0)
+ {
+ DEBUG_TRACE("fail to get list item: %d", ret);
+ ret = mp_media_info_list_destroy(svc_handle);
+ svc_handle = NULL;
+ }
+ }
+ else if (!strcmp((STR_MP_RECENTLY_ADDED), playlist_name))
+ {
+ playlist_id = -1;
+ mp_media_info_list_count(MP_TRACK_BY_ADDED_TIME, NULL, NULL, NULL, 0, &count);
+ DEBUG_TRACE("music count=%d\n", count);
+
+ /* get music item data */
+ ret = mp_media_info_list_create(&svc_handle, MP_TRACK_BY_ADDED_TIME, NULL, NULL, NULL, 0, 0, count);
+ if (ret != 0)
+ {
+ DEBUG_TRACE("fail to get list item: %d", ret);
+ ret = mp_media_info_list_destroy(svc_handle);
+ svc_handle = NULL;
+ }
+ }
+ else if (!strcmp((STR_MP_RECENTLY_PLAYED), playlist_name))
+ {
+ playlist_id = -1;
+
+ mp_media_info_list_count(MP_TRACK_BY_PLAYED_TIME, NULL, NULL, NULL, 0, &count);
+ DEBUG_TRACE("music count=%d\n", count);
+
+ /* get music item data */
+ ret = mp_media_info_list_create(&svc_handle, MP_TRACK_BY_PLAYED_TIME, NULL, NULL, NULL, 0, 0, count);
+ if (ret != 0)
+ {
+ DEBUG_TRACE("fail to get list item: %d", ret);
+ ret = mp_media_info_list_destroy(svc_handle);
+ svc_handle = NULL;
+ }
+ }
+ else if (!strcmp((STR_MP_QUICK_LIST), playlist_name))
+ {
+ mp_media_info_list_count(MP_TRACK_BY_FAVORITE, NULL, NULL, NULL, 0, &count);
+ DEBUG_TRACE("music count=%d\n", count);
+
+ /* get music item data */
+ ret = mp_media_info_list_create(&svc_handle, MP_TRACK_BY_FAVORITE, NULL, NULL, NULL, 0, 0, count);
+ if (ret != 0)
+ {
+ DEBUG_TRACE("fail to get list item: %d", ret);
+ ret = mp_media_info_list_destroy(svc_handle);
+ svc_handle = NULL;
+ }
+ }
+ else
+ {
+ ret = mp_media_info_playlist_get_id_by_name(playlist_name, &playlist_id);
+ mp_retvm_if(ret != 0, FALSE, "ret: %d, playlist_name: %s", ret, playlist_name);
+ mp_retvm_if(playlist_id < 0, FALSE, "id is not valid.. %d", playlist_id);
+
+ ret = mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL, NULL, playlist_id, &count);
+ mp_retvm_if(ret != 0, FALSE, "ret: %d", ret);
+
+ if (count <= 0)
+ {
+ DEBUG_TRACE("Recently played tracks were removed...");
+ return NULL;
+ }
+
+ ret = mp_media_info_list_create(&svc_handle, MP_TRACK_BY_PLAYLIST, NULL, NULL, NULL, playlist_id, 0, count);
+ if (ret != 0)
+ {
+ WARN_TRACE("fail to get list item: %d", ret);
+ }
+ }
+
+ layout_data->playlist_id = playlist_id;
+ layout_data->item_count = count;
+ layout_data->svc_handle = svc_handle;
+
+ return TRUE;
+}
+
+static void
+_mp_playlist_view_playall_button_cb(void *data, Evas_Object * obj, void *event_info)
+{
+ DEBUG_TRACE_FUNC();
+
+ struct appdata *ad = NULL;
+ mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
+
+ MP_CHECK(layout_data);
+ MP_CHECK_LAYOUT_DATA(layout_data);
+ ad = layout_data->ad;
+
+ mp_media_info_h handle = data;
+ MP_CHECK(handle);
+
+ int playlist_id = -1;
+ char *playlist_name = NULL;
+ int size = -1;
+ int ret = 0;
+
+ /* get playlist name */
+ ret = mp_media_info_group_get_main_info(handle, &playlist_name);
+ ret = mp_media_info_group_get_playlist_id(handle, &playlist_id);
+ mp_retm_if(playlist_name == NULL, "Fail to get playlist_name");
+ DEBUG_TRACE("playlist_id=%d, size=%d, playlist_name=%s\n", playlist_id, size, playlist_name);
+
+ /* get playlist data by name */
+ mp_layout_data_t *layout_data_new = calloc(1, sizeof(mp_layout_data_t));
+ MP_CHECK(layout_data_new);
+ MP_SET_LAYOUT_DATA_MAGIC(layout_data_new);
+ layout_data_new->ad = ad;
+
+ if (!_mp_playlist_view_get_playlist_data_by_name(layout_data_new, playlist_name))
+ {
+ IF_FREE(layout_data_new->type_str);
+ IF_FREE(layout_data_new->filter_str);
+ free(layout_data_new);
+
+ return;
+ }
+
+ mp_play_view_load_by_index(layout_data_new, 0, false);
+
+ /* set the flag for update playlist view when back from playview */
+ if (ad->playing_view != NULL)
+ {
+ ad->playing_view->b_play_all = true;
+ }
+
+ if (layout_data_new->svc_handle)
+ {
+ mp_media_info_list_destroy(layout_data_new->svc_handle);
+ }
+
+ IF_FREE(layout_data_new->type_str);
+ IF_FREE(layout_data_new->filter_str);
+ free(layout_data_new);
+
+ endfunc;
+}
+
static Evas_Object *
_mp_playlist_view_icon_get(void *data, Evas_Object * obj, const char *part)
{
mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
MP_CHECK_NULL(item);
- AudioHandleType *plst = (AudioHandleType *) (item->handle);
-
+ mp_media_info_h plst = (item->handle);
MP_CHECK_NULL(plst);
Evas_Object *eo = NULL;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
int playlist_id = 0;
char *thumb_path = NULL;
char *name = NULL;
- int size;
mp_retvm_if(!layout_data, NULL, "list data is NULL !!!");
MP_CHECK_LAYOUT_DATA(layout_data);
- ret = audio_svc_playlist_get_val(plst, 0, AUDIO_SVC_PLAYLIST_ID, &playlist_id,
- AUDIO_SVC_PLAYLIST_THUMBNAIL_PATH, &thumb_path, &size, AUDIO_SVC_PLAYLIST_NAME,
- &name, &size, -1);
+ mp_media_info_group_get_playlist_id(plst, &playlist_id);
+ ret = mp_media_info_group_get_thumbnail_path(plst, &thumb_path);
+ mp_retvm_if(ret != 0, NULL, "Fail to get value");
+ ret = mp_media_info_group_get_main_info(plst, &name);
+ mp_retvm_if(ret != 0, NULL, "Fail to get value");
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, NULL, "Fail to get value");
if (!strcmp(part, "elm.icon"))
{
if (!playlist_id)
{
- if (!strcmp(GET_STR(STR_MP_MOST_PLAYED), name))
- {
- eo = mp_util_create_thumb_icon(obj, THUMBNAIL_MOST_PLAYED, MP_LIST_ICON_SIZE,
+ eo = mp_util_create_thumb_icon(obj, thumb_path, MP_LIST_ICON_SIZE,
MP_LIST_ICON_SIZE);
- }
- else if (!strcmp(GET_STR(STR_MP_RECENTLY_ADDED), name))
- {
- eo = mp_util_create_thumb_icon(obj, THUMBNAIL_RECENTLY_ADDED, MP_LIST_ICON_SIZE,
- MP_LIST_ICON_SIZE);
- }
- else if (!strcmp(GET_STR(STR_MP_RECENTLY_PLAYED), name))
- {
- eo = mp_util_create_thumb_icon(obj, THUMBNAIL_RECENTLY_PLAYED, MP_LIST_ICON_SIZE,
- MP_LIST_ICON_SIZE);
- }
- else
- {
- eo = mp_util_create_thumb_icon(obj, THUMBNAIL_QUICK_LIST, MP_LIST_ICON_SIZE,
- MP_LIST_ICON_SIZE);
- }
}
else
{
if (thumb_path == NULL)
{
int count = 0;
- audio_svc_count_playlist_item(item->media_svc_handle, playlist_id, NULL, NULL, &count);
+ mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL, NULL, playlist_id, &count);
if (count <= 0)
eo = mp_util_create_thumb_icon(obj, THUMBNAIL_PLAYLIST_NOITEM,
MP_LIST_ICON_SIZE, MP_LIST_ICON_SIZE);
}
}
+ Evas_Object *button;
+ if (!strcmp(part, "elm.slide.swallow.1"))
+ {
+ button = elm_button_add(obj);
+ elm_object_style_set(button, "sweep/multiline");
+ elm_object_text_set(button, GET_STR("Play all"));
+ mp_language_mgr_register_object(button, OBJ_TYPE_ELM_OBJECT, NULL, "Play all");
+ evas_object_smart_callback_add(button, "clicked", _mp_playlist_view_playall_button_cb, plst);
+ evas_object_data_set(button, "layout_data", layout_data);
+ return button;
+ }
+ else if (!strcmp(part, "elm.slide.swallow.2"))
+ {
+ button = elm_button_add(obj);
+ elm_object_style_set(button, "sweep/multiline");
+ elm_object_text_set(button, GET_SYS_STR("IDS_COM_BODY_RENAME"));
+ mp_language_mgr_register_object(button, OBJ_TYPE_ELM_OBJECT, NULL, "IDS_COM_BODY_RENAME");
+ evas_object_smart_callback_add(button, "clicked", _mp_playlist_rename_button_cb, item->it);
+ evas_object_data_set(button, "layout_data", layout_data);
+ return button;
+ }
+ else if (!strcmp(part, "elm.slide.swallow.3"))
+ {
+ button = elm_button_add(obj);
+ elm_object_style_set(button, "sweep/delete");
+ elm_object_text_set(button, GET_SYS_STR("IDS_COM_OPT_DELETE"));
+ mp_language_mgr_register_object(button, OBJ_TYPE_ELM_OBJECT, NULL, "IDS_COM_OPT_DELETE");
+ evas_object_smart_callback_add(button, "clicked", mp_menu_delete_cb, plst);
+ evas_object_data_set(button, "layout_data", layout_data);
+
+ return button;
+ }
+
Evas_Object *btn = NULL, *check = NULL, *edit_field = NULL, *entry = NULL;
if (elm_genlist_decorate_mode_get(obj))
if (item->it)
{
evas_object_smart_callback_add(btn, "clicked", _mp_playlist_rename_button_cb, item->it);
- evas_object_propagate_events_set(btn, EINA_FALSE);
evas_object_data_set(btn, "layout_data", layout_data);
}
return btn;
if (!strcmp(part, "elm.flip.content"))
{
- edit_field = mp_widget_create_editfield(obj, AUDIO_SVC_PLAYLIST_NAME_SIZE - 1, NULL, layout_data->ad);
+ edit_field = mp_widget_create_editfield(obj, MP_PLAYLIST_NAME_SIZE - 1, NULL, layout_data->ad);
entry = mp_widget_editfield_entry_get(edit_field);
name = elm_entry_utf8_to_markup(name);
elm_entry_entry_set(entry, name);
return edit_field;
}
+ //}
return eo;
}
static Elm_Genlist_Item_Class g_playlist_class_sweep = {
+ .version = ELM_GENGRID_ITEM_CLASS_VERSION,
+ .refcount = 0,
+ .delete_me = EINA_FALSE,
.item_style = "music_player/1icon.2text",
+ .decorate_item_style = "mode/slide3",
.func.text_get = _mp_playlist_view_label_get,
.func.content_get = _mp_playlist_view_icon_get,
};
static Elm_Genlist_Item_Class g_playlist_class = {
+ .version = ELM_GENGRID_ITEM_CLASS_VERSION,
+ .refcount = 0,
+ .delete_me = EINA_FALSE,
.item_style = "music_player/1icon.2text",
+ .decorate_item_style = "mode/slide",
.func.text_get = _mp_playlist_view_label_get,
.func.content_get = _mp_playlist_view_icon_get,
};
mp_playlist_view_create(struct appdata *ad, mp_view_type_t view_type)
{
DEBUG_TRACE("view_type: %d", view_type);
- Evas_Object *navibar = mp_widget_navigation_new(ad->ctrl_bar, ad);
-
- view_data_t *view_data = calloc(sizeof(view_data_t), 1);
- MP_SET_VIEW_DATA_MAGIC(view_data);
- view_data->ad = ad;
- view_data->navibar = navibar;
+ view_data_t *view_data = evas_object_data_get(ad->naviframe, "view_data");
view_data->view_type = view_type;
- DEBUG_TRACE("view_data->navibar: %x", view_data->navibar);
+ Evas_Object *view_layout = mp_view_layout_create(ad->tabbar, view_data, MP_VIEW_MODE_DEFAULT);
- evas_object_data_set(navibar, "view_data", view_data);
+ mp_layout_data_t *layout_data = NULL;
+ layout_data = evas_object_data_get(view_layout, "layout_data");
+ MP_CHECK_NULL(layout_data);
+ evas_object_data_set(ad->controlbar_layout, "layout_data", layout_data);
- Evas_Object *view_layout = mp_view_layout_create(navibar, view_data, MP_VIEW_MODE_DEFAULT);
mp_view_layout_set_layout_data(view_layout,
MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_PLAYLIST_LIST,
MP_LAYOUT_LIST_CB, &g_playlist_list_cbs,
MP_LAYOUT_GENLIST_ITEMCLASS, &g_playlist_class_sweep,
MP_LAYOUT_GENLIST_AUTO_PLAYLIST_ITEMCLASS, &g_playlist_class, -1);
- _mp_playlist_view_push_group_content(view_data, view_layout);
- return navibar;
+ mp_view_manager_set_title_and_buttons(view_data, "IDS_MUSIC_BODY_PLAYLISTS", view_data);
+
+ return view_layout;
}
void
{
MP_CHECK_FALSE(ad);
- MP_CHECK_FALSE(ad->library);
- MP_CHECK_FALSE(ad->library->cur_view);
+ MP_CHECK_FALSE(ad->naviframe);
- view_data_t *view_data = evas_object_data_get(ad->library->cur_view, "view_data");
+ view_data_t *view_data = evas_object_data_get(ad->naviframe, "view_data");
MP_CHECK_FALSE(view_data);
mp_layout_data_t *layout_data = NULL;
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include "mp-library.h"
+#include "mp-ta.h"
#include "mp-player-debug.h"
#include "mp-common.h"
#include "music.h"
if (view_data->ad->notify != NULL)
{
evas_object_del(view_data->ad->notify);
+ view_data->ad->notify = NULL;
}
if (view_data->ad->notify_layout != NULL)
{
evas_object_del(view_data->ad->notify_layout);
+ view_data->ad->notify_layout = NULL;
}
- view_data->ad->notify = NULL;
- view_data->ad->notify_layout = NULL;
-
mp_layout_data_t *layout_data = NULL;
layout_data = evas_object_data_get(mp_view_manager_get_first_view_layout(view_data->ad), "layout_data");
if (layout_data)
if (view_data->ad->notify != NULL)
{
evas_object_del(view_data->ad->notify);
+ view_data->ad->notify = NULL;
}
if (view_data->ad->notify_layout != NULL)
{
evas_object_del(view_data->ad->notify_layout);
+ view_data->ad->notify_layout = NULL;
}
- view_data->ad->notify = NULL;
- view_data->ad->notify_layout = NULL;
-
Evas_Object *view_layout = mp_view_manager_get_last_view_layout(view_data->ad);
MP_CHECK(view_layout);
mp_track_view_create(struct appdata *ad)
{
DEBUG_TRACE("");
- Evas_Object *navibar = mp_widget_navigation_new(ad->ctrl_bar, ad);
- view_data_t *view_data = calloc(sizeof(view_data_t), 1);
- MP_SET_VIEW_DATA_MAGIC(view_data);
- view_data->ad = ad;
- view_data->navibar = navibar;
+ view_data_t *view_data = evas_object_data_get(ad->naviframe, "view_data");
+ view_data->view_type = MP_VIEW_TYPE_SONGS;
+ Evas_Object *view_layout = mp_view_layout_create(ad->tabbar, view_data, MP_VIEW_MODE_DEFAULT);
- evas_object_data_set(navibar, "view_data", view_data);
- Evas_Object *view_layout = mp_view_layout_create(navibar, view_data, MP_VIEW_MODE_DEFAULT);
+ Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
- Elm_Genlist_Item_Class itc;
- memset(&itc, 0, sizeof(Elm_Genlist_Item_Class));
- itc.item_style = "music_player/1icon.3text";
- itc.func.text_get = mp_common_track_list_label_get;
- itc.func.content_get = mp_common_track_list_icon_get;
+ itc->item_style = "music_player/1icon.3text";
+ itc->decorate_item_style = "mode/slide4.text";
+ itc->func.text_get = mp_common_track_list_label_get;
+ itc->func.content_get = mp_common_track_list_icon_get;
mp_genlist_cb_t genlist_cbs;
memset(&genlist_cbs, 0, sizeof(mp_genlist_cb_t));
genlist_cbs.selected_cb = mp_common_track_genlist_sel_cb;
mp_view_layout_set_layout_data(view_layout,
- MP_LAYOUT_TRACK_LIST_TYPE, AUDIO_SVC_TRACK_ALL,
- MP_LAYOUT_LIST_CB, &genlist_cbs, MP_LAYOUT_GENLIST_ITEMCLASS, &itc, -1);
+ MP_LAYOUT_TRACK_LIST_TYPE, MP_TRACK_ALL,
+ MP_LAYOUT_LIST_CB, &genlist_cbs, MP_LAYOUT_GENLIST_ITEMCLASS, itc, -1);
+
+ mp_layout_data_t *layout_data = NULL;
+ layout_data = evas_object_data_get(view_layout, "layout_data");
+ MP_CHECK_NULL(layout_data);
- mp_view_manager_push_view_content(view_data, view_layout, MP_VIEW_CONTENT_LIST);
+ evas_object_data_set(ad->controlbar_layout, "layout_data", layout_data);
- return navibar;
+ return view_layout;
}
void
if (view_data->ad->b_add_tracks)
{
- mp_view_manager_set_title_and_buttons(view_data, GET_STR("IDS_MUSIC_OPT_ADD_PLAYLIST"), view_data);
+ mp_view_manager_set_title_and_buttons(view_data, "IDS_MUSIC_OPT_ADD_PLAYLIST", view_data);
}
else
{
- mp_view_manager_set_title_and_buttons(view_data, GET_STR("IDS_MUSIC_HEADER_SONGS"), view_data);
+ mp_view_manager_set_title_and_buttons(view_data, "IDS_MUSIC_HEADER_SONGS", view_data);
}
}
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+#ifndef __MP_MINICONTROLLER_H__
+#define __MP_MINICONTROLLER_H__
+
+#include "mp-ta.h"
+#include "music.h"
+#include "mp-item.h"
+#include "mp-player-control.h"
+#include "mp-play-view.h"
+#include "mp-common.h"
+#include "mp-minicontroller.h"
+#include "mp-player-mgr.h"
+#include "mp-player-debug.h"
+
+int mp_minicontroller_create(struct appdata *ad);
+int mp_minicontroller_hide(struct appdata *ad);
+int mp_minicontroller_show(struct appdata *ad);
+int mp_minicontroller_destroy(struct appdata *ad);
+void mp_minicontroller_update(struct appdata *ad);
+void mp_minicontroller_rotate(struct appdata *ad, int angle);
+void mp_minicontroller_visible_set(struct appdata *ad, bool visible);
+
+#endif
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#ifndef __MP_popup_H_
#define __MP_popup_H_
typedef enum _mp_popup_t
{
+ MP_POPUP_PV_SET_AS = 0,
+ MP_POPUP_PV_SET_AS_INCLUDE_ADD_TO_HOME,
+ MP_POPUP_PV_SHARE,
+ MP_POPUP_LIST_SHARE,
MP_POPUP_SOUND_PATH,
MP_POPUP_ADD_TO_PLST,
} mp_popup_t;
-#define mp_popup_title_set(obj, title) elm_object_part_text_set((obj), "title,text", (title))
-#define mp_popup_desc_set(obj, desc) elm_object_text_set((obj), (desc))
-#define mp_popup_content_set(obj, content) elm_object_content_set((obj), (content))
-
-#define mp_popup_btn_popup_set(obj, popup) do { \
- if (obj) { \
- evas_object_data_set((obj), "popup", (popup)); \
- } \
-} while (0)
-#define mp_popup_btn_popup_get(obj) evas_object_data_get((obj), "popup")
-#define mp_popup_btn_response_set(obj, response) do { \
- if (obj) { \
- evas_object_data_set((obj), "response", (void *)(response)); \
- } \
-} while (0)
-#define mp_popup_btn_response_get(obj) (int)evas_object_data_get((obj), "response")
-
+typedef enum {
+ MP_POPUP_BTN_1,
+ MP_POPUP_BTN_2,
+ MP_POPUP_BTN_3,
+ MP_POPUP_BTN_MAX,
+} popup_button_t;
Elm_Object_Item *mp_genlist_popup_item_append(Evas_Object * popup, char *label, Evas_Object * icon, void *cb,
void *data);
Evas_Object *mp_genlist_popup_create(Evas_Object * parent, mp_popup_t type, void *user_data, struct appdata *ad);
-Evas_Object *mp_popup_create(Evas_Object * parent, mp_popup_type type, char *title, void *user_data, void *response_cb,
+Evas_Object *mp_popup_create(Evas_Object * parent, mp_popup_type type, char *title, void *user_data, Evas_Smart_Cb response_cb,
struct appdata *ad);
void mp_popup_destroy(struct appdata *ad);
-
-void mp_popup_set_response_cb(Evas_Object *popup, Evas_Smart_Cb response_cb, void *data);
void mp_popup_response(Evas_Object *popup, int response);
-Evas_Object *mp_popup_button_set(Evas_Object *popup, const char *part, const char *text, int response);
+bool mp_popup_button_set(Evas_Object *popup, popup_button_t btn_index, const char *text, int response);
void mp_popup_timeout_set(Evas_Object *popup, double timeout);
-void mp_popup_block_clicked_set(Evas_Object *popup);
#endif // __MP_contextpopup_H_
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
-
#ifndef __MP_SEARCH_H_
#define __MP_SEARCH_H_
#include <Evas.h>
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __MP_SMART_EVENT_BOX_H_
#define __MP_SMART_EVENT_BOX_H_
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#ifndef __MP_VIEW_LAYOUT_H_
#define __MP_VIEW_LAYOUT_H_
enum
{
MP_LAYOUT_CATEGORY_TYPE = 1, //track list or group list or playlist
- MP_LAYOUT_TRACK_LIST_TYPE, //audio_svc_track_type_e
- MP_LAYOUT_GROUP_LIST_TYPE, //audio_svc_group_type_e
+ MP_LAYOUT_TRACK_LIST_TYPE, //mp_track_type_e
+ MP_LAYOUT_GROUP_LIST_TYPE, //mp_group_type_e
MP_LAYOUT_PLAYLIT_ID,
+ MP_LAYOUT_PLAYLIT_HANDLE,
MP_LAYOUT_TYPE_STR, //type_str for db query
MP_LAYOUT_FILTER_STR,
MP_LAYOUT_GENLIST_ITEMCLASS, //item class of genlist
MP_LAYOUT_LIST_CB,
MP_LAYOUT_EDIT_MODE,
MP_LAYOUT_REORDER_MODE,
+ MP_LAYOUT_PLST_HANDLE_TYPE,
};
typedef struct
genlist_cb_t auto_playlist_cb;
} mp_genlist_cb_t;
+typedef enum
+{
+ MP_SQUARE_VIEW_GENGRID,
+ MP_SQUARE_VIEW_GENLIST
+} mp_square_view_type_e;
+
typedef struct
{
int magic;
mp_list_category_t category;
- audio_svc_track_type_e track_type;
- audio_svc_group_type_e group_type;
+ mp_track_type_e track_type;
+ mp_group_type_e group_type;
int playlist_id;
+ mp_media_info_h playlist_handle;
char *type_str;
char *filter_str;
int item_count;
int track_count; //for create playing list from search result.
- AudioHandleType *svc_handle;
- AudioHandleType *track_handle; //for search
- AudioHandleType *artist_handle; //for search
- AudioHandleType *album_handle; //for search
- AudioHandleType *default_playlists;
-
- Evas_Object *navibar; //parent navibar of layout
+ mp_media_list_h svc_handle;
+ mp_media_list_h track_handle; //for search
+ mp_media_list_h artist_handle; //for search
+ mp_media_list_h album_handle; //for search
+ mp_media_list_h default_playlists;
Evas_Object *layout;
Evas_Object *genlist;
Evas_Object *search_bar;
Evas_Object *now_playing;
Evas_Object *box; //content of confomant, genlist or sentinal should be contained in it.
+ Evas_Object *index_fast;
Evas_Object *sentinel;
Evas_Object *isf_entry;
Ecore_IMF_Context *imf_context;
- Elm_Genlist_Item_Class itc;
+ Elm_Genlist_Item_Class *itc;
Elm_Genlist_Item_Class auto_playlist_item_class;
Elm_Object_Item *selected_it; //Selected genlist item;
view_data_t *view_data;
+ char *old_name;
Elm_Object_Item *rename_git;
mp_view_mode_t view_mode; // to classify edit & search view.
Evas_Object *now_playing_progress;
Ecore_Timer *progress_timer;
- //added for append item in idler callback.
+ // append item in idler callback.
+ char *fast_scrooll_index;
Ecore_Idler *load_item_idler;
Ecore_Idler *block_size_idler;
- //added for genlist edit mode
+ // genlist edit mode
Evas_Object *select_all_layout;
Evas_Object *select_all_checkbox;
Eina_Bool select_all_checked;
int checked_count;
- //support cancel while processing edit function.
+ mp_plst_type_t plst_handle_type;
+
+ // support cancel while processing edit function.
Ecore_Idler *edit_idler;
Ecore_Idler *reorder_idler;
Elm_Object_Item *current_edit_item;
int selected_count; //use to store checked count when editing strared.
int error_count;
- AudioHandleType *group_track_handle; //for deleting group items
+ mp_media_list_h group_track_handle; //for deleting group items
int edit_track_index; //for deleting group items
bool group_item_delete_error; //for deleting group items
mp_edit_operation_t edit_operation;
int playlist_track_count; //number of tracks in playlist..
int edit_playlist_id; //playlist_id tracks to be added.
+ mp_playlist_h edit_playlist_handle;
char *navibar_title;
void *callback_data;
int default_playlist_count;
- Elm_Object_Item **aa_group; //group item for artist-album list.
- Elm_Genlist_Item_Class *aa_group_itc; //group for album list.
- int aa_group_count; // count of group item
- int selected_group_index; //selected index for group
- AudioHandleType *aa_handle; //handle for artist-album group
- int selected_album_sub_index; //selected index for artist-album sub genlist
- int *aa_item_count; //item count for artist-album sub genlist
bool album_delete_flag; //flag for delete album item
- int selected_index; //selected index for group
Elm_Object_Item *album_group; //group item for album track view.
- Elm_Genlist_Item_Class *album_group_itc; //group for album track view.
- AudioHandleType *album_track_handle; //group item handle for album track view
Eina_Bool is_item_del; //set it true if elm_object_item_del() used. When play track after delete track, svc_handle mismatch with list.
{
Elm_Object_Item *it; // Genlist Item pointer
Eina_Bool checked; // Check status
- audio_svc_group_type_e group_type; //use this to classify ablum or artist when group item seleted in search view.
- AudioHandleType *handle;
- MediaSvcHandle *media_svc_handle;
+ mp_group_type_e group_type; //use this to classify ablum or artist when group item seleted in search view.
+ mp_media_info_h handle;
+ bool unregister_lang_mgr;
} mp_genlist_item_data_t;
#define MP_LAYOUT_DATA_MAGIC 0x810522bb
--- /dev/null
+/*
+ * Copyright 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://www.tizenopensource.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.
+ */
+
+
+#include <minicontrol-provider.h>
+#include "mp-minicontroller.h"
+#include "mp-player-control.h"
+#include "mp-play.h"
+#include "Ecore.h"
+#include "mp-player-mgr.h"
+#include "mp-util.h"
+#include "mp-widget.h"
+#include "mp-setting-ctrl.h"
+
+#define MINI_CONTROLLER_WIDTH (720)
+#define MINI_CONTROLLER_WIDTH_LANDSCAPE (1280)
+#define MINI_CONTROLLER_HEIGHT (170)
+#define WL_INDI_H 27 //Window Layout Indicator Height
+#define PAUSE_TIME_OUT 120
+
+#define CTR_EDJ_SIG_SRC "ctrl_edj"
+#define CTR_PROG_SIG_SRC "ctrl_prog"
+
+#define BUFFER_MAX 256
+
+static void _minicontroller_action_cb(void *data, Evas_Object * obj, const char *emission, const char *source);
+static Evas_Object *_load_edj(Evas_Object * parent, const char *file, const char *group);
+static Evas_Object *_create_bgimg(Evas_Object * parent);
+static Evas_Object *_load_minicontroller(struct appdata *ad);
+
+static inline void
+_mp_minicontroller_update_elapsed_time(struct appdata *ad)
+{
+ MP_CHECK(ad);
+ MP_CHECK(ad->minicontroller_layout);
+
+
+ int sec = mp_player_mgr_get_position() / 1000;
+ int min = sec / 60;
+ sec = sec % 60;
+
+ char *time_text = g_strdup_printf("%02d:%02d", min, sec);
+ if (time_text) {
+ edje_object_part_text_set(_EDJ(ad->minicontroller_layout), "elm.elapsed_time", time_text);
+ free(time_text);
+ time_text = NULL;
+ }
+}
+
+static Eina_Bool
+_minicontroller_update_progresstime_cb(void *data)
+{
+ struct appdata *ad = data;
+ mp_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+
+ if (ad->player_state == PLAY_STATE_PLAYING)
+ {
+ _mp_minicontroller_update_elapsed_time(ad);
+ }
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+static void
+_minicontroller_progress_timer_add(void *data)
+{
+ struct appdata *ad = data;
+ mp_retm_if(ad == NULL, "appdata is NULL");
+ DEBUG_TRACE();
+
+ mp_ecore_timer_del(ad->minicon_progress_timer);
+
+ _mp_minicontroller_update_elapsed_time(ad);
+ if (ad->player_state == PLAY_STATE_PLAYING)
+ ad->minicon_progress_timer = ecore_timer_add(1.0, _minicontroller_update_progresstime_cb, ad);
+}
+
+static void
+_minicontroller_action_cb(void *data, Evas_Object * obj, const char *emission, const char *source)
+{
+ DEBUG_TRACE("emission: %s, source: %s\n", emission, source);
+
+ struct appdata *ad = (struct appdata *)data;
+ mp_retm_if(ad == NULL, "appdata is NULL");
+
+ if (source)
+
+ {
+ if (strcmp(source, "rew_btn_down") == 0)
+ {
+ DEBUG_TRACE("REW");
+ mp_play_control_rew_cb(data, obj, "rew_btn_down", CTR_EDJ_SIG_SRC);
+
+ }
+ else if (strcmp(source, "rew_btn_up") == 0)
+ {
+ DEBUG_TRACE("REW_up");
+ mp_play_control_rew_cb(data, obj, "rew_btn_up", CTR_EDJ_SIG_SRC);
+
+
+ }
+ else if (strcmp(source, "play") == 0)
+ {
+
+ if (ad->minicon_timer) //Destroy the Hide out Timer.
+ {
+ ecore_timer_del(ad->minicon_timer);
+ ad->minicon_timer = NULL;
+ }
+ if (ad->player_state == PLAY_STATE_PLAYING)
+ {
+ mp_play_control_play_cb(data, obj, SIGNAL_PAUSE, source);
+ edje_object_signal_emit(elm_layout_edje_get(ad->minicontroller_layout), "set_pause",
+ "play.pause.image");
+ }
+ else
+ {
+ mp_play_control_play_cb(data, obj, SIGNAL_PLAY, source);
+ edje_object_signal_emit(elm_layout_edje_get(ad->minicontroller_layout), "set_play",
+ "play.pause.image");
+
+ }
+ }
+
+ else if (strcmp(source, "ff_btn_down") == 0)
+ {
+ DEBUG_TRACE("FWD_down");
+ mp_play_control_ff_cb(data, obj, "ff_btn_down", CTR_EDJ_SIG_SRC);
+
+ }
+ else if (strcmp(source, "ff_btn_up") == 0)
+ {
+ DEBUG_TRACE("FWD_up");
+ mp_play_control_ff_cb(data, obj, "ff_btn_up", CTR_EDJ_SIG_SRC);
+
+
+ }
+ else if (!g_strcmp0(source, "repeat"))
+ {
+ DEBUG_TRACE("REPEAT");
+ int repeat_state = 0;
+ mp_setting_get_repeat_state(&repeat_state);
+ repeat_state++;
+ repeat_state %= 3;
+ ad->play_rep_state = repeat_state;
+ mp_setting_set_repeat_state(repeat_state);
+ mp_play_control_repeat_set(ad, repeat_state);
+ }
+ else if (!g_strcmp0(source, "shuffle"))
+ {
+ DEBUG_TRACE("SHUFFLE");
+ int shuffle_state = 0;
+ mp_setting_get_shuffle_state(&shuffle_state);
+ shuffle_state = !shuffle_state;
+ ad->play_shuffle_state = shuffle_state;
+ mp_setting_set_shuffle_state(shuffle_state);
+ mp_play_control_shuffle_set(ad, shuffle_state);
+ }
+ else if (strcmp(source, "albumart") == 0)
+ {
+ //mp_minicontroller_destroy(ad);
+ DEBUG_TRACE("albumart");
+ ad->load_play_view = true;
+ elm_win_activate(ad->win_main);
+ return;
+ }
+ mp_minicontroller_update(ad);
+
+ }
+
+
+
+}
+
+static Evas_Object *
+_load_edj(Evas_Object * parent, const char *file, const char *group)
+{
+ Evas_Object *eo;
+ int r;
+
+ eo = elm_layout_add(parent);
+ if (eo)
+ {
+ r = elm_layout_file_set(eo, file, group);
+ if (!r)
+ {
+ evas_object_del(eo);
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, eo);
+ evas_object_show(eo);
+ }
+
+ return eo;
+}
+
+static Evas_Object *
+_create_bgimg(Evas_Object * parent)
+{
+ Evas_Object *bg;
+
+ mp_retvm_if(parent == NULL, NULL, "parent is NULL");
+
+ DEBUG_TRACE_FUNC();
+
+ bg = elm_bg_add(parent);
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, bg);
+ evas_object_color_set(bg, 37, 37, 37, 255);
+ evas_object_show(bg);
+
+ return bg;
+}
+
+static Evas_Object *
+_load_minicontroller(struct appdata *ad)
+{
+ DEBUG_TRACE_FUNC();
+ mp_retvm_if(ad == NULL, NULL, "appdata is NULL");
+ Evas_Object *win = NULL;
+ Evas_Object *eo = NULL;
+ Evas_Object *icon = NULL;
+
+ win = minicontrol_win_add("musicplayer-mini");
+ if (!win)
+ return NULL;
+
+ double scale = elm_config_scale_get();
+ evas_object_resize(win, MINI_CONTROLLER_WIDTH * scale, MINI_CONTROLLER_HEIGHT * scale);
+
+ _create_bgimg(win);
+ ad->win_minicon = win;
+
+ /* load edje */
+ eo = _load_edj(win, MINICON_EDJ_NAME, "music-minicontroller");
+ if (!eo)
+ return NULL;
+
+ icon = elm_icon_add(eo);
+ ad->minicon_icon = icon;
+ edje_object_signal_callback_add(_EDJ(eo), "clicked", "*", _minicontroller_action_cb, ad);
+
+ evas_object_show(win);
+ //evas_object_show(eo);
+
+ return eo;
+}
+
+int
+mp_minicontroller_create(struct appdata *ad)
+{
+ DEBUG_TRACE_FUNC();
+ mp_retvm_if(ad == NULL, -1, "appdata is NULL");
+
+ if (!(ad->minicontroller_layout && ad->win_minicon))
+ {
+ ad->minicontroller_layout = _load_minicontroller(ad);
+ if (ad->minicontroller_layout == NULL)
+ {
+ DEBUG_TRACE("ERROR");
+ return -1;
+ }
+ }
+
+
+ mp_minicontroller_show(ad);
+ return 0;
+}
+
+
+int
+mp_minicontroller_show(struct appdata *ad)
+{
+ DEBUG_TRACE("minicontroller view show!!");
+ mp_retvm_if(ad == NULL, -1, "appdata is NULL");
+
+ ad->b_minicontroller_show = TRUE;
+ mp_minicontroller_update(ad);
+ evas_object_show(ad->win_minicon);
+ return 0;
+
+}
+
+void
+mp_minicontroller_update(struct appdata *ad)
+{
+
+ DEBUG_TRACE();
+ mp_retm_if(ad == NULL, "appdata is NULL");
+
+ if (ad->player_state == PLAY_STATE_PLAYING)
+ {
+ edje_object_signal_emit(elm_layout_edje_get(ad->minicontroller_layout), "set_pause", "play.pause.image");
+
+ if (ad->minicon_visible)
+ _minicontroller_progress_timer_add(ad);
+ }
+ else
+ {
+ edje_object_signal_emit(elm_layout_edje_get(ad->minicontroller_layout), "set_play",
+ "play.pause.image");
+ }
+
+ if (ad->playing_list) {
+ music_list_item *current_item = mp_play_list_get_current_item(ad->playing_list);
+ MP_CHECK(current_item);
+ DEBUG_TRACE("album art is %s", current_item->albumart);
+ if (strlen(current_item->album) > 0 && mp_util_is_image_valid(ad->evas, current_item->albumart))
+ elm_icon_file_set(ad->minicon_icon, current_item->albumart, NULL);
+ else
+ elm_icon_file_set(ad->minicon_icon, DEFAULT_THUMBNAIL, NULL);
+ edje_object_part_swallow(_EDJ(ad->minicontroller_layout), "albumart_image", ad->minicon_icon);
+ edje_object_part_text_set(_EDJ(ad->minicontroller_layout), "elm.text", current_item->title);
+ edje_object_part_text_set(_EDJ(ad->minicontroller_layout), "elm.text.2", current_item->artist);
+
+ if (!ad->minicon_progress_timer)
+ _mp_minicontroller_update_elapsed_time(ad);
+
+ const char *signal = NULL;
+ /* repeat state */
+ int repeat_state = 0;
+ mp_setting_get_repeat_state(&repeat_state);
+ if (repeat_state == MP_SETTING_REP_ALL)
+ signal = "set_repeat_all";
+ else if (repeat_state == MP_SETTING_REP_1)
+ signal = "set_repeat_one";
+ else
+ signal = "set_repeat_none";
+ edje_object_signal_emit(_EDJ(ad->minicontroller_layout), signal, "c_source");
+
+ /* shuffle state */
+ int shuffle_state = false;
+ mp_setting_get_shuffle_state(&shuffle_state);
+ if (shuffle_state)
+ signal = "set_shuffle_on";
+ else
+ signal = "set_shuffle_off";
+ edje_object_signal_emit(_EDJ(ad->minicontroller_layout), signal, "c_source");
+
+ evas_object_show(ad->minicontroller_layout);
+ }
+}
+
+int
+mp_minicontroller_hide(struct appdata *ad)
+{
+ DEBUG_TRACE("minicontroller view hide!!\n");
+ mp_retvm_if(ad == NULL, -1, "appdata is NULL");
+
+ evas_object_hide(ad->win_minicon);
+ ad->b_minicontroller_show = FALSE;
+
+ if (ad->minicon_timer)
+ {
+ ecore_timer_del(ad->minicon_timer);
+ ad->minicon_timer = NULL;
+ }
+
+ if (ad->minicon_progress_timer)
+ {
+ ecore_timer_del(ad->minicon_progress_timer);
+ ad->minicon_progress_timer = NULL;
+ }
+
+ return 0;
+
+}
+
+int
+mp_minicontroller_destroy(struct appdata *ad)
+{
+ DEBUG_TRACE("minicontroller view destroy!!");
+ mp_retvm_if(ad == NULL, -1, "appdata is NULL");
+
+ if (ad->minicontroller_layout != NULL)
+ {
+ evas_object_hide(ad->minicontroller_layout);
+ evas_object_del(ad->minicontroller_layout);
+ ad->minicontroller_layout = NULL;
+ ad->b_minicontroller_show = FALSE;
+ }
+
+ if (ad->win_minicon)
+ {
+ evas_object_del(ad->win_minicon);
+ ad->win_minicon = NULL;
+ }
+
+ ad->minicon_visible = false;
+
+ return 0;
+}
+
+void
+mp_minicontroller_rotate(struct appdata *ad, int angle)
+{
+ MP_CHECK(ad);
+
+ int w = 0;
+ const char *signal = NULL;
+ if (angle == 90 || angle == 270) {
+ signal = "sig_set_landscape_mode";
+ w = MINI_CONTROLLER_WIDTH_LANDSCAPE;
+ } else {
+ signal = "sig_set_portrait_mode";
+ w = MINI_CONTROLLER_WIDTH;
+ }
+
+ edje_object_signal_emit(_EDJ(ad->minicontroller_layout), signal, "c_source");
+
+ double scale = elm_scale_get();
+ evas_object_resize(ad->win_minicon, w * scale, MINI_CONTROLLER_HEIGHT * scale);
+ elm_win_rotation_with_resize_set(ad->win_minicon, angle);
+}
+
+void
+mp_minicontroller_visible_set(struct appdata *ad, bool visible)
+{
+ MP_CHECK(ad);
+
+ ad->minicon_visible = visible;
+ if (visible)
+ {
+ _minicontroller_progress_timer_add(ad);
+
+ }
+ else
+ {
+ mp_ecore_timer_del(ad->minicon_progress_timer);
+ }
+}
+
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#include <stdio.h>
-#include <appcore-efl.h>
#include "music.h"
#include "mp-menu.h"
#include "mp-popup.h"
#include "mp-view-layout.h"
#include "mp-play-list.h"
#include "mp-common.h"
-#include "mm_sound.h"
+#include <sound_manager.h>
+#include "mp-util.h"
#include "mp-widget.h"
-typedef struct {
- Evas_Object *popup;
- Evas_Smart_Cb response_cb;
- void *cb_data;
- int response;
-} Popup_Cb_Data;
-
static Elm_Genlist_Item_Class itc;
-static Evas_Object *g_popup_win = NULL;
+typedef struct {
+ struct appdata *ad;
+ mp_popup_type type;
-static void
-_mp_popup_response_cb(void *data, Evas_Object * obj, void *event_info)
-{
- DEBUG_TRACE("response callback=%d", (int)event_info);
- if (g_popup_win)
- {
- evas_object_del(g_popup_win);
- g_popup_win = NULL;
- }
+ Evas_Smart_Cb response_cb;
+ void *cb_data;
+} Popup_Data;
- if ((int)event_info != 5)
- evas_object_del(obj);
-}
+#define mp_popup_set_popup_data(obj, data) evas_object_data_set((obj), "popup_data", (data))
+#define mp_popup_get_popup_data(obj) evas_object_data_get((obj), "popup_data")
static char *
_mp_popup_gl_label_get(void *data, Evas_Object * obj, const char *part)
elm_radio_state_value_set(radio, MP_SND_PATH_EARPHONE);
evas_object_data_set(radio, "idx", (void *)(MP_SND_PATH_EARPHONE));
}
- else if (!strcmp(GET_SYS_STR("Speaker"), data))
+ else if (!strcmp(GET_STR("Speaker"), data))
{
elm_radio_state_value_set(radio, MP_SND_PATH_SPEAKER);
evas_object_data_set(radio, "idx", (void *)(MP_SND_PATH_SPEAKER));
}
static void
-_mp_popup_set_min_size(Evas_Object *box, int cnt)
+mp_popup_set_min_size(Evas_Object *box, int cnt)
{
int min_h = 0;
MP_CHECK(box);
min_h = MP_POPUP_GENLIST_ITEM_H*cnt + cnt -1;
evas_object_size_hint_min_set(box,
- MP_POPUP_GENLIST_ITEM_W * elm_scale_get(), min_h * elm_scale_get());
+ MP_POPUP_GENLIST_ITEM_W * elm_config_scale_get(), min_h * elm_config_scale_get());
+}
+
+static void
+_mp_popup_cancel_button_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ evas_object_del(obj);
}
static Evas_Object *
-_mp_popup_create_min_style_popup(Evas_Object * parent, char *title, int cnt)
+_mp_popup_create_min_style_popup(Evas_Object * parent, char *title, int cnt,
+ void *user_data, Evas_Smart_Cb cb, struct appdata *ad)
{
Evas_Object *genlist = NULL;
Evas_Object *box = NULL;
- Evas_Object *popup = elm_popup_add(parent);
+ Evas_Object *popup = mp_popup_create(parent, MP_POPUP_GENLIST, title, user_data, cb, ad);
MP_CHECK_NULL(popup);
elm_object_style_set(popup, "min_menustyle");
- mp_popup_title_set(popup, title);
box = elm_box_add(popup);
MP_CHECK_NULL(box);
- _mp_popup_set_min_size(box, cnt);
+ mp_popup_set_min_size(box, cnt);
genlist = elm_genlist_add(box);
MP_CHECK_NULL(genlist);
evas_object_show(genlist);
elm_box_pack_end(box, genlist);
- mp_popup_content_set(popup, box);
+ elm_object_content_set(popup, box);
evas_object_show(box);
- mp_popup_set_response_cb(popup, _mp_popup_response_cb, NULL);
- mp_popup_button_set(popup, "button1", GET_SYS_STR("IDS_COM_POP_CANCEL"), MP_POPUP_NO);
evas_object_show(popup);
return popup;
}
static Evas_Object *
-_mp_popup_sound_path_create(Evas_Object * parent, void *data)
+_mp_popup_pv_set_as_create(Evas_Object * parent, void *user_data, bool add_to_home, struct appdata *ad)
+{
+ DEBUG_TRACE("");
+ MP_CHECK_NULL(ad);
+ Evas_Object *popup = NULL;
+ Elm_Object_Item *item;
+ Evas_Object *genlist;
+
+ popup = _mp_popup_create_min_style_popup(parent, GET_SYS_STR("IDS_COM_SK_SET"), add_to_home ? 3:2, NULL, _mp_popup_cancel_button_cb, ad);
+ MP_CHECK_NULL(popup);
+
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_POP_CANCEL"), MP_POPUP_NO);
+
+ itc.item_style = "1text";
+ itc.func.text_get = _mp_popup_gl_label_get;
+ itc.func.content_get = NULL;
+ itc.func.state_get = NULL;
+ itc.func.del = NULL;
+
+ genlist = evas_object_data_get(popup, "genlist");
+ MP_CHECK_NULL(genlist);
+
+ if (add_to_home)
+ {
+
+ }
+
+ item = elm_genlist_item_append(genlist, &itc, GET_STR(CALL_RINGTONE), NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_set_as_select_cb, user_data);
+
+ item = elm_genlist_item_append(genlist, &itc, GET_STR(CALLER_RINGTONE), NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_set_as_select_cb, user_data);
+
+ return popup;
+}
+
+static Evas_Object *
+_mp_popup_pv_share_create(Evas_Object * parent, void *user_data, struct appdata *ad)
+{
+ DEBUG_TRACE("");
+ MP_CHECK_NULL(ad);
+ Evas_Object *popup = NULL;
+ Elm_Object_Item *item;
+ Evas_Object *genlist;
+ int option_count;
+#ifdef MP_FEATURE_WIFI_SHARE
+ option_count = 4;
+#else
+ option_count = 3;
+#endif
+ popup = _mp_popup_create_min_style_popup(parent, GET_SYS_STR("IDS_COM_BUTTON_SHARE"), option_count, NULL, _mp_popup_cancel_button_cb, ad);
+
+ MP_CHECK_NULL(popup);
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_POP_CANCEL"), MP_POPUP_NO);
+
+ itc.item_style = "1text";
+ itc.func.text_get = _mp_popup_gl_label_get;
+ itc.func.content_get = NULL;
+ itc.func.state_get = NULL;
+ itc.func.del = NULL;
+ genlist = evas_object_data_get(popup, "genlist");
+ MP_CHECK_NULL(genlist);
+
+ item = elm_genlist_item_append(genlist, &itc, BLUETOOTH_SYS, NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_share_select_cb, user_data);
+
+ item = elm_genlist_item_append(genlist, &itc, EMAIL_SYS, NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_share_select_cb, user_data);
+ item = elm_genlist_item_append(genlist, &itc, MESSAGE_SYS, NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_share_select_cb, user_data);
+#ifdef MP_FEATURE_WIFI_SHARE
+ item = elm_genlist_item_append(genlist, &itc, WIFI_SYS, NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_share_select_cb, user_data);
+#endif
+
+ return popup;
+}
+
+static Evas_Object *
+_mp_popup_list_share_create(Evas_Object * parent, void *user_data, struct appdata *ad)
+{
+ DEBUG_TRACE("");
+ MP_CHECK_NULL(ad);
+ Evas_Object *popup = NULL;
+ Elm_Object_Item *item;
+ Evas_Object *genlist;
+ int option_count;
+#ifdef MP_FEATURE_WIFI_SHARE
+ option_count = 4;
+#else
+ option_count = 3;
+#endif
+
+ popup = _mp_popup_create_min_style_popup(parent, GET_SYS_STR("IDS_COM_BUTTON_SHARE"), option_count, NULL, _mp_popup_cancel_button_cb, ad);
+ MP_CHECK_NULL(popup);
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_POP_CANCEL"), MP_POPUP_NO);
+
+ itc.item_style = "1text";
+ itc.func.text_get = _mp_popup_gl_label_get;
+ itc.func.content_get = NULL;
+ itc.func.state_get = NULL;
+ itc.func.del = NULL;
+
+ genlist = evas_object_data_get(popup, "genlist");
+ MP_CHECK_NULL(genlist);
+
+ item = elm_genlist_item_append(genlist, &itc, BLUETOOTH_SYS, NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_share_list_select_cb, user_data);
+ item = elm_genlist_item_append(genlist, &itc, EMAIL_SYS, NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_share_list_select_cb, user_data);
+
+ item = elm_genlist_item_append(genlist, &itc, MESSAGE_SYS, NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_share_list_select_cb, user_data);
+#ifdef MP_FEATURE_WIFI_SHARE
+ item = elm_genlist_item_append(genlist, &itc, WIFI_SYS, NULL,
+ ELM_GENLIST_ITEM_NONE, mp_menu_share_list_select_cb, user_data);
+#endif
+
+ return popup;
+}
+
+static Evas_Object *
+_mp_popup_sound_path_create(Evas_Object * parent, void *data, struct appdata *ad)
{
DEBUG_TRACE_FUNC();
+ MP_CHECK_NULL(ad);
Evas_Object *popup = NULL;
- int bt_connected = 0;
+ bool bt_connected = false;
int earjack = 0;
int ret = 0;
char *bt_name = NULL;
int cnt = 1;
- ret = mm_sound_route_get_a2dp_status(&bt_connected, &bt_name);
- if (ret != MM_ERROR_NONE)
+ ret = sound_manager_get_a2dp_status(&bt_connected, &bt_name);
+ if (ret != SOUND_MANAGER_ERROR_NONE)
{
- WARN_TRACE("Fail to mm_sound_route_get_a2dp_status ret = [%d]", ret);
+ WARN_TRACE("Fail to sound_manager_get_a2dp_status ret = [%d]", ret);
}
IF_FREE(bt_name);
if(bt_connected)
if(earjack)
cnt++;
- popup = _mp_popup_create_min_style_popup(parent, GET_STR("Sound path"), cnt);
+ popup = _mp_popup_create_min_style_popup(parent, GET_SYS_STR("IDS_COM_HEADER_AUDIO_DEVICE_ABB"), cnt, NULL, _mp_popup_cancel_button_cb, ad);
+ MP_CHECK_NULL(popup);
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_POP_CANCEL"), MP_POPUP_NO);
return popup;
}
_mp_popup_add_to_playlist_create(Evas_Object * parent, void *data, struct appdata *ad)
{
DEBUG_TRACE_FUNC();
-
+ MP_CHECK_NULL(ad);
Evas_Object *popup = NULL;
int ret;
int count = 0;
- ret = audio_svc_count_playlist(ad->media_svc_handle, "", "", &count);
+ ret = mp_media_info_group_list_count(MP_GROUP_BY_PLAYLIST, NULL, NULL, &count);
DEBUG_TRACE("count,%d", count);
- popup = _mp_popup_create_min_style_popup(parent, GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), count+1);
+ popup = _mp_popup_create_min_style_popup(parent, GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), count+1, NULL, _mp_popup_cancel_button_cb, ad);
+ MP_CHECK_NULL(popup);
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_POP_CANCEL"), MP_POPUP_NO);
return popup;
}
switch (type)
{
+ case MP_POPUP_PV_SET_AS:
+ popup = _mp_popup_pv_set_as_create(parent, user_data, false, ad);
+ break;
+ case MP_POPUP_PV_SET_AS_INCLUDE_ADD_TO_HOME:
+ popup = _mp_popup_pv_set_as_create(parent, user_data, false, ad);
+ break;
+ case MP_POPUP_PV_SHARE:
+ popup = _mp_popup_pv_share_create(parent, user_data, ad);
+ break;
+ case MP_POPUP_LIST_SHARE:
+ popup = _mp_popup_list_share_create(parent, user_data, ad);
+ break;
case MP_POPUP_ADD_TO_PLST:
popup = _mp_popup_add_to_playlist_create(parent, user_data, ad);
break;
case MP_POPUP_SOUND_PATH:
- popup = _mp_popup_sound_path_create(parent, user_data);
+ popup = _mp_popup_sound_path_create(parent, user_data, ad);
evas_object_data_set(popup, "sound_path", (char *)1);
break;
default:
int i = 0;
for(i=0; i < MP_POPUP_MAX; i++)
{
- if (ad->popup[i])
+ if (ad->popup[i] && i != MP_POPUP_NOTIFY)
{
- mp_popup_response(ad->popup[i], -1);
+ mp_evas_object_del(ad->popup[i]);
ad->popup[i] = NULL;
}
}
}
+static void
+_mp_popup_destroy_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Popup_Data *popup_data = data;
+ MP_CHECK(popup_data);
+
+ if (popup_data->type < MP_POPUP_MAX && popup_data->ad)
+ {
+ popup_data->ad->popup[popup_data->type] = NULL;
+ }
+
+ SAFE_FREE(popup_data);
+}
+
+
Evas_Object *
-mp_popup_create(Evas_Object * parent, mp_popup_type type, char *title, void *user_data, void *response_cb,
+mp_popup_create(Evas_Object * parent, mp_popup_type type, char *title, void *user_data, Evas_Smart_Cb response_cb,
struct appdata *ad)
{
Evas_Object *popup = NULL;
Evas_Object *progressbar = NULL;
MP_CHECK_NULL(parent);
- MP_CHECK_NULL(type);
MP_CHECK_NULL(ad);
if (_mp_popup_popup_exist(ad, type))
return NULL;
}
+ popup = elm_popup_add(ad->win_main);
+ MP_CHECK_NULL(popup);
+
+ Popup_Data *popup_data = (Popup_Data *)calloc(1, sizeof(Popup_Data));
+ mp_assert(popup_data);
+
+ popup_data->ad = ad;
+ popup_data->type = type;
+ popup_data->response_cb = response_cb;
+ popup_data->cb_data = user_data;
+ mp_popup_set_popup_data(popup, popup_data);
+
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _mp_popup_destroy_cb, popup_data);
+
+ if (title)
+ elm_object_part_text_set(popup, "title,text", title);
+
switch (type)
{
- case MP_POPUP_PROGRESS:
- popup = elm_popup_add(ad->win_main);
- MP_CHECK_NULL(popup);
+ case MP_POPUP_NORMAL:
+ DEBUG_TRACE("MP_POPUP_NORMAL");
+ break;
+
+ case MP_POPUP_GENLIST:
+ DEBUG_TRACE("MP_POPUP_GENLIST");
+ break;
+ case MP_POPUP_PROGRESS:
progressbar = elm_progressbar_add(popup);
MP_CHECK_NULL(progressbar);
evas_object_show(progressbar);
elm_progressbar_pulse(progressbar, EINA_TRUE);
- mp_popup_title_set(popup, title);
- mp_popup_content_set(popup, progressbar);
+ elm_object_content_set(popup, progressbar);
- mp_popup_set_response_cb(popup, response_cb, user_data);
- mp_popup_button_set(popup, "button1", GET_SYS_STR("IDS_COM_POP_CANCEL"), MP_POPUP_NO);
-
- evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _mp_popup_del_cb, ad);
- evas_object_data_set(popup, "type", (void *)type);
+ mp_popup_button_set(popup, MP_POPUP_BTN_1, GET_SYS_STR("IDS_COM_POP_CANCEL"), MP_POPUP_NO);
+ break;
+ case MP_POPUP_NOTIFY:
+ DEBUG_TRACE("MP_POPUP_NOTIFY");
break;
default:
DEBUG_TRACE("Unsupported type: %d", type);
- return NULL;
}
evas_object_show(popup);
}
-static void
-_mp_poup_button_response_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MP_CHECK(data);
- Evas_Object *popup = data;
-
- int response = mp_popup_btn_response_get(obj);
- mp_popup_response(popup, response);
-}
-
void
-mp_popup_set_response_cb(Evas_Object *popup, Evas_Smart_Cb response_cb, void *data)
+mp_popup_response(Evas_Object *popup, int response)
{
MP_CHECK(popup);
- evas_object_data_set(popup, "popup_response_cb", response_cb);
- evas_object_data_set(popup, "popup_response_cb_data", data);
+ Popup_Data *popup_data = mp_popup_get_popup_data(popup);
+ MP_CHECK(popup_data);
+
+ if (popup_data->response_cb)
+ popup_data->response_cb(popup_data->cb_data, popup, (void *)response);
+ else
+ mp_evas_object_del(popup);
}
-void
-mp_popup_response(Evas_Object *popup, int response)
+
+static void
+_mp_popup_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
+ Evas_Object *popup = data;
MP_CHECK(popup);
- Evas_Smart_Cb response_cb = evas_object_data_get(popup, "popup_response_cb");
- void *cb_data = evas_object_data_get(popup, "popup_response_cb_data");
+ Popup_Data *popup_data = mp_popup_get_popup_data(popup);
+ MP_CHECK(popup_data);
- if (response_cb)
- response_cb(cb_data, popup, (void *)response);
- else
- evas_object_del(popup);
+ int response = mp_evas_object_response_get(obj);
+ mp_popup_response(popup, response);
}
-Evas_Object *
-mp_popup_button_set(Evas_Object *popup, const char *part, const char *text, int response)
+bool
+mp_popup_button_set(Evas_Object *popup, popup_button_t btn_index, const char *text, int response)
{
- MP_CHECK_NULL(popup);
- MP_CHECK_NULL(part);
-
- if (g_strcmp0(part, "button1") && g_strcmp0(part, "button2") && g_strcmp0(part, "button3")) {
- mp_error("invalid part");
- return NULL;
+ MP_CHECK_FALSE(popup);
+ MP_CHECK_FALSE(text);
+ if (btn_index == MP_POPUP_BTN_MAX) {
+ mp_error("invalid button type");
+ return FALSE;
}
- Evas_Object *button = mp_widget_create_button(popup, NULL, (char *)text, NULL, _mp_poup_button_response_cb, popup);
+ bool ret = FALSE;
+
+ static char *part[MP_POPUP_BTN_MAX] = {
+ "button1",
+ "button2",
+ "button3",
+ };
+
+ Evas_Object *button = mp_widget_create_button(popup, "popup_button/default", (char *)text, NULL, _mp_popup_button_clicked_cb, popup);
if (button) {
- elm_object_part_content_set(popup, part, button);
- mp_popup_btn_popup_set(button, popup);
- mp_popup_btn_response_set(button, response);
+ elm_object_part_content_set(popup, part[btn_index], button);
+ mp_evas_object_response_set(button, response);
+ ret = TRUE;
}
- return button;
+ return ret;
}
static void
-_mp_poup_default_response_cb(void *data, Evas_Object *obj, void *event_info)
+__mp_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
{
- mp_popup_response(obj, (int)data);
+ int response = (int)data;
+ mp_popup_response(obj, response);
}
void
MP_CHECK(popup);
elm_popup_timeout_set(popup, timeout);
- evas_object_smart_callback_add(popup, "timeout", _mp_poup_default_response_cb, (void *)MP_POPUP_DEL);
+ evas_object_smart_callback_add(popup, "timeout", __mp_popup_timeout_cb, (void *)MP_POPUP_NO);
+ evas_object_smart_callback_add(popup, "block,clicked", __mp_popup_timeout_cb, (void *)MP_POPUP_NO);
}
-void
-mp_popup_block_clicked_set(Evas_Object *popup)
-{
- MP_CHECK(popup);
-
- evas_object_smart_callback_add(popup, "block,clicked", _mp_poup_default_response_cb, (void *)MP_POPUP_DEL);
-}
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
-
#include "music.h"
#include "mp-search.h"
#include "mp-player-debug.h"
#include "mp-view-layout.h"
+#define MP_SEARCHBAR_W 400*elm_scale_get()
+
void
_mp_search_view_activated_cb(void *data, Evas_Object * obj, void *event_info)
{
elm_entry_entry_set(entry, "");
}
+
Evas_Object *
mp_search_create_new(Evas_Object * parent, Evas_Smart_Cb change_cb, void *change_cb_data, Evas_Smart_Cb cancel_cb, void *cancel_cb_data)
{
if (cancel_cb) {
Evas_Object *cancel_btn = elm_button_add(sb);
- elm_object_style_set(cancel_btn, "searchbar/default");
+ elm_object_style_set(cancel_btn, "multiline");
elm_object_text_set(cancel_btn, GET_SYS_STR("IDS_COM_SK_CANCEL"));
+ mp_language_mgr_register_object(cancel_btn, OBJ_TYPE_ELM_OBJECT, NULL, "IDS_COM_SK_CANCEL");
evas_object_smart_callback_add(cancel_btn, "clicked", cancel_cb, cancel_cb_data);
elm_object_part_content_set(sb, "button_cancel", cancel_btn);
static Elm_Entry_Filter_Limit_Size limit_filter_data;
limit_filter_data.max_char_count = 0;
- limit_filter_data.max_byte_count = AUDIO_SVC_METADATA_LEN_MAX;
+ limit_filter_data.max_byte_count = MP_METADATA_LEN_MAX;
elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data);
evas_object_show(sb);
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* limitations under the License.
*/
-
#include <Elementary.h>
#include "mp-smart-event-box.h"
#include "mp-player-debug.h"
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 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://www.tizenopensource.org/license
+ * http://www.tizenopensource.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
-
#include "mp-view-layout.h"
#include "mp-player-debug.h"
+#include "mp-ta.h"
#include "mp-library.h"
#include "mp-widget.h"
#include "mp-util.h"
#include "mp-playlist-view.h"
#include "mp-group-view.h"
#include "mp-player-mgr.h"
+#include "mp-popup.h"
+
+typedef struct{
+ Elm_Object_Item *item;
+ char *text_ID;
+}mp_group_item_data_t;
-#define MP_INIT_ITEM_LOAD_COUNT 8
-#define MP_AUTO_PLAYLIST_COUNT 4
+#define MP_INIT_ITEM_LOAD_COUNT 9
+#define MP_SYS_PLAYLIST_COUNT 4
#define MP_GENLIST_DEFALT_BLOCK_SIZE 81
#define MP_MAX_TEXT_PRE_FORMAT_LEN 256
#define MP_MAX_ARTIST_NAME_WIDTH 320
static void _mp_view_layout_load_search_list_item(Evas_Object * view_layout);
static void _mp_view_layout_load_list_item(Evas_Object * view_layout);
static void _mp_view_layout_load_search_item(Evas_Object * view_layout);
+static Evas_Object *_mp_view_layout_create_fastscroll_index(Evas_Object * parent, mp_layout_data_t * layout_data);
static void _mp_view_layout_gl_del(void *data, Evas_Object * obj);
static void _mp_view_layout_update_icon(Evas_Object * view_layout);
int err = -1;
int old_order;
int new_order = 1;
- char *title;
- int size;
int uid;
- audio_svc_count_playlist_item(layout_data->ad->media_svc_handle, layout_data->playlist_id, "", "", &count);
+ mp_media_info_list_count(MP_TRACK_BY_PLAYLIST, NULL, NULL, layout_data->filter_str, layout_data->playlist_id, &count);
if (count > 0)
{
list_item = elm_genlist_first_item_get(layout_data->genlist);
mp_genlist_item_data_t *gl_item =
(mp_genlist_item_data_t *) elm_object_item_data_get(list_item);
MP_CHECK_FALSE(gl_item);
- AudioHandleType *item = (AudioHandleType *) (gl_item->handle);
+ mp_media_info_h item = (gl_item->handle);
MP_CHECK_FALSE(item);
if (item != NULL)
{
- err = audio_svc_playlist_item_get_val(item, 0, AUDIO_SVC_PLAYLIST_ITEM_TITLE,
- &title, &size,
- AUDIO_SVC_PLAYLIST_ITEM_PLAY_ORDER,
- &old_order, AUDIO_SVC_PLAYLIST_ITEM_UID,
- &uid, -1);
- DEBUG_TRACE("uid: %d, title: %s, old_order: %d", uid, title, old_order);
+ err = mp_media_info_get_playlist_member_id(item, &uid);
+ err = mp_media_info_playlist_get_play_order(layout_data->playlist_handle, uid, &old_order);
+ DEBUG_TRACE("uid: %d, old_order: %d", uid, old_order);
if (old_order == new_order)
{
DEBUG_TRACE("same order.. skip..");
new_order++;
continue;
}
- if (err != AUDIO_SVC_ERROR_NONE)
+ if (err != 0)
{
- ERROR_TRACE("Error in audio_svc_playlist_item_get_val (%d)\n", err);
+ ERROR_TRACE("Error in mp_media_info_playlist_get_play_order (%d)\n", err);
break;
}
- err = audio_svc_update_playlist_item_play_order(layout_data->ad->media_svc_handle, layout_data->playlist_id, uid,
- new_order++);
- if (err != AUDIO_SVC_ERROR_NONE)
+ err = mp_media_info_playlist_set_play_order(layout_data->playlist_handle, uid, new_order++);
+ if (err != 0)
{
- ERROR_TRACE("Error in audio_svc_update_playlist_item_play_order (%d)\n",
- err);
+ ERROR_TRACE("Error in mp_media_info_playlist_set_play_order (%d)\n", err);
break;
}
}
}
while ((list_item = elm_genlist_item_next_get(list_item)) != NULL);
}
- mp_view_manager_update_list_contents(layout_data->view_data, TRUE);
}
layout_data->reorder_idler = NULL;
return EINA_FALSE;
_mp_view_layout_reorder(void *data, Evas_Object * obj, void *event_info)
{
DEBUG_TRACE("");
- mp_layout_data_t *layout_data = evas_object_data_get(obj, "layout_data");
+ mp_layout_data_t *layout_data = data;
MP_CHECK_LAYOUT_DATA(layout_data);
-#if 0
- if (rel_item)
- {
- if (move_after)
- elm_genlist_item_move_after(rel_item, it);
- else
- elm_genlist_item_move_before(rel_item, it);
- }
-#endif
+
if(!layout_data->reorder_idler)
layout_data->reorder_idler = ecore_idler_add(_mp_view_layout_reorder_idle_cb, layout_data);
SAFE_FREE(layout_data->type_str);
SAFE_FREE(layout_data->filter_str);
if (layout_data->category == MP_LAYOUT_PLAYLIST_LIST)
- audio_svc_playlist_free(layout_data->svc_handle);
+ mp_media_info_group_list_destroy(layout_data->svc_handle);
else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
- audio_svc_group_item_free(layout_data->svc_handle);
+ mp_media_info_group_list_destroy(layout_data->svc_handle);
else
- audio_svc_list_item_free(layout_data->svc_handle);
+ mp_media_info_list_destroy(layout_data->svc_handle);
if (layout_data->track_handle)
- audio_svc_list_item_free(layout_data->track_handle);
+ mp_media_info_list_destroy(layout_data->track_handle);
if (layout_data->artist_handle)
- audio_svc_group_item_free(layout_data->artist_handle);
+ mp_media_info_group_list_destroy(layout_data->artist_handle);
if (layout_data->album_handle)
- audio_svc_group_item_free(layout_data->album_handle);
- /* free album svc group */
- if (layout_data->album_track_handle)
- audio_svc_group_item_free(layout_data->album_track_handle);
- /* free artist album svc group */
- if (layout_data->aa_handle)
- audio_svc_group_item_free(layout_data->aa_handle);
- IF_FREE(layout_data->aa_group);
- IF_FREE(layout_data->aa_item_count);
+ mp_media_info_group_list_destroy(layout_data->album_handle);
+
+ SAFE_FREE(layout_data->old_name);
+ IF_FREE(layout_data->fast_scrooll_index);
IF_FREE(layout_data->navibar_title);
+ if (layout_data->itc) {
+ elm_genlist_item_class_free(layout_data->itc);
+ layout_data->itc = NULL;
+ }
+
free(layout_data);
}
endfunc;
_mp_view_layout_append_auto_playlists(mp_layout_data_t * layout_data)
{
int i;
- static char names[][50] =
- { STR_MP_MOST_PLAYED, STR_MP_RECENTLY_ADDED, STR_MP_RECENTLY_PLAYED, STR_MP_QUICK_LIST };
- AudioHandleType *plst;
+ mp_media_list_h plst;
MP_CHECK(layout_data);
if (layout_data->default_playlists)
- audio_svc_playlist_free(layout_data->default_playlists);
+ mp_media_info_group_list_destroy(layout_data->default_playlists);
layout_data->default_playlist_count = 0;
- audio_svc_playlist_new(&plst, MP_AUTO_PLAYLIST_COUNT);
+ mp_media_info_group_list_create(&plst, MP_GROUP_BY_SYS_PLAYLIST, NULL, NULL, 0, 0);
layout_data->default_playlists = plst;
- for (i = 0; i < MP_AUTO_PLAYLIST_COUNT; i++)
+ for (i = 0; i < MP_SYS_PLAYLIST_COUNT; i++)
{
- AudioHandleType *item;
- audio_svc_playlist_get_item(plst, i, &item);
- audio_svc_playlist_set_val(plst, i, AUDIO_SVC_PLAYLIST_NAME, GET_STR(names[i]),
- AUDIO_SVC_METADATA_LEN_MAX, -1);
+ mp_media_info_h item;
+ item = mp_media_info_group_list_nth_item(plst, i);
mp_genlist_item_data_t *item_data;
item_data = calloc(1, sizeof(mp_genlist_item_data_t));
MP_CHECK(item_data);
- item_data->media_svc_handle = layout_data->ad->media_svc_handle;
- item_data->handle = (void *)item;
+ item_data->handle = item;
+ item_data->unregister_lang_mgr = true;
+ // func.del shouldn't be used in other place....
layout_data->auto_playlist_item_class.func.del = _mp_view_layout_gl_del;
item_data->it = elm_genlist_item_append(layout_data->genlist, &(layout_data->auto_playlist_item_class),
item_data, NULL,
ELM_GENLIST_ITEM_NONE, layout_data->cb_func.auto_playlist_cb,
(void *)i);
+ mp_language_mgr_register_genlist_item(item_data->it);
layout_data->default_playlist_count++;
if (layout_data->edit_mode)
elm_object_item_disabled_set(item_data->it, EINA_TRUE);
{
elm_layout_file_set(no_contents, EDJ_NAME, "no_result");
edje_object_part_text_set(_EDJ(no_contents), "elm.text", GET_SYS_STR("IDS_COM_BODY_NO_SEARCH_RESULTS"));
+ mp_language_mgr_register_object(no_contents, OBJ_TYPE_EDJE_OBJECT, "elm.text", "IDS_COM_BODY_NO_SEARCH_RESULTS");
}
else
{
- elm_layout_file_set(no_contents, EDJ_NAME, "no_content");
+
+ if (layout_data->ad->screen_mode == MP_SCREEN_MODE_PORTRAIT)
+ elm_layout_file_set(no_contents, EDJ_NAME, "no_content");
+ else {
+ elm_layout_file_set(no_contents, EDJ_NAME, "no_content_landscape");
+ }
+
edje_object_part_text_set(_EDJ(no_contents), "elm.text", GET_SYS_STR("IDS_COM_BODY_NO_CONTENTS"));
+ mp_language_mgr_register_object(no_contents, OBJ_TYPE_EDJE_OBJECT, "elm.text", "IDS_COM_BODY_NO_CONTENTS");
}
if (layout_data->genlist)
return no_contents;
}
+static int
+_mp_view_layout_set_sentinel(mp_layout_data_t * layout_data, int count)
+{
+ if (0 >= count
+ && (layout_data->category != MP_LAYOUT_PLAYLIST_LIST
+ || (layout_data->filter_str && strlen(layout_data->filter_str))))
+ {
+ ERROR_TRACE("no tracks");
+ if (!layout_data->sentinel)
+ layout_data->sentinel = _mp_view_layout_sentinel_add(layout_data);
+ return -1;
+ }
+
+ if (layout_data->sentinel)
+ {
+ elm_box_unpack(layout_data->box, layout_data->sentinel);
+ evas_object_del(layout_data->sentinel);
+ layout_data->sentinel = NULL;
+ elm_box_pack_end(layout_data->box, layout_data->genlist);
+ evas_object_show(layout_data->genlist);
+ }
+
+ return 0;
+}
+
static Eina_Bool
_mp_view_layout_set_block_count_idle_cb(void *data)
{
char *
_mp_view_layout_gl_label_get_title(void *data, Evas_Object * obj, const char *part)
{
- MP_CHECK_NULL(data);
+ mp_group_item_data_t *item_data = data;
+ char *text = NULL;
+
+ MP_CHECK_NULL(item_data);
+
if (!strcmp(part, "elm.text"))
{
- return strdup(data);
+ if(item_data->text_ID && strstr(item_data->text_ID, "IDS_COM"))
+ text = GET_SYS_STR(item_data->text_ID);
+ else
+ text = GET_STR(item_data->text_ID);
+
+ return g_strdup(text);
}
return NULL;
}
_mp_view_layout_gl_del(void *data, Evas_Object * obj)
{
mp_genlist_item_data_t *item_data = (mp_genlist_item_data_t *) data;
+ if(item_data->unregister_lang_mgr)
+ mp_language_mgr_unregister_genlist_item(item_data->it);
IF_FREE(item_data);
}
static void
-_mp_view_layout_append_group_title(mp_layout_data_t * layout_data, char *title)
+_mp_view_layout_group_gl_del(void *data, Evas_Object * obj)
{
- static Elm_Genlist_Item_Class itc = {
- .item_style = "music_player/grouptitle",
- .func.text_get = _mp_view_layout_gl_label_get_title,
- };
+ mp_group_item_data_t *item_data = data;
+ MP_CHECK(item_data);
+ mp_language_mgr_unregister_genlist_item(item_data->item);
+ free(item_data);
+}
+
+static void
+_mp_view_layout_append_group_title(mp_layout_data_t * layout_data, char *text_ID)
+{
+ static Elm_Genlist_Item_Class itc;
+ mp_group_item_data_t *item_data = NULL;
- layout_data->search_group_git =
- elm_genlist_item_append(layout_data->genlist, &itc, (void *)title, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
+ itc.version = ELM_GENGRID_ITEM_CLASS_VERSION;
+ itc.refcount = 0;
+ itc.delete_me = EINA_FALSE;
+ itc.item_style = "music_player/grouptitle";
+ itc.func.text_get = _mp_view_layout_gl_label_get_title;
+ itc.func.del = _mp_view_layout_group_gl_del;
+
+ item_data = calloc(1, sizeof(mp_group_item_data_t));
+ item_data->text_ID = text_ID;
+
+ item_data->item = layout_data->search_group_git =
+ elm_genlist_item_append(layout_data->genlist, &itc, item_data, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
+
+ mp_language_mgr_register_genlist_item(item_data->item);
MP_CHECK(layout_data->search_group_git);
- elm_genlist_item_select_mode_set(layout_data->search_group_git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
}
static char *
{
MP_CHECK_NULL(data);
char *name = NULL;
- int size = 0;
- int ret = AUDIO_SVC_ERROR_NONE;
- mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
- AudioHandleType *svc_item = (AudioHandleType *) (item->handle);
+ int ret = 0;
+
+ mp_media_info_h svc_item = data;
MP_CHECK_NULL(svc_item);
if (!g_strcmp0(part, "elm.text.1")) {
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ ret = mp_media_info_get_album(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
if (!name || !strlen(name))
name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
return strdup(name);
} else if (!g_strcmp0(part, "elm.text.2")) {
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_SUB_INFO, &name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ ret = mp_media_info_get_artist(svc_item, &name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
if (!name || !strlen(name))
name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
return strdup(name);
} else if (!g_strcmp0(part, "elm.text.3")) {
char *album_name = NULL;
char *artist_name = NULL;
- int track_num = -1;
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &album_name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_SUB_INFO, &artist_name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
- ret = audio_svc_count_list_item(item->media_svc_handle, AUDIO_SVC_TRACK_BY_ARTIST_ALBUM, album_name, artist_name, "", "", &track_num);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, NULL, "Fail to get track_num");
+ int track_num = 0;
+ ret = mp_media_info_get_album(svc_item, &album_name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
+ ret = mp_media_info_get_artist(svc_item, &artist_name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
+
+ ret = mp_media_info_list_count(MP_TRACK_BY_ARTIST_ALBUM, album_name, artist_name,
+ NULL, 0, &track_num);
+ mp_retvm_if(ret != 0, NULL, "Fail to get track_num");
mp_retvm_if(track_num < 0, NULL, "Fail to get track_num");
return g_strdup_printf("%d", track_num);
}
_mp_view_layout_aa_list_icon_get(void *data, Evas_Object * obj, const char *part)
{
MP_CHECK_NULL(data);
- mp_genlist_item_data_t *item = (mp_genlist_item_data_t *) data;
- AudioHandleType *svc_item = (AudioHandleType *) (item->handle);
+ mp_media_info_h svc_item = data;
MP_CHECK_NULL(svc_item);
char *thumb_name = NULL;
Evas_Object *icon = NULL;
- int size = 0;
- int ret = AUDIO_SVC_ERROR_NONE;
-
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_THUMBNAIL_PATH, &thumb_name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ int ret = 0;
+ ret = mp_media_info_get_thumbnail_path(svc_item, &thumb_name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
if (!g_strcmp0(part, "elm.icon")) {
icon = mp_util_create_thumb_icon(obj, thumb_name, MP_ALBUM_LIST_ICON_SIZE, MP_ALBUM_LIST_ICON_SIZE);
return icon;
}
-static char *
-_mp_view_layout_album_list_get_artist_name(MediaSvcHandle *handle, AudioHandleType *svc_item)
-{
- MP_CHECK_NULL(handle);
- MP_CHECK_NULL(svc_item);
- int ret = AUDIO_SVC_ERROR_NONE;
- char *name = NULL;
- int size = -1;
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_SUB_INFO, &name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
-
- int count = -1;
- int track_num = -1;
- char *album_name = NULL;
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &album_name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
-
- ret = audio_svc_count_list_item(handle, AUDIO_SVC_TRACK_BY_ALBUM, album_name, "", "", "", &count);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, NULL, "Fail to get count");
- mp_retvm_if(count < 0, NULL, "Fail to get count");
-
- ret = audio_svc_count_list_item(handle, AUDIO_SVC_TRACK_BY_ARTIST_ALBUM, album_name, name, "", "", &track_num);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, NULL, "Fail to get track_num");
- mp_retvm_if(track_num < 0, NULL, "Fail to get track_num");
- DEBUG_TRACE("track_num=%d,count=%d", track_num, count);
- if (track_num < count) {
- char *artist = NULL;
- AudioHandleType *svc_handle = NULL;
- /* create album svc list */
- ret = audio_svc_list_item_new(&svc_handle, count);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to create svc list");
- /* get album svc list */
- ret = audio_svc_get_list_item(handle, AUDIO_SVC_TRACK_BY_ALBUM, album_name, NULL,
- NULL, NULL, 0, count, svc_handle);
- if (ret != AUDIO_SVC_ERROR_NONE) {
- DEBUG_TRACE("Fail to get svc list");
- audio_svc_list_item_free(svc_handle);
- return NULL;
- }
- /* get artist name */
- ret = audio_svc_list_item_get_val(svc_handle, 0, AUDIO_SVC_LIST_ITEM_ARTIST, &artist, &size, -1);
- if (ret != AUDIO_SVC_ERROR_NONE || artist == NULL) {
- DEBUG_TRACE("Fail to get value: ret: %d, artist: %s", ret, artist);
- if (svc_handle)
- audio_svc_list_item_free(svc_handle);
- return NULL;
- }
-
- char *artist_name = NULL;
- int alloc_size = strlen(artist) + 1;
- artist_name = (char *)g_malloc(alloc_size);
- if (!artist_name) {
- DEBUG_TRACE("Fail to allocate memory");
- if (svc_handle)
- audio_svc_list_item_free(svc_handle);
- return NULL;
- }
- memset(artist_name, 0, alloc_size);
- if (artist)
- strncat(artist_name, artist, strlen(artist));
- int index = 1;
- for (; index < count; index++) {
- /* get artist name */
- artist = NULL;
- ret = audio_svc_list_item_get_val(svc_handle, index, AUDIO_SVC_LIST_ITEM_ARTIST, &artist, &size, -1);
- if (ret != AUDIO_SVC_ERROR_NONE) {
- DEBUG_TRACE("Fail to get value");
- if (svc_handle)
- audio_svc_list_item_free(svc_handle);
- return NULL;
- }
-
- if (artist && !strstr(artist_name, artist)) {
- alloc_size += strlen(artist) + 1;
- artist_name = (char *)g_realloc(artist_name, alloc_size);
- if (!artist_name) {
- DEBUG_TRACE("Fail to reallocate memory");
- if (svc_handle)
- audio_svc_list_item_free(svc_handle);
- return NULL;
- }
- strncat(artist_name, ",", 1);
- strncat(artist_name, artist, strlen(artist));
- DEBUG_TRACE("artist_name=%s,artist=%s", artist_name, artist);
- }
- }
- DEBUG_TRACE("artist_name=%s", artist_name);
- if (svc_handle)
- audio_svc_list_item_free(svc_handle);
- return artist_name;
- }
-
- if (!name || !strlen(name))
- name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
- return g_strdup(name);
-}
-
static Evas_Object *
_mp_view_layout_get_label_slide(Evas_Object *parent, char *name, int font_size, char *color, int max_size)
{
{
MP_CHECK_NULL(data);
char *name = NULL;
- int size = 0;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
mp_layout_data_t *layout_data = (mp_layout_data_t *) data;
- AudioHandleType *svc_item = (AudioHandleType *) (layout_data->album_track_handle);
+ mp_media_info_h svc_item = mp_media_info_list_nth_item(layout_data->svc_handle, 0);
MP_CHECK_NULL(svc_item);
if (!g_strcmp0(part, "elm.text.1")) {
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ ret = mp_media_info_get_album(svc_item, &name);
if (!name || !strlen(name))
name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
return strdup(name);
} else if (!g_strcmp0(part, "elm.text.3")) {
- char *album_name = NULL;
- int track_num = -1;
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &album_name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
- ret = audio_svc_count_list_item(layout_data->ad->media_svc_handle, AUDIO_SVC_TRACK_BY_ALBUM, album_name, NULL, "", "", &track_num);
- mp_retvm_if(ret != AUDIO_SVC_ERROR_NONE, NULL, "Fail to get track_num");
- mp_retvm_if(track_num < 0, NULL, "Fail to get track_num");
- return g_strdup_printf("%d", track_num);
+ return g_strdup_printf("%d", layout_data->item_count);
}
DEBUG_TRACE("Unusing part: %s", part);
startfunc;
MP_CHECK_NULL(data);
mp_layout_data_t *layout_data = (mp_layout_data_t *) data;
- AudioHandleType *svc_item = (AudioHandleType *) (layout_data->album_track_handle);
+ mp_media_info_h svc_item = mp_media_info_list_nth_item(layout_data->svc_handle, 0);
MP_CHECK_NULL(svc_item);
Evas_Object *icon = NULL;
- int size = 0;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
if (!g_strcmp0(part, "elm.icon")) {
char *thumb_name = NULL;
- ret = audio_svc_group_item_get_val(svc_item, 0, AUDIO_SVC_GROUP_ITEM_THUMBNAIL_PATH, &thumb_name, &size, -1);
- mp_retvm_if((ret != AUDIO_SVC_ERROR_NONE), NULL, "Fail to get value");
+ ret = mp_media_info_get_thumbnail_path(svc_item, &thumb_name);
+ mp_retvm_if((ret != 0), NULL, "Fail to get value");
icon = mp_util_create_thumb_icon(obj, thumb_name, MP_ALBUM_LIST_ICON_SIZE, MP_ALBUM_LIST_ICON_SIZE);
} else if (!g_strcmp0(part, "elm.text.swallow")) {
- char *name = _mp_view_layout_album_list_get_artist_name(layout_data->ad->media_svc_handle, svc_item);
- if (name) {
- icon = _mp_view_layout_get_label_slide(obj, name, 36, "FFFFFFFF", 42);
- g_free(name);
- }
+ char *name = NULL;
+ mp_media_info_get_artist(svc_item, &name);
+ if(!name)
+ name = GET_SYS_STR("IDS_COM_BODY_UNKNOWN");
+ icon = _mp_view_layout_get_label_slide(obj, name, 36, "FFFFFFFF", 42);
}
return icon;
}
-static void
-_mp_view_layout_append_aa_group_title(mp_layout_data_t * layout_data, mp_genlist_item_data_t *item_data, int index)
+static Elm_Object_Item *
+_mp_view_layout_append_aa_group_title(mp_layout_data_t * layout_data, mp_media_info_h media)
{
- MP_CHECK(layout_data);
- MP_CHECK(item_data);
- MP_CHECK(index >= 0);
+ MP_CHECK_NULL(layout_data);
+ MP_CHECK_NULL(media);
+ Elm_Object_Item *item = NULL;
static Elm_Genlist_Item_Class aa_group_itc = {
+ .version = ELM_GENGRID_ITEM_CLASS_VERSION,
+ .refcount = 0,
+ .delete_me = EINA_FALSE,
.item_style = "music_player/dialogue_title",
.func.text_get = _mp_view_layout_aa_list_label_get,
.func.content_get = _mp_view_layout_aa_list_icon_get,
};
- layout_data->aa_group_itc = &aa_group_itc;
- layout_data->aa_group[index] =
- elm_genlist_item_append(layout_data->genlist, layout_data->aa_group_itc, item_data,
+ item = elm_genlist_item_append(layout_data->genlist, &aa_group_itc, media,
NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
- MP_CHECK(layout_data->aa_group[index]);
- elm_genlist_item_select_mode_set(layout_data->aa_group[index], ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ MP_CHECK_NULL(item);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ return item;
}
static void
startfunc;
MP_CHECK(layout_data);
static Elm_Genlist_Item_Class album_group_itc = {
+ .version = ELM_GENGRID_ITEM_CLASS_VERSION,
+ .refcount = 0,
+ .delete_me = EINA_FALSE,
.item_style = "music_player/album_title",
.func.text_get = _mp_view_layout_album_list_label_get,
.func.content_get = _mp_view_layout_album_list_icon_get,
};
- layout_data->album_group_itc = &album_group_itc;
layout_data->album_group =
- elm_genlist_item_append(layout_data->genlist, layout_data->album_group_itc, layout_data,
+ elm_genlist_item_append(layout_data->genlist, &album_group_itc, layout_data,
NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
MP_CHECK(layout_data->album_group);
elm_genlist_item_select_mode_set(layout_data->album_group, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
}
static void
-_mp_view_layout_add_album_group_title(mp_layout_data_t * layout_data)
-{
- startfunc;
- MP_CHECK(layout_data);
- MP_CHECK(layout_data->svc_handle);
- int ret = AUDIO_SVC_ERROR_NONE;
- char *artist = NULL;
- int size = -1;
- ret = audio_svc_list_item_get_val(layout_data->svc_handle, 0, AUDIO_SVC_LIST_ITEM_ARTIST, &artist, &size, -1);
- mp_retm_if((ret != AUDIO_SVC_ERROR_NONE), "Fail to get value");
- DEBUG_TRACE("artist=%s,type_str=%s", artist, layout_data->type_str);
- /* create album svc group */
- AudioHandleType *group_handle = NULL;
- ret = audio_svc_group_item_new(&group_handle, 1);
- mp_retm_if((ret != AUDIO_SVC_ERROR_NONE), "Fail to create structure");
- DEBUG_TRACE("artist=%s,type_str=%s", artist, layout_data->type_str);
- /* get album svc group */
- ret = audio_svc_get_group_item(layout_data->ad->media_svc_handle, AUDIO_SVC_GROUP_BY_ARTIST_ALBUM, artist, NULL,
- layout_data->type_str, NULL, 0, 1, group_handle);
- if (ret != AUDIO_SVC_ERROR_NONE) {
- DEBUG_TRACE("Fail to get group items");
- audio_svc_group_item_free(group_handle);
- return;
- }
- /* free last album svc group */
- if (layout_data->album_track_handle)
- audio_svc_group_item_free(layout_data->album_track_handle);
- /* set album_track_handle value */
- layout_data->album_track_handle = group_handle;
-
- _mp_view_layout_append_album_group_title(layout_data);
- endfunc;
-}
-
-static void
_mp_view_layout_load_search_list_item(Evas_Object * view_layout)
{
DEBUG_TRACE("");
- Elm_Genlist_Item_Class itc;
+ static Elm_Genlist_Item_Class itc;
mp_layout_data_t *layout_data = evas_object_data_get(view_layout, "layout_data");
mp_retm_if(!layout_data, "layout_data is null");
else
{
memset(&itc, 0, sizeof(Elm_Genlist_Item_Class));
+ itc.version = ELM_GENGRID_ITEM_CLASS_VERSION;
+ itc.refcount = 0;
+ itc.delete_me = EINA_FALSE;
itc.item_style = "music_player/1icon.3text";
itc.func.text_get = mp_common_track_list_label_get;
itc.func.content_get = mp_common_track_list_icon_get;
mp_view_layout_set_layout_data(view_layout,
MP_LAYOUT_CATEGORY_TYPE, MP_LAYOUT_TRACK_LIST,
- MP_LAYOUT_TRACK_LIST_TYPE, AUDIO_SVC_TRACK_ALL,
+ MP_LAYOUT_TRACK_LIST_TYPE, MP_TRACK_ALL,
MP_LAYOUT_LIST_CB, &genlist_cbs, MP_LAYOUT_GENLIST_ITEMCLASS, &itc, -1);
_mp_view_layout_load_list_item(view_layout);
}
}
+static void
+_mp_view_layout_index_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *gl_item = data;
+ MP_CHECK(gl_item);
+
+ elm_genlist_item_bring_in(gl_item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+}
+
static Eina_Bool
_mp_view_layout_load_item_idler_cb(void *data)
{
return EINA_FALSE;
}
- itc = &(layout_data->itc);
+ itc = layout_data->itc;
sel_cb = layout_data->cb_func.selected_cb;
for (index = MP_INIT_ITEM_LOAD_COUNT; index < layout_data->item_count; index++)
{
- AudioHandleType *item = NULL;
+ mp_media_info_h item = NULL;
Elm_Object_Item *list_item = NULL;
char *title = NULL;
- int size = 0;
if (layout_data->category == MP_LAYOUT_PLAYLIST_LIST)
{
- ret = audio_svc_playlist_get_item(layout_data->svc_handle, index, &item);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ item = mp_media_info_group_list_nth_item(layout_data->svc_handle, index);
+ if (!item)
{
- DEBUG_TRACE("Fail to audio_svc_playlist_get_item, ret[%d], index[%d]", ret, index);
+ DEBUG_TRACE("Fail to mp_media_info_group_list_nth_item, index[%d]", index);
goto END;
}
- audio_svc_playlist_get_val(item, 0, AUDIO_SVC_PLAYLIST_NAME, &title, &size, -1);
+ mp_media_info_group_get_main_info(item, &title);
}
else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
{
- ret = audio_svc_group_item_get(layout_data->svc_handle, index, &item);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ item = mp_media_info_group_list_nth_item(layout_data->svc_handle, index);
+ if (item == NULL)
{
- DEBUG_TRACE("Fail to audio_svc_group_item_get, ret[%d], index[%d]", ret, index);
+ DEBUG_TRACE("Fail to mp_media_info_group_list_nth_item, index[%d]", index);
goto END;
}
- audio_svc_group_item_get_val(item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &title, &size, -1);
+ ret = mp_media_info_group_get_main_info(item, &title);
}
else
{
- if (layout_data->playlist_id < 0)
+ item = mp_media_info_list_nth_item(layout_data->svc_handle, index);
+ if (!item)
{
- ret = audio_svc_list_item_get(layout_data->svc_handle, index, &item);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to audio_svc_list_item_get, ret[%d], index[%d]", ret, index);
- goto END;
- }
- audio_svc_list_item_get_val(item, 0, AUDIO_SVC_LIST_ITEM_TITLE, &title, &size, -1);
+ DEBUG_TRACE("Fail to mp_media_info_list_nth_item, ret[%d], index[%d]", ret, index);
+ goto END;
}
- else
+ mp_media_info_get_title(item, &title);
+ }
+ bool make_group_title = FALSE;
+
+ if (layout_data->fast_scrooll_index == NULL)
+ {
+ make_group_title = TRUE;
+ layout_data->fast_scrooll_index = mp_util_get_utf8_initial(title);
+ }
+ else
+ {
+ char *title_initial = mp_util_get_utf8_initial(title);
+ if (title_initial)
{
- ret = audio_svc_playlist_item_get(layout_data->svc_handle, index, &item);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ if (strcmp(layout_data->fast_scrooll_index, title_initial) != 0)
{
- DEBUG_TRACE("Fail to audio_svc_list_item_get, ret[%d], index[%d]", ret, index);
- goto END;
+ make_group_title = TRUE;
+ free(layout_data->fast_scrooll_index);
+ layout_data->fast_scrooll_index = title_initial;
+ }
+ else
+ {
+ free(title_initial);
}
- audio_svc_playlist_item_get_val(item, 0, AUDIO_SVC_PLAYLIST_ITEM_TITLE, &title, &size,
- -1);
}
}
item_data = calloc(1, sizeof(mp_genlist_item_data_t));
if (!item_data)
goto END;
- item_data->media_svc_handle = layout_data->ad->media_svc_handle;
- item_data->handle = (void *)item;
+ item_data->handle = item;
item_data->group_type = layout_data->group_type;
+ // func.del shouldn't be used in other place....
itc->func.del = _mp_view_layout_gl_del;
item_data->it = list_item = elm_genlist_item_append(layout_data->genlist, itc, item_data, NULL,
ELM_GENLIST_ITEM_NONE, sel_cb, (void *)index);
+ if (make_group_title && layout_data->index_fast != NULL)
+ {
+ elm_index_item_append(layout_data->index_fast, layout_data->fast_scrooll_index, _mp_view_layout_index_item_selected_cb, list_item);
+ }
}
END:
MP_CHECK(layout_data);
layout_data->select_all_layout = elm_layout_add(layout_data->box);
- elm_layout_theme_set(layout_data->select_all_layout, "genlist", "item", "select_all/music/default");
+ elm_layout_theme_set(layout_data->select_all_layout, "genlist", "item", "select_all/default");
evas_object_size_hint_weight_set(layout_data->select_all_layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
evas_object_size_hint_align_set(layout_data->select_all_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_event_callback_add(layout_data->select_all_layout, EVAS_CALLBACK_MOUSE_DOWN,
edje_object_part_text_set(elm_layout_edje_get(layout_data->select_all_layout), "elm.text",
GET_SYS_STR("IDS_COM_BODY_SELECT_ALL"));
+
+ mp_language_mgr_register_object(layout_data->select_all_layout, OBJ_TYPE_EDJE_OBJECT, "elm.text", "IDS_COM_BODY_SELECT_ALL");
+
elm_box_pack_start(layout_data->box, layout_data->select_all_layout);
evas_object_show(layout_data->select_all_layout);
}
gint album_count = 0;
gint index = 0;
- int ret = AUDIO_SVC_ERROR_NONE;
- AudioHandleType *svc_handle = NULL;
+ int ret = 0;
+ mp_media_list_h svc_handle = NULL;
mp_layout_data_t *layout_data = evas_object_data_get(view_layout, "layout_data");
mp_retm_if(!layout_data, "layout_data is null");
elm_genlist_clear(layout_data->genlist);
- ret = audio_svc_count_group_item(layout_data->ad->media_svc_handle, AUDIO_SVC_GROUP_BY_ARTIST, NULL, NULL, layout_data->filter_str, NULL,
- &artist_count);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_group_list_count(MP_GROUP_BY_ARTIST, NULL, layout_data->filter_str, &artist_count);
+ if (ret != 0)
{
DEBUG_TRACE("Fail to create structure");
goto END;
}
- ret = audio_svc_count_group_item(layout_data->ad->media_svc_handle, AUDIO_SVC_GROUP_BY_ALBUM, NULL, NULL, layout_data->filter_str, NULL,
- &album_count);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_group_list_count(MP_GROUP_BY_ALBUM, NULL, layout_data->filter_str, &album_count);
+ if (ret != 0)
{
DEBUG_TRACE("Fail to create structure");
goto END;
}
- ret = audio_svc_count_list_item(layout_data->ad->media_svc_handle, AUDIO_SVC_TRACK_ALL, NULL, NULL, layout_data->filter_str, NULL, &track_count);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ ret = mp_media_info_list_count(MP_TRACK_ALL, NULL, NULL, layout_data->filter_str, 0, &track_count);
+ if (ret != 0)
{
DEBUG_TRACE("Fail to create structure");
goto END;
count = artist_count + album_count + track_count;
layout_data->track_count = track_count;
- if (0 >= count)
- {
- ERROR_TRACE("no tracks");
- if (!layout_data->sentinel)
- layout_data->sentinel = _mp_view_layout_sentinel_add(layout_data);
+ if(_mp_view_layout_set_sentinel(layout_data, count))
goto END;
- }
-
- if (layout_data->sentinel)
- {
- elm_box_unpack(layout_data->box, layout_data->sentinel);
- evas_object_del(layout_data->sentinel);
- layout_data->sentinel = NULL;
- elm_box_pack_end(layout_data->box, layout_data->genlist);
- evas_object_show(layout_data->genlist);
- }
static Elm_Genlist_Item_Class group_class = {
+ .version = ELM_GENGRID_ITEM_CLASS_VERSION,
+ .refcount = 0,
+ .delete_me = EINA_FALSE,
.item_style = "music_player/1icon.2text",
.func.text_get = mp_group_view_list_label_get,
.func.content_get = mp_group_view_icon_get,
};
static Elm_Genlist_Item_Class track_class = {
+ .version = ELM_GENGRID_ITEM_CLASS_VERSION,
+ .refcount = 0,
+ .delete_me = EINA_FALSE,
.item_style = "music_player/1icon.3text",
.func.text_get = mp_common_track_list_label_get,
.func.content_get = mp_common_track_list_icon_get,
if (artist_count)
{
DEBUG_TRACE("append artist list items");
- _mp_view_layout_append_group_title(layout_data, GET_STR("IDS_MUSIC_TAB4_ARTISTS"));
- ret = audio_svc_group_item_new(&svc_handle, artist_count);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to create structure");
- goto END;
- }
- ret = audio_svc_get_group_item(layout_data->ad->media_svc_handle, AUDIO_SVC_GROUP_BY_ARTIST, NULL, NULL, layout_data->filter_str, NULL, 0,
- artist_count, svc_handle);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ _mp_view_layout_append_group_title(layout_data, ("IDS_MUSIC_TAB4_ARTISTS"));
+ ret = mp_media_info_group_list_create(&svc_handle, MP_GROUP_BY_ARTIST, NULL, layout_data->filter_str, 0, artist_count);
+ if (ret != 0)
{
DEBUG_TRACE("Fail to get items");
goto END;
for (index = 0; index < artist_count; index++)
{
- AudioHandleType *item = NULL;
+ mp_media_info_h item = NULL;
Elm_Object_Item *list_item = NULL;
char *title = NULL;
- int size = 0;
- ret = audio_svc_group_item_get(svc_handle, index, &item);
- if (ret != AUDIO_SVC_ERROR_NONE)
+
+ item = mp_media_info_group_list_nth_item(svc_handle, index);
+ if (item == NULL)
{
- DEBUG_TRACE("Fail to audio_svc_list_item_get, ret[%d], index[%d]", ret, index);
+ DEBUG_TRACE("Fail to mp_media_info_group_list_nth_item, ret[%d], index[%d]", ret, index);
goto END;
}
- audio_svc_group_item_get_val(item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &title, &size, -1);
+ ret = mp_media_info_group_get_main_info(item, &title);
mp_genlist_item_data_t *item_data;
item_data = calloc(1, sizeof(mp_genlist_item_data_t));
MP_CHECK(item_data);
- item_data->handle = (void *)item;
- item_data->group_type = AUDIO_SVC_GROUP_BY_ARTIST;
+ item_data->handle = item;
+ item_data->group_type = MP_GROUP_BY_ARTIST;
item_data->it = list_item =
elm_genlist_item_append(layout_data->genlist, &group_class, item_data,
if (layout_data->artist_handle)
{
- audio_svc_group_item_free(layout_data->artist_handle);
+ mp_media_info_group_list_destroy(layout_data->artist_handle);
layout_data->track_handle = NULL;
}
layout_data->artist_handle = svc_handle;
if (album_count)
{
DEBUG_TRACE("append album_count list items");
- _mp_view_layout_append_group_title(layout_data, GET_STR("IDS_MUSIC_TAB4_ALBUMS"));
- ret = audio_svc_group_item_new(&svc_handle, album_count);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to create structure");
- goto END;
- }
- ret = audio_svc_get_group_item(layout_data->ad->media_svc_handle, AUDIO_SVC_GROUP_BY_ALBUM, NULL, NULL, layout_data->filter_str, NULL, 0,
- album_count, svc_handle);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ _mp_view_layout_append_group_title(layout_data, ("IDS_MUSIC_TAB4_ALBUMS"));
+
+ ret = mp_media_info_group_list_create(&svc_handle, MP_GROUP_BY_ALBUM, NULL, layout_data->filter_str, 0, album_count);
+ if (ret != 0)
{
DEBUG_TRACE("Fail to get items");
goto END;
for (index = 0; index < album_count; index++)
{
- AudioHandleType *item = NULL;
+ mp_media_info_h item = NULL;
Elm_Object_Item *list_item = NULL;
char *title = NULL;
- int size = 0;
- ret = audio_svc_group_item_get(svc_handle, index, &item);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ item = mp_media_info_group_list_nth_item(svc_handle, index);
+ if (item == NULL)
{
- DEBUG_TRACE("Fail to audio_svc_list_item_get, ret[%d], index[%d]", ret, index);
+ DEBUG_TRACE("Fail to mp_media_info_group_list_nth_item, ret[%d], index[%d]", ret, index);
goto END;
}
- audio_svc_group_item_get_val(item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &title, &size, -1);
+ ret = mp_media_info_group_get_main_info(item, &title);
mp_genlist_item_data_t *item_data;
item_data = calloc(1, sizeof(mp_genlist_item_data_t));
MP_CHECK(item_data);
- item_data->media_svc_handle = layout_data->ad->media_svc_handle;
- item_data->handle = (void *)item;
- item_data->group_type = AUDIO_SVC_GROUP_BY_ALBUM;
+ item_data->handle = item;
+ item_data->group_type = MP_GROUP_BY_ALBUM;
item_data->it = list_item =
elm_genlist_item_append(layout_data->genlist, &group_class, item_data,
if (layout_data->album_handle)
{
- audio_svc_group_item_free(layout_data->album_handle);
+ mp_media_info_group_list_destroy(layout_data->album_handle);
layout_data->track_handle = NULL;
}
layout_data->album_handle = svc_handle;
if (track_count)
{
DEBUG_TRACE("append track_count list items");
- _mp_view_layout_append_group_title(layout_data, GET_STR("IDS_MUSIC_HEADER_SONGS"));
- ret = audio_svc_list_item_new(&svc_handle, track_count);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to create structure");
- goto END;
- }
- ret = audio_svc_get_list_item(layout_data->ad->media_svc_handle, AUDIO_SVC_TRACK_ALL, NULL, NULL, layout_data->filter_str, NULL, 0,
- track_count, svc_handle);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ _mp_view_layout_append_group_title(layout_data, ("IDS_MUSIC_HEADER_SONGS"));
+
+ ret = mp_media_info_list_create(&svc_handle, MP_TRACK_ALL, NULL, NULL, layout_data->filter_str, 0, 0, track_count);
+ if (ret != 0)
{
DEBUG_TRACE("Fail to get items");
goto END;
for (index = 0; index < track_count; index++)
{
- AudioHandleType *item = NULL;
Elm_Object_Item *list_item = NULL;
- char *title = NULL;
- int size = 0;
- ret = audio_svc_list_item_get(svc_handle, index, &item);
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to audio_svc_list_item_get, ret[%d], index[%d]", ret, index);
- goto END;
- }
- audio_svc_list_item_get_val(item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &title, &size, -1);
+
+ mp_media_info_h item = NULL;
+ item = mp_media_info_list_nth_item(svc_handle, index);
mp_genlist_item_data_t *item_data;
item_data = calloc(1, sizeof(mp_genlist_item_data_t));
MP_CHECK(item_data);
- item_data->media_svc_handle = layout_data->ad->media_svc_handle;
- item_data->handle = (void *)item;
+ item_data->handle = item;
item_data->it = list_item =
elm_genlist_item_append(layout_data->genlist, &track_class, item_data,
layout_data->search_group_git, ELM_GENLIST_ITEM_NONE,
mp_common_track_genlist_sel_cb, (void *)index);
-
}
if (layout_data->track_handle)
{
- audio_svc_list_item_free(layout_data->track_handle);
+ mp_media_info_list_destroy(layout_data->track_handle);
layout_data->track_handle = NULL;
}
layout_data->track_handle = svc_handle;
{
startfunc;
MP_CHECK(view_layout);
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
gint count = -1;
+ int i;
+ mp_media_list_h track_list = NULL;
+ mp_media_info_h media = NULL;
+ char *album = "";
+ Elm_Object_Item *parent_group = NULL;
+ MP_TA_ACUM_ITEM_BEGIN(" _mp_view_layout_load_aa_list_item", 0);
mp_layout_data_t *layout_data = evas_object_data_get(view_layout, "layout_data");
mp_retm_if(!layout_data, "layout_data is null");
layout_data->load_item_idler = NULL;
}
+ IF_FREE(layout_data->fast_scrooll_index);
+
Elm_Object_Item *item = elm_genlist_first_item_get(layout_data->genlist);
if (item) {
elm_genlist_item_bring_in(item, ELM_GENLIST_ITEM_SCROLLTO_IN);
elm_genlist_clear(layout_data->genlist);
}
- audio_svc_count_group_item(layout_data->ad->media_svc_handle, AUDIO_SVC_GROUP_BY_ARTIST_ALBUM, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, &count);
-
+ ret = mp_media_info_list_count(MP_TRACK_BY_ARTIST, layout_data->type_str, NULL, NULL, 0, &count);
+ MP_CHECK(ret == 0);
layout_data->item_count = count;
- if (0 >= count
- && (layout_data->category != MP_LAYOUT_PLAYLIST_LIST
- || (layout_data->filter_str && strlen(layout_data->filter_str))))
- {
- ERROR_TRACE("no tracks");
- if (!layout_data->sentinel)
- layout_data->sentinel = _mp_view_layout_sentinel_add(layout_data);
+ if(_mp_view_layout_set_sentinel(layout_data, count))
goto END;
- }
- if (layout_data->sentinel) {
- elm_box_unpack(layout_data->box, layout_data->sentinel);
- evas_object_del(layout_data->sentinel);
- layout_data->sentinel = NULL;
- elm_box_pack_end(layout_data->box, layout_data->genlist);
- evas_object_show(layout_data->genlist);
- }
+ ret = mp_media_info_list_create(&track_list, MP_TRACK_BY_ARTIST, layout_data->type_str, NULL, NULL, 0, 0, count);
+ MP_CHECK(ret == 0);
- /* create artist-album svc group */
- AudioHandleType *group_handle = NULL;
- ret = audio_svc_group_item_new(&group_handle, count);
- if (ret != AUDIO_SVC_ERROR_NONE) {
- DEBUG_TRACE("Fail to create structure");
- goto END;
- }
- /* get artist-album svc group */
- ret = audio_svc_get_group_item(layout_data->ad->media_svc_handle, AUDIO_SVC_GROUP_BY_ARTIST_ALBUM, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, 0, count, group_handle);
- if (ret != AUDIO_SVC_ERROR_NONE) {
- DEBUG_TRACE("Fail to get group items");
- audio_svc_group_item_free(group_handle);
- goto END;
- }
- /* free last artist-album svc group */
- if (layout_data->aa_handle)
- audio_svc_group_item_free(layout_data->aa_handle);
- /* set aa_handle value */
- layout_data->aa_handle = group_handle;
- /* set aa_group_count value */
- layout_data->aa_group_count = count;
-
- IF_FREE(layout_data->aa_group);
- IF_FREE(layout_data->aa_item_count);
- layout_data->aa_group = calloc(count, sizeof(Elm_Object_Item *));
- layout_data->aa_item_count = calloc(count, sizeof(int));
- if (!layout_data->aa_item_count || !layout_data->aa_group) {
- DEBUG_TRACE("allocate memory fail");
- goto END;
- }
- int track_num = -1;
- int size = 0;
- ret = audio_svc_count_list_item(layout_data->ad->media_svc_handle, AUDIO_SVC_TRACK_BY_ARTIST, layout_data->type_str,
- NULL, "", "", &track_num);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get track_num");
-
- AudioHandleType *svc_handle = NULL;
- /* create artist-album svc list */
- ret = audio_svc_list_item_new(&svc_handle, track_num);
- /* get sub list track count */
- ret = audio_svc_get_list_item(layout_data->ad->media_svc_handle, AUDIO_SVC_TRACK_BY_ARTIST, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, 0, track_num, svc_handle);
- /* free last artist-album svc list */
if (layout_data->svc_handle)
- audio_svc_group_item_free(layout_data->svc_handle);
+ mp_media_info_list_destroy(layout_data->svc_handle);
/* set svc_handle value */
- layout_data->svc_handle = svc_handle;
-
- layout_data->item_count = track_num;
- int group_index = 0;
- int index = 0;
+ layout_data->svc_handle = track_list;
Elm_Genlist_Item_Class *itc = NULL;
- genlist_cb_t sel_cb = NULL;
- itc = &(layout_data->itc);
- sel_cb = layout_data->cb_func.selected_cb;
+ char *thumbnail_path = NULL;
+ itc = layout_data->itc;
itc->func.del = _mp_view_layout_gl_del;
itc->decorate_all_item_style = "music_edit_default";
- //itc->func.moved = _mp_view_layout_reorder;
- evas_object_smart_callback_del(layout_data->genlist, "moved", _mp_view_layout_reorder);
- evas_object_smart_callback_add(layout_data->genlist, "moved", _mp_view_layout_reorder, layout_data);
-
- DEBUG_TRACE("item_count=%d,count=%d", layout_data->item_count, count);
- for (group_index = 0; group_index < count; group_index++) {
- char *album_name = NULL;
- int item_num = -1;
- AudioHandleType *group_item = NULL;
- /* get item value */
- ret = audio_svc_group_item_get(group_handle, group_index, &group_item);
- if (ret != AUDIO_SVC_ERROR_NONE) {
- DEBUG_TRACE("Fail to audio_svc_group_item_get, ret[%d]", ret);
- goto END;
+ for(i=0; i< count; i++)
+ {
+ char *temp;
+ media = mp_media_info_list_nth_item(track_list, i);
+ mp_retm_if(!media, "Fail to get value");
+ mp_media_info_get_album(media, &temp);
+
+ if(g_strcmp0(album, temp)){
+ album = temp;
+ parent_group = _mp_view_layout_append_aa_group_title(layout_data, media);
+ mp_media_info_get_thumbnail_path(media, &thumbnail_path);
+ }else if(!thumbnail_path){
+ mp_media_info_get_thumbnail_path(media, &thumbnail_path);
+ if(thumbnail_path)
+ elm_object_item_data_set(parent_group, media);
}
- /* add artist-album group title */
- mp_genlist_item_data_t *group_item_data = NULL;
- group_item_data = calloc(1, sizeof(mp_genlist_item_data_t));
- if (!group_item_data) {
+ mp_genlist_item_data_t *sub_item_data = NULL;
+ sub_item_data = calloc(1, sizeof(mp_genlist_item_data_t));
+ if (!sub_item_data) {
DEBUG_TRACE("allocate memory fail");
goto END;
}
- group_item_data->media_svc_handle = layout_data->ad->media_svc_handle;
- group_item_data->handle = (void *)group_item;
- _mp_view_layout_append_aa_group_title(layout_data, group_item_data, group_index);
-
- ret = audio_svc_group_item_get_val(group_handle, group_index, AUDIO_SVC_GROUP_ITEM_MAIN_INFO,
- &album_name, &size, -1);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
-
- ret = audio_svc_count_list_item(layout_data->ad->media_svc_handle, AUDIO_SVC_TRACK_BY_ARTIST_ALBUM, album_name,
- layout_data->type_str, "", "", &item_num);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get item_num");
- mp_retm_if(item_num < 0, "Fail to get item_num");
- layout_data->aa_item_count[group_index] = item_num;
-
- int sub_index = 0;
- for (; sub_index < item_num; sub_index++) {
- AudioHandleType *sub_item = NULL;
- Elm_Object_Item *sub_list_item = NULL;
- ret = audio_svc_list_item_get(svc_handle, index, &sub_item);
- mp_retm_if(ret != AUDIO_SVC_ERROR_NONE, "Fail to get value");
-
- mp_genlist_item_data_t *sub_item_data = NULL;
- sub_item_data = calloc(1, sizeof(mp_genlist_item_data_t));
- if (!sub_item_data) {
- DEBUG_TRACE("allocate memory fail");
- goto END;
- }
- sub_item_data->media_svc_handle = layout_data->ad->media_svc_handle;
- sub_item_data->handle = (void *)sub_item;
- Elm_Object_Item *parent_group = NULL;
- parent_group = layout_data->aa_group[group_index];
- sub_item_data->it = sub_list_item = elm_genlist_item_append(layout_data->genlist, itc, sub_item_data,
- parent_group, ELM_GENLIST_ITEM_NONE,
- sel_cb, (void *)index);
- ++index;
- }
+ sub_item_data->handle = media;
+
+ sub_item_data->it = elm_genlist_item_append(layout_data->genlist, itc, sub_item_data,
+ parent_group, ELM_GENLIST_ITEM_NONE,
+ layout_data->cb_func.selected_cb, (void *)i);
+ DEBUG_TRACE("0x%x", elm_genlist_item_parent_get(sub_item_data->it));
}
if (layout_data->edit_mode || (layout_data->ad->b_add_tracks
elm_genlist_select_mode_set(layout_data->genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
}
- if (layout_data->reorder && layout_data->playlist_id > 0) {
- elm_genlist_reorder_mode_set(layout_data->genlist, EINA_TRUE);
- } else {
- elm_genlist_reorder_mode_set(layout_data->genlist, EINA_FALSE);
- }
+ elm_genlist_reorder_mode_set(layout_data->genlist, EINA_FALSE);
END:
layout_data->b_loading = FALSE;
+ MP_TA_ACUM_ITEM_END(" _mp_view_layout_load_aa_list_item", 0);
endfunc;
}
_mp_view_layout_load_list_item(Evas_Object * view_layout)
{
startfunc;
+ int id = 0; //id for playlist or folder
gint count = -1;
gint load_count = -1;
gint index = 0;
- int ret = AUDIO_SVC_ERROR_NONE;
+ int ret = 0;
Elm_Genlist_Item_Class *itc;
genlist_cb_t sel_cb;
+ MP_TA_ACUM_ITEM_BEGIN(" _mp_view_layout_load_list_item", 0);
mp_layout_data_t *layout_data = evas_object_data_get(view_layout, "layout_data");
mp_retm_if(!layout_data, "layout_data is null");
layout_data->load_item_idler = NULL;
}
+ IF_FREE(layout_data->fast_scrooll_index);
+
Elm_Object_Item *item = elm_genlist_first_item_get(layout_data->genlist);
if (item)
{
elm_genlist_clear(layout_data->genlist);
}
+ MP_TA_ACUM_ITEM_BEGIN(" mp_media_info_list_count", 0);
+
+ if(layout_data->track_type == MP_TRACK_BY_PLAYLIST)
+ id = layout_data->playlist_id;
if (layout_data->category == MP_LAYOUT_TRACK_LIST)
{
- if (layout_data->playlist_id < 0)
- audio_svc_count_list_item(layout_data->ad->media_svc_handle, layout_data->track_type, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, &count);
- else
- audio_svc_count_playlist_item(layout_data->ad->media_svc_handle, layout_data->playlist_id, layout_data->filter_str, NULL, &count);
+ mp_media_info_list_count(layout_data->track_type, layout_data->type_str, NULL, layout_data->filter_str, id, &count);
}
else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
- audio_svc_count_group_item(layout_data->ad->media_svc_handle, layout_data->group_type, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, &count);
+ mp_media_info_group_list_count(layout_data->group_type, layout_data->type_str, layout_data->filter_str, &count);
else if (layout_data->category == MP_LAYOUT_PLAYLIST_LIST)
{
- audio_svc_count_playlist(layout_data->ad->media_svc_handle, layout_data->filter_str, NULL, &count);
+ mp_media_info_group_list_count(MP_GROUP_BY_PLAYLIST, NULL, layout_data->filter_str, &count);
_mp_view_layout_append_auto_playlists(layout_data);
}
else
WARN_TRACE("category is not valid: %d", layout_data->category);
goto END;
}
+ MP_TA_ACUM_ITEM_END(" mp_media_info_list_count", 0);
+
layout_data->item_count = count;
DEBUG_TRACE("count: %d", count);
- if (0 >= count
- && (layout_data->category != MP_LAYOUT_PLAYLIST_LIST
- || (layout_data->filter_str && strlen(layout_data->filter_str))))
- {
- ERROR_TRACE("no tracks");
- if (!layout_data->sentinel)
- layout_data->sentinel = _mp_view_layout_sentinel_add(layout_data);
+ if(_mp_view_layout_set_sentinel(layout_data, count))
goto END;
- }
- if (layout_data->sentinel)
- {
- elm_box_unpack(layout_data->box, layout_data->sentinel);
- evas_object_del(layout_data->sentinel);
- layout_data->sentinel = NULL;
- elm_box_pack_end(layout_data->box, layout_data->genlist);
- evas_object_show(layout_data->genlist);
- }
+ if(count < 0)
+ goto END;
- AudioHandleType *svc_handle = NULL;
- if (layout_data->category == MP_LAYOUT_PLAYLIST_LIST)
- ret = audio_svc_playlist_new(&svc_handle, count);
- else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
- ret = audio_svc_group_item_new(&svc_handle, count);
- else
+ MP_TA_ACUM_ITEM_BEGIN(" _mp_view_layout_create_fastscroll_index", 0);
+ if (layout_data->category != MP_LAYOUT_PLAYLIST_LIST && layout_data->view_mode != MP_VIEW_MODE_SEARCH)
{
- if (layout_data->playlist_id < 0)
- ret = audio_svc_list_item_new(&svc_handle, count);
+ if (layout_data->index_fast)
+ elm_index_item_clear(layout_data->index_fast);
else
- ret = audio_svc_playlist_item_new(&svc_handle, count);
+ {
+ layout_data->index_fast = _mp_view_layout_create_fastscroll_index(view_layout, layout_data);
+ }
}
- if (ret != AUDIO_SVC_ERROR_NONE)
+ MP_TA_ACUM_ITEM_END(" _mp_view_layout_create_fastscroll_index", 0);
+
+ MP_TA_ACUM_ITEM_BEGIN(" mp_media_info_list_create", 0);
+
+ mp_media_list_h svc_handle;
+
+ if (ret != 0)
{
DEBUG_TRACE("Fail to create structure");
goto END;
}
if (layout_data->category == MP_LAYOUT_PLAYLIST_LIST)
- ret = audio_svc_get_playlist(layout_data->ad->media_svc_handle, layout_data->filter_str, NULL, 0, count, svc_handle);
+ ret = mp_media_info_group_list_create(&svc_handle, MP_GROUP_BY_PLAYLIST, NULL, layout_data->filter_str, 0, count);
else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
- ret = audio_svc_get_group_item(layout_data->ad->media_svc_handle, layout_data->group_type, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, 0, count, svc_handle);
+ ret = mp_media_info_group_list_create(&svc_handle, layout_data->group_type, layout_data->type_str, layout_data->filter_str, 0, count);
else
{
- if (layout_data->playlist_id < 0)
- ret = audio_svc_get_list_item(layout_data->ad->media_svc_handle, layout_data->track_type, layout_data->type_str, NULL,
- layout_data->filter_str, NULL, 0, count, svc_handle);
- else
- ret = audio_svc_get_playlist_item(layout_data->ad->media_svc_handle, layout_data->playlist_id, layout_data->filter_str, NULL, 0,
- count, svc_handle);
+ ret = mp_media_info_list_create(&svc_handle, layout_data->track_type, layout_data->type_str, NULL, layout_data->filter_str, id, 0, count);
}
- if (ret != AUDIO_SVC_ERROR_NONE)
+ if (ret != 0)
{
DEBUG_TRACE("Fail to get items");
- audio_svc_list_item_free(svc_handle);
goto END;
}
if (layout_data->svc_handle)
{
if (layout_data->category == MP_LAYOUT_PLAYLIST_LIST)
- audio_svc_playlist_free(layout_data->svc_handle);
+ mp_media_info_group_list_destroy(layout_data->svc_handle);
else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
- audio_svc_group_item_free(layout_data->svc_handle);
+ mp_media_info_group_list_destroy(layout_data->svc_handle);
else
{
- if (layout_data->playlist_id < 0)
- audio_svc_list_item_free(layout_data->svc_handle);
- else
- audio_svc_playlist_item_free(layout_data->svc_handle);
+ mp_media_info_list_destroy(layout_data->svc_handle);
}
}
layout_data->svc_handle = svc_handle;
+ MP_TA_ACUM_ITEM_END(" mp_media_info_list_create", 0);
+
+ MP_TA_ACUM_ITEM_BEGIN(" add_genlist_items", 0);
- itc = &(layout_data->itc);
+ itc = layout_data->itc;
sel_cb = layout_data->cb_func.selected_cb;
itc->func.del = _mp_view_layout_gl_del;
itc->decorate_all_item_style = "music_edit_default";
- //itc->func.moved = _mp_view_layout_reorder;
evas_object_smart_callback_del(layout_data->genlist, "moved", _mp_view_layout_reorder);
evas_object_smart_callback_add(layout_data->genlist, "moved", _mp_view_layout_reorder, layout_data);
if (layout_data->playlist_id < 0
&& MP_LAYOUT_TRACK_LIST == layout_data->category
- && AUDIO_SVC_TRACK_BY_ALBUM == layout_data->track_type)
- _mp_view_layout_add_album_group_title(layout_data);
+ && MP_TRACK_BY_ALBUM == layout_data->track_type)
+ _mp_view_layout_append_album_group_title(layout_data);
for (index = 0; index < load_count; index++)
{
- AudioHandleType *item = NULL;
+ mp_media_info_h item = NULL;
Elm_Object_Item *list_item = NULL;
char *title = NULL;
- int size = 0;
- if (layout_data->category == MP_LAYOUT_PLAYLIST_LIST)
+ MP_TA_ACUM_ITEM_BEGIN(" mp_media_info_list_nth_item", 0);
+ if (layout_data->category == MP_LAYOUT_PLAYLIST_LIST || layout_data->category == MP_LAYOUT_GROUP_LIST)
{
- ret = audio_svc_playlist_get_item(svc_handle, index, &item);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ item = mp_media_info_group_list_nth_item(svc_handle, index);
+ if (!item)
{
- DEBUG_TRACE("Fail to audio_svc_playlist_get_item, ret[%d], index[%d]", ret, index);
+ DEBUG_TRACE("Fail to mp_media_info_group_list_nth_item, ret[%d], index[%d]", ret, index);
goto END;
}
- audio_svc_playlist_get_val(item, 0, AUDIO_SVC_PLAYLIST_NAME, &title, &size, -1);
+ mp_media_info_group_get_main_info(item, &title);
}
- else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
+ else
{
- ret = audio_svc_group_item_get(svc_handle, index, &item);
- if (ret != AUDIO_SVC_ERROR_NONE)
+ item = mp_media_info_list_nth_item(svc_handle, index);
+ ret = mp_media_info_get_title(item, &title);
+ if (ret != 0)
{
- DEBUG_TRACE("Fail to audio_svc_list_item_get, ret[%d], index[%d]", ret, index);
+ DEBUG_TRACE("Fail to mp_media_info_get_title, ret[%d], index[%d]", ret, index);
goto END;
}
- audio_svc_group_item_get_val(item, 0, AUDIO_SVC_GROUP_ITEM_MAIN_INFO, &title, &size, -1);
+ }
+ MP_TA_ACUM_ITEM_END(" mp_media_info_list_nth_item", 0);
+
+ MP_TA_ACUM_ITEM_BEGIN(" mp_util_get_utf8_initial", 0);
+ bool make_group_title = FALSE;
+
+ if (layout_data->fast_scrooll_index == NULL)
+ {
+ make_group_title = TRUE;
+ layout_data->fast_scrooll_index = mp_util_get_utf8_initial(title);
}
else
{
- if (layout_data->playlist_id < 0)
+ char *title_initial = mp_util_get_utf8_initial(title);
+ if (title_initial)
{
- ret = audio_svc_list_item_get(svc_handle, index, &item);
- audio_svc_list_item_get_val(item, 0, AUDIO_SVC_LIST_ITEM_TITLE, &title, &size, -1);
- }
- else
- {
- ret = audio_svc_playlist_item_get(svc_handle, index, &item);
- audio_svc_playlist_item_get_val(item, 0, AUDIO_SVC_PLAYLIST_ITEM_TITLE, &title, &size,
- -1);
- int play_order;
- audio_svc_playlist_item_get_val(item, 0, AUDIO_SVC_PLAYLIST_ITEM_PLAY_ORDER,
- &play_order, -1);
- }
-
- if (ret != AUDIO_SVC_ERROR_NONE)
- {
- DEBUG_TRACE("Fail to audio_svc_list_item_get, ret[%d], index[%d]", ret, index);
- goto END;
+ if (strcmp(layout_data->fast_scrooll_index, title_initial) != 0)
+ {
+ make_group_title = TRUE;
+ free(layout_data->fast_scrooll_index);
+ layout_data->fast_scrooll_index = title_initial;
+ }
+ else
+ {
+ free(title_initial);
+ }
}
}
+ MP_TA_ACUM_ITEM_END(" mp_util_get_utf8_initial", 0);
+
+ MP_TA_ACUM_ITEM_BEGIN(" elm_genlist_item_append", 0);
+
mp_genlist_item_data_t *item_data;
item_data = calloc(1, sizeof(mp_genlist_item_data_t));
MP_CHECK(item_data);
- item_data->media_svc_handle = layout_data->ad->media_svc_handle;
- item_data->handle = (void *)item;
+ item_data->handle = item;
item_data->group_type = layout_data->group_type;
Elm_Object_Item *parent_group = NULL;
if (layout_data->playlist_id < 0
&& MP_LAYOUT_TRACK_LIST == layout_data->category
- && AUDIO_SVC_TRACK_BY_ALBUM == layout_data->track_type)
+ && MP_TRACK_BY_ALBUM == layout_data->track_type)
parent_group = layout_data->album_group;
item_data->it = list_item = elm_genlist_item_append(layout_data->genlist, itc, item_data, parent_group,
ELM_GENLIST_ITEM_NONE, sel_cb, (void *)index);
+ MP_TA_ACUM_ITEM_END(" elm_genlist_item_append", 0);
+
+ MP_TA_ACUM_ITEM_BEGIN(" elm_index_item_append", 0);
+ if (make_group_title && layout_data->index_fast != NULL)
+ {
+ elm_index_item_append(layout_data->index_fast, layout_data->fast_scrooll_index, _mp_view_layout_index_item_selected_cb, list_item);
+ }
+ MP_TA_ACUM_ITEM_END(" elm_index_item_append", 0);
+
}
+ MP_TA_ACUM_ITEM_END(" add_genlist_items", 0);
+
+
if (count > load_count && layout_data->view_mode != MP_VIEW_MODE_SEARCH)
{
if(!layout_data->load_item_idler)
elm_genlist_select_mode_set(layout_data->genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
}
- if (layout_data->reorder && layout_data->playlist_id > 0)
+ if (layout_data->reorder && layout_data->playlist_id > 0) // reordering of favorite list is not allowed..
elm_genlist_reorder_mode_set(layout_data->genlist, EINA_TRUE);
else
elm_genlist_reorder_mode_set(layout_data->genlist, EINA_FALSE);
END:
layout_data->b_loading = FALSE;
endfunc;
+ MP_TA_ACUM_ITEM_END(" _mp_view_layout_load_list_item", 0);
+}
+
+static void
+_mp_view_layout_level_up(void *data, Evas_Object * obj, void *event_info)
+{
+ DEBUG_TRACE_FUNC();
+ // get the level we are at (presumably 1)
+ int level = elm_index_item_level_get(obj);
+ const Elm_Object_Item *item;
+ int pindex;
+ char *title = NULL;
+ mp_media_info_h svc_handle = NULL;
+ const char *p_idx = NULL;
+ const char *c_idx = NULL;
+ const char *g_idx = NULL;
+ int ret;
+ mp_layout_data_t *layout_data = data;
+ MP_CHECK(layout_data);
+ MP_CHECK_LAYOUT_DATA(layout_data);
+
+ if (level != 1)
+ return;
+
+ // get the item selected at the previous level (0)
+ item = elm_index_selected_item_get(obj, level - 1);
+ elm_index_item_clear(obj); // clear the new level
+
+ // this is a hack - but walk genlist items (maybe use your own data
+ // structs for this, but this is easy for a demo).
+ pindex = -1;
+ mp_genlist_item_data_t *gl_item = (mp_genlist_item_data_t *) elm_object_item_data_get(item);
+ MP_CHECK(gl_item);
+ svc_handle = (gl_item->handle);
+ MP_CHECK(svc_handle);
+
+ ret = mp_media_info_get_title(svc_handle, &title);
+ mp_retm_if(ret != 0, "ret: %d", ret);
+ mp_retm_if(!title, "title is null");
+
+ g_idx = mp_util_get_index(title);
+ c_idx = mp_util_get_second_index(title);
+
+ while (item)
+ {
+ mp_genlist_item_data_t *gl_item = (mp_genlist_item_data_t *) elm_object_item_data_get(item);
+ MP_CHECK(gl_item);
+ svc_handle = (gl_item->handle);
+ MP_CHECK(svc_handle);
+ ret = mp_media_info_get_title(svc_handle, &title);
+
+ if (g_idx != mp_util_get_index(title))
+ {
+ break;
+ }
+
+ c_idx = mp_util_get_second_index(title);
+ if (c_idx != NULL && p_idx != c_idx)
+ {
+ elm_index_item_append(obj, c_idx, _mp_view_layout_index_item_selected_cb, item);
+ p_idx = c_idx;
+ }
+ item = elm_genlist_item_next_get(item);
+ }
+
+ elm_index_level_go(obj, level); // go for the new level
+}
+
+static void
+_mp_view_layout_index_delayed_changed(void *data, Evas_Object * obj, void *event_info)
+{
+ DEBUG_TRACE_FUNC();
+ // called on a change but delayed in case multiple changes happen in a
+ // short timespan
+ elm_genlist_item_bring_in(event_info, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
+static void
+_mp_view_layout_index_changed(void *data, Evas_Object * obj, void *event_info)
+{
+ DEBUG_TRACE_FUNC();
+ // this is calld on every change, no matter how often
+ return;
+}
+
+static void
+_mp_view_layout_index_selected(void *data, Evas_Object * obj, void *event_info)
+{
+ DEBUG_TRACE_FUNC();
+ // called on final select
+ elm_genlist_item_bring_in(event_info, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
+static Evas_Object *
+_mp_view_layout_create_fastscroll_index(Evas_Object * parent, mp_layout_data_t * layout_data)
+{
+ DEBUG_TRACE_FUNC();
+ Evas_Object *index = NULL;
+
+ // Create index
+ MP_TA_ACUM_ITEM_BEGIN(" elm_index_add()", 0);
+ index = elm_index_add(parent);
+ MP_TA_ACUM_ITEM_END(" elm_index_add()", 0);
+ elm_object_part_content_set(parent, "elm.swallow.content.index", index);
+
+ evas_object_smart_callback_add(index, "level,up", _mp_view_layout_level_up, layout_data);
+ evas_object_smart_callback_add(index, "delay,changed", _mp_view_layout_index_delayed_changed, layout_data);
+ evas_object_smart_callback_add(index, "changed", _mp_view_layout_index_changed, layout_data);
+ evas_object_smart_callback_add(index, "selected", _mp_view_layout_index_selected, layout_data);
+ elm_index_level_go(index, 0);
+
+ return index;
}
static void
elm_object_part_content_set(playing_pannel, "thumb_image", thumbnail);
layout_data->now_playing_icon = thumbnail;
+ MP_TA_ACUM_ITEM_BEGIN(" elm_progressbar_add()", 0);
Evas_Object *progress = elm_progressbar_add(playing_pannel);
+ MP_TA_ACUM_ITEM_END(" elm_progressbar_add()", 0);
elm_object_style_set(progress, "music/list_progress");
elm_progressbar_horizontal_set(progress, EINA_TRUE);
evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(layout, "list_content", box);
Evas_Object *search_bar = mp_search_create_new(layout,
- mp_view_layout_search_changed_cb, layout_data,
- mp_common_back_button_cb, view_data);
+ mp_view_layout_search_changed_cb, layout_data, mp_common_back_button_cb, view_data);
+ if (!search_bar) {
+ mp_error("fail to create search bar");
+ mp_evas_object_del(layout);
+ return NULL;
+ }
elm_object_part_content_set(layout, "search_bar", search_bar);
evas_object_show(search_bar);
layout_data->search_bar = search_bar;
}
- else
+ else // use conformant to use auto scroll
{
layout = elm_layout_add(parent);
mp_retvm_if(layout == NULL, NULL, "layout is NULL");
Evas_Object *
mp_view_layout_create(Evas_Object * parent, view_data_t * view_data, mp_view_mode_t view_mode)
{
+ MP_TA_ACUM_ITEM_BEGIN(" mp_view_layout_create", 0);
startfunc;
MP_CHECK_NULL(view_data);
MP_CHECK_VIEW_DATA(view_data);
MP_SET_LAYOUT_DATA_MAGIC(layout_data);
layout_data->ad = view_data->ad;
- layout_data->navibar = parent;
-
- Evas_Object *layout = _mp_view_layout_create_layout(parent, view_data, layout_data, view_mode);
-
- layout_data->layout = layout;
layout_data->view_data = view_data;
layout_data->view_mode = view_mode;
layout_data->playlist_id = -1;
+ Evas_Object *layout = _mp_view_layout_create_layout(parent, view_data, layout_data, view_mode);
+ if (!layout) {
+ mp_error("fail to create layout");
+ SAFE_FREE(layout_data);
+ return NULL;
+ }
+ layout_data->layout = layout;
+
evas_object_show(layout);
evas_object_data_set(layout, "layout_data", layout_data);
+ DEBUG_TRACE("layout_data: 0x%x", layout_data);
endfunc;
+ MP_TA_ACUM_ITEM_END(" mp_view_layout_create", 0);
return layout;
}
DEBUG_TRACE("layout_data->playlist_id = %d", layout_data->playlist_id);
break;
}
+ case MP_LAYOUT_PLAYLIT_HANDLE:
+ {
+ mp_media_info_h val = va_arg((var_args), mp_media_info_h);
+ layout_data->playlist_handle= val;
+ break;
+ }
case MP_LAYOUT_TYPE_STR:
{
char *val = va_arg((var_args), char *);
case MP_LAYOUT_GENLIST_ITEMCLASS:
{
Elm_Genlist_Item_Class *itc = va_arg((var_args), Elm_Genlist_Item_Class *);
- if (itc)
- memcpy(&(layout_data->itc), itc, sizeof(Elm_Genlist_Item_Class));
+ if (itc) {
+ if (layout_data->itc) {
+ elm_genlist_item_class_free(layout_data->itc);
+ layout_data->itc = NULL;
+ }
+ layout_data->itc = itc;
+ }
break;
}
case MP_LAYOUT_GENLIST_AUTO_PLAYLIST_ITEMCLASS:
memcpy(&(layout_data->cb_func), cb_func, sizeof(layout_data->cb_func));
break;
}
+ case MP_LAYOUT_PLST_HANDLE_TYPE:
+ {
+ int val = va_arg((var_args), int);
+ layout_data->plst_handle_type= val;
+ DEBUG_TRACE("layout_data->plst_handle_type = %d", layout_data->edit_mode);
+ break;
+ }
default:
DEBUG_TRACE("Invalid arguments");
}
if (layout_data->view_mode != MP_VIEW_MODE_SEARCH) {
if (layout_data->playlist_id < 0
&& MP_LAYOUT_TRACK_LIST == layout_data->category
- && AUDIO_SVC_TRACK_BY_ARTIST == layout_data->track_type) {
+ && MP_TRACK_BY_ARTIST == layout_data->track_type) {
+ /* loading artist-album track genlist */
_mp_view_layout_load_aa_list_item(view_layout);
- } else {
+ }
+ else {
_mp_view_layout_load_list_item(view_layout);
}
}
MP_CHECK(layout_data);
MP_CHECK(layout_data->ad);
- if(!layout_data->ad->prohibit_aul_relaunch)
+ if(!layout_data->ad->app_is_foreground)
WARN_TRACE("Check here.. progress timer should be freezed..");
double pos = layout_data->ad->music_pos;
MP_CHECK_LAYOUT_DATA(layout_data);
MP_CHECK_FALSE(layout_data->ad);
- layout_data->ad->music_pos = mp_player_mgr_get_position();
- layout_data->ad->music_length = mp_player_mgr_get_duration();
+ layout_data->ad->music_pos = mp_player_mgr_get_position() / 1000.0;
+ layout_data->ad->music_length = mp_player_mgr_get_duration() / 1000.0;
_mp_view_layout_set_progress_pos(data);
return ECORE_CALLBACK_RENEW;
{
mp_retm_if(!view_layout, "view_layout is null!!");
- edje_object_signal_emit(_EDJ(view_layout), "SHOW_NOW_PLAING", "music_app");
-
mp_layout_data_t *layout_data = evas_object_data_get(view_layout, "layout_data");
MP_CHECK(layout_data);
MP_CHECK(layout_data->now_playing_progress);
+ edje_object_signal_emit(_EDJ(layout_data->layout), "SHOW_NOW_PLAING", "music_app");
+
_mp_view_layout_set_progress_pos(layout_data);
if (!layout_data->progress_timer)
void
mp_view_layout_set_now_playing_info(Evas_Object * view_layout)
{
+ startfunc;
mp_retm_if(!view_layout, "view_layout is null!!");
mp_layout_data_t *layout_data = evas_object_data_get(view_layout, "layout_data");
mp_retm_if(!layout_data, "Layout data is null !!!!");
elm_check_state_set(layout_data->select_all_checkbox, false);
}
- Elm_Object_Item *sweeped_item = (Elm_Object_Item *) elm_genlist_decorated_item_get(layout_data->genlist);
+ Elm_Object_Item *sweeped_item = (Elm_Object_Item *)elm_genlist_decorated_item_get(layout_data->genlist);
if (sweeped_item)
{
elm_genlist_item_decorate_mode_set(sweeped_item, "slide", EINA_FALSE);