/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package de.uhilger.calypso.handler;
import com.sun.net.httpserver.HttpExchange;
import de.uhilger.calypso.ProzessLauscher;
import java.util.Map;
/**
*
* @author ulrich
*/
public interface Player extends ProzessLauscher {
/**
* Einen Prozess zum Abspielen mit dem omxplayer starten
* @param urlStr URL der Quelle, die abgespielt werden soll
* @param token
* @return Antwort des Servers
*/
/*
public String abspielen(String urlStr, String token) {
return abspielenMitParametern(urlStr, null, token);
}
*/
/*
public String abspielenMitRueckmeldung(String urlStr, String meldeUrlStr, String token) {
return abspielenMitParameternUndRueckmeldung(urlStr, null, meldeUrlStr, token);
}
*/
/**
* Einen Prozess zum Abspielen mit dem omxplayer starten
* und Parameter uebergeben.Moegliche Parameter fuer das Abspielen mit dem omxplayer
beschreibt die Seite
Aufstellung der Parameter.Die Zeichenkette parameter enthaelt Eintraege wie z.B.
* App.OPT_LOCAL_AUDIO oder App.OPT_HDMI_AUDIO.
Mehrere Parameter werden mit App.BLANK getrennt.
* @param urlStr der URL der Quelle, die abgespielt werden soll
* @param parameter die Parameter, die vom omxplayer angewendet werden sollen
* @param token
* @return Antwort des Servers
*/
/*
public String abspielenMitParametern(String urlStr, String parameter, String token) {
return abspielenMitParameternUndRueckmeldung(urlStr, parameter, null, token);
}
*/
String abspielen(String urlStr, String parameter, String meldeUrlStr, String token);
/**
* Dem laufenden Abspielprozess ein Kommando uebermitteln
* @param k das Kommando laut
* Liste der Kommandos
* @return die Antwort des Servers
*/
String kommando(String k);
StringBuilder buildParams(HttpExchange t, Map m);
String getParam(Map map, String key);
/* ------ Implementierung ProzessLauscher ----------------- */
void prozessBeendet(String meldeUrlStr);
/**
* Einen eventuell laufenden Abspielprozess beenden und den
* Servlet-Kontext bereinigen.Diese Methode kann auch verwendet werden, wenn es beim normalen
Abspielen zu Fehlern kommt und womoeglich der Servlet-Kontext noch
eine Referenz zu einem Abspielprozess enthaelt, die nicht mehr
aktuell ist.
*
* Mit der Methode tilgen kann man eine solche Referenz
entfernen und gibt so das Objekt wieder frei fuer die Ausfuehrung
weiterer Kommandos.
*
* @return die Antwort des Servers
*/
String tilgen();
}