aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2014-02-11 13:53:17 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2014-02-11 13:53:17 +0100
commit384472b69665c54dd0cfcb12f4d9fcaf4822b2f7 (patch)
treeba87ea471573643ff5309074c26ed1f961cdc28a
parentc2237319d9c8267b08ad78e92fde5615e7b3041d (diff)
downloaddabmux-384472b69665c54dd0cfcb12f4d9fcaf4822b2f7.tar.gz
dabmux-384472b69665c54dd0cfcb12f4d9fcaf4822b2f7.tar.bz2
dabmux-384472b69665c54dd0cfcb12f4d9fcaf4822b2f7.zip
add dabInputZmqMPEG to command line parser
-rw-r--r--src/ParserConfigfile.cpp57
1 files changed, 54 insertions, 3 deletions
diff --git a/src/ParserConfigfile.cpp b/src/ParserConfigfile.cpp
index 883f5fc..2120242 100644
--- a/src/ParserConfigfile.cpp
+++ b/src/ParserConfigfile.cpp
@@ -502,12 +502,63 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan,
dabProtection* protection = &subchan->protection;
if (0) {
-#if defined(HAVE_INPUT_FILE) && defined(HAVE_FORMAT_MPEG)
+#if defined(HAVE_FORMAT_MPEG)
} else if (type == "audio") {
- subchan->inputProto = "file";
subchan->type = 0;
subchan->bitrate = 0;
- operations = dabInputMpegFileOperations;
+
+ char* proto;
+
+ char* full_inputName = new char[256];
+ full_inputName[255] = '\0';
+ memcpy(full_inputName, inputName, 255);
+
+ proto = strstr(inputName, "://");
+ if (proto == NULL) {
+ subchan->inputProto = "file";
+ } else {
+ subchan->inputProto = inputName;
+ subchan->inputName = proto + 3;
+ *proto = 0;
+ }
+
+ if (0) {
+#if defined(HAVE_INPUT_FILE)
+ } else if (strcmp(subchan->inputProto, "file") == 0) {
+ operations = dabInputDabplusFileOperations;
+#endif // defined(HAVE_INPUT_FILE)
+#if defined(HAVE_INPUT_ZEROMQ)
+ }
+ else if (strcmp(subchan->inputProto, "tcp") == 0) {
+ input_is_old_style = false;
+ DabInputZmqMPEG* inzmq = new DabInputZmqMPEG(subchanuid);
+ inzmq->enrol_at(*rc);
+ subchan->input = inzmq;
+ subchan->inputName = full_inputName;
+ }
+ else if (strcmp(subchan->inputProto, "epmg") == 0) {
+ etiLog.level(warn) << "Using untested epmg:// zeromq input";
+ input_is_old_style = false;
+ DabInputZmqMPEG* inzmq = new DabInputZmqMPEG(subchanuid);
+ inzmq->enrol_at(*rc);
+ subchan->input = inzmq;
+ subchan->inputName = full_inputName;
+ }
+ else if (strcmp(subchan->inputProto, "ipc") == 0) {
+ etiLog.level(warn) << "Using untested ipc:// zeromq input";
+ input_is_old_style = false;
+ DabInputZmqMPEG* inzmq = new DabInputZmqMPEG(subchanuid);
+ inzmq->enrol_at(*rc);
+ subchan->input = inzmq;
+ subchan->inputName = full_inputName;
+#endif // defined(HAVE_INPUT_ZEROMQ)
+ } else {
+ stringstream ss;
+ ss << "Subchannel with uid " << subchanuid <<
+ ": Invalid protocol for MPEG input (" <<
+ subchan->inputProto << ")" << endl;
+ throw runtime_error(ss.str());
+ }
#endif // defined(HAVE_INPUT_FILE) && defined(HAVE_FORMAT_MPEG)
#if defined(HAVE_FORMAT_DABPLUS)
} else if (type == "dabplus") {