Add session mutex lock
[platform/core/api/audio-io.git] / include / CAudioIODef.h
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
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 #ifndef __TIZEN_MEDIA_AUDIO_IO_CAUDIO_DEF_H__
18 #define __TIZEN_MEDIA_AUDIO_IO_CAUDIO_DEF_H__
19
20
21 #ifdef __cplusplus
22
23
24 #include <stdio.h>
25 #include <dlog.h>
26
27 #include "CAudioError.h"
28 #include "CAudioInfo.h"
29 #include "IAudioSessionEventListener.h"
30 #include "CAudioSessionHandler.h"
31 #include "IPulseStreamListener.h"
32 #include "CPulseAudioVolume.h"
33 #include "CPulseAudioPolicy.h"
34 #include "CPulseStreamSpec.h"
35 #include "CPulseAudioClient.h"
36 #include "CAudioIO.h"
37 #include "CAudioInput.h"
38 #include "CAudioOutput.h"
39
40 //#define _AUDIO_IO_DEBUG_TIMING_
41
42 #ifdef LOG_TAG
43 #undef LOG_TAG
44 #endif
45 #define LOG_TAG "TIZEN_N_AUDIO_IO"
46
47 #define AUDIO_IO_LOGD(_fmt_, arg...) do { \
48         LOGI(_fmt_, ##arg);      \
49 } while (0)
50
51 #define AUDIO_IO_LOGW(_fmt_, arg...) do { \
52         LOGW(_fmt_, ##arg);      \
53 } while (0)
54
55 #define AUDIO_IO_LOGE(_fmt_, arg...) do { \
56         LOGE(_fmt_, ##arg);      \
57 } while (0)
58
59 #define _AUDIO_IO_SHELL_COLOR_
60 #ifdef _AUDIO_IO_SHELL_COLOR_
61 #define COLOR_BLACK     "\033[0;30m"
62 #define COLOR_RED       "\033[0;31m"
63 #define COLOR_GREEN     "\033[0;32m"
64 #define COLOR_YELLOW    "\033[0;33m"
65 #define COLOR_BLUE      "\033[0;34m"
66 #define COLOR_MAGENTA   "\033[0;35m"
67 #define COLOR_CYAN      "\033[0;36m"
68 #define COLOR_GRAY      "\033[0;37m"
69 #define COLOR_WHITE     "\033[1;37m"
70 #define COLOR_END       "\033[0m"
71 #else
72 #define COLOR_BLACK
73 #define COLOR_RED
74 #define COLOR_GREEN
75 #define COLOR_BLUE
76 #define COLOR_YELLOW
77 #define COLOR_MAGENTA
78 #define COLOR_CYAN
79 #define COLOR_WHITE
80 #define COLOR_END
81 #endif
82
83
84 #define RET_ERROR(_x_)              do {return CAudioError((_x_), __FILE__, __func__, __LINE__);} while(0)
85 #define RET_ERROR_MSG(_x_, _msg_)   do {return CAudioError((_x_), (_msg_), __FILE__, __func__, __LINE__);} while(0)
86
87 #define RET_ERROR_MSG_FORMAT(_x_, _format_, ...) do {                     \
88     char _msg_[CAudioError::MSG_LENGTH] = {0, };                       \
89     snprintf(_msg_, CAudioError::MSG_LENGTH, _format_, ##__VA_ARGS__); \
90     return CAudioError((_x_), (_msg_), __FILE__, __func__, __LINE__);  \
91 } while (0)
92
93
94 #define THROW_ERROR(_x_)            do {throw  CAudioError((_x_), __FILE__, __func__, __LINE__);} while (0)
95 #define THROW_ERROR_MSG(_x_, _msg_) do {throw  CAudioError((_x_), (_msg_), __FILE__, __func__, __LINE__);} while (0)
96
97 #define THROW_ERROR_MSG_FORMAT(_x_, _format_, ...) do {                   \
98     char _msg_[CAudioError::MSG_LENGTH] = {0, };                       \
99     snprintf(_msg_, CAudioError::MSG_LENGTH, _format_, ##__VA_ARGS__); \
100     throw CAudioError((_x_), (_msg_), __FILE__,  __func__, __LINE__);  \
101 } while (0)
102
103 #define VALID_POINTER_START(_x_) { \
104     if ((_x_) != NULL) {
105 #define VALID_POINTER_END } \
106 }
107
108 #define SAFE_DELETE(_x_)   do {if ((_x_)) {delete (_x_); (_x_) = NULL;}} while (0)
109 #define SAFE_FINALIZE(_x_) do {if ((_x_)) {(_x_)->finalize();}} while (0)
110 #define SAFE_REMOVE(_x_)   do {if ((_x_)) {(_x_)->finalize(); delete (_x_); (_x_) = NULL;}} while (0)
111
112 #define DEFAULT_PERIOD_SIZE 50
113
114 #endif
115 #endif /* __TIZEN_MEDIA_AUDIO_IO_CAUDIO_DEF_H__ */