ADD_SUBDIRECTORY(legacy)
ADD_SUBDIRECTORY(muse)
+IF(BUILD_TESTS)
+ADD_SUBDIRECTORY(unittest)
+ENDIF(BUILD_TESTS)
+
IF(UNIX)
ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
# for package file
SET(dependents "dlog mm-player capi-base-common capi-media-tool libtbm")
-SET(fw_name "${service}-${submodule}")
+SET(LEGACY_PLAYER "${service}-${submodule}")
-PROJECT(${fw_name})
+PROJECT(${LEGACY_PLAYER})
SET(CMAKE_INSTALL_PREFIX /usr)
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
INCLUDE_DIRECTORIES(${INC_DIR})
INCLUDE(FindPkgConfig)
-pkg_check_modules(${fw_name} REQUIRED ${dependents})
-FOREACH(flag ${${fw_name}_CFLAGS})
+pkg_check_modules(${LEGACY_PLAYER} REQUIRED ${dependents})
+FOREACH(flag ${${LEGACY_PLAYER}_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIB_INSTALL_DIR}")
aux_source_directory(src LEGACY_SOURCES)
-ADD_LIBRARY(${fw_name} SHARED ${LEGACY_SOURCES})
+ADD_LIBRARY(${LEGACY_PLAYER} SHARED ${LEGACY_SOURCES})
-TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS})
+TARGET_LINK_LIBRARIES(${LEGACY_PLAYER} ${${LEGACY_PLAYER}_LDFLAGS})
-SET_TARGET_PROPERTIES(${fw_name}
+SET_TARGET_PROPERTIES(${LEGACY_PLAYER}
PROPERTIES
CLEAN_DIRECT_OUTPUT 1
)
-INSTALL(TARGETS ${fw_name} DESTINATION ${LIB_INSTALL_DIR})
+INSTALL(TARGETS ${LEGACY_PLAYER} DESTINATION ${LIB_INSTALL_DIR})
INSTALL(
DIRECTORY ${INC_DIR}/ DESTINATION include/media
FILES_MATCHING
#ifndef __TIZEN_MEDIA_LEGACY_PLAYER_PRIVATE_H__
#define __TIZEN_MEDIA_LEGACY_PLAYER_PRIVATE_H__
#include <mm_types.h>
-#include "muse_player.h"
#include "legacy_player.h"
-
#ifdef __cplusplus
extern "C" {
#endif
-#ifdef LOG_TAG
-#undef LOG_TAG
-#endif
-#define LOG_TAG "TIZEN_N_PLAYER"
-//#define USE_ECORE_FUNCTIONS
-
#define PLAYER_CHECK_CONDITION(condition, error, msg) \
do { \
if (condition) {} else \
SET(submodule "player")
SET(dependents "dlog muse-server mm-common libtbm capi-system-info libtzplatform-config")
-SET(fw_name "${service}-${submodule}")
+SET(MUSE_PLAYER "${service}-${submodule}")
-PROJECT(${fw_name})
+PROJECT(${MUSE_PLAYER})
SET(CMAKE_INSTALL_PREFIX /usr)
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
INCLUDE_DIRECTORIES(${INC_DIR})
INCLUDE(FindPkgConfig)
-pkg_check_modules(${fw_name} REQUIRED ${dependents})
-FOREACH(flag ${${fw_name}_CFLAGS})
+pkg_check_modules(${MUSE_PLAYER} REQUIRED ${dependents})
+FOREACH(flag ${${MUSE_PLAYER}_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
execute_process(COMMAND python make_api.py -l api.list WORKING_DIRECTORY ${service})
aux_source_directory(src MUSED_SOURCES)
-ADD_LIBRARY(${fw_name} SHARED ${MUSED_SOURCES})
+ADD_LIBRARY(${MUSE_PLAYER} SHARED ${MUSED_SOURCES})
-TARGET_LINK_LIBRARIES(${fw_name} legacy-player ${${fw_name}_LDFLAGS})
+TARGET_LINK_LIBRARIES(${MUSE_PLAYER} legacy-player ${${MUSE_PLAYER}_LDFLAGS})
-SET_TARGET_PROPERTIES(${fw_name}
+SET_TARGET_PROPERTIES(${MUSE_PLAYER}
PROPERTIES
CLEAN_DIRECT_OUTPUT 1
)
-INSTALL(TARGETS ${fw_name} DESTINATION ${LIB_INSTALL_DIR})
+INSTALL(TARGETS ${MUSE_PLAYER} DESTINATION ${LIB_INSTALL_DIR})
INSTALL(
DIRECTORY ${INC_DIR}/ DESTINATION include/media
FILES_MATCHING
#ifdef LOG_TAG
#undef LOG_TAG
#endif
-#define LOG_TAG "TIZEN_N_PLAYER"
+#define LOG_TAG "MMSVC_PLAYER"
#define MUSE_PLAYER_HEAD_GAP(api) ((api)/(1000)+(1))*(1000)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(fw_test "${fw_name}-test")
+SET(fw_test "${MUSE_PLAYER}-test")
INCLUDE_DIRECTORIES(../include, ../../legacy/include)
link_directories(${CMAKE_SOURCE_DIR}/../)
Name: mmsvc-player
Summary: A Media Player module for muse server
-Version: 0.2.90
+Version: 0.2.91
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0
BuildRequires: pkgconfig(ttrace)
BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(libtzplatform-config)
+%if 0%{?gtests:1}
+BuildRequires: pkgconfig(gmock)
+%endif
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
%endif
export CFLAGS+=" -DTIZEN_FEATURE_ASM"
MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
-%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \
+
+%cmake . \
+ -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DFULLVER=%{version} \
+ -DMAJORVER=${MAJORVER} \
+ -DBUILD_TESTS=%{?gtests:1}%{!?gtests:0} \
%if "%{TIZEN_PRODUCT_TV}" == "1"
-DTIZEN_FEATURE_EVAS_RENDERER=Off
%else
%license LICENSE.Apache-2.0
%{_libdir}/liblegacy-player.so
%{_libdir}/libmuse-player.so
+%if 0%{?gtests:1}
+%{_bindir}/gtest-mmsvc-player
+%endif
%files devel
%{_includedir}/media/*.h
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(gtest-mmsvc-player C CXX)
+
+SET(GTEST_TEST "gtest-mmsvc-player")
+SET(BINDIR "/usr/bin")
+
+INCLUDE(FindPkgConfig)
+SET(REQUIRES_LIST ${REQUIRES_LIST}
+ glib-2.0
+ gio-2.0
+ gmock
+ dlog
+ mm-common
+ mm-player
+ capi-media-sound-manager
+)
+PKG_CHECK_MODULES(GTEST_TEST_PKGS REQUIRED ${REQUIRES_LIST})
+
+FOREACH(flag ${GTEST_TEST_PKG_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/legacy/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/muse/include)
+INCLUDE_DIRECTORIES(${GTEST_TEST_PKGS_INCLUDE_DIRS})
+LINK_DIRECTORIES(${GTEST_TEST_PKGS_LIBRARY_DIRS})
+
+FILE(GLOB GTEST_TEST_SRCS *.cpp ${CMAKE_SOURCE_DIR}/legacy/src/legacy_player.c)
+SET(GTEST_TEST_SRCS ${GTEST_TEST_SRCS})
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fpie")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fpie")
+
+ADD_EXECUTABLE(${GTEST_TEST} ${GTEST_TEST_SRCS})
+TARGET_LINK_LIBRARIES(${GTEST_TEST} ${LEGACY_PLAYER} ${GTEST_TEST_LDFLAGS} ${GTEST_TEST_PKGS_LDFLAGS} -lgcov)
+
+INSTALL(TARGETS ${GTEST_TEST} DESTINATION ${BINDIR})
--- /dev/null
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "legacy_player.h"
+#include "gtest_legacy_player.h"
+
+LegacyPlayer::LegacyPlayer()
+{
+ legacy_player = NULL;
+}
+
+LegacyPlayer::~LegacyPlayer()
+{
+ if (legacy_player) {
+ LOGD("[Cleanup] %p", legacy_player);
+ legacy_player_destroy(legacy_player);
+ legacy_player = NULL;
+ }
+}
+
+int LegacyPlayer::Create(void)
+{
+ int ret = legacy_player_create(&legacy_player);
+ LOGD("[Create] %p", legacy_player);
+ return ret;
+}
+
+int LegacyPlayer::Destroy(void)
+{
+ int ret = PLAYER_ERROR_NONE;
+
+ LOGD("[Destroy] %p", legacy_player);
+
+ ret = legacy_player_destroy(legacy_player);
+ legacy_player = NULL;
+
+ return ret;
+}
--- /dev/null
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __GTEST_LEGACY_PLAYER_H__
+#define __GTEST_LEGACY_PLAYER_H__
+
+#include <dlog.h>
+#include "legacy_player.h"
+
+#undef LOG_TAG
+#define LOG_TAG "GTEST_MMSVC_PLAYER"
+
+class LegacyPlayer {
+private:
+ player_h legacy_player;
+
+public:
+ LegacyPlayer();
+ virtual ~LegacyPlayer();
+
+ int Create(void);
+ int Destroy(void);
+};
+
+#endif /*__GTEST_LEGACY_PLAYER_H__*/
--- /dev/null
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "gtest_legacy_player.h"
+
+using ::testing::InitGoogleTest;
+using ::testing::Test;
+using ::testing::TestCase;
+
+class LegacyPlayerPreTest : public ::testing::Test {
+ protected:
+ void SetUp() {
+ std::cout << "SetUp()" << std::endl;
+ }
+
+ void TearDown() {
+ std::cout << "TearDown()" << std::endl;
+ }
+};
+
+TEST(LegacyPlayerPreTest, Create_p)
+{
+ int ret = PLAYER_ERROR_NONE;
+ LegacyPlayer player;
+
+ ret = player.Create();
+ EXPECT_EQ(ret, PLAYER_ERROR_NONE);
+}
+
+TEST(LegacyPlayerPreTest, Destroy_p)
+{
+ int ret = PLAYER_ERROR_NONE;
+ LegacyPlayer player;
+
+ ret = player.Create();
+ ASSERT_EQ(ret, PLAYER_ERROR_NONE);
+
+ ret = player.Destroy();
+ EXPECT_EQ(ret, PLAYER_ERROR_NONE);
+}
+
+int main(int argc, char **argv)
+{
+ InitGoogleTest(&argc, argv);
+
+ return RUN_ALL_TESTS();
+}