diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 23 | ||||
| -rw-r--r-- | src/modem.h | 11 | 
2 files changed, 29 insertions, 5 deletions
| @@ -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 | 
