/* * libfeedback * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __DEVICES_H__ #define __DEVICES_H__ #include #include "common.h" struct device_ops { int type; const char *name; void (*init) (void); void (*exit) (void); int (*play) (int, bool); int (*play_path) (int, const char *, bool); int (*play_with_priority) (int, bool); int (*stop) (void); int (*is_supported) (int, bool *); int (*get_path) (int, char *, unsigned int); int (*set_path) (int, char *); int (*get_count_of_theme) (unsigned int *); int (*get_theme_id) (unsigned int *); int (*set_theme_id) (unsigned int); int (*get_theme_ids) (unsigned int *, unsigned int **); }; void devices_init(void); void devices_exit(void); int devices_play(int pattern, bool always); int devices_play_soundpath(int pattern, const char *soundpath, bool always); int devices_stop(void); int devices_stop_by_type(feedback_type_e feedback_type); #define DEVICE_OPS_REGISTER(dev) \ static void __CONSTRUCTOR__ module_init(void) \ { \ add_device(dev); \ } void add_device(const struct device_ops *dev); void remove_device(const struct device_ops *dev); const struct device_ops *find_device(int type); #endif