check: Relocate line coverage comment at profile_get_num_of_standard()
[platform/core/system/libsvi.git] / src / devices.h
1 /*
2  * libfeedback
3
4  * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the License);
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19
20 #ifndef __DEVICES_H__
21 #define __DEVICES_H__
22
23 #include <stdbool.h>
24 #include "common.h"
25
26 struct device_ops {
27         int type;
28         const char *name;
29         void (*init) (void);
30         void (*exit) (void);
31         int (*play) (int, bool);
32         int (*play_path) (int, const char *, bool);
33         int (*play_with_priority) (int, bool);
34         int (*stop) (void);
35         int (*is_supported) (int, bool *);
36         int (*get_path) (int, char *, unsigned int);
37         int (*set_path) (int, char *);
38         int (*get_count_of_theme) (unsigned int *);
39         int (*get_theme_id) (unsigned int *);
40         int (*set_theme_id) (unsigned int);
41         int (*get_theme_ids) (unsigned int *, unsigned int **);
42 };
43
44 void devices_init(void);
45 void devices_exit(void);
46 int devices_play(int pattern, bool always);
47 int devices_play_soundpath(int pattern, const char *soundpath, bool always);
48 int devices_stop(void);
49 int devices_stop_by_type(feedback_type_e feedback_type);
50
51 #define DEVICE_OPS_REGISTER(dev)        \
52 static void __CONSTRUCTOR__ module_init(void)   \
53 {       \
54         add_device(dev);        \
55 }
56
57 void add_device(const struct device_ops *dev);
58 void remove_device(const struct device_ops *dev);
59 const struct device_ops *find_device(int type);
60
61 #endif