diff options
Diffstat (limited to 'cmpcj/src/de/schwarzrot/cmpc/app/ConfigFactory.java')
-rw-r--r-- | cmpcj/src/de/schwarzrot/cmpc/app/ConfigFactory.java | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/cmpcj/src/de/schwarzrot/cmpc/app/ConfigFactory.java b/cmpcj/src/de/schwarzrot/cmpc/app/ConfigFactory.java deleted file mode 100644 index f1c4685..0000000 --- a/cmpcj/src/de/schwarzrot/cmpc/app/ConfigFactory.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * ======================== legal notice ====================== - * - * File: ConfigFactory.java - * Created: - * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> - * Project: cmpc - a java frontend (client) part of compound media player - * uses external players to play the media - * - * CMP - compound media player - * - * is a client/server mediaplayer intended to play any media from any workstation - * without the need to export or mount shares. cmps is an easy to use backend - * with a (ready to use) HTML-interface. Additionally the backend supports - * authentication via HTTP-digest authorization. - * cmpc is a client with vdr-like osd-menues. - * - * Copyright (c) 2012 Reinhard Mantey, some rights reserved! - * published under Creative Commons by-sa - * For details see http://creativecommons.org/licenses/by-sa/3.0/ - * - * The cmp project's homepage is at http://projects.vdr-developer.org/projects/cmp - * - * -------------------------------------------------------------- - */ -package de.schwarzrot.cmpc.app; - - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import de.schwarzrot.cmpc.domain.Config; -import de.schwarzrot.cmpc.domain.Media; -import de.schwarzrot.cmpc.domain.MediaServer; -import de.schwarzrot.cmpc.domain.PlayerDefinition; - - -public class ConfigFactory { - protected static final Pattern SETUP_MASK = Pattern.compile("^\\s*(\\S+)\\s*=\\s*(.+)$"); - - - public ConfigFactory(File configDirectory) { - baseDir = configDirectory; - } - - - public Config getConfig() { - if (config == null) { - config = readConfig(); - } - return config; - } - - - protected Config readConfig() { - File setupFile = new File(baseDir, "srclient.conf"); - BufferedReader br = null; - Config rv = new Config(); - - if (setupFile.exists()) { - try { - br = new BufferedReader(new FileReader(setupFile)); - String line, trimmedLine; - - while ((line = br.readLine()) != null) { - trimmedLine = line.trim(); - - if (trimmedLine.isEmpty() || trimmedLine.startsWith("#")) - continue; - Matcher m = SETUP_MASK.matcher(trimmedLine); - - if (m.matches()) { - String key = m.group(1); - String value = m.group(2); - - if (key.compareToIgnoreCase("server") == 0) { - String[] parts = value.split("\\s*\\:\\s*"); - MediaServer ms = null; - - if (parts.length > 1) { - ms = new MediaServer(); - ms.setHostName(parts[0]); - ms.setPort(Integer.decode(parts[1])); - - rv.addServer(ms); - } - } else if (key.compareToIgnoreCase("player") == 0) { - String[] parts = value.split("\\s*\\:\\s*"); - PlayerDefinition pd = null; - - if (parts.length > 1) { - pd = new PlayerDefinition(); - String[] cmdline = parts[1].split("\\s+"); - - pd.setExecutable(cmdline[0]); - - for (int i = 1; i < cmdline.length; ++i) { - pd.addParameter(cmdline[i]); - } - if (parts[0].compareTo("*") == 0) { - // default player - for (Media.SupportedMediaType cmt : Media.SupportedMediaType.values()) - rv.putPlayer(cmt, pd); - } else { - for (Media.SupportedMediaType cmt : Media.SupportedMediaType.values()) { - if (parts[0].compareTo(cmt.name()) == 0) - rv.putPlayer(cmt, pd); - } - } - } - } - } - } - } catch (Throwable t) { - t.printStackTrace(); - } finally { - if (br != null) { - try { - br.close(); - } catch (IOException e) { - } - } - } - } - return rv; - } - private Config config; - private File baseDir; -} |