| | |
| | | /* |
| | | 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 |
| | |
| | | |
| | | 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 ctx="/calypso" |
| | | * 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 { |
| | | |
| | |
| | | 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"; |
| | | |
| | |
| | | * @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("="); |
| | |
| | | |
| | | 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; |
| | |
| | | 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); |