summaryrefslogtreecommitdiffstats
path: root/gatchat/gatmux.h
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-10-12 15:31:44 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-10-15 16:15:17 -0500
commita4a54f66257a73d53f1029ba6feeeae979a49669 (patch)
tree964f00d4de17bfdd6402c81af5b33bf1ed6b72d6 /gatchat/gatmux.h
parent1575f2dcd103b9e41e52c247a039e1b17d3833b0 (diff)
downloadofono-a4a54f66257a73d53f1029ba6feeeae979a49669.tar.bz2
Refactor: Enable multiplexer drivers for GAtMux
Diffstat (limited to 'gatchat/gatmux.h')
-rw-r--r--gatchat/gatmux.h35
1 files changed, 34 insertions, 1 deletions
diff --git a/gatchat/gatmux.h b/gatchat/gatmux.h
index cbb35bfe..c8d6b778 100644
--- a/gatchat/gatmux.h
+++ b/gatchat/gatmux.h
@@ -31,9 +31,29 @@ extern "C" {
struct _GAtMux;
typedef struct _GAtMux GAtMux;
-
+typedef struct _GAtMuxDriver GAtMuxDriver;
+typedef enum _GAtMuxChannelStatus GAtMuxChannelStatus;
typedef void (*GAtMuxSetupFunc)(GAtMux *mux, gpointer user_data);
+enum _GAtMuxDlcStatus {
+ G_AT_MUX_DLC_STATUS_RTC = 0x02,
+ G_AT_MUX_DLC_STATUS_RTR = 0x04,
+ G_AT_MUX_DLC_STATUS_IC = 0x08,
+ G_AT_MUX_DLC_STATUS_DV = 0x80,
+};
+
+struct _GAtMuxDriver {
+ void (*remove)(GAtMux *mux);
+ gboolean (*startup)(GAtMux *mux);
+ gboolean (*shutdown)(GAtMux *mux);
+ gboolean (*open_dlc)(GAtMux *mux, guint8 dlc);
+ gboolean (*close_dlc)(GAtMux *mux, guint8 dlc);
+ void (*ready_read)(GAtMux *mux);
+ void (*set_status)(GAtMux *mux, guint8 dlc, int status);
+ void (*write)(GAtMux *mux, guint8 dlc, const void *data, int towrite);
+};
+
+GAtMux *g_at_mux_new(GIOChannel *channel, const GAtMuxDriver *driver);
GAtMux *g_at_mux_new_gsm0710_basic(GIOChannel *channel, int framesize);
GAtMux *g_at_mux_new_gsm0710_advanced(GIOChannel *channel, int framesize);
@@ -51,6 +71,19 @@ gboolean g_at_mux_set_debug(GAtMux *mux, GAtDebugFunc func, gpointer user);
GIOChannel *g_at_mux_create_channel(GAtMux *mux);
/*!
+ * Multiplexer driver integration functions
+ */
+void g_at_mux_set_dlc_status(GAtMux *mux, guint8 dlc, int status);
+void g_at_mux_feed_dlc_data(GAtMux *mux, guint8 dlc,
+ const void *data, int tofeed);
+
+int g_at_mux_raw_read(GAtMux *mux, void *data, int toread);
+int g_at_mux_raw_write(GAtMux *mux, const void *data, int towrite);
+
+void g_at_mux_set_data(GAtMux *mux, void *data);
+void g_at_mux_get_data(GAtMux *mux);
+
+/*!
* Uses the passed in GAtChat to setup a GSM 07.10 style multiplexer on the
* channel used by GAtChat. This function queries the multiplexer capability,
* preferring advanced mode over basic. If supported, the best available