bool LMPSystemTrayIcon::event (QEvent *event) { if (event->type () == QEvent::Wheel) { QWheelEvent *wheel = static_cast<QWheelEvent*> (event); emit changedVolume (wheel->delta ()); return true; } else if (event->type () == QEvent::ToolTip) { QHelpEvent *help = static_cast<QHelpEvent*> (event); QString text; if (PlayerTab_ && !CurrentSong_.Title_.isEmpty ()) { const QString& trackText = tr ("%1 (%2)") .arg ("<b>" + CurrentSong_.Title_ + "</b>") .arg ("<b>" + QTime ().addSecs (CurrentSong_.Length_).toString ("mm:ss") + "</b>"); auto ao = PlayerTab_->GetPlayer ()->GetAudioOutput (); int vol = 0; if (ao) { qreal volume = ao->volume (); vol = volume * 100; } const QString& volumeText = tr ("Volume: %1%") .arg (vol); text = QString ("<table border='0'>" "<tr><td align='center' valign='top' rowspan='5'><img src='%1' width='%2' height='%3'></td></tr>" "<tr><td><p style='white-space:pre;'>%4</p></td></tr>" "<tr><td><p style='white-space:pre;'>%5</p></td></tr>" "<tr><td><p style='white-space:pre;'>%6</p></td></tr>" "<tr><td><p style='white-space:pre;'>%7</p></td></tr>" "</table>") .arg (CurrentAlbumArt_) .arg (130) .arg (130) .arg (trackText) .arg ("<b>" + CurrentSong_.Album_ + "</b>") .arg ("<b>" + CurrentSong_.Artist_ + "</b>") .arg ("<em>" + volumeText + "</em>"); } else if (CurrentSong_.Title_.isEmpty ()) text = QString ("<table border='0'><tr>" "<td align='center' valign='middle'><img src='%1' width='%2' height='%3'></td>" "<td align='center' valign='middle'><b>%4</b><br>%5</td>" "</tr></table>") .arg ("lcicons:/lmp/resources/images/lmp.svg") .arg (48) .arg (48) .arg ("LMP") .arg (tr ("No track playing")); QToolTip::showText (help->globalPos (), text); return true; } return QSystemTrayIcon::event (event); }
void CatManager::PerformCmd(QString str) { short cmd = GetNameCmd(str); QString tmpstr1, tmpstr2, tmpFreq, tmpStep, tmpMod; int Freq, Tmp; QString SendStr; QByteArray Data; switch(cmd) { case 0x4741: if(str.size() == 3) { if(str.right(1).toInt() == 0) { Tmp = (pSdr->ui.slVol->value()*255)/100; tmpstr1.setNum((pSdr->ui.slVol->value()*255)/100); if(Tmp < 10) SendStr = "AG000" + tmpstr1 + ";"; else if(Tmp < 100) SendStr = "AG00" + tmpstr1 + ";"; else SendStr = "AG0" + tmpstr1 + ";"; Data = SendStr.toLatin1(); pCom->write(Data); } } else if(str.size() == 6) { emit changedVolume(str.right(3).toInt()); pSdr->ui.slVol->setValue((str.right(3).toInt()*100)/255); pSdr->OnVolume((str.right(3).toInt()*100)/255); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4941: SentErrorCode(ERROR_CMD); break; case 0x4442: if(str.size() == 2) { emit changedBand(-1); Tmp = pSdr->pBandBut->checkedId(); if(--Tmp < 0) Tmp = 13; pSdr->OnChangeBand(Tmp); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x5542: if(str.size() == 2) { emit changedBand(1); Tmp = pSdr->pBandBut->checkedId(); if(++Tmp > 13) Tmp = 0; pSdr->OnChangeBand(Tmp); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4E44: if(str.size() == 2) { emit changedIncrDecrVFO_A(-1); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4146: case 0x5246: case 0x5446: if(str.size() == 2) { Freq = pSdr->FreqNum + pSdr->pGraph->pGl->GetPitch(); tmpstr1.setNum(Freq); if(Freq < 10) tmpFreq = "0000000000" + tmpstr1; else if(Freq < 100) tmpFreq = "000000000" + tmpstr1; else if(Freq < 1000) tmpFreq = "00000000" + tmpstr1; else if(Freq < 10000) tmpFreq = "0000000" + tmpstr1; else if(Freq < 100000) tmpFreq = "000000" + tmpstr1; else if(Freq < 1000000) tmpFreq = "00000" + tmpstr1; else if(Freq < 10000000) tmpFreq = "0000" + tmpstr1; else if(Freq < 100000000) tmpFreq = "000" + tmpstr1; else if(Freq < 1000000000) tmpFreq = "00" + tmpstr1; if(cmd == 0x4146) { SendStr = "FA" + tmpFreq + ";"; } else if(cmd == 0x5246) { SendStr = "FR" + tmpFreq + ";"; } else if(cmd == 0x5446) { if(pSdr->ui.pbSplit->isChecked()) { SendStr = "FT" + tmpFreq + ";"; } else { Freq = pSdr->pVfoB->value() + pSdr->pGraph->pGl->GetPitch(); tmpstr1.setNum(Freq); SendStr = "FT" + tmpFreq + ";"; } } Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 13) { emit changedVFO_A(str.right(11).toInt() - pSdr->pGraph->pGl->GetPitch()); pSdr->OnChangeMainFreqWithWdgMem(str.right(11).toInt() - pSdr->pGraph->pGl->GetPitch(), pSdr->MainMod()); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4246: if(str.size() == 2) { Freq = pSdr->pVfoB->value() + pSdr->pGraph->pGl->GetPitch();//FreqNum; tmpstr1.setNum(Freq); if(Freq < 10) tmpFreq = "0000000000" + tmpstr1; else if(Freq < 100) tmpFreq = "000000000" + tmpstr1; else if(Freq < 1000) tmpFreq = "00000000" + tmpstr1; else if(Freq < 10000) tmpFreq = "0000000" + tmpstr1; else if(Freq < 100000) tmpFreq = "000000" + tmpstr1; else if(Freq < 1000000) tmpFreq = "00000" + tmpstr1; else if(Freq < 10000000) tmpFreq = "0000" + tmpstr1; else if(Freq < 100000000) tmpFreq = "000" + tmpstr1; else if(Freq < 1000000000) tmpFreq = "00" + tmpstr1; SendStr = "FB" + tmpFreq + ";"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 13) { emit changedVFO_B(str.right(11).toInt() - pSdr->pGraph->pGl->GetPitch()); pSdr->pVfoB->setValue(str.right(11).toInt() - pSdr->pGraph->pGl->GetPitch()); } else { SentErrorCode(ERROR_PARAM); } break; case 0x5746: SentErrorCode(ERROR_CMD); break; case 0x5447: if(str.size() == 2) { Tmp = pSdr->MainAGC(); tmpstr1.setNum(Tmp); SendStr = "GT00" + tmpstr1 + ";"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 5) { Tmp = str.right(3).toInt(); if(Tmp >= 0 && Tmp < 6) { emit changedAGC(str.right(3).toInt()); pSdr->OnAgc(Tmp); } else { SentErrorCode(ERROR_PARAM); } } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4449: if(str.size() == 2) { SendStr = "ID019;"; Data = SendStr.toLatin1(); pCom->write(Data); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4649: if(str.size() != 2) { SentErrorCode(ERROR_CMD); return; } tmpMod = ModToCat[pSdr->MainMod()]; if(tmpMod == "0") { SentErrorCode(ERROR_PARAM); return; } Freq = pSdr->FreqNum + pSdr->pGraph->pGl->GetPitch(); tmpstr1.setNum(Freq); if(Freq < 10) tmpFreq = "0000000000" + tmpstr1; else if(Freq < 100) tmpFreq = "000000000" + tmpstr1; else if(Freq < 1000) tmpFreq = "00000000" + tmpstr1; else if(Freq < 10000) tmpFreq = "0000000" + tmpstr1; else if(Freq < 100000) tmpFreq = "000000" + tmpstr1; else if(Freq < 1000000) tmpFreq = "00000" + tmpstr1; else if(Freq < 10000000) tmpFreq = "0000" + tmpstr1; else if(Freq < 100000000) tmpFreq = "000" + tmpstr1; else if(Freq < 1000000000) tmpFreq = "00" + tmpstr1; tmpStep = StepToCat[pSdr->MainStep()]; tmpstr1 = "IF" + tmpFreq + tmpStep + "000000" + "0" + "0" + "0" + "00"; tmpstr2.setNum((int)(pSdr->ui.pbMox->isChecked())); tmpstr1 += tmpstr2 + tmpMod + "0" + "0" + "0" + "0" + "00" + "0;"; Data = tmpstr1.toLatin1(); pCom->write(Data); break; case 0x534B: if(str.size() == 2) { SendStr = "KS000;"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 5) { emit changetCWLSpeed(str.right(3).toInt()); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x594B: SentErrorCode(ERROR_CMD); break; case 0x444D: if(str.size() == 2) { tmpMod = ModToCat[pSdr->MainMod()]; if(tmpMod == "0") { SentErrorCode(ERROR_PARAM); return; } SendStr = "MD" + tmpMod + ";"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 3) { emit changedMode(str.right(1).toInt()); Tmp = CatToMod[str.right(1).toInt()]; if(Tmp >= 0) pSdr->OnChangeMode(Tmp); else SentErrorCode(ERROR_PARAM); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x474D: if(str.size() == 2) { Tmp = pSdr->ui.slMic->value(); if(Tmp < 10) { tmpstr1.setNum(Tmp); SendStr = "MG00" + tmpstr1 + ";"; } else if(Tmp < 100) { tmpstr1.setNum(Tmp); SendStr = "MG0" + tmpstr1 + ";"; } else { tmpstr1.setNum(Tmp); SendStr = "MG" + tmpstr1 + ";"; } Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 5) { emit changedGainMicrophone(str.right(3).toInt()); Tmp = str.right(3).toInt(); pSdr->OnMic(Tmp); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4F4D: SentErrorCode(ERROR_CMD); break; case 0x424E: if(str.size() == 2) { if(pSdr->ui.pbNb->isChecked()) SendStr = "NB0;"; else SendStr = "NB1;"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 3) { if(str.right(1).toInt() != 0) pSdr->OnNb(false); else pSdr->OnNb(true); emit changedNB((bool)str.right(1).toInt()); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x544E: if(str.size() == 2) { if(pSdr->ui.pbAnf->isChecked()) SendStr = "NT0;"; else SendStr = "NT1;"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 3) { if(str.right(1).toInt() != 0) pSdr->OnAnf(false); else pSdr->OnAnf(true); emit changedANF((bool)str.right(1).toInt()); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4350: if(str.size() == 2) { Tmp = pSdr->ui.slDrive->value(); tmpstr1.setNum(Tmp); if(Tmp < 10) SendStr = "PC00" + tmpstr1 + ";"; else if(Tmp < 100) SendStr = "PC0" + tmpstr1 + ";"; else SendStr = "PC" + tmpstr1 + ";"; SendStr = "PC" + tmpstr1 + ";"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 5) { Tmp = str.right(3).toInt(); if(Tmp >= 0 && Tmp <= 100) { pSdr->OnDrive(Tmp); emit changedPWR(str.right(3).toInt()); } else SentErrorCode(ERROR_PARAM); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x5250: if(str.size() == 2) { if(pSdr->ui.pbComp->isChecked()) SendStr = "PR0;"; else SendStr = "PR1;"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 3) { if(str.right(1).toInt() != 0) pSdr->OnComp(false); else pSdr->OnComp(true); emit changedCOMP((bool)str.right(1).toInt()); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x5350: if(str.size() == 2) { if(pSdr->ui.pbStart->isChecked()) SendStr = "PS1;"; else SendStr = "PS0;"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 3) { if(str.right(1).toInt() != 0) pSdr->OnStart(true); else pSdr->OnStart(false); emit changedOnOff((bool)str.right(1).toInt()); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4352: if(str.size() == 2) { } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x5452: if(str.size() == 2) { SendStr = "RT0;"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 3) { emit changedOnOff((bool)str.right(1).toInt()); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x5852: if(str.size() == 2) { emit rxMode(); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x4853: SentErrorCode(ERROR_CMD); break; case 0x4C53: SentErrorCode(ERROR_CMD); break; case 0x4D53: if(str.size() == 3) { Tmp = pSdr->MainSmeter(); Tmp += 73; Tmp /= 4.0; Tmp += 15; if(Tmp < 0) Tmp = 0; else if(Tmp > 30) Tmp = 30; tmpstr1.setNum(Tmp); if(Tmp < 10) SendStr = "SM0000" + tmpstr1 + ";"; else SendStr = "SM000" + tmpstr1 + ";"; Data = SendStr.toLatin1(); pCom->write(Data); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x5153: if(str.size() == 3) { Tmp = pSdr->ui.slSql->value(); Tmp *= -255.0/160.0; tmpstr1.setNum(Tmp); if(Tmp < 10) SendStr = "SQ000" + tmpstr1 + ";"; else if(Tmp < 100) SendStr = "SQ00" + tmpstr1 + ";"; else SendStr = "SQ0" + tmpstr1 + ";"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 6) { Tmp = str.right(3).toInt(); Tmp *= -160.0/255.0; pSdr->OnSql(Tmp); emit changedSQLval(Tmp); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x5854: if((str.size() == 2) || (str.size() == 3)) { emit txMode(); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x5055: if(str.size() == 2) { emit changedIncrDecrVFO_A(1); } else { SentErrorCode(ERROR_PARAM); break; } break; case 0x5458: if(str.size() == 2) { SendStr = "XT0;"; Data = SendStr.toLatin1(); pCom->write(Data); } else if(str.size() == 3) { emit changedXIT((bool)str.right(1).toInt()); } else { SentErrorCode(ERROR_PARAM); break; } break; default: SentErrorCode(ERROR_CMD); break; } }