src/main/java/org/intellimate/izou/sdk/frameworks/music/player/template/PlayerController.java
public void command(String command, Playlist playlist, Progress progress, TrackInfo trackInfo, Volume volume) {
        Optional<Identification> ownIdentification = IdentificationManagerM.getInstance()
                .getIdentification(this);
        Optional<Identification> playerIdentification = IdentificationManagerM.getInstance()
                .getIdentification(player);
        if (!ownIdentification.isPresent()|| !playerIdentification.isPresent()) {
            error("unable to obtain id");
            return;
        }
        Optional<PlayerCommand> playerCommand = PlayerCommand.createPlayerCommand(ownIdentification.get(),
                playerIdentification.get(), command, player.getCapabilities(), getContext());
        if (playlist != null) {
            playerCommand.get().addResource(new PlaylistResource(ownIdentification.get(), playlist));
        }
        if (progress != null) {
            playerCommand.get().addResource(new ProgressResource(ownIdentification.get(), progress));
        }
        if (trackInfo != null) {
            playerCommand.get().addResource(new TrackInfoResource(ownIdentification.get(), trackInfo));
        }
        if (volume != null) {
            playerCommand.get().addResource(new VolumeResource(ownIdentification.get(), volume));
        }
        fire(playerCommand.get(), 5);
    }
public void command(String command, Playlist playlist, Progress progress, TrackInfo trackInfo, Volume volume) {
        Optional<Identification> ownIdentification = IdentificationManagerM.getInstance()
                .getIdentification(this);
        Optional<Identification> playerIdentification = IdentificationManagerM.getInstance()
                .getIdentification(player);
        if (!ownIdentification.isPresent()|| !playerIdentification.isPresent()) {
            error("unable to obtain id");
            return;
        }
        Optional<PlayerCommand> playerCommand = PlayerCommand.createPlayerCommand(ownIdentification.get(),
                playerIdentification.get(), command, player.getCapabilities(), getContext());
        if (playlist != null) {
            playerCommand.get().addResource(new PlaylistResource(ownIdentification.get(), playlist));
        }
        if (progress != null) {
            playerCommand.get().addResource(new ProgressResource(ownIdentification.get(), progress));
        }
        if (trackInfo != null) {
            playerCommand.get().addResource(new TrackInfoResource(ownIdentification.get(), trackInfo));
        }
        if (volume != null) {
            playerCommand.get().addResource(new VolumeResource(ownIdentification.get(), volume));
        }
        fire(playerCommand.get(), 5);
    }
commands the player to fulfill the command
@param command the command
@param playlist the playlist, or null if not needed
@param progress the progress, or null if not needed
@param trackInfo the trackInfo, or null if not needed
@param volume the volume, or null if not needed