samples/individualsamples/src/org/apidesign/samples/xmms.c
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 20:46:27 +0100
changeset 408 9a439a79c6d0
permissions -rw-r--r--
Use scala 2.10.4 to compile on JDK8
jtulach@193
     1
jtulach@193
     2
#include "stdio.h"
jtulach@193
     3
jtulach@193
     4
// BEGIN: xmms.spi
jtulach@193
     5
void xmms_register_playback(void (*f)(char*));
jtulach@193
     6
// END: xmms.spi
jtulach@193
     7
jtulach@193
     8
// BEGIN: xmms.api
jtulach@193
     9
void xmms_play();
jtulach@193
    10
void xmms_pause();
jtulach@193
    11
void xmms_add_to_list(char *);
jtulach@193
    12
// END: xmms.api
jtulach@193
    13
jtulach@193
    14
jtulach@193
    15
//
jtulach@193
    16
// implementation
jtulach@193
    17
//
jtulach@193
    18
jtulach@193
    19
void none() {
jtulach@193
    20
}
jtulach@193
    21
jtulach@193
    22
void (*callback)(char*) = none;
jtulach@193
    23
void xmms_register_playback(void (*f)(char*)) {
jtulach@193
    24
    callback = f;
jtulach@193
    25
}
jtulach@193
    26
jtulach@193
    27
void xmms_play() {
jtulach@193
    28
    callback("Play!");
jtulach@193
    29
}
jtulach@193
    30
jtulach@193
    31
void xmms_pause() {
jtulach@193
    32
}
jtulach@193
    33
jtulach@193
    34
//
jtulach@193
    35
// test case
jtulach@193
    36
//
jtulach@193
    37
jtulach@193
    38
// BEGIN: xmms.your.playback
jtulach@193
    39
void my_playback_prints(char* text) {
jtulach@193
    40
  printf("%s\n", text);
jtulach@193
    41
}
jtulach@193
    42
// END: xmms.your.playback
jtulach@193
    43
jtulach@193
    44
int main(char** argsv) {
jtulach@193
    45
    xmms_register_playback(my_playback_prints);
jtulach@193
    46
    xmms_play();
jtulach@193
    47
    xmms_pause();
jtulach@193
    48
}
jtulach@193
    49