diff --git a/src/daemonc/remotecontrol.cpp b/src/daemonc/remotecontrol.cpp index 9c51e7c01..f887948d2 100644 --- a/src/daemonc/remotecontrol.cpp +++ b/src/daemonc/remotecontrol.cpp @@ -526,10 +526,24 @@ void CRemoteControl::processAPIDnames() if(g_settings.audio_DolbyDigital && (ac3_found < 0)) ac3_found = count; } + else if ( current_PIDs.APIDs[count].is_eac3 ) + { + if(!strstr(current_PIDs.APIDs[count].desc, " (EAC3)")) + tmp_desc += " (EAC3)"; + has_ac3 = true; + if(g_settings.audio_DolbyDigital && (ac3_found < 0)) + ac3_found = count; + } else if (current_PIDs.APIDs[count].is_aac && !strstr(current_PIDs.APIDs[count].desc, " (AAC)")) tmp_desc += " (AAC)"; - else if (current_PIDs.APIDs[count].is_eac3 && !strstr(current_PIDs.APIDs[count].desc, " (EAC3)")) - tmp_desc += " (EAC3)"; + else if (current_PIDs.APIDs[count].is_aache && !strstr(current_PIDs.APIDs[count].desc, " (AACP)")) + tmp_desc += " (AACP)"; + else if (current_PIDs.APIDs[count].is_dts && !strstr(current_PIDs.APIDs[count].desc, " (DTS)")) + tmp_desc += " (DTS)"; + else if (current_PIDs.APIDs[count].is_dtshd && !strstr(current_PIDs.APIDs[count].desc, " (DTSHD)")) + tmp_desc += " (DTSHD)"; + else if (current_PIDs.APIDs[count].is_lpcm && !strstr(current_PIDs.APIDs[count].desc, " (LPCM)")) + tmp_desc += " (LPCM)"; if(!tmp_desc.empty()){ strncpy(current_PIDs.APIDs[count].desc, tmp_desc.c_str(), DESC_MAX_LEN -1); diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 2370e834a..e20d94e12 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -443,13 +443,21 @@ void CRecordInstance::GetPids(CZapitChannel * channel) CZapitClient::responseGetAPIDs response; response.pid = channel->getAudioPid(i); strncpy(response.desc, channel->getAudioChannel(i)->description.c_str(), DESC_MAX_LEN - 1); - response.is_ac3 = response.is_aac = response.is_eac3 = 0; + response.is_ac3 = response.is_aac = response.is_aache = response.is_eac3 = response.is_dts = response.is_dtshd = response.is_lpcm = 0; if (channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::AC3) { response.is_ac3 = 1; } else if (channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::AAC) { response.is_aac = 1; + } else if (channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::AACPLUS) { + response.is_aache = 1; } else if (channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::EAC3) { response.is_eac3 = 1; + } else if (channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::DTS) { + response.is_dts = 1; + } else if (channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::DTSHD) { + response.is_dtshd = 1; + } else if (channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::LPCM) { + response.is_lpcm = 1; } response.component_tag = channel->getAudioChannel(i)->componentTag; allpids.APIDs.push_back(response); @@ -495,8 +503,16 @@ void CRecordInstance::ProcessAPIDnames() tmp_desc2 += " (AC3)"; else if (allpids.APIDs[j].is_aac && tmp_desc2.find(" (AAC)")) tmp_desc2 += " (AAC)"; + else if (allpids.APIDs[j].is_aache && tmp_desc2.find(" (AACP)")) + tmp_desc2 += " (AACP)"; else if (allpids.APIDs[j].is_eac3 && tmp_desc2.find(" (EAC3)")) tmp_desc2 += " (EAC3)"; + else if (allpids.APIDs[j].is_dts && tmp_desc2.find(" (DTS)")) + tmp_desc2 += " (DTS)"; + else if (allpids.APIDs[j].is_dtshd && tmp_desc2.find(" (DTSHD)")) + tmp_desc2 += " (DTSHD)"; + else if (allpids.APIDs[j].is_lpcm && tmp_desc2.find(" (LPCM)")) + tmp_desc2 += " (LPCM)"; if(!tmp_desc2.empty()){ strncpy(allpids.APIDs[j].desc, tmp_desc2.c_str(), DESC_MAX_LEN -1); diff --git a/src/zapit/include/zapit/client/zapitclient.h b/src/zapit/include/zapit/client/zapitclient.h index a10b92fbd..7ada84e54 100644 --- a/src/zapit/include/zapit/client/zapitclient.h +++ b/src/zapit/include/zapit/client/zapitclient.h @@ -189,7 +189,11 @@ class CZapitClient:public CBasicClient char desc[DESC_MAX_LEN]; int is_ac3; int is_aac; + int is_aache; int is_eac3; + int is_dts; + int is_dtshd; + int is_lpcm; int component_tag; }; diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index d54e851a3..1c4e3d7c4 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -2084,13 +2084,21 @@ void CZapit::sendAPIDs(int connfd) VALGRIND_PARANOIA(response); response.pid = current_channel->getAudioPid(i); strncpy(response.desc, current_channel->getAudioChannel(i)->description.c_str(), DESC_MAX_LEN-1); - response.is_ac3 = response.is_aac = response.is_eac3 = 0; + response.is_ac3 = response.is_aac = response.is_aache = response.is_eac3 = response.is_dts = response.is_dtshd = response.is_lpcm = 0; if (current_channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::AC3) { response.is_ac3 = 1; } else if (current_channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::AAC) { response.is_aac = 1; + } else if (current_channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::AACPLUS) { + response.is_aache = 1; } else if (current_channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::EAC3) { response.is_eac3 = 1; + } else if (current_channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::DTS) { + response.is_dts = 1; + } else if (current_channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::DTSHD) { + response.is_dtshd = 1; + } else if (current_channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::LPCM) { + response.is_lpcm = 1; } response.component_tag = current_channel->getAudioChannel(i)->componentTag;