A terminal-based radio player
git clone git://soophie.de/rx
blob: af4738e1890af75f12182150bc7193912048c93c (811 bytes)[doc][blame][raw]
1
#include <stdio.h>2
#include <stdlib.h>3
#include <signal.h>4
#include <execinfo.h>5
#include <unistd.h>7
#include "../include/rx.h"9
#define BACKTRACE_SIZE 1011
void on_segfault(int signal) {12
void *list[BACKTRACE_SIZE];13
size_t size = backtrace(list, BACKTRACE_SIZE);14
fprintf(stderr, "ERROR: signal %d:\n", signal);15
backtrace_symbols_fd(list, size, STDERR_FILENO);16
exit(EXIT_FAILURE);17
}19
rx_t rx;21
void do_update(void) {22
rx_update(&rx);23
rx_draw(&rx);24
}26
void cleanup(void) {27
rx_free(&rx);28
}30
int main(void) {31
rx_init(&rx);32
struct sigaction sigint_action;33
sigint_action.sa_handler = on_segfault;34
sigint_action.sa_flags = 0;35
sigemptyset(&sigint_action.sa_mask);36
sigaction(SIGSEGV, &sigint_action, NULL);37
atexit(cleanup);38
while (!rx.quit) {39
do_update();40
}41
return EXIT_SUCCESS;42
}