aboutsummaryrefslogtreecommitdiff
path: root/src/mm-serial.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-serial.h')
-rw-r--r--src/mm-serial.h91
1 files changed, 38 insertions, 53 deletions
diff --git a/src/mm-serial.h b/src/mm-serial.h
index bd138516..37162c6f 100644
--- a/src/mm-serial.h
+++ b/src/mm-serial.h
@@ -6,12 +6,12 @@
#include <glib/gtypes.h>
#include <glib-object.h>
-#define MM_TYPE_SERIAL (mm_serial_get_type ())
-#define MM_SERIAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_SERIAL, MMSerial))
-#define MM_SERIAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_SERIAL, MMSerialClass))
-#define MM_IS_SERIAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_SERIAL))
-#define MM_IS_SERIAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_SERIAL))
-#define MM_SERIAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_SERIAL, MMSerialClass))
+#define MM_TYPE_SERIAL (mm_serial_get_type ())
+#define MM_SERIAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_SERIAL, MMSerial))
+#define MM_SERIAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_SERIAL, MMSerialClass))
+#define MM_IS_SERIAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_SERIAL))
+#define MM_IS_SERIAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_SERIAL))
+#define MM_SERIAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_SERIAL, MMSerialClass))
#define MM_SERIAL_DEVICE "device"
#define MM_SERIAL_BAUD "baud"
@@ -20,66 +20,51 @@
#define MM_SERIAL_STOPBITS "stopbits"
#define MM_SERIAL_SEND_DELAY "send-delay"
-typedef struct {
- GObject parent;
-} MMSerial;
-
-typedef struct {
- GObjectClass parent;
-} MMSerialClass;
-
-GType mm_serial_get_type (void);
-
-typedef void (*MMSerialGetReplyFn) (MMSerial *serial,
- const char *reply,
- gpointer user_data);
+typedef struct _MMSerial MMSerial;
+typedef struct _MMSerialClass MMSerialClass;
-typedef void (*MMSerialWaitForReplyFn) (MMSerial *serial,
- int reply_index,
- gpointer user_data);
+typedef gboolean (*MMSerialResponseParserFn) (gpointer user_data,
+ GString *response,
+ GError **error);
-typedef void (*MMSerialWaitQuietFn) (MMSerial *serial,
- gboolean timed_out,
+typedef void (*MMSerialResponseFn) (MMSerial *serial,
+ GString *response,
+ GError *error,
gpointer user_data);
typedef void (*MMSerialFlashFn) (MMSerial *serial,
gpointer user_data);
-const char *mm_serial_get_device (MMSerial *serial);
-
-gboolean mm_serial_open (MMSerial *self);
+struct _MMSerial {
+ GObject parent;
+};
-void mm_serial_close (MMSerial *self);
-gboolean mm_serial_send_command (MMSerial *self,
- GByteArray *command);
+struct _MMSerialClass {
+ GObjectClass parent;
+};
-gboolean mm_serial_send_command_string (MMSerial *self,
- const char *str);
+GType mm_serial_get_type (void);
-guint mm_serial_get_reply (MMSerial *self,
- guint timeout,
- const char *terminators,
- MMSerialGetReplyFn callback,
- gpointer user_data);
+void mm_serial_set_response_parser (MMSerial *self,
+ MMSerialResponseParserFn fn,
+ gpointer user_data,
+ GDestroyNotify notify);
-guint mm_serial_wait_for_reply (MMSerial *self,
- guint timeout,
- char **responses,
- char **terminators,
- MMSerialWaitForReplyFn callback,
- gpointer user_data);
+gboolean mm_serial_open (MMSerial *self,
+ GError **error);
-void mm_serial_wait_quiet (MMSerial *self,
- guint timeout,
- guint quiet_time,
- MMSerialWaitQuietFn callback,
- gpointer user_data);
+void mm_serial_close (MMSerial *self);
+void mm_serial_queue_command (MMSerial *self,
+ const char *command,
+ guint32 timeout_seconds,
+ MMSerialResponseFn callback,
+ gpointer user_data);
-guint mm_serial_flash (MMSerial *self,
- guint32 flash_time,
- MMSerialFlashFn callback,
- gpointer user_data);
+guint mm_serial_flash (MMSerial *self,
+ guint32 flash_time,
+ MMSerialFlashFn callback,
+ gpointer user_data);
-GIOChannel *mm_serial_get_io_channel (MMSerial *self);
+const char *mm_serial_get_device (MMSerial *self);
#endif /* MM_SERIAL_H */