Ticket #5561: dvb_snr_through_proto.diff
File dvb_snr_through_proto.diff, 5.1 KB (added by , 16 years ago) |
---|
-
mythtv/libs/libmythtv/libmythtv.pro
140 140 HEADERS += channeleditor.h channelsettings.h 141 141 HEADERS += previewgenerator.h transporteditor.h 142 142 HEADERS += importicons.h 143 HEADERS += dvbsignalmeter.h 143 144 144 145 SOURCES += programinfo.cpp proglist.cpp 145 146 SOURCES += RingBuffer.cpp avfringbuffer.cpp … … 162 163 SOURCES += channeleditor.cpp channelsettings.cpp 163 164 SOURCES += previewgenerator.cpp transporteditor.cpp 164 165 SOURCES += importicons.cpp 166 SOURCES += dvbsignalmeter.cpp 165 167 166 168 # DiSEqC 167 169 HEADERS += diseqc.h diseqcsettings.h -
mythtv/libs/libmythtv/dvbsignalmeter.cpp
1 // -*- Mode: c++ -*- 2 3 // C includes 4 #include <cstdio> 5 #include <pthread.h> 6 #include <unistd.h> 7 8 9 // MythTV includes - General 10 #include "mythcontext.h" 11 #include "cardutil.h" 12 13 #include "dvbchannel.h" 14 #include "channel.h" 15 #include "compat.h" 16 17 #include "dvbsignalmeter.h" 18 19 20 int getDVBSignalMeterValues(uint cardid, uint &sig, uint &snr) 21 { 22 QString device = CardUtil::GetVideoDevice(cardid); 23 if (device.isEmpty()) 24 { 25 VERBOSE(VB_IMPORTANT, QString("No Device for cardid=%1").arg(cardid)); 26 return 0; 27 } 28 29 QString card_type = CardUtil::GetRawCardType(cardid); 30 31 DVBChannel *channel; 32 33 if ("DVB" == card_type) 34 { 35 channel = new DVBChannel(device.toInt()); 36 } 37 else 38 { 39 VERBOSE(VB_IMPORTANT, QString("Not a DVB card; cardid=%1").arg(cardid)); 40 return 0; 41 } 42 43 44 // explicitly set the cardid 45 channel->SetCardID(cardid); 46 47 // If the backend is running this may fail... 48 if (!channel->Open()) 49 { 50 VERBOSE(VB_IMPORTANT, QString("DVB Channel could not be opened; cardid=%1").arg(cardid)); 51 return 0; 52 } 53 54 // Get info from card 55 sig = (uint) (channel->GetSignalStrength() * 65535); 56 snr = (uint) (channel->GetSNR() * 65535); 57 58 VERBOSE(VB_IMPORTANT,QString("DVBSignalMeter: sig=%1 snr=%2").arg(sig).arg(snr)); 59 60 61 channel->Close(); 62 delete channel; 63 64 return 1; 65 } 66 -
mythtv/libs/libmythtv/dvbsignalmeter.h
1 int getDVBSignalMeterValues(uint cardid, uint &sig, uint &snr); -
mythtv/programs/mythbackend/mainserver.h
133 133 void HandleQueryMemStats(PlaybackSock *pbs); 134 134 void HandleBlockShutdown(bool blockShutdown, PlaybackSock *pbs); 135 135 136 void HandleDVBSignalQuery(QStringList &tokens, PlaybackSock *pbs); 137 138 136 139 void SendResponse(MythSocket *pbs, QStringList &commands); 137 140 138 141 void getGuideDataThrough(QDateTime &GuideDataThrough); -
mythtv/programs/mythbackend/mainserver.cpp
41 41 #include "libmyth/mythcontext.h" 42 42 #include "libmyth/util.h" 43 43 #include "libmyth/mythdbcon.h" 44 #include "libmythtv/dvbsignalmeter.h" 44 45 45 46 #include "mainserver.h" 46 47 #include "scheduler.h" … … 52 53 #include "storagegroup.h" 53 54 #include "compat.h" 54 55 56 57 55 58 /** Milliseconds to wait for an existing thread from 56 59 * process request thread pool. 57 60 */ … … 561 564 else 562 565 HandleSettingQuery(tokens, pbs); 563 566 } 567 else if (command == "QUERY_DVBSIGNAL") 568 { 569 if (tokens.size() != 2) 570 VERBOSE(VB_IMPORTANT, "Bad QUERY_DVBSIGNAL"); 571 else 572 HandleDVBSignalQuery(tokens, pbs); 573 } 564 574 else if (command == "SET_SETTING") 565 575 { 566 576 if (tokens.size() != 4) … … 3523 3533 return; 3524 3534 } 3525 3535 3536 void MainServer::HandleDVBSignalQuery(QStringList &tokens, PlaybackSock *pbs) 3537 { 3538 // Format: HandleDVBSignalQuery <cardid> 3539 // Returns ok/fail signal strength , SNR string 3540 3541 MythSocket *pbssock = NULL; 3542 if (pbs) 3543 pbssock = pbs->getSocket(); 3544 3545 QString cardidstr = tokens[1]; 3546 3547 QStringList retlist; 3548 3549 uint cardid = (uint) cardidstr.toInt(); 3550 uint sig = 0, snr = 0; 3551 int ret = getDVBSignalMeterValues( cardid, sig, snr ); 3552 3553 if(ret == 1) 3554 retlist << "ok"; 3555 else 3556 retlist << "fail"; 3557 3558 retlist << QString("%1").arg(sig); 3559 retlist << QString("%1").arg(snr); 3560 3561 if (pbssock) 3562 SendResponse(pbssock, retlist); 3563 3564 return; 3565 } 3566 3567 3526 3568 void MainServer::HandleSetSetting(QStringList &tokens, 3527 3569 PlaybackSock *pbs) 3528 3570 {