Java SlimServer

NEWS
30 December 2010

Release 4.0

See the Wiki for maven details
25 April 2010

Release 3.0
2 February 2010

Moved to google code.
6 November 2008

Finally created this webpage.


  bjj@thejavashop.net

Examples

Here are a few quick examples to get you started using JavaSlimServer. Check out the javadocs page for full documentation.

To create a SlimServer object:

public void createSlimServer() {
        int cliPort = 9090;
        int webPort = 9000;

        try {
            SlimServer ss = new SlimServer("hostname", cliPort, webPort);
            System.out.println("is connected:" + ss.isConnected());
        catch (SlimConnectionException ex) {
            System.out.println("There was a problem connecting to SqueezeCenter!");
            Logger.getLogger(Examples.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

To use the Slim Player:

public void createPlayer(SlimServer ss) {
        List<SlimPlayer> players = new ArrayList<SlimPlayer>(ss.getSlimPlayers());

        System.out.println("Here are the players:");
        for (SlimPlayer player : players) {
            System.out.println("\t" + player.getName());
        }

        SlimPlayer player = players.get(0);

        System.out.println("Id:" + player.getId());
        System.out.println("Ip:" + player.getIp());
        System.out.println("Name:" + player.getName());
        System.out.println("Elapsed time:" + player.getElapsedTime());

    }

To use the Slim Playlist:

public void createPlaylist(SlimServer ss, SlimPlayer player) {
        try {
            SlimPlaylist playlist = ss.getSlimPlaylist(player);

            SlimDatabase database = new SlimDatabase(ss);
            List<SlimArtist> artists = new ArrayList<SlimArtist>(database.searchArtists("Metallica"));
            List<SlimSong> songs = new ArrayList<SlimSong>(database.listSongsForArtist(artists.get(0)));
            playlist.addSong(songs.get(0));

        catch (SlimConnectionException ex) {
            Logger.getLogger(Examples.class.getName()).log(Level.SEVERE, null, ex);
        catch (SlimDatabaseException ex) {
            Logger.getLogger(Examples.class.getName()).log(Level.SEVERE, null, ex);
        catch (SlimException ex) {
            Logger.getLogger(Examples.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

To use the stand alone monitor:

public class Examples implements ConnectionChangeListener,
        PlayerChangeListener,
        PlaylistChangeListener,
        SlimErrorListener,
        TrackPositionChangeListener,
        VolumeChangeListener {

    public void createStandAloneMonitor(SlimPlayer player) {
        SlimStandAloneMonitor ssm;
        try {
            ssm = new SlimStandAloneMonitor(player, 1000);
            ssm.addConnectionChangeListener(this);
            ssm.addPlayerChangeListener(this);
            ssm.addPlaylistChangeListener(this);
            ssm.addSlimErrorListener(this);
            ssm.addTrackPositionChangeListener(this);
            ssm.addVolumeChangeListener(this);
        catch (SlimException ex) {
            Logger.getLogger(Examples.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    public void connectionChangeEventReceived(ConnectionChangeEvent event) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void playerChanged(PlayerChangeEvent event) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void playlistChanged(PlaylistChangeEvent event) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void errorEventReceived(SlimErrorEvent event) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void trackPositionChanged(TrackPositionChangeEvent event) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void volumeChanged(VolumeChangeEvent event) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}

To use the Slim database:

public void createDatabase(SlimServer ss) {
        try {
            SlimDatabase database = new SlimDatabase(ss);


            List<SlimArtist> artists = new ArrayList<SlimArtist>(database.getArtists());
            System.out.println("Artists:");
            for (SlimArtist artist : artists) {
                System.out.println("\t" + artist);
            }

            List<SlimAlbum> albums = new ArrayList<SlimAlbum>(database.getAlbums());
            System.out.println("Albums:");
            for (SlimAlbum album : albums) {
                System.out.println("\t" + album);
            }

            List<SlimArtist> artistList = new ArrayList<SlimArtist>(database.searchArtists("Buckethead"));
            List<SlimSong> songs = new ArrayList<SlimSong>(database.listSongsForArtist(artistList.get(0)));
            System.out.println("Songs by Buckethead:");
            for (SlimSong song : songs) {
                System.out.println("\t" + song);
            }
        catch (SlimConnectionException ex) {
            Logger.getLogger(Examples.class.getName()).log(Level.SEVERE, null, ex);
        catch (SlimDatabaseException ex) {
            Logger.getLogger(Examples.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Code formatting generated using Java2html
Last Update: 30 December 2010