Package com.pugh.sockso.web.action

Source Code of com.pugh.sockso.web.action.Player

package com.pugh.sockso.web.action;

import com.pugh.sockso.Utils;
import com.pugh.sockso.music.Track;
import com.pugh.sockso.web.BadRequestException;
import com.pugh.sockso.web.Request;
import com.pugh.sockso.web.action.playlist.XspfPlayer;
import com.pugh.sockso.templates.web.THtml5Player;
import com.pugh.sockso.templates.web.TXspfPlayer;
import com.pugh.sockso.templates.web.TFlexPlayer;
import com.pugh.sockso.templates.web.TJplayer;
import com.pugh.sockso.web.TracksRequest;

import java.sql.SQLException;

import java.io.IOException;

public class Player extends BaseAction {
   
    /**
     *  handles the request for one a player window
     *
     *  @param res the response object
     *  @param args command arguments
     *
     *  @throws IOException
     *
     */
   
    public void handleRequest() throws IOException, SQLException, BadRequestException {
      
        final Request req = getRequest();
        final String[] playArgs = req.getPlayParams( true );
        final String type = req.getUrlParam( 1 );
        final TracksRequest tracksRequest = new TracksRequest( req, getDatabase(), getProperties() );

        if ( type.equals( "html5" )) {
            showHtml5Player(
                req.getUrlParam( 2 ).equals( "random" )
                    ? tracksRequest.getRandomTracks()
                    : tracksRequest.getRequestedTracks(),
                req.getUrlParam( 2 ).equals( "random" )
            );
        }
               
        else if(type.equals( "jplayer")) {
          showJplayer(
                req.getUrlParam( 2 ).equals( "random" )
                    ? tracksRequest.getRandomTracks()
                    : tracksRequest.getRequestedTracks(),
                req.getUrlParam( 2 ).equals( "random" )
            );
        }
       
        // default to XSPF player
        else {
       
            String extraArgs = "";

            if ( req.hasArgument("orderBy") ) {
                extraArgs += "&orderBy=" +req.getArgument("orderBy");
            }
           
            if ( req.hasArgument("path") ) {
                extraArgs += "&path=" + Utils.URLEncode(req.getArgument("path") );
            }

            showXspfPlayer( getXspfPlayer(), extraArgs, playArgs );

        }

    }

    /**
     *  shows the HTML 5 player
     *
     *  @param tracks
     *  @param random
     *
     *  @throws IOException
     *
     */
   
    protected void showHtml5Player( final Track[] tracks, boolean random ) throws IOException {

        final THtml5Player tpl = new THtml5Player();
       
        tpl.setTracks( tracks );
        tpl.setProperties( getProperties() );
        tpl.setRandom( random );
       
        getResponse().showHtml( tpl.makeRenderer() );

    }
   
    /**
     *  shows the HTML 5 player
     *
     *  @param tracks
     *  @param random
     *
     *  @throws IOException
     *
     */
   
    protected void showJplayer( final Track[] tracks, boolean random ) throws IOException {

        final TJplayer tpl = new TJplayer();
       
        tpl.setTracks( tracks );
        tpl.setProperties( getProperties() );
        tpl.setRandom( random );
        tpl.setLocale( getLocale() );
       
        getResponse().showHtml( tpl.makeRenderer() );

    }
   
    /**
     *  shows the page with the xspf player on it
     *
     *  @param tpl
     *  @param extraArgs
     *  @param playArgs
     *
     *  @throws java.io.IOException
     *
     */
   
    protected void showXspfPlayer( final XspfPlayer tpl, final String extraArgs, final String[] playArgs ) throws IOException {
       
        tpl.setProperties( getProperties() );
        tpl.setExtraArgs( extraArgs );
        tpl.setPlayArgs( playArgs );
       
        getResponse().showHtml( tpl.makeRenderer() );
       
    }

    /**
     *  returns the xspf player to use (determined by properties)
     *
     *  @return
     *
     */
   
    protected XspfPlayer getXspfPlayer() {
       
        final Request req = getRequest();
        final String player = req.getArgument( "player" );
       
        // use flex player?
        if ( player.equals("flexPlayer") )
            return new TFlexPlayer();
       
        return new TXspfPlayer();
       
    }
   
}
TOP

Related Classes of com.pugh.sockso.web.action.Player

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.