|
|
|
|
@ -52,7 +52,7 @@ void CController::Stop()
|
|
|
|
|
|
|
|
|
|
reader.Close();
|
|
|
|
|
dstar_device.CloseDevice();
|
|
|
|
|
dmrst_device.CloseDevice();
|
|
|
|
|
dmrsf_device.CloseDevice();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CController::CheckTCModules() const
|
|
|
|
|
@ -163,20 +163,26 @@ bool CController::InitDevices()
|
|
|
|
|
if (0==desc.compare("ThumbDV") || 0==desc.compare("DVstick-33") || 0==desc.compare("USB-3000"))
|
|
|
|
|
dvtype = Edvtype::dv3000;
|
|
|
|
|
|
|
|
|
|
if (modules.size() > ((Edvtype::dv3000 == dvtype) ? 1 : 3))
|
|
|
|
|
{
|
|
|
|
|
std::cerr << "Too many transcoded modules for the devices" << std::endl;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//initialize each device
|
|
|
|
|
while (! deviceset.empty())
|
|
|
|
|
{
|
|
|
|
|
if (dstar_device.OpenDevice(deviceset.front().first, deviceset.front().second, dvtype))
|
|
|
|
|
return true;
|
|
|
|
|
deviceset.pop_front();
|
|
|
|
|
if (dmrst_device.OpenDevice(deviceset.front().first, deviceset.front().second, dvtype))
|
|
|
|
|
if (dmrsf_device.OpenDevice(deviceset.front().first, deviceset.front().second, dvtype))
|
|
|
|
|
return true;
|
|
|
|
|
deviceset.pop_front();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// and start them up!
|
|
|
|
|
dstar_device.Start();
|
|
|
|
|
dmrst_device.Start();
|
|
|
|
|
dmrsf_device.Start();
|
|
|
|
|
|
|
|
|
|
deviceset.clear();
|
|
|
|
|
|
|
|
|
|
@ -203,7 +209,7 @@ void CController::ReadReflectorThread()
|
|
|
|
|
dstar_device.AddPacket(packet);
|
|
|
|
|
break;
|
|
|
|
|
case ECodecType::dmr:
|
|
|
|
|
dmrst_device.AddPacket(packet);
|
|
|
|
|
dmrsf_device.AddPacket(packet);
|
|
|
|
|
break;
|
|
|
|
|
case ECodecType::c2_1600:
|
|
|
|
|
case ECodecType::c2_3200:
|
|
|
|
|
@ -297,7 +303,7 @@ void CController::Codec2toAudio(std::shared_ptr<CTranscoderPacket> packet)
|
|
|
|
|
}
|
|
|
|
|
// the only thing left is to encode the two ambe, so push the packet onto both AMBE queues
|
|
|
|
|
dstar_device.AddPacket(packet);
|
|
|
|
|
dmrst_device.AddPacket(packet);
|
|
|
|
|
dmrsf_device.AddPacket(packet);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CController::ProcessC2Thread()
|
|
|
|
|
@ -342,7 +348,7 @@ void CController::RouteDstPacket(std::shared_ptr<CTranscoderPacket> packet)
|
|
|
|
|
{
|
|
|
|
|
// codec_in is dstar, the audio has just completed, so now calc the M17 and DMR
|
|
|
|
|
codec2_queue.push(packet);
|
|
|
|
|
dmrst_device.AddPacket(packet);
|
|
|
|
|
dmrsf_device.AddPacket(packet);
|
|
|
|
|
}
|
|
|
|
|
else if (packet->AllCodecsAreSet())
|
|
|
|
|
{
|
|
|
|
|
|