summaryrefslogtreecommitdiffstats
path: root/include/call-settings.h
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-08-13 15:00:36 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-08-14 11:19:10 -0500
commit04926379e52d97e609ff6f710a49327610ecd32b (patch)
treed23ed4e017b4478af94916e59c83a66365f87366 /include/call-settings.h
parent6342e1b2dcb70fd477a5f947a1a8ee9ca6134fe1 (diff)
downloadofono-04926379e52d97e609ff6f710a49327610ecd32b.tar.bz2
Evolve call settings driver
Diffstat (limited to 'include/call-settings.h')
-rw-r--r--include/call-settings.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/include/call-settings.h b/include/call-settings.h
new file mode 100644
index 00000000..84461c32
--- /dev/null
+++ b/include/call-settings.h
@@ -0,0 +1,79 @@
+/*
+ *
+ * oFono - Open Telephony stack for Linux
+ *
+ * Copyright (C) 2008-2009 Intel Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifndef __OFONO_CALL_SETTINGS_H
+#define __OFONO_CALL_SETTINGS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ofono/types.h>
+
+struct ofono_call_settings;
+
+typedef void (*ofono_call_settings_status_cb_t)(const struct ofono_error *error,
+ int status, void *data);
+
+typedef void (*ofono_call_settings_set_cb_t)(const struct ofono_error *error,
+ void *data);
+
+typedef void (*ofono_call_settings_clir_cb_t)(const struct ofono_error *error,
+ int override, int network, void *data);
+
+struct ofono_call_settings_driver {
+ const char *name;
+ int (*probe)(struct ofono_call_settings *cs);
+ int (*remove)(struct ofono_call_settings *cs);
+ void (*clip_query)(struct ofono_call_settings *cs,
+ ofono_call_settings_status_cb_t cb, void *data);
+ void (*colp_query)(struct ofono_call_settings *cs,
+ ofono_call_settings_status_cb_t cb, void *data);
+ void (*clir_query)(struct ofono_call_settings *cs,
+ ofono_call_settings_clir_cb_t cb, void *data);
+ void (*colr_query)(struct ofono_call_settings *cs,
+ ofono_call_settings_status_cb_t cb, void *data);
+ void (*clir_set)(struct ofono_call_settings *cs, int mode,
+ ofono_call_settings_set_cb_t cb, void *data);
+ void (*cw_query)(struct ofono_call_settings *cs, int cls,
+ ofono_call_settings_status_cb_t cb, void *data);
+ void (*cw_set)(struct ofono_call_settings *cs, int mode, int cls,
+ ofono_call_settings_set_cb_t cb, void *data);
+};
+
+int ofono_call_settings_driver_register(const struct ofono_call_settings_driver *d);
+void ofono_call_settings_driver_unregister(const struct ofono_call_settings_driver *d);
+
+struct ofono_call_settings *ofono_call_settings_create(struct ofono_modem *modem,
+ const char *driver,
+ void *data);
+
+void ofono_call_settings_register(struct ofono_call_settings *cs);
+void ofono_call_settings_remove(struct ofono_call_settings *cs);
+
+void ofono_call_settings_set_data(struct ofono_call_settings *cs, void *data);
+void *ofono_call_settings_get_data(struct ofono_call_settings *cs);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OFONO_CALL_SETTINGS_H */