so://phie

rx

A terminal-based radio player
git clone git://soophie.de/rx

blob: 47b9c329de6d37e7c6db5dcc4e59398fc727cc40 (776 bytes)[doc][blame][raw]

1#include <stdio.h>

2#include <stdlib.h>

3#include <signal.h>

4#include <execinfo.h>

5#include <unistd.h>

6

7#include "../include/rx.h"

8

9#define BACKTRACE_SIZE 10

10

11void handle_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}

18

19rx_t rx;

20

21void do_update(void) {

22 rx_update(&rx);

23 rx_draw(&rx);

24}

25

26int main(void) {

27 rx_init(&rx);

28 struct sigaction sigint_action;

29 sigint_action.sa_handler = handle_segfault;

30 sigint_action.sa_flags = 0;

31 sigemptyset(&sigint_action.sa_mask);

32 sigaction(SIGSEGV, &sigint_action, NULL);

33 while (!rx.quit) {

34 do_update();

35 }

36 rx_free(&rx);

37 return EXIT_SUCCESS;

38}