summaryrefslogtreecommitdiff
path: root/cmpcj/src/de/schwarzrot/cmpc/app/ConfigFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'cmpcj/src/de/schwarzrot/cmpc/app/ConfigFactory.java')
-rw-r--r--cmpcj/src/de/schwarzrot/cmpc/app/ConfigFactory.java132
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;
-}