2019-06-20 Fred Gleason <fredg@paravelsystems.com>

* Fixed a bug in caed(8) that caused a segfault when executing
	the ['DC'] 'Drop Connection' command.
	* Fixed a bug in caed(8) that caused voicetracks to fail to be
	saved properly.
This commit is contained in:
Fred Gleason 2019-06-20 15:46:03 -04:00
parent 7824e27c79
commit 5d7957e864
4 changed files with 133 additions and 112 deletions

View File

@ -18793,3 +18793,8 @@
2019-06-20 Fred Gleason <fredg@paravelsystems.com> 2019-06-20 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'CaeServer::readyReadData()' method in * Refactored the 'CaeServer::readyReadData()' method in
caed(8) for greater reiliency. caed(8) for greater reiliency.
2019-06-20 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in caed(8) that caused a segfault when executing
the ['DC'] 'Drop Connection' command.
* Fixed a bug in caed(8) that caused voicetracks to fail to be
saved properly.

View File

@ -473,10 +473,10 @@ void MainObject::unloadPlaybackData(int id,unsigned handle)
play_owner[card][stream]=-1; play_owner[card][stream]=-1;
syslog(LOG_DEBUG,"UnloadPlayback - Card: %d Stream: %d Handle: %d", syslog(LOG_DEBUG,"UnloadPlayback - Card: %d Stream: %d Handle: %d",
card,stream,handle); card,stream,handle);
cae_server->sendCommand(id,QString().sprintf("UP %d+!",handle)); cae_server->sendCommand(id,QString().sprintf("UP %d +!",handle));
} }
else { else {
cae_server->sendCommand(id,QString().sprintf("UP %d-!",handle)); cae_server->sendCommand(id,QString().sprintf("UP %d -!",handle));
} }
break; break;
@ -485,10 +485,10 @@ void MainObject::unloadPlaybackData(int id,unsigned handle)
play_owner[card][stream]=-1; play_owner[card][stream]=-1;
syslog(LOG_DEBUG,"UnloadPlayback - Card: %d Stream: %d Handle: %d", syslog(LOG_DEBUG,"UnloadPlayback - Card: %d Stream: %d Handle: %d",
card,stream,handle); card,stream,handle);
cae_server->sendCommand(id,QString().sprintf("UP %d+!",handle)); cae_server->sendCommand(id,QString().sprintf("UP %d +!",handle));
} }
else { else {
cae_server->sendCommand(id,QString().sprintf("UP %d-!",handle)); cae_server->sendCommand(id,QString().sprintf("UP %d -!",handle));
} }
break; break;
@ -497,15 +497,15 @@ void MainObject::unloadPlaybackData(int id,unsigned handle)
play_owner[card][stream]=-1; play_owner[card][stream]=-1;
syslog(LOG_DEBUG,"UnloadPlayback - Card: %d Stream: %d Handle: %d", syslog(LOG_DEBUG,"UnloadPlayback - Card: %d Stream: %d Handle: %d",
card,stream,handle); card,stream,handle);
cae_server->sendCommand(id,QString().sprintf("UP %d+!",handle)); cae_server->sendCommand(id,QString().sprintf("UP %d +!",handle));
} }
else { else {
cae_server->sendCommand(id,QString().sprintf("UP %d-!",handle)); cae_server->sendCommand(id,QString().sprintf("UP %d -!",handle));
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("UP %d-!",handle)); cae_server->sendCommand(id,QString().sprintf("UP %d -!",handle));
return; return;
} }
play_handle[handle].card=-1; play_handle[handle].card=-1;
@ -514,7 +514,7 @@ void MainObject::unloadPlaybackData(int id,unsigned handle)
return; return;
} }
else { else {
cae_server->sendCommand(id,QString().sprintf("UP %d-!",handle)); cae_server->sendCommand(id,QString().sprintf("UP %d -!",handle));
} }
} }
@ -591,7 +591,7 @@ void MainObject::playData(int id,unsigned handle,unsigned length,unsigned speed,
default: default:
cae_server-> cae_server->
sendCommand(id,QString().sprintf("PY %u %u %u %u-!", sendCommand(id,QString().sprintf("PY %u %u %u %u -!",
handle,length,speed,pitch_flag)); handle,length,speed,pitch_flag));
return; return;
} }
@ -602,7 +602,7 @@ void MainObject::playData(int id,unsigned handle,unsigned length,unsigned speed,
play_speed[card][stream],play_pitch[card][stream], play_speed[card][stream],play_pitch[card][stream],
RD_ALLOW_NONSTANDARD_RATES)) { RD_ALLOW_NONSTANDARD_RATES)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("PY %u %u %u %u-!", sendCommand(id,QString().sprintf("PY %u %u %u %u -!",
handle,length,speed,pitch_flag)); handle,length,speed,pitch_flag));
return; return;
} }
@ -613,7 +613,7 @@ void MainObject::playData(int id,unsigned handle,unsigned length,unsigned speed,
play_speed[card][stream],play_pitch[card][stream], play_speed[card][stream],play_pitch[card][stream],
RD_ALLOW_NONSTANDARD_RATES)) { RD_ALLOW_NONSTANDARD_RATES)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("PY %u %u %u %u-!", sendCommand(id,QString().sprintf("PY %u %u %u %u -!",
handle,length,speed,pitch_flag)); handle,length,speed,pitch_flag));
return; return;
} }
@ -624,7 +624,7 @@ void MainObject::playData(int id,unsigned handle,unsigned length,unsigned speed,
play_speed[card][stream],play_pitch[card][stream], play_speed[card][stream],play_pitch[card][stream],
RD_ALLOW_NONSTANDARD_RATES)) { RD_ALLOW_NONSTANDARD_RATES)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("PY %u %u %u %u-!", sendCommand(id,QString().sprintf("PY %u %u %u %u -!",
handle,length,speed,pitch_flag)); handle,length,speed,pitch_flag));
return; return;
} }
@ -632,7 +632,7 @@ void MainObject::playData(int id,unsigned handle,unsigned length,unsigned speed,
default: default:
cae_server-> cae_server->
sendCommand(id,QString().sprintf("PY %u %u %u %u-!", sendCommand(id,QString().sprintf("PY %u %u %u %u -!",
handle,length,speed,pitch_flag)); handle,length,speed,pitch_flag));
return; return;
} }
@ -644,7 +644,7 @@ void MainObject::playData(int id,unsigned handle,unsigned length,unsigned speed,
return; return;
} }
cae_server-> cae_server->
sendCommand(id,QString().sprintf("PY %u %u %u %u-!", sendCommand(id,QString().sprintf("PY %u %u %u %u -!",
handle,length,speed,pitch_flag)); handle,length,speed,pitch_flag));
} }
@ -657,34 +657,34 @@ void MainObject::stopPlaybackData(int id,unsigned handle)
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiStopPlayback(card,stream)) { if(!hpiStopPlayback(card,stream)) {
cae_server->sendCommand(id,QString().sprintf("SP %u-!",handle)); cae_server->sendCommand(id,QString().sprintf("SP %u -!",handle));
return; return;
} }
break; break;
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaStopPlayback(card,stream)) { if(!alsaStopPlayback(card,stream)) {
cae_server->sendCommand(id,QString().sprintf("SP %u-!",handle)); cae_server->sendCommand(id,QString().sprintf("SP %u -!",handle));
return; return;
} }
break; break;
case RDStation::Jack: case RDStation::Jack:
if(!jackStopPlayback(card,stream)) { if(!jackStopPlayback(card,stream)) {
cae_server->sendCommand(id,QString().sprintf("SP %u-!",handle)); cae_server->sendCommand(id,QString().sprintf("SP %u -!",handle));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("SP %u-!",handle)); cae_server->sendCommand(id,QString().sprintf("SP %u -!",handle));
return; return;
} }
syslog(LOG_DEBUG,"StopPlayback - Card: %d Stream: %d Handle: %d", syslog(LOG_DEBUG,"StopPlayback - Card: %d Stream: %d Handle: %d",
card,stream,handle); card,stream,handle);
return; return;
} }
cae_server->sendCommand(id,QString().sprintf("SP %u-!",handle)); cae_server->sendCommand(id,QString().sprintf("SP %u -!",handle));
} }
@ -709,10 +709,10 @@ void MainObject::timescalingSupportData(int id,unsigned card)
break; break;
} }
if(state) { if(state) {
cae_server->sendCommand(id,"TS+!"); cae_server->sendCommand(id,"TS +!");
} }
else { else {
cae_server->sendCommand(id,"TS-!"); cae_server->sendCommand(id,"TS -!");
} }
} }
@ -733,7 +733,7 @@ void MainObject::loadRecordingData(int id,unsigned card,unsigned port,
if(!hpiLoadRecord(card,port,coding,channels,samprate,bitrate, if(!hpiLoadRecord(card,port,coding,channels,samprate,bitrate,
wavename)) { wavename)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s-!", sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s -!",
card,port,coding,channels,samprate, card,port,coding,channels,samprate,
bitrate,(const char *)name.toUtf8())); bitrate,(const char *)name.toUtf8()));
return; return;
@ -744,7 +744,7 @@ void MainObject::loadRecordingData(int id,unsigned card,unsigned port,
if(!alsaLoadRecord(card,port,coding,channels,samprate, if(!alsaLoadRecord(card,port,coding,channels,samprate,
bitrate,wavename)) { bitrate,wavename)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s-!", sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s -!",
card,port,coding,channels,samprate, card,port,coding,channels,samprate,
bitrate,(const char *)name.toUtf8())); bitrate,(const char *)name.toUtf8()));
return; return;
@ -755,7 +755,7 @@ void MainObject::loadRecordingData(int id,unsigned card,unsigned port,
if(!jackLoadRecord(card,port,coding,channels,samprate, if(!jackLoadRecord(card,port,coding,channels,samprate,
bitrate,wavename)) { bitrate,wavename)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s-!", sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s -!",
card,port,coding,channels,samprate, card,port,coding,channels,samprate,
bitrate,(const char *)name.toUtf8())); bitrate,(const char *)name.toUtf8()));
return; return;
@ -764,7 +764,7 @@ void MainObject::loadRecordingData(int id,unsigned card,unsigned port,
default: default:
cae_server-> cae_server->
sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s-!", sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s -!",
card,port,coding,channels,samprate, card,port,coding,channels,samprate,
bitrate,(const char *)name.toUtf8())); bitrate,(const char *)name.toUtf8()));
return; return;
@ -775,13 +775,13 @@ void MainObject::loadRecordingData(int id,unsigned card,unsigned port,
(const char *)wavename.toUtf8()); (const char *)wavename.toUtf8());
record_owner[card][port]=id; record_owner[card][port]=id;
cae_server-> cae_server->
sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s+!", sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s +!",
card,port,coding,channels,samprate, card,port,coding,channels,samprate,
bitrate,(const char *)name.toUtf8())); bitrate,(const char *)name.toUtf8()));
} }
else { else {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s-!", sendCommand(id,QString().sprintf("LR %u %u %u %u %u %u %s -!",
card,port,coding,channels,samprate, card,port,coding,channels,samprate,
bitrate,(const char *)name.toUtf8())); bitrate,(const char *)name.toUtf8()));
} }
@ -795,39 +795,39 @@ void MainObject::unloadRecordingData(int id,unsigned card,unsigned stream)
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiUnloadRecord(card,stream,&len)) { if(!hpiUnloadRecord(card,stream,&len)) {
cae_server->sendCommand(id,QString().sprintf("UR %u %u-!",card,stream)); cae_server->sendCommand(id,QString().sprintf("UR %u %u -!",card,stream));
return; return;
} }
break; break;
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaUnloadRecord(card,stream,&len)) { if(!alsaUnloadRecord(card,stream,&len)) {
cae_server->sendCommand(id,QString().sprintf("UR %u %u-!",card,stream)); cae_server->sendCommand(id,QString().sprintf("UR %u %u -!",card,stream));
return; return;
} }
break; break;
case RDStation::Jack: case RDStation::Jack:
if(!jackUnloadRecord(card,stream,&len)) { if(!jackUnloadRecord(card,stream,&len)) {
cae_server->sendCommand(id,QString().sprintf("UR %u %u-!",card,stream)); cae_server->sendCommand(id,QString().sprintf("UR %u %u -!",card,stream));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("UR %u %u-!",card,stream)); cae_server->sendCommand(id,QString().sprintf("UR %u %u -!",card,stream));
return; return;
} }
record_owner[card][stream]=-1; record_owner[card][stream]=-1;
syslog(LOG_DEBUG,"UnloadRecord - Card: %d Stream: %d, Length: %u", syslog(LOG_DEBUG,"UnloadRecord - Card: %d Stream: %d, Length: %u",
card,stream,len); card,stream,len);
cae_server-> cae_server->
sendCommand(id,QString().sprintf("UR %u %u %u+!",card,stream, sendCommand(id,QString().sprintf("UR %u %u %u +!",card,stream,
(unsigned)((double)len*1000.0/(double)system_sample_rate))); (unsigned)((double)len*1000.0/(double)system_sample_rate)));
return; return;
} }
else { else {
cae_server->sendCommand(id,QString().sprintf("UR %u %u-!",card,stream)); cae_server->sendCommand(id,QString().sprintf("UR %u %u -!",card,stream));
return; return;
} }
} }
@ -844,7 +844,7 @@ void MainObject::recordData(int id,unsigned card,unsigned stream,unsigned len,
if(!hpiRecord(card,stream,record_length[card][stream], if(!hpiRecord(card,stream,record_length[card][stream],
record_threshold[card][stream])) { record_threshold[card][stream])) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("RD %u %u %u %d-!", sendCommand(id,QString().sprintf("RD %u %u %u %d -!",
card,stream,len,threshold_level)); card,stream,len,threshold_level));
return; return;
} }
@ -854,7 +854,7 @@ void MainObject::recordData(int id,unsigned card,unsigned stream,unsigned len,
if(!alsaRecord(card,stream,record_length[card][stream], if(!alsaRecord(card,stream,record_length[card][stream],
record_threshold[card][stream])) { record_threshold[card][stream])) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("RD %u %u %u %d-!", sendCommand(id,QString().sprintf("RD %u %u %u %d -!",
card,stream,len,threshold_level)); card,stream,len,threshold_level));
return; return;
} }
@ -864,7 +864,7 @@ void MainObject::recordData(int id,unsigned card,unsigned stream,unsigned len,
if(!jackRecord(card,stream,record_length[card][stream], if(!jackRecord(card,stream,record_length[card][stream],
record_threshold[card][stream])) { record_threshold[card][stream])) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("RD %u %u %u %d-!", sendCommand(id,QString().sprintf("RD %u %u %u %d -!",
card,stream,len,threshold_level)); card,stream,len,threshold_level));
return; return;
} }
@ -872,7 +872,7 @@ void MainObject::recordData(int id,unsigned card,unsigned stream,unsigned len,
default: default:
cae_server-> cae_server->
sendCommand(id,QString().sprintf("RD %u %u %u %d-!", sendCommand(id,QString().sprintf("RD %u %u %u %d -!",
card,stream,len,threshold_level)); card,stream,len,threshold_level));
return; return;
} }
@ -883,7 +883,7 @@ void MainObject::recordData(int id,unsigned card,unsigned stream,unsigned len,
return; return;
} }
cae_server-> cae_server->
sendCommand(id,QString().sprintf("RD %u %u %u %d-!", sendCommand(id,QString().sprintf("RD %u %u %u %d -!",
card,stream,len,threshold_level)); card,stream,len,threshold_level));
} }
@ -893,29 +893,29 @@ void MainObject::stopRecordingData(int id,unsigned card,unsigned stream)
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiStopRecord(card,stream)) { if(!hpiStopRecord(card,stream)) {
cae_server->sendCommand(id,QString().sprintf("SR %u %u-!",card,stream)); cae_server->sendCommand(id,QString().sprintf("SR %u %u -!",card,stream));
return; return;
} }
break; break;
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaStopRecord(card,stream)) { if(!alsaStopRecord(card,stream)) {
cae_server->sendCommand(id,QString().sprintf("SR %u %u-!",card,stream)); cae_server->sendCommand(id,QString().sprintf("SR %u %u -!",card,stream));
return; return;
} }
cae_server->sendCommand(id,QString().sprintf("SR %u %u+!",card,stream)); cae_server->sendCommand(id,QString().sprintf("SR %u %u +!",card,stream));
break; break;
case RDStation::Jack: case RDStation::Jack:
if(!jackStopRecord(card,stream)) { if(!jackStopRecord(card,stream)) {
cae_server->sendCommand(id,QString().sprintf("SR %u %u-!",card,stream)); cae_server->sendCommand(id,QString().sprintf("SR %u %u -!",card,stream));
return; return;
} }
cae_server->sendCommand(id,QString().sprintf("SR %u %u+!",card,stream)); cae_server->sendCommand(id,QString().sprintf("SR %u %u +!",card,stream));
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("SR %u %u-!",card,stream)); cae_server->sendCommand(id,QString().sprintf("SR %u %u -!",card,stream));
return; return;
} }
syslog(LOG_DEBUG,"StopRecord - Card: %d Stream: %d",card,stream); syslog(LOG_DEBUG,"StopRecord - Card: %d Stream: %d",card,stream);
@ -929,27 +929,27 @@ void MainObject::setInputVolumeData(int id,unsigned card,unsigned stream,
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetInputVolume(card,stream,level)) { if(!hpiSetInputVolume(card,stream,level)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("IV %u %u %d-!",card,stream,level)); sendCommand(id,QString().sprintf("IV %u %u %d -!",card,stream,level));
return; return;
} }
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaSetInputVolume(card,stream,level)) { if(!alsaSetInputVolume(card,stream,level)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("IV %u %u %d-!",card,stream,level)); sendCommand(id,QString().sprintf("IV %u %u %d -!",card,stream,level));
return; return;
} }
case RDStation::Jack: case RDStation::Jack:
if(!jackSetInputVolume(card,stream,level)) { if(!jackSetInputVolume(card,stream,level)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("IV %u %u %d-!",card,stream,level)); sendCommand(id,QString().sprintf("IV %u %u %d -!",card,stream,level));
return; return;
} }
default: default:
cae_server-> cae_server->
sendCommand(id,QString().sprintf("IV %u %u %d-!",card,stream,level)); sendCommand(id,QString().sprintf("IV %u %u %d -!",card,stream,level));
return; return;
} }
if(rd_config->enableMixerLogging()) { if(rd_config->enableMixerLogging()) {
@ -957,7 +957,7 @@ void MainObject::setInputVolumeData(int id,unsigned card,unsigned stream,
card,stream,level); card,stream,level);
} }
cae_server-> cae_server->
sendCommand(id,QString().sprintf("IV %u %u %d+!",card,stream,level)); sendCommand(id,QString().sprintf("IV %u %u %d +!",card,stream,level));
} }
@ -967,7 +967,7 @@ void MainObject::setOutputVolumeData(int id,unsigned card,unsigned stream,
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetOutputVolume(card,stream,port,level)) { if(!hpiSetOutputVolume(card,stream,port,level)) {
cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d -!",
card,stream,port,level)); card,stream,port,level));
return; return;
} }
@ -975,7 +975,7 @@ void MainObject::setOutputVolumeData(int id,unsigned card,unsigned stream,
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaSetOutputVolume(card,stream,port,level)) { if(!alsaSetOutputVolume(card,stream,port,level)) {
cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d -!",
card,stream,port,level)); card,stream,port,level));
return; return;
} }
@ -983,14 +983,14 @@ void MainObject::setOutputVolumeData(int id,unsigned card,unsigned stream,
case RDStation::Jack: case RDStation::Jack:
if(!jackSetOutputVolume(card,stream,port,level)) { if(!jackSetOutputVolume(card,stream,port,level)) {
cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d -!",
card,stream,port,level)); card,stream,port,level));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d -!",
card,stream,port,level)); card,stream,port,level));
return; return;
} }
@ -999,7 +999,7 @@ void MainObject::setOutputVolumeData(int id,unsigned card,unsigned stream,
"SetOutputVolume - Card: %d Stream: %d Port: %d Level: %d", "SetOutputVolume - Card: %d Stream: %d Port: %d Level: %d",
card,stream,port,level); card,stream,port,level);
} }
cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d+!", cae_server->sendCommand(id,QString().sprintf("OV %u %u %u %d +!",
card,stream,port,level)); card,stream,port,level));
} }
@ -1011,7 +1011,7 @@ void MainObject::fadeOutputVolumeData(int id,unsigned card,unsigned stream,
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiFadeOutputVolume(card,stream,port,level,length)) { if(!hpiFadeOutputVolume(card,stream,port,level,length)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("FV %u %u %u %d %u-!", sendCommand(id,QString().sprintf("FV %u %u %u %d %u -!",
card,stream,port,level,length)); card,stream,port,level,length));
return; return;
} }
@ -1020,7 +1020,7 @@ void MainObject::fadeOutputVolumeData(int id,unsigned card,unsigned stream,
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaFadeOutputVolume(card,stream,port,level,length)) { if(!alsaFadeOutputVolume(card,stream,port,level,length)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("FV %u %u %u %d %u-!", sendCommand(id,QString().sprintf("FV %u %u %u %d %u -!",
card,stream,port,level,length)); card,stream,port,level,length));
return; return;
} }
@ -1029,7 +1029,7 @@ void MainObject::fadeOutputVolumeData(int id,unsigned card,unsigned stream,
case RDStation::Jack: case RDStation::Jack:
if(!jackFadeOutputVolume(card,stream,port,level,length)) { if(!jackFadeOutputVolume(card,stream,port,level,length)) {
cae_server-> cae_server->
sendCommand(id,QString().sprintf("FV %u %u %u %d %u-!", sendCommand(id,QString().sprintf("FV %u %u %u %d %u -!",
card,stream,port,level,length)); card,stream,port,level,length));
return; return;
} }
@ -1037,7 +1037,7 @@ void MainObject::fadeOutputVolumeData(int id,unsigned card,unsigned stream,
default: default:
cae_server-> cae_server->
sendCommand(id,QString().sprintf("FV %u %u %u %d %u-!", sendCommand(id,QString().sprintf("FV %u %u %u %d %u -!",
card,stream,port,level,length)); card,stream,port,level,length));
return; return;
} }
@ -1047,7 +1047,7 @@ void MainObject::fadeOutputVolumeData(int id,unsigned card,unsigned stream,
card,stream,port,level,length); card,stream,port,level,length);
} }
cae_server-> cae_server->
sendCommand(id,QString().sprintf("FV %u %u %u %d %u+!", sendCommand(id,QString().sprintf("FV %u %u %u %d %u +!",
card,stream,port,level,length)); card,stream,port,level,length));
} }
@ -1058,7 +1058,7 @@ void MainObject::setInputLevelData(int id,unsigned card,unsigned port,
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetInputLevel(card,port,level)) { if(!hpiSetInputLevel(card,port,level)) {
cae_server->sendCommand(id,QString().sprintf("IL %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("IL %u %u %d -!",
card,port,level)); card,port,level));
return; return;
} }
@ -1066,7 +1066,7 @@ void MainObject::setInputLevelData(int id,unsigned card,unsigned port,
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaSetInputLevel(card,port,level)) { if(!alsaSetInputLevel(card,port,level)) {
cae_server->sendCommand(id,QString().sprintf("IL %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("IL %u %u %d -!",
card,port,level)); card,port,level));
return; return;
} }
@ -1074,14 +1074,14 @@ void MainObject::setInputLevelData(int id,unsigned card,unsigned port,
case RDStation::Jack: case RDStation::Jack:
if(!jackSetInputLevel(card,port,level)) { if(!jackSetInputLevel(card,port,level)) {
cae_server->sendCommand(id,QString().sprintf("IL %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("IL %u %u %d -!",
card,port,level)); card,port,level));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("IL %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("IL %u %u %d -!",
card,port,level)); card,port,level));
return; return;
} }
@ -1089,7 +1089,7 @@ void MainObject::setInputLevelData(int id,unsigned card,unsigned port,
syslog(LOG_DEBUG,"SetInputLevel - Card: %d Port: %d Level: %d", syslog(LOG_DEBUG,"SetInputLevel - Card: %d Port: %d Level: %d",
card,port,level); card,port,level);
} }
cae_server->sendCommand(id,QString().sprintf("IL %u %u %d+!", cae_server->sendCommand(id,QString().sprintf("IL %u %u %d +!",
card,port,level)); card,port,level));
} }
@ -1100,7 +1100,7 @@ void MainObject::setOutputLevelData(int id,unsigned card,unsigned port,
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetOutputLevel(card,port,level)) { if(!hpiSetOutputLevel(card,port,level)) {
cae_server->sendCommand(id,QString().sprintf("OL %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("OL %u %u %d -!",
card,port,level)); card,port,level));
return; return;
} }
@ -1108,7 +1108,7 @@ void MainObject::setOutputLevelData(int id,unsigned card,unsigned port,
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaSetOutputLevel(card,port,level)) { if(!alsaSetOutputLevel(card,port,level)) {
cae_server->sendCommand(id,QString().sprintf("OL %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("OL %u %u %d -!",
card,port,level)); card,port,level));
return; return;
} }
@ -1116,14 +1116,14 @@ void MainObject::setOutputLevelData(int id,unsigned card,unsigned port,
case RDStation::Jack: case RDStation::Jack:
if(!jackSetOutputLevel(card,port,level)) { if(!jackSetOutputLevel(card,port,level)) {
cae_server->sendCommand(id,QString().sprintf("OL %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("OL %u %u %d -!",
card,port,level)); card,port,level));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("OL %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("OL %u %u %d -!",
card,port,level)); card,port,level));
return; return;
} }
@ -1131,7 +1131,7 @@ void MainObject::setOutputLevelData(int id,unsigned card,unsigned port,
syslog(LOG_DEBUG,"SetOutputLevel - Card: %d Port: %d Level: %d", syslog(LOG_DEBUG,"SetOutputLevel - Card: %d Port: %d Level: %d",
card,port,level); card,port,level);
} }
cae_server->sendCommand(id,QString().sprintf("OL %u %u %d+!", cae_server->sendCommand(id,QString().sprintf("OL %u %u %d +!",
card,port,level)); card,port,level));
} }
@ -1142,7 +1142,7 @@ void MainObject::setInputModeData(int id,unsigned card,unsigned stream,
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetInputMode(card,stream,mode)) { if(!hpiSetInputMode(card,stream,mode)) {
cae_server->sendCommand(id,QString().sprintf("IM %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("IM %u %u %u -!",
card,stream,mode)); card,stream,mode));
return; return;
} }
@ -1150,7 +1150,7 @@ void MainObject::setInputModeData(int id,unsigned card,unsigned stream,
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaSetInputMode(card,stream,mode)) { if(!alsaSetInputMode(card,stream,mode)) {
cae_server->sendCommand(id,QString().sprintf("IM %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("IM %u %u %u -!",
card,stream,mode)); card,stream,mode));
return; return;
} }
@ -1158,14 +1158,14 @@ void MainObject::setInputModeData(int id,unsigned card,unsigned stream,
case RDStation::Jack: case RDStation::Jack:
if(!jackSetInputMode(card,stream,mode)) { if(!jackSetInputMode(card,stream,mode)) {
cae_server->sendCommand(id,QString().sprintf("IM %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("IM %u %u %u -!",
card,stream,mode)); card,stream,mode));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("IM %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("IM %u %u %u -!",
card,stream,mode)); card,stream,mode));
return; return;
} }
@ -1173,7 +1173,7 @@ void MainObject::setInputModeData(int id,unsigned card,unsigned stream,
syslog(LOG_DEBUG,"SetInputMode - Card: %d Stream: %d Mode: %d", syslog(LOG_DEBUG,"SetInputMode - Card: %d Stream: %d Mode: %d",
card,stream,mode); card,stream,mode);
} }
cae_server->sendCommand(id,QString().sprintf("IM %u %u %u+!", cae_server->sendCommand(id,QString().sprintf("IM %u %u %u +!",
card,stream,mode)); card,stream,mode));
} }
@ -1184,7 +1184,7 @@ void MainObject::setOutputModeData(int id,unsigned card,unsigned stream,
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetOutputMode(card,stream,mode)) { if(!hpiSetOutputMode(card,stream,mode)) {
cae_server->sendCommand(id,QString().sprintf("OM %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("OM %u %u %u -!",
card,stream,mode)); card,stream,mode));
return; return;
} }
@ -1192,7 +1192,7 @@ void MainObject::setOutputModeData(int id,unsigned card,unsigned stream,
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaSetOutputMode(card,stream,mode)) { if(!alsaSetOutputMode(card,stream,mode)) {
cae_server->sendCommand(id,QString().sprintf("OM %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("OM %u %u %u -!",
card,stream,mode)); card,stream,mode));
return; return;
} }
@ -1200,14 +1200,14 @@ void MainObject::setOutputModeData(int id,unsigned card,unsigned stream,
case RDStation::Jack: case RDStation::Jack:
if(!jackSetOutputMode(card,stream,mode)) { if(!jackSetOutputMode(card,stream,mode)) {
cae_server->sendCommand(id,QString().sprintf("OM %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("OM %u %u %u -!",
card,stream,mode)); card,stream,mode));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("OM %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("OM %u %u %u -!",
card,stream,mode)); card,stream,mode));
return; return;
} }
@ -1215,7 +1215,7 @@ void MainObject::setOutputModeData(int id,unsigned card,unsigned stream,
syslog(LOG_DEBUG,"SetOutputMode - Card: %d Stream: %d Mode: %d", syslog(LOG_DEBUG,"SetOutputMode - Card: %d Stream: %d Mode: %d",
card,stream,mode); card,stream,mode);
} }
cae_server->sendCommand(id,QString().sprintf("OM %u %u %u+!", cae_server->sendCommand(id,QString().sprintf("OM %u %u %u +!",
card,stream,mode)); card,stream,mode));
} }
@ -1226,7 +1226,7 @@ void MainObject::setInputVoxLevelData(int id,unsigned card,unsigned stream,
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetInputVoxLevel(card,stream,level)) { if(!hpiSetInputVoxLevel(card,stream,level)) {
cae_server->sendCommand(id,QString().sprintf("IX %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("IX %u %u %d -!",
card,stream,level)); card,stream,level));
return; return;
} }
@ -1234,7 +1234,7 @@ void MainObject::setInputVoxLevelData(int id,unsigned card,unsigned stream,
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaSetInputVoxLevel(card,stream,level)) { if(!alsaSetInputVoxLevel(card,stream,level)) {
cae_server->sendCommand(id,QString().sprintf("IX %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("IX %u %u %d -!",
card,stream,level)); card,stream,level));
return; return;
} }
@ -1242,14 +1242,14 @@ void MainObject::setInputVoxLevelData(int id,unsigned card,unsigned stream,
case RDStation::Jack: case RDStation::Jack:
if(!jackSetInputVoxLevel(card,stream,level)) { if(!jackSetInputVoxLevel(card,stream,level)) {
cae_server->sendCommand(id,QString().sprintf("IX %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("IX %u %u %d -!",
card,stream,level)); card,stream,level));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("IX %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("IX %u %u %d -!",
card,stream,level)); card,stream,level));
return; return;
} }
@ -1257,7 +1257,7 @@ void MainObject::setInputVoxLevelData(int id,unsigned card,unsigned stream,
syslog(LOG_DEBUG,"SetInputVOXLevel - Card: %d Stream: %d Level: %d", syslog(LOG_DEBUG,"SetInputVOXLevel - Card: %d Stream: %d Level: %d",
card,stream,level); card,stream,level);
} }
cae_server->sendCommand(id,QString().sprintf("IX %u %u %d+!", cae_server->sendCommand(id,QString().sprintf("IX %u %u %d +!",
card,stream,level)); card,stream,level));
} }
@ -1268,7 +1268,7 @@ void MainObject::setInputTypeData(int id,unsigned card,unsigned port,
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetInputType(card,port,type)) { if(!hpiSetInputType(card,port,type)) {
cae_server->sendCommand(id,QString().sprintf("IT %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("IT %u %u %u -!",
card,port,type)); card,port,type));
return; return;
} }
@ -1276,7 +1276,7 @@ void MainObject::setInputTypeData(int id,unsigned card,unsigned port,
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaSetInputType(card,port,type)) { if(!alsaSetInputType(card,port,type)) {
cae_server->sendCommand(id,QString().sprintf("IT %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("IT %u %u %u -!",
card,port,type)); card,port,type));
return; return;
} }
@ -1284,14 +1284,14 @@ void MainObject::setInputTypeData(int id,unsigned card,unsigned port,
case RDStation::Jack: case RDStation::Jack:
if(!jackSetInputType(card,port,type)) { if(!jackSetInputType(card,port,type)) {
cae_server->sendCommand(id,QString().sprintf("IT %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("IT %u %u %u -!",
card,port,type)); card,port,type));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("IT %u %u %u-!", cae_server->sendCommand(id,QString().sprintf("IT %u %u %u -!",
card,port,type)); card,port,type));
return; return;
} }
@ -1299,7 +1299,7 @@ void MainObject::setInputTypeData(int id,unsigned card,unsigned port,
syslog(LOG_DEBUG,"SetInputType - Card: %d Port: %d Type: %d", syslog(LOG_DEBUG,"SetInputType - Card: %d Port: %d Type: %d",
card,port,type); card,port,type);
} }
cae_server->sendCommand(id,QString().sprintf("IT %u %u %u+!", cae_server->sendCommand(id,QString().sprintf("IT %u %u %u +!",
card,port,type)); card,port,type));
} }
@ -1322,7 +1322,7 @@ void MainObject::setAudioPassthroughLevelData(int id,unsigned card,
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetPassthroughLevel(card,input,output,level)) { if(!hpiSetPassthroughLevel(card,input,output,level)) {
cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d -!",
card,input,output,level)); card,input,output,level));
return; return;
} }
@ -1330,7 +1330,7 @@ void MainObject::setAudioPassthroughLevelData(int id,unsigned card,
case RDStation::Alsa: case RDStation::Alsa:
if(!alsaSetPassthroughLevel(card,input,output,level)) { if(!alsaSetPassthroughLevel(card,input,output,level)) {
cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d -!",
card,input,output,level)); card,input,output,level));
return; return;
} }
@ -1338,14 +1338,14 @@ void MainObject::setAudioPassthroughLevelData(int id,unsigned card,
case RDStation::Jack: case RDStation::Jack:
if(!jackSetPassthroughLevel(card,input,output,level)) { if(!jackSetPassthroughLevel(card,input,output,level)) {
cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d -!",
card,input,output,level)); card,input,output,level));
return; return;
} }
break; break;
default: default:
cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d-!", cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d -!",
card,input,output,level)); card,input,output,level));
return; return;
} }
@ -1354,7 +1354,7 @@ void MainObject::setAudioPassthroughLevelData(int id,unsigned card,
"SetPassthroughLevel - Card: %d InPort: %d OutPort: %d Level: %d", "SetPassthroughLevel - Card: %d InPort: %d OutPort: %d Level: %d",
card,input,output,level); card,input,output,level);
} }
cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d+!", cae_server->sendCommand(id,QString().sprintf("AL %u %u %u %d +!",
card,input,output,level)); card,input,output,level));
} }
@ -1362,24 +1362,24 @@ void MainObject::setAudioPassthroughLevelData(int id,unsigned card,
void MainObject::setClockSourceData(int id,unsigned card,int input) void MainObject::setClockSourceData(int id,unsigned card,int input)
{ {
if((card<0)||(input<0)) { if((card<0)||(input<0)) {
cae_server->sendCommand(id,QString().sprintf("CS %u %u-!",card,input)); cae_server->sendCommand(id,QString().sprintf("CS %u %u -!",card,input));
return; return;
} }
switch(cae_driver[card]) { switch(cae_driver[card]) {
case RDStation::Hpi: case RDStation::Hpi:
if(!hpiSetClockSource(card,input)) { if(!hpiSetClockSource(card,input)) {
cae_server->sendCommand(id,QString().sprintf("CS %u %u-!",card,input)); cae_server->sendCommand(id,QString().sprintf("CS %u %u -!",card,input));
return; return;
} }
default: default:
cae_server->sendCommand(id,QString().sprintf("CS %u %u+!",card,input)); cae_server->sendCommand(id,QString().sprintf("CS %u %u +!",card,input));
return; return;
} }
if(rd_config->enableMixerLogging()) { if(rd_config->enableMixerLogging()) {
syslog(LOG_DEBUG,"SetClockSource - Card: %d Source: %d",card,input); syslog(LOG_DEBUG,"SetClockSource - Card: %d Source: %d",card,input);
} }
cae_server->sendCommand(id,QString().sprintf("CS %u %u+!",card,input)); cae_server->sendCommand(id,QString().sprintf("CS %u %u +!",card,input));
} }
@ -1388,7 +1388,7 @@ void MainObject::setOutputStatusFlagData(int id,unsigned card,unsigned port,
{ {
output_status_flag[card][port][stream]=state; output_status_flag[card][port][stream]=state;
SendMeterOutputStatusUpdate(card,port,stream); SendMeterOutputStatusUpdate(card,port,stream);
cae_server->sendCommand(id,QString().sprintf("OS %u %u %u %u+!", cae_server->sendCommand(id,QString().sprintf("OS %u %u %u %u +!",
card,port,stream,state)); card,port,stream,state));
} }
@ -1422,19 +1422,19 @@ void MainObject::meterEnableData(int id,uint16_t udp_port,
cmd+=QString().sprintf(" %u",cards.at(i)); cmd+=QString().sprintf(" %u",cards.at(i));
} }
if((udp_port<0)||(udp_port>0xFFFF)) { if((udp_port<0)||(udp_port>0xFFFF)) {
cae_server->sendCommand(id,cmd+"-!"); cae_server->sendCommand(id,cmd+" -!");
return; return;
} }
cae_server->setMeterPort(id,udp_port); cae_server->setMeterPort(id,udp_port);
for(int i=0;i<cards.size();i++) { for(int i=0;i<cards.size();i++) {
if((cards.at(i)<0)||(cards.at(i)>=RD_MAX_CARDS)) { if((cards.at(i)<0)||(cards.at(i)>=RD_MAX_CARDS)) {
cae_server->sendCommand(id,cmd+"-!"); cae_server->sendCommand(id,cmd+" -!");
return; return;
} }
cae_server->setMetersEnabled(id,cards.at(i),true); cae_server->setMetersEnabled(id,cards.at(i),true);
} }
cae_server->sendCommand(id,cmd+"+!"); cae_server->sendCommand(id,cmd+" +!");
SendMeterOutputStatusUpdate(); SendMeterOutputStatusUpdate();
} }

View File

@ -27,6 +27,11 @@
#include "cae_server.h" #include "cae_server.h"
//
// Uncomment this to send all protocol messages to syslog (DEBUG priority)
//
// #define __CAE_SERVER_LOG_PROTOCOL_MESSAGES
CaeServerConnection::CaeServerConnection(QTcpSocket *sock) CaeServerConnection::CaeServerConnection(QTcpSocket *sock)
{ {
socket=sock; socket=sock;
@ -133,7 +138,9 @@ void CaeServer::sendCommand(const QString &cmd)
void CaeServer::sendCommand(int id,const QString &cmd) void CaeServer::sendCommand(int id,const QString &cmd)
{ {
// syslog(LOG_DEBUG,"sending [%d]: %s",id,(const char *)cmd.toUtf8()); #ifdef __CAE_SERVER_LOG_PROTOCOL_MESSAGES
syslog(LOG_DEBUG,"send[%d]: %s",id,(const char *)cmd.toUtf8());
#endif // __CAE_SERVER_LOG_PROTOCOL_MESSAGES
cae_connections.value(id)->socket->write(cmd.toAscii()); cae_connections.value(id)->socket->write(cmd.toAscii());
} }
@ -161,8 +168,9 @@ void CaeServer::readyReadData(int id)
char c=0xFF&data[i]; char c=0xFF&data[i];
switch(c) { switch(c) {
case '!': case '!':
ProcessCommand(id,cae_connections.value(id)->accum); if(ProcessCommand(id,cae_connections.value(id)->accum)) {
cae_connections.value(id)->accum=""; return;
}
break; break;
case 10: case 10:
@ -188,13 +196,19 @@ void CaeServer::connectionClosedData(int id)
} }
void CaeServer::ProcessCommand(int id,const QString &cmd) bool CaeServer::ProcessCommand(int id,const QString &cmd)
{ {
CaeServerConnection *conn=cae_connections.value(id); CaeServerConnection *conn=cae_connections.value(id);
QStringList f0=cmd.split(" ",QString::SkipEmptyParts);
bool ok=false; bool ok=false;
QStringList f0=cmd.split(" ",QString::SkipEmptyParts);
if(f0.size()==0) {
return false;
}
#ifdef __CAE_SERVER_LOG_PROTOCOL_MESSAGES
syslog(LOG_DEBUG,"recv[%d]: %s",id,(const char *)cmd.toUtf8());
#endif // __CAE_SERVER_LOG_PROTOCOL_MESSAGES
// syslog(LOG_DEBUG,"receiving [%d]: %s",id,(const char *)cmd.toUtf8());
cae_connections.value(id)->accum=""; cae_connections.value(id)->accum="";
// //
@ -202,7 +216,7 @@ void CaeServer::ProcessCommand(int id,const QString &cmd)
// //
if(f0.at(0)=="DC") { if(f0.at(0)=="DC") {
connectionClosedData(id); connectionClosedData(id);
return; return true;
} }
if(f0.at(0)=="PW") { if(f0.at(0)=="PW") {
@ -214,7 +228,7 @@ void CaeServer::ProcessCommand(int id,const QString &cmd)
conn->authenticated=false; conn->authenticated=false;
sendCommand(id,"PW -!"); sendCommand(id,"PW -!");
} }
return; return false;
} }
// //
@ -222,7 +236,7 @@ void CaeServer::ProcessCommand(int id,const QString &cmd)
// Authentication required to execute these! // Authentication required to execute these!
// //
if(!conn->authenticated) { if(!conn->authenticated) {
return; return false;
} }
bool was_processed=false; bool was_processed=false;
@ -547,4 +561,6 @@ void CaeServer::ProcessCommand(int id,const QString &cmd)
if(!was_processed) { // Send generic error response if(!was_processed) { // Send generic error response
sendCommand(id,f0.join(" ")+"-!"); sendCommand(id,f0.join(" ")+"-!");
} }
return false;
} }

View File

@ -107,7 +107,7 @@ class CaeServer : public QObject
void connectionClosedData(int id); void connectionClosedData(int id);
private: private:
void ProcessCommand(int id,const QString &cmd); bool ProcessCommand(int id,const QString &cmd);
QMap<int,CaeServerConnection *> cae_connections; QMap<int,CaeServerConnection *> cae_connections;
QTcpServer *cae_server; QTcpServer *cae_server;
QSignalMapper *cae_ready_read_mapper; QSignalMapper *cae_ready_read_mapper;