so://phie

rx

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>

6

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

8

9#define BACKTRACE_SIZE 10

10

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

18

19rx_t rx;

20

21void do_update(void) {

22 rx_update(&rx);

23 rx_draw(&rx);

24}

25

26void cleanup(void) {

27 rx_free(&rx);

28}

29

30int 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}