From c730a729bbf51ec4a26d27329639326b969dfb6e Mon Sep 17 00:00:00 2001 From: HyungKyu Song Date: Sat, 16 Feb 2013 00:11:10 +0900 Subject: [PATCH] Tizen 2.0 Release --- AUTHORS | 3 + CMakeLists.txt | 121 +++++++++++++++++++++ LICENSE.APLv2 | 205 +++++++++++++++++++++++++++++++++++ NOTICE | 3 + capi-media-wav-player.manifest | 5 + capi-media-wav-player.pc.in | 15 +++ include/wav_player.h | 116 ++++++++++++++++++++ packaging/capi-media-wav-player.spec | 59 ++++++++++ src/wav_player.c | 132 ++++++++++++++++++++++ test/CMakeLists.txt | 21 ++++ test/multimedia_wav_player_test.c | 69 ++++++++++++ test/test.wav | Bin 0 -> 151246 bytes 12 files changed, 749 insertions(+) create mode 100755 AUTHORS create mode 100755 CMakeLists.txt create mode 100755 LICENSE.APLv2 create mode 100644 NOTICE create mode 100644 capi-media-wav-player.manifest create mode 100644 capi-media-wav-player.pc.in create mode 100644 include/wav_player.h create mode 100644 packaging/capi-media-wav-player.spec create mode 100755 src/wav_player.c create mode 100644 test/CMakeLists.txt create mode 100755 test/multimedia_wav_player_test.c create mode 100755 test/test.wav diff --git a/AUTHORS b/AUTHORS new file mode 100755 index 0000000..0c10a61 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,3 @@ +Seungkeun Lee +Kangho Hur +Seungbae Shin diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..cbf1cec --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,121 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +SET(Services + "application" + "base" + "content" + "location" + "media" + "messaging" + "network" + "social" + "telephony" + "system" + ) + + +# project +SET(project_prefix "capi") +SET(prefix "/usr") +SET(version "0.0.1") +SET(maintainer "Seungkeun Lee , Kangho Hur") +SET(description "A wav player library in Tizen Native API") +SET(service "media") +SET(submodule "wav-player") + +# for package file +SET(dependents "mm-sound dlog capi-base-common capi-media-sound-manager") +SET(pc_dependents "capi-base-common capi-media-sound-manager") + +SET(fw_name "${project_prefix}-${service}-${submodule}") + +PROJECT(${fw_name}) + +SET(CMAKE_INSTALL_PREFIX ${prefix}) +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(VERSION ${version}) + +SET(INC_DIR include) +INCLUDE_DIRECTORIES(${INC_DIR}) + +INCLUDE(FindPkgConfig) +pkg_check_modules(${fw_name} REQUIRED ${dependents}) +FOREACH(flag ${${fw_name}_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror") +SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") + +IF("${ARCH}" MATCHES "^arm.*") + ADD_DEFINITIONS("-DTARGET") +ENDIF("${ARCH}" MATCHES "^arm.*") + +ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") +ADD_DEFINITIONS("-DTIZEN_DEBUG") + +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=/usr/lib") + +aux_source_directory(src SOURCES) +ADD_LIBRARY(${fw_name} SHARED ${SOURCES}) + +TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS}) + +SET_TARGET_PROPERTIES(${fw_name} + PROPERTIES + VERSION ${FULLVER} + SOVERSION ${MAJORVER} + CLEAN_DIRECT_OUTPUT 1 +) + +INSTALL(TARGETS ${fw_name} DESTINATION lib) +INSTALL( + DIRECTORY ${INC_DIR}/ DESTINATION include/${service} + FILES_MATCHING + PATTERN "*_private.h" EXCLUDE + PATTERN "${INC_DIR}/*.h" + ) + +SET(PC_NAME ${fw_name}) +SET(PC_REQUIRED ${pc_dependents}) +SET(PC_LDFLAGS -l${fw_name}) + +CONFIGURE_FILE( + ${fw_name}.pc.in + ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc + @ONLY +) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION lib/pkgconfig) + +#ADD_SUBDIRECTORY(test) + +IF(UNIX) + +ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution) +ADD_CUSTOM_COMMAND( + DEPENDS clean + COMMENT "distribution clean" + COMMAND find + ARGS . + -not -name config.cmake -and \( + -name tester.c -or + -name Testing -or + -name CMakeFiles -or + -name cmake.depends -or + -name cmake.check_depends -or + -name CMakeCache.txt -or + -name cmake.check_cache -or + -name *.cmake -or + -name Makefile -or + -name core -or + -name core.* -or + -name gmon.out -or + -name install_manifest.txt -or + -name *.pc -or + -name *~ \) + | grep -v TC | xargs rm -rf + TARGET distclean + VERBATIM +) + +ENDIF(UNIX) diff --git a/LICENSE.APLv2 b/LICENSE.APLv2 new file mode 100755 index 0000000..8aa906c --- /dev/null +++ b/LICENSE.APLv2 @@ -0,0 +1,205 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the 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. + + + diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..ccdad52 --- /dev/null +++ b/NOTICE @@ -0,0 +1,3 @@ +Copyright (c) Samsung Electronics Co., Ltd. All rights reserved. +Except as noted, this software is licensed under Apache License, Version 2. +Please, see the LICENSE file for Apache License terms and conditions. diff --git a/capi-media-wav-player.manifest b/capi-media-wav-player.manifest new file mode 100644 index 0000000..a76fdba --- /dev/null +++ b/capi-media-wav-player.manifest @@ -0,0 +1,5 @@ + + + + + diff --git a/capi-media-wav-player.pc.in b/capi-media-wav-player.pc.in new file mode 100644 index 0000000..5d02f8d --- /dev/null +++ b/capi-media-wav-player.pc.in @@ -0,0 +1,15 @@ + +# Package Information for pkg-config + +prefix=@PREFIX@ +exec_prefix=/usr +libdir=/usr/lib +includedir=/usr/include/media + +Name: @PC_NAME@ +Description: @PACKAGE_DESCRIPTION@ +Version: @VERSION@ +Requires: @PC_REQUIRED@ +Libs: -L${libdir} @PC_LDFLAGS@ +Cflags: -I${includedir} + diff --git a/include/wav_player.h b/include/wav_player.h new file mode 100644 index 0000000..39aa74e --- /dev/null +++ b/include/wav_player.h @@ -0,0 +1,116 @@ +/* +* Copyright (c) 2011 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 __TIZEN_MEDIA_WAV_PLAYER_H__ +#define __TIZEN_MEDIA_WAV_PLAYER_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define WAV_PLAYER_ERROR_CLASS TIZEN_ERROR_MULTIMEDIA_CLASS | 0x50 + +/** + * @file wav_player.h + * @brief This file contains the WAV player API + */ + +/** + * @addtogroup CAPI_MEDIA_WAV_PLAYER_MODULE + * @{ + */ + +/** + * @brief Enumerations of error code for WAV player. + */ +typedef enum +{ + WAV_PLAYER_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ + WAV_PLAYER_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ + WAV_PLAYER_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION, /**< Invalid operation */ + WAV_PLAYER_ERROR_FORMAT_NOT_SUPPORTED = WAV_PLAYER_ERROR_CLASS | 0x01 /**< Not supported format */ +} wav_player_error_e; + +/** + * @} + */ + + +/** + * @addtogroup CAPI_MEDIA_WAV_PLAYER_MODULE + * @{ + */ + +/** + * @brief Called when a WAV file has finished playing. + * @details This callback is not invoked by calling wav_player_stop(). + * + * @param[in] id The completed wav player ID + * @param[in] user_data The user data passed from the callback registration function + * @see wav_player_start() + */ +typedef void (*wav_player_playback_completed_cb)(int id, void *user_data); + + +/** + * @brief Plays a WAV file. + * @param[in] path The WAV file path to play + * @param[in] type The sound type + * @param[in] callback The callback function to invoke when a WAV file is finished playing + * @param[in] user_data The user data to be passed to the callback function + * @param[out] id The WAV player ID ( can be set to NULL ) + * + * @return 0 on success, otherwise a negative error value. + * @retval #WAV_PLAYER_ERROR_NONE Successful + * @retval #WAV_PLAYER_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WAV_PLAYER_ERROR_INVALID_OPERATION Invalid operation + * + * @post It invokes wav_player_playback_completed_cb() when a WAV file has finished playing. + * @see wav_player_stop() + * @see wav_player_playback_completed_cb() + */ +int wav_player_start(const char *path, sound_type_e type, wav_player_playback_completed_cb callback, void *user_data, int *id); + +/** + * @brief Stops playing the WAV file. + * + * @param[in] id The WAV player ID to stop + * + * @return 0 on success, otherwise a negative error value. + * @retval #WAV_PLAYER_ERROR_NONE Successful + * @retval #WAV_PLAYER_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #WAV_PLAYER_ERROR_INVALID_OPERATION Invalid operation + * + * @see wav_player_start() + */ +int wav_player_stop(int id); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __TIZEN_MEDIA_WAV_PLAYER_H__ */ diff --git a/packaging/capi-media-wav-player.spec b/packaging/capi-media-wav-player.spec new file mode 100644 index 0000000..e60a739 --- /dev/null +++ b/packaging/capi-media-wav-player.spec @@ -0,0 +1,59 @@ +#sbs-git:slp/api/wav-player capi-media-wav-player 0.1.0 8d904bb3bd0ca7fa01ebd8f4185e4b993d94c08d +Name: capi-media-wav-player +Summary: A wav player library in Tizen C API +Version: 0.1.0 +Release: 16 +Group: TO_BE/FILLED_IN +License: Apache License, Version 2.0 +Source0: %{name}-%{version}.tar.gz +BuildRequires: cmake +BuildRequires: pkgconfig(mm-sound) +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(capi-base-common) +BuildRequires: pkgconfig(capi-media-sound-manager) +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig + +%description + + +%package devel +Summary: A wav player library in Tizen C API (Development) +Group: TO_BE/FILLED_IN +Requires: %{name} = %{version}-%{release} + +%description devel + + + +%prep +%setup -q + + +%build +MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` +cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER} + +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}/usr/share/license +cp LICENSE.APLv2 %{buildroot}/usr/share/license/%{name} + +%make_install + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + + +%files +%{_libdir}/libcapi-media-wav-player.so.* +%{_datadir}/license/%{name} +%manifest capi-media-wav-player.manifest + +%files devel +%{_includedir}/media/*.h +%{_libdir}/pkgconfig/*.pc +%{_libdir}/libcapi-media-wav-player.so diff --git a/src/wav_player.c b/src/wav_player.c new file mode 100755 index 0000000..eebede9 --- /dev/null +++ b/src/wav_player.c @@ -0,0 +1,132 @@ +/* +* Copyright (c) 2011 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. +*/ + + +#define LOG_TAG "CAPI_MEDIA_WAV_PLAYER" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +typedef struct _cb_data_{ + wav_player_playback_completed_cb cb; + void * uesr_data; + int id; +} _cb_data; + + + +static int __convert_wav_player_error_code(const char *func, int code){ + int ret = WAV_PLAYER_ERROR_INVALID_OPERATION; + char *errorstr = NULL; + switch(code) + { + case MM_ERROR_NONE: + ret = WAV_PLAYER_ERROR_NONE; + errorstr = "ERROR_NONE"; + break; + case MM_ERROR_INVALID_ARGUMENT: + case MM_ERROR_SOUND_INVALID_POINTER: + case WAV_PLAYER_ERROR_INVALID_PARAMETER: + ret = WAV_PLAYER_ERROR_INVALID_PARAMETER; + errorstr = "INVALID_PARAMETER"; + break; + case MM_ERROR_SOUND_INTERNAL: + ret = WAV_PLAYER_ERROR_INVALID_OPERATION; + errorstr = "INVALID_OPERATION"; + break; + case MM_ERROR_SOUND_UNSUPPORTED_MEDIA_TYPE: + ret = WAV_PLAYER_ERROR_FORMAT_NOT_SUPPORTED; + errorstr = "FORMAT_NOT_SUPPORTED"; + break; + default: + ret = WAV_PLAYER_ERROR_INVALID_OPERATION; + errorstr = "INVALID_OPERATION"; + + } + LOGE( "[%s] %s(0x%08x)",func, errorstr, ret); + return ret; +} + + +static void __internal_complete_cb(void *user_data){ + _cb_data * cb_data = (_cb_data*)user_data; + if(!cb_data) + return; + + if( cb_data->cb ) + cb_data->cb(cb_data->id, cb_data->uesr_data); + free(cb_data); +} + + +int wav_player_start(const char *path, sound_type_e type , wav_player_playback_completed_cb cb, void *user_data, int * id){ + int ret ; + int player; + char m_path[PATH_MAX]; + void (*_completed_cb)(void *); + _completed_cb = NULL; + _cb_data *cb_data = NULL; + + + if( path == NULL) + return __convert_wav_player_error_code(__func__, WAV_PLAYER_ERROR_INVALID_PARAMETER); + + if( type < SOUND_TYPE_SYSTEM || type > SOUND_TYPE_CALL ) + return __convert_wav_player_error_code(__func__, WAV_PLAYER_ERROR_INVALID_PARAMETER); + + m_path[0] = '\0'; + if( path[0] != '/' ){ + + if( getcwd(m_path, PATH_MAX) != NULL){ + strncat(m_path, "/",PATH_MAX-strlen(m_path) ); + } + } + strncat(m_path, path, PATH_MAX-strlen(m_path)); + + if( cb ){ + _completed_cb = __internal_complete_cb; + cb_data = (_cb_data *)malloc(sizeof(_cb_data)); + if(cb_data == NULL ) + return __convert_wav_player_error_code(__func__, WAV_PLAYER_ERROR_INVALID_OPERATION); + cb_data->cb = cb; + cb_data->uesr_data = user_data; + } + + ret = mm_sound_play_sound(m_path, type, _completed_cb , cb_data, &player); + if( ret == 0 && id != NULL) + *id = player; + if( ret == 0 && cb_data ) + cb_data->id = player; + + if( ret != 0 && cb_data != NULL) + free(cb_data); + + + return __convert_wav_player_error_code(__func__, ret); +} + +int wav_player_stop(int id){ + return __convert_wav_player_error_code(__func__, mm_sound_stop_sound(id)); +} + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..353da53 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,21 @@ +SET(fw_test "${fw_name}-test") + +INCLUDE(FindPkgConfig) +pkg_check_modules(${fw_test} REQUIRED mm-sound glib-2.0 gthread-2.0 capi-media-sound-manager) +FOREACH(flag ${${fw_test}_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") + MESSAGE(${flag}) +ENDFOREACH() + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall") + +#ADD_EXECUTABLE("system-sensor" system-sensor.c) +#TARGET_LINK_LIBRARIES("system-sensor" ${fw_name} ${${fw_test}_LDFLAGS}) + +aux_source_directory(. sources) +FOREACH(src ${sources}) + GET_FILENAME_COMPONENT(src_name ${src} NAME_WE) + MESSAGE("${src_name}") + ADD_EXECUTABLE(${src_name} ${src}) + TARGET_LINK_LIBRARIES(${src_name} ${fw_name} ${${fw_test}_LDFLAGS}) +ENDFOREACH() diff --git a/test/multimedia_wav_player_test.c b/test/multimedia_wav_player_test.c new file mode 100755 index 0000000..d9d5c8d --- /dev/null +++ b/test/multimedia_wav_player_test.c @@ -0,0 +1,69 @@ +/* +* Copyright (c) 2011 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 +#include +#include +#include +#include +#include + +static GMainLoop *g_mainloop = NULL; +static GThread *event_thread; + +gpointer GmainThread(gpointer data){ + g_mainloop = g_main_loop_new (NULL, 0); + g_main_loop_run (g_mainloop); + + return NULL; +} + +void _player_stop_cb(int id, void *user_data){ + printf("complete id = %d,%d\n", id, (int)user_data); +} + + + +void wav_play_test(){ + int ret=0; + int id; + int i; + for(i =0 ; i < 100; i++){ + ret = wav_player_start("test.wav", SOUND_TYPE_MEDIA, _player_stop_cb,(void*)i, &id); + printf("wav_player_start(%d)(id=%d) ret = %d\n",i,id, ret); + + } +} + +void audio_io_test(){ + +} + +int main(int argc, char**argv) +{ + if( !g_thread_supported() ) + { + g_thread_init(NULL); + } + + GError *gerr = NULL; + event_thread = g_thread_create(GmainThread, NULL, 1, &gerr); + + wav_play_test(); + return 0; +} diff --git a/test/test.wav b/test/test.wav new file mode 100755 index 0000000000000000000000000000000000000000..033d81514f53dc19d15f30a93e1ccec8157cfc44 GIT binary patch literal 151246 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