From 3866a756db6c85e36d1896af8461682c8c19a2ec Mon Sep 17 00:00:00 2001
From: ulrich
Date: Wed, 11 May 2022 08:40:14 +0000
Subject: [PATCH] Rueckmeldung fuer Lautstaerkeregelung unterbunden
---
src/de/uhilger/tango/api/MediaSteuerung.java | 73 +++++++++++++++++++++++++++---------
1 files changed, 54 insertions(+), 19 deletions(-)
diff --git a/src/de/uhilger/tango/api/MediaSteuerung.java b/src/de/uhilger/tango/api/MediaSteuerung.java
index 37e0d9e..7d3fda7 100644
--- a/src/de/uhilger/tango/api/MediaSteuerung.java
+++ b/src/de/uhilger/tango/api/MediaSteuerung.java
@@ -48,10 +48,11 @@
*
* HTTP POST /mz/api/strg/abspieler/play/titel mit dem Titel im Body
* HTTP POST /mz/api/strg/abspieler/play/stream mit dem Livestream im Body (nur Name gefuellt)
+ *
+ * HTTP POST /mz/api/strg/abspieler/weiter/titel mit dem Titel im Body
*
* HTTP GET /mz/api/strg/abspieler/pause
* HTTP GET /mz/api/strg/abspieler/stop
- * HTTP GET /mz/api/strg/abspieler/weiter
*
* Faustregel: Anzahl Elemente eines URL plus 1 ist die Anzahl der Elemente des
* Ergebnisses von String.split.
@@ -67,24 +68,37 @@
public static final String PL_CMD_PLAY = "play";
public static final String PL_DEFAULT_PARAMS = "?titel=";
public static final String PL_PARAM_RUECK = "&r=";
- public static final String PL_API_STRG = "/api/strg/";
+ public static final String PL_API_STRG = "api/strg/";
public static final String PL_CMD_ENDE = "ende";
public static final String PL_CMD_STOP = "stop";
+ public static final String PL_CMD_VOLDN = "voldn";
+ public static final String PL_CMD_VOLUP = "volup";
public static final String PL_CMD_PAUSE = "pause";
- public static final String PL_CMD_PLAYON = "playon";
+ public static final String PL_CMD_PLAYON = "weiter";
public static final String PL_CMD_CALYPSO_STOP = "stop";
+ public static final String PL_CMD_CALYPSO_VOL_INC = "vol-inc";
+ public static final String PL_CMD_CALYPSO_VOL_DEC = "vol-dec";
public static final String PL_CMD_CALYPSO_PAUSE = "pause";
public static final String PL_CMD_CALYPSO_PLAYON = "playon";
public static final String DEFAULT_HOST = "http://localhost:9090";
+ public static final String RB_HOST = "host";
+ public static final String RB_PLAYERPARAMS = "playerparams";
+
private final Map spielt = new HashMap();
+
+ private String conf;
+
+ public MediaSteuerung(String conf) {
+ this.conf = conf;
+ }
@Override
protected String get(HttpExchange e) {
String response;
String path = e.getRequestURI().toString();
String[] elems = path.split(Server.SLASH);
- FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
+ FileStorage fs = new FileStorage(conf);
logger.fine(path);
// Faustregel: Anzahl Elemente eines URL plus 1 ist die Anzahl der Elemente des
@@ -96,10 +110,14 @@
} else if(elems[5].equalsIgnoreCase(PL_CMD_STOP)) {
spielt.remove(elems[4]);
response = kommandoSenden(fs, elems[4], PL_CMD_CALYPSO_STOP);
+ } else if(elems[5].equalsIgnoreCase(PL_CMD_VOLDN)) {
+ response = kommandoSenden(fs, elems[4], PL_CMD_CALYPSO_VOL_DEC);
+ } else if(elems[5].equalsIgnoreCase(PL_CMD_VOLUP)) {
+ response = kommandoSenden(fs, elems[4], PL_CMD_CALYPSO_VOL_INC);
} else if(elems[5].equalsIgnoreCase(PL_CMD_PAUSE)) {
response = kommandoSenden(fs, elems[4], PL_CMD_CALYPSO_PAUSE);
- } else if(elems[5].equalsIgnoreCase(PL_CMD_PLAYON)) {
- response = kommandoSenden(fs, elems[4], PL_CMD_CALYPSO_PLAYON);
+ //} else if(elems[5].equalsIgnoreCase(PL_CMD_PLAYON)) {
+ // response = kommandoSenden(fs, elems[4], PL_CMD_CALYPSO_PLAYON);
} else {
response = meldung("Ungueltiges Kommando: " + elems[5], AbstractHandler.RTC_NOT_FOUND);
}
@@ -117,8 +135,17 @@
@Override
protected String post(HttpExchange e) {
String response;
+ String abspielerKmd = PL_CMD_PLAY;
+ String path = e.getRequestURI().toString();
+ String[] elems = path.split(Server.SLASH);
+ logger.info(elems[5]);
+ if(elems[5].equalsIgnoreCase(PL_CMD_PLAYON)) {
+ abspielerKmd = PL_CMD_CALYPSO_PLAYON;
+ } else if(elems[5].equalsIgnoreCase(PL_CMD_PLAY)){
+ abspielerKmd = PL_CMD_PLAY;
+ }
try {
- return urlAbspielen(e);
+ return urlAbspielen(e, abspielerKmd);
} catch (IOException ex) {
logger.log(Level.SEVERE, null, ex);
return meldung(ex.getLocalizedMessage(), 404);
@@ -126,11 +153,11 @@
}
// titel.katalogUrl + titel.pfad + titel.name
- private String urlAbspielen(HttpExchange e) throws IOException {
+ private String urlAbspielen(HttpExchange e, String abspielerKmd) throws IOException {
String path = e.getRequestURI().toString();
String[] elems = path.split(Server.SLASH);
- FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
- if(elems[5].equalsIgnoreCase("titel")) {
+ FileStorage fs = new FileStorage(conf);
+ if(elems[6].equalsIgnoreCase("titel")) {
String titelJson = bodyLesen(e);
Gson gson = new Gson();
Object o = gson.fromJson(titelJson, fs.typeFromName(Titel.class.getSimpleName()).getType());
@@ -140,8 +167,8 @@
Entity entity = fs.read(FileStorage.ST_ABSPIELER, elems[4]);
if (entity instanceof Abspieler) {
Abspieler abspieler = (Abspieler) entity;
- String server = getEinstellung(fs, App.getRs(App.RB_HOST), DEFAULT_HOST);
- String signal = abspielKommando(fs, abspieler, server, titelUrl).toString();
+ String server = getEinstellung(fs, getResString(RB_HOST), DEFAULT_HOST);
+ String signal = abspielKommando(fs, abspieler, server, titelUrl, abspielerKmd).toString();
abspielerKommandoSenden(signal);
return signal + "gesendet.";
} else {
@@ -150,7 +177,7 @@
} else {
return meldung("Ungueltiger Titel.", 404);
}
- } else if(elems[5].equalsIgnoreCase("stream")) {
+ } else if(elems[6].equalsIgnoreCase("stream")) {
String streamJson = bodyLesen(e);
Gson gson = new Gson();
Object o = gson.fromJson(streamJson, fs.typeFromName(Livestream.class.getSimpleName()).getType());
@@ -162,7 +189,7 @@
if (entity instanceof Abspieler) {
Abspieler abspieler = (Abspieler) entity;
String server = "";
- String signal = abspielKommando(fs, abspieler, server, stream.getUrl()).toString();
+ String signal = abspielKommando(fs, abspieler, server, stream.getUrl(), PL_CMD_PLAY).toString();
abspielerKommandoSenden(signal);
return signal + "gesendet.";
} else {
@@ -179,6 +206,7 @@
}
}
+
private String kommandoSenden(Storage s, String aName, String kommando) {
Entity entity = s.read(FileStorage.ST_ABSPIELER, aName);
if (entity instanceof Abspieler) {
@@ -187,12 +215,15 @@
kmd.append(abspieler.getUrl());
kmd.append(kommando);
String signal = kmd.toString();
+ //String server = getEinstellung(s, App.getRs(App.RB_HOST), DEFAULT_HOST);
+ //String signal = abspielKommando(s, abspieler, server, stream.getUrl(), PL_CMD_PLAY).toString();
abspielerKommandoSenden(signal);
return signal + " gesendet.";
} else {
return meldung("Abspielliste nicht gefunden.", AbstractHandler.RTC_NOT_FOUND);
}
}
+
private String ersterTitel(Storage s, String aName, String lName) {
String response;
@@ -272,7 +303,7 @@
vorgang.setTitelNr(titelNr);
spielt.put(abspieler.getName(), vorgang);
- String server = getEinstellung(s, App.getRs(App.RB_HOST), DEFAULT_HOST);
+ String server = getEinstellung(s, getResString(RB_HOST), DEFAULT_HOST);
/*
@@ -285,9 +316,12 @@
kmd.append(server);
kmd.append(titelUrl);
*/
- StringBuilder kmd = abspielKommando(s, abspieler, server, titelUrl);
+ StringBuilder kmd = abspielKommando(s, abspieler, server, titelUrl, PL_CMD_PLAY);
kmd.append(PL_PARAM_RUECK);
kmd.append(server);
+ if(!server.endsWith(Server.SLASH)) {
+ kmd.append(Server.SLASH);
+ }
kmd.append(PL_API_STRG);
kmd.append(abspieler.getName());
kmd.append("/ende");
@@ -295,14 +329,15 @@
return kmd.toString();
}
- private StringBuilder abspielKommando(Storage s, Abspieler abspieler, String server, String titelUrl) {
+ private StringBuilder abspielKommando(Storage s, Abspieler abspieler, String server, String titelUrl, String abspielKmd) {
// Kommando an den Abspieler zusammenbauen
StringBuilder kmd = new StringBuilder();
kmd.append(abspieler.getUrl());
- kmd.append(PL_CMD_PLAY);
+ //kmd.append(PL_CMD_PLAY);
+ kmd.append(abspielKmd);
// Parameter fuer den Abspieler holen
- kmd.append(getEinstellung(s, App.getRs(App.RB_PLAYERPARAMS), PL_DEFAULT_PARAMS));
+ kmd.append(getEinstellung(s, getResString(RB_PLAYERPARAMS), PL_DEFAULT_PARAMS));
kmd.append(server);
kmd.append(titelUrl);
--
Gitblit v1.9.3