2014-11-24 Fred Gleason <fredg@paravelsystems.com>

* Fixed a bug in 'rdhpi/rdsoundcard.cpp' that caused AES3-only output
	ports to fail to be detected under HPI.
This commit is contained in:
Fred Gleason 2014-11-24 11:53:56 -05:00
parent cb4b7c7012
commit f5c812ed1c
2 changed files with 48 additions and 25 deletions

View File

@ -14656,3 +14656,6 @@
'utils/rdimport/rdimport.cpp' and 'utils/rdimport/rdimport.h'.
2014-11-24 Fred Gleason <fredg@paravelsystems.com>
* Added support for the ASI5211 in 'rdhpi/rdhpisoundcard.cpp'.
2014-11-24 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'rdhpi/rdsoundcard.cpp' that caused AES3-only output
ports to fail to be detected under HPI.

View File

@ -688,10 +688,6 @@ void RDHPISoundCard::HPIProbe()
&dummy_type));
hpi_info[i].setSerialNumber(dummy_serial);
hpi_info[i].setHpiVersion(dummy_hpi);
/*
hpi_info[i].setHpiMajorVersion(dummy_hpi>>8);
hpi_info[i].setHpiMinorVersion(dummy_hpi&255);
*/
hpi_info[i].setDspMajorVersion((dummy_version>>13)&7);
hpi_info[i].setDspMinorVersion((dummy_version>>7)&63);
hpi_info[i].setPcbVersion((char)(((dummy_version>>3)&7)+'A'));
@ -750,11 +746,16 @@ void RDHPISoundCard::HPIProbe()
//
str=QString(tr("Output Port"));
for(int k=0;k<HPI_MAX_NODES;k++) {
if(HPI_MixerGetControl(NULL,hpi_mixer[i],
if((HPI_MixerGetControl(NULL,hpi_mixer[i],
HPI_SOURCENODE_OSTREAM,0,
HPI_DESTNODE_LINEOUT,k,
HPI_CONTROL_VOLUME,
&output_stream_volume_control[i][0][k])==0) {
&output_stream_volume_control[i][0][k])==0)||
(HPI_MixerGetControl(NULL,hpi_mixer[i],
HPI_SOURCENODE_OSTREAM,0,
HPI_DESTNODE_AESEBU_OUT,k,
HPI_CONTROL_VOLUME,
&output_stream_volume_control[i][0][k])==0)) {
output_stream_volume[i][0][k]=true;
card_output_ports[i]++;
output_port_description[i][k]=
@ -780,7 +781,6 @@ void RDHPISoundCard::HPIProbe()
input_stream_vox[i][j]=false;
}
if(input_mux_type[i]) {
if(HPI_MixerGetControl(NULL,hpi_mixer[i], // MUX Controls
0,0,
@ -823,11 +823,16 @@ void RDHPISoundCard::HPIProbe()
else {
input_stream_volume[i][j][k]=false;
}
if(HPI_MixerGetControl(NULL,hpi_mixer[i],
HPI_SOURCENODE_OSTREAM,j,
HPI_DESTNODE_LINEOUT,k,
HPI_CONTROL_VOLUME,
&output_stream_volume_control[i][j][k])==0) {
if((HPI_MixerGetControl(NULL,hpi_mixer[i],
HPI_SOURCENODE_OSTREAM,j,
HPI_DESTNODE_LINEOUT,k,
HPI_CONTROL_VOLUME,
&output_stream_volume_control[i][j][k])==0)||
(HPI_MixerGetControl(NULL,hpi_mixer[i],
HPI_SOURCENODE_OSTREAM,j,
HPI_DESTNODE_AESEBU_OUT,k,
HPI_CONTROL_VOLUME,
&output_stream_volume_control[i][j][k])==0)) {
output_stream_volume[i][j][k]=true;
}
else {
@ -866,11 +871,16 @@ void RDHPISoundCard::HPIProbe()
else {
input_port_level[i][j]=false;
}
if(HPI_MixerGetControl(NULL,hpi_mixer[i], // Output Level Controls
0,0,
if((HPI_MixerGetControl(NULL,hpi_mixer[i], // Output Level Controls
0,0,
HPI_DESTNODE_LINEOUT,j,
HPI_CONTROL_LEVEL,
&output_port_level_control[i][j])==0) {
&output_port_level_control[i][j])==0)||
(HPI_MixerGetControl(NULL,hpi_mixer[i],
0,0,
HPI_DESTNODE_AESEBU_OUT,j,
HPI_CONTROL_LEVEL,
&output_port_level_control[i][j])==0)) {
output_port_level[i][j]=true;
}
else {
@ -886,11 +896,16 @@ void RDHPISoundCard::HPIProbe()
else {
input_port_meter[i][j]=false;
}
if(HPI_MixerGetControl(NULL,hpi_mixer[i], // Output Port Meter
0,0,
HPI_DESTNODE_LINEOUT,j,
HPI_CONTROL_METER,
&output_port_meter_control[i][j])==0) {
if((HPI_MixerGetControl(NULL,hpi_mixer[i], // Output Port Meter
0,0,
HPI_DESTNODE_LINEOUT,j,
HPI_CONTROL_METER,
&output_port_meter_control[i][j])==0)||
(HPI_MixerGetControl(NULL,hpi_mixer[i],
0,0,
HPI_DESTNODE_AESEBU_OUT,j,
HPI_CONTROL_METER,
&output_port_meter_control[i][j])==0)) {
output_port_meter[i][j]=true;
}
else {
@ -942,11 +957,16 @@ void RDHPISoundCard::HPIProbe()
//
for(int j=0;j<HPI_MAX_NODES;j++) {
for(int k=0;k<HPI_MAX_NODES;k++) {
if(HPI_MixerGetControl(NULL,hpi_mixer[i],
HPI_SOURCENODE_LINEIN,j,
HPI_DESTNODE_LINEOUT,k,
HPI_CONTROL_VOLUME,
&passthrough_port_volume_control[i][j][k])==0) {
if((HPI_MixerGetControl(NULL,hpi_mixer[i],
HPI_SOURCENODE_LINEIN,j,
HPI_DESTNODE_LINEOUT,k,
HPI_CONTROL_VOLUME,
&passthrough_port_volume_control[i][j][k])==0)||
(HPI_MixerGetControl(NULL,hpi_mixer[i],
HPI_SOURCENODE_LINEIN,j,
HPI_DESTNODE_AESEBU_OUT,k,
HPI_CONTROL_VOLUME,
&passthrough_port_volume_control[i][j][k])==0)) {
passthrough_port_volume[i][j][k]=true;
}
else {