Ticket #5745: lcd-icon-support.patch
File lcd-icon-support.patch, 22.6 KB (added by , 15 years ago) |
---|
-
mythplugins/mythmusic/mythmusic/main.cpp
--- mythplugins/mythgallery/mythgallery/imageview.cpp | 2 mythplugins/mythmusic/mythmusic/main.cpp | 11 mythplugins/mythvideo/mythvideo/main.cpp | 1 mythplugins/mythvideo/mythvideo/playercommand.cpp | 9 mythplugins/mythweather/mythweather/main.cpp | 4 mythtv/libs/libmyth/audiooutputbase.cpp | 6 mythtv/libs/libmythdb/lcddevice.cpp | 360 ++++++++++++++++++++++ mythtv/libs/libmythdb/lcddevice.h | 85 +++++ mythtv/libs/libmythdb/libmythdb.pro | 2 mythtv/libs/libmythtv/avformatdecoder.cpp | 56 +++ mythtv/libs/libmythtv/tv_play.cpp | 11 11 files changed, 545 insertions(+), 2 deletions(-)
21 21 #include <mythtv/compat.h> 22 22 #include <mythtv/libmythui/mythuihelper.h> 23 23 #include <mythtv/libmythui/mythprogressdialog.h> 24 #include <mythtv/lcddevice.h> 24 25 25 26 // MythMusic headers 26 27 #include "decoder.h" … … static void preMusic() 527 528 gMusicData->startdir = startdir; 528 529 gMusicData->all_playlists = all_playlists; 529 530 gMusicData->all_music = all_music; 531 532 if (LCD *lcd = LCD::Get()) 533 { 534 lcd->setFunctionLEDs(FUNC_MUSIC, true); 535 } 530 536 } 531 537 532 538 static void postMusic() … … static void postMusic() 548 554 gMusicData->all_music = NULL; 549 555 delete gMusicData->all_playlists; 550 556 gMusicData->all_playlists = NULL; 557 558 if (LCD *lcd = LCD::Get()) 559 { 560 lcd->setFunctionLEDs(FUNC_MUSIC, false); 561 } 551 562 } 552 563 553 564 int mythplugin_run(void) -
mythplugins/mythgallery/mythgallery/imageview.cpp
void ImageView::UpdateLCD(const ThumbItem *item) 152 152 153 153 if (!item) 154 154 { 155 lcd->setFunctionLEDs(FUNC_PHOTO, false); 155 156 lcd->switchToTime(); 156 157 return; 157 158 } 159 lcd->setFunctionLEDs(FUNC_PHOTO, true); 158 160 159 161 QString name = item->GetName(); 160 162 QString desc = QString::number(m_pos + 1) + " / " + -
mythplugins/mythweather/mythweather/main.cpp
int mythplugin_config() 142 142 menu->setKillable(); 143 143 if (menu->foundTheme()) 144 144 { 145 if (LCD *lcd = LCD::Get()) 145 if (LCD *lcd = LCD::Get()) { 146 lcd->setFunctionLEDs(FUNC_NEWS, false); 146 147 lcd->switchToTime(); 148 } 147 149 148 150 GetMythMainWindow()->GetMainStack()->AddScreen(menu); 149 151 return 0; -
mythplugins/mythvideo/mythvideo/main.cpp
namespace 517 517 { 518 518 if (LCD *lcd = LCD::Get()) 519 519 { 520 lcd->setFunctionLEDs(FUNC_MOVIE, false); 520 521 lcd->switchToTime(); 521 522 } 522 523 GetMythMainWindow()->GetMainStack()->AddScreen(diag); -
mythplugins/mythvideo/mythvideo/playercommand.cpp
5 5 #include <mythtv/libmythui/mythmainwindow.h> 6 6 #include <mythtv/libmythui/mythsystem.h> 7 7 #include <mythtv/libmyth/remoteutil.h> 8 #include <mythtv/lcddevice.h> 8 9 9 10 #include "dbaccess.h" 10 11 #include "metadata.h" … … VideoPlayerCommand &VideoPlayerCommand::operator=( 391 392 392 393 void VideoPlayerCommand::Play() const 393 394 { 395 class LCD *lcd = LCD::Get(); 396 397 if (lcd) { 398 lcd->setFunctionLEDs(FUNC_TV, false); 399 lcd->setFunctionLEDs(FUNC_MOVIE, true); 400 } 394 401 m_d->Play(); 395 402 gContext->GetMainWindow()->raise(); 396 403 gContext->GetMainWindow()->activateWindow(); 397 404 if (gContext->GetMainWindow()->currentWidget()) 398 405 gContext->GetMainWindow()->currentWidget()->setFocus(); 406 if (lcd) 407 lcd->setFunctionLEDs(FUNC_MOVIE, false); 399 408 } 400 409 401 410 QString VideoPlayerCommand::GetCommandDisplayName() const -
mythtv/libs/libmythtv/avformatdecoder.cpp
using namespace std; 29 29 #include "mythuihelper.h" 30 30 #include "myth_imgconvert.h" 31 31 32 #include "lcddevice.h" 33 32 34 #include "videoout_dvdv.h" // AvFormatDecoderPrivate has DVDV ptr 33 35 #include "videoout_quartz.h" // For VOQ::GetBestSupportedCodec() 34 36 … … AvFormatDecoder::~AvFormatDecoder() 519 521 520 522 if (avfRingBuffer) 521 523 delete avfRingBuffer; 524 525 if (LCD *lcd = LCD::Get()) 526 { 527 VERBOSE(VB_GENERAL, QString("LCD: Switch all codec/hdtv/spdif OFF")); 528 lcd->setAVFormatLEDs(CODEC_ID_MPEG2VIDEO, false); 529 lcd->setAVFormatLEDs(CODEC_ID_MP2, false); 530 lcd->setVariousLEDs(VARIOUS_HDTV, false); 531 lcd->setVariousLEDs(VARIOUS_SPDIF, false); 532 } 522 533 } 523 534 524 535 void AvFormatDecoder::CloseCodecs() … … void AvFormatDecoder::InitVideoCodec(AVStream *str 1290 1301 GetNVP()->SetVideoParams(width, height, fps, 1291 1302 keyframedist, aspect_ratio, kScan_Detect, 1292 1303 dvd_video_codec_changed); 1304 if (LCD *lcd = LCD::Get()) 1305 { 1306 VERBOSE(VB_GENERAL, QString("LCD: Set AVFormat to Codec %1").arg(enc->codec_id)); 1307 lcd->setAVFormatLEDs(enc->codec_id, true); 1308 if(height >= 720) 1309 lcd->setVariousLEDs(VARIOUS_HDTV, true); 1310 else 1311 lcd->setVariousLEDs(VARIOUS_HDTV, false); 1312 } 1293 1313 } 1294 1314 } 1295 1315 … … bool AvFormatDecoder::SetupAudioStream(void) 4307 4327 GetNVP()->SetAudioCodec((using_passthru) ? codec_ctx : NULL); 4308 4328 GetNVP()->ReinitAudio(); 4309 4329 4330 if (LCD *lcd = LCD::Get()) 4331 { 4332 VERBOSE(VB_GENERAL, QString("LCD: Set Audio Codec %1") 4333 .arg(codec_id_string(codec_ctx->codec_id))); 4334 lcd->setAVFormatLEDs(codec_ctx->codec_id, true); 4335 4336 VERBOSE(VB_GENERAL, QString("LCD: Set SPDIF LED %1") 4337 .arg((using_passthru) ? "on" : "off")); 4338 if (using_passthru) 4339 lcd->setVariousLEDs(VARIOUS_SPDIF, true); 4340 else 4341 lcd->setVariousLEDs(VARIOUS_SPDIF, false); 4342 4343 VERBOSE(VB_GENERAL, QString("LCD: setting speaker LEDs for %1 channels") 4344 .arg(audioIn.channels)); 4345 switch (audioIn.channels) 4346 { 4347 case 0: 4348 lcd->setSpeakerLEDs(SPEAKER_LR, false); 4349 break; 4350 case 1: 4351 case 2: 4352 lcd->setSpeakerLEDs(SPEAKER_LR, true); 4353 break; 4354 case 3: 4355 case 4: 4356 case 5: 4357 case 6: 4358 lcd->setSpeakerLEDs(SPEAKER_51, true); 4359 break; 4360 default: 4361 lcd->setSpeakerLEDs(SPEAKER_71, true); 4362 break; 4363 } 4364 4365 } 4310 4366 return true; 4311 4367 } 4312 4368 -
mythtv/libs/libmythtv/tv_play.cpp
TV::~TV(void) 1084 1084 delete lastProgram; 1085 1085 1086 1086 if (class LCD * lcd = LCD::Get()) 1087 { 1088 lcd->setFunctionLEDs(FUNC_TV, false); 1089 lcd->setFunctionLEDs(FUNC_MOVIE, false); 1087 1090 lcd->switchToTime(); 1091 } 1088 1092 1089 1093 if (ddMapLoaderRunning) 1090 1094 { … … int TV::Playback(const ProgramInfo &rcinfo) 1659 1663 1660 1664 ReturnPlayerLock(mctx); 1661 1665 1662 if (class LCD * lcd = LCD::Get()) 1666 if (class LCD * lcd = LCD::Get()) { 1663 1667 lcd->switchToChannel(rcinfo.chansign, rcinfo.title, rcinfo.subtitle); 1668 if (rcinfo.isVideo) 1669 lcd->setFunctionLEDs(FUNC_MOVIE, true); 1670 else 1671 lcd->setFunctionLEDs(FUNC_TV, true); 1672 } 1664 1673 1665 1674 return 1; 1666 1675 } -
mythtv/libs/libmyth/audiooutputbase.cpp
14 14 #include "audiooutputdigitalencoder.h" 15 15 #include "SoundTouch.h" 16 16 #include "freesurround.h" 17 #include "lcddevice.h" 17 18 18 19 #define LOC QString("AO: ") 19 20 #define LOC_ERR QString("AO, ERROR: ") … … void AudioOutputBase::KillAudio() 475 476 CloseDevice(); 476 477 477 478 killAudioLock.unlock(); 479 if (LCD *lcd = LCD::Get()) 480 { 481 lcd->setAVFormatLEDs(CODEC_ID_MP2, false); // which codec is not important, only that it was a audio codec 482 lcd->setSpeakerLEDs(SPEAKER_71, false); // should clear any and all speaker LEDs 483 } 478 484 } 479 485 480 486 void AudioOutputBase::Pause(bool paused) -
mythtv/libs/libmythdb/lcddevice.cpp
47 47 #include "mythdirs.h" 48 48 #include "mythevent.h" 49 49 50 51 // Necessary for codec icon support 52 extern "C" { 53 #include <stdint.h> 54 #include "avutil.h" 55 #include "avcodec.h" 56 } 50 57 static QString LOC = "lcddevice: "; 51 58 52 59 LCD::LCD() … … LCD::LCD() 70 77 lcd_showmusic_items(), 71 78 lcd_keystring(), 72 79 80 lcd_ledmask(0), 73 81 GetLEDMask(NULL) 74 82 { 75 83 send_buffer.clear(); last_command.clear(); … … void LCD::stopAll() 405 413 sendToServer("STOP_ALL"); 406 414 } 407 415 416 void LCD::setSpeakerLEDs(enum LCDSpeakerSet speaker, bool on) 417 { 418 if (!lcd_ready) 419 return; 420 lcd_ledmask &= ~SPEAKER_MASK; 421 if (on) 422 lcd_ledmask |= speaker; 423 sendToServer(QString("UPDATE_LEDS %1").arg(lcd_ledmask)); 424 } 425 426 void LCD::setAVFormatLEDs(int codec_id, bool on) 427 { 428 if (!lcd_ready) 429 return; 430 431 int mask = 0; 432 433 VERBOSE(VB_AUDIO, LOC + QString("LEDs AVFormat %1/%2").arg(codec_id).arg(codec_id_string((CodecID)codec_id))); 434 435 switch (codec_id) { 436 case CODEC_ID_MPEG1VIDEO: 437 case CODEC_ID_MPEG2VIDEO: /* preferred ID for MPEG-1/2 video decoding */ 438 case CODEC_ID_MPEG2VIDEO_XVMC: 439 case CODEC_ID_MPEG2VIDEO_XVMC_VLD: 440 case CODEC_ID_MPEG2VIDEO_DVDV: 441 case CODEC_ID_H261: 442 case CODEC_ID_RV10: 443 case CODEC_ID_RV20: 444 case CODEC_ID_MJPEG: 445 case CODEC_ID_MJPEGB: 446 case CODEC_ID_LJPEG: 447 case CODEC_ID_SP5X: 448 case CODEC_ID_JPEGLS: 449 case CODEC_ID_RAWVIDEO: 450 case CODEC_ID_FLV1: 451 case CODEC_ID_SVQ1: 452 case CODEC_ID_SVQ3: 453 case CODEC_ID_DVVIDEO: 454 case CODEC_ID_HUFFYUV: 455 case CODEC_ID_CYUV: 456 case CODEC_ID_H264: 457 case CODEC_ID_INDEO3: 458 case CODEC_ID_VP3: 459 case CODEC_ID_THEORA: 460 case CODEC_ID_ASV1: 461 case CODEC_ID_ASV2: 462 case CODEC_ID_FFV1: 463 case CODEC_ID_4XM: 464 case CODEC_ID_VCR1: 465 case CODEC_ID_CLJR: 466 case CODEC_ID_MDEC: 467 case CODEC_ID_ROQ: 468 case CODEC_ID_INTERPLAY_VIDEO: 469 case CODEC_ID_XAN_WC3: 470 case CODEC_ID_XAN_WC4: 471 case CODEC_ID_RPZA: 472 case CODEC_ID_CINEPAK: 473 case CODEC_ID_WS_VQA: 474 case CODEC_ID_MSRLE: 475 case CODEC_ID_MSVIDEO1: 476 case CODEC_ID_IDCIN: 477 case CODEC_ID_8BPS: 478 case CODEC_ID_SMC: 479 case CODEC_ID_FLIC: 480 case CODEC_ID_TRUEMOTION1: 481 case CODEC_ID_VMDVIDEO: 482 case CODEC_ID_MSZH: 483 case CODEC_ID_ZLIB: 484 case CODEC_ID_QTRLE: 485 case CODEC_ID_SNOW: 486 case CODEC_ID_TSCC: 487 case CODEC_ID_ULTI: 488 case CODEC_ID_QDRAW: 489 case CODEC_ID_VIXL: 490 case CODEC_ID_QPEG: 491 case CODEC_ID_PNG: 492 case CODEC_ID_PPM: 493 case CODEC_ID_PBM: 494 case CODEC_ID_PGM: 495 case CODEC_ID_PGMYUV: 496 case CODEC_ID_PAM: 497 case CODEC_ID_FFVHUFF: 498 case CODEC_ID_RV30: 499 case CODEC_ID_RV40: 500 case CODEC_ID_VC1: 501 case CODEC_ID_WMV3: 502 case CODEC_ID_LOCO: 503 case CODEC_ID_WNV1: 504 case CODEC_ID_AASC: 505 case CODEC_ID_INDEO2: 506 case CODEC_ID_FRAPS: 507 case CODEC_ID_TRUEMOTION2: 508 case CODEC_ID_BMP: 509 case CODEC_ID_CSCD: 510 case CODEC_ID_MMVIDEO: 511 case CODEC_ID_ZMBV: 512 case CODEC_ID_AVS: 513 case CODEC_ID_SMACKVIDEO: 514 case CODEC_ID_NUV: 515 case CODEC_ID_KMVC: 516 case CODEC_ID_FLASHSV: 517 case CODEC_ID_CAVS: 518 case CODEC_ID_JPEG2000: 519 case CODEC_ID_VMNC: 520 case CODEC_ID_VP5: 521 case CODEC_ID_VP6: 522 case CODEC_ID_VP6F: 523 case CODEC_ID_TARGA: 524 case CODEC_ID_DSICINVIDEO: 525 case CODEC_ID_TIERTEXSEQVIDEO: 526 case CODEC_ID_TIFF: 527 case CODEC_ID_GIF: 528 case CODEC_ID_FFH264: 529 case CODEC_ID_DXA: 530 case CODEC_ID_DNXHD: 531 case CODEC_ID_THP: 532 case CODEC_ID_SGI: 533 case CODEC_ID_C93: 534 case CODEC_ID_BETHSOFTVID: 535 case CODEC_ID_PTX: 536 case CODEC_ID_TXD: 537 case CODEC_ID_VP6A: 538 case CODEC_ID_AMV: 539 case CODEC_ID_VB: 540 case CODEC_ID_MPEG2TS: /* _FAKE_ codec to indicate a raw MPEG-2 TS */ 541 mask |= VIDEO_MPG; 542 break; 543 544 case CODEC_ID_H263: 545 case CODEC_ID_MPEG4: 546 case CODEC_ID_MSMPEG4V1: 547 case CODEC_ID_MSMPEG4V2: 548 case CODEC_ID_MSMPEG4V3: 549 case CODEC_ID_H263P: 550 case CODEC_ID_H263I: 551 mask |= VIDEO_DIVX; 552 break; 553 554 case CODEC_ID_WMV1: 555 case CODEC_ID_WMV2: 556 mask |= VIDEO_WMV; 557 break; 558 559 case CODEC_ID_XVID: 560 mask |= VIDEO_XVID; 561 break; 562 563 /* various PCM "codecs" */ 564 case CODEC_ID_PCM_S16LE: 565 case CODEC_ID_PCM_S16BE: 566 case CODEC_ID_PCM_U16LE: 567 case CODEC_ID_PCM_U16BE: 568 case CODEC_ID_PCM_S8: 569 case CODEC_ID_PCM_U8: 570 case CODEC_ID_PCM_MULAW: 571 case CODEC_ID_PCM_ALAW: 572 case CODEC_ID_PCM_S32LE: 573 case CODEC_ID_PCM_S32BE: 574 case CODEC_ID_PCM_U32LE: 575 case CODEC_ID_PCM_U32BE: 576 case CODEC_ID_PCM_S24LE: 577 case CODEC_ID_PCM_S24BE: 578 case CODEC_ID_PCM_U24LE: 579 case CODEC_ID_PCM_U24BE: 580 case CODEC_ID_PCM_S24DAUD: 581 case CODEC_ID_PCM_ZORK: 582 583 /* various ADPCM codecs */ 584 case CODEC_ID_ADPCM_IMA_QT: 585 case CODEC_ID_ADPCM_IMA_WAV: 586 case CODEC_ID_ADPCM_IMA_DK3: 587 case CODEC_ID_ADPCM_IMA_DK4: 588 case CODEC_ID_ADPCM_IMA_WS: 589 case CODEC_ID_ADPCM_IMA_SMJPEG: 590 case CODEC_ID_ADPCM_MS: 591 case CODEC_ID_ADPCM_4XM: 592 case CODEC_ID_ADPCM_XA: 593 case CODEC_ID_ADPCM_ADX: 594 case CODEC_ID_ADPCM_EA: 595 case CODEC_ID_ADPCM_G726: 596 case CODEC_ID_ADPCM_CT: 597 case CODEC_ID_ADPCM_SWF: 598 case CODEC_ID_ADPCM_YAMAHA: 599 case CODEC_ID_ADPCM_SBPRO_4: 600 case CODEC_ID_ADPCM_SBPRO_3: 601 case CODEC_ID_ADPCM_SBPRO_2: 602 case CODEC_ID_ADPCM_THP: 603 case CODEC_ID_ADPCM_IMA_AMV: 604 case CODEC_ID_ADPCM_EA_R1: 605 case CODEC_ID_ADPCM_EA_R3: 606 case CODEC_ID_ADPCM_EA_R2: 607 case CODEC_ID_ADPCM_IMA_EA_SEAD: 608 case CODEC_ID_ADPCM_IMA_EA_EACS: 609 case CODEC_ID_ADPCM_EA_XAS: 610 611 /* AMR */ 612 case CODEC_ID_AMR_NB: 613 case CODEC_ID_AMR_WB: 614 615 /* RealAudio codecs*/ 616 case CODEC_ID_RA_144: 617 case CODEC_ID_RA_288: 618 619 /* various DPCM codecs */ 620 case CODEC_ID_ROQ_DPCM: 621 case CODEC_ID_INTERPLAY_DPCM: 622 case CODEC_ID_XAN_DPCM: 623 case CODEC_ID_SOL_DPCM: 624 625 /* more misc things we'll call WAV */ 626 case CODEC_ID_AAC: 627 case CODEC_ID_DVAUDIO: 628 case CODEC_ID_MACE3: 629 case CODEC_ID_MACE6: 630 case CODEC_ID_VMDAUDIO: 631 case CODEC_ID_SONIC: 632 case CODEC_ID_SONIC_LS: 633 case CODEC_ID_FLAC: 634 case CODEC_ID_MP3ADU: 635 case CODEC_ID_MP3ON4: 636 case CODEC_ID_SHORTEN: 637 case CODEC_ID_ALAC: 638 case CODEC_ID_WESTWOOD_SND1: 639 case CODEC_ID_GSM: /* as in Berlin toast format */ 640 case CODEC_ID_QDM2: 641 case CODEC_ID_COOK: 642 case CODEC_ID_TRUESPEECH: 643 case CODEC_ID_TTA: 644 case CODEC_ID_SMACKAUDIO: 645 case CODEC_ID_QCELP: 646 case CODEC_ID_WAVPACK: 647 case CODEC_ID_DSICINAUDIO: 648 case CODEC_ID_IMC: 649 case CODEC_ID_MUSEPACK7: 650 case CODEC_ID_MLP: 651 case CODEC_ID_GSM_MS: /* as found in WAV */ 652 case CODEC_ID_ATRAC3: 653 case CODEC_ID_VOXWARE: 654 case CODEC_ID_APE: 655 case CODEC_ID_NELLYMOSER: 656 case CODEC_ID_MUSEPACK8: 657 mask |= AUDIO_WAV; 658 break; 659 660 case CODEC_ID_MP2: 661 mask |= AUDIO_MPEG2; 662 break; 663 664 case CODEC_ID_MP3: /* preferred ID for decoding MPEG audio layer 1: 2 or 3 */ 665 mask |= AUDIO_MP3; 666 break; 667 668 case CODEC_ID_AC3: 669 mask |= AUDIO_AC3; 670 break; 671 672 case CODEC_ID_DTS: 673 mask |= AUDIO_DTS; 674 break; 675 676 case CODEC_ID_VORBIS: 677 mask |= AUDIO_OGG; 678 break; 679 680 case CODEC_ID_WMAV1: 681 mask |= AUDIO_WMA; 682 break; 683 684 case CODEC_ID_WMAV2: 685 mask |= AUDIO_WMA2; 686 break; 687 688 /* subtitle codecs */ 689 case CODEC_ID_DVD_SUBTITLE: 690 case CODEC_ID_DVB_SUBTITLE: 691 case CODEC_ID_TEXT: 692 case CODEC_ID_XSUB: 693 /* teletext codecs */ 694 case CODEC_ID_MPEG2VBI: 695 case CODEC_ID_DVB_VBI: 696 /* DSMCC codec */ 697 case CODEC_ID_DSMCC_B: 698 mask |= 0; 699 break; 700 } 701 702 if(mask & AUDIO_MASK) 703 { 704 lcd_ledmask &= ~AUDIO_MASK; 705 if (on) 706 lcd_ledmask |= (mask & AUDIO_MASK); 707 } 708 if(mask & VIDEO_MASK) 709 { 710 lcd_ledmask &= ~VIDEO_MASK; 711 if (on) 712 lcd_ledmask |= (mask & VIDEO_MASK); 713 } 714 sendToServer(QString("UPDATE_LEDS %1").arg(lcd_ledmask)); 715 } 716 717 718 void LCD::setVideoSrcLEDs(enum LCDVideoSourceSet vsrc, bool on) 719 { 720 if (!lcd_ready) 721 return; 722 lcd_ledmask &= ~VSRC_MASK; 723 if (on) 724 lcd_ledmask |= vsrc; 725 sendToServer(QString("UPDATE_LEDS %1").arg(lcd_ledmask)); 726 } 727 728 void LCD::setFunctionLEDs(enum LCDFunctionSet func, bool on) 729 { 730 if (!lcd_ready) 731 return; 732 lcd_ledmask &= ~FUNC_MASK; 733 if (on) 734 lcd_ledmask |= func; 735 sendToServer(QString("UPDATE_LEDS %1").arg(lcd_ledmask)); 736 } 737 738 void LCD::setVariousLEDs(enum LCDVariousFlags various, bool on) 739 { 740 if (!lcd_ready) 741 return; 742 if (on) { 743 lcd_ledmask |= various; 744 if (various == VARIOUS_SPDIF) 745 lcd_ledmask |= SPDIF_MASK; 746 } else { 747 lcd_ledmask &= ~various; 748 if (various == VARIOUS_SPDIF) 749 lcd_ledmask &= ~SPDIF_MASK; 750 } 751 sendToServer(QString("UPDATE_LEDS %1").arg(lcd_ledmask)); 752 } 753 754 void LCD::setTunerLEDs(enum LCDTunerSet tuner, bool on) 755 { 756 if (!lcd_ready) 757 return; 758 lcd_ledmask &= ~TUNER_MASK; 759 if (on) 760 lcd_ledmask |= tuner; 761 sendToServer(QString("UPDATE_LEDS %1").arg(lcd_ledmask)); 762 } 763 408 764 void LCD::setChannelProgress(float value) 409 765 { 410 766 if (!lcd_ready || !lcd_showchannel) … … void LCD::setupLEDs(int(*LedMaskFunc)(void)) 480 836 481 837 void LCD::outputLEDs() 482 838 { 839 /* now implemented elsewhere for advanced icon control */ 840 return; 841 #if 0 483 842 if (!lcd_ready) 484 843 return; 485 844 … … void LCD::outputLEDs() 490 849 aString = "UPDATE_LEDS "; 491 850 aString += QString::number(mask); 492 851 sendToServer(aString); 852 #endif 493 853 } 494 854 495 855 void LCD::switchToTime() -
mythtv/libs/libmythdb/lcddevice.h
class MPUBLIC LCDTextItem 94 94 bool itemScrollable; 95 95 }; 96 96 97 //only one active at a time 98 enum LCDSpeakerSet { 99 SPEAKER_MASK = 0x00000030, 100 SPEAKER_LR = 1 << 4, 101 SPEAKER_51 = 2 << 4, 102 SPEAKER_71 = 3 << 4, 103 }; 104 105 //only one active at a time 106 enum LCDAudioFormatSet { 107 AUDIO_MASK = 0x0000E000 | 0x00070000, 108 109 AUDIO_MP3 = 1 << 13, 110 AUDIO_OGG = 2 << 13, 111 AUDIO_WMA2 = 3 << 13, 112 AUDIO_WAV = 4 << 13, 113 114 AUDIO_MPEG2 = 1 << 16, 115 AUDIO_AC3 = 2 << 16, 116 AUDIO_DTS = 3 << 16, 117 AUDIO_WMA = 4 << 16, 118 }; 119 120 //only one active at a time 121 enum LCDVideoFormatSet { 122 VIDEO_MASK = 0x00380000, 123 VIDEO_MPG = 1 << 19, 124 VIDEO_DIVX = 2 << 19, 125 VIDEO_XVID = 3 << 19, 126 VIDEO_WMV = 4 << 19, 127 }; 128 129 //only one active at a time 130 enum LCDTunerSet { 131 TUNER_MASK = 0x00000080 | 0x00000800 | 0x00001000, 132 TUNER_SRC = 0x00000080, 133 TUNER_SRC1 = 0x00000800, 134 TUNER_SRC2 = 0x00001000, 135 }; 136 137 //only one active at a time 138 enum LCDVideoSourceSet { 139 VSRC_MASK = 0x00000100 | 0x00000200, 140 VSRC_FIT = 0x00000100, 141 VSRC_TV = 0x00000200, 142 }; 143 144 //can be enabled/disabled separately 145 enum LCDVariousFlags { 146 VARIOUS_VOL = 0x00400000, 147 VARIOUS_TIME = 0x00800000, 148 VARIOUS_ALARM = 0x01000000, 149 VARIOUS_RECORD = 0x02000000, 150 VARIOUS_REPEAT = 0x04000000, 151 VARIOUS_SHUFFLE = 0x08000000, 152 VARIOUS_DISC_IN = 0x20000000, 153 VARIOUS_HDTV = 0x00000400, 154 VARIOUS_SPDIF = 0x1 << 9, 155 SPDIF_MASK = 0x00000040, 156 }; 157 158 159 //only one active at a time 160 enum LCDFunctionSet { 161 //0=none, 1=music, 2=movie, 3=photo, 4=CD/DVD, 5=TV, 6=Web, 7=News/Weather * 2 162 FUNC_MASK = 0xE, 163 FUNC_MUSIC = 1 << 1, 164 FUNC_MOVIE = 2 << 1, 165 FUNC_PHOTO = 3 << 1, 166 FUNC_DVD = 4 << 1, 167 FUNC_TV = 5 << 1, 168 FUNC_WEB = 6 << 1, 169 FUNC_NEWS = 7 << 1, 170 }; 171 97 172 class MPUBLIC LCD : public QObject, public MythSocketCBs 98 173 { 99 174 Q_OBJECT … … class MPUBLIC LCD : public QObject, public MythSoc 131 206 // When nothing else is going on, show the time 132 207 void switchToTime(); 133 208 209 // Extended functionality for eg SoundGraph iMON LCD devices 210 void setSpeakerLEDs(enum LCDSpeakerSet speaker, bool on); 211 void setAVFormatLEDs(int codec_id, bool on); 212 void setVideoSrcLEDs(enum LCDVideoSourceSet vsrc, bool on); 213 void setFunctionLEDs(enum LCDFunctionSet video, bool on); 214 void setTunerLEDs(enum LCDTunerSet tuner, bool on); 215 void setVariousLEDs(enum LCDVariousFlags various, bool on); 216 134 217 // When playing music, switch to this and give artist and track name 135 218 // 136 219 // Note: the use of switchToMusic and setLevels is discouraged, because it … … class MPUBLIC LCD : public QObject, public MythSoc 262 345 QString lcd_showmusic_items; 263 346 QString lcd_keystring; 264 347 348 int lcd_ledmask; 349 265 350 int (*GetLEDMask)(void); 266 351 }; 267 352 -
mythtv/libs/libmythdb/libmythdb.pro
SOURCES += mythdbcon.cpp mythdb.cpp oldsettings.cp 22 22 SOURCES += mythobservable.cpp httpcomms.cpp qcodecs.cpp mythdirs.cpp 23 23 SOURCES += lcddevice.cpp mythstorage.cpp remotefile.cpp decodeencode.cpp 24 24 25 INCLUDEPATH += ../libavcodec ../libavutil ../ 26 25 27 win32:SOURCES += msocketdevice_win.cpp 26 28 unix { 27 29 SOURCES += msocketdevice_unix.cpp