diff options
Diffstat (limited to 'src/ParserConfigfile.cpp')
-rw-r--r-- | src/ParserConfigfile.cpp | 59 |
1 files changed, 28 insertions, 31 deletions
diff --git a/src/ParserConfigfile.cpp b/src/ParserConfigfile.cpp index ca9983b..1ef2b28 100644 --- a/src/ParserConfigfile.cpp +++ b/src/ParserConfigfile.cpp @@ -444,7 +444,7 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, subchan->inputName = inputName; - + dabInputOperations operations; dabProtection* protection = &subchan->protection; if (0) { @@ -453,7 +453,7 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, subchan->inputProto = "file"; subchan->type = 0; subchan->bitrate = 0; - subchan->operations = dabInputMpegFileOperations; + operations = dabInputMpegFileOperations; #endif // defined(HAVE_INPUT_FILE) && defined(HAVE_FORMAT_MPEG) #if defined(HAVE_FORMAT_DABPLUS) } else if (type == "dabplus") { @@ -474,22 +474,22 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, if (0) { #if defined(HAVE_INPUT_FILE) } else if (strcmp(subchan->inputProto, "file") == 0) { - subchan->operations = dabInputDabplusFileOperations; + operations = dabInputDabplusFileOperations; #endif // defined(HAVE_INPUT_FILE) #if defined(HAVE_INPUT_ZEROMQ) } else if (strcmp(subchan->inputProto, "tcp") == 0) { - subchan->operations = dabInputZmqOperations; + operations = dabInputZmqOperations; } else if (strcmp(subchan->inputProto, "epmg") == 0) { etiLog.log(warn, "Using untested epmg:// zeromq input\n"); - subchan->operations = dabInputZmqOperations; + operations = dabInputZmqOperations; } else if (strcmp(subchan->inputProto, "ipc") == 0) { etiLog.log(warn, "Using untested ipc:// zeromq input\n"); - subchan->operations = dabInputZmqOperations; + operations = dabInputZmqOperations; #endif // defined(HAVE_INPUT_ZEROMQ) } else { stringstream ss; @@ -514,11 +514,11 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, #if defined(HAVE_FORMAT_BRIDGE) #if defined(HAVE_INPUT_UDP) } else if (strcmp(subchan->inputProto, "udp") == 0) { - subchan->operations = dabInputBridgeUdpOperations; + operations = dabInputBridgeUdpOperations; #endif // defined(HAVE_INPUT_UDP) #if defined(HAVE_INPUT_SLIP) } else if (strcmp(subchan->inputProto, "slip") == 0) { - subchan->operations = dabInputSlipOperations; + operations = dabInputSlipOperations; #endif // defined(HAVE_INPUT_SLIP) #endif // defined(HAVE_FORMAT_BRIDGE) } @@ -536,18 +536,18 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, if (0) { #if defined(HAVE_INPUT_UDP) } else if (strcmp(subchan->inputProto, "udp") == 0) { - subchan->operations = dabInputUdpOperations; + operations = dabInputUdpOperations; #endif #if defined(HAVE_INPUT_PRBS) && defined(HAVE_FORMAT_RAW) } else if (strcmp(subchan->inputProto, "prbs") == 0) { - subchan->operations = dabInputPrbsOperations; + operations = dabInputPrbsOperations; #endif #if defined(HAVE_INPUT_FILE) && defined(HAVE_FORMAT_RAW) } else if (strcmp(subchan->inputProto, "file") == 0) { - subchan->operations = dabInputRawFileOperations; + operations = dabInputRawFileOperations; #endif } else if (strcmp(subchan->inputProto, "fifo") == 0) { - subchan->operations = dabInputRawFifoOperations; + operations = dabInputRawFifoOperations; } else { stringstream ss; ss << "Subchannel with uid " << subchanuid << @@ -563,7 +563,7 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, subchan->inputProto = "test"; subchan->type = 1; subchan->bitrate = DEFAULT_DATA_BITRATE; - subchan->operations = dabInputTestOperations; + operations = dabInputTestOperations; #endif // defined(HAVE_INPUT_TEST)) && defined(HAVE_FORMAT_RAW) #ifdef HAVE_FORMAT_PACKET } else if (type == "packet") { @@ -571,9 +571,9 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, subchan->type = 3; subchan->bitrate = DEFAULT_PACKET_BITRATE; #ifdef HAVE_INPUT_FILE - subchan->operations = dabInputPacketFileOperations; + operations = dabInputPacketFileOperations; #elif defined(HAVE_INPUT_FIFO) - subchan->operations = dabInputFifoOperations; + operations = dabInputFifoOperations; #else # pragma error("Must defined at least one packet input") #endif // defined(HAVE_INPUT_FILE) @@ -582,7 +582,7 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, subchan->inputProto = "file"; subchan->type = 3; subchan->bitrate = DEFAULT_PACKET_BITRATE; - subchan->operations = dabInputEnhancedPacketFileOperations; + operations = dabInputEnhancedPacketFileOperations; #endif // defined(HAVE_FORMAT_EPM) #endif // defined(HAVE_FORMAT_PACKET) #ifdef HAVE_FORMAT_DMB @@ -598,9 +598,9 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, *proto = 0; } if (strcmp(subchan->inputProto, "udp") == 0) { - subchan->operations = dabInputDmbUdpOperations; + operations = dabInputDmbUdpOperations; } else if (strcmp(subchan->inputProto, "file") == 0) { - subchan->operations = dabInputDmbFileOperations; + operations = dabInputDmbFileOperations; } else { stringstream ss; ss << "Subchannel with uid " << subchanuid << @@ -617,7 +617,6 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, ss << "Subchannel with uid " << subchanuid << " has unknown type!"; throw runtime_error(ss.str()); } - subchan->operations.init(&subchan->data); subchan->startAddress = 0; if (type == "audio") { @@ -649,37 +648,33 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, switch (subchan->type) { #ifdef HAVE_FORMAT_PACKET case 3: - subchan->operations.clean(&subchan->data); - if (subchan->operations == dabInputPacketFileOperations) { - subchan->operations = dabInputFifoOperations; + if (operations == dabInputPacketFileOperations) { + operations = dabInputFifoOperations; #ifdef HAVE_FORMAT_EPM - } else if (subchan->operations == dabInputEnhancedPacketFileOperations) { - subchan->operations = dabInputEnhancedFifoOperations; + } else if (operations == dabInputEnhancedPacketFileOperations) { + operations = dabInputEnhancedFifoOperations; #endif // defined(HAVE_FORMAT_EPM) } else { etiLog.log(error, "Error, wrong packet subchannel operations!\n"); throw runtime_error("Error, wrong packet subchannel operations!\n"); } - subchan->operations.init(&subchan->data); subchan->inputProto = "fifo"; break; #endif // defined(HAVE_FORMAT_PACKET) #ifdef HAVE_FORMAT_MPEG case 0: - subchan->operations.clean(&subchan->data); - if (subchan->operations == dabInputMpegFileOperations) { - subchan->operations = dabInputMpegFifoOperations; - } else if (subchan->operations == + if (operations == dabInputMpegFileOperations) { + operations = dabInputMpegFifoOperations; + } else if (operations == dabInputDabplusFileOperations) { - subchan->operations = dabInputDabplusFifoOperations; + operations = dabInputDabplusFifoOperations; } else { etiLog.log(error, "Error, wrong audio subchannel operations!\n"); throw runtime_error( "Error, wrong audio subchannel operations!\n"); } - subchan->operations.init(&subchan->data); subchan->inputProto = "fifo"; break; #endif // defined(HAVE_FORMAT_MPEG) @@ -735,4 +730,6 @@ void setup_subchannel_from_ptree(dabSubchannel* subchan, } catch (ptree_error &e) {} + /* Create object */ + subchan->input = new DabInputCompatible(operations); } |