From a3099b77af5d6b24195fecc184b1c53f9b9a524a Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Thu, 29 Jun 2017 14:03:08 -0600 Subject: [PATCH] Added remaining Interface Extension Methods for all Huddle device types --- .../DeviceTypeInterfaces/IDPad.cs | 96 +++++++++--------- .../PepperDash_Essentials_Core.projectinfo | Bin 1283 -> 1280 bytes .../Essentials_DM/Essentials_DM.projectinfo | Bin 1137 -> 1138 bytes .../Essentials Devices Common.projectinfo | Bin 1158 -> 1156 bytes .../Configuration Original/Configuration.cs | 6 +- .../PepperDashEssentials.csproj | 7 ++ .../PepperDashEssentials.projectinfo | Bin 1863 -> 1865 bytes .../Room/Cotija/CotijaRoomBridge.cs | 62 ++++++----- .../Room/Cotija/CotijaSystemController.cs | 7 +- .../IChannelExtensions.cs | 37 +++++++ .../DeviceTypeInterfaces/IColorExtensions.cs | 33 ++++++ .../DeviceTypeInterfaces/IDPadExtensions.cs | 16 +-- .../DeviceTypeInterfaces/IDvrExtensions.cs | 29 ++++++ .../INumericExtensions.cs | 50 +++++++++ .../DeviceTypeInterfaces/IPowerExtensions.cs | 32 ++++++ .../ISetTopBoxControlsExtensions.cs | 29 ++++++ .../ITransportExtensions.cs | 41 ++++++++ 17 files changed, 352 insertions(+), 93 deletions(-) create mode 100644 Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IChannelExtensions.cs create mode 100644 Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IColorExtensions.cs create mode 100644 Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDvrExtensions.cs create mode 100644 Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/INumericExtensions.cs create mode 100644 Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IPowerExtensions.cs create mode 100644 Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ISetTopBoxControlsExtensions.cs create mode 100644 Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ITransportExtensions.cs diff --git a/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IDPad.cs b/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IDPad.cs index 131b24c0..7c2f139f 100644 --- a/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IDPad.cs +++ b/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IDPad.cs @@ -1,50 +1,50 @@ -using Crestron.SimplSharpPro; -using Crestron.SimplSharpPro.DeviceSupport; - -using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.SmartObjects; - -namespace PepperDash.Essentials.Core -{ - /// - /// - /// - public interface IDPad - { - void Up(bool pressRelease); - void Down(bool pressRelease); - void Left(bool pressRelease); - void Right(bool pressRelease); - void Select(bool pressRelease); - void Menu(bool pressRelease); - void Exit(bool pressRelease); - } - - /// - /// - /// - public static class IDPadExtensions - { - public static void LinkButtons(this IDPad dev, BasicTriList triList) - { - triList.SetBoolSigAction(138, dev.Up); - triList.SetBoolSigAction(139, dev.Down); - triList.SetBoolSigAction(140, dev.Left); - triList.SetBoolSigAction(141, dev.Right); - triList.SetBoolSigAction(142, dev.Select); - triList.SetBoolSigAction(130, dev.Menu); - triList.SetBoolSigAction(134, dev.Exit); - } - - public static void UnlinkButtons(this IDPad dev, BasicTriList triList) - { - triList.ClearBoolSigAction(138); - triList.ClearBoolSigAction(139); - triList.ClearBoolSigAction(140); - triList.ClearBoolSigAction(141); - triList.ClearBoolSigAction(142); - triList.ClearBoolSigAction(130); - triList.ClearBoolSigAction(134); +using Crestron.SimplSharpPro; +using Crestron.SimplSharpPro.DeviceSupport; + +using PepperDash.Essentials.Core; +using PepperDash.Essentials.Core.SmartObjects; + +namespace PepperDash.Essentials.Core +{ + /// + /// + /// + public interface IDPad + { + void Up(bool pressRelease); + void Down(bool pressRelease); + void Left(bool pressRelease); + void Right(bool pressRelease); + void Select(bool pressRelease); + void Menu(bool pressRelease); + void Exit(bool pressRelease); + } + + /// + /// + /// + public static class IDPadExtensions + { + public static void LinkButtons(this IDPad dev, BasicTriList triList) + { + triList.SetBoolSigAction(138, dev.Up); + triList.SetBoolSigAction(139, dev.Down); + triList.SetBoolSigAction(140, dev.Left); + triList.SetBoolSigAction(141, dev.Right); + triList.SetBoolSigAction(142, dev.Select); + triList.SetBoolSigAction(130, dev.Menu); + triList.SetBoolSigAction(134, dev.Exit); } - } + + public static void UnlinkButtons(this IDPad dev, BasicTriList triList) + { + triList.ClearBoolSigAction(138); + triList.ClearBoolSigAction(139); + triList.ClearBoolSigAction(140); + triList.ClearBoolSigAction(141); + triList.ClearBoolSigAction(142); + triList.ClearBoolSigAction(130); + triList.ClearBoolSigAction(134); + } + } } \ No newline at end of file diff --git a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo index ab60f177faad7a9d234da3c9460e1b06b64fd71a..3d8ac5bdf219c3d6c4fd78c74dfec602c3ee4406 100644 GIT binary patch delta 944 zcmV;h15f;e3V;fby?=*qcK09c>^-`7Fuwok!T!BHeEeu$Azp?x3N!HLelVa(A-Nk)8 zU6nr|R0>O#mv!~igvHtNyn0rY`7&GNKLj*4V7L;53POkwJ%4Mc`}W#Q-RtY7%@;2O z$&FJ)xXSAM zC#eO|2x2zg*?)OR|KEE^z`tC#t9AP_Yk&5+oqGEsTNdYe(>he|(Wf`^hoQt5S+P8( zuNIT?+JV@oZ@gLC0A^N})Ha|5{kMB?@7~@=J%V*9^=*PkpJn$RWYYt@vbQsx?LC;y zrVn@X`{((2cK_kt!;D(WT-|C!O8A=_KCh-(`9qnen}7LI$oMp0<;z*VoKn{xJ^G%R zjr-wjoYXYkb+sJ7E*7iu^*pOrB);RP`DHQ9U$0lIs%{ma5_p8JPhA3oT9cz<_)C(l1U-<|B| zlj;3?=lApM!7b)#V>iLv-J-J(o4bvu{J(fU4}WeopRe*o)#jZE%+B{d&37hy_jdO8 z9_F7u+?&qs-QUTlpWd53+<7p`Z!v)(++fCT0sX^fEbROL#Z&a~R#WuVSvWg82M_P< z?qxgE$w{B?rM3qZ1WoQ2pp#)zjuCqkk2NQ>|lR7ojusSe}D4u;lY0X S>4TG11f~dyk))zW6#xM2?jDr@ delta 947 zcmV;k15EsY3WExey?=u@yPrPV-FdY8>G)uO@4*B5Z0FNQJ3G{FPVG(}{l35NcdPns zvAjs17Ii*ttGdXW-}m=*{r$eb@9Q7`eShEFcKZANz7ByD2>6ZNS5LBrzL^wD|LZR9 zAbkiEjOH0tLrz_v#Olsb@S09BS?E6{gTl~Ulhw?v0gkY>cv%7 z=RZj;h(-{z@qf&+XLP7um8n&zshvdXGN6kv|M2zQ~H@ zF@3d|l-CZ#K7HfO+6FMQvZS^FCFsAs2lsX!eAFXYmr~y*i1b4Q)AvV3xHFMseL zJHNkoaQ}XO|K6vcPIvNq(|xd#%+;+%q=dh@;qz*mm482!X}Xy&g^W-0Rlc0%%PDpJ z(WCE~*|;Ch#z{@nU02KT>teAgU(d68MdCYtnqL;v{PlXZs_Iq&DuJh2mhVsY_wGN; zvhz=OAMV_Lc)pY6_xAT6+?$-w_Iv`r2XuMo_I=!LW*)r<20!E}>`&46M<2b)8>R#Q z`AbG-(tkd^-K2dH&eUXfem|R@X9qje>AlJ1;KBLc?kt}iJlx&gJDBXwZZlH`WH3Fq z0Q`Z|W4ir+@ti!k)tsER^SoZ>Et#*ydRa^}7{Vr;r+c5~pMH98|KWq(hxd2)ck=wx z^WDjQKAGOXcYZ(59^7J{Hg*%t-7Px%u({ia%76ch=kwrJ^Z6=YRBhgw!0deQ(|l*L zcW-BZ?_vJw!@cS3-u<0?`suyt!<`3{{1y`!!VPBZ7SKOz#=^e;Upz$*Z#6|-3cef z8-J?jj3~wS9^NCfzVj)u^26EvgUP4&A3mJq*{A$jmJc~+9-v?XZUOF=6ACVIH{n@>pS(eXcv-5+8_ow$h&8Cy{Y?|-P?)$Xg04|IM?oH#7^c^79g5ceOlQwjX&7dW6%F-#b4)$Y+yDcCbI4&K~UEzdw2S V@L-?fmy=QirU*h-y9h@W007OrAxQuL diff --git a/Essentials DM/Essentials_DM/Essentials_DM.projectinfo b/Essentials DM/Essentials_DM/Essentials_DM.projectinfo index d3fdabc8c56d633b7c8e806ee23a122968c9962c..1990431c32106f1a36c8f4e2948f87e35120d70f 100644 GIT binary patch delta 975 zcmV;=12FvY2=WM!v48jQ&F=oAoxMl<561_e?(RO^zegWG+S#FYb82_;==c47zgyLB zi{(Z7w5aoGTh&G0{Jy{M%Y3!U>!(>W|9yYo*FXOI{=T{G^7s9HUH9qJFZ@4$fBZQq zmYvVW(^dHc>aegQd|6jNO?{m$&#PxenJ=?N{+H+rE$7F)@Uu&y z;psYEO!C?5YF$tB<9a$TE^|A7C)MiuP4%oQXL;Rx^vJOB-bcS=^wAf^vRJGa&x(3+ zmDTxAQVXI4n16h{v-6PtzxR-Uf4Oc~>-J^V{;Y5zb?`;DEY9<$b=cjbPjz}7+}}Ss z^e?hvc}!m{CgrsQuutE3lQ9TnR+iK<7&!g6cW?h-@1q`lx`g>Q!K2U45AIE;*~9z$ z(|l)l=fS<{&fdN3{K4LX{ZD5PA3S(KEoEwMF&d@vO@GavSJSNg*_sh$v>RylG+*V* zS-zZ7UmrdCo+14Gknkrp&1+pP$FGaUs(d}q>J)o|Ka&gmfzdoe{gSdKHKxD`5w^ao!j?un~8Yz9{vC9&scv>zCZft zRo?Kx`G3z}GBUID>Fs98%(aqjGCRMYP0zD~o$2)6WODG}d~bJ_PYxdL?(Q8-c4xPl z8Ur$zk6Qr#p!qPJ{=aJy9)y$N4eg|=^N{p=5APAf?tFT0XaC{s{=wwa`wt&Z^6XRo zEX#L%(#HV>1iuBiTM<0o)&IN5d~h36(5HBI?|(ryJvg{`Z*OmBI@^0Nn@u0?=J(I@ z^X&e^y@%P&T78K4w}AY<#E7|w$e(HHquTP>UFykiL-PIn$o@6Yb-%(8qo zo1Gs#yg$A7X*QjlXJlz-_x%~z04<>XEnwb?_8a>9e;3tvcZSIRDnBpbVOPtuWt-O^ zKz~U8{NDNbK|Y&IvV;BUboOBP{{6|rhX?!lrw{fI4km#mz75!5B5ncvJttzgCPx_>Y|$o8f*zJtAo_aEf> xj2Qafg9p=_EyM@;{SnlD$@hQBFX3pWI4`CdM1jV*E?XJ${{xeZ8dt&)000KqF!cZc delta 974 zcmV;<12O#a2=NGzv43~)X7|%ayE~8e?v3|$?tl95{-^Zuqn#aUH>Y+dkAC0Z_q$d7 zwpd=IPm4OAwpCr^&F}mBzRXvvyndQB^WXRPef{IV@9&%2E`Q(O*L9yh{lfqA_s5@; zV%hm@JYAJPpbiT=!k2aR)7015^1OOhl=(7SZH9k#D0C< zwE5zNpwgu|*%qMPADk9M5J&TU5)e#1Q4PlWMV|vCh6+-g17-3qQLQ z8lJAx#U!7-uGaN5Kdz_q;xf1McT%mc-&D`4a+cT4M~@5}?|t-3Mjw4qEQ`f@@vNv9 zS6Q9^B()$)fPcxyJ39~Q|9cM!_?PQ;wQgT#?avAqQU_mT%i=t5T8G^|`c$Xa!TtTC zL;oTxmdEtPVp3i^0Q>ZfHyMLKW@Sk&gMrh3dk^mIVp==&=@RDK1dl#@us3<|;KA;} zgL~(*{fGA+WC!F&dw`w!1|vi#ou{)2my^VyzH&G&#V@7%tR+f2lx_vrs;f5!TA^8L|A zukwZm&VPUYl98FEPj5F%X0DZNliB(GY`bTkCX<5)=X<-ed~)z`cX#h#vOBxY z)EJP#eB1)?2hE4+^#5Ix@L*6!om6!ml78>uJ!06MPw(yQKb+k^n0$Kw;loLueafF@ z`HoNeIG}*ww*Yr5g2%i1e;1h#2FdKf?NdDe^nbypds#lYx0gS7ke%P(JGg&8zkl!3 zPp3Qiz3KiC#p5so;@<-D`w~Ci>;Jpv;bAxrPDEeiS8cUys`HK|csSj8IK4k38=B>_ z+3ft_;r;2oPqXRdJe%e_v-|!GY=9Qf{uVHAMf(l?{lAOq?8ijO{whB&;bB+Hvt^st zAb&td0`8rkALQi4WC#1x>FmMo{ri)L4-fWP z0`_~($6&wzub7U`2X=Dyh9>7})@I{b)*?Y8qZ~W=*{---T2lVlyogHd7r*qmfCw&3JSIZfy6wnr7t>dy_x{Gk?$!I?M9?$^PE`hgo+1 z>F&dw`w!1|vi#ou{)2my^VyzH==Xpw@7%tRTTRiU_dww1ZZ7+i_5IODukwZ|!himf zk(s_vZ#8|NXKj9!T{q#(J=ojd%lCHovh3c${=L1ugY5q7;chwon9|Bd;25YCsw=l4IU>O7pEy@&UR>32T8x3m9ncK=}V>HUWfCwcZM zf0pGt{`|xN1@mzWaJQR}cwhhDp#Q-j{aqiCsmSg<$fgGe_lS*mrn9{Vv)Pnb`Tlu+ zp51@A_b?EZ8({{satp}sJuC5U|GzOo55oy^BL5=4YJaO`Q=ND0&%^1?!|DCmy`5Q> z&t|jpgNOI0_dd<0lk;qv@67J|Q?mhDFe$fydAmv3(Bc0#rek+!Xg*%$=Ou!RYI(M7 z^BR;1CnmpletwY8CX?)7e>$B#*u8&$^6=roe*Wo${ey!^;27KnY%oK&0RFx+G~Dz5 zN2Y3bXn(3+|HSie=Otk`FjMC{)B8L3XR~}dJIEd!+?(xB9^BvCeQhGy+))@I{b*1CB**xQ+Wx;x!Jm>y(%QyMopQuiO^ z`HV#1-h&5If1Wl|^R`s)5H*6_FZup2`6V2y6&B~kG=uceDA#2xgZ_U2i+mO*OcDS9 DPj3xs delta 930 zcmV;T16}-t35E%f!hZ*Ec0YZzyYpyoXT1C1-odAzeo7xd+S#FYb82_;==c47zgyLB zi{(Z7w5aoGTh&G0{Jy{M%Y3!U>!(>W|9yYo*FXOI{=T{G`S<;O2eI7v)uh<;{dl@6 ze?UkTmM|~t>Zb{xv*mg9tSIwkw#a|D2oK}B64VMpjZi*o2!E0G+RWqY>!!^YF9h99 z6G{WTsI$e{>`itNG!5ofTP^ZhX7_kDE83!3W+f;ipApCvk!bei@|II?Uii5o?Cm(= zbTP?iud8)E&5!HpytvFQYn)W8>o?W2s+{F@^U)(CSbHD+lF>(B6w6|EzRg6SR~`yUloX0&Z;gyqad^50gFuG=ESDJpw}AZKvl8$2{~HtZFq|MK@_#S#tF~G;)p^JMJe=-4oZg?^ z+nHtgY&JVTczAz$@6&8LInSo~&g{NFH5;G>lX44~x0{p=9sYk~I(B!4=Hpd;`7)d}n%p=l*P#PiF_&gM)js{mFy-d%F+r@9a(|lLrGc zH3&7Bs9V5(--#OR`2W@O)cL^9+TPHtJK&p+kozUy|0TbKV;8mJyqIQ?9vbDkY-P~@55yr^ZA=mX E0A@7~nE(I) diff --git a/Essentials/PepperDashEssentials/Configuration Original/Configuration.cs b/Essentials/PepperDashEssentials/Configuration Original/Configuration.cs index 1f29ce18..30350e79 100644 --- a/Essentials/PepperDashEssentials/Configuration Original/Configuration.cs +++ b/Essentials/PepperDashEssentials/Configuration Original/Configuration.cs @@ -173,8 +173,8 @@ namespace PepperDash.Essentials //} } - static void AddSourcesToSystem(Room system, ConfigSourceList configList) - { + //static void AddSourcesToSystem(Room system, ConfigSourceList configList) + //{ //foreach (var configItem in configList.PresentationSources) //{ // var src = (IPresentationSource)DeviceManager.GetDeviceForKey(configItem.SourceKey); @@ -184,7 +184,7 @@ namespace PepperDash.Essentials // Debug.Console(0, system, "cannot find source '{0}' from list {1}", // configItem.SourceKey, configList.Name); //} - } + //} /// /// Links up routing, creates tie lines diff --git a/Essentials/PepperDashEssentials/PepperDashEssentials.csproj b/Essentials/PepperDashEssentials/PepperDashEssentials.csproj index f4597524..6b18300d 100644 --- a/Essentials/PepperDashEssentials/PepperDashEssentials.csproj +++ b/Essentials/PepperDashEssentials/PepperDashEssentials.csproj @@ -142,7 +142,14 @@ + + + + + + + diff --git a/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo b/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo index 540ae9e365140943f4366c30d9114a1b3eef806a..e8d509160409b4ffcacba67431afbacc76ce02f8 100644 GIT binary patch delta 1346 zcmV-I1-<&m4#^IXwh|BD?Cw9>*?V;V)A8Q^?xznPvB)F=fA{te?tj!HO_wI$CRp^@ z!M)w-r}=b}-ODEV^kDbF{Ai&go0p4BUoz46ohvY6(t*Q-@kw+c{c zIL)$rf3m-KfB#{YoqxLfaOeKR^PMcex4-}3-sF6?=hN^#pvybA@8gC!c=R4!|8OR& zKPBHEee^1Cc-;KwFBzFh`t){_^hG!`liB(GY`bTkCX<5)=X<-ed~)z`cX#h# zvOBxY%ovctbld{)*PRa2-~apO;K8lt;Iy6R^)heCf3_^v%VL_rN*NJU^4e|(;``Biq^k)Q{A`+ND`?p~JNJJ`Rsw|9`;pFP|qLVkL%_wf86yTy!j00(n& z3-DiaPCC8*zi(D{cWyN;ukuCJ=ABs~hW#|(ne5%$+24DZfBJB5I=gp&C!c98P!nYabuuQ?O8zyB9b!d^HD4pb^WWRt=Wc5TOW_uyW(|8SDsdpODmYwNrfA7I;HYLa9{&{|$-G8|EaDdeZV20-RX2|bB z{CJ1|FPw)?$7E>*XP-^BM!6K{)30R*}to;YOIZCw;H0{})od6ETNT zX8taBFoOWe<6W8 z(Xhk%ReoM#LAY8D=ob!;^4VmP9qdo1vj@BP?@t~+JlM}aeXxIUFbT4$U9d5*!32NY z0{HDGV0bA1FPxB0Wb8)q`X`=m)c5B*)B8L3XR~}dJIEd!+?(xB9^5CMy}z?NolG7K z%*P@XG}ibo$en@53;=}jgd0W z_aEdrxiQmw4<1bY*%+eP%~b6WErK4Nx?2Vu1m&G)HybNm z!)cb~`;+~>fBO%!?EKT+hdcKlp6_J&z5V?M_a^7FJ)ef}0bSm?eIGZ>!K3%+`iC=F z{VDnW=%ZJ8!{g>Zf62&9(xiX{`Q9!u_QAv5-Mxd! zZou6)fefbO7J$F*beR7B-!}&jZZ!v|?L4oSc}uosf3aQ`(+pP1h@g`1-lzGepWfSl z_+aT6$t~(O+U~hjf-`m~GvU>;n_xAPsM@?UE5xv$<~x(UdprAk5A#nS?oDU+?(gK&Pw!11?mU>} zx0sa>ZZIjgfc`ZnCG7P7g>$ldt2z1VES!#=e}jkQ3uimi$ES(!+IBuAmHlvb|6uaz{f7@HdG;xPmgPHf!ux z+zHD)ydBgC#q&=ee7cwAl*z~+Jjl-PfA1aKzn|Z~_vxq8o&4T(e~997m;v!`0r@?M zAMf!0h4avfyyHXY2Hp?$CJ!Dw*gbe~?|ioZ@ZN*$;NH%?o%8+KWO8q3wsUavEX3pP zTfqH#bMXJ-uzR-?cRPpSq`qFYNDHs#*JsN%ug|k-M;vCe{Ra^x3x2PUBNEr8vg&aRLD7ZSJ= z4Lht~<>w_9gsbI%e&O&aCzmBV*q=^k4|eb0pFDhcuul%={=vZ{$fkC|#=wSN>dnA! ze?I}kL-~K&Y=83LKJo1Ro!#kV@?c;- z2BC)Xa5L=NPsd=F|F4;i&IfjGIx({w($lQX# diff --git a/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs b/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs index a89b7c7f..b0d1937e 100644 --- a/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs +++ b/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs @@ -24,7 +24,7 @@ namespace PepperDash.Essentials HttpClient Client; - Dictionary ActionDictionary = new Dictionary(); + Dictionary ActionDictionary = new Dictionary(StringComparer.InvariantCultureIgnoreCase); Dictionary PushedActions = new Dictionary(); @@ -233,7 +233,10 @@ namespace PepperDash.Essentials } else { - Debug.Console(0, this, "Response from server: {0}\n{1}", resp.Code, err); + if (resp != null) + Debug.Console(1, this, "Response from server: {0}\n{1}", resp.Code, err); + else + Debug.Console(1, this, "Null response received from server."); } } catch (Exception e) diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IChannelExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IChannelExtensions.cs new file mode 100644 index 00000000..d665bd2c --- /dev/null +++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IChannelExtensions.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using PepperDash.Essentials.Core; +using PepperDash.Core; + +namespace PepperDash.Essentials.Room.Cotija +{ + public static class IChannelExtensions + { + public static void LinkActions(this IChannel dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.AddAction(prefix + "chanup", new PressAndHoldAction(dev.ChannelUp)); + controller.AddAction(prefix + "chandown", new PressAndHoldAction(dev.ChannelDown)); + controller.AddAction(prefix + "lastchan", new PressAndHoldAction(dev.LastChannel)); + controller.AddAction(prefix + "guide", new PressAndHoldAction(dev.Guide)); + controller.AddAction(prefix + "info", new PressAndHoldAction(dev.Info)); + controller.AddAction(prefix + "exit", new PressAndHoldAction(dev.Exit)); + } + + public static void UnlinkActions(this IChannel dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.RemoveAction(prefix + "chanup"); + controller.RemoveAction(prefix + "chandown"); + controller.RemoveAction(prefix + "lastchan"); + controller.RemoveAction(prefix + "guide"); + controller.RemoveAction(prefix + "info"); + controller.RemoveAction(prefix + "exit"); + } + } +} \ No newline at end of file diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IColorExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IColorExtensions.cs new file mode 100644 index 00000000..e7e90471 --- /dev/null +++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IColorExtensions.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using PepperDash.Essentials.Core; +using PepperDash.Core; + +namespace PepperDash.Essentials.Room.Cotija +{ + public static class IColorExtensions + { + public static void LinkActions(this IColor dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.AddAction(prefix + "red", new PressAndHoldAction(dev.Red)); + controller.AddAction(prefix + "green", new PressAndHoldAction(dev.Green)); + controller.AddAction(prefix + "yellow", new PressAndHoldAction(dev.Yellow)); + controller.AddAction(prefix + "blue", new PressAndHoldAction(dev.Blue)); + } + + public static void UnlinkActions(this IColor dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.RemoveAction(prefix + "red"); + controller.RemoveAction(prefix + "green"); + controller.RemoveAction(prefix + "yellow"); + controller.RemoveAction(prefix + "blue"); + } + } +} \ No newline at end of file diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDPadExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDPadExtensions.cs index f6d3e0c1..294c9623 100644 --- a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDPadExtensions.cs +++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDPadExtensions.cs @@ -6,7 +6,7 @@ using Crestron.SimplSharp; using PepperDash.Essentials.Core; using PepperDash.Core; -namespace PepperDash.Essentials +namespace PepperDash.Essentials.Room.Cotija { public static class IDPadExtensions { @@ -14,13 +14,13 @@ namespace PepperDash.Essentials { var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); - controller.AddAction(prefix + "up", new Action(dev.Up)); - controller.AddAction(prefix + "down", new Action(dev.Down)); - controller.AddAction(prefix + "left", new Action(dev.Left)); - controller.AddAction(prefix + "right", new Action(dev.Right)); - controller.AddAction(prefix + "select", new Action(dev.Select)); - controller.AddAction(prefix + "menu", new Action(dev.Menu)); - controller.AddAction(prefix + "exit", new Action(dev.Exit)); + controller.AddAction(prefix + "up", new PressAndHoldAction(dev.Up)); + controller.AddAction(prefix + "down", new PressAndHoldAction(dev.Down)); + controller.AddAction(prefix + "left", new PressAndHoldAction(dev.Left)); + controller.AddAction(prefix + "right", new PressAndHoldAction(dev.Right)); + controller.AddAction(prefix + "select", new PressAndHoldAction(dev.Select)); + controller.AddAction(prefix + "menu", new PressAndHoldAction(dev.Menu)); + controller.AddAction(prefix + "exit", new PressAndHoldAction(dev.Exit)); } public static void UnlinkActions(this IDPad dev, CotijaSystemController controller) diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDvrExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDvrExtensions.cs new file mode 100644 index 00000000..3909b540 --- /dev/null +++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDvrExtensions.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using PepperDash.Essentials.Core; +using PepperDash.Core; + +namespace PepperDash.Essentials.Room.Cotija +{ + public static class IDvrExtensions + { + public static void LinkActions(this IDvr dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.AddAction(prefix + "dvrlist", new PressAndHoldAction(dev.DvrList)); + controller.AddAction(prefix + "record", new PressAndHoldAction(dev.Record)); + } + + public static void UnlinkActions(this IDvr dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.RemoveAction(prefix + "dvrlist"); + controller.RemoveAction(prefix + "record"); + } + } +} \ No newline at end of file diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/INumericExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/INumericExtensions.cs new file mode 100644 index 00000000..008b5b25 --- /dev/null +++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/INumericExtensions.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using PepperDash.Essentials.Core; +using PepperDash.Core; + +namespace PepperDash.Essentials.Room.Cotija +{ + public static class INumericExtensions + { + public static void LinkActions(this INumericKeypad dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.AddAction(prefix + "num0", new PressAndHoldAction(dev.Digit0)); + controller.AddAction(prefix + "num1", new PressAndHoldAction(dev.Digit1)); + controller.AddAction(prefix + "num2", new PressAndHoldAction(dev.Digit2)); + controller.AddAction(prefix + "num3", new PressAndHoldAction(dev.Digit3)); + controller.AddAction(prefix + "num4", new PressAndHoldAction(dev.Digit4)); + controller.AddAction(prefix + "num5", new PressAndHoldAction(dev.Digit5)); + controller.AddAction(prefix + "num6", new PressAndHoldAction(dev.Digit6)); + controller.AddAction(prefix + "num7", new PressAndHoldAction(dev.Digit0)); + controller.AddAction(prefix + "num8", new PressAndHoldAction(dev.Digit0)); + controller.AddAction(prefix + "num9", new PressAndHoldAction(dev.Digit0)); + controller.AddAction(prefix + "dash", new PressAndHoldAction(dev.KeypadAccessoryButton1)); + controller.AddAction(prefix + "enter", new PressAndHoldAction(dev.KeypadAccessoryButton2)); +#warning Deal with the Accessory functions on the numpad later + } + + public static void UnlinkActions(this INumericKeypad dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.RemoveAction(prefix + "num0"); + controller.RemoveAction(prefix + "num1"); + controller.RemoveAction(prefix + "num2"); + controller.RemoveAction(prefix + "num3"); + controller.RemoveAction(prefix + "num4"); + controller.RemoveAction(prefix + "num5"); + controller.RemoveAction(prefix + "num6"); + controller.RemoveAction(prefix + "num7"); + controller.RemoveAction(prefix + "num8"); + controller.RemoveAction(prefix + "num9"); + controller.RemoveAction(prefix + "dash"); + controller.RemoveAction(prefix + "enter"); + } + } +} \ No newline at end of file diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IPowerExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IPowerExtensions.cs new file mode 100644 index 00000000..ff986325 --- /dev/null +++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IPowerExtensions.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using PepperDash.Essentials.Core; +using PepperDash.Core; + +namespace PepperDash.Essentials.Room.Cotija +{ + public static class IPowerExtensions + { + public static void LinkActions(this IPower dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.AddAction(prefix + "poweron", new Action(dev.PowerOn)); + controller.AddAction(prefix + "poweroff", new Action(dev.PowerOff)); + controller.AddAction(prefix + "powertoggle", new Action(dev.PowerToggle)); + } + + public static void UnlinkActions(this IPower dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.RemoveAction(prefix + "poweron"); + controller.RemoveAction(prefix + "poweroff"); + controller.RemoveAction(prefix + "powertoggle"); + + } + } +} \ No newline at end of file diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ISetTopBoxControlsExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ISetTopBoxControlsExtensions.cs new file mode 100644 index 00000000..14dc8e90 --- /dev/null +++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ISetTopBoxControlsExtensions.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using PepperDash.Essentials.Core; +using PepperDash.Core; + +namespace PepperDash.Essentials.Room.Cotija +{ + public static class ISetTopBoxControlsExtensions + { + public static void LinkActions(this ISetTopBoxControls dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.AddAction(prefix + "dvrlist", new PressAndHoldAction(dev.DvrList)); + controller.AddAction(prefix + "replay", new PressAndHoldAction(dev.Replay)); + } + + public static void UnlinkActions(this ISetTopBoxControls dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.RemoveAction(prefix + "dvrlist"); + controller.RemoveAction(prefix + "replay"); + } + } +} \ No newline at end of file diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ITransportExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ITransportExtensions.cs new file mode 100644 index 00000000..64af15b0 --- /dev/null +++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ITransportExtensions.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using PepperDash.Essentials.Core; +using PepperDash.Core; + +namespace PepperDash.Essentials.Room.Cotija +{ + public static class ITransportExtensions + { + public static void LinkActions(this ITransport dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.AddAction(prefix + "play", new PressAndHoldAction(dev.Play)); + controller.AddAction(prefix + "pause", new PressAndHoldAction(dev.Pause)); + controller.AddAction(prefix + "stop", new PressAndHoldAction(dev.Stop)); + controller.AddAction(prefix + "prevtrack", new PressAndHoldAction(dev.ChapPlus)); + controller.AddAction(prefix + "nexttrack", new PressAndHoldAction(dev.ChapMinus)); + controller.AddAction(prefix + "rewind", new PressAndHoldAction(dev.Rewind)); + controller.AddAction(prefix + "ffwd", new PressAndHoldAction(dev.FFwd)); + controller.AddAction(prefix + "record", new PressAndHoldAction(dev.Record)); + } + + public static void UnlinkActions(this ITransport dev, CotijaSystemController controller) + { + var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); + + controller.RemoveAction(prefix + "play"); + controller.RemoveAction(prefix + "pause"); + controller.RemoveAction(prefix + "stop"); + controller.RemoveAction(prefix + "prevtrack"); + controller.RemoveAction(prefix + "nexttrack"); + controller.RemoveAction(prefix + "rewind"); + controller.RemoveAction(prefix + "ffwd"); + controller.RemoveAction(prefix + "record"); + } + } +} \ No newline at end of file