2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #define LOG_TAG "DALI_FEEDBACK"
21 #include "dali-feedback.h"
28 #include <mm_sound_private.h>
32 #define DEBUG_PRINTF(fmt, arg...) LOGD(" " fmt, ##arg)
37 // The plugin factories
38 extern "C" DALI_EXPORT_API Dali::FeedbackPlugin* CreateFeedbackPlugin(void)
40 return new Dali::Plugin::DaliFeedback;
49 DaliFeedback::DaliFeedback()
51 feedback_initialize();
54 DaliFeedback::~DaliFeedback()
56 feedback_deinitialize();
59 void DaliFeedback::PlayHaptic( const std::string& filePath )
63 void DaliFeedback::PlayHapticMonotone( unsigned int duration )
67 void DaliFeedback::StopHaptic()
71 int DaliFeedback::PlaySound( const std::string& fileName )
74 int errorCode = mm_sound_play_keysound( fileName.c_str(), VOLUME_TYPE_SYSTEM & VOLUME_GAIN_TOUCH );
77 DEBUG_PRINTF( "PlaySound() %s failed with error code = %d\n", fileName.c_str(), errorCode );
83 void DaliFeedback::StopSound( int handle )
85 int errorCode = mm_sound_stop_sound( handle );
88 DEBUG_PRINTF( "StopSound() handle = %d failed with error code = %d\n", handle, errorCode);
92 DEBUG_PRINTF( "stop handle %d success\n", handle );
96 void DaliFeedback::PlayFeedbackPattern( int type, int pattern )
98 int errorCode = feedback_play_type( static_cast<feedback_type_e>(type), static_cast<feedback_pattern_e>(pattern) );
101 DEBUG_PRINTF( "DaliFeedback::PlayFeedbackPattern() with type = %d, pattern = %d returned with error = %d\n", (int)type, (int)pattern, errorCode );
105 } // namespace Plugin