Seperate the API macros
[platform/core/uifw/dali-adaptor.git] / plugins / dali-feedback.cpp
1 /*
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #define LOG_TAG "DALI_FEEDBACK"
19
20 // CLASS HEADER
21 #include "dali-feedback.h"
22
23 // EXTERNAL INCLUDES
24 #include <iostream>
25 #include <fstream>
26 #include <feedback.h>
27 #include <mm_sound.h>
28 #include <mm_sound_private.h>
29
30 #include <dlog.h>
31
32 #define DEBUG_PRINTF(fmt, arg...)  LOGD(" " fmt, ##arg)
33
34 using std::string;
35 using namespace Dali;
36
37 // The plugin factories
38 extern "C" DALI_ADAPTOR_API Dali::FeedbackPlugin* CreateFeedbackPlugin(void)
39 {
40   return new Dali::Plugin::DaliFeedback;
41 }
42
43 namespace Dali
44 {
45
46 namespace Plugin
47 {
48
49 DaliFeedback::DaliFeedback()
50 {
51   feedback_initialize();
52 }
53
54 DaliFeedback::~DaliFeedback()
55 {
56   feedback_deinitialize();
57 }
58
59 void DaliFeedback::PlayHaptic( const std::string& filePath )
60 {
61 }
62
63 void DaliFeedback::PlayHapticMonotone( unsigned int duration )
64 {
65 }
66
67 void DaliFeedback::StopHaptic()
68 {
69 }
70
71 int DaliFeedback::PlaySound( const std::string& fileName )
72 {
73   int handle = -1;
74   int errorCode = mm_sound_play_keysound( fileName.c_str(), VOLUME_TYPE_SYSTEM & VOLUME_GAIN_TOUCH );
75   if( errorCode < 0 )
76   {
77     DEBUG_PRINTF( "PlaySound() %s failed with error code = %d\n", fileName.c_str(), errorCode );
78   }
79
80   return handle;
81 }
82
83 void DaliFeedback::StopSound( int handle )
84 {
85   int errorCode = mm_sound_stop_sound( handle );
86   if( errorCode < 0 )
87   {
88     DEBUG_PRINTF( "StopSound() handle = %d failed with error code = %d\n", handle, errorCode);
89   }
90   else
91   {
92     DEBUG_PRINTF( "stop handle %d success\n", handle );
93   }
94 }
95
96 void DaliFeedback::PlayFeedbackPattern( int type, int pattern )
97 {
98   int errorCode = feedback_play_type( static_cast<feedback_type_e>(type), static_cast<feedback_pattern_e>(pattern) );
99   if( errorCode != 0 )
100   {
101     DEBUG_PRINTF( "DaliFeedback::PlayFeedbackPattern() with type = %d, pattern = %d returned with error = %d\n", (int)type, (int)pattern, errorCode );
102   }
103 }
104
105 } // namespace Plugin
106
107 } // namespace Dali
108