diff --git a/DV3003.cpp b/DV3003.cpp index 4d940a4..ad53ed7 100644 --- a/DV3003.cpp +++ b/DV3003.cpp @@ -387,28 +387,29 @@ void CDV3003::FeedDevice() if (packet->IsLast()) Controller.Dump(packet, "FeedDevice got a packet from inq:"); #endif - bool device_is_ready = false; + const bool needs_audio = (Encoding::dstar==type) ? packet->DStarIsSet() : packet->DMRIsSet(); - while (keep_running && (! device_is_ready)) // wait until there is room + while (keep_running) // wait until there is room { if (needs_audio) { // we need to decode ambe to audio if (ch_depth < 2) - device_is_ready = true; + break; } else { // we need to encode audio to ambe if (sp_depth < 2) - device_is_ready = true; + break; } - if (! device_is_ready) - std::this_thread::sleep_for(std::chrono::milliseconds(2)); + std::this_thread::sleep_for(std::chrono::milliseconds(5)); + std::cout << "depth: ch=" << ch_depth << " sp=" << sp_depth << std::endl; + std::cout.flush(); } - if (keep_running && device_is_ready) + if (keep_running) { // save the packet in the vocoder's queue while the vocoder does its magic vocq[current_vocoder].push(packet);