summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main.c23
-rw-r--r--src/modem.h11
2 files changed, 29 insertions, 5 deletions
diff --git a/src/main.c b/src/main.c
index 44d764e..db4c438 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2,15 +2,30 @@
#include "main.h"
-int main_loop(void) {
+int init(void) {
+ if (modem_manager_init(CHANNELS) < 0)
+ return -1;
+
+}
- int fd = -1;
+void done(void) {
- if ((fd = modem_open(NULL)) < 0)
- daemon_log
+ modem_manager_done(CHANNELS);
+
+}
+
+int main_loop(void) {
+ if (init() < 0)
+ return -1;
+
+ for (;;) {
+ /* ... */
+ }
+
+ done();
}
int main(int argc, char*argv[]) {
diff --git a/src/modem.h b/src/modem.h
index b2a7ffe..e8a4ec1 100644
--- a/src/modem.h
+++ b/src/modem.h
@@ -1,6 +1,15 @@
#ifndef foomodemhfoo
#define foomodemhfoo
-int modem_open(const char *dev);
+enum modem_state { MODEM_STATE_DISABLED, MODEM_STATE_INIT, MODEM_STATE_AUDIO };
+
+struct modem {
+ char *dev;
+ int fd;
+ enum modem_state state;
+};
+
+struct modem *modem_open(const char *dev);
+void modem_close(struct modem *m);
#endif