void PlaySoundEffect (SOUND S, COUNT Channel, SoundPosition Pos, void *PositionalObject, BYTE Priority) { if (!(GLOBAL (glob_flags) & SOUND_DISABLED)) { SetChannelVolume (Channel, MAX_VOLUME >> 1, Priority); SetChannelRate (Channel, GetSampleRate (S), Priority); PlayChannel (Channel, GetSampleAddress (S), Pos, PositionalObject, Priority); }
void ZephyrXtreme::ProcessStatus(const QString &str) { QStringList f0=str.split(":"); QString rhs; bool ok=false; int rate=0; // printf("ProcessStatus: %s\n",(const char *)str.toAscii()); if(str.left(16).toLower()==">>calling number") { QStringList f1=str.right(str.length()-17).split(" "); if(f1.size()>=4) { int line=f1[3].toInt(&ok)-1; if(ok&&(line<2)) { zep_dialed_string[line]=f1[0].trimmed(); emit dialedStringChanged(line,zep_dialed_string[line]); } else { syslog(LOG_WARNING,"zephyr xtreme: unrecognized string \"%s\"", (const char *)str.toAscii()); } } } if(f0.size()>=2) { for(int i=1;i<f0.size();i++) { rhs+=(f0[i]+":"); } rhs=rhs.left(rhs.size()-1).trimmed(); if(f0[0].toLower()=="lines status 1 & 2............") { QStringList f1=rhs.split(" ",QString::SkipEmptyParts); if(f1.size()==2) { for(int i=0;i<2;i++) { if(f1[i].toLower().left(4)=="conn") { SetState(i,LPSwitcher::StateConnected); if(!zep_pending_string[i].isEmpty()) { zep_dialed_string[i]=zep_pending_string[i]; zep_pending_string[i]=""; emit dialedStringChanged(i,zep_dialed_string[i]); } } else { if(f1[i].toLower().left(4)=="disc") { SetState(i,LPSwitcher::StateDisconnecting); } else { if(f1[i].toLower()=="ready") { SetState(i,LPSwitcher::StateIdle); } else { SetState(i,LPSwitcher::StateOffline); } zep_dialed_string[i]=""; emit dialedStringChanged(i,""); } } } } } if(f0[0].toLower()=="decoder status................") { bool locked=f0[1].trimmed().toLower()=="locked"; if(locked!=zep_locked) { zep_locked=locked; emit lockChanged(0,locked); printf("lockChanged(0,%d)\n",locked); emit lockChanged(1,locked); printf("lockChanged(1,%d)\n",locked); } } if(f0[0].toLower()=="transmitter mode..............") { if(rhs.toLower()=="l3 dual/mono") { SetXmtAlgorithm(LPSwitcher::XmtMpegL3DualMono); } if(rhs.toLower()=="l3 stereo") { SetXmtAlgorithm(LPSwitcher::XmtMpegL3Stereo); } if(rhs.toLower()=="l3 j-stereo") { SetXmtAlgorithm(LPSwitcher::XmtMpegL3JointStereo); } if(rhs.toLower()=="l3 mono 128") { SetXmtAlgorithm(LPSwitcher::XmtMpegL3Mono128); } if(rhs.toLower()=="g.722") { SetXmtAlgorithm(LPSwitcher::XmtG722); } if(rhs.toLower()=="l2 mono 64") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2Mono64); } if(rhs.toLower()=="l2 mono 128") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2Mono128); } if(rhs.toLower()=="l2 j-stereo") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2JointStereo); } if(rhs.toLower()=="l2 stereo") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2Stereo); } if(rhs.toLower()=="l2 half 64") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2Half64); } if(rhs.toLower()=="aac-ld mono 64") { SetXmtAlgorithm(LPSwitcher::XmtAacLdMono64); } if(rhs.toLower()=="aac-ld stereo") { SetXmtAlgorithm(LPSwitcher::XmtAacLdStereo); } if(rhs.toLower()=="aac-ld j-stereo") { SetXmtAlgorithm(LPSwitcher::XmtAacLdJointStereo); } if(rhs.toLower()=="aac j-stereo 64") { SetXmtAlgorithm(LPSwitcher::XmtAacLdJointStereo64); } if(rhs.toLower()=="aac-ld mono 128") { SetXmtAlgorithm(LPSwitcher::XmtAacLdMono128); } if(rhs.toLower()=="aac-ld mono 64") { SetXmtAlgorithm(LPSwitcher::XmtAacLdMono64); } if(rhs.toLower()=="aac j-stereo 64") { SetXmtAlgorithm(LPSwitcher::XmtAacJointStereo64); } if(rhs.toLower()=="aac stereo") { SetXmtAlgorithm(LPSwitcher::XmtAacStereo); } if(rhs.toLower()=="aac j-stereo") { SetXmtAlgorithm(LPSwitcher::XmtAacJointStereo); } if(rhs.toLower()=="aac mono 128") { SetXmtAlgorithm(LPSwitcher::XmtAacMono128); } if(rhs.toLower()=="aac mono 64") { SetXmtAlgorithm(LPSwitcher::XmtAacMono64); } } if(f0[0].toLower()=="receiver mode.................") { if(rhs.toLower()=="l3 dual/mono") { SetRcvAlgorithm(LPSwitcher::RcvMpegL3Mono); } if(rhs.toLower()=="l3") { SetRcvAlgorithm(LPSwitcher::RcvMpegL3); } if(rhs.toLower()=="g.722") { SetRcvAlgorithm(LPSwitcher::RcvG722); } if(rhs.toLower()=="l2") { SetRcvAlgorithm(LPSwitcher::RcvMpegL2); } if(rhs.toLower()=="l2 mono 64") { SetRcvAlgorithm(LPSwitcher::RcvMpegL2Mono64); } if(rhs.toLower()=="aac-ld") { SetRcvAlgorithm(LPSwitcher::RcvAacLd); } if(rhs.toLower()=="aac-ld mono 64") { SetRcvAlgorithm(LPSwitcher::RcvAacLdMono64); } if(rhs.toLower()=="aac") { SetRcvAlgorithm(LPSwitcher::RcvAac); } if(rhs.toLower()=="aac 64") { SetRcvAlgorithm(LPSwitcher::RcvAac64); } if(rhs.toLower()=="auto") { SetRcvAlgorithm(LPSwitcher::RcvAuto); } } if(f0[0].toLower()=="rates.........................") { rate=rhs.toInt(&ok); if(ok) { SetSampleRate(rate); } } if(f0[0].toLower()=="bit rates.....................") { QStringList f1=rhs.split(" "); rate=f1[0].toInt(&ok); if(ok) { switch(rate) { case 56: SetChannelRate(LPSwitcher::Channel56Kbit); break; case 64: SetChannelRate(LPSwitcher::Channel64Kbit); break; } } } } }
void ZephyrClassic::ProcessStatus(const QString &str) { QStringList f0=str.split(":"); QString rhs; bool ok=false; //printf("ProcessStatus: %s\n",(const char *)str.toAscii()); if(str.left(16).toLower()==">>calling number") { QStringList f1=str.right(str.length()-17).split(" "); if(f1.size()>=4) { int line=f1[3].toInt(&ok)-1; if(ok&&(line<2)) { zep_dialed_string[line]=f1[0].trimmed(); emit dialedStringChanged(line,zep_dialed_string[line]); } else { syslog(LOG_WARNING,"zephyr classic: unrecognized string \"%s\"", (const char *)str.toAscii()); } } } if(f0.size()>=2) { for(int i=1;i<f0.size();i++) { rhs+=(f0[i]+":"); } rhs=rhs.left(rhs.size()-1).trimmed(); if(f0[0].toLower()=="line status 1 & 2..") { QStringList f1=rhs.split(" ",QString::SkipEmptyParts); if(f1.size()==2) { for(int i=0;i<2;i++) { if(f1[i].contains(":")) { SetState(i,LPSwitcher::StateConnected); if(!zep_pending_string[i].isEmpty()) { zep_dialed_string[i]=zep_pending_string[i]; zep_pending_string[i]=""; emit dialedStringChanged(i,zep_dialed_string[i]); } } else { if(f1[i].toLower().left(4)=="conn") { SetState(i,LPSwitcher::StateProgressing); } else { if(f1[i].toLower().left(4)=="disc") { SetState(i,LPSwitcher::StateDisconnecting); } else { if(f1[i].toLower()=="ready") { SetState(i,LPSwitcher::StateIdle); } else { SetState(i,LPSwitcher::StateOffline); } zep_dialed_string[i]=""; emit dialedStringChanged(i,""); } } } } } } if(f0[0].toLower()=="decoder status.....") { bool locked=f0[1].trimmed().toLower()=="locked"; if(locked!=zep_locked) { zep_locked=locked; emit lockChanged(0,locked); emit lockChanged(1,locked); } } if(f0[0].toLower()=="transmitter mode...") { if(rhs.toLower()=="l3-dual") { SetXmtAlgorithm(LPSwitcher::XmtMpegL3DualMono); } if(rhs.toLower()=="l3-stereo") { SetXmtAlgorithm(LPSwitcher::XmtMpegL3Stereo); } if(rhs.toLower()=="l3-jstereo") { SetXmtAlgorithm(LPSwitcher::XmtMpegL3JointStereo); } if(rhs.toLower()=="g.722") { SetXmtAlgorithm(LPSwitcher::XmtG722); } if(rhs.toLower()=="l2-mono") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2Mono64); } if(rhs.toLower()=="l2-mono128") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2Mono128); } if(rhs.toLower()=="l2-jstereo") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2JointStereo); } if(rhs.toLower()=="l2-stereo") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2Stereo); } if(rhs.toLower()=="l2-half/24") { SetXmtAlgorithm(LPSwitcher::XmtMpegL2Half64); } } if(f0[0].toLower()=="receiver mode......") { if(rhs.toLower()=="l3-mono") { SetRcvAlgorithm(LPSwitcher::RcvMpegL3Mono); } if(rhs.toLower()=="l3-stereo") { SetRcvAlgorithm(LPSwitcher::RcvMpegL3); } if(rhs.toLower()=="g.722") { SetRcvAlgorithm(LPSwitcher::RcvG722); } if(rhs.toLower()=="l2-half/24") { SetRcvAlgorithm(LPSwitcher::RcvMpegL2Half64); } if(rhs.toLower()=="l2") { SetRcvAlgorithm(LPSwitcher::RcvMpegL2); } } if(f0[0].toLower()=="rates..............") { QStringList f1=rhs.split("/"); if(f1.size()==2) { if(f1[0].toLower()=="56kbps") { SetChannelRate(LPSwitcher::Channel56Kbit); } if(f1[0].toLower()=="64kbps") { SetChannelRate(LPSwitcher::Channel64Kbit); } if(f1[1].toLower()=="32khz") { SetSampleRate(32000); } if(f1[1].toLower()=="48khz") { SetSampleRate(48000); } } } } }