Promise getInputPromise(const std::string& portName) { if (!hasInputPort(portName)) throwPortError(portName); const auto& itPromise = _manuallySetPortsMap.find(portName); if (itPromise != _manuallySetPortsMap.end()) return itPromise->second.getPromise(); InputPort& inputPort = _inputMap.find(portName)->second; const auto& itPort = _manuallySetPortsMap.emplace( std::piecewise_construct, std::forward_as_tuple(inputPort.getName()), std::forward_as_tuple( DataInfo(inputPort.getName(), inputPort.getDataType()))); OutputPort& outputPort = itPort.first->second; inputPort.connect(outputPort); return outputPort.getPromise(); }
void WAVStream::run() { //char chunkID[5]; //chunkID[4] = 0; //input_->getStream()->read(chunkID, 4); //cout << "CHUNK ID: " << chunkID << endl; streamInfo_ = StreamInfo(); string chunkId = readString(4); if (chunkId.compare(WAVFormat::CHUNK_ID) != 0) { cerr << "ERROR: Invalid chunk ID. Stream may not be in WAV format." << endl; return; } int32_t chunkSize = readInt32(); string chunkFormat = readString(4); if (chunkFormat.compare(WAVFormat::CHUNK_FORMAT) != 0) { cerr << "ERROR: Invalid chunk format. Stream may not be in WAV format." << endl; return; } chunkSize -= 4; formatRead_ = false; dataRead_ = false; dataInfo_ = DataInfo(); while (chunkSize > 0) { chunkSize -= readSubchunk(); } endStream(); //if (backend_.isNotNull()) // backend_->endStream(); }