From 2f2aa7d344d41c6d4083149b1ea6b41e7fb1f683 Mon Sep 17 00:00:00 2001
From: undisclosed
Date: Sat, 07 Jan 2023 15:24:26 +0000
Subject: [PATCH] Baustelle: Calypso 'ins Reine' bauen

---
 src/de/uhilger/calypso/App.java |   51 +++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/src/de/uhilger/calypso/App.java b/src/de/uhilger/calypso/App.java
index 8cf84c5..3b17088 100644
--- a/src/de/uhilger/calypso/App.java
+++ b/src/de/uhilger/calypso/App.java
@@ -1,6 +1,6 @@
 /*
-    AV-Direktor - Control OMXPlayer on Raspberry Pi via HTTP
-    Copyright (C) 2021  Ulrich Hilger
+    Calypso - Media Player Remote Control via HTTP for Raspberry Pi
+    Copyright (C) 2021-2023  Ulrich Hilger
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU Affero General Public License as
@@ -18,28 +18,37 @@
 
 package de.uhilger.calypso;
 
+import de.uhilger.calypso.handler.MPVPlayer;
+import de.uhilger.calypso.handler.MPlayer;
 import de.uhilger.calypso.handler.OMXPlayer;
 import de.uhilger.calypso.handler.Player;
 import de.uhilger.calypso.handler.VLCPlayer;
+import java.io.File;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
- * Hauptklasse des av-director
+ * Hauptklasse von Calypso
  * 
- * Aufruf mit
- * java -jar av-director.jar port=9000
- * java -jar av-director.jar nfs-prefix="/media/mc" port=9000
- * java -Djava.util.logging.config.file=logging.properties -jar ..
+ * Aufruf mit<br>
+ * java -jar calypso.jar port=9000 ctx="/calypso"<br>
+ * java -jar calypso.jar nfs-prefix="/media/mc" port=9000<br>
+ * java -Djava.util.logging.config.file=logging.properties -jar ..<br>
  * 
  * Der Parameter nfs-prefix bewirkt, dass beim Abspielen relative Pfade 
  * mit diesem Praefix verbunden werden und setzt voraus, dass auf der 
- * Maschine ein NFS-Mount ueber /etc/fstab eingerichtet ist.
+ * Maschine ein NFS-Mount ueber /etc/fstab eingerichtet ist.<br>
+ * <br>
+ * Anmerkung anlaesslich der Aenderung auf VLC (2.1.2023):<br>
+ * Mit Calypso wurde erstmals jdk.httpserver anstelle von Tomcat 
+ * einsetzt. Es war in diesem Punkt noch ein Laborversuch und sollte 
+ * unter Wiederverwendung der wesentlichen Teile bei Gelegenheit 
+ * neu gebaut werden.
  * 
- * @author ulrich
- * @version 0.1, 20.03.2021
+ * @author Ulrich Hilger
+ * @version 0.2 vom 2.1.2023, 0.1 vom 20.03.2021 als Nachfolger von Pirc (02.2013-03.2021)
  */
 public class App {
   
@@ -51,18 +60,23 @@
   public static final String IP_PLAYER = "player";
   public static final String VLC_PLAYER = "vlc";
   public static final String OMX_PLAYER = "omx";
+  public static final String M_PLAYER = "mpl";
+  public static final String MPV_PLAYER = "mpv";
   public static final String OMX_WD = "omx.wd";
+  public static final String CTX = "ctx";
+  public static final String CONF_PATH = "conf";
   
+  public static final String DEFAULT_CTX = "/calypso";
   
   private static HashMap initParams;  
   private static Process playerproc;
   private static Player player;
   
-  
   /**
    * @param args the command line arguments
    */
   public static void main(String[] args) {
+    Logger.getLogger(App.class.getName()).log(Level.INFO, new File(".").getAbsolutePath());
     initParams = new HashMap();
     for(String arg: args) {
       String[] argParts = arg.split("=");
@@ -71,6 +85,12 @@
         
     String playerType = getInitParameter(IP_PLAYER);
     switch(playerType) {
+      case MPV_PLAYER:
+        player = new MPVPlayer();
+        break;
+      case M_PLAYER:
+        player = new MPlayer();
+        break;
       case VLC_PLAYER:
         player = new VLCPlayer();
         break;
@@ -79,8 +99,15 @@
         break;
     }
     Server server = new Server(Integer.parseInt(getInitParameter(IP_PORT)));
+    server.setPath(getInitParameter(CONF_PATH));
+    String ctx = getInitParameter(CTX);
+    if(ctx != null && ctx.length() > 0) {
+      server.setContextName(ctx);    
+    } else {
+      server.setContextName(DEFAULT_CTX);
+    }
     try {
-      server.start();
+      server.start(playerType);
     } catch (IOException ex) {
       Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
     }

--
Gitblit v1.9.3