summaryrefslogtreecommitdiff
path: root/src/lib/ecore_audio/ecore_audio_obj_in.h
blob: 10becd01697b72106867fe37e55616cfecad7926 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#ifndef ECORE_AUDIO_OBJ_IN_H
#define ECORE_AUDIO_OBJ_IN_H

#include <Eina.h>
#include <Eo.h>

#ifdef EAPI
#undef EAPI
#endif

#ifdef __GNUC__
#if __GNUC__ >= 4
#define EAPI __attribute__ ((visibility("default")))
#else
#define EAPI
#endif
#else
#define EAPI
#endif

/**
 * @file ecore_audio_obj_in.h
 * @brief Audio Input Object
 */

#ifdef __cplusplus
extern "C"
{
#endif

/**
 * @addtogroup Ecore_Audio_Group
 * @{
 */

#define ECORE_AUDIO_OBJ_IN_CLASS ecore_audio_obj_in_class_get()

const Eo_Class *ecore_audio_obj_in_class_get() EINA_CONST;

extern EAPI Eo_Op ECORE_AUDIO_OBJ_IN_BASE_ID;

enum Ecore_Audio_Obj_In_Sub_Ids
{
   ECORE_AUDIO_OBJ_IN_SUB_ID_SPEED_SET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_SPEED_GET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_SAMPLERATE_SET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_SAMPLERATE_GET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_CHANNELS_SET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_CHANNELS_GET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_PRELOADED_SET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_PRELOADED_GET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_LOOPED_SET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_LOOPED_GET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_READ,
   ECORE_AUDIO_OBJ_IN_SUB_ID_READ_INTERNAL,
   ECORE_AUDIO_OBJ_IN_SUB_ID_SEEK,
   ECORE_AUDIO_OBJ_IN_SUB_ID_OUTPUT_GET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_LENGTH_GET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_REMAINING_GET,
   ECORE_AUDIO_OBJ_IN_SUB_ID_LAST
};

#define ECORE_AUDIO_OBJ_IN_ID(sub_id) (ECORE_AUDIO_OBJ_IN_BASE_ID + EO_TYPECHECK(enum Ecore_Audio_Obj_In_Sub_Ids, sub_id))

/*
 * @def ecore_audio_obj_in_speed_set
 * @since 1.8
 *
 * Sets the playback speed of the input
 *
 * @param[in] speed
 */
#define ecore_audio_obj_in_speed_set(speed) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_SPEED_SET), EO_TYPECHECK(double, speed)

/*
 * @def ecore_audio_obj_in_speed_get
 * @since 1.8
 *
 * Gets the playback speed of the input
 *
 * @param[out] speed
 */
#define ecore_audio_obj_in_speed_get(speed) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_SPEED_GET), EO_TYPECHECK(double *, speed)


#define ecore_audio_obj_in_samplerate_set(samplerate) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_SAMPLERATE_SET), EO_TYPECHECK(int, samplerate)

#define ecore_audio_obj_in_samplerate_get(samplerate) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_SAMPLERATE_GET), EO_TYPECHECK(int *, samplerate)

#define ecore_audio_obj_in_channels_set(channels) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_CHANNELS_SET), EO_TYPECHECK(int, channels)

#define ecore_audio_obj_in_channels_get(channels) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_CHANNELS_GET), EO_TYPECHECK(int *, channels)

#define ecore_audio_obj_in_preloaded_set(preloaded) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_PRELOADED_SET), EO_TYPECHECK(Eina_Bool, preloaded)

#define ecore_audio_obj_in_preloaded_get(preloaded) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_PRELOADED_GET), EO_TYPECHECK(Eina_Bool *, preloaded)

#define ecore_audio_obj_in_looped_set(looped) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_LOOPED_SET), EO_TYPECHECK(Eina_Bool, looped)

#define ecore_audio_obj_in_looped_get(preloaded) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_LOOPED_GET), EO_TYPECHECK(Eina_Bool *, looped)

#define ecore_audio_obj_in_read(buf, len, ret) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_READ), EO_TYPECHECK(char *, buf), EO_TYPECHECK(int, len), EO_TYPECHECK(int *, ret)

#define ecore_audio_obj_in_seek(offs, mode, ret) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_SEEK), EO_TYPECHECK(double, offs), EO_TYPECHECK(int, mode), EO_TYPECHECK(double *, ret)

#define ecore_audio_obj_in_output_get(ret) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_OUTPUT_GET), EO_TYPECHECK(Eo **, ret)

#define ecore_audio_obj_in_length_get(ret) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_LENGTH_GET), EO_TYPECHECK(double *, ret)

#define ecore_audio_obj_in_remaining_get(ret) ECORE_AUDIO_OBJ_IN_ID(ECORE_AUDIO_OBJ_IN_SUB_ID_REMAINING_GET), EO_TYPECHECK(double *, ret)

extern const Eo_Event_Description _ECORE_AUDIO_EV_IN_LOOPED;
#define ECORE_AUDIO_EV_IN_LOOPED (&(_ECORE_AUDIO_EV_IN_LOOPED))

extern const Eo_Event_Description _ECORE_AUDIO_EV_IN_STOPPED;
#define ECORE_AUDIO_EV_IN_STOPPED (&(_ECORE_AUDIO_EV_IN_STOPPED))

/**
 * @}
 */

#ifdef __cplusplus
}
#endif

#endif