samples/individualsamples/src/org/apidesign/samples/XMMS.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 10:03:42 +0200
changeset 193 2b944e0980c9
child 384 8232b021005d
permissions -rw-r--r--
The XMMS example now extracts the code snippets from real files that do compile
jtulach@193
     1
package org.apidesign.samples;
jtulach@193
     2
jtulach@193
     3
// BEGIN: xmms.java.api
jtulach@193
     4
public class XMMS {
jtulach@193
     5
    public void play() { doPlay(); }
jtulach@193
     6
    public void pause() { doPause(); }
jtulach@193
     7
    public void addToPlaylist(String file) { doAddToPlaylist(file); }
jtulach@193
     8
// FINISH: xmms.java.api
jtulach@193
     9
jtulach@193
    10
    // BEGIN: xmms.java.spi
jtulach@193
    11
    interface Playback {
jtulach@193
    12
        public void playback(byte[] data);
jtulach@193
    13
    }
jtulach@193
    14
    // END: xmms.java.spi
jtulach@193
    15
    public void registerPlayback(Playback callback) {
jtulach@193
    16
        this.callback = callback;
jtulach@193
    17
    }
jtulach@193
    18
    private Playback callback;
jtulach@193
    19
    
jtulach@193
    20
    private void doAddToPlaylist(String file) {
jtulach@193
    21
    }
jtulach@193
    22
jtulach@193
    23
    private void doPause() {
jtulach@193
    24
    }
jtulach@193
    25
jtulach@193
    26
    private void doPlay() {
jtulach@193
    27
        callback.playback("Play!".getBytes());
jtulach@193
    28
    }
jtulach@193
    29
    
jtulach@193
    30
    
jtulach@193
    31
    
jtulach@193
    32
    //
jtulach@193
    33
    // Usage
jtulach@193
    34
    // 
jtulach@193
    35
    
jtulach@193
    36
    public static void main(String[] args) {
jtulach@193
    37
        XMMS xmms = new XMMS();
jtulach@193
    38
        
jtulach@193
    39
        // BEGIN: xmms.java.use
jtulach@193
    40
        class MyCallbackPrints implements XMMS.Playback {
jtulach@193
    41
            public void playback(byte[] data) {
jtulach@193
    42
                System.out.println(new String(data));
jtulach@193
    43
            }
jtulach@193
    44
        }
jtulach@193
    45
        xmms.registerPlayback(new MyCallbackPrints());
jtulach@193
    46
        // END: xmms.java.use
jtulach@193
    47
    }
jtulach@193
    48
jtulach@193
    49
}