#include #include #include #include "../include/plugin.h" void on_keypress(struct hash *, struct hash *, int *); void on_songchange(struct hash *, struct hash *, int *); void reset_islastsong(struct hash *, struct hash *, int *); const struct hook hooks[] = { { "os_keypress", on_keypress, HOOK_KEYPRESS }, { "os_songchange", on_songchange, HOOK_SONGCHANGE }, { "os_reset", reset_islastsong, HOOK_DEADCHILD }, { "os_reset", reset_islastsong, HOOK_RADIO }, { NULL, NULL, -1 }, }; static int islastsong=0; extern pid_t playfork; /* bah. */ void on_keypress(struct hash* track, struct hash* session, int* key) { if (*key == '?') { puts("o = Stop stream after this song"); } else if ((*key == 'o') && (playfork)) { islastsong = !islastsong; if (islastsong) puts("Will stop stream after this song."); else puts("Will keep playing after this song."); } } void on_songchange(struct hash* track, struct hash* session, int* key) { if (islastsong && playfork) { kill(playfork, SIGKILL); islastsong = 0; } } void reset_islastsong(struct hash* track, struct hash* session, int* key) { islastsong = 0; }