From 323894ba1203e9c230a5f05fa7b0cfafc71eb05d Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 29 Dec 2016 12:14:21 +0100 Subject: [PATCH 01/22] src/zapit/src/fastscan.cpp avoid out of bounds Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/853c0d1b6835d132bd774335969d5e76d2073fde Author: Jacek Jendrzej Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/zapit/src/fastscan.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zapit/src/fastscan.cpp b/src/zapit/src/fastscan.cpp index 96e5ed532..956d294e2 100644 --- a/src/zapit/src/fastscan.cpp +++ b/src/zapit/src/fastscan.cpp @@ -293,7 +293,7 @@ _err: bool CServiceScan::ReadFstVersion(int num) { - if(num >= OPERATOR_MAX) { + if(num >= OPERATOR_MAX || num < 0) { printf("[fast scan] invalid operator %d\n", num); return false; } From a71c48a9dbdc6c3b30fa0a98b050ea517f5cdc91 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 29 Dec 2016 16:18:13 +0100 Subject: [PATCH 02/22] src/timerd/timermanager.cpp fix double locking Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/e88eeb61cddd507936bf58646a61bd2b5f4a5474 Author: Jacek Jendrzej Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/timerd/timermanager.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/timerd/timermanager.cpp b/src/timerd/timermanager.cpp index 4d3dddf78..e18e1612f 100644 --- a/src/timerd/timermanager.cpp +++ b/src/timerd/timermanager.cpp @@ -819,7 +819,9 @@ void CTimerManager::cancelShutdownOnWakeup() { pthread_mutex_lock(&tm_eventsMutex); if (shutdown_eventID > -1) { + pthread_mutex_unlock(&tm_eventsMutex); removeEvent(shutdown_eventID); + pthread_mutex_lock(&tm_eventsMutex); shutdown_eventID = -1; } wakeup = 0; From d29073980f1132c5813d4af7260cb8d98f9215c3 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 29 Dec 2016 16:32:57 +0100 Subject: [PATCH 03/22] icons: small changes as suggested by NI-Team Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/fc7b7f143f0ee07de7fb3b0a0409e0e8c2c08f2b Author: vanhofen Date: 2016-12-29 (Thu, 29 Dec 2016) Origin message was: ------------------ - icons: small changes as suggested by NI-Team ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/icons/buttons/blau.png | Bin 236 -> 232 bytes data/icons/buttons/gelb.png | Bin 239 -> 240 bytes data/icons/headers/icon_blue.png | Bin 341 -> 355 bytes data/icons/headers/icon_yellow.png | Bin 338 -> 338 bytes data/icons/headers/mainmenue.png | Bin 572 -> 479 bytes data/icons/various/stars.png | Bin 473 -> 841 bytes data/icons/various/stars_bg.png | Bin 405 -> 827 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/icons/buttons/blau.png b/data/icons/buttons/blau.png index 3db35c83e45a0a9aff5e3f18553278c25ba634fc..57a57f6ccfb4e80e2c3dfdb411e26d9189227909 100644 GIT binary patch delta 198 zcmV;%06G8c0q6mcDt{UPBLIG0rI6kL000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2jC1H4jnd!TLqwvqKtdXYoyB(EC6B%&lABcbgU7j zH)W(JF~pCkd;@&#oocNYn^hta$mSz)9c|Xv`<%925s#8REkE<|7$m|Nz_tsCH1Oj( z*uf5V@K2ykE7@VFWMk7tiQ6(CPl+kGfF^PO0>Q>33GV!Z delta 202 zcmaFC_=a(URy_j<{B+(8VsI9CL>4nJa0`PlBg3pY5H=O_6OW@BBDZvmfGY4 zg(^K=978NlzrAvhx7mQlA@KI6n==`foH@i2yFk=AMefSGgE}4tjy2of@FgD6tZyj) zb0eyH=Hp``tU@yv8y%f}w($1(l`>kA{Hs>zIDh`Cy38Y)fuWttz*TX_PDZ|h2Id+L zljCu&mjgsui{G3PnV-6^&S&DTHI`+|BL3(7*L=8Sp};nvD;PXo{an^LB{Ts5cf?Fj diff --git a/data/icons/buttons/gelb.png b/data/icons/buttons/gelb.png index 2611c9a4c64972ffd60f1bd87606d18e69eb4986..501b5b5c7652cb868e8aa405f8dd7f9de910ef16 100644 GIT binary patch delta 206 zcmV;<05SjX0q_BkDt{UPBLIG0rI6kL000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2jC1H4ju^_5P1*)004bSL_t(I%k9;n4Z|=Hh2gur;8=l%rNLRGsH|0o@H|nuHUAN@6@bcJ%EA&4U=zck!?D3{yi9j5W{ct?^;9JYO4I~v@Wh{!Y^ zLPO}}$2G8l4Q$|_KqzZ2(GBGi1Px#07*qo IM6N<$f(8ds*#H0l delta 205 zcmeys_?~fsRy_j<{B+(8VsI9CL>4nJa0`PlBg3pY5H=O_6OW@BBIPIL}lgz zg=#!q978NlzrDJVx7k3T_2FsTtUHl!92$+dWJLqpKGZ8OO?t8_ELmPX84?_V7!E+a&Kd-;=8}dGmZ+Qe^xVDz5mmgUxJ1 zBkvz!j?}ZNyB5YQa)`8+lKXAAH}l0@?iD6B`;RQwwz2A5n+S9WgQu&X%Q~loCIAm+ BOwIrR diff --git a/data/icons/headers/icon_blue.png b/data/icons/headers/icon_blue.png index 91debee832fffb41160cf95f9dd063e0c95e5048..a44f4b1f51f73d7852d9b1c45e43419cc6ab1a53 100644 GIT binary patch delta 322 zcmV-I0log!0^_JV9J*O008hwL_t(Y$JLcB4ue1tMqis+E`UXMEe^{S5KZ7D2u@NG1XsY~ zu#3iW0c=IhlF%}3Nm)o3xj)~_d^0->M~{=V=!7{#72|s81%FUL07QUqjx<0C)PU~0 z>@nW?37Cjqfx-a3g$8bYm$ee){6Rc67u5n66rf!%jfX1633EAvH}U(QmM49e<NGXMYp07*qoM6N<$f}zfQU;qFB delta 308 zcmV-40n7g50@VVLDu4d~{{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2jB}G7CHz#>W26L0081iL_t(Y$JLcF4udcZMITjHjzU&8R<6KMDIBel7`Q@KHr8;I ztR1=p2{oogB_Q#~1pkNa#DS|TlNR&Z;H@UF%^grc1vEezK7Sd39vA@Ut$xihKLHE# z0_XzZn;h`)R!gEue3(D~EP3m#Hp@)1j|__N=X<2Q)l*cW z(9kZy!Rdlm)C0A#=39EABtVt$_*W93NeE~pK$#Fwiud3MEdgUf-%$ee2?4zX7!m>o z3E&dk;>hRJQ7u8(Xm^;m^VnX?V9!L2Cg~{;&f!ny_4Nin5p-#E_J*4P0000%P0}Q%C*9F)Z7#KJUJR*x37`TN&n2}-D90{Nxdx@v7EBgZ;Sw2Pi MZBox_Cq{n<0JuI6T>t<8 delta 59 zcmcb_bctz#mf?Q}AY8C_`D6wL2F?PH$YKTtZeb8+WSBKa0w~B{;_2(k{(xIn%$hUk KTf6?m=qL0Zfw_7QcF@Osp?28lHLWBfoi zaia(!{s-0uA=ubi#IX>GZ3@9ekO)@#52yi=XeSmbr%7&e7JoMvF2{mN*hYNK?9RM- z-+jL~^Ok?zva&FQ-B?A|rkPXbv3f&U7)_6@G_IqG978>>gILM2h6#MeQpU?XQWn*K zb|=_0K4J;4Q{ba`pXNT`YKVSjJzsVK4^lSIa2Y~RCar=--0+{o9W3J%4&p`He=bCe z>*JlYx;B^6U4Ox8Ool$0y1`qW>>lH5MUrnrwAi{v{;&rS;)bSe1Wc8MD^)TjP>J6a z%io~!sPmFnI1J-#D&llmIGiNekyQa2A$o&**o%d-FdSlifUaayc#1ukTN{(Luh$4j zHj$3pi99!x&D0DC(JId13ofOjxvhHSTk!dTi};SaWq;xLcIxq0K!}9s9mdksd|5bz ztgZ}{1tD6%ZS2Bqoe~Lg19Bfva175ePz#_Batp6;1p8_O^fkWo_*I)k74>N1WP-H2 z|CYXSGoUPtbQjCQ{w+wgjB$*lrO_1cKu^cj=-E4fo2ioyZm}No>GG}P6K-^4Hg?#% fHd(9i9~Rgj@z{jP@HKbv00000NkvXXu0mjf`8oKh diff --git a/data/icons/various/stars.png b/data/icons/various/stars.png index affa178b9788031595867ad43300628ec87753f5..b6189f1db17edccd21785a0d9d24893005c226e7 100644 GIT binary patch delta 825 zcmV-91IGN>1IY$6iBL{Q4GJ0x0000DNk~Le0001>0000F2nGNE0Aq#3761SM24YJ` zL;(K){{a7>y{D6rFCKr~3knq#E!o0+djJ3e)=5M`RA}Dq*iT4QK^zD0@66lR+t$`h z$`nK+qD%+^%Ri+>1=7Dm5S^kwboUf=?;3RLT6FIcbc+lMOOvE5ilEZc?T=cEn)~*> zH#5Iqhb>We19ycE?tCxrAD@|d@O#6|0}5nfpfh(I>}s7D=sbS|0N)<9q1Y_+rNsKx z?`5Hzo7?+xCyYB_+`Lr@)E#_=RBuahBlzP>eF5uNzt1bc?@#st0KWCL_PE~qdN;nI zqWf;kbpW7aEIV`k9boq9NCH zA2gnN6IpNlN_-3eCI`D7yX&f(Wz0(mIBO+b!2E)m`^+4LfZXIHD(iO{&);RjAkblu z2{O|^05n-|{Yrcc0Laj(Xg2*dURCEgu7a5x0jZFoB0+yjfz%jtWQ2^>0Gx=2{%o8L zb^NV<>#Z-AW-|SC)@pa$;A_3M~urXjmV5Nm{*1?EM_|p?GQM7maxsUJX z*NxU&U!tGigw!7%8VP5oPXseR1E30QBuE>uHee!v*C5QyAk5C4-f>~{`O?Lt_12f- zB><#)_vC-BG>w}u`_d?YSpbMbhzbaHLF|IUC}l!D4gl|NZ^_@%6yXcT`m*ye0H{Bb zD@Y>VC?FdI2-2-#tx1r>kX``R1X8BfWTPqoXu9|*um56vp;%vjKDMX10xT3i6lswn9i#BKL=pF^+ozc1t@)mll0S5Yd{z_QP886`oP*43TUf8 z_4BIE2HmVE4gmdETy$JhDAgDID{g(+`6V+Ty#lC9M{0mH>E=sg0DyZZF}daF=Hn`p zZDZyi0P>1&sc$+zsuw((e0^iFFZ=~rU(Vjf=D+7R)`L+L-LQ8U00000NkvXXu0mjf D`5}ky literal 473 zcmV;~0Ve*5P)tH4hPT>U;BA;~FcvWw-MUt^LZE z@Nmh6#oWsynV*78{Zrhn>ZOM3w9Sj!Ut#GUyb3BOttRD*&FX--~AFIrYY zN!==`Ysux@uWq%eRgDU(_kAyiiYu;|qB>T(xbI0zqMitaazMT7c{{0sJVpC={>LG$ zWc$m?78O?T8e(7aDAlF-xm#x`ud-+n_i~iSBc=Pf;<`~;v5ub_{G@dM^J6<`IKjLv zyPek>Q=Ma9lDIK8ePtbgHu#fMUlPp#oY6-==K$s(()GLtfCna+Bm+Q)6F*xT<&G(Q zl7x>L?isO)Z}Q46Rgy#%`@pIbKU*3mY|KpzS;ZIVH0Cbmo%rRH^Z$7RAp44quJqr; P00000NkvXXu0mjfNY>6K diff --git a/data/icons/various/stars_bg.png b/data/icons/various/stars_bg.png index ee4b28c0251478503da84c76ee873523b6736ad6..be87f9d2c7b629916507b4890b9dc131074b0ca7 100644 GIT binary patch delta 811 zcmV+`1JwML1G@$@iBL{Q4GJ0x0000DNk~Le0001>0000F2nGNE0Aq#3761SM24YJ` zL;(K){{a7>y{D6rFCKr~3knq$7DMF5oB#j<$Vo&&RA}Dq*iT3lQ5*;G?{CK0*_2%) zgbc(YI*1@dR%TfdNl*y}(P{S(-8}_eI&}@Ydoj8T9qi&k4~Du1McE;OA`0!FsJpq$ z?D%{CI@pHpuHmlG!F}J;V}=j&4&V29Z-5HiFR(b-UF{r3jWHvrJ=X7WUsk{$GiLz+Q&UqzzVEli z0PCvlt&AKj6CVUElW|-}fCNN{x+;9c#b( zdPg7M&hK>c*4KZJr{Z9Gdis*qx<@H>*z>&OiA18Ch&*P7Qc7jB*>{CPA!CeL)LOst zJa1xfaFDIHemA}W05X}(^QNYzPSQJ%_15pkHvoWA>P9}F|JK~x?7OauAP69YFhU3tLO_2?X@n5uc^&}7!!V31rFx6) zx8C|%y#oM!eSNEiLZNeIWhG>05D}D8q_u|D8d6GfT^B@zTrLM8#Hmy&^`STc>#eWV z|Gk9t_xFFw=kwRs*482-Dndvpq4mb?Hw;5WQFJq%PQNTYOj>V!E#3iu#mSS!t#pBz z-$*H8i~)ZU!ErV^YK#FhFEaB20K9*4r0hmhjjt5z>(4s?&~|yFkXq{&0PO$}i^YuN zIB;DTzVGAD!Ll`qqWu8Sar<-G1gi0sVtxJjhLQ#+h^S?KeI2=6j+l8~O8HA`eW9_j z5kiQDD2n3$SOL~sUzOidKq5+Hv)Pz2W}cacgb;5Zl~RhCkFKt+K8T{|ij*=A0GWFp zdLIhZ>MQ<~w7%|q=??f7zR`-s-nmLDtu?x3T%}`3>q0VYXAK~z}7 z?bf|Y!%!H;@#jdOgLElI@B@1Rot*ucM5L383NCf&;4I#OnMBZw&>+2kKMt2j~*vD^K3pG2t~u)%o|LLAjNBL5GSBW7%m3#c44)0b{e_^x00000NkvXXu0mjf3B;|b From c3adf029ac8386ab748f66752cf2f6ed9eb5c435 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 29 Dec 2016 18:41:25 +0100 Subject: [PATCH 04/22] some dead assignment Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/0ed24632b74d8ef0c56802ad9b832ed98cb928d7 Author: Jacek Jendrzej Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/channellist.cpp | 1 - src/neutrino.cpp | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 74dc5a3ee..a4d56cb47 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -1981,7 +1981,6 @@ void CChannelList::paintItem(int pos, const bool firstpaint) if (frameBuffer->paintIcon(record_icon, icon_x_right - icon_w, ypos, fheight)) { offset_right += icon_w + OFFSET_INNER_MID; - icon_x_right -= icon_w + OFFSET_INNER_MID; } } diff --git a/src/neutrino.cpp b/src/neutrino.cpp index e08949eb9..24cb19c2f 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -1497,9 +1497,6 @@ void CNeutrinoApp::channelsInit(bool bOnly) RADIObouquetList = new CBouquetList(g_Locale->getText(LOCALE_CHANNELLIST_PROVS)); RADIOfavList = new CBouquetList(g_Locale->getText(LOCALE_CHANNELLIST_FAVS)); - uint32_t i; - i = 1; - int tvi = 0, ri = 0; ZapitChannelList zapitList, webtvList; @@ -1627,7 +1624,7 @@ void CNeutrinoApp::channelsInit(bool bOnly) /* Favorites and providers bouquets */ tvi = ri = 0; if(g_bouquetManager){ - for (i = 0; i < g_bouquetManager->Bouquets.size(); i++) { + for (uint32_t i = 0; i < g_bouquetManager->Bouquets.size(); i++) { CZapitBouquet *b = g_bouquetManager->Bouquets[i]; if (!b->bHidden) { if (b->getTvChannels(zapitList) || (g_settings.show_empty_favorites && b->bUser)) { @@ -2033,7 +2030,7 @@ TIMER_START(); if (loadLocale_ret == CLocaleManager::NO_SUCH_LOCALE) { g_settings.language = "english"; - loadLocale_ret = g_Locale->loadLocale(g_settings.language.c_str()); + g_Locale->loadLocale(g_settings.language.c_str()); show_startwizard = true; } @@ -2772,7 +2769,7 @@ void CNeutrinoApp::zapTo(t_channel_id channel_id) { bool recordingStatus = CRecordManager::getInstance()->RecordingStatus(channel_id); if (!recordingStatus || (recordingStatus && CRecordManager::getInstance()->TimeshiftOnly()) || - (recordingStatus && channelList->SameTP(channel_id))) { + (recordingStatus && channelList && channelList->SameTP(channel_id))) { dvbsub_stop(); g_Zapit->zapTo_serviceID_NOWAIT(channel_id); @@ -2807,7 +2804,8 @@ void CNeutrinoApp::standbyToStandby(void) t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); if (standby_channel_id && (live_channel_id != standby_channel_id)) { live_channel_id = standby_channel_id; - channelList->zapTo_ChannelID(live_channel_id); + if(channelList) + channelList->zapTo_ChannelID(live_channel_id); } g_Zapit->setStandby(true); g_Sectionsd->setPauseScanning(true); @@ -3221,7 +3219,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) CTimerd::EventInfo * eventinfo = (CTimerd::EventInfo *) data; if (eventinfo->channel_id != CZapit::getInstance()->GetCurrentChannelID()){ if( (recordingstatus == 0) || (recordingstatus && CRecordManager::getInstance()->TimeshiftOnly()) || - (recordingstatus && channelList->SameTP(eventinfo->channel_id)) ) { + (recordingstatus && channelList && channelList->SameTP(eventinfo->channel_id)) ) { bool isTVMode = CServiceManager::getInstance()->IsChannelTVChannel(eventinfo->channel_id); dvbsub_stop(); @@ -3232,7 +3230,9 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) else if (isTVMode && (mode != mode_tv) && (mode != mode_webtv)) { tvMode(true); } - channelList->zapTo_ChannelID(eventinfo->channel_id); + + if(channelList) + channelList->zapTo_ChannelID(eventinfo->channel_id); } } delete[] (unsigned char*) data; @@ -4762,7 +4762,7 @@ bool CNeutrinoApp::adjustToChannelID(const t_channel_id channel_id) if(!has_channel && old_mode == LIST_MODE_SAT) new_mode = LIST_MODE_ALL; - has_channel = TVallList->adjustToChannelID(channel_id); + TVallList->adjustToChannelID(channel_id); } else if(CNeutrinoApp::getInstance()->getMode() == NeutrinoMessages::mode_radio) { has_channel = RADIOfavList->adjustToChannelID(channel_id); @@ -4789,7 +4789,7 @@ bool CNeutrinoApp::adjustToChannelID(const t_channel_id channel_id) if(!has_channel && old_mode == LIST_MODE_SAT) new_mode = LIST_MODE_ALL; - has_channel = RADIOallList->adjustToChannelID(channel_id); + RADIOallList->adjustToChannelID(channel_id); } if(old_mode != new_mode) CNeutrinoApp::getInstance()->SetChannelMode(new_mode); From db5ba19db59ef739815153953502b1f007f24de0 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 29 Dec 2016 18:51:06 +0100 Subject: [PATCH 05/22] some dead assignment Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/c0564ec574cc3cbb888f83e9a590b364fb31ff47 Author: Jacek Jendrzej Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_header.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index a3e26b90e..f4f10ba20 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -231,11 +231,10 @@ void CComponentsHeader::initIcon() cch_icon_obj->doPaintBg(false); //set corner mode of icon item - int cc_icon_corner_type = corner_type; + int cc_icon_corner_type = CORNER_LEFT; if (corner_type == CORNER_TOP_LEFT || corner_type == CORNER_TOP) cc_icon_corner_type = CORNER_TOP_LEFT; - else - cc_icon_corner_type = CORNER_LEFT; + cch_icon_obj->setCorner(corner_rad-fr_thickness, cc_icon_corner_type); //global set width of icon object @@ -335,11 +334,10 @@ void CComponentsHeader::initButtons() cch_btn_obj->addIcon(v_cch_btn); //set corner mode of button item - int cc_btn_corner_type = corner_type; + int cc_btn_corner_type = CORNER_RIGHT; if (corner_type == CORNER_TOP_RIGHT || corner_type == CORNER_TOP) cc_btn_corner_type = CORNER_TOP_RIGHT; - else - cc_btn_corner_type = CORNER_RIGHT; + cch_btn_obj->setCorner(corner_rad-fr_thickness, cc_btn_corner_type); //global adapt height @@ -412,11 +410,10 @@ void CComponentsHeader::initClock() cch_cl_obj->setClockFormat(cch_cl_format, cch_cl_sec_format); //set corner mode of button item - int cc_btn_corner_type = corner_type; + int cc_btn_corner_type = CORNER_RIGHT; if (corner_type == CORNER_TOP_RIGHT || corner_type == CORNER_TOP) cc_btn_corner_type = CORNER_TOP_RIGHT; - else - cc_btn_corner_type = CORNER_RIGHT; + cch_cl_obj->setCorner(corner_rad-fr_thickness, cc_btn_corner_type); //global adapt height From 3306c94002df860dcbdd8a32f23f95b63c514b8e Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 30 Dec 2016 08:22:24 +0100 Subject: [PATCH 06/22] streaminfo2: just code cosmetics; no binary changes Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/db06238cd561c53230b3d3b049f3c7d99fec79f1 Author: vanhofen Date: 2016-12-30 (Fri, 30 Dec 2016) Origin message was: ------------------ - streaminfo2: just code cosmetics; no binary changes ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/streaminfo2.cpp | 58 +++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index f6b7fb0d6..7d9d6e93c 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -626,20 +626,43 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) snprintf(buf, sizeof(buf), "%s:", g_Locale->getText (LOCALE_STREAMINFO_AUDIOTYPE)); g_Font[font_info]->RenderString (xpos, ypos, box_width, buf, COL_MENUCONTENT_TEXT); - if(type == AUDIO_FMT_MPEG) { - const int max_mode = 4; - const char *mpegmodes[max_mode] = { "stereo", "joint_st", "dual_ch", "single_ch" }; - snprintf(buf, sizeof(buf), "MPEG %s (%d)", (mode > max_mode) ?"unk":mpegmodes[mode], freq); - } else if (type == AUDIO_FMT_DOLBY_DIGITAL || type == AUDIO_FMT_DD_PLUS) { - const int max_mode = 8; - const char *ddmodes[max_mode] = { "CH1/CH2", "C", "L/R", "L/C/R", "L/R/S", "L/C/R/S", "L/R/SL/SR", "L/C/R/SL/SR" }; + if (type == AUDIO_FMT_MPEG) + { + const char *mpegmodes[] = + { + "stereo", + "joint_st", + "dual_ch", + "single_ch" + }; + int max_mode = sizeof(mpegmodes) / sizeof(mpegmodes[0]); + snprintf(buf, sizeof(buf), "MPEG %s (%d)", + (mode > max_mode) ? "unk" : mpegmodes[mode], + freq); + } + else if (type == AUDIO_FMT_DOLBY_DIGITAL || type == AUDIO_FMT_DD_PLUS) + { + const char *ddmodes[] = + { + "CH1/CH2", + "C", + "L/R", + "L/C/R", + "L/R/S", + "L/C/R/S", + "L/R/SL/SR", + "L/C/R/SL/SR" + }; + int max_mode = sizeof(ddmodes) / sizeof(ddmodes[0]); snprintf(buf, sizeof(buf), "%s %s (%d)", (type == AUDIO_FMT_DOLBY_DIGITAL) ? "DD" : "DD+", - (mode > max_mode) ?"unk": ddmodes[mode], + (mode > max_mode) ? "unk" : ddmodes[mode], freq); - } else if (type == AUDIO_FMT_AAC || type == AUDIO_FMT_AAC_PLUS) { - const int max_mode = 10; - const char *aacmodes[max_mode] = { + } + else if (type == AUDIO_FMT_AAC || type == AUDIO_FMT_AAC_PLUS) + { + const char *aacmodes[] = + { "N/S", "Mono", "L/R", @@ -651,11 +674,17 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) "L/R/SL/SR", "Dual-Mono" }; + int max_mode = sizeof(aacmodes) / sizeof(aacmodes[0]); snprintf(buf, sizeof(buf), "%s %s (%d)", (type == AUDIO_FMT_AAC) ? "AAC" : "AAC+", - (mode > max_mode) ?"unk":aacmodes[mode], freq); - } else { - snprintf(buf, sizeof(buf), "%s (%d)", g_Locale->getText(LOCALE_STREAMINFO_AUDIOTYPE_UNKNOWN), freq); + (mode > max_mode) ? "unk" : aacmodes[mode], + freq); + } + else + { + snprintf(buf, sizeof(buf), "%s (%d)", + g_Locale->getText(LOCALE_STREAMINFO_AUDIOTYPE_UNKNOWN), + freq); } g_Font[font_info]->RenderString (xpos+spaceoffset, ypos, box_width2, buf, COL_MENUCONTENT_TEXT); @@ -717,6 +746,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) int fontW = g_Font[font_small]->getWidth(); spaceoffset = 7 * fontW; box_width2 = box_width-(spaceoffset+xpos); + //onid ypos+= sheight; snprintf(buf, sizeof(buf), "0x%04X (%i)", channel->getOriginalNetworkId(), channel->getOriginalNetworkId()); From 43207960b09d459311a9733ba18b71bf9f984957 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 30 Dec 2016 17:04:11 +0100 Subject: [PATCH 07/22] supplement to 323894ba1203e9c230a5f05fa7b0cfafc71eb05d Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/df89326f60a28e420778ecd22657ebd207def1bf Author: Jacek Jendrzej Date: 2016-12-30 (Fri, 30 Dec 2016) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/zapit/src/fastscan.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/zapit/src/fastscan.cpp b/src/zapit/src/fastscan.cpp index 956d294e2..24007310e 100644 --- a/src/zapit/src/fastscan.cpp +++ b/src/zapit/src/fastscan.cpp @@ -77,7 +77,7 @@ diseq_test_param_t diseqc_test[] = { bool CServiceScan::TestDiseqcConfig(int num) { - if(num >= OPERATOR_MAX) { + if(num >= OPERATOR_MAX || num < 0) { INFO("[fast scan] invalid operator %d", num); return false; } @@ -218,7 +218,7 @@ bool CServiceScan::ScanFast() { fast_scan_type_t * fast_type = (fast_scan_type_t *) scan_arg; fs_operator_t num = fast_type->op; - if(num >= OPERATOR_MAX) { + if(num >= OPERATOR_MAX || num < 0) { INFO("[fast scan] invalid operator %d", num); return false; } @@ -231,7 +231,7 @@ bool CServiceScan::ScanFast() bool CServiceScan::ScanFast(int num, bool reload) { fast_scan_operator_t *op; - if(num >= OPERATOR_MAX) { + if(num >= OPERATOR_MAX || num < 0) { INFO("[fast scan] invalid operator %d", num); goto _err; } From 0e8b6cdd5762f4affd027567dad1fba53b81d5aa Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 29 Dec 2016 16:45:54 +0100 Subject: [PATCH 08/22] CComponentsButton: rename cc_btn_capt -> cc_btn_text More plausible Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/2889fbd70db1d670b60b7196b2037f3d891860ac Author: Thilo Graf Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_button.cpp | 70 ++++++++++++++-------------- src/gui/components/cc_frm_button.h | 16 +++---- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/src/gui/components/cc_frm_button.cpp b/src/gui/components/cc_frm_button.cpp index 0331a5a75..00e068293 100644 --- a/src/gui/components/cc_frm_button.cpp +++ b/src/gui/components/cc_frm_button.cpp @@ -44,7 +44,7 @@ CComponentsButton::CComponentsButton( const int& x_pos, const int& y_pos, const int shadow_mode, fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow) { - cc_btn_capt_locale = NONEXISTANT_LOCALE; + cc_btn_text_locale = NONEXISTANT_LOCALE; initVarButton(x_pos, y_pos, w, h, caption, icon_name, parent, selected, enabled, shadow_mode, color_frame, color_body, color_shadow); } @@ -56,8 +56,8 @@ CComponentsButton::CComponentsButton( const int& x_pos, const int& y_pos, const int shadow_mode, fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow) { - cc_btn_capt_locale = caption_locale; - initVarButton(x_pos, y_pos, w, h, g_Locale->getText(cc_btn_capt_locale), icon_name, parent, selected, enabled, shadow_mode, color_frame, color_body, color_shadow); + cc_btn_text_locale = caption_locale; + initVarButton(x_pos, y_pos, w, h, g_Locale->getText(cc_btn_text_locale), icon_name, parent, selected, enabled, shadow_mode, color_frame, color_body, color_shadow); } CComponentsButton::CComponentsButton( const int& x_pos, const int& y_pos, const int& w, const int& h, @@ -81,8 +81,8 @@ CComponentsButton::CComponentsButton( const int& x_pos, const int& y_pos, const fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow) { string _icon_name = icon_name == NULL ? "" : string(icon_name); - cc_btn_capt_locale = caption_locale; - initVarButton(x_pos, y_pos, w, h, g_Locale->getText(cc_btn_capt_locale), _icon_name, parent, selected, enabled, shadow_mode, color_frame, color_body, color_shadow); + cc_btn_text_locale = caption_locale; + initVarButton(x_pos, y_pos, w, h, g_Locale->getText(cc_btn_text_locale), _icon_name, parent, selected, enabled, shadow_mode, color_frame, color_body, color_shadow); } void CComponentsButton::initVarButton( const int& x_pos, const int& y_pos, const int& w, const int& h, @@ -116,14 +116,14 @@ void CComponentsButton::initVarButton( const int& x_pos, const int& y_pos, const append_y_offset = 0; corner_rad = RADIUS_SMALL; - cc_btn_capt_col = cc_body_gradient_enable ? COL_BUTTON_TEXT_ENABLED : COL_MENUFOOT_TEXT; - cc_btn_capt_disable_col = cc_body_gradient_enable ? COL_BUTTON_TEXT_DISABLED : COL_MENUCONTENTINACTIVE_TEXT; + cc_btn_text_col = cc_body_gradient_enable ? COL_BUTTON_TEXT_ENABLED : COL_MENUFOOT_TEXT; + cc_btn_text_disable_col = cc_body_gradient_enable ? COL_BUTTON_TEXT_DISABLED : COL_MENUCONTENTINACTIVE_TEXT; cc_btn_icon_obj = NULL; - cc_btn_capt_obj = NULL; + cc_btn_text_obj = NULL; cc_btn_dy_font = CNeutrinoFonts::getInstance(); cc_btn_font = NULL; cc_btn_icon = icon_name; - cc_btn_capt = caption; + cc_btn_text = caption; cc_directKey = CRCInput::RC_nokey; cc_directKeyAlt = cc_directKey; cc_btn_result = -1; @@ -172,24 +172,24 @@ void CComponentsButton::initIcon() void CComponentsButton::initCaption() { //init label as caption object and add to container - if (!cc_btn_capt.empty()){ - if (cc_btn_capt_obj == NULL){ - cc_btn_capt_obj = new CComponentsLabel(); - cc_btn_capt_obj->doPaintBg(false); - cc_btn_capt_obj->doPaintTextBoxBg(false); - cc_btn_capt_obj->enableTboxSaveScreen(cc_txt_save_screen); - addCCItem(cc_btn_capt_obj); + if (!cc_btn_text.empty()){ + if (cc_btn_text_obj == NULL){ + cc_btn_text_obj = new CComponentsLabel(); + cc_btn_text_obj->doPaintBg(false); + cc_btn_text_obj->doPaintTextBoxBg(false); + cc_btn_text_obj->enableTboxSaveScreen(cc_txt_save_screen); + addCCItem(cc_btn_text_obj); } }else{ - if (cc_btn_capt_obj){ - delete cc_btn_capt_obj; - cc_btn_capt_obj = NULL; + if (cc_btn_text_obj){ + delete cc_btn_text_obj; + cc_btn_text_obj = NULL; } } //set basic properties int w_frame = fr_thickness; - if (cc_btn_capt_obj){ + if (cc_btn_text_obj){ //position and size int x_cap = w_frame; x_cap += cc_btn_icon_obj ? cc_btn_icon_obj->getWidth() : 0; @@ -204,10 +204,10 @@ void CComponentsButton::initCaption() */ int y_cap = height/2 - h_cap/2; - cc_btn_capt_obj->setDimensionsAll(x_cap, y_cap, w_cap, h_cap); + cc_btn_text_obj->setDimensionsAll(x_cap, y_cap, w_cap, h_cap); //text and font - Font* def_font = *cc_btn_dy_font->getDynFont(w_cap, h_cap, cc_btn_capt); + Font* def_font = *cc_btn_dy_font->getDynFont(w_cap, h_cap, cc_btn_text); if (cc_btn_font == NULL){ /* use dynamic font as default font if no font defined */ cc_btn_font = def_font; @@ -220,26 +220,26 @@ void CComponentsButton::initCaption() } } - cc_btn_capt_obj->setText(cc_btn_capt, CTextBox::NO_AUTO_LINEBREAK, cc_btn_font); - cc_btn_capt_obj->forceTextPaint(); //here required; - cc_btn_capt_obj->getCTextBoxObject()->setTextBorderWidth(0,0); + cc_btn_text_obj->setText(cc_btn_text, CTextBox::NO_AUTO_LINEBREAK, cc_btn_font); + cc_btn_text_obj->forceTextPaint(); //here required; + cc_btn_text_obj->getCTextBoxObject()->setTextBorderWidth(0,0); //set color - cc_btn_capt_obj->setTextColor(this->cc_item_enabled ? cc_btn_capt_col : cc_btn_capt_disable_col); + cc_btn_text_obj->setTextColor(this->cc_item_enabled ? cc_btn_text_col : cc_btn_text_disable_col); //corner of text item - cc_btn_capt_obj->setCorner(corner_rad-w_frame, corner_type); + cc_btn_text_obj->setCorner(corner_rad-w_frame, corner_type); } //handle common position of icon and text inside container required for alignment int w_required = w_frame + append_x_offset; w_required += cc_btn_icon_obj ? cc_btn_icon_obj->getWidth() + append_x_offset : 0; - w_required += cc_btn_font ? cc_btn_font->getRenderWidth(cc_btn_capt) : 0; + w_required += cc_btn_font ? cc_btn_font->getRenderWidth(cc_btn_text) : 0; w_required += append_x_offset + w_frame; //dynamic width if (w_required > width){ - dprintf(DEBUG_INFO, "[CComponentsButton] [%s - %d] width of button (%s) will be changed: defined width=%d, required width=%d\n", __func__, __LINE__, cc_btn_capt.c_str(), width, w_required); + dprintf(DEBUG_INFO, "[CComponentsButton] [%s - %d] width of button (%s) will be changed: defined width=%d, required width=%d\n", __func__, __LINE__, cc_btn_text.c_str(), width, w_required); width = max(w_required, width); } @@ -256,22 +256,22 @@ void CComponentsButton::initCaption() int y_icon = height/2 - cc_btn_icon_obj->getHeight()/2; cc_btn_icon_obj->setYPos(y_icon); } - if (cc_btn_capt_obj){ - cc_btn_capt_obj->setXPos(x_icon + w_icon + append_x_offset); - cc_btn_capt_obj->setWidth(width - cc_btn_capt_obj->getXPos()); + if (cc_btn_text_obj){ + cc_btn_text_obj->setXPos(x_icon + w_icon + append_x_offset); + cc_btn_text_obj->setWidth(width - cc_btn_text_obj->getXPos()); } } void CComponentsButton::setCaption(const std::string& text) { - cc_btn_capt = text; + cc_btn_text = text; initCCBtnItems(); } void CComponentsButton::setCaption(const neutrino_locale_t locale_text) { - cc_btn_capt_locale = locale_text; - setCaption(g_Locale->getText(cc_btn_capt_locale)); + cc_btn_text_locale = locale_text; + setCaption(g_Locale->getText(cc_btn_text_locale)); } void CComponentsButton::initCCBtnItems() diff --git a/src/gui/components/cc_frm_button.h b/src/gui/components/cc_frm_button.h index 80653e2be..a0540636b 100644 --- a/src/gui/components/cc_frm_button.h +++ b/src/gui/components/cc_frm_button.h @@ -50,7 +50,7 @@ class CComponentsButton : public CComponentsFrmChain, public CCTextScreen ///object: picture object CComponentsPictureScalable *cc_btn_icon_obj; ///object: label object - CComponentsLabel *cc_btn_capt_obj; + CComponentsLabel *cc_btn_text_obj; ///initialize all required attributes and objects void initVarButton( const int& x_pos, const int& y_pos, const int& w, const int& h, @@ -63,9 +63,9 @@ class CComponentsButton : public CComponentsFrmChain, public CCTextScreen fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow); ///property: button text as string, see also setCaption() and getCaptionString() - std::string cc_btn_capt; + std::string cc_btn_text; ///property: button text as locale, see also setCaption() and getCaptionLocale() - neutrino_locale_t cc_btn_capt_locale; + neutrino_locale_t cc_btn_text_locale; ///property: icon name, only icons supported, to find in gui/widget/icons.h std::string cc_btn_icon; @@ -80,9 +80,9 @@ class CComponentsButton : public CComponentsFrmChain, public CCTextScreen int cc_btn_alias; ///property: text color - fb_pixel_t cc_btn_capt_col; + fb_pixel_t cc_btn_text_col; ///property: text color for disabled button - fb_pixel_t cc_btn_capt_disable_col; + fb_pixel_t cc_btn_text_disable_col; ///object: text font Font* cc_btn_font; ///object: dynamic font object handler @@ -135,7 +135,7 @@ class CComponentsButton : public CComponentsFrmChain, public CCTextScreen fb_pixel_t color_frame = COL_SHADOW_PLUS_0, fb_pixel_t color_body = COL_BUTTON_BODY, fb_pixel_t color_shadow = COL_SHADOW_PLUS_0); ///set text color - inline virtual void setButtonTextColor(fb_pixel_t caption_color){cc_btn_capt_col = caption_color;}; + inline virtual void setButtonTextColor(fb_pixel_t caption_color){cc_btn_text_col = caption_color;}; /**Member to modify background behavior of embeded caption object. * @param[in] mode @@ -164,9 +164,9 @@ class CComponentsButton : public CComponentsFrmChain, public CCTextScreen virtual void setCaption(const neutrino_locale_t locale_text); ///get caption, type as std::string - inline virtual std::string getCaptionString(){return cc_btn_capt;}; + inline virtual std::string getCaptionString(){return cc_btn_text;}; ///get loacalized caption id, type = neutrino_locale_t - inline virtual neutrino_locale_t getCaptionLocale(){return cc_btn_capt_locale;}; + inline virtual neutrino_locale_t getCaptionLocale(){return cc_btn_text_locale;}; ///property: set font for label caption, parameter as font object, value NULL causes usaage of dynamic font virtual void setButtonFont(Font* font){cc_btn_font = font; initCCBtnItems();}; From 5d53e0bf31e3f9afeb89b2d13f62852c913572f0 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 27 Dec 2016 21:02:34 +0100 Subject: [PATCH 09/22] CComponentsHeader: declare l_font, s_font as global Useful for init in header sub classes. So its possible to use other prefined size mode fonts Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/4cdae3fdf6eb269a6d2b9413ff7842cf46e04e45 Author: Thilo Graf Date: 2016-12-27 (Tue, 27 Dec 2016) ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_header.cpp | 5 ++--- src/gui/components/cc_frm_header.h | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index f4f10ba20..f746404d4 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -96,6 +96,8 @@ void CComponentsHeader::initVarHeader( const int& x_pos, const int& y_pos, const height = height_old = h; cch_font = NULL; + l_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]; + s_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]; cch_size_mode = CC_HEADER_SIZE_LARGE; CNeutrinoApp::getInstance()->OnAfterSetupFonts.connect(sigc::mem_fun(this, &CComponentsHeader::resetFont)); @@ -172,9 +174,6 @@ void CComponentsHeader::resetFont() void CComponentsHeader::initCaptionFont() { - Font *l_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]; - Font *s_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]; - if (cch_font == NULL){ cch_font = (cch_size_mode == CC_HEADER_SIZE_LARGE? l_font : s_font); //select matching height diff --git a/src/gui/components/cc_frm_header.h b/src/gui/components/cc_frm_header.h index 6d3169c12..98ec74125 100644 --- a/src/gui/components/cc_frm_header.h +++ b/src/gui/components/cc_frm_header.h @@ -67,7 +67,7 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen ///property: caption text color, see also setCaptionColor() fb_pixel_t cch_col_text; ///property: caption font, see also setCaptionFont() - Font* cch_font; + Font* cch_font, *l_font, *s_font; ///reset font void resetFont(); From fb4d202f8eed5134b8e5cac7416c4a1b826ffb6e Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 29 Dec 2016 23:26:52 +0100 Subject: [PATCH 10/22] settings: add explicit button font Fonts for menu foot and button font are not not necessarily the same thing. TODO: locales Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/65ac231940b75a73d8449ea184d4cf6a97528ae1 Author: Thilo Graf Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ This commit was generated by Migit --- src/gui/osd_setup.cpp | 6 ++++-- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + src/system/settings.h | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 73b9e0ad9..698ac5110 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -160,7 +160,8 @@ size_t moviebrowser_font_items = sizeof(moviebrowser_font_sizes)/sizeof(moviebro const SNeutrinoSettings::FONT_TYPES other_font_sizes[] = { SNeutrinoSettings::FONT_TYPE_SUBTITLES, - SNeutrinoSettings::FONT_TYPE_FILEBROWSER_ITEM + SNeutrinoSettings::FONT_TYPE_FILEBROWSER_ITEM, + SNeutrinoSettings::FONT_TYPE_BUTTON_TEXT }; size_t other_font_items = sizeof(other_font_sizes)/sizeof(other_font_sizes[0]); @@ -214,7 +215,8 @@ font_sizes_struct neutrino_font[SNeutrinoSettings::FONT_TYPE_COUNT] = {LOCALE_FONTSIZE_MOVIEBROWSER_LIST , 17, CNeutrinoFonts::FONT_STYLE_REGULAR, 0}, {LOCALE_FONTSIZE_MOVIEBROWSER_INFO , 17, CNeutrinoFonts::FONT_STYLE_REGULAR, 0}, {LOCALE_FONTSIZE_SUBTITLES , 25, CNeutrinoFonts::FONT_STYLE_BOLD , 0}, - {LOCALE_FONTSIZE_MESSAGE_TEXT , 20, CNeutrinoFonts::FONT_STYLE_REGULAR, 1} + {LOCALE_FONTSIZE_MESSAGE_TEXT , 20, CNeutrinoFonts::FONT_STYLE_REGULAR, 1}, + {LOCALE_FONTSIZE_BUTTON_TEXT , 14, CNeutrinoFonts::FONT_STYLE_REGULAR, 0} }; int COsdSetup::exec(CMenuTarget* parent, const std::string &actionKey) diff --git a/src/system/locals.h b/src/system/locals.h index 4e5548044..9bc970415 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -739,6 +739,7 @@ typedef enum LOCALE_FONTMENU_SCALING_Y, LOCALE_FONTMENU_SCALING_Y_HINT2, LOCALE_FONTMENU_SIZES, + LOCALE_FONTSIZE_BUTTON_TEXT, LOCALE_FONTSIZE_CHANNEL_NUM_ZAP, LOCALE_FONTSIZE_CHANNELLIST, LOCALE_FONTSIZE_CHANNELLIST_DESCR, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index bb613b5cb..2ec577772 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -739,6 +739,7 @@ const char * locale_real_names[] = "fontmenu.scaling_y", "fontmenu.scaling_y_hint2", "fontmenu.sizes", + "fontsize.button_text", "fontsize.channel_num_zap", "fontsize.channellist", "fontsize.channellist_descr", diff --git a/src/system/settings.h b/src/system/settings.h index bb82c729a..6d8bb8dc7 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -688,6 +688,7 @@ struct SNeutrinoSettings FONT_TYPE_MOVIEBROWSER_INFO, FONT_TYPE_SUBTITLES, FONT_TYPE_MESSAGE_TEXT, + FONT_TYPE_BUTTON_TEXT, FONT_TYPE_COUNT }; From b2ce21b349df00c45083f084f7205c6e9081029e Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 29 Dec 2016 21:27:14 +0100 Subject: [PATCH 11/22] locales: add locales for buttontext settings supplement to: 0bf74271652982ff69f378589ee3b8409dce003f Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/4b4c295289c00e1fc10df1ced8efd77d9ce079b4 Author: Thilo Graf Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 1 + data/locale/english.locale | 1 + data/locale/nederlands.locale | 1 + data/locale/slovak.locale | 1 + 4 files changed, 4 insertions(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 34c4d0964..96b9a5525 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -712,6 +712,7 @@ fontmenu.scaling_x_hint2 Horizontal (in %) min 50 / max 200 fontmenu.scaling_y Vertikal (in %) fontmenu.scaling_y_hint2 Vertikal (in %) min 50 / max 200 fontmenu.sizes Schriftgrößen +fontsize.button_text Schaltflächen-Text fontsize.channel_num_zap Direktauswahl fontsize.channellist Kanalliste fontsize.channellist_descr Beschreibung diff --git a/data/locale/english.locale b/data/locale/english.locale index 91d07f067..4ff1c72e3 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -712,6 +712,7 @@ fontmenu.scaling_x_hint2 Horizontal (in %) min 50 / max 200 fontmenu.scaling_y Vertical (in %) fontmenu.scaling_y_hint2 Vertical (in %) min 50 / max 200 fontmenu.sizes Font sizes +fontsize.button_text Button text fontsize.channel_num_zap direct selection fontsize.channellist Channellist fontsize.channellist_descr Description diff --git a/data/locale/nederlands.locale b/data/locale/nederlands.locale index dcd277284..b4c78e9e0 100644 --- a/data/locale/nederlands.locale +++ b/data/locale/nederlands.locale @@ -665,6 +665,7 @@ fontmenu.scaling_x_hint2 Horizontaal (in %) min 50 / max 200 fontmenu.scaling_y Verticaal (in %) fontmenu.scaling_y_hint2 Verticaal (in %) min 50 / max 200 fontmenu.sizes Lettertype grootte +fontsize.button_text Button text fontsize.channel_num_zap directe selectie fontsize.channellist Kanalenlijst fontsize.channellist_descr Omschrijving diff --git a/data/locale/slovak.locale b/data/locale/slovak.locale index 1eb61286d..22ca09a52 100644 --- a/data/locale/slovak.locale +++ b/data/locale/slovak.locale @@ -712,6 +712,7 @@ fontmenu.scaling_x_hint2 Vodorovne (v %) min 50 / max 200 fontmenu.scaling_y Zvislo (v %) fontmenu.scaling_y_hint2 Zvislo (v %) min 50 / max 200 fontmenu.sizes Veľkosti písma +fontsize.button_text Button text fontsize.channel_num_zap Priamy výber fontsize.channellist Zoznam kanálov fontsize.channellist_descr Popis From 4bff9c78cc0bb44b8d2c6f19cff3187870be70ec Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 29 Dec 2016 21:14:58 +0100 Subject: [PATCH 12/22] CComponentsTimer: try to fix possible uncanceled thread Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/e9122fbc4bddbc828bba0b785c805f212e46ecd9 Author: Thilo Graf Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/components/cc_timer.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/gui/components/cc_timer.cpp b/src/gui/components/cc_timer.cpp index 566a829e1..11ae9b35e 100644 --- a/src/gui/components/cc_timer.cpp +++ b/src/gui/components/cc_timer.cpp @@ -98,7 +98,8 @@ void CComponentsTimer::initThread() if (res != 0){ dprintf(DEBUG_NORMAL,"\033[33m[CComponentsTimer] [%s - %d] ERROR! pthread_create\033[0m\n", __func__, __LINE__); return; - } + }else + dprintf(DEBUG_DEBUG,"\033[33m[CComponentsTimer] [%s - %d] started thread ID:%ld \033[0m\n", __func__, __LINE__, pthread_self()); if (res == 0) CNeutrinoApp::getInstance()->OnBeforeRestart.connect(sl_stop_timer); @@ -111,17 +112,17 @@ void CComponentsTimer::stopThread() while (!sl_stop_timer.empty()) sl_stop_timer.disconnect(); - if(tm_thread) { + while(tm_thread) { int thres = pthread_cancel(tm_thread); if (thres != 0) - dprintf(DEBUG_NORMAL,"\033[33m[CComponentsTimer] [%s - %d] ERROR! pthread_cancel, [%d]\033[0m\n", __func__, __LINE__, thres); + dprintf(DEBUG_NORMAL,"\033[33m[CComponentsTimer] [%s - %d] ERROR! pthread_cancel, error [%d] %s\033[0m\n", __func__, __LINE__, thres, strerror(thres)); - thres = pthread_join(tm_thread, NULL); + void* res; + thres = pthread_join(tm_thread, &res); - if (thres != 0) - dprintf(DEBUG_NORMAL, "\033[33m[CComponentsTimer] [%s - %d] ERROR! pthread_join, [%d]\033[0m\n", __func__, __LINE__, thres); - - if (thres == 0) + if (res != PTHREAD_CANCELED) + dprintf(DEBUG_NORMAL, "\033[33m[CComponentsTimer] [%s - %d] ERROR! pthread_join, thread ID:%ld, error [%d] %s\033[0m\n", __func__, __LINE__, pthread_self(), thres, strerror(thres)); + else tm_thread = 0; } } From 7b86130483500087e0496831a5b2c3658c8577e1 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 29 Dec 2016 23:38:18 +0100 Subject: [PATCH 13/22] CComponentsWindow: use FONT_TYPE_BUTTON_TEXT instead FONT_TYPE_MENU_FOOT Buttton text is not the same like footer text. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/6a3b07152f2a1afaffa8d90a374d50ce22821f3b Author: Thilo Graf Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_window.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/components/cc_frm_window.cpp b/src/gui/components/cc_frm_window.cpp index 451d74be3..7137f76ab 100644 --- a/src/gui/components/cc_frm_window.cpp +++ b/src/gui/components/cc_frm_window.cpp @@ -145,7 +145,7 @@ void CComponentsWindow::initVarWindow( const int& x_pos, const int& y_pos, const ccw_right_sidebar= NULL; ccw_body = NULL; ccw_footer = NULL; - ccw_button_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_FOOT]; + ccw_button_font = g_Font[SNeutrinoSettings::FONT_TYPE_BUTTON_TEXT]; ccw_buttons = 0; //no header buttons ccw_show_footer = true; From 624aaed1a8f72039e1a94064d29455edff98a9c1 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 29 Dec 2016 23:42:35 +0100 Subject: [PATCH 14/22] CComponentsHeader/CComponentsFooter: prevent crash on changed font settings Default fonts for header and footer must be handled too. After font settings changes these objects could be invalid. Default fonts have invalid pointers after font changes too. Extra reset is required. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/b98319cb91d9c595c7d43fb1198e0064ffee99c2 Author: Thilo Graf Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_footer.cpp | 13 ++++++++++++- src/gui/components/cc_frm_footer.h | 3 +++ src/gui/components/cc_frm_header.cpp | 12 +++++++++--- src/gui/components/cc_frm_header.h | 2 ++ 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/gui/components/cc_frm_footer.cpp b/src/gui/components/cc_frm_footer.cpp index 9874a122b..befc333e8 100644 --- a/src/gui/components/cc_frm_footer.cpp +++ b/src/gui/components/cc_frm_footer.cpp @@ -68,6 +68,12 @@ void CComponentsFooter::initVarFooter( const int& x_pos, const int& y_pos, const //init footer width width = w == 0 ? frameBuffer->getScreenWidth(true) : w; + //init default fonts + initDefaultFonts(); + + //init default button text font + ccf_btn_font = g_Font[SNeutrinoSettings::FONT_TYPE_BUTTON_TEXT]; + //init footer height initCaptionFont(); height = max(h, cch_font->getHeight()); @@ -88,7 +94,6 @@ void CComponentsFooter::initVarFooter( const int& x_pos, const int& y_pos, const corner_type = CORNER_BOTTOM; ccf_enable_button_bg = false /*g_settings.theme.Button_gradient*/; //TODO: not implemented at the moment - ccf_btn_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_FOOT]; chain = NULL; addContextButton(buttons); @@ -426,3 +431,9 @@ void CComponentsFooter::enableButtonShadow(int mode, const int& shadow_width, bo } } } + +void CComponentsFooter::initDefaultFonts() +{ + l_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]; + s_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_FOOT]; +} diff --git a/src/gui/components/cc_frm_footer.h b/src/gui/components/cc_frm_footer.h index 4c5239d56..b70292765 100644 --- a/src/gui/components/cc_frm_footer.h +++ b/src/gui/components/cc_frm_footer.h @@ -84,6 +84,9 @@ class CComponentsFooter : public CComponentsHeader ///property: set font for label caption, see also setButtonFont() Font* ccf_btn_font; + ///init default fonts for size modes + virtual void initDefaultFonts(); + ///container for button objects CComponentsFrmChain *chain; diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index f746404d4..7f36522c4 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -96,8 +96,7 @@ void CComponentsHeader::initVarHeader( const int& x_pos, const int& y_pos, const height = height_old = h; cch_font = NULL; - l_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]; - s_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]; + initDefaultFonts(); cch_size_mode = CC_HEADER_SIZE_LARGE; CNeutrinoApp::getInstance()->OnAfterSetupFonts.connect(sigc::mem_fun(this, &CComponentsHeader::resetFont)); @@ -167,9 +166,16 @@ void CComponentsHeader::setCaptionFont(Font* font) void CComponentsHeader::resetFont() { if (cch_font){ - cch_font = NULL; dprintf(DEBUG_DEBUG, "\033[33m[CComponentsHeader][%s - %d] reset header font \033[0m\n", __func__, __LINE__); + cch_font = NULL; } + initDefaultFonts(); +} + +void CComponentsHeader::initDefaultFonts() +{ + l_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]; + s_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]; } void CComponentsHeader::initCaptionFont() diff --git a/src/gui/components/cc_frm_header.h b/src/gui/components/cc_frm_header.h index 98ec74125..df444ee7a 100644 --- a/src/gui/components/cc_frm_header.h +++ b/src/gui/components/cc_frm_header.h @@ -102,6 +102,8 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen ///init font object and recalculates height if required void initCaptionFont(); + ///init default fonts for size modes + virtual void initDefaultFonts(); ///sub: init icon object void initIcon(); ///sub: init caption object From 0cc71f1a364c2856c72b91383f07366a2a12971c Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 29 Dec 2016 23:44:56 +0100 Subject: [PATCH 15/22] CComponentsButton: try to fix font size in buttons Some text in button chains had different font sizes. To see in some Messageboxes. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/b3354089136e6a15d033bf7fd09f707e9b4ad51b Author: Thilo Graf Date: 2016-12-29 (Thu, 29 Dec 2016) ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_button.cpp | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/gui/components/cc_frm_button.cpp b/src/gui/components/cc_frm_button.cpp index 00e068293..18b3d31ea 100644 --- a/src/gui/components/cc_frm_button.cpp +++ b/src/gui/components/cc_frm_button.cpp @@ -33,7 +33,6 @@ #include #include "cc_frm_button.h" - using namespace std; CComponentsButton::CComponentsButton( const int& x_pos, const int& y_pos, const int& w, const int& h, @@ -121,7 +120,7 @@ void CComponentsButton::initVarButton( const int& x_pos, const int& y_pos, const cc_btn_icon_obj = NULL; cc_btn_text_obj = NULL; cc_btn_dy_font = CNeutrinoFonts::getInstance(); - cc_btn_font = NULL; + cc_btn_font = g_Font[SNeutrinoSettings::FONT_TYPE_BUTTON_TEXT]; cc_btn_icon = icon_name; cc_btn_text = caption; cc_directKey = CRCInput::RC_nokey; @@ -194,8 +193,12 @@ void CComponentsButton::initCaption() int x_cap = w_frame; x_cap += cc_btn_icon_obj ? cc_btn_icon_obj->getWidth() : 0; + /* use system defined font as default if not defined */ + if (cc_btn_font == NULL) + cc_btn_font = g_Font[SNeutrinoSettings::FONT_TYPE_BUTTON_TEXT]; + int w_cap = width - w_frame - append_x_offset - x_cap - w_frame; - int h_cap = (height*85/100) - 2*w_frame; + int h_cap = min(height - 2*w_frame, cc_btn_font->getHeight()); /*NOTE: paint of centered text in y direction without y_offset looks unlovely displaced in y direction especially besides small icons and inside small areas, @@ -208,17 +211,12 @@ void CComponentsButton::initCaption() //text and font Font* def_font = *cc_btn_dy_font->getDynFont(w_cap, h_cap, cc_btn_text); - if (cc_btn_font == NULL){ - /* use dynamic font as default font if no font defined */ + /* If button dimension too small, use dynamic font, this ignores possible defined font + * Otherwise definied font will be used. Button dimensions are calculated from parent container (e.g. footer...). + * These dimensions must be enough to display complete content like possible icon and without truncated text. + */ + if ((cc_btn_font->getHeight()- 2*w_frame) > h_cap && (cc_btn_font->getRenderWidth(cc_btn_text)- 2*w_frame) > w_cap) cc_btn_font = def_font; - }else{ - /* if button dimension too small, use dynamic font as default font size, this ignores possible defined font - * Otherwise definied font will be used. - */ - if (cc_btn_font->getHeight() > h_cap){ - cc_btn_font = def_font; - } - } cc_btn_text_obj->setText(cc_btn_text, CTextBox::NO_AUTO_LINEBREAK, cc_btn_font); cc_btn_text_obj->forceTextPaint(); //here required; From 600dfdfc28667bfaef4e5ea7fb72ba9192d6c57a Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 30 Dec 2016 21:51:57 +0100 Subject: [PATCH 16/22] locale: fix funny typo XD Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/f8e2df8ac7672e52b663528645449beeb4d0bb5f Author: vanhofen Date: 2016-12-30 (Fri, 30 Dec 2016) Origin message was: ------------------ - locale: fix funny typo XD ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/english.locale | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index bc3df1419..37acaca6d 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -356,7 +356,7 @@ colormenu.hd_preset LCD colormenu.menucolors Colors colormenu.osd_preset TV preset colormenu.progressbar_active Aktive part color -colormenu.progressbat_passive Background +colormenu.progressbar_passive Background colormenu.sd_preset CRT colormenu.textcolor Text color colormenu.themeselect Select theme From 017064916eb6172e35db6de350ccbbf2706cbcc1 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Sun, 1 Jan 2017 22:57:37 +0100 Subject: [PATCH 17/22] src/driver/pictureviewer/png.cpp: Add support for gray scale PNGs... ...with alpha channel Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/79d9b88ae1e6fb823ec6346a8db6bd049fff40d5 Author: Michael Liebmann Date: 2017-01-01 (Sun, 01 Jan 2017) ------------------ This commit was generated by Migit --- src/driver/pictureviewer/png.cpp | 46 +++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/src/driver/pictureviewer/png.cpp b/src/driver/pictureviewer/png.cpp index 5e4009454..c684eecf3 100644 --- a/src/driver/pictureviewer/png.cpp +++ b/src/driver/pictureviewer/png.cpp @@ -35,6 +35,7 @@ int int_png_load(const char *name, unsigned char **buffer, int* xp, int* yp, int int bit_depth, color_type, interlace_type, number_passes, pass, int_bpp; png_byte * fbptr; FILE * fh; + bool updateInfo_alreadyRead = false; if(!(fh=fopen(name,"rb"))) return(FH_ERROR_FILE); @@ -63,18 +64,49 @@ int int_png_load(const char *name, unsigned char **buffer, int* xp, int* yp, int png_init_io(png_ptr,fh); png_read_info(png_ptr, info_ptr); png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); - if (alpha) + if (alpha) // 24bit or gray scale PNGs with alpha-channel { *bpp = png_get_channels(png_ptr, info_ptr); - if ((*bpp != 4) || !(color_type & PNG_COLOR_MASK_ALPHA)) - { + if ((*bpp == 2) && (color_type == PNG_COLOR_TYPE_GRAY_ALPHA)) { + if (bit_depth < 8) { + /* Extract multiple pixels with bit depths of 1, 2, and 4 + from a single byte into separate bytes + (useful for paletted and grayscale images). */ + png_set_packing(png_ptr); + /* Expand grayscale images to the full 8 bits + from 1, 2, or 4 bits/pixel */ +#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR <= 2 && PNG_LIBPNG_VER_RELEASE < 9 + png_set_gray_1_2_4_to_8(png_ptr); +#else + png_set_expand_gray_1_2_4_to_8(png_ptr); +#endif + } + /* Expand the grayscale to 24-bit RGB if necessary. */ + png_set_gray_to_rgb(png_ptr); + /* Update the users info structure */ + png_read_update_info(png_ptr, info_ptr); + updateInfo_alreadyRead = true; + *bpp = png_get_channels(png_ptr, info_ptr); + if (*bpp != 4) { + /* No 4 channels found + load PNG without alpha channel */ + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + fclose(fh); + return fh_png_load(name, buffer, xp, yp); + } + } + else if ((*bpp != 4) || !(color_type & PNG_COLOR_MASK_ALPHA)) { + /* No 4 channels & not an alpha channel found + load PNG without alpha channel */ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); fclose(fh); return fh_png_load(name, buffer, xp, yp); } - // 24bit PNGs with alpha-channel int_bpp = 4; -// png_set_swap_alpha(png_ptr); + + /* Expand paletted or RGB images with transparency + to full alpha channels so the data will + be available as RGBA quartets. */ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr); }else // All other PNGs @@ -105,7 +137,9 @@ int int_png_load(const char *name, unsigned char **buffer, int* xp, int* yp, int if (bit_depth == 16) png_set_strip_16(png_ptr); number_passes = png_set_interlace_handling(png_ptr); - png_read_update_info(png_ptr,info_ptr); + /* Update the users info structure */ + if (!updateInfo_alreadyRead) + png_read_update_info(png_ptr,info_ptr); unsigned long rowbytes = png_get_rowbytes(png_ptr, info_ptr); if (width * int_bpp != rowbytes) { From dc37af675d62cc63ecc8ee21942b3e60bab275f0 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 2 Jan 2017 21:59:03 +0100 Subject: [PATCH 18/22] infoviewer_bb: use 10px offset for left ca-icons Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/f8a680fd3cf696c84be1810415dd00cf78e1b220 Author: vanhofen Date: 2017-01-02 (Mon, 02 Jan 2017) Origin message was: ------------------ - infoviewer_bb: use 10px offset for left ca-icons ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/infoviewer_bb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index 55b899325..e41829b09 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -1026,7 +1026,7 @@ void CInfoViewerBB::paint_cam_icons() int emu_pic_startx = g_InfoViewer->ChanInfoX + (g_settings.infobar_casystem_frame ? 20 : 10); int py = g_InfoViewer->BoxEndY + (g_settings.infobar_casystem_frame ? 4 : 2); const char *icon_name[] = {"mgcamd","doscam","oscam","osemu","newcs","gbox"}; - static int icon_space[] = {14,14,14,14,14,14}; + static int icon_space[] = {10,10,10,10,10,10}; int icon_sizeH = 0; int icon_sizeW = 0; bool useCI = CCamManager::getInstance()->getUseCI(); From 77ac98baa4336ac18f9d7bc70abda1ab33c2f28d Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 2 Jan 2017 22:35:44 +0100 Subject: [PATCH 19/22] infoviewer_bb: don't use a smaller icon-offset in ca-bar's discrete mode Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/e2b1b13d4d1d0031afe98a063f7d19de2efd7e42 Author: vanhofen Date: 2017-01-02 (Mon, 02 Jan 2017) Origin message was: ------------------ - infoviewer_bb: don't use a smaller icon-offset in ca-bar's discrete mode ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/infoviewer_bb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index e41829b09..70ffef74d 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -799,7 +799,7 @@ void CInfoViewerBB::paint_ca_icons(int caid, const char *icon, int &icon_space_o } else { icon_space_offset += icon_sizeW[icon_map[caid].first]; px = endx - icon_space_offset; - icon_space_offset += 4; + icon_space_offset += icon_space; //NI } if (px) { From 71213a44adc8a448b60d3915db8d22bed7dde12d Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 2 Jan 2017 23:51:12 +0100 Subject: [PATCH 20/22] infoviewer_bb: use OFFSET defines in getBBIconInfo() Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/b48c6579911ff5f330189d11221df99b186fdc49 Author: vanhofen Date: 2017-01-02 (Mon, 02 Jan 2017) Origin message was: ------------------ - infoviewer_bb: use OFFSET defines in getBBIconInfo() ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/infoviewer_bb.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index fb95da0db..1545c2baf 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -147,7 +147,7 @@ void CInfoViewerBB::getBBIconInfo() initBBOffset(); BBarY = g_InfoViewer->BoxEndY + bottom_bar_offset; BBarFontY = BBarY + InfoHeightY_Info - (InfoHeightY_Info - g_Font[SNeutrinoSettings::FONT_TYPE_MENU_FOOT]->getHeight()) / 2; /* center in buttonbar */ - bbIconMinX = g_InfoViewer->BoxEndX - 8; //should be 10px, but 2px will be reduced for each icon + bbIconMinX = g_InfoViewer->BoxEndX - OFFSET_INNER_MID; CNeutrinoApp* neutrino = CNeutrinoApp::getInstance(); for (int i = 0; i < CInfoViewerBB::ICON_MAX; i++) { @@ -190,7 +190,9 @@ void CInfoViewerBB::getBBIconInfo() break; } if (iconView) { - bbIconMinX -= w + 2; + if (i > 0) + bbIconMinX -= OFFSET_INNER_MIN; + bbIconMinX -= w; bbIconInfo[i].x = bbIconMinX; bbIconInfo[i].h = h; } @@ -202,7 +204,7 @@ void CInfoViewerBB::getBBIconInfo() bbIconMaxH = std::max(bbIconMaxH, bbIconInfo[i].h); } if (g_settings.infobar_show_sysfs_hdd) - bbIconMinX -= hddwidth + 2; + bbIconMinX -= hddwidth + OFFSET_INNER_MIN; } void CInfoViewerBB::getBBButtonInfo() From eaa0cb4d0cd862872f62910684cd0f50f61a454c Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 2 Jan 2017 23:53:03 +0100 Subject: [PATCH 21/22] infoviewer_bb: use larger offsets for channel-status icons Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/bdf5b733d187b498bd465e65d2cdf2eabfb6b2f6 Author: vanhofen Date: 2017-01-02 (Mon, 02 Jan 2017) Origin message was: ------------------ - infoviewer_bb: use larger offsets for channel-status icons ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/infoviewer_bb.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index 4ce7edc04..1b614db03 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -208,7 +208,7 @@ void CInfoViewerBB::getBBIconInfo() } if (iconView) { if (i > 0) - bbIconMinX -= OFFSET_INNER_MIN; + bbIconMinX -= OFFSET_INNER_SMALL; //NI bbIconMinX -= w; bbIconInfo[i].x = bbIconMinX; bbIconInfo[i].h = h; @@ -221,7 +221,7 @@ void CInfoViewerBB::getBBIconInfo() bbIconMaxH = std::max(bbIconMaxH, bbIconInfo[i].h); } if (g_settings.infobar_show_sysfs_hdd) - bbIconMinX -= hddwidth + OFFSET_INNER_MIN; + bbIconMinX -= hddwidth + OFFSET_INNER_MID; //NI } void CInfoViewerBB::getBBButtonInfo() From 90b59d60d3039beebcd03e82730e55954b403ede Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 2 Jan 2017 23:54:36 +0100 Subject: [PATCH 22/22] icons: rework channel-status icons Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/bb1152052877bd801b710b625490b84a88961563 Author: vanhofen Date: 2017-01-02 (Mon, 02 Jan 2017) Origin message was: ------------------ - icons: rework channel-status icons ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/icons/status/channel/16_9.png | Bin 300 -> 391 bytes data/icons/status/channel/16_9_gray.png | Bin 298 -> 383 bytes data/icons/status/channel/ca2.png | Bin 409 -> 559 bytes data/icons/status/channel/ca2_gray.png | Bin 408 -> 522 bytes data/icons/status/channel/dd.png | Bin 232 -> 375 bytes data/icons/status/channel/dd_avail.png | Bin 231 -> 366 bytes data/icons/status/channel/dd_gray.png | Bin 230 -> 368 bytes data/icons/status/channel/radiotextget.png | Bin 268 -> 246 bytes data/icons/status/channel/radiotextoff.png | Bin 261 -> 245 bytes data/icons/status/channel/radiotextwait.png | Bin 261 -> 245 bytes data/icons/status/channel/res_000.png | Bin 253 -> 227 bytes data/icons/status/channel/res_1080.png | Bin 305 -> 406 bytes data/icons/status/channel/res_1280.png | Bin 348 -> 459 bytes data/icons/status/channel/res_1440.png | Bin 275 -> 366 bytes data/icons/status/channel/res_1920.png | Bin 322 -> 430 bytes data/icons/status/channel/res_288.png | Bin 367 -> 434 bytes data/icons/status/channel/res_352.png | Bin 344 -> 362 bytes data/icons/status/channel/res_382.png | Bin 385 -> 472 bytes data/icons/status/channel/res_480.png | Bin 345 -> 409 bytes data/icons/status/channel/res_528.png | Bin 378 -> 459 bytes data/icons/status/channel/res_544.png | Bin 303 -> 314 bytes data/icons/status/channel/res_576.png | Bin 362 -> 435 bytes data/icons/status/channel/res_704.png | Bin 333 -> 406 bytes data/icons/status/channel/res_720.png | Bin 359 -> 448 bytes data/icons/status/channel/res_hd.png | Bin 240 -> 303 bytes data/icons/status/channel/res_sd.png | Bin 285 -> 377 bytes data/icons/status/channel/subt.png | Bin 221 -> 341 bytes data/icons/status/channel/subt_gray.png | Bin 217 -> 333 bytes data/icons/status/channel/tuner_1.png | Bin 200 -> 244 bytes data/icons/status/channel/tuner_2.png | Bin 251 -> 249 bytes data/icons/status/channel/tuner_3.png | Bin 263 -> 250 bytes data/icons/status/channel/tuner_4.png | Bin 207 -> 328 bytes data/icons/status/channel/vtxt.png | Bin 289 -> 246 bytes data/icons/status/channel/vtxt_gray.png | Bin 292 -> 245 bytes 34 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/icons/status/channel/16_9.png b/data/icons/status/channel/16_9.png index 6c4873bdc82162e6c79f7889e8b993bb75bbfb8d..246f836201229d6c493f24374b131b10bf862a00 100644 GIT binary patch delta 354 zcmV-o0iFJ=0*3=3iBL{Q4GJ0x0000DNk~Le0000Y0000K2nGNE0O(}za*-i0f8hZF z784xn;6bAR009(9L_t(Y$JLfSZiFxtgeNOrL4|3354T7hA>}H!0C5X*jMW~)l`HPy z(zv5|O)5)S2Us>g0;U5GX#CCN=dJ6ycV@m3QH~wN%o7n^GiJUG!;m}Y_Q(M#Wv-OE zUx;Y85CGtu0};Ap{5^zLEWNB5R!kfYuu0 zIQ}1zrOwkCvDQ93A!}sLIU{qOd+!(DCvyb8`hQF$?c95hzVA0*zvj=jILty++WFR5 zI@P!4I6;_sl2Yy#KuQT_o-!i3Dy8l_|0;fb0JHh!yR=&{Qm%m^(n}7hV+$%; z5hQ#|Y(+os{{WbI#KCn3@N7ZE(1HkDA^>z&BZQF3H4)wN{v+qeX?^7!Illn#L^SOo zQ3?2Rz6bEyM54HP5-qoK^CbFCTsdzzPbSu?AoSs}LTCZdD@1=vqViaj2QdGIgypf! zL?$#@ukO^D&^(UT_rl0R+)F}w9P{4Rs^^(GUH^`jM9eLS@JEYy15M#evffqm82|tP M07*qoM6N<$f-(ne8~^|S diff --git a/data/icons/status/channel/16_9_gray.png b/data/icons/status/channel/16_9_gray.png index 21f7fb7c8000e9d227c716b987f0278e6fdb97af..acc79304f958aeb9ab9bb649e3e849635acbe273 100644 GIT binary patch delta 346 zcmV-g0j2(`0{;RbiBL{Q4GJ0x0000DNk~Le0000Y0000K2nGNE0O(}za*-i0f8hZF z78560>!^nS009h1L_t(Y$JLfW&VwKjgN)_kx%KKxCU}lt}u!~4Z#GZbo6pS(3 ziKG?gWYR~M2&DcrpZ7cG(6;RlX5?L^mFJ%4q+*OvO8q1IaUyG;0{}B4gz!BgOP=Q$ z@!r4ekTo*DnURv`&*<}vln5+YwTnpZc?bc_y!rjL{$@)So)4%!2jtTKFy_!1IgSt! snYGr{1Zb@xB6CATS8MIP@>TKg0V?K{0;&QbiBL{Q4GJ0x0000DNk~Le0000X0000K2nGNE00UE0agiY~f8Y!W z6FD=@T;ePM006g1L_t(Y$L*ET4TCTYM6VSi1oo=fAscuKFVJqmT7e0000< KMNUMnLSTZ89cga> diff --git a/data/icons/status/channel/ca2.png b/data/icons/status/channel/ca2.png index 6582f4b9a3bfe2b7898613a9b8353b59de349912..2edb12cbcac123ea8a734ee57d2f241108c9ba7d 100644 GIT binary patch delta 523 zcmV+m0`&cv1Fr-jiBL{Q4GJ0x0000DNk~Le0000S0000K2nGNE0G?i5`H>+of8hZF z78Ed+dAo-I00F#7L_t(Y$HkVvs^UNt#y`aobXp5Ztb73>5UV_ZXtjmN)n0r618M99 zeFGaUVpF7r!}t`q-EN-(pGq2r;nN_AL?WIl^*j$j5P(t&RaG$@4#5~hwOWmQ z7K=qBX+EDvrBVR^2qECQE`$)@2TCbn+cw(mHUL1=G-#R@-Cr&j^!t4TK>z?Kl}Zo5 z$z<~PRq8knrqe0z_xr>7VexoGx7&?iFYUw8XoUHE9yLB=46D`Zw~!%`ky8Z z=Nz-y>`Nct_rH|!zs}P41ErK#MNwi0DT)FqO zG&9mA&;d51g>yh+`}&Ks6G<+zZULB#^*yjGX<)kx97laM=BT&=Tx4B3La&v*bzR^& z+B6Sb*zN!unVu71Xq|vYtRH|RJIzRtq!-(5pdF>9n8SDk8j||)P8TyEN=s^eXY2N3 z4s!Z!yt95O??_S#G;JTn2RjYi0B4fk@{0=WW$KR+LP-BV)t`c%sse3Q0eT0lc2%Vc S35|yU0000y~-| diff --git a/data/icons/status/channel/ca2_gray.png b/data/icons/status/channel/ca2_gray.png index bf5f6056622a829de562889f5924231b2e704ea5..45fe6b3199262c5d5e4b8e26ef16c1ff77e37b8d 100644 GIT binary patch delta 486 zcmV+of8hZF z78EBHsy;vf00EatL_t(Y$IX^8j^aQNMIVR?jEsmd$Rs$yB+hUMci3>W=io@AIfw%S zrwEw<0RaX?LfhB`jbJlNqgi%X3D~WyyG#A*e^s@*G#ZV5XszEx#NdgcwLXc+TSaUA z9)_V2$MG|H*tTu>zW-4ck*C7|f8sbsM2s>oj+X-~-zAu)Nwe8RL`af^&1S>(dVLPi z^E|rUE~Qeb*h|xt@pw#xF{j@kkH^04SyKeII~!yG^^@z6sp#fA_xy{vTbc zltOEbh+vu~!{Ly_;eg{fMb3J?E-bB9t8_XY0J1D&wOWy7+5N!FDodG||`JY^a4`TUPL-`V(2yY%%yt@X*a?Wcom+eT}Bs))#&@B1Gw c`eOY21?^3_5l%u0jsO4v07*qoM6N<$f^g{H4FCWD delta 371 zcmV-(0gV2N1egOMiBL{Q4GJ0x0000DNk~Le0000Q0000K2nGNE0Fyv1zL6m?f8Y!W z6FUN~w1AWV00AXQL_t(Y$L*9oN<&c)g};c6g+G;rl^`kIgII{2=mt_KE9i==f*h%w-}EYNIO zApR6+d{l#^DzFMn0UhAn_IqINx`j*3AR8sGopldYW92?Kepcpb^q?f?+*!AfcVxQ{)Fqw7gPjKMfD79nnf3%YNYz7Ex&QyE{uK057HGQ+&?jO4RAi5J RpNaqg002ovPDHLkV1g%@qRRjP diff --git a/data/icons/status/channel/dd.png b/data/icons/status/channel/dd.png index af801a1c46d97cad968d59efe25f154b6619b8a4..58dae7d4b0de1fd5456a6c10f2e890d7997211a1 100644 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^5|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(x;7OSQNnlmskvUs{UhFF|_8fuu=VjwVQ&W)y1 zi@w@t=>Fu?^#9q~cx#dQpGPI<9h??DlHW3;D`|Gfwi7R>bg+nM-pn%Dl(y$}(RAa%eUXV z>L_vc+crk~zPI6WKjkG_zEr$d7XM%tx%=CLLis)43(mRTvuxj_6L|gWc^-y@dFdv; z&5069;st>sCpP8mKNxD{xej!ldhN{o_YW=8%RFz~ RQUL}LgQu&X%Q~loCIHZonfL$z literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQfx`y?k)^}8FCqfd&A7^fFhg) z9+AZi4BWyX%*Zfnjs#GUy~NYkmHhz^4>zyKx9Q8gfI_97E{-7|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(x;swXGez5@#V_H=O!u{ixSbYt#e1A#pfzno+m zg$o${4r;Y>DHpE@IU30$zNVf_S3&OpuZHOTB}$6YZOli7cvRwT`HslGujH@$Qu|+1 zNn9ywV{+#SCzt1LE_#nGwrMW4{kd>!-rB9#g$3XG@iAzs3ItXkI#{~H;WLL!+rn?3 zZJK8q`d&UOnane%IKV6PO!fY|jX_-JEG3fXP5PhZa<95YV3o&8Cpo8zir2n;r!uZ> z*ZuqV#=TD`{yQvKqW(N)yz$CvBaD@nOsMb+6;f15PCOh;|z`&CHL< zE&33=t@}jO7yjiQE@ErHzB>|?-ErcQz{Q(U)wVBA|M|t{^fD)HZq1Efz+hnTboFyt I=akR{0A0wFcmMzZ literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQfx`y?k)^}8FCqfd&A7^fFhg) z9+AZi4BWyX%*Zfnjs#GUy~NYkmHhz^4>vCt&y3lcK%o*(7sn8b)5#jTy1Xe11QU`H z5@tAhA3mCqX>oXh$sE?{NA^^H{5i2@fx?DDNJdm3rce0zV}_vGDqPc_sM( zv5Qed#?OV)3m3Odo_4Nq$@l9^PE3CEDV&FgCsXC*^l8)n$@d22wC!KC^kL=}BN+zO XZ%UOPq|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(x;221>JvI2$vdb&7ezMIfM?D$4)ypA z^$#C7&)Yb``)2tQ&!yu354R`$SNi9aRC05&bClQZEu7rDtvGL<@%ZFnR}%aE=$Uk- zRT~x>e)e!#-Zb-k?fr1WW4a#|m#*nCoUSaG%g4uH=q33{)Gc=?o|3sKG-hR4@zeXT9vGx43+BT&QE-S)wuwEoXNLwb5;W|AQ(Jd L{an^LB{Ts5Z+4le literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQfx`y?k)^}8FCqfd&A7^fFhg) z9+AZi4BWyX%*Zfnjs#GUy~NYkmHhz^4>ymsOYAC;QN^Avjv*GOlQnd8c~ce$CL|>! z%y9HRd^97|;_w8MIjqxNGBaP+n=CZv;o*_Id-ra3=S20ZPnB4d|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(xus;TNlkAOnWo-U3d7N_4%HRL^Dz{7G^%f6+l zQo=!@WKEaygjI()8a^1b^6a1DuuN;B)f0FA@7wY|Oe?nYxW}-Fhvy{Q10I$4QQ0Nm zC)NaB%}6`XmtYa&a^x_9{O1 m)vG4tFdoQEJHKRl<=(U)<7u4nJa0`PlBg3pY5H=O_6IyXT-Jho$}8J}LNh&G978NlCu`{H@}?{hOh`&d znBnMs_-IC^#o-Aib6BSzX=dmDx0rKpVnV`+fPjFAZs&Q8K;Y=;*f>#UdiMmWpE@lf z2V$5?S90(biiq>)%y`W4`}!6y-SrX@5|>uwRwx8nR>w&KHrxnc(= z@hzRaBF|#e>y?wDE?i#Q)YN2Q_^QqQ;87M{?^%-b+_Vofs+X%b*=)G(19T*Vr>mdK II;Vst0Ag5I*8l(j diff --git a/data/icons/status/channel/radiotextoff.png b/data/icons/status/channel/radiotextoff.png index c78523601ae4282b6ea6a6c9213ac6eaaa787861..e81b4a216c4a49ecea1d850f579c19e45207542f 100644 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^5|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(xul3pHssX(D7PZ!4!i_>qXZsa|nz{4`PLqFnR zb;Se^lfY*QOEh?AZ)gu+@I#F|z*S-C18?!~+tz)UR&3{Sk6{rH&q=liJSy*_vP-^C ztO>lDk#?Rh!6L@x$X!;4JE=v>#9QteEd9b6=JoR=>t5e!%}*07e{5|2$*MAY6(9TR lRTFX;4`imDUoyRNujq91NG)%VwLsS}c)I$ztaD0e0st@NRu=#O literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQfx`y?k)_!84fV$3SAcfNpKc; zL>4nJa0`PlBg3pY5H=O_6IyXT-I#8A9NgmLX$jQ978NlCu`{H@}?{hOh`&d znBnMs_-IC^#o-Aib6BUlWM;msH(6-T!^0za_wL>7!V|^@Ku}U%ZanF6kzkPW{MHFf zGrSk*i5^t!d-SN0w^%0e|E#c;PeqxTou#(&^1E<7=M6EH$$Fs8#>Tes(xppfQ7qn8 zQ~Va~dU#@;y5`OYr!tjyKS*k7Q$5S$zj*3HhP-9ksyQ4n%Ym+A@O1TaS?83{1OS{? BQ%(Q? diff --git a/data/icons/status/channel/radiotextwait.png b/data/icons/status/channel/radiotextwait.png index a96b7124c237b719be9d5a794576796f798146b3..5c66be25ee14874058e9ca615c682f09b438f06c 100644 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^5|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(xu`mLX4{{ad$dAc};Se$-4bs_Ho10I&UTKt=u zzJE|?4SmkRb4n+)?WA0s;sZ}{ja5P`75I7I<;s4T7G&jdk6{rH&q=-qJSy+6MU{M? zSQB_PBdwI(Kt@mL(K{xEcSe?%xewhoc>aeo%Zc4|ENKr>mdKI;Vst09II3VE_OC literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQfx`y?k)_!84fV$3SAcfNpKc; zL>4nJa0`PlBg3pY5H=O_6IyXTvjGAHa?9&p-G-Djv*GO-%dHm+2X+CI=@@B zqxPl~-)6H3QaOqKFCA{|a;v`3-E@kt`*e$ILEp&_&pryXh2|Dm@jrOVx!(3+j8NP% zsWdZLFXane9`j!?D<~b+e|Gie!|C_+)~I!7PF?Z7=l|?VrQZj$qm=}T4$t;I_kPU> zR*A-2XRP`o=Dm)-`7ru-@asjZF8?j8ZF2Xo_|SBI50{p{c7dKL&~*%+u6{1-oD!M< D*HB{XE)7O>#AtRHRvWQjf|0JMLfv1aOh{y4_*9>_NI|#U3?0l-( zcj!Zeg67%>79P_M%JeTSIBK$Nu6;J=4vE08ce-d-+roEnV%imV7H8t8iiGPxt ziw*n9A`6BSJ`-fvyRIK#GuzO}o0GsS{o}dA?dTxO87epKsh`wVnz!im|7ym4;Tn#K TSJqww+RfnU>gTe~DWM4fr2J6c literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^Q!3HGxd{xYV6kC$Fy9+}p2<}q(eF7-LS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=if@G$bpDXmG)Cy03KKWqk^~I zslNMQwj=lsYYF%DO?(UO-!B$f^T?fJQq4W*2Lh86Ubs`CmKITd1 zYUPj1**2v87CUI~n|GJPfbqJ+K5cWR8*(}PwzHWlWnE5Ay%S!)?*ClROT|;~GXH${ uL~28hRJ1~SZ{^!N_fP1~d>R$DQ(Wr4&sza`9UGvl7(8A5T-G@yGywou$5?^@ diff --git a/data/icons/status/channel/res_1080.png b/data/icons/status/channel/res_1080.png index 044397cb9b535d80e4c4543228bb739d03a3edd8..f3d4d61d692143d3fda8fe15ad24e362257be58e 100644 GIT binary patch literal 406 zcmV;H0crk;P)nBNan*ZxP=$v~g_Ggcz>pD2+V6BC<7S1`eZR-!95aRnKLEsNyp63uk zJbFwB0b`8c75pi7cn&_(vMi8N?&jn)O{e*XD_GYx=6T*FZ<^*b|En%lRlRpz=jAtN zjKTl1a2Sx8SEZD9U`i=4^BNM-Rcn3sbmf2h0E2p_x!xc@q5uE@07*qoM6N<$g30=? AC;$Ke literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?1wl2?Gl4^K@|x@i_i=sw3AS0|D3g9`}sh z^Rzq5Px!?=m3kDE|8U}_t$Ur8T#d6xHo8JBKl&YShn>TE$y z0e6_2JhaJzT`LK=<2&&5QP( xvSj~q^ys=peD{7A{*L}Hxb8a7^DT$=GM;_zWoKgCeG}*t22WQ%mvv4FO#t9VcMbpm diff --git a/data/icons/status/channel/res_1280.png b/data/icons/status/channel/res_1280.png index d13a8d1cadb35d6017985ed08c0a964684860594..566ba2fbe537a270be7df1faed5b812090e4dbe5 100644 GIT binary patch literal 459 zcmV;+0W|)JP)x9T7<$Z{5RnOuz|0L1ZI;ZO`MG>+ro5laR zgF*-dK`_*}!vVmyZS42^+5Bt=A34_dZ=Dw6cc1<6+wWJa)olLl8Eo5jR`2BuKEigp zh41?#*SfA7)@hnTDK$9XwkSU=<6?qC!}sH$o-{BStT=I^lx!|*#zQ!RgU zN-6w57G4&}%#D;%J7H2vFmtmcqK)G?CrzLHUq9VKr&UGUP#*vQ002ovPDHLkV1g7! B$_D@d literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?Qh#6e*Wu17)n4=3&lUB6)MY!2rY*KUP1m4waw$@%&7=gA3c=L%%F98gRt zdOYFe#mT>w+Cqgl>1dbeDK&4hn!qeA7-?Da>dzdDKU@-mmbFdW*T%5ugszij?rBKo z-4nGl+{^a$yhBx+Jx~5Bdu~KM zHC)hN_aN)8_IH(M)&56$I&A%y9#Cp2*UQs7wn4MmeEScs9-BXFj)hh%KPCC#k*S$! q!G>#MfA9b5f1;;2*?8fkYKHIS5$*BbTQ&hb&EV{XE)7O>#AtRHRyxhv@{AQrgZ%-G;5Rc<;ry1rQHsEosXDa@X zQu)+&i_`@{t_sd7Zs}dEH9ZR5?;o6;{C?rZYtI^;t+#e?FUh^c({gctph(Mdf1w8l ztN$x0r7N9U=%KVp=%S|Z#Lp(al|6yN@-r;AUyJK=S;EK1kkq5F=nu!!ApRM5y?739 z=$uHfDxoo?F}Y?mu#F=lOX1VEKaU@298k zJS_LeGrs!Ey+8k!|JZ%+&)F^Zr%(R<_F%D>=0S7ZTZ>+Ht3vYTlad`?C<>d zesACRK6Kjlb=iOPx$D_PCQhAswb9VnCFN|#iOd^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?OtN^20X6ug34QL z|4$7lKf!j7bz8!cn9TMJeOE3~rb`7I7X5m5WK-O}{i0{yG+nk}3_oA6H{F77hiu`$ zFoEPbmt%q^&l7)g_|^BaTw6xROLv=#G$kC^?`%4zwX$;GxAPbGy}W<@@y;0kXZNn} zUORu!kJDk(H6pe@=SpJQ)w_sa{}gM&orc!wT*kBa_I>^F!~22T`GSMmcbJN|TP?Fb SQh6BYRt8U3KbLh*2~7YSu4}{q diff --git a/data/icons/status/channel/res_1920.png b/data/icons/status/channel/res_1920.png index c9994dc1e99fc390d4598c3d7cbd38292cbaf41b..f46d452894e7adeeb93ffa80c48deb8fb749daa0 100644 GIT binary patch literal 430 zcmV;f0a5;mP)BR7c$2UJ{rnUZH=7NY~1Qg6%6VWbW=Hhm{#n#%8{6R_?E2U0?h=MZ* z0M=R%Q7jO61aB}JOI)wl&U>|50RWcECDJs-d_D&NIOkxDL0OiAI`2Ks=QEDS<0Spd z1lz>{AW0HrSvKAxA+X(UpVp5OY>4%VG{xKb#bWWGYj;8jFstS3YKRv_W>1SH&&&%Z!WP8`^HU2*fFB@d$T1pw5F)1aOxsHfvr<6Jc`sLq$ Y0jwCAY}zFBE&u=k07*qoM6N<$f|Ee9nE(I) literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW??U(YuLWw|ez%CLRL*{6oH zlTFPRZ`;Ql8d`cdUGV0N@70s9U)dtHKw#pfrOZ(el$4eW{N4SeO`h#U!|vzP`qsbL z`-E*tj?l`*^KVTZjm@bBsXYp5#(Eho(mu(#pw~{towc zaJgLGIhtiz*Iy66uKO+jcm|zwFXzU%w}ZDC0)V=%yRo$vTI(*W&N&kj9LIx@-(Ak{8i12G2hnOAfGv{HU2*f-U6Aql~M*LOiBr6ZWAI}DW&#- ce)+$C0CAzX`=YmC-2eap07*qoM6N<$g1}h3RsaA1 literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?r?hPm$&uWx(YuI%6~ZV22=Qf7t2(9gQE{jFlpQ0WM6+OWyUs*rF|+<><{K`+F_Mi z_~ubq$Vc7)uem;Q-j}5qR&K3h+LHUbOoLgWRY3UN)AL7@&)sxs;HqGG7He~?e_cF_ zT^LiwTI0u0Zr`(U>Nq23=66l6epYm2{;ZwTmz(PyXg zUvy60C+fXr!v9}qzC3&MdTz1tC5oc5`?eCFxI#oBG`bEO+jy$On6_F-=M zw8_i?mKD#}$pa1ZT)>~A6=qmhQ+s^o-@L!lg|(+1rL1~nw{T~{-n6}rHo$OT@O1Ta JS?83{1OU_>mFfTh diff --git a/data/icons/status/channel/res_352.png b/data/icons/status/channel/res_352.png index 0bc8d412f1faff63e52dc8b4646406266c2a9a44..a826bc5b73dce19d2792110be4a5bc9e5704b309 100644 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<{XE)7O>#AtRHRqSX7(8=eD&zI(bjhIkx*I_)55ivy4A=Easi z+?fZsmN9tWXnwGX_eR6j3b`%Z+#m8dFE_Ox*r4v{S}4-`CeP1H=*ON)KD$$!YK%6! zy6`r2&183}IeI2%_qxmHEIofVbZjwP7S^GmC&SQC%qI}2EfDvJ`Iw?}?(K8;_I|%$ z!W$C0^_IN0@8t!5PjhN5RXG3o^YO9-`;G@5NnRnETdm7W{+G+f6mNY0`|Q6<8y9IP zoZcj9`u^`;mc<%eWjVTYwtlN>y1d@Vb5g?bW6yQn|G$@uvD$L|{w!|As;&p~oZV%1 zKb70F>;F~0Q~W2+Fbj5aySW@VOd^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?;dc^=xV>kQj( zACu`*y(7J~%yh{V_P3ASs0^4xa!sUeF`rqIgnkQX%>b@R^k>Ykq4zC7Q0Wy50D6+cyXUS(O{ z)--p&*STB!?y@Wonm>7S**Z3(y-SzPexwkMV0}P2aC@Coo6ikyV>4x l_n)=@CDwIW#>i#w5YN9H6Y#&4$r6P)dYLS&u6133YGXEr8FGJISL|D z4h{f{q5u&Y0*Z(7fcluGG);T^x~>t&F%E|V0AN0!W4&I(G)(|NS(XUH5LuRunt!>1 zLI?yw(C)i%0AN`bHk-}p`F|_8SSLkbS%Ci@QFd#Ef+SeDi6yId|0&l#iWQwrXDC=5efuh$;j zZnv9G!ACdEvaEeIo|*sXw^)5ZX1+-&l>?Jff|+kR5iK3ZIV$?g|NR4B7@<1B{?K~> O0000RCZEAUF6Nc+>pEzyAN;m$XxrAEDHcL}f7tW>&cSb76|FZCFfy}%rrJNI{lmauaJ`tVcIKDZ$@?Smy&D@QehM@X|00000NkvXXu0mjf DPuZ!? literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?-2Vyt<8<@BtEpwRUUrLp#mYqq96v01VGTHNz1&QD?#9T;Pj>2!kY zx;<)jUAOZzP2o6B`+QYZNRnhdfso{AZp3i45obUVVIr!6lp69b} zjemI;s~?b=Us6itf=MaC%&!d*9Zl1`Df-L*`2}x%oWNl}G}-_F002ovPDHLkV1k?4 B#Tx(s literal 378 zcmV-=0fqjFP)pF0=9RNloTFa-+5+zeQxz+BPy zv~@Yx0HwR7&o~8GqlKy9KF`SpC{_Iw%UlJVRb$n$Uo+Jg{qvPG|9|Vxh&!h&u1Zzh Y1JuD}Lozq4tN;K207*qoM6N<$f-jGlhX4Qo diff --git a/data/icons/status/channel/res_544.png b/data/icons/status/channel/res_544.png index 0489b96646587162dd63939a9b6c103457b36c33..38284028a8cb8a4d8c688c42744d0b4d77d17e0f 100644 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<{XE)7O>#AtRHRf};E5j3%JaaZeY=5Rc<;ryb-xY{26hIXpun2ys8Y1wX?q{c$IA4pCdOvfAMJpp72m#1}00b z&{)PVy{nd`MmlL86_)Sx=rHu-IUp+|7^vCGz@qm2soaK@nWrrG-^suI&GY{5fA#F! z`{qjCdHq1yI?e5~&1H+e(8#q{>z^qY2VXC(lev?o|J>)ypRoTW|NgL_J@a1M%-Bow z=h+7r|K-24Zf`x@uxeLVhqZyAVrZ;1Lv2rCk=3XB?=EePVUL@g^9krB22WQ%mvv4F FO#rRidiMYT literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?O(MQu|<-b0T+x86DYUC61pHe>O#%pLUwik5foh;O)-C#c0bNA+;7%HhC= zVi~6C5!vM%`(N+4%6!bSob|&!{^0LhuKB*wkDWfr`yfNq10|)Mf@dtRA5m#v`Oq^y z%KCfPq<5?jmTa{<^JD36d0#)qYQd9FW4k$5G@al4&%b;f`z?#5i}PC7wdDJ*X57Vd v#>PUv;c@ih)00-#zrKHt`h&sK)z4*}Q$iB}rW|)D diff --git a/data/icons/status/channel/res_576.png b/data/icons/status/channel/res_576.png index f171387ef88d0c05035dcdc293a80d9f1293cf4e..a2a8f48d04cbc41a71dcb950016ae0114b3e11dd 100644 GIT binary patch literal 435 zcmV;k0ZjghP)MTxx{w6#cVdaTmN%{_r#4#@TZPH=d&zBk|c1> zedON7^&vJn!Np<$04U4yc^>R~(OQf1`HbW7*s5n)h9C&woWtR8_;P>KG|*c2YGM#U zAq3Xz^yd002ovPDHLkV1fcrz`y_i literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?Mfq<+05#^58 zJ10uLzaV|(i13UX+%GgQNSCg@!+7Tki*|;iN^hc>uhpNE&!75tU90k4GL`B0jI+8) zX2(<3xu3ly74^FJ^y53Rq76pJ<}j|=8amm}WzvCt_WxJ@@0_E5rr~l!LR=5)n|Q zB_Ymq9*^bkH!~VLRaKps`AS4SEHY-EiRkPx^R??bzwdjS^g&ALM^SWhiO4!}0MPe6 zh{$(gxmhpJ+Y;2a?T7v>%K!jrnxZHQ1VI1*n5GFzDQK-%=kM{)>t83h6bAr82$W@c z9Kq#FFP96FB!MyJ;k%1l5(>lcZ)z}(V*q%h&x#sc(sLXK#u(Ifz5BAyYWc?q9!+l- z!SB#}?$$jdU7P7`CisfpG))jftjG+*a9kI^qNkL?IF2iEP177lFwgTZ_qEo$Qom(_ z{F_;9zd&Z5rIgkQlTw12XOD=^Q54-Q{qn!P148$K14z5Oga7~l07*qoM6N<$f_SK= A9RL6T literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?nZxlCogKIQOK&Guye z?GEiLnU`KU`t|X}+){_NTk9AklHbhmcQGordnG=x@&0c6AAJ))b2Ez^$US!W`mg0D zzqW3@Hd8tC@57Jr89h6h(+{-$Yw-EmJCwL}!shIM0#@5-F;?DA9$p)~v%<}im=H24>u!?Q#4EuErXa42?on4T7>fx)9 b!+RNuLc-ti#I+~_eaYbI>gTe~DWM4f=&*+1 diff --git a/data/icons/status/channel/res_720.png b/data/icons/status/channel/res_720.png index 694a7a790558559c9248357fe8354c4a23dcc641..c5cfcfcff4feff864bb648ed45cda88361ce2f0b 100644 GIT binary patch literal 448 zcmV;x0YCnUP)P4*CARw>TS-XZ4J=GF_X5-yN-A1-0&AjgK}E%TQ0jITlfYGY znxNrMkK5v=+np`G{dQ(ERvgDGW-f@xhC#v17b4oun7OFy+HRW0BtA$fZKc#f5Rq|k z0MIlIh{zT&Jd6jNjX6}7<>0>W`-AzmZE-vvvET0j0G{U|iXzPCa{z$W8d;X1s;a*+ zD1^Xfv$?Ks;Q+vK9PD0YI9ja9tN&*A3=-qe6V$y@$IszE~`Nrv{hHB>;?i zp2=$P)}Ccq=(-L`l3e%0FvNPjzO&Z0?etyz$lefKQ54e}d}Ob0ilJJZ)Zo;$_br3Z z>^=K0d!t%wIF56dKb=nRGx(~#EX!~{pYP!EJb$0TAP7ePlS5He)sHXtKPOd^Q!3HGxd{xYV6kC$Fy9>hu5WG?ER{<2^Ebxdd zW?9pnFbX4;_2cT;&J@#RA0U(1A$ii9(RUo z#mc7l8kuKYIU+pc2KNiiE7BWT-!bHMWzJgkmHm=Ly7Q&!GxyY;VV)ACt+ZCMpyy_c z+-A#v&+e`GIbp$+sM)nXX9Jls<6c%irA@}W%J+4|IGwoJ%OF|s z>w|7?{7n0L10B{2QR;0e>FvwaQ#9r@s$Te6(*5Mj-1igC9lx=&wK7iq=FSU7SA-S_ zPn=r1uCbSS!Cb4g&R1%VeVaT{dQn>Zox6KAPxfxgR(v9*V66FeHP@17%S8OUq!o(4 zXibS>yyBPq(KYM*v-|tw|JT1hKXY}mS@@BxcWkc5Vh{0OQ0fBupTX1B&t;ucLK6TD Cm5`YL diff --git a/data/icons/status/channel/res_hd.png b/data/icons/status/channel/res_hd.png index c70fe0c5476927130ddc91abfac949d48e9882dd..bd2f6e7a729b42f080650db32c072e313a0d5777 100644 GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^5|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(zEQm3Nw<^hHFc)B=-Se(8Zx{oA;#g zOw7sle7tL&Z;zq6{h2i%@A-?KeDj1sAerUlGN(il`GESYbDwz_I23EvmM@uNz{5N( zRdewH%l37zKShf;Rje#J7pu{nEH?e#qE~B<|1V`v|2QwuYvr7#zZd+pEq?u5z3-h^ vs-!}u@#Z&2(%3wseK&o*=ieIl>@lb5TQ3R2B@FsNe=vBu`njxgN@xNAMv8bK literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQfx`y?k)@uK=4MrUj*?YcVsZNJl+&CI1_CbglQ6?jt*O8>gRqBaqZ%>$j@$qVT=SLz+VO=EyFYBF5l( z^=eH3Tho%0hbyyBf0WW&c`JT%?1#c8R6zC8JPgg&ebxsLQ03I1urT_o{ diff --git a/data/icons/status/channel/res_sd.png b/data/icons/status/channel/res_sd.png index 67ffccf535b39ac5a9c4ff6cea415d42fb63868d..d23dc1f03ac8a5c406043db78a5d9db3a99cd492 100644 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^5|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(zED%{q^rVI>>Y@RNTAr`04hFbQu7znJ9y~sFG z@vFUz;KvqT_s`sY=?~(2)E;wB)3JOc-&g2z;iOylGluhTxKy-CBCoDnm-lmZ?(O`v zeL{g*ViDCod%iie$`U zi=4*D;KXqu>Tnb{gTXPIJN3`*TdjCqCC1L6$g*lxRBdWce9468mJADYPOtbIe@}v0 z@kpZ)hoS?A;diTRkL!IWUXxO6={NqdnK}FI;p}8vyJvD=YVG|m)#{z!alc))?yBSU zQi%cq}e!@%+J@YU}^)CldZMow4!MG#8&1)HHK>OUF5{mAC!kpFL$~h_86Q UQknNEFpwBLUHx3vIVCg!0M-JMV*mgE literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQfx`y?k)@uK=4MrUj}%WVsZNIl!Ls740v4SS17m4 zvlY@|j6JZM!MbF5OyfHNJ-4jcCM#Q%9F&gNJb(H7IOnRW1($9yJ)iYqo7$ZDE#}@$ z-|P5e8t3NnI;bn{eVJI6vS|98c((+G@Ew0V@{Nw_Hgx0^t=(Vp`be!^@#zb_n|h6E z)1$1I*PX4|TU>mjf0_EJFWJxkO#30#<`Nrmsra1#f#iQ4T+9YnLrwqKuM_zbCtSCN bwVvtfY!lBD8_T+Zu4eFb^>bP0l+XkK8k}nT diff --git a/data/icons/status/channel/subt.png b/data/icons/status/channel/subt.png index 7cc7d8395b45a4de05701a92849cf62e01596249..d43c03e4f20965a23615c8660738d4c74db75963 100644 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^5|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(y(vP>y4yMaQFJY5_^EKZ-DYRlJbz|$J9ZDSx9 zc3)XLsPBT{S22z}$G*VA9-o;z+^=mgtaur+(%!>G+}`e61i}%V^}c7>)HPK2diy%-8u9>*>`Sn!MWT= z`)3|B@eT0WTOyk5^K3QWuYLaowp>&D9Lj$0_tDipPycUsjTaS|ICEyXcv@P=i8+FS hYq!er{W4l#em|n}Y^xN{bD(b-JYD@<);T3K0RRn9gYf_W literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQfx`y?k)^}8FCqfd&A7^fFhg) z9+AZi4BWyX%*Zfnjs#GUy~NYkmHhz^4>zl2^~3^mpiq{li(`nz>0}LEUEY)hf(c0p z2{RnM4|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(y(n#vbe@BxKxdAc};Se!mP^(=3*0Z(hZ_L>7+ zY1{#9E2nV3lIaO4JgL^v^H7xI(^B;%m%@0n9Iv?7fBL+BQt<6<;-Py50~>jLL*13K zj6(N*t&Q(EG3{5vvqMq0=XPck7cvM43IrA&JGZU6>CN2DI^H3ntjRnK3dcGGn4SeL ztJu_hJb~fFXPMI2_0LYS6mR%0ckg#=KCgWp`+2kQpS=J3jZ4oRwEQk=pT>UKzmc52vpmKn8faIEGl9PS()X2n2?l^ zFvHRN@X?G+i^CI4=CDq8$;^CN&&I~q_U>JtTTM*~!(@4j>B3AqYD{dDO0E=43O=n3 zlr`M)HfO1h%^W3x#GtQbOchb5u>O0Uz22WQ%mvv4F FO#u8&L0SL+ diff --git a/data/icons/status/channel/tuner_1.png b/data/icons/status/channel/tuner_1.png index 659a16baea12d8bdf5af720b2912ca6a6a3499d6..bb95576f910b7e5bb0e4b8040ba2938739c30aab 100644 GIT binary patch delta 206 zcmX@X_=QoiGr-TCmrII^fq{Y7)59eQNJ{{*2nQRGoWAvM^F&31`iG26Vlq61=Y2VV zf{mUojv*GO-%j1ld&Gdpxw0{`g7xh}Mw>%Z51ySkv8iVvw|d;Fes5}={wXo->fQd`2!vvZWi%!%y9HRd^97|;_w8MIjqxzUFQ>kchT`{D9p#Y1J)_D82mm#mPymH4k~THErArwSP6{}cJQdS+ZI&;kZe LS3j3^P6)nwGr-TCmrII^fq{Y7)59eQNJ{{*2nQRGoWAvM^F&31`iG26VlrYqYqt~u z1=~Db978Nlzn!{~^QZxj%hU(jdz!voV31Qx{ZU-8WP+hd!}kkZdh1TIaPBWqXo)FT zxaYj$LP&P3M;^l_9-fnY3BD@ZuSNBBOsomKnv?dMC&41dMMa6lVcyecHqH;;J$kqN z?@#HPCjSpbj=$1ZOewkd% delta 213 zcmey#_?uC&Gr-TCmrII^fq{Y7)59eQNQ(op2nQRGOxw4NZ=#|>{R18zZWdl=yRC!%y9HRd^97|;_w8MIjqx`hSxo^$(X9}OPr_ATkUURyzRde44xnHc}!pzKvwWFlwxoIC}+?T0z;3rGkEufgOMRHf8hZF z791b-aSYY~004(cL_t(I%k7oH3B)iA1eM@@xCQm00$f6#;p%WnA!Vol_n{X2*iSkL zIdHh+F8f;qGYCC2)mj&l8-OeWL$U){6UnW$mLp;$UsN@l***gp4i^!L2mz31xjCN| zxVyOf<^FveJc38?CxUb~ETz2FDu46_B)h5(2dk=(>gOMRHf8hZF z791NRUMaQX;Mlh{UIWaF=ncmxwtt1 zq?EwSO@)i+-hdDSLI|7o-otzUcvas*P@g$WM7#RufSmKLzJ=g)2k*BoPLOj35n&jH zjo>Kc6u~^t003((thFDzA_2}h#27(DAR@#V;hZbm!Mov+`C$ib+n(D0-&<59Kvh=} oDQ+wxP}Q|&=FS*1UG!x>Ux@`VMGr-TCmrII^fq{Y7)59eQNQ(op2nQRGOxw4NZ=#|>-2)yTZf29bBmGXuAh%)$!! SBc(ul7(8A5T-G@yGywo8yEqa6 diff --git a/data/icons/status/channel/vtxt.png b/data/icons/status/channel/vtxt.png index 911544425367dbe1023754c597b52d6679f0c1f1..c9ec4fad76082d61e168d3719587f12ab9e188ff 100644 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^5|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(y3;wR@kO9Kiud%8G=Se$-4)sXjq0T0VvE&G|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&aw9`+JXUsv{rj7(y3O7r!VT!BJOo-U3d7N_4%-N<`Dfrn*ohknGt z>WT>-CV|fqmT2(K-q0St;D;J_fUCmN2j1e}x2^jyt=P`v9>XFYo|9}3cvRj;WtV)P zSQB_PBkeq2f<=tWk-Mx8cT$U%iMQM{So(!C%`2PzhrvlUeW31ky_p!Yk{s|@O1TaS?83{1OQd-R#X50 literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Ev!3HGXOtkk0Qfx`y?k)@uK=4MrUjoz#OMZx65P z*J)xl|CyLR7;M(aWEE4Gd9!4R+iK?7$9HzzR(EY$GDZ06oEx_%?+#dHAGLTZ`!=z! zXBpDOVrvV&79P>HSi4X1fVDjXXGG1ttBpG^ao=Y@arO62_5GpQ`s`j`pU14&8}|SF i3iSiUCI@m=4oD|dxjM9!_Ll%1&*16m=d#Wzp$PzTL2A7K