The XMMS example now extracts the code snippets from real files that do compile
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/individualsamples/src/org/apidesign/samples/XMMS.java Sat Jun 14 10:03:42 2008 +0200
1.3 @@ -0,0 +1,49 @@
1.4 +package org.apidesign.samples;
1.5 +
1.6 +// BEGIN: xmms.java.api
1.7 +public class XMMS {
1.8 + public void play() { doPlay(); }
1.9 + public void pause() { doPause(); }
1.10 + public void addToPlaylist(String file) { doAddToPlaylist(file); }
1.11 +// FINISH: xmms.java.api
1.12 +
1.13 + // BEGIN: xmms.java.spi
1.14 + interface Playback {
1.15 + public void playback(byte[] data);
1.16 + }
1.17 + // END: xmms.java.spi
1.18 + public void registerPlayback(Playback callback) {
1.19 + this.callback = callback;
1.20 + }
1.21 + private Playback callback;
1.22 +
1.23 + private void doAddToPlaylist(String file) {
1.24 + }
1.25 +
1.26 + private void doPause() {
1.27 + }
1.28 +
1.29 + private void doPlay() {
1.30 + callback.playback("Play!".getBytes());
1.31 + }
1.32 +
1.33 +
1.34 +
1.35 + //
1.36 + // Usage
1.37 + //
1.38 +
1.39 + public static void main(String[] args) {
1.40 + XMMS xmms = new XMMS();
1.41 +
1.42 + // BEGIN: xmms.java.use
1.43 + class MyCallbackPrints implements XMMS.Playback {
1.44 + public void playback(byte[] data) {
1.45 + System.out.println(new String(data));
1.46 + }
1.47 + }
1.48 + xmms.registerPlayback(new MyCallbackPrints());
1.49 + // END: xmms.java.use
1.50 + }
1.51 +
1.52 +}
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/samples/individualsamples/src/org/apidesign/samples/xmms.c Sat Jun 14 10:03:42 2008 +0200
2.3 @@ -0,0 +1,49 @@
2.4 +
2.5 +#include "stdio.h"
2.6 +
2.7 +// BEGIN: xmms.spi
2.8 +void xmms_register_playback(void (*f)(char*));
2.9 +// END: xmms.spi
2.10 +
2.11 +// BEGIN: xmms.api
2.12 +void xmms_play();
2.13 +void xmms_pause();
2.14 +void xmms_add_to_list(char *);
2.15 +// END: xmms.api
2.16 +
2.17 +
2.18 +//
2.19 +// implementation
2.20 +//
2.21 +
2.22 +void none() {
2.23 +}
2.24 +
2.25 +void (*callback)(char*) = none;
2.26 +void xmms_register_playback(void (*f)(char*)) {
2.27 + callback = f;
2.28 +}
2.29 +
2.30 +void xmms_play() {
2.31 + callback("Play!");
2.32 +}
2.33 +
2.34 +void xmms_pause() {
2.35 +}
2.36 +
2.37 +//
2.38 +// test case
2.39 +//
2.40 +
2.41 +// BEGIN: xmms.your.playback
2.42 +void my_playback_prints(char* text) {
2.43 + printf("%s\n", text);
2.44 +}
2.45 +// END: xmms.your.playback
2.46 +
2.47 +int main(char** argsv) {
2.48 + xmms_register_playback(my_playback_prints);
2.49 + xmms_play();
2.50 + xmms_pause();
2.51 +}
2.52 +