diff options
Diffstat (limited to 'src/ConfigParser.cpp')
-rw-r--r-- | src/ConfigParser.cpp | 310 |
1 files changed, 0 insertions, 310 deletions
diff --git a/src/ConfigParser.cpp b/src/ConfigParser.cpp index 1ed1bac..0f05076 100644 --- a/src/ConfigParser.cpp +++ b/src/ConfigParser.cpp @@ -610,316 +610,6 @@ static void setup_subchannel_from_ptree(DabSubchannel* subchan, subchan->inputUri = inputUri; -#if OLD_INPUTS // {{{ - /* The input is of the old_style type, - * with the struct of function pointers, - * and needs to be a DabInputCompatible - */ - bool input_is_old_style = true; - dabInputOperations operations; - dabProtection* protection = &subchan->protection; - - - if (0) { -#if defined(HAVE_FORMAT_MPEG) - } else if (type == "audio") { - subchan->type = subchannel_type_t::Audio; - subchan->bitrate = 0; - - if (0) { -#if defined(HAVE_INPUT_FILE) - } else if (proto == "file") { - operations = dabInputMpegFileOperations; -#endif // defined(HAVE_INPUT_FILE) -#if defined(HAVE_INPUT_ZEROMQ) - } - else if (proto == "tcp" || - proto == "epgm" || - proto == "ipc") { - input_is_old_style = false; - - auto zmqconfig = setup_zmq_input(pt, subchanuid); - - DabInputZmqMPEG* inzmq = - new DabInputZmqMPEG(subchanuid, zmqconfig); - rcs.enrol(inzmq); - subchan->input = inzmq; - - if (proto == "epgm") { - etiLog.level(warn) << "Using untested epgm:// zeromq input"; - } - else if (proto == "ipc") { - etiLog.level(warn) << "Using untested ipc:// zeromq input"; - } - -#endif // defined(HAVE_INPUT_ZEROMQ) - } else { - stringstream ss; - ss << "Subchannel with uid " << subchanuid << - ": Invalid protocol for MPEG input (" << - proto << ")" << endl; - throw runtime_error(ss.str()); - } -#endif // defined(HAVE_INPUT_FILE) && defined(HAVE_FORMAT_MPEG) -#if defined(HAVE_FORMAT_DABPLUS) - } else if (type == "dabplus") { - subchan->type = subchannel_type_t::Audio; - subchan->bitrate = 32; - - if (0) { -#if defined(HAVE_INPUT_FILE) - } else if (proto == "file") { - operations = dabInputDabplusFileOperations; -#endif // defined(HAVE_INPUT_FILE) -#if defined(HAVE_INPUT_ZEROMQ) - } - else if (proto == "tcp" || - proto == "epgm" || - proto == "ipc") { - input_is_old_style = false; - - auto zmqconfig = setup_zmq_input(pt, subchanuid); - - DabInputZmqAAC* inzmq = - new DabInputZmqAAC(subchanuid, zmqconfig); - - rcs.enrol(inzmq); - subchan->input = inzmq; - - if (proto == "epgm") { - etiLog.level(warn) << "Using untested epgm:// zeromq input"; - } - else if (proto == "ipc") { - etiLog.level(warn) << "Using untested ipc:// zeromq input"; - } -#endif // defined(HAVE_INPUT_ZEROMQ) - } else { - stringstream ss; - ss << "Subchannel with uid " << subchanuid << - ": Invalid protocol for DAB+ input (" << - proto << ")" << endl; - throw runtime_error(ss.str()); - } -#endif // defined(HAVE_FORMAT_DABPLUS) - } else if (type == "data" and proto == "prbs") { - input_is_old_style = false; - - subchan->input = make_shared<Inputs::Prbs>(); - subchan->type = subchannel_type_t::DataDmb; - subchan->bitrate = DEFAULT_DATA_BITRATE; - } else if (type == "data") { - // TODO default proto should be udp:// - if (0) { -#if defined(HAVE_INPUT_UDP) - } else if (proto == "udp") { - operations = dabInputUdpOperations; -#endif -#if defined(HAVE_INPUT_FILE) && defined(HAVE_FORMAT_RAW) - } else if (proto == "file") { - operations = dabInputRawFileOperations; -#endif -#if defined(HAVE_INPUT_FIFO) - } else if (proto == "fifo") { - operations = dabInputRawFifoOperations; -#endif - } else { - stringstream ss; - ss << "Subchannel with uid " << subchanuid << - ": Invalid protocol for data input (" << - proto << ")" << endl; - throw runtime_error(ss.str()); - } - - subchan->type = subchannel_type_t::DataDmb; - subchan->bitrate = DEFAULT_DATA_BITRATE; -#ifdef HAVE_FORMAT_PACKET - } else if (type == "packet") { - subchan->type = subchannel_type_t::Packet; - subchan->bitrate = DEFAULT_PACKET_BITRATE; -#ifdef HAVE_INPUT_FILE - operations = dabInputPacketFileOperations; -#elif defined(HAVE_INPUT_FIFO) - operations = dabInputFifoOperations; -#else -# pragma error("Must define at least one packet input") -#endif // defined(HAVE_INPUT_FILE) -#ifdef HAVE_FORMAT_EPM - } else if (type == "enhancedpacket") { - subchan->type = subchannel_type_t::Packet; - subchan->bitrate = DEFAULT_PACKET_BITRATE; - operations = dabInputEnhancedPacketFileOperations; -#endif // defined(HAVE_FORMAT_EPM) -#endif // defined(HAVE_FORMAT_PACKET) -#ifdef HAVE_FORMAT_DMB - } else if (type == "dmb") { - // TODO default proto should be UDP - if (0) { -#if defined(HAVE_INPUT_UDP) - } else if (proto == "udp") { - operations = dabInputDmbUdpOperations; -#endif - } else if (proto == "file") { - operations = dabInputDmbFileOperations; - } else { - stringstream ss; - ss << "Subchannel with uid " << subchanuid << - ": Invalid protocol for DMB input (" << - proto << ")" << endl; - throw runtime_error(ss.str()); - } - - subchan->type = subchannel_type_t::DataDmb; - subchan->bitrate = DEFAULT_DATA_BITRATE; -#endif - } else { - stringstream ss; - ss << "Subchannel with uid " << subchanuid << " has unknown type!"; - throw runtime_error(ss.str()); - } - subchan->startAddress = 0; - - if (type == "audio") { - protection->form = UEP; - protection->level = 2; - protection->uep.tableIndex = 0; - } else { - protection->level = 2; - protection->form = EEP; - protection->eep.profile = EEP_A; - } - - /* Get bitrate */ - try { - subchan->bitrate = pt.get<int>("bitrate"); - if ((subchan->bitrate & 0x7) != 0) { - stringstream ss; - ss << "Subchannel with uid " << subchanuid << - ": Bitrate (" << subchan->bitrate << " not a multiple of 8!"; - throw runtime_error(ss.str()); - } - } - catch (ptree_error &e) { - stringstream ss; - ss << "Error, no bitrate defined for subchannel " << subchanuid; - throw runtime_error(ss.str()); - } - -#if defined(HAVE_INPUT_FIFO) && defined(HAVE_INPUT_FILE) - /* Get nonblock */ - bool nonblock = pt.get("nonblock", false); - if (nonblock) { - switch (subchan->type) { -#ifdef HAVE_FORMAT_PACKET - case subchannel_type_t::Packet: - if (operations == dabInputPacketFileOperations) { - operations = dabInputFifoOperations; -#ifdef HAVE_FORMAT_EPM - } else if (operations == dabInputEnhancedPacketFileOperations) { - operations = dabInputEnhancedFifoOperations; -#endif // defined(HAVE_FORMAT_EPM) - } else { - stringstream ss; - ss << "Error, wrong packet operations for subchannel " << - subchanuid; - throw runtime_error(ss.str()); - } - break; -#endif // defined(HAVE_FORMAT_PACKET) -#ifdef HAVE_FORMAT_MPEG - case subchannel_type_t::Audio: - if (operations == dabInputMpegFileOperations) { - operations = dabInputMpegFifoOperations; - } else if (operations == dabInputDabplusFileOperations) { - operations = dabInputDabplusFifoOperations; - } else { - stringstream ss; - ss << "Error, wrong audio operations for subchannel " << - subchanuid; - throw runtime_error(ss.str()); - } - break; -#endif // defined(HAVE_FORMAT_MPEG) - case subchannel_type_t::DataDmb: - case subchannel_type_t::Fidc: - default: - stringstream ss; - ss << "Subchannel with uid " << subchanuid << - " non-blocking I/O only available for audio or packet services!"; - throw runtime_error(ss.str()); - } - } -#endif // defined(HAVE_INPUT_FIFO) && defined(HAVE_INPUT_FILE) - - - /* Get id */ - - try { - subchan->id = hexparse(pt.get<std::string>("id")); - } - catch (ptree_error &e) { - for (int i = 0; i < 64; ++i) { // Find first free subchannel - vector<DabSubchannel*>::iterator subchannel = getSubchannel(ensemble->subchannels, i); - if (subchannel == ensemble->subchannels.end()) { - subchannel = ensemble->subchannels.end() - 1; - subchan->id = i; - break; - } - } - } - - /* Get optional protection profile */ - string profile = pt.get("protection-profile", ""); - - if (profile == "EEP_A") { - protection->form = EEP; - protection->eep.profile = EEP_A; - } - else if (profile == "EEP_B") { - protection->form = EEP; - protection->eep.profile = EEP_B; - } - else if (profile == "UEP") { - protection->form = UEP; - } - - /* Get protection level */ - try { - int level = pt.get<int>("protection"); - - if (protection->form == UEP) { - if ((level < 1) || (level > 5)) { - stringstream ss; - ss << "Subchannel with uid " << subchanuid << - ": protection level must be between " - "1 to 5 inclusively (current = " << level << " )"; - throw runtime_error(ss.str()); - } - } - else if (protection->form == EEP) { - if ((level < 1) || (level > 4)) { - stringstream ss; - ss << "Subchannel with uid " << subchanuid << - ": protection level must be between " - "1 to 4 inclusively (current = " << level << " )"; - throw runtime_error(ss.str()); - } - } - protection->level = level - 1; - } - catch (ptree_error &e) { - stringstream ss; - ss << "Subchannel with uid " << subchanuid << - ": protection level undefined!"; - throw runtime_error(ss.str()); - } - - /* Create object */ - if (input_is_old_style) { - subchan->input = new DabInputCompatible(operations); - } - // else { it's already been created! } -#endif // 0 }}} - dabProtection* protection = &subchan->protection; const bool nonblock = pt.get("nonblock", false); |