From bf76be3e9702e232944c481b3b16d5ed0f9a6a54 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Wed, 19 Oct 2022 16:30:42 +0530 Subject: [PATCH 01/13] added interactable buttons --- ...MU data and config frames structures-1.pdf | Bin 0 -> 477206 bytes iPDC/assets/utility_tools.ui | 240 ++++++++++-------- iPDC/inc/connections.h | 2 + iPDC/inc/ipdcGui.h | 1 + iPDC/inc/map_vis.h | 3 + iPDC/inc/new_pmu_or_pdc.h | 2 +- iPDC/inc/parser.h | 2 + iPDC/inc/utility_tools.h | 25 ++ iPDC/src/ipdcGui.c | 41 ++- iPDC/src/map_vis.c | 73 ++++-- iPDC/src/new_pmu_or_pdc.c | 4 +- iPDC/src/parser.c | 55 ++++ iPDC/src/utility_tools.c | 95 ++++++- 13 files changed, 403 insertions(+), 140 deletions(-) create mode 100644 docs/PMU data and config frames structures-1.pdf diff --git a/docs/PMU data and config frames structures-1.pdf b/docs/PMU data and config frames structures-1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..da607b7d4e9f82c37965ecf4598a2b5e92bf8525 GIT binary patch literal 477206 zcmdSAbx_<(w>AnSgai%lPJo2K;I6@gTL=M$;O;iK1$Va)f@_cf!3KAC2A9E|!JRwo zz29@*Q}^Ce_5JZxoikO_^V9BL{dD(wmdqPv2`Oea79NZ@(6x~X3{*BMRw`Qq3k*R) zfV{qqDWkCsv#jD&Cp5R z!Pr>U*4BxNjq9(g>TY(%0C9aMeJfj2VPOno8>6TCIsUU9F&i6OCr2ty*1sMXx3zIH zws|`L>r~po*4Yl;s<;|J!q~;!&{$Ra13(R+?x1huXs7RBY-8vK_^XA#9)x#D!Pv-L z|AQ?^`>8rUZdNKTPF7ubH{p*u{nJlXV@F$O2SZ~=c)gM!Cuub&eJ5l1v9uZ&)n9#n zlFPx?P|es$8vq|4DuB8%$cYLdYYi9n!#}^`|NP48!k_+I^1mB#q+$iA>l-*e_3}yd zrxE&3xu2x^XMCm1t(=S<08&=))+LM$ZHs_9Ghps1XTNn2)+3CZo1}%av10 zDnxDH>TD{pdQlKY{weyZkhc?1WjAU9T+vu;q<`OkxIkS*x@Ze9IgSK%x!HX;2M%qf}fq0 zot>4Bm6wf^or{x=iIt0igO%Z*r{M4EaPV-$zdSmutgH%8h51uq_*6JN6}C@><9{5P zJRLbb6*}x(+)uw$PlfVR@zN<4 z(SP56IMpz6HZ=YpD}cJWla(>!+yCS+9RIecKA1Z>DjPe9+gjV%+B{J#UN}*(vUO0i z(>FAx;`n=M{eMh988``p(=&jKvAL<46BQ>1+rP*U2NxF`J3viA-_eqa<8KnE=4{~f zM5X>BV1Ki!&q@Xs#)eLSPyf`TX>J53PFy@(|Hho=_M3(*N#`3LcUqwS-D&QdW3a+Q z3EX8ddhIcHeTNGf$PHkHo}ouE8L%K2$>-R~JbF2k0%81YW@dJ&1D0y)cFbfD zsyCPFJ;pzBJGeTS!` zCXej8T{Kj4JTjc`0iNx818Lm}?mcC*;{-NdXCm(vFhU;+5>M>Xtq&otr_?G_9(t&nEM)z#+AZJGp&^ z^`NsYxuq)iBl!rUai$0kiU71(;wEfTSB3g+AgWJ$DTLvA{;J z(4zs=xm^l-xf@0?5c>Iry#!EM zn69xA#O^}~FWHn>6lIhxp6zKRd9 zqRVpq%JL7WuO;7yOBd{IHTjIv@9NKENxG9>)S^doHKi+tofpa9oe85#OGZj zx|!&Gwm&FGZ#FzQusSCXgZ@sBm(%*KM`;3ln#@{Y5SnZw%yar#2;?`V7fBc&;AGX- zeK;H_HsVIiOktZhwJ>@&fT;i*KV{eP-F{6xqLu)%XSTa{cG*mPm_mnHM5odjUnlZy zvh??|WO@J^Ed>drj3WNs2#|kAFgQ4ToV7{Eg!!X5lFhRN7 zC(<|(VcRpQm6IIc>6^^9Sds6imA^0CV8*9b$W+>>z0b`?!_3s0)UPUMKR!C=gYwGx z8BSEPo5G+>PvGvb2+xbnmgX{cS;kkuAdMp3cM@4|dWpOrd)*#V20z!&kc54p9OL5TEUnt64VBAt*sc;B1{y2N`waa{W44f@mCK?JjQZu-`-H?+Md1-DVGFqyO{>Q?n3L@`xFj2OzRmA8Ntt)W}pUk zC}9iiGHz*paXecpR|P9dgk`A}`w5c82p)@u6Izz_i3sfuD})e=@OEIW(TnhZG!B#| zFD_U}X$U<&siM`G*1&SOV=cnO2Z(Vn2)js9q%B8X7O@<4qP$tcXRx_!%L6@k*b^)I zK${N;!C#HCNanYgEe()5Cp!o2oJ@PEzWXF(&rW(!d+eWZdgq+&Te4)K=&FXR9IDub ze`VX`;5e$UvGY-i^=XKdz}bs89za5~YdzXm&jcMk%fwg9<-scmY4SxRKBmD;O@c2! zZNDtQE05)UII?E0qlTsVPGB{uE>I9@QH!*v{J`qMrTBXYyxy$n&D(r$hWBG`QVY#Rk-MC3PcMfBv*ZrXchs5 zk3-KwLJ60|TLt$T9CGf-4!t`BEiGhz2)=CHobqn6=k%M$so)!qi!Ec38*N=rN7_Sg zL`UG37KfWX4Aq%LJ#5~g%);DjE7$<@%u$+d*vh0mMb&A@&F`6~Y_x&6;@3WIW-IiS zyqlrI>YY<_GzYEkrwv%#W{`e^SC+$os)V`HA1&u+5$~#cgqehM+aK`hHqYXF9@fBx zYAxqZZ*FG(l&$nE+UTewzryI+duRx~1+)B0SI{Kok4_h{)V$aay?q;0f-yE)!S{iO zEe^6yySPh~9l9P< zx%)jwDv~fxL#1gKd&kxIqE)OW;L20L%W7pEs{dLWftUS@miz6+^|PU*HeU>?Q;{l9 zX;-5+Zv7Ld#6?+5gs-lg@ksH?Q4Z-7W8sJ_Dhv{sGjzCs@x6>BE0@tJVL^;LQv)0P z;-VGzI>pFTB8D5>SswDJVhh>7rYm&O0#2A`-n%j91y*x3YM-+NP?il=3EiRU&^A=` zf8xfRv%d!G*nfGEpB*TB`}lr%KmL17j&tp8uGbnw=UuN17_x5AfR{OV5o6UdPJTBB_YU{z zZpoOkdoxNQdINtz3T~TD$XSo>=nFej&!T}b54L{a@|8U7bFmM9kN9M)mXe#MB2567 zE$ohu-Vb-!+|iXcy4=<3nGIz}8#R;MtSc&+kA8-1my%O*1~2c5`7M|&M226h-d9t9 z&(=Kc*fcM9lL+?{SUFewNXx{7(sQ@!r*HyqJ*2V@XfO<4htNc4v}w(6pH)N||eXx^pB4|91G- zrl@usvcy!GzV4(=DpFXm7vwmD+(rLM!Y@y$t&}MijSFY0Qp5@pJhEm!Rk`|jtEnia6-UHU&Z|e)mhhM+?|eh{POnc zd(&UMxR5KyAIb-}t4hs#J@NXD!#3btTRJ_3Bgg#<^(fD%`6-KedP&Nu8Z{_qWwJuX z=^WzGOUkLOd^M=-Fc}n?k|+V?81+IV1zSKHY~KEfyvs6HJ4W@sv~zCh+vSEySaQmi zKY|P2mSmMLA=~!l(&cy@y7ukHJAtv2wF02SeVH@#YcO@OR6{&Kaa8&9*HM-l%mAG% zBe`FL2Hg^fkgF>OYu02sOKcNh6vvvn;eb2)8Cn62Rz(-nIr5w!OS!w!yYu9S@i0x# zSw);v7KZFv5h~(Hrqh1+&9_iVJdP0*bja_nJ&4xu7yF=8i2Ed{!-lPbLV5;z-CwygWAG7&WRT9h)=mPH1L$M42TFo+kNQu`LQG`Yad>ZZ+GQxE%vDaM2haCDiZH{9 z51Rzn-+vaeFRE;PEn;OC=NKL4adiGHJT>lymDWLQL0Jrb2cB zT#-Lt|43Fw$o=K5DFf8+Iyc2nFW;e+al(^bW!Q}vIUqw%)IzInXCn-7!F@`g$1|Yj z%t+*@P)MI3>(pPoC1QY$l{9^(3%G4_8wpB>o#J zIc%pN{-wS2iJk~EoG~*3w`rdkv-3q;UD1_!_(2)Fjs6jA#p8lYdWj>dU@N?IGVWdF zHJXh*^foy;iTh&BdaeCVlfLaieo>H;f}9vDj!6ndU@5NtKG${r;{b-*#x)I(7WK|Ixu&}YMlhrO(EQ>G!w}OmOSsT^b5irY9Q1%pD`i zxC+lwi3L#_{mjJC=&tO$t5f#HtG@N}R*0Z@T3d46-2^jk`MhZ2RufjUY0}PE_aV}p zy~>P77=y^3f3*bilw1~z4mZmZJI~xbm`4{6Z$!)bQ^8p-Mbcgqht#DP*&bC>>k;wX#!e)+R&f$T2fm&}n(hQta~mxyKt| zhn{y9zQ*YOtw|z-h-b|xn?6?1J0+w#?S)wu)CCsY@+ev4=xC0%o!s^H=>UbekH^e% zzJU)#o7w(VKjLIA1ay1jH6>N_j^!XU*(f7=taHy0yjX*9#DVK!^BVz~Jtm)ePwa7< z%50ujIXrw<;reZcgGt~HZSNA#U>iF;9yox+K`P0QY`67Md(CTE4ke%i@fE{q#7p)s zUUF?E3E_}YJ{cB=jj|*c2N*-%BAK92{vAsgG$2GQujt0x^gATu<(U&r7n23qsnT$R zeZ9jS%V0qzM=@gcs|!`|WXhnSoq8}CinizNR!3GpE{w+3XXZVjndNn$G0+gLG!0SF z^u55``VSS+Jd|TtM`S-`1qA-+>W0+Qi8jt#xv{2D#gG^VOf)0l zWG1@Tx*r-{Mb?DM zj~&8BSrer_DZ*;W88ZHs%hbSQ|L^|k9$>;F>&k~j5JC!%iUdV4M*9yOJV0**d1IHH z;MPywWh^hm7vKHkopF{KMC0g*t*$u=Ks(Alz}KNi7m6Md0?&esCNP25T^atFKeIr5 z!Q&zt{UWh096Me&ysmD;KTdy(AWkUdLhiHaP8zHJQ1BT+xi;0t<;S{NVA*Hq$$9++ zHep}OgE6%6Tc}Kzf+J&wBU;}nk!)r3FNnW^&%E-^a0N7i+9M6C!8*P6O1k z@=TQ=HFHg87WqL9Y#EO3%%lOvd6Yv-FQt#p$f66XYE)nS3huw;-GmDNM6%RA){oCD7kJY=sHdks-_3s%u zHA#U+z@spSvh@7^0nOD=V_S(cNdMVSk^s~P0MfG`FA8`X4KU^8C6EYiCcbiD^>|38 zTH5&wC00xT-G}8A!u(Q)a>;-7tyHMVIRLL9+`eU*+)R02g-po~(UpEV{NkfyYg}MbJV46hAT@4|J3) zDLUUvec-3LI)Q>VUxq=%9dR$+vMeEHbkuWiXVv6tcM-J{Pv+a;F5A8LVT4HpP70Vl z8xBqj`_oZ&u{sWyZZ+X*GG?DmRlpV1KP}+lL1!?9sf8w zgv!$$w0=v?Gkc>ou`U7YN~nm^us@1KL_w3SS}Go5JV~bK#Gi#!O2D#KsRM83_LuKy zVru7gzt|8BmJEmvFPAixavu$1pM6rXPijC*SqEg$Qe;>AzuA^8S9yi%E`r2`;?Emj zBY^Vl@^={R$u~GjO-RR+uLR3%*jcL*;Hw>x5&tnz)h8~Cv?j@(|GmuvclZz`q(A#p z5EKBJxfow?h_%t5mXFXE$R}b{97GUEjz3IyIQI^LFe99XDYVhvH2-;5{d&}7clHD0 zFVaaslRc}(E{ltO4ce8C$cx*8&mE0WGv}(;osK<^IK*8h>ah$FP-p1{9Wp|WWRLnvdWMbg1dx1YY)U=GSbvIo2aVT!8i{Auy+VY06dsD)pS4=uVgJV}P5!BUr3n_mUGS|qfZ7-;m^!aU+x2tYa zSs4hpWWPJ~L2z|b)1|1Lex6jZF{2k(3f5r4(?t|K^m; zKGA4BdgM?^A4`l`u~A&B$E|)aJ@@_5AT^NqOxMMp+kWlHr+0mC7!R=VyXWl7=m=xy zjOgo3IIoOis9mFtb~F}J-CNAaV<`&&6DiHK;?2Xvez1l?&g*2ciW%P{O>5f???out zhE^8kLQ26Q^DP-3!{Jdf3Ba28Ta_<1B!lxMFFbjfVo^MEjeCEtd^wv-h2{n2QUunB zpzuv+kKYRcwA^do zzTz}Z_7It=tD7=vl%LZGb9UX|7CWV0%T3$NTnR+BFpNmYglc#T zaEeWlmOpNxbu-$aM_hgH*WzvtyCMa-`jo+bViW&9oj`VLzouHah(K;FU)Cd4;??%A z)R2bzSL#O4tPj`goAjE67QV)biMS0nV#?MwX!IR!QY#TX?TbO!x*iq%Qywh?ik*$j z-6)FJtz8MaD!sVf|JC85Z!Y%4UMX^)eDYaY)EX3ABpd*zr*POm)%@k8@nGZG5uUh{ zYy~5^)b2}9CBsJc`FDhLCh36b2Wz~=Qko->CepmX!>`PP(!0%05IWl!aO|8IJS0^v zYh9Cmytv`lBNAazneNDL74%TU$6gM*k0=xBa=`r*WpkKTg_>K=jq+|0F)7pSr|*mU z5+S`)BHCYLq~rx{=dRNxNlZ2P_La}rmBEL<)7SHoy#PLlFcLXbGGhZPNy;Ad+0~z> z%0V4rGben+)s`EPCkMYiLo~n0km3^vp?SJ`l{p*uBvvZCIH)6wHU0T9jSx?3npq!^ zY|XeiZ~pdfopk|JrnmIQf4e-$JQK0=r)Z0#6(}=vWVR zxnB8YQd}$Y&ZX&RT>+riY|B4!Rrp1q$oxseW5}vMb?d77>g`GMRDx<< z;n9u$@3xcdqb+`AQMOma@~RRkgf`sw{ohV#N^l%V@!HAGf5EUgg znJieuO0p@2TW40uY{k^PD%H<|QmfQ~cb9wD%X6M$CPD)77x_q!ckT5TbvN^>YtjQ@ zSczC?!wYkh(P06utNWwrsh^{88L4=Qzq&2C_3|o<#!?h{GEVcm6;A{y1QCku+5hl# z+2nGfL}Xo?L=dt1agipSZS~o%tJD#N46s)s+d}#Is~bY9x~u%Y&ba6-1SJYb#>*%J z@xh@5y^{^a@mg3E)7Q_NhdGi)AK?KIBJL}&nw32C%5Xokx7C-e zfK1Q}$QcocZ{(WzRz4qL}! zPmR5}cP{mqxyz}ip;5HSptc;u@6b1V7acAc$i{szR;}h7&>}MrAjK`V|2!g-EICAY zYDQ?Qi$SgPCBE!5FmcU=y=~m!>vj2JjUw4TtM{#plklP=&}v@}6LVq%Wuw^J?KBM1 zYmi7f1bE9ZusawP+gC<8^0j56$0LEnQ_bnd_H0#>hcpUv2&a5HD{z9RjJp72?7v}3 z#`u->!qK-z_@lmgpq}o|us@XRVA8jeBuNL8w7`a{WvFZfq@|~DbI&RcreBFV{`_6C zOYU3KkvCDn5pOu`xU+;rGPuzSq?OSpU|F;3bPTr$xxzG^k2a_aT*R%@{>-t~h(-l$ zH~EC;(9lH+C?Djo7)8q+F}>jq7t`jpFRB1y;WsY%z`m>WP7vnKDi5E2+Mr7t0uicN zStVJ#k{?p;ywM-{e(Eqbtmiel%+OcpT!Z=DPF8I>u{i}kjlv!}gq2&{!5w_%Dp=o{ z7Omg0gUi|kofpvqKERnBtd=S#ulNs{xhy3jm6En%2FZ%FPl@!%%zFxf@j2x6+7WUP ziB*H%r*W}Z75-@GbsYBNOkS4+s)vJe4UKtiTEN#!qTE5_;yNcoY z-V$k8yG(ZUuWG%oIGjIRhSfE9Dw`H9IIVv%wOM|G-F_s_EW=WUP3V*L10cGZ}>p1G2# z+OZAf_nVRe3K0aJsi418-#TAxif0k%#5v><1k`3~I`&}Z53KHvz|=9znm18zHi8@{ zwyrP^n9qirpMrbtw09{Qk;aQibP@@k%g@$%7%YBp z;*nYNTXkvU%dTT<0Ct++;$}1$NZkiy^^4D_wA9}^3{wF^5N&jNp?(EeZ|k0GCp-g? zu5(cVMH1h>`jkx(6uIaqlAf;5UL^+P_}H6$<#l;6PrAMv|K*l@fky1BkOqUu<3cGY zkf2^o#|y7qa=~b_t^UUQH1x^wz|{EUc!+Z`roEXNS5`>Z$82yxoz~ZAisu)SeYY0u zT3)@tt3knj24sC*;-B>RIiU39xgEvBgCcwD<5|G=Lce1huYhqv;AfteBr|S*ClN0h zzrOpRXnm^DOdkFtH6CY&l{SuC*ruv-l0)>}`4rwUZdgcPd}fylW&8KxeCe|LRjfxe zQdLk7Qu|N;73yGUvsbFW^P4`sEF_P!ExRB2tiS_%wCO*FNJ(ev#8k!Fl?xUxWb>Wv3smI~9YG^4!F<;z{EhTG7XWzpHJm{t zKIg}FzVOgNfvI#E!nEG9r;M{+_z92VnV~IT9NsQ68gHVEq9quqtl2)THCx9kdvl)j z#xvfj9AxBpP8_==L&OZ9LXZyo_=IC=H1q~z6JUU=0W{QS{QeC~*(v8N~*Qt?zK@_VS ztvEE*=jGBSqUkNG#f%)kOV$mgJaCszUPik75zf<@w}W?LeWE?d!UQ9^k#OKOUV zl*ByuTmjEA+eis9)-+>5)^(GVUB%l>K z@#uqICLH0CgTcUWyoyxb%~+D2z9dpfb#QchJ@2JR7zS}}goivwxvJ6Tf08E)(kLZ% zOWx|zalGA8^NlTub|zSqfWh6sW!05Q99&z&jk7OUSigtsc>R0w#J{;5{*_x{H8rLX zK^F$e_?;@)bQ%l$I|vGQBiEqK2EGj2qF?(v6QiAV$pUg!R(75dgR~c>0+zm9tPqs6 zF38sQ?V&e~K8Wwf?>J%lbMW%@HNUhI%5d@4#>vCp%xd5)r>>+_5Qnx@62Rf>B6vbYwf?kbaDE$pjfH@?KlnU0m@|!Si0MJqkag;#hQ+5!S?ag4_E%&szLK ziRGVHw$#SO_+$?LxPv(}rINHVo#QSc&2FT(%sABx0YRzdp zMAmtUkxuJ`+qI`3LO1~4_N7inMSIa3@!^^xaA<@+))t+$tONZ$Q z;OemgFUtK<#UDe%7kpy&0_f-DZEZAXsPK4bp3z|_2@4t zFyI};1H5PcODl&FO5u3HXA3;^?a{L!@mKneX%I=|BElfJf+-vxH25zQrG4E0DIW(O z)~U^f6h05klZ@)9vSnK*$}|=!ZjSJw*wg6W$@sCqFIYp2a`>XjSo=eHQMDQB#Hp06 z(?MBZ-bp(=SWOZ(a(_w@4FZx*KC5*7oJz9?b?hrwMrmU8tJn_5VCdsvRx3SIEZoZy4OkB?FbMj7;vy!aWCk8o`Gm{pPUo#)u9R zy@WThYvGIiIJ-=^Ro=8`4u9EJrU`tUc;&bI`BZ5a@isbxx?gAP*mt?~UgRzw4{$N- zzlG6|??iqS;HyF`W(3B^yBFcPO7pCyu{kg1P= z143@)*5s%~K~Z>)3c6c5A+&3`>2=!334W%sGdxo2>)A+t6z*VvMVjAfDM(zscT26% zJhRo8Tvv!&`AVaEA&yWzt?Bu^z~3XVl7MOcOK)YSdGb4?3dhm|*S;c94SX|n5+%d3 zt@DD6&$AbvUJ8$i?k0bendwo2Ol-olUi3g61xxv+K(()bbQPvGQVE5q^PaJnpBKVj z#MoX}oWipsNy$5Z&;ujYFmLk;0$_uCS}HN<`hrXk?26Iw`Ml`Jv#R3T;kab5P$D(9 z$|A6)#H=~NV8D8hb4u6{@Qb+E&cg7j_2WPx1avqco4(*oPM+8_$GU}V@9{JrD)?v? zBgjO!RQE!0O-T2xCQ3~?&`~+DELtwEVbKPk!hd{+x-tFE-7)?)X<4}*H{@2|+n`TY zDSzN9b|oDxyza8{>uPL7?`=O&*llK;hv|(A-J2%laVIzjA00v=mR;C#rdI0+(oE5b zZh%#>x0sx~S#qE1uKe&%N?aJ^T7h1{09`q6H8~v>W6oYS*A`MIhxuPt`?S`^-=RX) z|DRCdmJ^3QT2>;l{N%MQA{*GM2&|*1z_2YKeY0%vd&%e&HJ5@Gc?#2@5>yH)eeS^W zLq*_>Ybwm<&!0gPBt2WAowB@ko$zfc|CFriYH{xczu_Y0T6f)>mSg7~J7%GP?9sx* zo_RMEEmuXzS=0;SDMW2SpUCh*KEk!)L;4FOUU8n_XhYe45*E-z>gTntvcV#q=BA

x%DgnaYwcz?3zzi$rQA{%M!f;dw>LNe zyHE@&m_5ViQjAQ32EP4Wmr;O|aYgdo$7M8?3oUK1_3M7FnRBFUz^5f;aM`SaY7WnE zbTB)s8q@2R7@Ts>^kh1N68`u!yPuoBBEZo#Bsy;jcU~^vRq{0Piv_^p|kT z#Tp-?u0KfZy5Xzy=x&%3ylDIQ7WPhc?jh2)3K9At4HX3dYj488{i99OKcdl z-d7ZvfP2J+fYOYE=@|s#bHIe54k_w{(Z>2H? z(Y-c=#8*&B!@=>EW;(p#Q~_3muh~` zkgkc215Y5Qw!Scj1%-(+v0KYca$$fn;$L}g=*u^V9DHhF6{_JV&%N~K@od&((Hv|a zY?k}7)*S2BMg`xi$7nR_DzIx5{XmkDYlWgUJEf$_Og%>*7=Z>0N5+m(2a0gyMkPji z!M*eQFjpsw3cFjYo|Xdn=V!I!;Upjo3FDrL;!2>krh0J}+7n(BGPV zY=erAAFvz@zB~rB(2h+5{M(pvFCcFz4EH6U-6k7RCU@7%bgX< z7mJ^%lpXh0Gyl_qYh4}$P&y`5qxX(#Eb-ⓈbTByg8^FA3RoZA?g($f2Z_u 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%0Dm98CydPbng7;^Yi2@KJ1oD+$ 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ⅆ^kay&lfEtbkq*@T>s$2`8~l}3kX96-4A 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⩽$p6d(wBjt7eya{0HwINs)$t-b(+XMqnb- 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 lx<0_vFsA;Wue-C0iIa - + - - 100 - 1 - 10 - - 800 - 600 - False - - - + 800 + 600 + False True - False - 10 - 10 - 3 + False + 10 + 10 + 3 - 800 + 800 True - False - True - immediate + False + True + immediate True - False + False _File - True + True True - False + False gtk-new True - False - True - True + False + True + True gtk-open True - False - True - True + False + True + True gtk-save True - False - True - True + False + True + True gtk-save-as True - False - True - True + False + True + True True - False + False gtk-quit True - False - True - True + False + True + True @@ -96,47 +88,47 @@ True - False + False _Edit - True + True True - False + False gtk-cut True - False - True - True + False + True + True gtk-copy True - False - True - True + False + True + True gtk-paste True - False - True - True + False + True + True gtk-delete True - False - True - True + False + True + True @@ -146,28 +138,28 @@ True - False + False _View - True + True True - False + False _Help - True + True True - False + False gtk-about True - False - True - True + False + True + True @@ -177,88 +169,128 @@ + - 100 - 80 + 100 + 80 True - True - False - 5 - 6 + True + False + 10 + 6 + - 80 + 80 True - False - 5 - 35 + False + 35 Voltage True - True - True + True + True - 0 - 0 - - - - - Current - True - True - True - - - 0 - 1 + 0 + 0 Frequency True - True - True + True + True - 0 - 2 + 0 + 1 Attack Detection True - True - True + True + True - 0 - 3 + 0 + 2 + + + + + True + False + 0 + + kmeans + simple + + + + 0 + 3 + + + + + True + False + 0 + + frequency only + frequency,voltage + voltage + + + + 0 + 4 - 0 - 0 + 0 + 0 - 600 - 500 + 600 + 500 True - False - 5 + False - 1 - 0 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + 30 diff --git a/iPDC/inc/connections.h b/iPDC/inc/connections.h index b87d944..3124239 100755 --- a/iPDC/inc/connections.h +++ b/iPDC/inc/connections.h @@ -63,6 +63,8 @@ struct Lower_Layer_Details { int data_transmission_off; int pmu_remove; int request_cfg_frame; + float latitude; + float longitude; struct Lower_Layer_Details *next; struct Lower_Layer_Details *prev; diff --git a/iPDC/inc/ipdcGui.h b/iPDC/inc/ipdcGui.h index f489e44..6193671 100755 --- a/iPDC/inc/ipdcGui.h +++ b/iPDC/inc/ipdcGui.h @@ -114,6 +114,7 @@ GtkWidget *add_pmu_window, *chkBtn; GtkWidget *new_window, *setup_display_window; GtkWidget *p_id, *p_udp, *p_tcp, *p_ip; GtkWidget *p_port, *p_protocol; +GtkWidget *p_lattitude, *p_longitude; pthread_t show_sys_time; diff --git a/iPDC/inc/map_vis.h b/iPDC/inc/map_vis.h index a2c3d2a..90baf2b 100644 --- a/iPDC/inc/map_vis.h +++ b/iPDC/inc/map_vis.h @@ -5,6 +5,9 @@ typedef struct{ GdkPixbuf *g_red_image; GdkPixbuf *g_green_image; OsmGpsMapImage *g_last_image; + int current_selection; } myParameters; + + gboolean update_images(gpointer* pars); \ No newline at end of file diff --git a/iPDC/inc/new_pmu_or_pdc.h b/iPDC/inc/new_pmu_or_pdc.h index f347996..9205554 100755 --- a/iPDC/inc/new_pmu_or_pdc.h +++ b/iPDC/inc/new_pmu_or_pdc.h @@ -31,7 +31,7 @@ /* Function prototypes */ /* ------------------------------------------------------------------ */ -int add_PMU(char pmuid[], char ip[], char port[], char protocol[]); +int add_PMU(char pmuid[], char ip[], char port[], char protocol[], char latitude[], char longitude[]); void add_PMU_Node(struct Lower_Layer_Details *temp_pmu); diff --git a/iPDC/inc/parser.h b/iPDC/inc/parser.h index d4ce901..c96e2c6 100755 --- a/iPDC/inc/parser.h +++ b/iPDC/inc/parser.h @@ -166,4 +166,6 @@ unsigned long int to_long_int_convertor(unsigned char array[]); uint16_t compute_CRC(unsigned char *message,int length); +float decode_ieee_single(const void *v); + /**************************************** End of File *******************************************************/ diff --git a/iPDC/inc/utility_tools.h b/iPDC/inc/utility_tools.h index 9e3d6a9..5e49756 100644 --- a/iPDC/inc/utility_tools.h +++ b/iPDC/inc/utility_tools.h @@ -8,6 +8,31 @@ #define CH_GET_WIDGET(builder, name, data) \ CH_GET_OBJECT(builder, name, GTK_WIDGET, data) +/* Main data structure definition */ +typedef struct _UtData UtData; + +struct _UtData +{ + /* Main window */ + GtkWidget *util_window; + + /* ui buttons */ + GtkWidget *voltage; + GtkWidget *frequency; + GtkWidget *attack_detection; + GtkWidget *algorithm; + GtkWidget *dimmension; + OsmGpsMap *util_map; + GtkContainer *map_layout; +}; + +UtData *utdata; + +/* UI variables */ +int curr_measurement = 0; +int algorithm =0; +int dimmensions = 0; + void utility_tools(GtkButton *but, gpointer udata); \ No newline at end of file diff --git a/iPDC/src/ipdcGui.c b/iPDC/src/ipdcGui.c index 0ad37bb..69b65e5 100755 --- a/iPDC/src/ipdcGui.c +++ b/iPDC/src/ipdcGui.c @@ -673,13 +673,16 @@ int add_pmu_validation (GtkButton *but, gpointer udata) /* local variables */ int ret; char *errmsg1, ip[20], tmp[4]; - const char *text, *text1, *text2, *text3; + const char *text, *text1, *text2, *text3, *lattitude, *longitude; /* Get the text entries filled by user */ text = gtk_entry_get_text(GTK_ENTRY(p_id)); text1 = gtk_entry_get_text(GTK_ENTRY(p_ip)); text2 = gtk_entry_get_text(GTK_ENTRY(p_port)); text3 = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX(p_protocol)); + lattitude = gtk_entry_get_text(GTK_ENTRY(p_lattitude)); + longitude = gtk_entry_get_text(GTK_ENTRY(p_longitude)); + memset(ip,'\0',20); strcat(ip, text1); strcpy (tmp, text3); @@ -702,10 +705,22 @@ int add_pmu_validation (GtkButton *but, gpointer udata) validation_result (errmsg1); /* Show the unsuccess message to user */ return 0; } + else if(atof(lattitude) > 90 || atof(lattitude) < -90) + { + errmsg1 = " Not a valid Lattitude of Source Device! Try again "; + validation_result (errmsg1); /* Show the unsuccess message to user */ + return 0; + } + else if(atof(longitude) > 180 || atof(longitude) < -180) + { + errmsg1 = " Not a valid Longitude of Source Device! Try again "; + validation_result (errmsg1); /* Show the unsuccess message to user */ + return 0; + } else /* Only if all the text_box entries were right */ { /* call add_PMU() to actual add pmu/pdc and start communication */ - ret = add_PMU((char *)text, (char *)text1, (char *)text2, (char *)text3); + ret = add_PMU((char *)text, (char *)text1, (char *)text2, (char *)text3, (char *)lattitude, (char *)longitude); if (ret == 0) { /* Close/destroy the add_pmu_window */ @@ -1256,7 +1271,7 @@ void add_pmu (GtkButton *but, gpointer udata) gtk_window_set_resizable ( GTK_WINDOW (add_pmu_window), FALSE); /* Create a table of 5 by 2 squares. */ - table = gtk_table_new (5, 2, FALSE); + table = gtk_table_new (7, 2, FALSE); /* Set the spacing to 20 on x and 30 on y */ gtk_table_set_row_spacings (GTK_TABLE (table), 16); @@ -1300,6 +1315,16 @@ void add_pmu (GtkButton *but, gpointer udata) gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 4, 5); gtk_widget_show (label); + label = gtk_label_new ("x-co-ordinate"); + gtk_misc_set_alignment (GTK_MISC(label),0,0); + gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 5, 6); + gtk_widget_show (label); + + label = gtk_label_new ("y-co-ordinate"); + gtk_misc_set_alignment (GTK_MISC(label),0,0); + gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 6, 7); + gtk_widget_show (label); + /* Create text boxes for user to enter appropriate values */ p_id = gtk_entry_new(); gtk_entry_set_max_length ((GtkEntry *)p_id, 5); @@ -1316,6 +1341,16 @@ void add_pmu (GtkButton *but, gpointer udata) gtk_table_attach_defaults (GTK_TABLE (table), p_port, 1, 2, 3, 4); gtk_widget_show (p_port); + p_lattitude = gtk_entry_new(); + gtk_entry_set_max_length ((GtkEntry *)p_lattitude, 10); + gtk_table_attach_defaults (GTK_TABLE (table), p_lattitude, 1, 2, 5, 6); + gtk_widget_show (p_lattitude); + + p_longitude = gtk_entry_new(); + gtk_entry_set_max_length ((GtkEntry *)p_longitude, 10); + gtk_table_attach_defaults (GTK_TABLE (table), p_longitude, 1, 2, 6, 7); + gtk_widget_show (p_longitude); + /* Create combo boxe for user with some fixed values */ p_protocol = gtk_combo_box_text_new (); gtk_combo_box_text_append_text(GTK_COMBO_BOX(p_protocol), "UDP"); diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index d35e723..14be98a 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -4,33 +4,70 @@ #include "parser.h" #include "osm-gps-map.h" #include "Attack_detect.h" +#include "connections.h" +// #include "utility_tools.h" gboolean update_images(gpointer* pars){ + int match=0,id; myParameters* parameters = (myParameters*) pars; struct data_frame *df = TSB[0].first_data_frame; + struct Lower_Layer_Details *LLptr; + if (df == NULL){ return TRUE; } - int freq = to_intconvertor(df->dpmu[0]->freq); - gboolean green =attack_detect(df,&START,&COUNT,&SUM_OF_FREQUENCY); + // if (curr_measurement==1) + // { + while (df != NULL){ + id = to_intconvertor(df->idcode); + printf("id = %d\n",id); + + LLptr = LLfirst; + + while(LLptr != NULL){ + printf("pmuid = %d\n",LLptr->pmuid); + if(LLptr->pmuid == id){ + match = 1; + break; + } + LLptr = LLptr->next; + } + + if(match == 1){ + float lat = LLptr->latitude; + float lon = LLptr->longitude; + float freq = to_intconvertor(df->dpmu[0]->freq)*0.001+50; + printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq); + // gboolean green =attack_detect(df,&START,&COUNT,&SUM_OF_FREQUENCY); + + if(parameters->g_last_image != 0){ + osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); + } + if (freq > 50.300){ + parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_green_image); + }else{ + parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image); + } + // if(parameters->g_last_image != 0){ + // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); + // } + // if (green){ + // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_green_image); + // }else{ + // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); + // } + + + } + df = df->dnext; + } + // } + + + + - // if(parameters->g_last_image != 0){ - // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - // } - // if (freq > 300){ - // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_green_image); - // }else{ - // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); - // } - if(parameters->g_last_image != 0){ - osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - } - if (green){ - parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_green_image); - }else{ - parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); - } gtk_widget_queue_draw(GTK_WIDGET(parameters->util_map)); return TRUE; } \ No newline at end of file diff --git a/iPDC/src/new_pmu_or_pdc.c b/iPDC/src/new_pmu_or_pdc.c index b0cb390..fff224c 100755 --- a/iPDC/src/new_pmu_or_pdc.c +++ b/iPDC/src/new_pmu_or_pdc.c @@ -82,7 +82,7 @@ /* created for each added lower layer PMU/PDC accoring to the protcol (TCP/UDP).*/ /* ---------------------------------------------------------------------------- */ -int add_PMU(char pmuid[], char ip[], char port[], char protocol[]) { +int add_PMU(char pmuid[], char ip[], char port[], char protocol[], char latitude[], char longitude[]) { int err; int flag = 0; @@ -161,6 +161,8 @@ int add_PMU(char pmuid[], char ip[], char port[], char protocol[]) { temp_pmu->data_transmission_off = 0; temp_pmu->pmu_remove = 0; temp_pmu->request_cfg_frame = 0; + temp_pmu->latitude = atof(latitude); + temp_pmu->longitude = atof(longitude); temp_pmu->next = NULL; temp_pmu->prev = NULL; diff --git a/iPDC/src/parser.c b/iPDC/src/parser.c index daa5b50..2f88ec7 100755 --- a/iPDC/src/parser.c +++ b/iPDC/src/parser.c @@ -55,6 +55,9 @@ #include #include #include +#include +#include +#include #include "parser.h" #include "global.h" #include "dallocate.h" @@ -62,6 +65,58 @@ #include "connections.h" #include "recreate.h" + +float decode_ieee_single(const void *v) { + + const unsigned char *data = v; + int s, e; + unsigned long src; + long f; + float value; + + src = ((unsigned long)data[0] << 24) | + ((unsigned long)data[1] << 16) | + ((unsigned long)data[2] << 8) | + ((unsigned long)data[3]); + + s = (src & 0x80000000UL) >> 31; + e = (src & 0x7F800000UL) >> 23; + f = (src & 0x007FFFFFUL); + + if (e == 255 && f != 0) { + /* NaN (Not a Number) */ + value = DBL_MAX; + + } else if (e == 255 && f == 0 && s == 1) { + /* Negative infinity */ + value = -DBL_MAX; + } else if (e == 255 && f == 0 && s == 0) { + /* Positive infinity */ + value = DBL_MAX; + } else if (e > 0 && e < 255) { + /* Normal number */ + f += 0x00800000UL; + if (s) f = -f; + value = ldexp(f, e - 150); + } else if (e == 0 && f != 0) { + /* Denormal number */ + if (s) f = -f; + value = ldexp(f, -149); + } else if (e == 0 && f == 0 && s == 1) { + /* Negative zero */ + value = 0; + } else if (e == 0 && f == 0 && s == 0) { + /* Positive zero */ + value = 0; + } else { + /* Never happens */ + printf("s = %d, e = %d, f = %lu\n", s, e, f); + assert(!"Woops, unhandled case in decode_ieee_single()"); + } + + return value; +} + /* ---------------------------------------------------------------------------- */ /* FUNCTION cfgparser(): */ /* It creates configuration objects for the received configuration frames. */ diff --git a/iPDC/src/utility_tools.c b/iPDC/src/utility_tools.c index 1ec7c0c..fce1144 100644 --- a/iPDC/src/utility_tools.c +++ b/iPDC/src/utility_tools.c @@ -3,6 +3,7 @@ #include "parser.h" #include "osm-gps-map.h" #include "map_vis.h" +#include "utility_tools.h" #define UI_fILE "./assets/utility_tools.ui" #define RED_IMAGE "./assets/red.png" @@ -24,10 +25,47 @@ void on_window_destroy(GtkWidget *widget, gpointer data) gtk_main_quit(); } +// on clicking the button frequency +void on_frequency_clicked(GtkButton *but, gpointer udata) +{ + curr_measurement = 1; + gtk_widget_hide(utdata->algorithm); + gtk_widget_hide(utdata->dimmension); + gtk_widget_set_sensitive(utdata->voltage, TRUE); + gtk_widget_set_sensitive(utdata->frequency, FALSE); + gtk_widget_set_sensitive(utdata->attack_detection, TRUE); + + + // printf("Frequency\n"); +} + +// on clicking the button attack_detection +void on_attack_detection_clicked(GtkButton *but, gpointer udata) +{ + curr_measurement = 2; + gtk_widget_set_sensitive(utdata->voltage, TRUE); + gtk_widget_set_sensitive(utdata->frequency, TRUE); + gtk_widget_set_sensitive(utdata->attack_detection, FALSE); + + gtk_widget_show(utdata->algorithm); + gtk_widget_show(utdata->dimmension); + // printf("Attack Detection\n"); +} + +// on clicking the button voltage +void on_voltage_clicked(GtkButton *but, gpointer udata) +{ + curr_measurement = 0; + gtk_widget_hide(utdata->algorithm); + gtk_widget_hide(utdata->dimmension); + gtk_widget_set_sensitive(utdata->voltage, FALSE); + gtk_widget_set_sensitive(utdata->frequency, TRUE); + gtk_widget_set_sensitive(utdata->attack_detection, TRUE); + // printf("Voltage\n"); +} + void utility_tools(GtkButton *but, gpointer udata) { - OsmGpsMap *util_map; - GtkWidget *window; GdkPixbuf *g_red_image; GdkPixbuf *g_green_image; OsmGpsMapImage *g_last_image; @@ -35,35 +73,66 @@ void utility_tools(GtkButton *but, gpointer udata) GtkBuilder *builder; GError *error = NULL; builder = gtk_builder_new(); + + + if(!gtk_builder_add_from_file(builder, UI_fILE, &error)) { g_warning("%s", error->message); g_free(error); } + + utdata = g_slice_new(UtData); + utdata->util_window = GTK_WIDGET(gtk_builder_get_object(builder, "util_window")); + utdata->voltage = GTK_WIDGET(gtk_builder_get_object(builder, "voltage")); + utdata->frequency = GTK_WIDGET(gtk_builder_get_object(builder, "freq")); + utdata->attack_detection = GTK_WIDGET(gtk_builder_get_object(builder, "attack_detection")); + utdata->algorithm = GTK_WIDGET(gtk_builder_get_object(builder, "algorithm")); + utdata->dimmension = GTK_WIDGET(gtk_builder_get_object(builder, "dimmension")); + // utdata->util_map = GTK_WIDGET(gtk_builder_get_object(builder, "util_map")); + utdata->map_layout = GTK_CONTAINER(gtk_builder_get_object(builder, "map_layout")); + + gtk_widget_set_sensitive(utdata->voltage, FALSE); + gtk_widget_set_visible(utdata->algorithm, FALSE); + gtk_widget_set_visible(utdata->dimmension, FALSE); + + g_signal_connect(utdata->attack_detection, "clicked", G_CALLBACK(on_attack_detection_clicked), NULL); + g_signal_connect(utdata->frequency, "clicked", G_CALLBACK(on_frequency_clicked), NULL); + g_signal_connect(utdata->voltage, "clicked", G_CALLBACK(on_voltage_clicked), NULL); + + + + g_red_image = gdk_pixbuf_new_from_file_at_size (RED_IMAGE, 24,24,NULL); g_green_image = gdk_pixbuf_new_from_file_at_size (GREEN_IMAGE, 24,24,NULL); - window = GTK_WIDGET(gtk_builder_get_object(builder, "util_window")); - GtkContainer *map_container = GTK_CONTAINER(gtk_builder_get_object(builder, "map_layout")); - util_map = g_object_new (OSM_TYPE_GPS_MAP, + utdata->util_map = g_object_new (OSM_TYPE_GPS_MAP, "map-source", OSM_GPS_MAP_SOURCE_OPENSTREETMAP, "tile-cache", "/tmp/", NULL); - osm_gps_map_set_center_and_zoom (util_map, 15.4589, 75.0078, 10); + osm_gps_map_set_center_and_zoom (utdata->util_map, 15.4589, 75.0078, 10); - g_last_image = osm_gps_map_image_add(util_map,15.4589, 75.0078, g_red_image); - g_last_image = osm_gps_map_image_add(util_map,15.518597, 74.925584, g_green_image); - myParameters parameters = {util_map, g_red_image, g_green_image, g_last_image}; + // TODO: add the points to window. + g_last_image = osm_gps_map_image_add(utdata->util_map,15.4589, 75.0078, g_red_image); + g_last_image = osm_gps_map_image_add(utdata->util_map,15.518597, 74.925584, g_green_image); + + + + myParameters parameters = {utdata->util_map, g_red_image, g_green_image, g_last_image}; gpointer data = (gpointer) ¶meters; guint pid = g_timeout_add(20, (GSourceFunc) update_images, data); - gtk_widget_set_size_request(GTK_WIDGET(util_map), 600, 500); + gtk_widget_set_size_request(GTK_WIDGET(utdata->util_map), 600, 500); - gtk_container_add(map_container, GTK_WIDGET(util_map)); - g_signal_connect(window, "destroy", G_CALLBACK(on_window_destroy), GUINT_TO_POINTER(pid)); + gtk_container_add(utdata->map_layout, GTK_WIDGET(utdata->util_map)); + g_signal_connect(utdata->util_window, "destroy", G_CALLBACK(on_window_destroy), GUINT_TO_POINTER(pid)); + + gtk_widget_show_all(utdata->util_window); + + gtk_widget_hide(utdata->algorithm); + gtk_widget_hide(utdata->dimmension); - gtk_widget_show_all(window); gtk_main(); } \ No newline at end of file From c4b2a0502018beb4f043d096bbfdabc9c305fe81 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Wed, 19 Oct 2022 16:55:48 +0530 Subject: [PATCH 02/13] added live-chart library --- iPDC/Makefile | 4 +- iPDC/lib/liblivechart_static.a.p/area.c | 409 ++++ iPDC/lib/liblivechart_static.a.p/axis.c | 1795 ++++++++++++++++ iPDC/lib/liblivechart_static.a.p/background.c | 559 +++++ iPDC/lib/liblivechart_static.a.p/bar.c | 329 +++ iPDC/lib/liblivechart_static.a.p/bezier.c | 534 +++++ iPDC/lib/liblivechart_static.a.p/bounds.c | 350 ++++ iPDC/lib/liblivechart_static.a.p/chart.c | 1103 ++++++++++ iPDC/lib/liblivechart_static.a.p/config.c | 1046 ++++++++++ iPDC/lib/liblivechart_static.a.p/drawable.c | 222 ++ iPDC/lib/liblivechart_static.a.p/font.c | 544 +++++ iPDC/lib/liblivechart_static.a.p/geometry.c | 213 ++ iPDC/lib/liblivechart_static.a.p/grid.c | 1286 ++++++++++++ .../liblivechart_static.a.p/intersections.c | 800 +++++++ .../liblivechart_static.a.p/intersectors.c | 726 +++++++ iPDC/lib/liblivechart_static.a.p/labels.c | 485 +++++ iPDC/lib/liblivechart_static.a.p/legend.c | 1051 ++++++++++ iPDC/lib/liblivechart_static.a.p/line.c | 375 ++++ iPDC/lib/liblivechart_static.a.p/line_area.c | 308 +++ .../liblivechart_static.a.p/max_bound_line.c | 249 +++ .../liblivechart_static.a.p/min_bound_line.c | 260 +++ iPDC/lib/liblivechart_static.a.p/path.c | 586 ++++++ iPDC/lib/liblivechart_static.a.p/points.c | 739 +++++++ iPDC/lib/liblivechart_static.a.p/region.c | 1158 +++++++++++ iPDC/lib/liblivechart_static.a.p/serie.c | 679 ++++++ .../liblivechart_static.a.p/serie_renderer.c | 549 +++++ iPDC/lib/liblivechart_static.a.p/series.c | 491 +++++ .../lib/liblivechart_static.a.p/smooth_line.c | 887 ++++++++ .../smooth_line_area.c | 564 +++++ .../static/static_chart.c | 672 ++++++ .../static/static_grid.c | 1270 ++++++++++++ .../static/static_line.c | 404 ++++ .../static/static_points.c | 821 ++++++++ .../static/static_serie.c | 619 ++++++ .../static/static_serie_renderer.c | 483 +++++ .../static/static_series.c | 415 ++++ .../static/static_values.c | 348 ++++ .../liblivechart_static.a.p/threshold_line.c | 303 +++ iPDC/lib/liblivechart_static.a.p/utils.c | 392 ++++ iPDC/lib/liblivechart_static.a.p/values.c | 341 +++ iPDC/lib/livechart.h | 1846 +++++++++++++++++ iPDC/lib/livechart.vapi | 507 +++++ iPDC/lib/livechart_static.h | 1846 +++++++++++++++++ iPDC/lib/livechart_static.vapi | 507 +++++ iPDC/src/map_vis.c | 3 +- 45 files changed, 29074 insertions(+), 4 deletions(-) create mode 100644 iPDC/lib/liblivechart_static.a.p/area.c create mode 100644 iPDC/lib/liblivechart_static.a.p/axis.c create mode 100644 iPDC/lib/liblivechart_static.a.p/background.c create mode 100644 iPDC/lib/liblivechart_static.a.p/bar.c create mode 100644 iPDC/lib/liblivechart_static.a.p/bezier.c create mode 100644 iPDC/lib/liblivechart_static.a.p/bounds.c create mode 100644 iPDC/lib/liblivechart_static.a.p/chart.c create mode 100644 iPDC/lib/liblivechart_static.a.p/config.c create mode 100644 iPDC/lib/liblivechart_static.a.p/drawable.c create mode 100644 iPDC/lib/liblivechart_static.a.p/font.c create mode 100644 iPDC/lib/liblivechart_static.a.p/geometry.c create mode 100644 iPDC/lib/liblivechart_static.a.p/grid.c create mode 100644 iPDC/lib/liblivechart_static.a.p/intersections.c create mode 100644 iPDC/lib/liblivechart_static.a.p/intersectors.c create mode 100644 iPDC/lib/liblivechart_static.a.p/labels.c create mode 100644 iPDC/lib/liblivechart_static.a.p/legend.c create mode 100644 iPDC/lib/liblivechart_static.a.p/line.c create mode 100644 iPDC/lib/liblivechart_static.a.p/line_area.c create mode 100644 iPDC/lib/liblivechart_static.a.p/max_bound_line.c create mode 100644 iPDC/lib/liblivechart_static.a.p/min_bound_line.c create mode 100644 iPDC/lib/liblivechart_static.a.p/path.c create mode 100644 iPDC/lib/liblivechart_static.a.p/points.c create mode 100644 iPDC/lib/liblivechart_static.a.p/region.c create mode 100644 iPDC/lib/liblivechart_static.a.p/serie.c create mode 100644 iPDC/lib/liblivechart_static.a.p/serie_renderer.c create mode 100644 iPDC/lib/liblivechart_static.a.p/series.c create mode 100644 iPDC/lib/liblivechart_static.a.p/smooth_line.c create mode 100644 iPDC/lib/liblivechart_static.a.p/smooth_line_area.c create mode 100644 iPDC/lib/liblivechart_static.a.p/static/static_chart.c create mode 100644 iPDC/lib/liblivechart_static.a.p/static/static_grid.c create mode 100644 iPDC/lib/liblivechart_static.a.p/static/static_line.c create mode 100644 iPDC/lib/liblivechart_static.a.p/static/static_points.c create mode 100644 iPDC/lib/liblivechart_static.a.p/static/static_serie.c create mode 100644 iPDC/lib/liblivechart_static.a.p/static/static_serie_renderer.c create mode 100644 iPDC/lib/liblivechart_static.a.p/static/static_series.c create mode 100644 iPDC/lib/liblivechart_static.a.p/static/static_values.c create mode 100644 iPDC/lib/liblivechart_static.a.p/threshold_line.c create mode 100644 iPDC/lib/liblivechart_static.a.p/utils.c create mode 100644 iPDC/lib/liblivechart_static.a.p/values.c create mode 100644 iPDC/lib/livechart.h create mode 100644 iPDC/lib/livechart.vapi create mode 100644 iPDC/lib/livechart_static.h create mode 100644 iPDC/lib/livechart_static.vapi diff --git a/iPDC/Makefile b/iPDC/Makefile index bcd0144..28810af 100755 --- a/iPDC/Makefile +++ b/iPDC/Makefile @@ -46,8 +46,8 @@ FILE6 = iPDC.desktop CC = gcc LIBS = -lpthread -LDLIBS=`pkg-config --cflags --libs gtk+-3.0 osmgpsmap-1.0` -CFLAGS=-g -I./inc -fcommon `pkg-config --cflags --libs gtk+-3.0 osmgpsmap-1.0` +LDLIBS=`pkg-config --cflags --libs gtk+-3.0 osmgpsmap-1.0 gee-0.8` +CFLAGS=-g -I./inc -I./lib -fcommon `pkg-config --cflags --libs gtk+-3.0 osmgpsmap-1.0 gee-0.8` PROGRAM = iPDC SOURCE_FILES = $(wildcard src/*.c) diff --git a/iPDC/lib/liblivechart_static.a.p/area.c b/iPDC/lib/liblivechart_static.a.p/area.c new file mode 100644 index 0000000..c3b2185 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/area.c @@ -0,0 +1,409 @@ +/* area.c generated by valac 0.56.0, the Vala compiler + * generated from area.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_AREA_0_PROPERTY, + LIVE_CHART_AREA_VISIBLE_PROPERTY, + LIVE_CHART_AREA_NUM_PROPERTIES +}; +static GParamSpec* live_chart_area_properties[LIVE_CHART_AREA_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +struct _LiveChartAreaPrivate { + LiveChartPoints* points; + GdkRGBA color; + LiveChartBoundingBox bounding_box; + gdouble alpha; + gboolean _visible; +}; + +static gint LiveChartArea_private_offset; +static gpointer live_chart_area_parent_class = NULL; +static LiveChartDrawableIface * live_chart_area_live_chart_drawable_parent_iface = NULL; + +static void live_chart_area_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_area_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_area_finalize (GObject * obj); +static GType live_chart_area_get_type_once (void); +static void _vala_live_chart_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_area_get_instance_private (LiveChartArea* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartArea_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 17 "../src/area.vala" + return self ? g_object_ref (self) : NULL; +#line 61 "area.c" +} + +LiveChartArea* +live_chart_area_construct (GType object_type, + LiveChartPoints* points, + GdkRGBA* color, + gdouble alpha) +{ + LiveChartArea * self = NULL; + LiveChartPoints* _tmp0_; + GdkRGBA _tmp1_; +#line 16 "../src/area.vala" + g_return_val_if_fail (points != NULL, NULL); +#line 16 "../src/area.vala" + g_return_val_if_fail (color != NULL, NULL); +#line 16 "../src/area.vala" + self = (LiveChartArea*) g_object_new (object_type, NULL); +#line 17 "../src/area.vala" + _tmp0_ = _g_object_ref0 (points); +#line 17 "../src/area.vala" + _g_object_unref0 (self->priv->points); +#line 17 "../src/area.vala" + self->priv->points = _tmp0_; +#line 18 "../src/area.vala" + _tmp1_ = *color; +#line 18 "../src/area.vala" + self->priv->color = _tmp1_; +#line 19 "../src/area.vala" + self->priv->alpha = alpha; +#line 16 "../src/area.vala" + return self; +#line 93 "area.c" +} + +LiveChartArea* +live_chart_area_new (LiveChartPoints* points, + GdkRGBA* color, + gdouble alpha) +{ +#line 16 "../src/area.vala" + return live_chart_area_construct (LIVE_CHART_TYPE_AREA, points, color, alpha); +#line 103 "area.c" +} + +static void +live_chart_area_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartArea * self; + LiveChartPoints* _tmp0_; + gint _tmp1_; + gint _tmp2_; +#line 22 "../src/area.vala" + self = (LiveChartArea*) base; +#line 22 "../src/area.vala" + g_return_if_fail (ctx != NULL); +#line 22 "../src/area.vala" + g_return_if_fail (config != NULL); +#line 23 "../src/area.vala" + _tmp0_ = self->priv->points; +#line 23 "../src/area.vala" + _tmp1_ = live_chart_points_get_size (_tmp0_); +#line 23 "../src/area.vala" + _tmp2_ = _tmp1_; +#line 23 "../src/area.vala" + if (_tmp2_ > 0) { +#line 129 "area.c" + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp3_ = {0}; + LiveChartPoint first_point = {0}; + LiveChartPoints* _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint last_point = {0}; + LiveChartPoints* _tmp6_; + LiveChartPoint _tmp7_ = {0}; + GdkRGBA _tmp8_; + GdkRGBA _tmp9_; + GdkRGBA _tmp10_; + LiveChartPoint _tmp11_; + LiveChartPoint _tmp12_; + LiveChartPoint _tmp13_; + LiveChartBoundaries _tmp14_; + LiveChartBoundary _tmp15_; + LiveChartPoint _tmp16_; + LiveChartBoundaries _tmp17_; + LiveChartBoundary _tmp18_; + LiveChartPoint _tmp19_; + LiveChartPoint _tmp20_; +#line 24 "../src/area.vala" + live_chart_config_boundaries (config, &_tmp3_); +#line 24 "../src/area.vala" + boundaries = _tmp3_; +#line 25 "../src/area.vala" + _tmp4_ = self->priv->points; +#line 25 "../src/area.vala" + live_chart_points_first (_tmp4_, &_tmp5_); +#line 25 "../src/area.vala" + first_point = _tmp5_; +#line 26 "../src/area.vala" + _tmp6_ = self->priv->points; +#line 26 "../src/area.vala" + live_chart_points_last (_tmp6_, &_tmp7_); +#line 26 "../src/area.vala" + last_point = _tmp7_; +#line 28 "../src/area.vala" + _tmp8_ = self->priv->color; +#line 28 "../src/area.vala" + _tmp9_ = self->priv->color; +#line 28 "../src/area.vala" + _tmp10_ = self->priv->color; +#line 28 "../src/area.vala" + cairo_set_source_rgba (ctx, _tmp8_.red, _tmp9_.green, _tmp10_.blue, self->priv->alpha); +#line 29 "../src/area.vala" + _tmp11_ = last_point; +#line 29 "../src/area.vala" + _tmp12_ = last_point; +#line 29 "../src/area.vala" + cairo_line_to (ctx, _tmp11_.x, _tmp12_.y); +#line 30 "../src/area.vala" + _tmp13_ = last_point; +#line 30 "../src/area.vala" + _tmp14_ = boundaries; +#line 30 "../src/area.vala" + _tmp15_ = _tmp14_.y; +#line 30 "../src/area.vala" + cairo_line_to (ctx, _tmp13_.x, (gdouble) _tmp15_.max); +#line 31 "../src/area.vala" + _tmp16_ = first_point; +#line 31 "../src/area.vala" + _tmp17_ = boundaries; +#line 31 "../src/area.vala" + _tmp18_ = _tmp17_.y; +#line 31 "../src/area.vala" + cairo_line_to (ctx, _tmp16_.x, (gdouble) _tmp18_.max); +#line 32 "../src/area.vala" + _tmp19_ = first_point; +#line 32 "../src/area.vala" + _tmp20_ = first_point; +#line 32 "../src/area.vala" + cairo_line_to (ctx, _tmp19_.x, _tmp20_.y); +#line 33 "../src/area.vala" + cairo_close_path (ctx); +#line 205 "area.c" + } +} + +static void +live_chart_area_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartArea * self; + LiveChartBoundingBox _tmp0_; +#line 37 "../src/area.vala" + self = (LiveChartArea*) base; +#line 38 "../src/area.vala" + _tmp0_ = self->priv->bounding_box; +#line 38 "../src/area.vala" + *result = _tmp0_; +#line 38 "../src/area.vala" + return; +#line 223 "area.c" +} + +static gboolean +live_chart_area_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartArea* self; +#line 14 "../src/area.vala" + self = (LiveChartArea*) base; +#line 14 "../src/area.vala" + result = self->priv->_visible; +#line 14 "../src/area.vala" + return result; +#line 237 "area.c" +} + +static void +live_chart_area_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartArea* self; + gboolean old_value; +#line 14 "../src/area.vala" + self = (LiveChartArea*) base; +#line 14 "../src/area.vala" + old_value = live_chart_area_real_get_visible (base); +#line 14 "../src/area.vala" + if (old_value != value) { +#line 14 "../src/area.vala" + self->priv->_visible = value; +#line 14 "../src/area.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_area_properties[LIVE_CHART_AREA_VISIBLE_PROPERTY]); +#line 256 "area.c" + } +} + +static void +live_chart_area_class_init (LiveChartAreaClass * klass, + gpointer klass_data) +{ +#line 4 "../src/area.vala" + live_chart_area_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/area.vala" + g_type_class_adjust_private_offset (klass, &LiveChartArea_private_offset); +#line 4 "../src/area.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_area_get_property; +#line 4 "../src/area.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_area_set_property; +#line 4 "../src/area.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_area_finalize; +#line 4 "../src/area.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_AREA_VISIBLE_PROPERTY, live_chart_area_properties[LIVE_CHART_AREA_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 276 "area.c" +} + +static void +live_chart_area_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 4 "../src/area.vala" + live_chart_area_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 4 "../src/area.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_area_real_draw; +#line 4 "../src/area.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_area_real_get_bounding_box; +#line 4 "../src/area.vala" + iface->get_visible = live_chart_area_real_get_visible; +#line 4 "../src/area.vala" + iface->set_visible = live_chart_area_real_set_visible; +#line 293 "area.c" +} + +static void +live_chart_area_instance_init (LiveChartArea * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; +#line 4 "../src/area.vala" + self->priv = live_chart_area_get_instance_private (self); +#line 7 "../src/area.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 7 "../src/area.vala" + _tmp0_.x = (gdouble) 0; +#line 7 "../src/area.vala" + _tmp0_.y = (gdouble) 0; +#line 7 "../src/area.vala" + _tmp0_.width = (gdouble) 0; +#line 7 "../src/area.vala" + _tmp0_.height = (gdouble) 0; +#line 7 "../src/area.vala" + self->priv->bounding_box = _tmp0_; +#line 13 "../src/area.vala" + self->priv->alpha = 0.3; +#line 14 "../src/area.vala" + self->priv->_visible = TRUE; +#line 319 "area.c" +} + +static void +live_chart_area_finalize (GObject * obj) +{ + LiveChartArea * self; +#line 4 "../src/area.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_AREA, LiveChartArea); +#line 5 "../src/area.vala" + _g_object_unref0 (self->priv->points); +#line 4 "../src/area.vala" + G_OBJECT_CLASS (live_chart_area_parent_class)->finalize (obj); +#line 332 "area.c" +} + +static GType +live_chart_area_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartAreaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_area_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartArea), 0, (GInstanceInitFunc) live_chart_area_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_area_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_area_type_id; + live_chart_area_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartArea", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_area_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartArea_private_offset = g_type_add_instance_private (live_chart_area_type_id, sizeof (LiveChartAreaPrivate)); + return live_chart_area_type_id; +} + +GType +live_chart_area_get_type (void) +{ + static volatile gsize live_chart_area_type_id__once = 0; + if (g_once_init_enter (&live_chart_area_type_id__once)) { + GType live_chart_area_type_id; + live_chart_area_type_id = live_chart_area_get_type_once (); + g_once_init_leave (&live_chart_area_type_id__once, live_chart_area_type_id); + } + return live_chart_area_type_id__once; +} + +static void +_vala_live_chart_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_AREA, LiveChartArea); +#line 4 "../src/area.vala" + switch (property_id) { +#line 4 "../src/area.vala" + case LIVE_CHART_AREA_VISIBLE_PROPERTY: +#line 4 "../src/area.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 4 "../src/area.vala" + break; +#line 375 "area.c" + default: +#line 4 "../src/area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/area.vala" + break; +#line 381 "area.c" + } +} + +static void +_vala_live_chart_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_AREA, LiveChartArea); +#line 4 "../src/area.vala" + switch (property_id) { +#line 4 "../src/area.vala" + case LIVE_CHART_AREA_VISIBLE_PROPERTY: +#line 4 "../src/area.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 4 "../src/area.vala" + break; +#line 401 "area.c" + default: +#line 4 "../src/area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/area.vala" + break; +#line 407 "area.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/axis.c b/iPDC/lib/liblivechart_static.a.p/axis.c new file mode 100644 index 0000000..ca0c01c --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/axis.c @@ -0,0 +1,1795 @@ +/* axis.c generated by valac 0.56.0, the Vala compiler + * generated from axis.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define _live_chart_labels_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_labels_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +typedef struct _LiveChartParamSpecXAxis LiveChartParamSpecXAxis; +#define _g_free0(var) (var = (g_free (var), NULL)) +typedef struct _LiveChartParamSpecYAxis LiveChartParamSpecYAxis; + +struct _LiveChartXAxisPrivate { + gfloat _tick_interval; + gfloat _tick_length; + gboolean _visible; +}; + +struct _LiveChartParamSpecXAxis { + GParamSpec parent_instance; +}; + +struct _LiveChartYAxisPrivate { + LiveChartBounds* bounds; + gdouble ratio; + gfloat _ratio_threshold; + gfloat _tick_interval; + gboolean _visible; + gfloat _tick_length; + gchar* _unit; +}; + +struct _LiveChartParamSpecYAxis { + GParamSpec parent_instance; +}; + +static gint LiveChartXAxis_private_offset; +static gpointer live_chart_xaxis_parent_class = NULL; +static gint LiveChartYAxis_private_offset; +static gpointer live_chart_yaxis_parent_class = NULL; + +static void live_chart_xaxis_finalize (LiveChartXAxis * obj); +static GType live_chart_xaxis_get_type_once (void); +static gfloat* _float_dup (gfloat* self); +static void __lambda5_ (LiveChartYAxis* self); +static void ___lambda5__g_object_notify (GObject* _sender, + GParamSpec* pspec, + gpointer self); +static void live_chart_yaxis_finalize (LiveChartYAxis * obj); +static GType live_chart_yaxis_get_type_once (void); + +static inline gpointer +live_chart_xaxis_get_instance_private (LiveChartXAxis* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartXAxis_private_offset); +} + +LiveChartXAxis* +live_chart_xaxis_construct (GType object_type) +{ + LiveChartXAxis* self = NULL; + LiveChartPath* _tmp0_; + GdkRGBA _tmp1_ = {0}; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_ = {0}; +#line 12 "../src/axis.vala" + self = (LiveChartXAxis*) g_type_create_instance (object_type); +#line 13 "../src/axis.vala" + _tmp0_ = self->axis; +#line 13 "../src/axis.vala" + _tmp1_.red = 0.5; +#line 13 "../src/axis.vala" + _tmp1_.green = 0.5; +#line 13 "../src/axis.vala" + _tmp1_.blue = 0.5; +#line 13 "../src/axis.vala" + _tmp1_.alpha = 0.5; +#line 13 "../src/axis.vala" + live_chart_path_set_color (_tmp0_, &_tmp1_); +#line 14 "../src/axis.vala" + _tmp2_ = self->lines; +#line 14 "../src/axis.vala" + _tmp3_.red = 0.5; +#line 14 "../src/axis.vala" + _tmp3_.green = 0.5; +#line 14 "../src/axis.vala" + _tmp3_.blue = 0.5; +#line 14 "../src/axis.vala" + _tmp3_.alpha = 0.2; +#line 14 "../src/axis.vala" + live_chart_path_set_color (_tmp2_, &_tmp3_); +#line 12 "../src/axis.vala" + return self; +#line 103 "axis.c" +} + +LiveChartXAxis* +live_chart_xaxis_new (void) +{ +#line 12 "../src/axis.vala" + return live_chart_xaxis_construct (LIVE_CHART_TYPE_XAXIS); +#line 111 "axis.c" +} + +gdouble +live_chart_xaxis_get_ratio (LiveChartXAxis* self) +{ + gfloat _tmp0_; + gfloat _tmp1_; + gdouble result; +#line 17 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 18 "../src/axis.vala" + _tmp0_ = self->priv->_tick_length; +#line 18 "../src/axis.vala" + _tmp1_ = self->priv->_tick_interval; +#line 18 "../src/axis.vala" + result = (gdouble) (_tmp0_ / _tmp1_); +#line 18 "../src/axis.vala" + return result; +#line 130 "axis.c" +} + +gfloat +live_chart_xaxis_get_tick_interval (LiveChartXAxis* self) +{ + gfloat result; +#line 5 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 5 "../src/axis.vala" + result = self->priv->_tick_interval; +#line 5 "../src/axis.vala" + return result; +#line 143 "axis.c" +} + +void +live_chart_xaxis_set_tick_interval (LiveChartXAxis* self, + gfloat value) +{ +#line 5 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 5 "../src/axis.vala" + self->priv->_tick_interval = value; +#line 154 "axis.c" +} + +gfloat +live_chart_xaxis_get_tick_length (LiveChartXAxis* self) +{ + gfloat result; +#line 6 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 6 "../src/axis.vala" + result = self->priv->_tick_length; +#line 6 "../src/axis.vala" + return result; +#line 167 "axis.c" +} + +void +live_chart_xaxis_set_tick_length (LiveChartXAxis* self, + gfloat value) +{ +#line 6 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/axis.vala" + self->priv->_tick_length = value; +#line 178 "axis.c" +} + +gboolean +live_chart_xaxis_get_visible (LiveChartXAxis* self) +{ + gboolean result; +#line 7 "../src/axis.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 7 "../src/axis.vala" + result = self->priv->_visible; +#line 7 "../src/axis.vala" + return result; +#line 191 "axis.c" +} + +void +live_chart_xaxis_set_visible (LiveChartXAxis* self, + gboolean value) +{ +#line 7 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/axis.vala" + self->priv->_visible = value; +#line 202 "axis.c" +} + +static void +live_chart_value_xaxis_init (GValue* value) +{ +#line 3 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 210 "axis.c" +} + +static void +live_chart_value_xaxis_free_value (GValue* value) +{ +#line 3 "../src/axis.vala" + if (value->data[0].v_pointer) { +#line 3 "../src/axis.vala" + live_chart_xaxis_unref (value->data[0].v_pointer); +#line 220 "axis.c" + } +} + +static void +live_chart_value_xaxis_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 3 "../src/axis.vala" + if (src_value->data[0].v_pointer) { +#line 3 "../src/axis.vala" + dest_value->data[0].v_pointer = live_chart_xaxis_ref (src_value->data[0].v_pointer); +#line 232 "axis.c" + } else { +#line 3 "../src/axis.vala" + dest_value->data[0].v_pointer = NULL; +#line 236 "axis.c" + } +} + +static gpointer +live_chart_value_xaxis_peek_pointer (const GValue* value) +{ +#line 3 "../src/axis.vala" + return value->data[0].v_pointer; +#line 245 "axis.c" +} + +static gchar* +live_chart_value_xaxis_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 3 "../src/axis.vala" + if (collect_values[0].v_pointer) { +#line 256 "axis.c" + LiveChartXAxis * object; + object = collect_values[0].v_pointer; +#line 3 "../src/axis.vala" + if (object->parent_instance.g_class == NULL) { +#line 3 "../src/axis.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 263 "axis.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 3 "../src/axis.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 267 "axis.c" + } +#line 3 "../src/axis.vala" + value->data[0].v_pointer = live_chart_xaxis_ref (object); +#line 271 "axis.c" + } else { +#line 3 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 275 "axis.c" + } +#line 3 "../src/axis.vala" + return NULL; +#line 279 "axis.c" +} + +static gchar* +live_chart_value_xaxis_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartXAxis ** object_p; + object_p = collect_values[0].v_pointer; +#line 3 "../src/axis.vala" + if (!object_p) { +#line 3 "../src/axis.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 294 "axis.c" + } +#line 3 "../src/axis.vala" + if (!value->data[0].v_pointer) { +#line 3 "../src/axis.vala" + *object_p = NULL; +#line 300 "axis.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 3 "../src/axis.vala" + *object_p = value->data[0].v_pointer; +#line 304 "axis.c" + } else { +#line 3 "../src/axis.vala" + *object_p = live_chart_xaxis_ref (value->data[0].v_pointer); +#line 308 "axis.c" + } +#line 3 "../src/axis.vala" + return NULL; +#line 312 "axis.c" +} + +GParamSpec* +live_chart_param_spec_xaxis (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecXAxis* spec; +#line 3 "../src/axis.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_XAXIS), NULL); +#line 3 "../src/axis.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 3 "../src/axis.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 3 "../src/axis.vala" + return G_PARAM_SPEC (spec); +#line 331 "axis.c" +} + +gpointer +live_chart_value_get_xaxis (const GValue* value) +{ +#line 3 "../src/axis.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_XAXIS), NULL); +#line 3 "../src/axis.vala" + return value->data[0].v_pointer; +#line 341 "axis.c" +} + +void +live_chart_value_set_xaxis (GValue* value, + gpointer v_object) +{ + LiveChartXAxis * old; +#line 3 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_XAXIS)); +#line 3 "../src/axis.vala" + old = value->data[0].v_pointer; +#line 3 "../src/axis.vala" + if (v_object) { +#line 3 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_XAXIS)); +#line 3 "../src/axis.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 3 "../src/axis.vala" + value->data[0].v_pointer = v_object; +#line 3 "../src/axis.vala" + live_chart_xaxis_ref (value->data[0].v_pointer); +#line 363 "axis.c" + } else { +#line 3 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 367 "axis.c" + } +#line 3 "../src/axis.vala" + if (old) { +#line 3 "../src/axis.vala" + live_chart_xaxis_unref (old); +#line 373 "axis.c" + } +} + +void +live_chart_value_take_xaxis (GValue* value, + gpointer v_object) +{ + LiveChartXAxis * old; +#line 3 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_XAXIS)); +#line 3 "../src/axis.vala" + old = value->data[0].v_pointer; +#line 3 "../src/axis.vala" + if (v_object) { +#line 3 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_XAXIS)); +#line 3 "../src/axis.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 3 "../src/axis.vala" + value->data[0].v_pointer = v_object; +#line 394 "axis.c" + } else { +#line 3 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 398 "axis.c" + } +#line 3 "../src/axis.vala" + if (old) { +#line 3 "../src/axis.vala" + live_chart_xaxis_unref (old); +#line 404 "axis.c" + } +} + +static void +live_chart_xaxis_class_init (LiveChartXAxisClass * klass, + gpointer klass_data) +{ +#line 3 "../src/axis.vala" + live_chart_xaxis_parent_class = g_type_class_peek_parent (klass); +#line 3 "../src/axis.vala" + ((LiveChartXAxisClass *) klass)->finalize = live_chart_xaxis_finalize; +#line 3 "../src/axis.vala" + g_type_class_adjust_private_offset (klass, &LiveChartXAxis_private_offset); +#line 418 "axis.c" +} + +static void +live_chart_xaxis_instance_init (LiveChartXAxis * self, + gpointer klass) +{ + LiveChartLabels* _tmp0_; + GdkRGBA _tmp1_ = {0}; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_ = {0}; + LiveChartPath* _tmp4_; +#line 3 "../src/axis.vala" + self->priv = live_chart_xaxis_get_instance_private (self); +#line 5 "../src/axis.vala" + self->priv->_tick_interval = (gfloat) 10; +#line 6 "../src/axis.vala" + self->priv->_tick_length = (gfloat) 60; +#line 7 "../src/axis.vala" + self->priv->_visible = TRUE; +#line 8 "../src/axis.vala" + _tmp0_ = live_chart_labels_new (); +#line 8 "../src/axis.vala" + self->labels = _tmp0_; +#line 9 "../src/axis.vala" + _tmp1_.red = 1.0; +#line 9 "../src/axis.vala" + _tmp1_.green = 1.0; +#line 9 "../src/axis.vala" + _tmp1_.blue = 1.0; +#line 9 "../src/axis.vala" + _tmp1_.alpha = 1.0; +#line 9 "../src/axis.vala" + _tmp2_ = live_chart_path_new (0.5, &_tmp1_, TRUE, NULL); +#line 9 "../src/axis.vala" + self->axis = _tmp2_; +#line 10 "../src/axis.vala" + _tmp3_.red = 1.0; +#line 10 "../src/axis.vala" + _tmp3_.green = 1.0; +#line 10 "../src/axis.vala" + _tmp3_.blue = 1.0; +#line 10 "../src/axis.vala" + _tmp3_.alpha = 1.0; +#line 10 "../src/axis.vala" + _tmp4_ = live_chart_path_new (0.5, &_tmp3_, TRUE, NULL); +#line 10 "../src/axis.vala" + self->lines = _tmp4_; +#line 3 "../src/axis.vala" + self->ref_count = 1; +#line 468 "axis.c" +} + +static void +live_chart_xaxis_finalize (LiveChartXAxis * obj) +{ + LiveChartXAxis * self; +#line 3 "../src/axis.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_XAXIS, LiveChartXAxis); +#line 3 "../src/axis.vala" + g_signal_handlers_destroy (self); +#line 8 "../src/axis.vala" + _live_chart_labels_unref0 (self->labels); +#line 9 "../src/axis.vala" + _g_object_unref0 (self->axis); +#line 10 "../src/axis.vala" + _g_object_unref0 (self->lines); +#line 485 "axis.c" +} + +static GType +live_chart_xaxis_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_xaxis_init, live_chart_value_xaxis_free_value, live_chart_value_xaxis_copy_value, live_chart_value_xaxis_peek_pointer, "p", live_chart_value_xaxis_collect_value, "p", live_chart_value_xaxis_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartXAxisClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_xaxis_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartXAxis), 0, (GInstanceInitFunc) live_chart_xaxis_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_xaxis_type_id; + live_chart_xaxis_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartXAxis", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartXAxis_private_offset = g_type_add_instance_private (live_chart_xaxis_type_id, sizeof (LiveChartXAxisPrivate)); + return live_chart_xaxis_type_id; +} + +GType +live_chart_xaxis_get_type (void) +{ + static volatile gsize live_chart_xaxis_type_id__once = 0; + if (g_once_init_enter (&live_chart_xaxis_type_id__once)) { + GType live_chart_xaxis_type_id; + live_chart_xaxis_type_id = live_chart_xaxis_get_type_once (); + g_once_init_leave (&live_chart_xaxis_type_id__once, live_chart_xaxis_type_id); + } + return live_chart_xaxis_type_id__once; +} + +gpointer +live_chart_xaxis_ref (gpointer instance) +{ + LiveChartXAxis * self; + self = instance; +#line 3 "../src/axis.vala" + g_atomic_int_inc (&self->ref_count); +#line 3 "../src/axis.vala" + return instance; +#line 521 "axis.c" +} + +void +live_chart_xaxis_unref (gpointer instance) +{ + LiveChartXAxis * self; + self = instance; +#line 3 "../src/axis.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 3 "../src/axis.vala" + LIVE_CHART_XAXIS_GET_CLASS (self)->finalize (self); +#line 3 "../src/axis.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 535 "axis.c" + } +} + +static gfloat* +_float_dup (gfloat* self) +{ + gfloat* dup; +#line 25 "../src/axis.vala" + dup = g_new0 (gfloat, 1); +#line 25 "../src/axis.vala" + memcpy (dup, self, sizeof (gfloat)); +#line 25 "../src/axis.vala" + return dup; +#line 549 "axis.c" +} + +void +live_chart_ticks_init (LiveChartTicks *self) +{ + GeeArrayList* _tmp0_; +#line 24 "../src/axis.vala" + memset (self, 0, sizeof (LiveChartTicks)); +#line 25 "../src/axis.vala" + _tmp0_ = gee_array_list_new (G_TYPE_FLOAT, (GBoxedCopyFunc) _float_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 25 "../src/axis.vala" + _g_object_unref0 ((*self).values); +#line 25 "../src/axis.vala" + (*self).values = (GeeList*) _tmp0_; +#line 564 "axis.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 22 "../src/axis.vala" + return self ? g_object_ref (self) : NULL; +#line 572 "axis.c" +} + +void +live_chart_ticks_copy (const LiveChartTicks* self, + LiveChartTicks* dest) +{ + GeeList* _tmp0_; + GeeList* _tmp1_; +#line 22 "../src/axis.vala" + _tmp0_ = (*self).values; +#line 22 "../src/axis.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 22 "../src/axis.vala" + _g_object_unref0 ((*dest).values); +#line 22 "../src/axis.vala" + (*dest).values = _tmp1_; +#line 589 "axis.c" +} + +void +live_chart_ticks_destroy (LiveChartTicks* self) +{ +#line 23 "../src/axis.vala" + _g_object_unref0 ((*self).values); +#line 597 "axis.c" +} + +LiveChartTicks* +live_chart_ticks_dup (const LiveChartTicks* self) +{ + LiveChartTicks* dup; +#line 22 "../src/axis.vala" + dup = g_new0 (LiveChartTicks, 1); +#line 22 "../src/axis.vala" + live_chart_ticks_copy (self, dup); +#line 22 "../src/axis.vala" + return dup; +#line 610 "axis.c" +} + +void +live_chart_ticks_free (LiveChartTicks* self) +{ +#line 22 "../src/axis.vala" + live_chart_ticks_destroy (self); +#line 22 "../src/axis.vala" + g_free (self); +#line 620 "axis.c" +} + +static GType +live_chart_ticks_get_type_once (void) +{ + GType live_chart_ticks_type_id; + live_chart_ticks_type_id = g_boxed_type_register_static ("LiveChartTicks", (GBoxedCopyFunc) live_chart_ticks_dup, (GBoxedFreeFunc) live_chart_ticks_free); + return live_chart_ticks_type_id; +} + +GType +live_chart_ticks_get_type (void) +{ + static volatile gsize live_chart_ticks_type_id__once = 0; + if (g_once_init_enter (&live_chart_ticks_type_id__once)) { + GType live_chart_ticks_type_id; + live_chart_ticks_type_id = live_chart_ticks_get_type_once (); + g_once_init_leave (&live_chart_ticks_type_id__once, live_chart_ticks_type_id); + } + return live_chart_ticks_type_id__once; +} + +static inline gpointer +live_chart_yaxis_get_instance_private (LiveChartYAxis* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartYAxis_private_offset); +} + +static void +__lambda5_ (LiveChartYAxis* self) +{ + LiveChartTicks _tmp0_ = {0}; +#line 57 "../src/axis.vala" + live_chart_yaxis_get_ticks (self, &_tmp0_); +#line 57 "../src/axis.vala" + live_chart_ticks_destroy (&self->ticks); +#line 57 "../src/axis.vala" + self->ticks = _tmp0_; +#line 659 "axis.c" +} + +static void +___lambda5__g_object_notify (GObject* _sender, + GParamSpec* pspec, + gpointer self) +{ +#line 56 "../src/axis.vala" + __lambda5_ ((LiveChartYAxis*) self); +#line 669 "axis.c" +} + +LiveChartYAxis* +live_chart_yaxis_construct (GType object_type, + const gchar* unit) +{ + LiveChartYAxis* self = NULL; + LiveChartTicks _tmp0_ = {0}; + LiveChartPath* _tmp1_; + GdkRGBA _tmp2_ = {0}; + LiveChartPath* _tmp3_; + GdkRGBA _tmp4_ = {0}; + LiveChartBounds* _tmp5_; +#line 51 "../src/axis.vala" + g_return_val_if_fail (unit != NULL, NULL); +#line 51 "../src/axis.vala" + self = (LiveChartYAxis*) g_type_create_instance (object_type); +#line 52 "../src/axis.vala" + live_chart_yaxis_set_unit (self, unit); +#line 53 "../src/axis.vala" + live_chart_yaxis_get_ticks (self, &_tmp0_); +#line 53 "../src/axis.vala" + live_chart_ticks_destroy (&self->ticks); +#line 53 "../src/axis.vala" + self->ticks = _tmp0_; +#line 54 "../src/axis.vala" + _tmp1_ = self->axis; +#line 54 "../src/axis.vala" + _tmp2_.red = 0.5; +#line 54 "../src/axis.vala" + _tmp2_.green = 0.5; +#line 54 "../src/axis.vala" + _tmp2_.blue = 0.5; +#line 54 "../src/axis.vala" + _tmp2_.alpha = 0.5; +#line 54 "../src/axis.vala" + live_chart_path_set_color (_tmp1_, &_tmp2_); +#line 55 "../src/axis.vala" + _tmp3_ = self->lines; +#line 55 "../src/axis.vala" + _tmp4_.red = 0.5; +#line 55 "../src/axis.vala" + _tmp4_.green = 0.5; +#line 55 "../src/axis.vala" + _tmp4_.blue = 0.5; +#line 55 "../src/axis.vala" + _tmp4_.alpha = 0.2; +#line 55 "../src/axis.vala" + live_chart_path_set_color (_tmp3_, &_tmp4_); +#line 56 "../src/axis.vala" + _tmp5_ = self->priv->bounds; +#line 56 "../src/axis.vala" + g_signal_connect ((GObject*) _tmp5_, "notify::upper", (GCallback) ___lambda5__g_object_notify, self); +#line 51 "../src/axis.vala" + return self; +#line 725 "axis.c" +} + +LiveChartYAxis* +live_chart_yaxis_new (const gchar* unit) +{ +#line 51 "../src/axis.vala" + return live_chart_yaxis_construct (LIVE_CHART_TYPE_YAXIS, unit); +#line 733 "axis.c" +} + +gdouble +live_chart_yaxis_get_ratio (LiveChartYAxis* self) +{ + gdouble result; +#line 61 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 62 "../src/axis.vala" + result = self->priv->ratio; +#line 62 "../src/axis.vala" + return result; +#line 746 "axis.c" +} + +LiveChartBounds* +live_chart_yaxis_get_bounds (LiveChartYAxis* self) +{ + LiveChartBounds* _tmp0_; + gdouble _tmp1_; + gdouble _tmp2_; + LiveChartBounds* _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + LiveChartBounds* _tmp6_; + LiveChartBounds* result; +#line 65 "../src/axis.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 66 "../src/axis.vala" + _tmp0_ = self->priv->bounds; +#line 66 "../src/axis.vala" + _tmp1_ = live_chart_bounds_get_lower (_tmp0_); +#line 66 "../src/axis.vala" + _tmp2_ = _tmp1_; +#line 66 "../src/axis.vala" + _tmp3_ = self->priv->bounds; +#line 66 "../src/axis.vala" + _tmp4_ = live_chart_bounds_get_upper (_tmp3_); +#line 66 "../src/axis.vala" + _tmp5_ = _tmp4_; +#line 66 "../src/axis.vala" + _tmp6_ = live_chart_bounds_new (_tmp2_, _tmp5_); +#line 66 "../src/axis.vala" + result = _tmp6_; +#line 66 "../src/axis.vala" + return result; +#line 780 "axis.c" +} + +gboolean +live_chart_yaxis_update_bounds (LiveChartYAxis* self, + gdouble value) +{ + LiveChartBounds* _tmp0_; + gboolean result; +#line 69 "../src/axis.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 70 "../src/axis.vala" + _tmp0_ = self->priv->bounds; +#line 70 "../src/axis.vala" + result = live_chart_bounds_update (_tmp0_, value); +#line 70 "../src/axis.vala" + return result; +#line 797 "axis.c" +} + +void +live_chart_yaxis_update (LiveChartYAxis* self, + gint area_height) +{ + gboolean _tmp0_ = FALSE; + LiveChartBounds* _tmp1_; + gdouble* _tmp7_; +#line 73 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 74 "../src/axis.vala" + _tmp1_ = self->priv->bounds; +#line 74 "../src/axis.vala" + if (live_chart_bounds_has_upper (_tmp1_)) { +#line 813 "axis.c" + gdouble* _tmp2_; +#line 74 "../src/axis.vala" + _tmp2_ = self->fixed_max; +#line 74 "../src/axis.vala" + _tmp0_ = _tmp2_ == NULL; +#line 819 "axis.c" + } else { +#line 74 "../src/axis.vala" + _tmp0_ = FALSE; +#line 823 "axis.c" + } +#line 74 "../src/axis.vala" + if (_tmp0_) { +#line 827 "axis.c" + LiveChartBounds* _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + gfloat _tmp6_; +#line 75 "../src/axis.vala" + _tmp3_ = self->priv->bounds; +#line 75 "../src/axis.vala" + _tmp4_ = live_chart_bounds_get_upper (_tmp3_); +#line 75 "../src/axis.vala" + _tmp5_ = _tmp4_; +#line 75 "../src/axis.vala" + _tmp6_ = self->priv->_ratio_threshold; +#line 75 "../src/axis.vala" + self->priv->ratio = ((gdouble) area_height) / (((gdouble) _tmp5_) * _tmp6_); +#line 842 "axis.c" + } +#line 78 "../src/axis.vala" + _tmp7_ = self->fixed_max; +#line 78 "../src/axis.vala" + if (_tmp7_ != NULL) { +#line 848 "axis.c" + gdouble* _tmp8_; +#line 79 "../src/axis.vala" + _tmp8_ = self->fixed_max; +#line 79 "../src/axis.vala" + self->priv->ratio = ((gdouble) area_height) / ((gdouble) (*_tmp8_)); +#line 854 "axis.c" + } +} + +gchar* +live_chart_yaxis_get_max_displayed_value (LiveChartYAxis* self) +{ + LiveChartTicks _tmp0_; + GeeList* _tmp1_; + gint _tmp2_; + gint _tmp3_; + const gchar* _tmp32_; + gchar* _tmp33_; + gchar* result; +#line 83 "../src/axis.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 84 "../src/axis.vala" + _tmp0_ = self->ticks; +#line 84 "../src/axis.vala" + _tmp1_ = _tmp0_.values; +#line 84 "../src/axis.vala" + _tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_); +#line 84 "../src/axis.vala" + _tmp3_ = _tmp2_; +#line 84 "../src/axis.vala" + if (_tmp3_ > 0) { +#line 880 "axis.c" + gchar* max_displayed_value = NULL; + const gchar* _tmp4_; + LiveChartTicks _tmp5_; + GeeList* _tmp6_; + gpointer _tmp7_; + gfloat* _tmp8_; + gchar* _tmp9_; + gchar* _tmp10_; +#line 85 "../src/axis.vala" + _tmp4_ = self->priv->_unit; +#line 85 "../src/axis.vala" + _tmp5_ = self->ticks; +#line 85 "../src/axis.vala" + _tmp6_ = _tmp5_.values; +#line 85 "../src/axis.vala" + _tmp7_ = gee_list_first (_tmp6_); +#line 85 "../src/axis.vala" + _tmp8_ = (gfloat*) _tmp7_; +#line 85 "../src/axis.vala" + _tmp9_ = live_chart_format_for_y_axis (_tmp4_, *_tmp8_); +#line 85 "../src/axis.vala" + _tmp10_ = _tmp9_; +#line 85 "../src/axis.vala" + _g_free0 (_tmp8_); +#line 85 "../src/axis.vala" + max_displayed_value = _tmp10_; +#line 907 "axis.c" + { + GeeList* _value_list = NULL; + LiveChartTicks _tmp11_; + GeeList* _tmp12_; + gint _value_size = 0; + GeeList* _tmp13_; + gint _tmp14_; + gint _tmp15_; + gint _value_index = 0; +#line 86 "../src/axis.vala" + _tmp11_ = self->ticks; +#line 86 "../src/axis.vala" + _tmp12_ = _tmp11_.values; +#line 86 "../src/axis.vala" + _value_list = _tmp12_; +#line 86 "../src/axis.vala" + _tmp13_ = _value_list; +#line 86 "../src/axis.vala" + _tmp14_ = gee_collection_get_size ((GeeCollection*) _tmp13_); +#line 86 "../src/axis.vala" + _tmp15_ = _tmp14_; +#line 86 "../src/axis.vala" + _value_size = _tmp15_; +#line 86 "../src/axis.vala" + _value_index = -1; +#line 86 "../src/axis.vala" + while (TRUE) { +#line 935 "axis.c" + gint _tmp16_; + gint _tmp17_; + gfloat value = 0.0F; + GeeList* _tmp18_; + gpointer _tmp19_; + gfloat* _tmp20_; + gfloat _tmp21_; + gchar* formatted_value = NULL; + const gchar* _tmp22_; + gchar* _tmp23_; + const gchar* _tmp24_; + gint _tmp25_; + gint _tmp26_; + const gchar* _tmp27_; + gint _tmp28_; + gint _tmp29_; +#line 86 "../src/axis.vala" + _value_index = _value_index + 1; +#line 86 "../src/axis.vala" + _tmp16_ = _value_index; +#line 86 "../src/axis.vala" + _tmp17_ = _value_size; +#line 86 "../src/axis.vala" + if (!(_tmp16_ < _tmp17_)) { +#line 86 "../src/axis.vala" + break; +#line 962 "axis.c" + } +#line 86 "../src/axis.vala" + _tmp18_ = _value_list; +#line 86 "../src/axis.vala" + _tmp19_ = gee_list_get (_tmp18_, _value_index); +#line 86 "../src/axis.vala" + _tmp20_ = (gfloat*) _tmp19_; +#line 86 "../src/axis.vala" + _tmp21_ = *_tmp20_; +#line 86 "../src/axis.vala" + _g_free0 (_tmp20_); +#line 86 "../src/axis.vala" + value = _tmp21_; +#line 87 "../src/axis.vala" + _tmp22_ = self->priv->_unit; +#line 87 "../src/axis.vala" + _tmp23_ = live_chart_format_for_y_axis (_tmp22_, value); +#line 87 "../src/axis.vala" + formatted_value = _tmp23_; +#line 88 "../src/axis.vala" + _tmp24_ = formatted_value; +#line 88 "../src/axis.vala" + _tmp25_ = strlen (_tmp24_); +#line 88 "../src/axis.vala" + _tmp26_ = _tmp25_; +#line 88 "../src/axis.vala" + _tmp27_ = max_displayed_value; +#line 88 "../src/axis.vala" + _tmp28_ = strlen (_tmp27_); +#line 88 "../src/axis.vala" + _tmp29_ = _tmp28_; +#line 88 "../src/axis.vala" + if (_tmp26_ >= _tmp29_) { +#line 996 "axis.c" + const gchar* _tmp30_; + gchar* _tmp31_; +#line 89 "../src/axis.vala" + _tmp30_ = formatted_value; +#line 89 "../src/axis.vala" + _tmp31_ = g_strdup (_tmp30_); +#line 89 "../src/axis.vala" + _g_free0 (max_displayed_value); +#line 89 "../src/axis.vala" + max_displayed_value = _tmp31_; +#line 1007 "axis.c" + } +#line 86 "../src/axis.vala" + _g_free0 (formatted_value); +#line 1011 "axis.c" + } + } +#line 92 "../src/axis.vala" + result = max_displayed_value; +#line 92 "../src/axis.vala" + return result; +#line 1018 "axis.c" + } +#line 95 "../src/axis.vala" + _tmp32_ = self->priv->_unit; +#line 95 "../src/axis.vala" + _tmp33_ = g_strdup (_tmp32_); +#line 95 "../src/axis.vala" + result = _tmp33_; +#line 95 "../src/axis.vala" + return result; +#line 1028 "axis.c" +} + +void +live_chart_yaxis_get_ticks (LiveChartYAxis* self, + LiveChartTicks* result) +{ + LiveChartTicks ticks = {0}; + gdouble* _tmp0_; + LiveChartBounds* _tmp6_; +#line 98 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 99 "../src/axis.vala" + live_chart_ticks_init (&ticks); +#line 100 "../src/axis.vala" + _tmp0_ = self->fixed_max; +#line 100 "../src/axis.vala" + if (_tmp0_ != NULL) { +#line 1046 "axis.c" + { + gfloat value = 0.0F; +#line 101 "../src/axis.vala" + value = 0.f; +#line 1051 "axis.c" + { + gboolean _tmp1_ = FALSE; +#line 101 "../src/axis.vala" + _tmp1_ = TRUE; +#line 101 "../src/axis.vala" + while (TRUE) { +#line 1058 "axis.c" + gdouble* _tmp3_; + LiveChartTicks _tmp4_; + GeeList* _tmp5_; +#line 101 "../src/axis.vala" + if (!_tmp1_) { +#line 1064 "axis.c" + gfloat _tmp2_; +#line 101 "../src/axis.vala" + _tmp2_ = self->priv->_tick_interval; +#line 101 "../src/axis.vala" + value += _tmp2_; +#line 1070 "axis.c" + } +#line 101 "../src/axis.vala" + _tmp1_ = FALSE; +#line 101 "../src/axis.vala" + _tmp3_ = self->fixed_max; +#line 101 "../src/axis.vala" + if (!(((gdouble) value) <= (*_tmp3_))) { +#line 101 "../src/axis.vala" + break; +#line 1080 "axis.c" + } +#line 102 "../src/axis.vala" + _tmp4_ = ticks; +#line 102 "../src/axis.vala" + _tmp5_ = _tmp4_.values; +#line 102 "../src/axis.vala" + gee_collection_add ((GeeCollection*) _tmp5_, &value); +#line 1088 "axis.c" + } + } + } +#line 105 "../src/axis.vala" + *result = ticks; +#line 105 "../src/axis.vala" + return; +#line 1096 "axis.c" + } +#line 107 "../src/axis.vala" + _tmp6_ = self->priv->bounds; +#line 107 "../src/axis.vala" + if (live_chart_bounds_has_upper (_tmp6_)) { +#line 1102 "axis.c" + gfloat upper = 0.0F; + LiveChartBounds* _tmp7_; + gdouble _tmp8_; + gdouble _tmp9_; + GeeList* divs = NULL; + GeeList* _tmp10_; + GeeList* _tmp11_; + gint _tmp12_; + gint _tmp13_; +#line 108 "../src/axis.vala" + _tmp7_ = self->priv->bounds; +#line 108 "../src/axis.vala" + _tmp8_ = live_chart_bounds_get_upper (_tmp7_); +#line 108 "../src/axis.vala" + _tmp9_ = _tmp8_; +#line 108 "../src/axis.vala" + upper = live_chart_cap ((gfloat) _tmp9_); +#line 109 "../src/axis.vala" + _tmp10_ = live_chart_golden_divisors (upper); +#line 109 "../src/axis.vala" + divs = _tmp10_; +#line 111 "../src/axis.vala" + _tmp11_ = divs; +#line 111 "../src/axis.vala" + _tmp12_ = gee_collection_get_size ((GeeCollection*) _tmp11_); +#line 111 "../src/axis.vala" + _tmp13_ = _tmp12_; +#line 111 "../src/axis.vala" + if (_tmp13_ > 0) { +#line 1132 "axis.c" + gfloat interval = 0.0F; + GeeList* _tmp14_; + gpointer _tmp15_; + gfloat* _tmp16_; + gfloat _tmp17_; + gdouble _tmp29_ = 0.0; + LiveChartBounds* _tmp30_; + gdouble _tmp31_; + gdouble _tmp32_; + gdouble limit = 0.0; +#line 112 "../src/axis.vala" + _tmp14_ = divs; +#line 112 "../src/axis.vala" + _tmp15_ = gee_list_get (_tmp14_, 0); +#line 112 "../src/axis.vala" + _tmp16_ = (gfloat*) _tmp15_; +#line 112 "../src/axis.vala" + _tmp17_ = upper / (*_tmp16_); +#line 112 "../src/axis.vala" + _g_free0 (_tmp16_); +#line 112 "../src/axis.vala" + interval = _tmp17_; +#line 1155 "axis.c" + { + GeeList* _div_list = NULL; + GeeList* _tmp18_; + gint _div_size = 0; + GeeList* _tmp19_; + gint _tmp20_; + gint _tmp21_; + gint _div_index = 0; +#line 113 "../src/axis.vala" + _tmp18_ = divs; +#line 113 "../src/axis.vala" + _div_list = _tmp18_; +#line 113 "../src/axis.vala" + _tmp19_ = _div_list; +#line 113 "../src/axis.vala" + _tmp20_ = gee_collection_get_size ((GeeCollection*) _tmp19_); +#line 113 "../src/axis.vala" + _tmp21_ = _tmp20_; +#line 113 "../src/axis.vala" + _div_size = _tmp21_; +#line 113 "../src/axis.vala" + _div_index = -1; +#line 113 "../src/axis.vala" + while (TRUE) { +#line 1180 "axis.c" + gint _tmp22_; + gint _tmp23_; + gfloat div = 0.0F; + GeeList* _tmp24_; + gpointer _tmp25_; + gfloat* _tmp26_; + gfloat _tmp27_; + gboolean _tmp28_ = FALSE; +#line 113 "../src/axis.vala" + _div_index = _div_index + 1; +#line 113 "../src/axis.vala" + _tmp22_ = _div_index; +#line 113 "../src/axis.vala" + _tmp23_ = _div_size; +#line 113 "../src/axis.vala" + if (!(_tmp22_ < _tmp23_)) { +#line 113 "../src/axis.vala" + break; +#line 1199 "axis.c" + } +#line 113 "../src/axis.vala" + _tmp24_ = _div_list; +#line 113 "../src/axis.vala" + _tmp25_ = gee_list_get (_tmp24_, _div_index); +#line 113 "../src/axis.vala" + _tmp26_ = (gfloat*) _tmp25_; +#line 113 "../src/axis.vala" + _tmp27_ = *_tmp26_; +#line 113 "../src/axis.vala" + _g_free0 (_tmp26_); +#line 113 "../src/axis.vala" + div = _tmp27_; +#line 114 "../src/axis.vala" + interval = upper / div; +#line 115 "../src/axis.vala" + if (div > 3.f) { +#line 115 "../src/axis.vala" + _tmp28_ = div < 7.f; +#line 1219 "axis.c" + } else { +#line 115 "../src/axis.vala" + _tmp28_ = FALSE; +#line 1223 "axis.c" + } +#line 115 "../src/axis.vala" + if (_tmp28_) { +#line 116 "../src/axis.vala" + break; +#line 1229 "axis.c" + } + } + } +#line 119 "../src/axis.vala" + _tmp30_ = self->priv->bounds; +#line 119 "../src/axis.vala" + _tmp31_ = live_chart_bounds_get_upper (_tmp30_); +#line 119 "../src/axis.vala" + _tmp32_ = _tmp31_; +#line 119 "../src/axis.vala" + if (_tmp32_ == ((gdouble) upper)) { +#line 119 "../src/axis.vala" + _tmp29_ = (gdouble) upper; +#line 1243 "axis.c" + } else { + LiveChartBounds* _tmp33_; + gdouble _tmp34_; + gdouble _tmp35_; +#line 119 "../src/axis.vala" + _tmp33_ = self->priv->bounds; +#line 119 "../src/axis.vala" + _tmp34_ = live_chart_bounds_get_upper (_tmp33_); +#line 119 "../src/axis.vala" + _tmp35_ = _tmp34_; +#line 119 "../src/axis.vala" + _tmp29_ = _tmp35_ + interval; +#line 1256 "axis.c" + } +#line 119 "../src/axis.vala" + limit = _tmp29_; +#line 1260 "axis.c" + { + gfloat value = 0.0F; +#line 120 "../src/axis.vala" + value = 0.f; +#line 1265 "axis.c" + { + gboolean _tmp36_ = FALSE; +#line 120 "../src/axis.vala" + _tmp36_ = TRUE; +#line 120 "../src/axis.vala" + while (TRUE) { +#line 1272 "axis.c" + LiveChartTicks _tmp37_; + GeeList* _tmp38_; +#line 120 "../src/axis.vala" + if (!_tmp36_) { +#line 120 "../src/axis.vala" + value += interval; +#line 1279 "axis.c" + } +#line 120 "../src/axis.vala" + _tmp36_ = FALSE; +#line 120 "../src/axis.vala" + if (!(((gdouble) value) <= limit)) { +#line 120 "../src/axis.vala" + break; +#line 1287 "axis.c" + } +#line 121 "../src/axis.vala" + _tmp37_ = ticks; +#line 121 "../src/axis.vala" + _tmp38_ = _tmp37_.values; +#line 121 "../src/axis.vala" + gee_collection_add ((GeeCollection*) _tmp38_, &value); +#line 1295 "axis.c" + } + } + } + } +#line 107 "../src/axis.vala" + _g_object_unref0 (divs); +#line 1302 "axis.c" + } +#line 126 "../src/axis.vala" + *result = ticks; +#line 126 "../src/axis.vala" + return; +#line 1308 "axis.c" +} + +gfloat +live_chart_yaxis_get_ratio_threshold (LiveChartYAxis* self) +{ + gfloat result; +#line 33 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 33 "../src/axis.vala" + result = self->priv->_ratio_threshold; +#line 33 "../src/axis.vala" + return result; +#line 1321 "axis.c" +} + +void +live_chart_yaxis_set_ratio_threshold (LiveChartYAxis* self, + gfloat value) +{ +#line 33 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 33 "../src/axis.vala" + self->priv->_ratio_threshold = value; +#line 1332 "axis.c" +} + +gfloat +live_chart_yaxis_get_tick_interval (LiveChartYAxis* self) +{ + gfloat result; +#line 34 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 34 "../src/axis.vala" + result = self->priv->_tick_interval; +#line 34 "../src/axis.vala" + return result; +#line 1345 "axis.c" +} + +void +live_chart_yaxis_set_tick_interval (LiveChartYAxis* self, + gfloat value) +{ +#line 34 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 34 "../src/axis.vala" + self->priv->_tick_interval = value; +#line 1356 "axis.c" +} + +gboolean +live_chart_yaxis_get_visible (LiveChartYAxis* self) +{ + gboolean result; +#line 35 "../src/axis.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 35 "../src/axis.vala" + result = self->priv->_visible; +#line 35 "../src/axis.vala" + return result; +#line 1369 "axis.c" +} + +void +live_chart_yaxis_set_visible (LiveChartYAxis* self, + gboolean value) +{ +#line 35 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 35 "../src/axis.vala" + self->priv->_visible = value; +#line 1380 "axis.c" +} + +gfloat +live_chart_yaxis_get_tick_length (LiveChartYAxis* self) +{ + gfloat result; +#line 42 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 42 "../src/axis.vala" + result = self->priv->_tick_length; +#line 42 "../src/axis.vala" + return result; +#line 1393 "axis.c" +} + +void +live_chart_yaxis_set_tick_length (LiveChartYAxis* self, + gfloat value) +{ +#line 42 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 42 "../src/axis.vala" + self->priv->_tick_length = value; +#line 1404 "axis.c" +} + +const gchar* +live_chart_yaxis_get_unit (LiveChartYAxis* self) +{ + const gchar* result; + const gchar* _tmp0_; +#line 43 "../src/axis.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 43 "../src/axis.vala" + _tmp0_ = self->priv->_unit; +#line 43 "../src/axis.vala" + result = _tmp0_; +#line 43 "../src/axis.vala" + return result; +#line 1420 "axis.c" +} + +void +live_chart_yaxis_set_unit (LiveChartYAxis* self, + const gchar* value) +{ + gchar* _tmp0_; +#line 43 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 43 "../src/axis.vala" + _tmp0_ = g_strdup (value); +#line 43 "../src/axis.vala" + _g_free0 (self->priv->_unit); +#line 43 "../src/axis.vala" + self->priv->_unit = _tmp0_; +#line 1436 "axis.c" +} + +static void +live_chart_value_yaxis_init (GValue* value) +{ +#line 29 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 1444 "axis.c" +} + +static void +live_chart_value_yaxis_free_value (GValue* value) +{ +#line 29 "../src/axis.vala" + if (value->data[0].v_pointer) { +#line 29 "../src/axis.vala" + live_chart_yaxis_unref (value->data[0].v_pointer); +#line 1454 "axis.c" + } +} + +static void +live_chart_value_yaxis_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 29 "../src/axis.vala" + if (src_value->data[0].v_pointer) { +#line 29 "../src/axis.vala" + dest_value->data[0].v_pointer = live_chart_yaxis_ref (src_value->data[0].v_pointer); +#line 1466 "axis.c" + } else { +#line 29 "../src/axis.vala" + dest_value->data[0].v_pointer = NULL; +#line 1470 "axis.c" + } +} + +static gpointer +live_chart_value_yaxis_peek_pointer (const GValue* value) +{ +#line 29 "../src/axis.vala" + return value->data[0].v_pointer; +#line 1479 "axis.c" +} + +static gchar* +live_chart_value_yaxis_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 29 "../src/axis.vala" + if (collect_values[0].v_pointer) { +#line 1490 "axis.c" + LiveChartYAxis * object; + object = collect_values[0].v_pointer; +#line 29 "../src/axis.vala" + if (object->parent_instance.g_class == NULL) { +#line 29 "../src/axis.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 1497 "axis.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 29 "../src/axis.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 1501 "axis.c" + } +#line 29 "../src/axis.vala" + value->data[0].v_pointer = live_chart_yaxis_ref (object); +#line 1505 "axis.c" + } else { +#line 29 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 1509 "axis.c" + } +#line 29 "../src/axis.vala" + return NULL; +#line 1513 "axis.c" +} + +static gchar* +live_chart_value_yaxis_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartYAxis ** object_p; + object_p = collect_values[0].v_pointer; +#line 29 "../src/axis.vala" + if (!object_p) { +#line 29 "../src/axis.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 1528 "axis.c" + } +#line 29 "../src/axis.vala" + if (!value->data[0].v_pointer) { +#line 29 "../src/axis.vala" + *object_p = NULL; +#line 1534 "axis.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 29 "../src/axis.vala" + *object_p = value->data[0].v_pointer; +#line 1538 "axis.c" + } else { +#line 29 "../src/axis.vala" + *object_p = live_chart_yaxis_ref (value->data[0].v_pointer); +#line 1542 "axis.c" + } +#line 29 "../src/axis.vala" + return NULL; +#line 1546 "axis.c" +} + +GParamSpec* +live_chart_param_spec_yaxis (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecYAxis* spec; +#line 29 "../src/axis.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_YAXIS), NULL); +#line 29 "../src/axis.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 29 "../src/axis.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 29 "../src/axis.vala" + return G_PARAM_SPEC (spec); +#line 1565 "axis.c" +} + +gpointer +live_chart_value_get_yaxis (const GValue* value) +{ +#line 29 "../src/axis.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_YAXIS), NULL); +#line 29 "../src/axis.vala" + return value->data[0].v_pointer; +#line 1575 "axis.c" +} + +void +live_chart_value_set_yaxis (GValue* value, + gpointer v_object) +{ + LiveChartYAxis * old; +#line 29 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_YAXIS)); +#line 29 "../src/axis.vala" + old = value->data[0].v_pointer; +#line 29 "../src/axis.vala" + if (v_object) { +#line 29 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_YAXIS)); +#line 29 "../src/axis.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 29 "../src/axis.vala" + value->data[0].v_pointer = v_object; +#line 29 "../src/axis.vala" + live_chart_yaxis_ref (value->data[0].v_pointer); +#line 1597 "axis.c" + } else { +#line 29 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 1601 "axis.c" + } +#line 29 "../src/axis.vala" + if (old) { +#line 29 "../src/axis.vala" + live_chart_yaxis_unref (old); +#line 1607 "axis.c" + } +} + +void +live_chart_value_take_yaxis (GValue* value, + gpointer v_object) +{ + LiveChartYAxis * old; +#line 29 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_YAXIS)); +#line 29 "../src/axis.vala" + old = value->data[0].v_pointer; +#line 29 "../src/axis.vala" + if (v_object) { +#line 29 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_YAXIS)); +#line 29 "../src/axis.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 29 "../src/axis.vala" + value->data[0].v_pointer = v_object; +#line 1628 "axis.c" + } else { +#line 29 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 1632 "axis.c" + } +#line 29 "../src/axis.vala" + if (old) { +#line 29 "../src/axis.vala" + live_chart_yaxis_unref (old); +#line 1638 "axis.c" + } +} + +static void +live_chart_yaxis_class_init (LiveChartYAxisClass * klass, + gpointer klass_data) +{ +#line 29 "../src/axis.vala" + live_chart_yaxis_parent_class = g_type_class_peek_parent (klass); +#line 29 "../src/axis.vala" + ((LiveChartYAxisClass *) klass)->finalize = live_chart_yaxis_finalize; +#line 29 "../src/axis.vala" + g_type_class_adjust_private_offset (klass, &LiveChartYAxis_private_offset); +#line 1652 "axis.c" +} + +static void +live_chart_yaxis_instance_init (LiveChartYAxis * self, + gpointer klass) +{ + LiveChartBounds* _tmp0_; + LiveChartLabels* _tmp1_; + GdkRGBA _tmp2_ = {0}; + LiveChartPath* _tmp3_; + GdkRGBA _tmp4_ = {0}; + LiveChartPath* _tmp5_; + gchar* _tmp6_; +#line 29 "../src/axis.vala" + self->priv = live_chart_yaxis_get_instance_private (self); +#line 30 "../src/axis.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 30 "../src/axis.vala" + self->priv->bounds = _tmp0_; +#line 31 "../src/axis.vala" + self->priv->ratio = (gdouble) 1; +#line 33 "../src/axis.vala" + self->priv->_ratio_threshold = 1.118f; +#line 34 "../src/axis.vala" + self->priv->_tick_interval = (gfloat) 60; +#line 35 "../src/axis.vala" + self->priv->_visible = TRUE; +#line 37 "../src/axis.vala" + _tmp1_ = live_chart_labels_new (); +#line 37 "../src/axis.vala" + self->labels = _tmp1_; +#line 38 "../src/axis.vala" + _tmp2_.red = 1.0; +#line 38 "../src/axis.vala" + _tmp2_.green = 1.0; +#line 38 "../src/axis.vala" + _tmp2_.blue = 1.0; +#line 38 "../src/axis.vala" + _tmp2_.alpha = 1.0; +#line 38 "../src/axis.vala" + _tmp3_ = live_chart_path_new (0.5, &_tmp2_, TRUE, NULL); +#line 38 "../src/axis.vala" + self->axis = _tmp3_; +#line 39 "../src/axis.vala" + _tmp4_.red = 1.0; +#line 39 "../src/axis.vala" + _tmp4_.green = 1.0; +#line 39 "../src/axis.vala" + _tmp4_.blue = 1.0; +#line 39 "../src/axis.vala" + _tmp4_.alpha = 1.0; +#line 39 "../src/axis.vala" + _tmp5_ = live_chart_path_new (0.5, &_tmp4_, TRUE, NULL); +#line 39 "../src/axis.vala" + self->lines = _tmp5_; +#line 42 "../src/axis.vala" + self->priv->_tick_length = (gfloat) 60; +#line 43 "../src/axis.vala" + _tmp6_ = g_strdup (""); +#line 43 "../src/axis.vala" + self->priv->_unit = _tmp6_; +#line 46 "../src/axis.vala" + self->smart_ratio = FALSE; +#line 29 "../src/axis.vala" + self->ref_count = 1; +#line 1718 "axis.c" +} + +static void +live_chart_yaxis_finalize (LiveChartYAxis * obj) +{ + LiveChartYAxis * self; +#line 29 "../src/axis.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_YAXIS, LiveChartYAxis); +#line 29 "../src/axis.vala" + g_signal_handlers_destroy (self); +#line 30 "../src/axis.vala" + _g_object_unref0 (self->priv->bounds); +#line 37 "../src/axis.vala" + _live_chart_labels_unref0 (self->labels); +#line 38 "../src/axis.vala" + _g_object_unref0 (self->axis); +#line 39 "../src/axis.vala" + _g_object_unref0 (self->lines); +#line 43 "../src/axis.vala" + _g_free0 (self->priv->_unit); +#line 48 "../src/axis.vala" + _g_free0 (self->fixed_max); +#line 49 "../src/axis.vala" + live_chart_ticks_destroy (&self->ticks); +#line 1743 "axis.c" +} + +static GType +live_chart_yaxis_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_yaxis_init, live_chart_value_yaxis_free_value, live_chart_value_yaxis_copy_value, live_chart_value_yaxis_peek_pointer, "p", live_chart_value_yaxis_collect_value, "p", live_chart_value_yaxis_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartYAxisClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_yaxis_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartYAxis), 0, (GInstanceInitFunc) live_chart_yaxis_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_yaxis_type_id; + live_chart_yaxis_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartYAxis", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartYAxis_private_offset = g_type_add_instance_private (live_chart_yaxis_type_id, sizeof (LiveChartYAxisPrivate)); + return live_chart_yaxis_type_id; +} + +GType +live_chart_yaxis_get_type (void) +{ + static volatile gsize live_chart_yaxis_type_id__once = 0; + if (g_once_init_enter (&live_chart_yaxis_type_id__once)) { + GType live_chart_yaxis_type_id; + live_chart_yaxis_type_id = live_chart_yaxis_get_type_once (); + g_once_init_leave (&live_chart_yaxis_type_id__once, live_chart_yaxis_type_id); + } + return live_chart_yaxis_type_id__once; +} + +gpointer +live_chart_yaxis_ref (gpointer instance) +{ + LiveChartYAxis * self; + self = instance; +#line 29 "../src/axis.vala" + g_atomic_int_inc (&self->ref_count); +#line 29 "../src/axis.vala" + return instance; +#line 1779 "axis.c" +} + +void +live_chart_yaxis_unref (gpointer instance) +{ + LiveChartYAxis * self; + self = instance; +#line 29 "../src/axis.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 29 "../src/axis.vala" + LIVE_CHART_YAXIS_GET_CLASS (self)->finalize (self); +#line 29 "../src/axis.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 1793 "axis.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/background.c b/iPDC/lib/liblivechart_static.a.p/background.c new file mode 100644 index 0000000..6f2df92 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/background.c @@ -0,0 +1,559 @@ +/* background.c generated by valac 0.56.0, the Vala compiler + * generated from background.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_BACKGROUND_0_PROPERTY, + LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY, + LIVE_CHART_BACKGROUND_COLOR_PROPERTY, + LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY, + LIVE_CHART_BACKGROUND_NUM_PROPERTIES +}; +static GParamSpec* live_chart_background_properties[LIVE_CHART_BACKGROUND_NUM_PROPERTIES]; + +struct _LiveChartBackgroundPrivate { + LiveChartBoundingBox bounding_box; + gboolean _visible; + GdkRGBA _main_color; +}; + +static gint LiveChartBackground_private_offset; +static gpointer live_chart_background_parent_class = NULL; +static LiveChartDrawableIface * live_chart_background_live_chart_drawable_parent_iface = NULL; + +static void live_chart_background_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_background_update_bounding_box (LiveChartBackground* self, + LiveChartConfig* config); +static void live_chart_background_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_background_finalize (GObject * obj); +static GType live_chart_background_get_type_once (void); +static void _vala_live_chart_background_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_background_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_background_get_instance_private (LiveChartBackground* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartBackground_private_offset); +} + +static void +live_chart_background_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBackground * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 33 "../src/background.vala" + self = (LiveChartBackground*) base; +#line 33 "../src/background.vala" + g_return_if_fail (ctx != NULL); +#line 33 "../src/background.vala" + g_return_if_fail (config != NULL); +#line 34 "../src/background.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 34 "../src/background.vala" + _tmp1_ = _tmp0_; +#line 34 "../src/background.vala" + if (_tmp1_) { +#line 79 "background.c" + gint _tmp2_; + gint _tmp3_; + gint _tmp4_; + gint _tmp5_; + GdkRGBA _tmp6_ = {0}; + GdkRGBA _tmp7_; + GdkRGBA _tmp8_ = {0}; + GdkRGBA _tmp9_; + GdkRGBA _tmp10_ = {0}; + GdkRGBA _tmp11_; + GdkRGBA _tmp12_ = {0}; + GdkRGBA _tmp13_; +#line 35 "../src/background.vala" + live_chart_background_update_bounding_box (self, config); +#line 36 "../src/background.vala" + _tmp2_ = live_chart_config_get_width (config); +#line 36 "../src/background.vala" + _tmp3_ = _tmp2_; +#line 36 "../src/background.vala" + _tmp4_ = live_chart_config_get_height (config); +#line 36 "../src/background.vala" + _tmp5_ = _tmp4_; +#line 36 "../src/background.vala" + cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, (gdouble) _tmp3_, (gdouble) _tmp5_); +#line 37 "../src/background.vala" + live_chart_background_get_color (self, &_tmp6_); +#line 37 "../src/background.vala" + _tmp7_ = _tmp6_; +#line 37 "../src/background.vala" + live_chart_background_get_color (self, &_tmp8_); +#line 37 "../src/background.vala" + _tmp9_ = _tmp8_; +#line 37 "../src/background.vala" + live_chart_background_get_color (self, &_tmp10_); +#line 37 "../src/background.vala" + _tmp11_ = _tmp10_; +#line 37 "../src/background.vala" + live_chart_background_get_color (self, &_tmp12_); +#line 37 "../src/background.vala" + _tmp13_ = _tmp12_; +#line 37 "../src/background.vala" + cairo_set_source_rgba (ctx, _tmp7_.red, _tmp9_.green, _tmp11_.blue, _tmp13_.alpha); +#line 38 "../src/background.vala" + cairo_fill (ctx); +#line 124 "background.c" + } +} + +static void +live_chart_background_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartBackground * self; + LiveChartBoundingBox _tmp0_; +#line 42 "../src/background.vala" + self = (LiveChartBackground*) base; +#line 43 "../src/background.vala" + _tmp0_ = self->priv->bounding_box; +#line 43 "../src/background.vala" + *result = _tmp0_; +#line 43 "../src/background.vala" + return; +#line 142 "background.c" +} + +static void +live_chart_background_update_bounding_box (LiveChartBackground* self, + LiveChartConfig* config) +{ + gint _tmp0_; + gint _tmp1_; + gint _tmp2_; + gint _tmp3_; + LiveChartBoundingBox _tmp4_ = {0}; +#line 46 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/background.vala" + g_return_if_fail (config != NULL); +#line 47 "../src/background.vala" + _tmp0_ = live_chart_config_get_width (config); +#line 47 "../src/background.vala" + _tmp1_ = _tmp0_; +#line 47 "../src/background.vala" + _tmp2_ = live_chart_config_get_height (config); +#line 47 "../src/background.vala" + _tmp3_ = _tmp2_; +#line 47 "../src/background.vala" + memset (&_tmp4_, 0, sizeof (LiveChartBoundingBox)); +#line 47 "../src/background.vala" + _tmp4_.x = (gdouble) 0; +#line 47 "../src/background.vala" + _tmp4_.y = (gdouble) 0; +#line 47 "../src/background.vala" + _tmp4_.width = (gdouble) _tmp1_; +#line 47 "../src/background.vala" + _tmp4_.height = (gdouble) _tmp3_; +#line 47 "../src/background.vala" + self->priv->bounding_box = _tmp4_; +#line 178 "background.c" +} + +LiveChartBackground* +live_chart_background_construct (GType object_type) +{ + LiveChartBackground * self = NULL; +#line 4 "../src/background.vala" + self = (LiveChartBackground*) g_object_new (object_type, NULL); +#line 4 "../src/background.vala" + return self; +#line 189 "background.c" +} + +LiveChartBackground* +live_chart_background_new (void) +{ +#line 4 "../src/background.vala" + return live_chart_background_construct (LIVE_CHART_TYPE_BACKGROUND); +#line 197 "background.c" +} + +static gboolean +live_chart_background_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartBackground* self; +#line 12 "../src/background.vala" + self = (LiveChartBackground*) base; +#line 12 "../src/background.vala" + result = self->priv->_visible; +#line 12 "../src/background.vala" + return result; +#line 211 "background.c" +} + +static void +live_chart_background_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartBackground* self; + gboolean old_value; +#line 12 "../src/background.vala" + self = (LiveChartBackground*) base; +#line 12 "../src/background.vala" + old_value = live_chart_background_real_get_visible (base); +#line 12 "../src/background.vala" + if (old_value != value) { +#line 12 "../src/background.vala" + self->priv->_visible = value; +#line 12 "../src/background.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_background_properties[LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY]); +#line 230 "background.c" + } +} + +void +live_chart_background_get_color (LiveChartBackground* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 15 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/background.vala" + _tmp0_ = self->priv->_main_color; +#line 16 "../src/background.vala" + *result = _tmp0_; +#line 16 "../src/background.vala" + return; +#line 247 "background.c" +} + +void +live_chart_background_set_color (LiveChartBackground* self, + GdkRGBA * value) +{ + GdkRGBA _tmp0_; +#line 18 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 19 "../src/background.vala" + _tmp0_ = *value; +#line 19 "../src/background.vala" + live_chart_background_set_main_color (self, &_tmp0_); +#line 18 "../src/background.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_background_properties[LIVE_CHART_BACKGROUND_COLOR_PROPERTY]); +#line 263 "background.c" +} + +void +live_chart_background_get_main_color (LiveChartBackground* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 25 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 25 "../src/background.vala" + _tmp0_ = self->priv->_main_color; +#line 25 "../src/background.vala" + *result = _tmp0_; +#line 25 "../src/background.vala" + return; +#line 279 "background.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 25 "../src/background.vala" + if (s1 == s2) { +#line 25 "../src/background.vala" + return TRUE; +#line 290 "background.c" + } +#line 25 "../src/background.vala" + if (s1 == NULL) { +#line 25 "../src/background.vala" + return FALSE; +#line 296 "background.c" + } +#line 25 "../src/background.vala" + if (s2 == NULL) { +#line 25 "../src/background.vala" + return FALSE; +#line 302 "background.c" + } +#line 25 "../src/background.vala" + if (s1->red != s2->red) { +#line 25 "../src/background.vala" + return FALSE; +#line 308 "background.c" + } +#line 25 "../src/background.vala" + if (s1->green != s2->green) { +#line 25 "../src/background.vala" + return FALSE; +#line 314 "background.c" + } +#line 25 "../src/background.vala" + if (s1->blue != s2->blue) { +#line 25 "../src/background.vala" + return FALSE; +#line 320 "background.c" + } +#line 25 "../src/background.vala" + if (s1->alpha != s2->alpha) { +#line 25 "../src/background.vala" + return FALSE; +#line 326 "background.c" + } +#line 25 "../src/background.vala" + return TRUE; +#line 330 "background.c" +} + +void +live_chart_background_set_main_color (LiveChartBackground* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 25 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 25 "../src/background.vala" + live_chart_background_get_main_color (self, &old_value); +#line 25 "../src/background.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 344 "background.c" + GdkRGBA _tmp0_; +#line 25 "../src/background.vala" + _tmp0_ = *value; +#line 25 "../src/background.vala" + self->priv->_main_color = _tmp0_; +#line 25 "../src/background.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_background_properties[LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY]); +#line 352 "background.c" + } +} + +static void +live_chart_background_class_init (LiveChartBackgroundClass * klass, + gpointer klass_data) +{ +#line 4 "../src/background.vala" + live_chart_background_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/background.vala" + g_type_class_adjust_private_offset (klass, &LiveChartBackground_private_offset); +#line 4 "../src/background.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_background_get_property; +#line 4 "../src/background.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_background_set_property; +#line 4 "../src/background.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_background_finalize; +#line 4 "../src/background.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY, live_chart_background_properties[LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/background.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BACKGROUND_COLOR_PROPERTY, live_chart_background_properties[LIVE_CHART_BACKGROUND_COLOR_PROPERTY] = g_param_spec_boxed ("color", "color", "color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/background.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY, live_chart_background_properties[LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_DEPRECATED)); +#line 376 "background.c" +} + +static void +live_chart_background_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 4 "../src/background.vala" + live_chart_background_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 4 "../src/background.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_background_real_draw; +#line 4 "../src/background.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_background_real_get_bounding_box; +#line 4 "../src/background.vala" + iface->get_visible = live_chart_background_real_get_visible; +#line 4 "../src/background.vala" + iface->set_visible = live_chart_background_real_set_visible; +#line 393 "background.c" +} + +static void +live_chart_background_instance_init (LiveChartBackground * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; + GdkRGBA _tmp1_ = {0}; +#line 4 "../src/background.vala" + self->priv = live_chart_background_get_instance_private (self); +#line 5 "../src/background.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 5 "../src/background.vala" + _tmp0_.x = (gdouble) 0; +#line 5 "../src/background.vala" + _tmp0_.y = (gdouble) 0; +#line 5 "../src/background.vala" + _tmp0_.width = (gdouble) 0; +#line 5 "../src/background.vala" + _tmp0_.height = (gdouble) 0; +#line 5 "../src/background.vala" + self->priv->bounding_box = _tmp0_; +#line 12 "../src/background.vala" + self->priv->_visible = TRUE; +#line 24 "../src/background.vala" + memset (&_tmp1_, 0, sizeof (GdkRGBA)); +#line 24 "../src/background.vala" + _tmp1_.red = 0.1; +#line 24 "../src/background.vala" + _tmp1_.green = 0.1; +#line 24 "../src/background.vala" + _tmp1_.blue = 0.1; +#line 24 "../src/background.vala" + _tmp1_.alpha = 1.0; +#line 24 "../src/background.vala" + self->priv->_main_color = _tmp1_; +#line 430 "background.c" +} + +static void +live_chart_background_finalize (GObject * obj) +{ + LiveChartBackground * self; +#line 4 "../src/background.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_BACKGROUND, LiveChartBackground); +#line 4 "../src/background.vala" + G_OBJECT_CLASS (live_chart_background_parent_class)->finalize (obj); +#line 441 "background.c" +} + +static GType +live_chart_background_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartBackgroundClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_background_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartBackground), 0, (GInstanceInitFunc) live_chart_background_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_background_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_background_type_id; + live_chart_background_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartBackground", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_background_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartBackground_private_offset = g_type_add_instance_private (live_chart_background_type_id, sizeof (LiveChartBackgroundPrivate)); + return live_chart_background_type_id; +} + +GType +live_chart_background_get_type (void) +{ + static volatile gsize live_chart_background_type_id__once = 0; + if (g_once_init_enter (&live_chart_background_type_id__once)) { + GType live_chart_background_type_id; + live_chart_background_type_id = live_chart_background_get_type_once (); + g_once_init_leave (&live_chart_background_type_id__once, live_chart_background_type_id); + } + return live_chart_background_type_id__once; +} + +static void +_vala_live_chart_background_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartBackground * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_BACKGROUND, LiveChartBackground); +#line 4 "../src/background.vala" + switch (property_id) { +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY: +#line 4 "../src/background.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 4 "../src/background.vala" + break; +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_COLOR_PROPERTY: +#line 486 "background.c" + { + GdkRGBA boxed; +#line 4 "../src/background.vala" + live_chart_background_get_color (self, &boxed); +#line 4 "../src/background.vala" + g_value_set_boxed (value, &boxed); +#line 493 "background.c" + } +#line 4 "../src/background.vala" + break; +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY: +#line 499 "background.c" + { + GdkRGBA boxed; +#line 4 "../src/background.vala" + live_chart_background_get_main_color (self, &boxed); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#line 505 "background.c" + g_value_set_boxed (value, &boxed); +G_GNUC_END_IGNORE_DEPRECATIONS + } +#line 4 "../src/background.vala" + break; +#line 511 "background.c" + default: +#line 4 "../src/background.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/background.vala" + break; +#line 517 "background.c" + } +} + +static void +_vala_live_chart_background_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartBackground * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_BACKGROUND, LiveChartBackground); +#line 4 "../src/background.vala" + switch (property_id) { +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY: +#line 4 "../src/background.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 4 "../src/background.vala" + break; +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_COLOR_PROPERTY: +#line 4 "../src/background.vala" + live_chart_background_set_color (self, g_value_get_boxed (value)); +#line 4 "../src/background.vala" + break; +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY: +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#line 546 "background.c" + live_chart_background_set_main_color (self, g_value_get_boxed (value)); +G_GNUC_END_IGNORE_DEPRECATIONS +#line 4 "../src/background.vala" + break; +#line 551 "background.c" + default: +#line 4 "../src/background.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/background.vala" + break; +#line 557 "background.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/bar.c b/iPDC/lib/liblivechart_static.a.p/bar.c new file mode 100644 index 0000000..57eeb48 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/bar.c @@ -0,0 +1,329 @@ +/* bar.c generated by valac 0.56.0, the Vala compiler + * generated from bar.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_BAR_0_PROPERTY, + LIVE_CHART_BAR_NUM_PROPERTIES +}; +static GParamSpec* live_chart_bar_properties[LIVE_CHART_BAR_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +static gpointer live_chart_bar_parent_class = NULL; + +static void live_chart_bar_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_bar_update_bounding_box (LiveChartBar* self, + LiveChartPoints* points, + LiveChartConfig* config); +static GType live_chart_bar_get_type_once (void); + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 7 "../src/bar.vala" + return self ? g_object_ref (self) : NULL; +#line 34 "bar.c" +} + +LiveChartBar* +live_chart_bar_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartBar * self = NULL; + LiveChartValues* _tmp0_; +#line 5 "../src/bar.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 6 "../src/bar.vala" + self = (LiveChartBar*) live_chart_serie_renderer_construct (object_type); +#line 7 "../src/bar.vala" + _tmp0_ = _g_object_ref0 (values); +#line 7 "../src/bar.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 7 "../src/bar.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 5 "../src/bar.vala" + return self; +#line 55 "bar.c" +} + +LiveChartBar* +live_chart_bar_new (LiveChartValues* values) +{ +#line 5 "../src/bar.vala" + return live_chart_bar_construct (LIVE_CHART_TYPE_BAR, values); +#line 63 "bar.c" +} + +static void +live_chart_bar_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBar * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 10 "../src/bar.vala" + self = (LiveChartBar*) base; +#line 10 "../src/bar.vala" + g_return_if_fail (ctx != NULL); +#line 10 "../src/bar.vala" + g_return_if_fail (config != NULL); +#line 11 "../src/bar.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 11 "../src/bar.vala" + _tmp1_ = _tmp0_; +#line 11 "../src/bar.vala" + if (_tmp1_) { +#line 86 "bar.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 12 "../src/bar.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 12 "../src/bar.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 12 "../src/bar.vala" + points = _tmp3_; +#line 13 "../src/bar.vala" + _tmp4_ = points; +#line 13 "../src/bar.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 13 "../src/bar.vala" + _tmp6_ = _tmp5_; +#line 13 "../src/bar.vala" + if (_tmp6_ > 0) { +#line 107 "bar.c" + LiveChartPath* _tmp7_; + LiveChartPath* _tmp8_; + LiveChartPoints* _tmp9_; +#line 14 "../src/bar.vala" + _tmp7_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 14 "../src/bar.vala" + _tmp8_ = _tmp7_; +#line 14 "../src/bar.vala" + live_chart_path_configure (_tmp8_, ctx); +#line 16 "../src/bar.vala" + _tmp9_ = points; +#line 16 "../src/bar.vala" + live_chart_bar_update_bounding_box (self, _tmp9_, config); +#line 17 "../src/bar.vala" + live_chart_serie_renderer_debug ((LiveChartSerieRenderer*) self, ctx); +#line 123 "bar.c" + { + gint pos = 0; +#line 19 "../src/bar.vala" + pos = 0; +#line 128 "bar.c" + { + gboolean _tmp10_ = FALSE; +#line 19 "../src/bar.vala" + _tmp10_ = TRUE; +#line 19 "../src/bar.vala" + while (TRUE) { +#line 135 "bar.c" + LiveChartPoints* _tmp12_; + gint _tmp13_; + gint _tmp14_; + LiveChartPoint current_point = {0}; + LiveChartPoints* _tmp15_; + LiveChartPoint _tmp16_ = {0}; + LiveChartPoint next_point = {0}; + LiveChartPoints* _tmp17_; + LiveChartPoint _tmp18_ = {0}; + LiveChartPoint _tmp19_; + LiveChartPadding _tmp20_; + gdouble bar_width = 0.0; + LiveChartPoint _tmp21_; + LiveChartPoint _tmp22_; + LiveChartPoint _tmp23_; + LiveChartPoint _tmp24_; + LiveChartPoint _tmp25_; +#line 19 "../src/bar.vala" + if (!_tmp10_) { +#line 155 "bar.c" + gint _tmp11_; +#line 19 "../src/bar.vala" + _tmp11_ = pos; +#line 19 "../src/bar.vala" + pos = _tmp11_ + 1; +#line 161 "bar.c" + } +#line 19 "../src/bar.vala" + _tmp10_ = FALSE; +#line 19 "../src/bar.vala" + _tmp12_ = points; +#line 19 "../src/bar.vala" + _tmp13_ = live_chart_points_get_size (_tmp12_); +#line 19 "../src/bar.vala" + _tmp14_ = _tmp13_; +#line 19 "../src/bar.vala" + if (!(pos <= (_tmp14_ - 1))) { +#line 19 "../src/bar.vala" + break; +#line 175 "bar.c" + } +#line 20 "../src/bar.vala" + _tmp15_ = points; +#line 20 "../src/bar.vala" + live_chart_points_get (_tmp15_, pos, &_tmp16_); +#line 20 "../src/bar.vala" + current_point = _tmp16_; +#line 21 "../src/bar.vala" + _tmp17_ = points; +#line 21 "../src/bar.vala" + live_chart_points_after (_tmp17_, pos, &_tmp18_); +#line 21 "../src/bar.vala" + next_point = _tmp18_; +#line 23 "../src/bar.vala" + _tmp19_ = current_point; +#line 23 "../src/bar.vala" + _tmp20_ = config->padding; +#line 23 "../src/bar.vala" + if (_tmp19_.x < ((gdouble) _tmp20_.left)) { +#line 24 "../src/bar.vala" + continue; +#line 197 "bar.c" + } +#line 26 "../src/bar.vala" + _tmp21_ = current_point; +#line 26 "../src/bar.vala" + _tmp22_ = next_point; +#line 26 "../src/bar.vala" + bar_width = (_tmp21_.x - _tmp22_.x) / 1.2; +#line 27 "../src/bar.vala" + _tmp23_ = next_point; +#line 27 "../src/bar.vala" + _tmp24_ = next_point; +#line 27 "../src/bar.vala" + _tmp25_ = next_point; +#line 27 "../src/bar.vala" + cairo_rectangle (ctx, _tmp23_.x, _tmp24_.y, bar_width, _tmp25_.height); +#line 213 "bar.c" + } + } + } +#line 30 "../src/bar.vala" + cairo_fill (ctx); +#line 219 "bar.c" + } +#line 11 "../src/bar.vala" + _g_object_unref0 (points); +#line 223 "bar.c" + } +} + +static void +live_chart_bar_update_bounding_box (LiveChartBar* self, + LiveChartPoints* points, + LiveChartConfig* config) +{ + LiveChartPoint _tmp0_ = {0}; + LiveChartBounds* _tmp1_; + LiveChartBounds* _tmp2_; + gdouble _tmp3_; + gdouble _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint _tmp6_ = {0}; + LiveChartBoundaries _tmp7_ = {0}; + LiveChartBoundary _tmp8_; + LiveChartBounds* _tmp9_; + LiveChartBounds* _tmp10_; + gdouble _tmp11_; + gdouble _tmp12_; + LiveChartBoundingBox _tmp13_ = {0}; +#line 35 "../src/bar.vala" + g_return_if_fail (self != NULL); +#line 35 "../src/bar.vala" + g_return_if_fail (points != NULL); +#line 35 "../src/bar.vala" + g_return_if_fail (config != NULL); +#line 36 "../src/bar.vala" + live_chart_points_first (points, &_tmp0_); +#line 36 "../src/bar.vala" + _tmp1_ = live_chart_points_get_bounds (points); +#line 36 "../src/bar.vala" + _tmp2_ = _tmp1_; +#line 36 "../src/bar.vala" + _tmp3_ = live_chart_bounds_get_lower (_tmp2_); +#line 36 "../src/bar.vala" + _tmp4_ = _tmp3_; +#line 36 "../src/bar.vala" + live_chart_points_last (points, &_tmp5_); +#line 36 "../src/bar.vala" + live_chart_points_first (points, &_tmp6_); +#line 36 "../src/bar.vala" + live_chart_config_boundaries (config, &_tmp7_); +#line 36 "../src/bar.vala" + _tmp8_ = _tmp7_.y; +#line 36 "../src/bar.vala" + _tmp9_ = live_chart_points_get_bounds (points); +#line 36 "../src/bar.vala" + _tmp10_ = _tmp9_; +#line 36 "../src/bar.vala" + _tmp11_ = live_chart_bounds_get_lower (_tmp10_); +#line 36 "../src/bar.vala" + _tmp12_ = _tmp11_; +#line 36 "../src/bar.vala" + memset (&_tmp13_, 0, sizeof (LiveChartBoundingBox)); +#line 36 "../src/bar.vala" + _tmp13_.x = _tmp0_.x; +#line 36 "../src/bar.vala" + _tmp13_.y = _tmp4_; +#line 36 "../src/bar.vala" + _tmp13_.width = _tmp5_.x - _tmp6_.x; +#line 36 "../src/bar.vala" + _tmp13_.height = _tmp8_.max - _tmp12_; +#line 36 "../src/bar.vala" + ((LiveChartSerieRenderer*) self)->bounding_box = _tmp13_; +#line 290 "bar.c" +} + +static void +live_chart_bar_class_init (LiveChartBarClass * klass, + gpointer klass_data) +{ +#line 4 "../src/bar.vala" + live_chart_bar_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/bar.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_bar_real_draw; +#line 301 "bar.c" +} + +static void +live_chart_bar_instance_init (LiveChartBar * self, + gpointer klass) +{ +} + +static GType +live_chart_bar_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartBarClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_bar_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartBar), 0, (GInstanceInitFunc) live_chart_bar_instance_init, NULL }; + GType live_chart_bar_type_id; + live_chart_bar_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartBar", &g_define_type_info, 0); + return live_chart_bar_type_id; +} + +GType +live_chart_bar_get_type (void) +{ + static volatile gsize live_chart_bar_type_id__once = 0; + if (g_once_init_enter (&live_chart_bar_type_id__once)) { + GType live_chart_bar_type_id; + live_chart_bar_type_id = live_chart_bar_get_type_once (); + g_once_init_leave (&live_chart_bar_type_id__once, live_chart_bar_type_id); + } + return live_chart_bar_type_id__once; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/bezier.c b/iPDC/lib/liblivechart_static.a.p/bezier.c new file mode 100644 index 0000000..7a890a7 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/bezier.c @@ -0,0 +1,534 @@ +/* bezier.c generated by valac 0.56.0, the Vala compiler + * generated from bezier.vala, do not modify */ + +#include +#include +#include +#include "livechart_static.h" +#include +#include +#include + +#define LIVE_CHART_POLYNOMIAL_TOLERANCE 1e-6 + +#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +VALA_EXTERN GeeList* live_chart_get_cubic_roots (gdouble C3, + gdouble C2, + gdouble C1, + gdouble C0); +static gdouble* _double_dup (gdouble* self); + +GeeList* +live_chart_find_intersections_between (LiveChartSegment* segment, + LiveChartBezierCurve* bezier) +{ + gdouble ax = 0.0; + LiveChartBezierCurve _tmp0_; + LiveChartCoord _tmp1_; + LiveChartBezierCurve _tmp2_; + LiveChartCoord _tmp3_; + LiveChartBezierCurve _tmp4_; + LiveChartCoord _tmp5_; + LiveChartBezierCurve _tmp6_; + LiveChartCoord _tmp7_; + gdouble ay = 0.0; + LiveChartBezierCurve _tmp8_; + LiveChartCoord _tmp9_; + LiveChartBezierCurve _tmp10_; + LiveChartCoord _tmp11_; + LiveChartBezierCurve _tmp12_; + LiveChartCoord _tmp13_; + LiveChartBezierCurve _tmp14_; + LiveChartCoord _tmp15_; + gdouble bx = 0.0; + LiveChartBezierCurve _tmp16_; + LiveChartCoord _tmp17_; + LiveChartBezierCurve _tmp18_; + LiveChartCoord _tmp19_; + LiveChartBezierCurve _tmp20_; + LiveChartCoord _tmp21_; + gdouble by = 0.0; + LiveChartBezierCurve _tmp22_; + LiveChartCoord _tmp23_; + LiveChartBezierCurve _tmp24_; + LiveChartCoord _tmp25_; + LiveChartBezierCurve _tmp26_; + LiveChartCoord _tmp27_; + gdouble cx = 0.0; + LiveChartBezierCurve _tmp28_; + LiveChartCoord _tmp29_; + LiveChartBezierCurve _tmp30_; + LiveChartCoord _tmp31_; + gdouble cy = 0.0; + LiveChartBezierCurve _tmp32_; + LiveChartCoord _tmp33_; + LiveChartBezierCurve _tmp34_; + LiveChartCoord _tmp35_; + gdouble dx = 0.0; + LiveChartBezierCurve _tmp36_; + LiveChartCoord _tmp37_; + gdouble dy = 0.0; + LiveChartBezierCurve _tmp38_; + LiveChartCoord _tmp39_; + gdouble vx = 0.0; + LiveChartSegment _tmp40_; + LiveChartCoord _tmp41_; + LiveChartSegment _tmp42_; + LiveChartCoord _tmp43_; + gdouble vy = 0.0; + LiveChartSegment _tmp44_; + LiveChartCoord _tmp45_; + LiveChartSegment _tmp46_; + LiveChartCoord _tmp47_; + gdouble d = 0.0; + LiveChartSegment _tmp48_; + LiveChartCoord _tmp49_; + LiveChartSegment _tmp50_; + LiveChartCoord _tmp51_; + GeeList* roots = NULL; + GeeList* _tmp52_; + GeeArrayList* results = NULL; + GeeArrayList* _tmp53_; + GeeList* result; +#line 6 "../src/bezier.vala" + g_return_val_if_fail (segment != NULL, NULL); +#line 6 "../src/bezier.vala" + g_return_val_if_fail (bezier != NULL, NULL); +#line 8 "../src/bezier.vala" + _tmp0_ = *bezier; +#line 8 "../src/bezier.vala" + _tmp1_ = _tmp0_.c1; +#line 8 "../src/bezier.vala" + _tmp2_ = *bezier; +#line 8 "../src/bezier.vala" + _tmp3_ = _tmp2_.c2; +#line 8 "../src/bezier.vala" + _tmp4_ = *bezier; +#line 8 "../src/bezier.vala" + _tmp5_ = _tmp4_.c3; +#line 8 "../src/bezier.vala" + _tmp6_ = *bezier; +#line 8 "../src/bezier.vala" + _tmp7_ = _tmp6_.c0; +#line 8 "../src/bezier.vala" + ax = ((3 * (_tmp1_.x - _tmp3_.x)) + _tmp5_.x) - _tmp7_.x; +#line 9 "../src/bezier.vala" + _tmp8_ = *bezier; +#line 9 "../src/bezier.vala" + _tmp9_ = _tmp8_.c1; +#line 9 "../src/bezier.vala" + _tmp10_ = *bezier; +#line 9 "../src/bezier.vala" + _tmp11_ = _tmp10_.c2; +#line 9 "../src/bezier.vala" + _tmp12_ = *bezier; +#line 9 "../src/bezier.vala" + _tmp13_ = _tmp12_.c3; +#line 9 "../src/bezier.vala" + _tmp14_ = *bezier; +#line 9 "../src/bezier.vala" + _tmp15_ = _tmp14_.c0; +#line 9 "../src/bezier.vala" + ay = ((3 * (_tmp9_.y - _tmp11_.y)) + _tmp13_.y) - _tmp15_.y; +#line 11 "../src/bezier.vala" + _tmp16_ = *bezier; +#line 11 "../src/bezier.vala" + _tmp17_ = _tmp16_.c0; +#line 11 "../src/bezier.vala" + _tmp18_ = *bezier; +#line 11 "../src/bezier.vala" + _tmp19_ = _tmp18_.c1; +#line 11 "../src/bezier.vala" + _tmp20_ = *bezier; +#line 11 "../src/bezier.vala" + _tmp21_ = _tmp20_.c2; +#line 11 "../src/bezier.vala" + bx = 3 * ((_tmp17_.x - (2 * _tmp19_.x)) + _tmp21_.x); +#line 12 "../src/bezier.vala" + _tmp22_ = *bezier; +#line 12 "../src/bezier.vala" + _tmp23_ = _tmp22_.c0; +#line 12 "../src/bezier.vala" + _tmp24_ = *bezier; +#line 12 "../src/bezier.vala" + _tmp25_ = _tmp24_.c1; +#line 12 "../src/bezier.vala" + _tmp26_ = *bezier; +#line 12 "../src/bezier.vala" + _tmp27_ = _tmp26_.c2; +#line 12 "../src/bezier.vala" + by = 3 * ((_tmp23_.y - (2 * _tmp25_.y)) + _tmp27_.y); +#line 14 "../src/bezier.vala" + _tmp28_ = *bezier; +#line 14 "../src/bezier.vala" + _tmp29_ = _tmp28_.c1; +#line 14 "../src/bezier.vala" + _tmp30_ = *bezier; +#line 14 "../src/bezier.vala" + _tmp31_ = _tmp30_.c0; +#line 14 "../src/bezier.vala" + cx = 3 * (_tmp29_.x - _tmp31_.x); +#line 15 "../src/bezier.vala" + _tmp32_ = *bezier; +#line 15 "../src/bezier.vala" + _tmp33_ = _tmp32_.c1; +#line 15 "../src/bezier.vala" + _tmp34_ = *bezier; +#line 15 "../src/bezier.vala" + _tmp35_ = _tmp34_.c0; +#line 15 "../src/bezier.vala" + cy = 3 * (_tmp33_.y - _tmp35_.y); +#line 17 "../src/bezier.vala" + _tmp36_ = *bezier; +#line 17 "../src/bezier.vala" + _tmp37_ = _tmp36_.c0; +#line 17 "../src/bezier.vala" + dx = _tmp37_.x; +#line 18 "../src/bezier.vala" + _tmp38_ = *bezier; +#line 18 "../src/bezier.vala" + _tmp39_ = _tmp38_.c0; +#line 18 "../src/bezier.vala" + dy = _tmp39_.y; +#line 20 "../src/bezier.vala" + _tmp40_ = *segment; +#line 20 "../src/bezier.vala" + _tmp41_ = _tmp40_.to; +#line 20 "../src/bezier.vala" + _tmp42_ = *segment; +#line 20 "../src/bezier.vala" + _tmp43_ = _tmp42_.from; +#line 20 "../src/bezier.vala" + vx = _tmp41_.y - _tmp43_.y; +#line 21 "../src/bezier.vala" + _tmp44_ = *segment; +#line 21 "../src/bezier.vala" + _tmp45_ = _tmp44_.from; +#line 21 "../src/bezier.vala" + _tmp46_ = *segment; +#line 21 "../src/bezier.vala" + _tmp47_ = _tmp46_.to; +#line 21 "../src/bezier.vala" + vy = _tmp45_.x - _tmp47_.x; +#line 23 "../src/bezier.vala" + _tmp48_ = *segment; +#line 23 "../src/bezier.vala" + _tmp49_ = _tmp48_.from; +#line 23 "../src/bezier.vala" + _tmp50_ = *segment; +#line 23 "../src/bezier.vala" + _tmp51_ = _tmp50_.from; +#line 23 "../src/bezier.vala" + d = (_tmp49_.x * vx) + (_tmp51_.y * vy); +#line 25 "../src/bezier.vala" + _tmp52_ = live_chart_get_cubic_roots ((vx * ax) + (vy * ay), (vx * bx) + (vy * by), (vx * cx) + (vy * cy), ((vx * dx) + (vy * dy)) - d); +#line 25 "../src/bezier.vala" + roots = _tmp52_; +#line 32 "../src/bezier.vala" + _tmp53_ = gee_array_list_new (LIVE_CHART_TYPE_COORD, (GBoxedCopyFunc) live_chart_coord_dup, (GDestroyNotify) live_chart_coord_free, NULL, NULL, NULL); +#line 32 "../src/bezier.vala" + results = _tmp53_; +#line 234 "bezier.c" + { + gint i = 0; +#line 33 "../src/bezier.vala" + i = 0; +#line 239 "bezier.c" + { + gboolean _tmp54_ = FALSE; +#line 33 "../src/bezier.vala" + _tmp54_ = TRUE; +#line 33 "../src/bezier.vala" + while (TRUE) { +#line 246 "bezier.c" + GeeList* _tmp56_; + gint _tmp57_; + gint _tmp58_; + gdouble* root = NULL; + GeeList* _tmp59_; + gpointer _tmp60_; + gboolean _tmp61_ = FALSE; + gdouble* _tmp62_; + GeeArrayList* _tmp64_; + gdouble* _tmp65_; + gdouble* _tmp66_; + gdouble* _tmp67_; + gdouble* _tmp68_; + gdouble* _tmp69_; + gdouble* _tmp70_; + LiveChartCoord _tmp71_ = {0}; +#line 33 "../src/bezier.vala" + if (!_tmp54_) { +#line 265 "bezier.c" + gint _tmp55_; +#line 33 "../src/bezier.vala" + _tmp55_ = i; +#line 33 "../src/bezier.vala" + i = _tmp55_ + 1; +#line 271 "bezier.c" + } +#line 33 "../src/bezier.vala" + _tmp54_ = FALSE; +#line 33 "../src/bezier.vala" + _tmp56_ = roots; +#line 33 "../src/bezier.vala" + _tmp57_ = gee_collection_get_size ((GeeCollection*) _tmp56_); +#line 33 "../src/bezier.vala" + _tmp58_ = _tmp57_; +#line 33 "../src/bezier.vala" + if (!(i < _tmp58_)) { +#line 33 "../src/bezier.vala" + break; +#line 285 "bezier.c" + } +#line 34 "../src/bezier.vala" + _tmp59_ = roots; +#line 34 "../src/bezier.vala" + _tmp60_ = gee_list_get (_tmp59_, i); +#line 34 "../src/bezier.vala" + root = (gdouble*) _tmp60_; +#line 35 "../src/bezier.vala" + _tmp62_ = root; +#line 35 "../src/bezier.vala" + if (((gdouble) 0) > (*_tmp62_)) { +#line 35 "../src/bezier.vala" + _tmp61_ = TRUE; +#line 299 "bezier.c" + } else { + gdouble* _tmp63_; +#line 35 "../src/bezier.vala" + _tmp63_ = root; +#line 35 "../src/bezier.vala" + _tmp61_ = (*_tmp63_) > ((gdouble) 1); +#line 306 "bezier.c" + } +#line 35 "../src/bezier.vala" + if (_tmp61_) { +#line 35 "../src/bezier.vala" + _g_free0 (root); +#line 35 "../src/bezier.vala" + continue; +#line 314 "bezier.c" + } +#line 36 "../src/bezier.vala" + _tmp64_ = results; +#line 36 "../src/bezier.vala" + _tmp65_ = root; +#line 36 "../src/bezier.vala" + _tmp66_ = root; +#line 36 "../src/bezier.vala" + _tmp67_ = root; +#line 36 "../src/bezier.vala" + _tmp68_ = root; +#line 36 "../src/bezier.vala" + _tmp69_ = root; +#line 36 "../src/bezier.vala" + _tmp70_ = root; +#line 36 "../src/bezier.vala" + _tmp71_.x = (((((ax * (*_tmp65_)) + bx) * (*_tmp66_)) + cx) * (*_tmp67_)) + dx; +#line 36 "../src/bezier.vala" + _tmp71_.y = (((((ay * (*_tmp68_)) + by) * (*_tmp69_)) + cy) * (*_tmp70_)) + dy; +#line 36 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp64_, &_tmp71_); +#line 33 "../src/bezier.vala" + _g_free0 (root); +#line 338 "bezier.c" + } + } + } +#line 42 "../src/bezier.vala" + result = (GeeList*) results; +#line 42 "../src/bezier.vala" + _g_object_unref0 (roots); +#line 42 "../src/bezier.vala" + return result; +#line 348 "bezier.c" +} + +static gdouble* +_double_dup (gdouble* self) +{ + gdouble* dup; +#line 47 "../src/bezier.vala" + dup = g_new0 (gdouble, 1); +#line 47 "../src/bezier.vala" + memcpy (dup, self, sizeof (gdouble)); +#line 47 "../src/bezier.vala" + return dup; +#line 361 "bezier.c" +} + +GeeList* +live_chart_get_cubic_roots (gdouble C3, + gdouble C2, + gdouble C1, + gdouble C0) +{ + GeeArrayList* roots = NULL; + GeeArrayList* _tmp0_; + gdouble c3 = 0.0; + gdouble c2 = 0.0; + gdouble c1 = 0.0; + gdouble c0 = 0.0; + gdouble a = 0.0; + gdouble b = 0.0; + gdouble offset = 0.0; + gdouble discrim = 0.0; + gdouble halfB = 0.0; + gdouble tmp = 0.0; + gdouble root = 0.0; + GeeList* result; +#line 47 "../src/bezier.vala" + _tmp0_ = gee_array_list_new (G_TYPE_DOUBLE, (GBoxedCopyFunc) _double_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 47 "../src/bezier.vala" + roots = _tmp0_; +#line 50 "../src/bezier.vala" + c3 = C3; +#line 51 "../src/bezier.vala" + c2 = C2 / c3; +#line 52 "../src/bezier.vala" + c1 = C1 / c3; +#line 53 "../src/bezier.vala" + c0 = C0 / c3; +#line 55 "../src/bezier.vala" + a = ((3 * c1) - (c2 * c2)) / 3; +#line 56 "../src/bezier.vala" + b = (((((2 * c2) * c2) * c2) - ((9 * c1) * c2)) + (27 * c0)) / 27; +#line 57 "../src/bezier.vala" + offset = c2 / 3; +#line 58 "../src/bezier.vala" + discrim = ((b * b) / 4) + (((a * a) * a) / 27); +#line 59 "../src/bezier.vala" + halfB = b / 2; +#line 61 "../src/bezier.vala" + tmp = (gdouble) 0; +#line 62 "../src/bezier.vala" + root = (gdouble) 0; +#line 64 "../src/bezier.vala" + if (fabs (discrim) <= LIVE_CHART_POLYNOMIAL_TOLERANCE) { +#line 64 "../src/bezier.vala" + discrim = (gdouble) 0; +#line 414 "bezier.c" + } +#line 66 "../src/bezier.vala" + if (discrim > ((gdouble) 0)) { +#line 418 "bezier.c" + gdouble e = 0.0; + GeeArrayList* _tmp1_; + gdouble _tmp2_; +#line 67 "../src/bezier.vala" + e = sqrt (discrim); +#line 69 "../src/bezier.vala" + tmp = (-halfB) + e; +#line 70 "../src/bezier.vala" + if (tmp >= ((gdouble) 0)) { +#line 70 "../src/bezier.vala" + root = pow (tmp, (gdouble) (1 / 3)); +#line 430 "bezier.c" + } else { +#line 71 "../src/bezier.vala" + root = -pow (-tmp, (gdouble) (1 / 3)); +#line 434 "bezier.c" + } +#line 73 "../src/bezier.vala" + tmp = (-halfB) - e; +#line 74 "../src/bezier.vala" + if (tmp >= ((gdouble) 0)) { +#line 74 "../src/bezier.vala" + root += pow (tmp, (gdouble) (1 / 3)); +#line 442 "bezier.c" + } else { +#line 75 "../src/bezier.vala" + root -= pow (-tmp, (gdouble) (1 / 3)); +#line 446 "bezier.c" + } +#line 77 "../src/bezier.vala" + _tmp1_ = roots; +#line 77 "../src/bezier.vala" + _tmp2_ = root - offset; +#line 77 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp1_, &_tmp2_); +#line 454 "bezier.c" + } else { +#line 78 "../src/bezier.vala" + if (discrim < ((gdouble) 0)) { +#line 458 "bezier.c" + gdouble distance = 0.0; + gdouble angle = 0.0; + gdouble _cos = 0.0; + gdouble _sin = 0.0; + gdouble sqrt3 = 0.0; + GeeArrayList* _tmp3_; + gdouble _tmp4_; + GeeArrayList* _tmp5_; + gdouble _tmp6_; + GeeArrayList* _tmp7_; + gdouble _tmp8_; +#line 79 "../src/bezier.vala" + distance = sqrt ((-a) / 3); +#line 80 "../src/bezier.vala" + angle = atan2 (sqrt (-discrim), -halfB) / 3; +#line 81 "../src/bezier.vala" + _cos = cos (angle); +#line 82 "../src/bezier.vala" + _sin = sin (angle); +#line 83 "../src/bezier.vala" + sqrt3 = sqrt ((gdouble) 3); +#line 85 "../src/bezier.vala" + _tmp3_ = roots; +#line 85 "../src/bezier.vala" + _tmp4_ = ((2 * distance) * _cos) - offset; +#line 85 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp3_, &_tmp4_); +#line 86 "../src/bezier.vala" + _tmp5_ = roots; +#line 86 "../src/bezier.vala" + _tmp6_ = ((-distance) * (_cos + (sqrt3 * _sin))) - offset; +#line 86 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp5_, &_tmp6_); +#line 87 "../src/bezier.vala" + _tmp7_ = roots; +#line 87 "../src/bezier.vala" + _tmp8_ = ((-distance) * (_cos - (sqrt3 * _sin))) - offset; +#line 87 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, &_tmp8_); +#line 498 "bezier.c" + } else { + GeeArrayList* _tmp9_; + gdouble _tmp10_; + GeeArrayList* _tmp11_; + gdouble _tmp12_; +#line 89 "../src/bezier.vala" + if (halfB >= ((gdouble) 0)) { +#line 89 "../src/bezier.vala" + tmp = -pow (halfB, (gdouble) (1 / 3)); +#line 508 "bezier.c" + } else { +#line 90 "../src/bezier.vala" + tmp = pow (-halfB, (gdouble) (1 / 3)); +#line 512 "bezier.c" + } +#line 92 "../src/bezier.vala" + _tmp9_ = roots; +#line 92 "../src/bezier.vala" + _tmp10_ = (2 * tmp) - offset; +#line 92 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, &_tmp10_); +#line 94 "../src/bezier.vala" + _tmp11_ = roots; +#line 94 "../src/bezier.vala" + _tmp12_ = (-tmp) - offset; +#line 94 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp11_, &_tmp12_); +#line 526 "bezier.c" + } + } +#line 97 "../src/bezier.vala" + result = (GeeList*) roots; +#line 97 "../src/bezier.vala" + return result; +#line 533 "bezier.c" +} + diff --git a/iPDC/lib/liblivechart_static.a.p/bounds.c b/iPDC/lib/liblivechart_static.a.p/bounds.c new file mode 100644 index 0000000..b31addb --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/bounds.c @@ -0,0 +1,350 @@ +/* bounds.c generated by valac 0.56.0, the Vala compiler + * generated from bounds.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include + +enum { + LIVE_CHART_BOUNDS_0_PROPERTY, + LIVE_CHART_BOUNDS_LOWER_PROPERTY, + LIVE_CHART_BOUNDS_UPPER_PROPERTY, + LIVE_CHART_BOUNDS_NUM_PROPERTIES +}; +static GParamSpec* live_chart_bounds_properties[LIVE_CHART_BOUNDS_NUM_PROPERTIES]; + +struct _LiveChartBoundsPrivate { + gdouble _lower; + gdouble _upper; +}; + +static gint LiveChartBounds_private_offset; +static gpointer live_chart_bounds_parent_class = NULL; + +static void live_chart_bounds_set_lower (LiveChartBounds* self, + gdouble value); +static void live_chart_bounds_set_upper (LiveChartBounds* self, + gdouble value); +static void live_chart_bounds_finalize (GObject * obj); +static GType live_chart_bounds_get_type_once (void); +static void _vala_live_chart_bounds_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_bounds_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_bounds_get_instance_private (LiveChartBounds* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartBounds_private_offset); +} + +LiveChartBounds* +live_chart_bounds_construct (GType object_type, + gdouble lower, + gdouble upper) +{ + LiveChartBounds * self = NULL; +#line 12 "../src/bounds.vala" + self = (LiveChartBounds*) g_object_new (object_type, NULL); +#line 13 "../src/bounds.vala" + live_chart_bounds_set_lower (self, lower); +#line 14 "../src/bounds.vala" + live_chart_bounds_set_upper (self, upper); +#line 12 "../src/bounds.vala" + return self; +#line 62 "bounds.c" +} + +LiveChartBounds* +live_chart_bounds_new (gdouble lower, + gdouble upper) +{ +#line 12 "../src/bounds.vala" + return live_chart_bounds_construct (LIVE_CHART_TYPE_BOUNDS, lower, upper); +#line 71 "bounds.c" +} + +gboolean +live_chart_bounds_has_lower (LiveChartBounds* self) +{ + gdouble _tmp0_; + gboolean result; +#line 17 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 18 "../src/bounds.vala" + _tmp0_ = self->priv->_lower; +#line 18 "../src/bounds.vala" + result = !isnan (_tmp0_); +#line 18 "../src/bounds.vala" + return result; +#line 87 "bounds.c" +} + +gboolean +live_chart_bounds_has_upper (LiveChartBounds* self) +{ + gdouble _tmp0_; + gboolean result; +#line 21 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 22 "../src/bounds.vala" + _tmp0_ = self->priv->_upper; +#line 22 "../src/bounds.vala" + result = !isnan (_tmp0_); +#line 22 "../src/bounds.vala" + return result; +#line 103 "bounds.c" +} + +gboolean +live_chart_bounds_update (LiveChartBounds* self, + gdouble value) +{ + gboolean updated = FALSE; + gdouble _tmp0_; + gdouble _tmp1_; + gboolean result; +#line 25 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 26 "../src/bounds.vala" + updated = FALSE; +#line 27 "../src/bounds.vala" + if (!live_chart_bounds_has_lower (self)) { +#line 28 "../src/bounds.vala" + live_chart_bounds_set_lower (self, value); +#line 29 "../src/bounds.vala" + updated = TRUE; +#line 124 "bounds.c" + } +#line 32 "../src/bounds.vala" + if (!live_chart_bounds_has_upper (self)) { +#line 33 "../src/bounds.vala" + live_chart_bounds_set_upper (self, value); +#line 34 "../src/bounds.vala" + updated = TRUE; +#line 132 "bounds.c" + } +#line 36 "../src/bounds.vala" + _tmp0_ = self->priv->_lower; +#line 36 "../src/bounds.vala" + if (value < _tmp0_) { +#line 37 "../src/bounds.vala" + live_chart_bounds_set_lower (self, value); +#line 38 "../src/bounds.vala" + updated = TRUE; +#line 142 "bounds.c" + } +#line 40 "../src/bounds.vala" + _tmp1_ = self->priv->_upper; +#line 40 "../src/bounds.vala" + if (value > _tmp1_) { +#line 41 "../src/bounds.vala" + live_chart_bounds_set_upper (self, value); +#line 42 "../src/bounds.vala" + updated = TRUE; +#line 152 "bounds.c" + } +#line 44 "../src/bounds.vala" + result = updated; +#line 44 "../src/bounds.vala" + return result; +#line 158 "bounds.c" +} + +gdouble +live_chart_bounds_get_lower (LiveChartBounds* self) +{ + gdouble result; +#line 6 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 6 "../src/bounds.vala" + result = self->priv->_lower; +#line 6 "../src/bounds.vala" + return result; +#line 171 "bounds.c" +} + +static void +live_chart_bounds_set_lower (LiveChartBounds* self, + gdouble value) +{ + gdouble old_value; +#line 6 "../src/bounds.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/bounds.vala" + old_value = live_chart_bounds_get_lower (self); +#line 6 "../src/bounds.vala" + if (old_value != value) { +#line 6 "../src/bounds.vala" + self->priv->_lower = value; +#line 6 "../src/bounds.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_bounds_properties[LIVE_CHART_BOUNDS_LOWER_PROPERTY]); +#line 189 "bounds.c" + } +} + +gdouble +live_chart_bounds_get_upper (LiveChartBounds* self) +{ + gdouble result; +#line 9 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 9 "../src/bounds.vala" + result = self->priv->_upper; +#line 9 "../src/bounds.vala" + return result; +#line 203 "bounds.c" +} + +static void +live_chart_bounds_set_upper (LiveChartBounds* self, + gdouble value) +{ + gdouble old_value; +#line 9 "../src/bounds.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/bounds.vala" + old_value = live_chart_bounds_get_upper (self); +#line 9 "../src/bounds.vala" + if (old_value != value) { +#line 9 "../src/bounds.vala" + self->priv->_upper = value; +#line 9 "../src/bounds.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_bounds_properties[LIVE_CHART_BOUNDS_UPPER_PROPERTY]); +#line 221 "bounds.c" + } +} + +static void +live_chart_bounds_class_init (LiveChartBoundsClass * klass, + gpointer klass_data) +{ +#line 3 "../src/bounds.vala" + live_chart_bounds_parent_class = g_type_class_peek_parent (klass); +#line 3 "../src/bounds.vala" + g_type_class_adjust_private_offset (klass, &LiveChartBounds_private_offset); +#line 3 "../src/bounds.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_bounds_get_property; +#line 3 "../src/bounds.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_bounds_set_property; +#line 3 "../src/bounds.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_bounds_finalize; +#line 3 "../src/bounds.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BOUNDS_LOWER_PROPERTY, live_chart_bounds_properties[LIVE_CHART_BOUNDS_LOWER_PROPERTY] = g_param_spec_double ("lower", "lower", "lower", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 3 "../src/bounds.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BOUNDS_UPPER_PROPERTY, live_chart_bounds_properties[LIVE_CHART_BOUNDS_UPPER_PROPERTY] = g_param_spec_double ("upper", "upper", "upper", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 243 "bounds.c" +} + +static void +live_chart_bounds_instance_init (LiveChartBounds * self, + gpointer klass) +{ +#line 3 "../src/bounds.vala" + self->priv = live_chart_bounds_get_instance_private (self); +#line 252 "bounds.c" +} + +static void +live_chart_bounds_finalize (GObject * obj) +{ + LiveChartBounds * self; +#line 3 "../src/bounds.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_BOUNDS, LiveChartBounds); +#line 3 "../src/bounds.vala" + G_OBJECT_CLASS (live_chart_bounds_parent_class)->finalize (obj); +#line 263 "bounds.c" +} + +static GType +live_chart_bounds_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartBoundsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_bounds_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartBounds), 0, (GInstanceInitFunc) live_chart_bounds_instance_init, NULL }; + GType live_chart_bounds_type_id; + live_chart_bounds_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartBounds", &g_define_type_info, 0); + LiveChartBounds_private_offset = g_type_add_instance_private (live_chart_bounds_type_id, sizeof (LiveChartBoundsPrivate)); + return live_chart_bounds_type_id; +} + +GType +live_chart_bounds_get_type (void) +{ + static volatile gsize live_chart_bounds_type_id__once = 0; + if (g_once_init_enter (&live_chart_bounds_type_id__once)) { + GType live_chart_bounds_type_id; + live_chart_bounds_type_id = live_chart_bounds_get_type_once (); + g_once_init_leave (&live_chart_bounds_type_id__once, live_chart_bounds_type_id); + } + return live_chart_bounds_type_id__once; +} + +static void +_vala_live_chart_bounds_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartBounds * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_BOUNDS, LiveChartBounds); +#line 3 "../src/bounds.vala" + switch (property_id) { +#line 3 "../src/bounds.vala" + case LIVE_CHART_BOUNDS_LOWER_PROPERTY: +#line 3 "../src/bounds.vala" + g_value_set_double (value, live_chart_bounds_get_lower (self)); +#line 3 "../src/bounds.vala" + break; +#line 3 "../src/bounds.vala" + case LIVE_CHART_BOUNDS_UPPER_PROPERTY: +#line 3 "../src/bounds.vala" + g_value_set_double (value, live_chart_bounds_get_upper (self)); +#line 3 "../src/bounds.vala" + break; +#line 310 "bounds.c" + default: +#line 3 "../src/bounds.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 3 "../src/bounds.vala" + break; +#line 316 "bounds.c" + } +} + +static void +_vala_live_chart_bounds_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartBounds * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_BOUNDS, LiveChartBounds); +#line 3 "../src/bounds.vala" + switch (property_id) { +#line 3 "../src/bounds.vala" + case LIVE_CHART_BOUNDS_LOWER_PROPERTY: +#line 3 "../src/bounds.vala" + live_chart_bounds_set_lower (self, g_value_get_double (value)); +#line 3 "../src/bounds.vala" + break; +#line 3 "../src/bounds.vala" + case LIVE_CHART_BOUNDS_UPPER_PROPERTY: +#line 3 "../src/bounds.vala" + live_chart_bounds_set_upper (self, g_value_get_double (value)); +#line 3 "../src/bounds.vala" + break; +#line 342 "bounds.c" + default: +#line 3 "../src/bounds.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 3 "../src/bounds.vala" + break; +#line 348 "bounds.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/chart.c b/iPDC/lib/liblivechart_static.a.p/chart.c new file mode 100644 index 0000000..b00c6e8 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/chart.c @@ -0,0 +1,1103 @@ +/* chart.c generated by valac 0.56.0, the Vala compiler + * generated from chart.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_CHART_0_PROPERTY, + LIVE_CHART_CHART_GRID_PROPERTY, + LIVE_CHART_CHART_BACKGROUND_PROPERTY, + LIVE_CHART_CHART_LEGEND_PROPERTY, + LIVE_CHART_CHART_NUM_PROPERTIES +}; +static GParamSpec* live_chart_chart_properties[LIVE_CHART_CHART_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_config_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_config_unref (var), NULL))) +#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) +typedef struct _Block1Data Block1Data; +#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) + +struct _LiveChartChartPrivate { + LiveChartGrid* _grid; + LiveChartBackground* _background; + LiveChartLegend* _legend; + guint source_timeout; +}; + +struct _Block1Data { + int _ref_count_; + LiveChartChart* self; + gint64 ts; + LiveChartValues* values; + gint timespan_between_value; +}; + +static gint LiveChartChart_private_offset; +static gpointer live_chart_chart_parent_class = NULL; + +static void __lambda9_ (LiveChartChart* self, + GtkAllocation* allocation); +static void ___lambda9__gtk_widget_size_allocate (GtkWidget* _sender, + GtkAllocation* allocation, + gpointer self); +static gboolean live_chart_chart_render (LiveChartChart* self, + GtkWidget* _, + cairo_t* ctx); +static gboolean _live_chart_chart_render_gtk_widget_draw (GtkWidget* _sender, + cairo_t* cr, + gpointer self); +static Block1Data* block1_data_ref (Block1Data* _data1_); +static void block1_data_unref (void * _userdata_); +static gboolean __lambda11_ (Block1Data* _data1_, + gdouble* value); +static gboolean ___lambda11__gee_forall_func (gpointer g, + gpointer self); +static gboolean __lambda10_ (LiveChartChart* self); +static gboolean ___lambda10__gsource_func (gpointer self); +static void live_chart_chart_finalize (GObject * obj); +static GType live_chart_chart_get_type_once (void); +static void _vala_live_chart_chart_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_chart_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +GQuark +live_chart_chart_error_quark (void) +{ + return g_quark_from_static_string ("live-chart-chart-error-quark"); +} + +static GType +live_chart_chart_error_get_type_once (void) +{ + static const GEnumValue values[] = {{LIVE_CHART_CHART_ERROR_EXPORT_ERROR, "LIVE_CHART_CHART_ERROR_EXPORT_ERROR", "export-error"}, {LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, "LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND", "serie-not-found"}, {0, NULL, NULL}}; + GType live_chart_chart_error_type_id; + live_chart_chart_error_type_id = g_enum_register_static ("LiveChartChartError", values); + return live_chart_chart_error_type_id; +} + +GType +live_chart_chart_error_get_type (void) +{ + static volatile gsize live_chart_chart_error_type_id__once = 0; + if (g_once_init_enter (&live_chart_chart_error_type_id__once)) { + GType live_chart_chart_error_type_id; + live_chart_chart_error_type_id = live_chart_chart_error_get_type_once (); + g_once_init_leave (&live_chart_chart_error_type_id__once, live_chart_chart_error_type_id); + } + return live_chart_chart_error_type_id__once; +} + +static inline gpointer +live_chart_chart_get_instance_private (LiveChartChart* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartChart_private_offset); +} + +static gpointer +_live_chart_config_ref0 (gpointer self) +{ +#line 22 "../src/chart.vala" + return self ? live_chart_config_ref (self) : NULL; +#line 118 "chart.c" +} + +static void +__lambda9_ (LiveChartChart* self, + GtkAllocation* allocation) +{ + LiveChartConfig* _tmp0_; + GtkAllocation _tmp1_; + LiveChartConfig* _tmp2_; + GtkAllocation _tmp3_; +#line 23 "../src/chart.vala" + g_return_if_fail (allocation != NULL); +#line 24 "../src/chart.vala" + _tmp0_ = self->config; +#line 24 "../src/chart.vala" + _tmp1_ = *allocation; +#line 24 "../src/chart.vala" + live_chart_config_set_height (_tmp0_, _tmp1_.height); +#line 25 "../src/chart.vala" + _tmp2_ = self->config; +#line 25 "../src/chart.vala" + _tmp3_ = *allocation; +#line 25 "../src/chart.vala" + live_chart_config_set_width (_tmp2_, _tmp3_.width); +#line 143 "chart.c" +} + +static void +___lambda9__gtk_widget_size_allocate (GtkWidget* _sender, + GtkAllocation* allocation, + gpointer self) +{ +#line 23 "../src/chart.vala" + __lambda9_ ((LiveChartChart*) self, allocation); +#line 153 "chart.c" +} + +static gboolean +_live_chart_chart_render_gtk_widget_draw (GtkWidget* _sender, + cairo_t* cr, + gpointer self) +{ + gboolean result; + result = live_chart_chart_render ((LiveChartChart*) self, _sender, cr); +#line 28 "../src/chart.vala" + return result; +#line 165 "chart.c" +} + +LiveChartChart* +live_chart_chart_construct (GType object_type, + LiveChartConfig* config) +{ + LiveChartChart * self = NULL; + LiveChartConfig* _tmp0_; + LiveChartSeries* _tmp1_; +#line 21 "../src/chart.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 21 "../src/chart.vala" + self = (LiveChartChart*) g_object_new (object_type, NULL); +#line 22 "../src/chart.vala" + _tmp0_ = _live_chart_config_ref0 (config); +#line 22 "../src/chart.vala" + _live_chart_config_unref0 (self->config); +#line 22 "../src/chart.vala" + self->config = _tmp0_; +#line 23 "../src/chart.vala" + g_signal_connect_object ((GtkWidget*) self, "size-allocate", (GCallback) ___lambda9__gtk_widget_size_allocate, self, 0); +#line 28 "../src/chart.vala" + g_signal_connect_object ((GtkWidget*) self, "draw", (GCallback) _live_chart_chart_render_gtk_widget_draw, self, 0); +#line 30 "../src/chart.vala" + live_chart_chart_refresh_every (self, 100); +#line 32 "../src/chart.vala" + _tmp1_ = live_chart_series_new (self); +#line 32 "../src/chart.vala" + _g_object_unref0 (self->series); +#line 32 "../src/chart.vala" + self->series = _tmp1_; +#line 21 "../src/chart.vala" + return self; +#line 199 "chart.c" +} + +LiveChartChart* +live_chart_chart_new (LiveChartConfig* config) +{ +#line 21 "../src/chart.vala" + return live_chart_chart_construct (LIVE_CHART_TYPE_CHART, config); +#line 207 "chart.c" +} + +void +live_chart_chart_add_serie (LiveChartChart* self, + LiveChartSerie* serie) +{ + LiveChartSeries* _tmp0_; + LiveChartSerie* _tmp1_; + LiveChartSerie* _tmp2_; +#line 35 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 35 "../src/chart.vala" + g_return_if_fail (serie != NULL); +#line 36 "../src/chart.vala" + _tmp0_ = self->series; +#line 36 "../src/chart.vala" + _tmp1_ = live_chart_series_register (_tmp0_, serie); +#line 36 "../src/chart.vala" + _tmp2_ = _tmp1_; +#line 36 "../src/chart.vala" + _g_object_unref0 (_tmp2_); +#line 229 "chart.c" +} + +void +live_chart_chart_add_value (LiveChartChart* self, + LiveChartSerie* serie, + gdouble value) +{ +#line 40 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 40 "../src/chart.vala" + g_return_if_fail (serie != NULL); +#line 41 "../src/chart.vala" + live_chart_serie_add (serie, value); +#line 243 "chart.c" +} + +static gpointer +_g_error_copy0 (gpointer self) +{ +#line 50 "../src/chart.vala" + return self ? g_error_copy (self) : NULL; +#line 251 "chart.c" +} + +void +live_chart_chart_add_value_by_index (LiveChartChart* self, + gint serie_index, + gdouble value, + GError** error) +{ + GError* _inner_error0_ = NULL; +#line 45 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 263 "chart.c" + { + LiveChartSerie* serie = NULL; + LiveChartSeries* _tmp0_; + LiveChartSerie* _tmp1_; + LiveChartSerie* _tmp2_; +#line 47 "../src/chart.vala" + _tmp0_ = self->series; +#line 47 "../src/chart.vala" + _tmp1_ = live_chart_series_get (_tmp0_, serie_index, &_inner_error0_); +#line 47 "../src/chart.vala" + serie = _tmp1_; +#line 47 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 47 "../src/chart.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 279 "chart.c" + goto __catch0_live_chart_chart_error; + } +#line 47 "../src/chart.vala" + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 47 "../src/chart.vala" + g_clear_error (&_inner_error0_); +#line 47 "../src/chart.vala" + return; +#line 288 "chart.c" + } +#line 48 "../src/chart.vala" + _tmp2_ = serie; +#line 48 "../src/chart.vala" + live_chart_chart_add_value (self, _tmp2_, value); +#line 46 "../src/chart.vala" + _g_object_unref0 (serie); +#line 296 "chart.c" + } + goto __finally0; + __catch0_live_chart_chart_error: + { + GError* e = NULL; + GError* _tmp3_; + GError* _tmp4_; +#line 46 "../src/chart.vala" + e = _inner_error0_; +#line 46 "../src/chart.vala" + _inner_error0_ = NULL; +#line 50 "../src/chart.vala" + _tmp3_ = e; +#line 50 "../src/chart.vala" + _tmp4_ = _g_error_copy0 (_tmp3_); +#line 50 "../src/chart.vala" + _inner_error0_ = _tmp4_; +#line 50 "../src/chart.vala" + _g_error_free0 (e); +#line 316 "chart.c" + goto __finally0; + } + __finally0: +#line 46 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 46 "../src/chart.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 46 "../src/chart.vala" + g_propagate_error (error, _inner_error0_); +#line 46 "../src/chart.vala" + return; +#line 328 "chart.c" + } else { +#line 46 "../src/chart.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 46 "../src/chart.vala" + g_clear_error (&_inner_error0_); +#line 46 "../src/chart.vala" + return; +#line 336 "chart.c" + } + } +} + +static Block1Data* +block1_data_ref (Block1Data* _data1_) +{ +#line 54 "../src/chart.vala" + g_atomic_int_inc (&_data1_->_ref_count_); +#line 54 "../src/chart.vala" + return _data1_; +#line 348 "chart.c" +} + +static void +block1_data_unref (void * _userdata_) +{ + Block1Data* _data1_; + _data1_ = (Block1Data*) _userdata_; +#line 54 "../src/chart.vala" + if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) { +#line 358 "chart.c" + LiveChartChart* self; +#line 54 "../src/chart.vala" + self = _data1_->self; +#line 54 "../src/chart.vala" + _g_object_unref0 (_data1_->values); +#line 54 "../src/chart.vala" + _g_object_unref0 (self); +#line 54 "../src/chart.vala" + g_slice_free (Block1Data, _data1_); +#line 368 "chart.c" + } +} + +static gboolean +__lambda11_ (Block1Data* _data1_, + gdouble* value) +{ + LiveChartChart* self; + LiveChartTimestampedValue _tmp0_ = {0}; + LiveChartConfig* _tmp1_; + LiveChartYAxis* _tmp2_; + gboolean result; +#line 57 "../src/chart.vala" + self = _data1_->self; +#line 58 "../src/chart.vala" + _data1_->ts += (gint64) _data1_->timespan_between_value; +#line 59 "../src/chart.vala" + _tmp0_.timestamp = (gdouble) _data1_->ts; +#line 59 "../src/chart.vala" + _tmp0_.value = *value; +#line 59 "../src/chart.vala" + live_chart_values_add (_data1_->values, &_tmp0_); +#line 60 "../src/chart.vala" + _tmp1_ = self->config; +#line 60 "../src/chart.vala" + _tmp2_ = _tmp1_->y_axis; +#line 60 "../src/chart.vala" + live_chart_yaxis_update_bounds (_tmp2_, *value); +#line 61 "../src/chart.vala" + result = TRUE; +#line 61 "../src/chart.vala" + _g_free0 (value); +#line 61 "../src/chart.vala" + return result; +#line 403 "chart.c" +} + +static gboolean +___lambda11__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = __lambda11_ (self, (gdouble*) g); +#line 57 "../src/chart.vala" + return result; +#line 414 "chart.c" +} + +void +live_chart_chart_add_unaware_timestamp_collection (LiveChartChart* self, + LiveChartSerie* serie, + GeeCollection* collection, + gint timespan_between_value) +{ + Block1Data* _data1_; + gint _tmp0_; + gint _tmp1_; + LiveChartValues* _tmp2_; +#line 54 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 54 "../src/chart.vala" + g_return_if_fail (serie != NULL); +#line 54 "../src/chart.vala" + g_return_if_fail (collection != NULL); +#line 54 "../src/chart.vala" + _data1_ = g_slice_new0 (Block1Data); +#line 54 "../src/chart.vala" + _data1_->_ref_count_ = 1; +#line 54 "../src/chart.vala" + _data1_->self = g_object_ref (self); +#line 54 "../src/chart.vala" + _data1_->timespan_between_value = timespan_between_value; +#line 55 "../src/chart.vala" + _tmp0_ = gee_collection_get_size (collection); +#line 55 "../src/chart.vala" + _tmp1_ = _tmp0_; +#line 55 "../src/chart.vala" + _data1_->ts = (g_get_real_time () / 1000) - (_tmp1_ * _data1_->timespan_between_value); +#line 56 "../src/chart.vala" + _tmp2_ = live_chart_serie_get_values (serie); +#line 56 "../src/chart.vala" + _data1_->values = _tmp2_; +#line 57 "../src/chart.vala" + gee_traversable_foreach ((GeeTraversable*) collection, ___lambda11__gee_forall_func, _data1_); +#line 54 "../src/chart.vala" + block1_data_unref (_data1_); +#line 54 "../src/chart.vala" + _data1_ = NULL; +#line 457 "chart.c" +} + +void +live_chart_chart_add_unaware_timestamp_collection_by_index (LiveChartChart* self, + gint serie_index, + GeeCollection* collection, + gint timespan_between_value, + GError** error) +{ + GError* _inner_error0_ = NULL; +#line 65 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 65 "../src/chart.vala" + g_return_if_fail (collection != NULL); +#line 472 "chart.c" + { + LiveChartSerie* serie = NULL; + LiveChartSeries* _tmp0_; + LiveChartSerie* _tmp1_; + LiveChartSerie* _tmp2_; +#line 67 "../src/chart.vala" + _tmp0_ = self->series; +#line 67 "../src/chart.vala" + _tmp1_ = live_chart_series_get (_tmp0_, serie_index, &_inner_error0_); +#line 67 "../src/chart.vala" + serie = _tmp1_; +#line 67 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 67 "../src/chart.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 488 "chart.c" + goto __catch0_live_chart_chart_error; + } +#line 67 "../src/chart.vala" + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 67 "../src/chart.vala" + g_clear_error (&_inner_error0_); +#line 67 "../src/chart.vala" + return; +#line 497 "chart.c" + } +#line 68 "../src/chart.vala" + _tmp2_ = serie; +#line 68 "../src/chart.vala" + live_chart_chart_add_unaware_timestamp_collection (self, _tmp2_, collection, timespan_between_value); +#line 66 "../src/chart.vala" + _g_object_unref0 (serie); +#line 505 "chart.c" + } + goto __finally0; + __catch0_live_chart_chart_error: + { + GError* e = NULL; + GError* _tmp3_; + GError* _tmp4_; +#line 66 "../src/chart.vala" + e = _inner_error0_; +#line 66 "../src/chart.vala" + _inner_error0_ = NULL; +#line 70 "../src/chart.vala" + _tmp3_ = e; +#line 70 "../src/chart.vala" + _tmp4_ = _g_error_copy0 (_tmp3_); +#line 70 "../src/chart.vala" + _inner_error0_ = _tmp4_; +#line 70 "../src/chart.vala" + _g_error_free0 (e); +#line 525 "chart.c" + goto __finally0; + } + __finally0: +#line 66 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 66 "../src/chart.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 66 "../src/chart.vala" + g_propagate_error (error, _inner_error0_); +#line 66 "../src/chart.vala" + return; +#line 537 "chart.c" + } else { +#line 66 "../src/chart.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 66 "../src/chart.vala" + g_clear_error (&_inner_error0_); +#line 66 "../src/chart.vala" + return; +#line 545 "chart.c" + } + } +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 75 "../src/chart.vala" + return self ? g_object_ref (self) : NULL; +#line 555 "chart.c" +} + +void +live_chart_chart_to_png (LiveChartChart* self, + const gchar* filename, + GError** error) +{ + GdkWindow* window = NULL; + GdkWindow* _tmp0_; + GdkWindow* _tmp1_; + GdkPixbuf* pixbuff = NULL; + GdkPixbuf* _tmp3_; + GdkPixbuf* _tmp4_; + GError* _inner_error0_ = NULL; +#line 74 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 74 "../src/chart.vala" + g_return_if_fail (filename != NULL); +#line 75 "../src/chart.vala" + _tmp0_ = gtk_widget_get_window ((GtkWidget*) self); +#line 75 "../src/chart.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 75 "../src/chart.vala" + window = _tmp1_; +#line 76 "../src/chart.vala" + if (window == NULL) { +#line 582 "chart.c" + GError* _tmp2_; +#line 77 "../src/chart.vala" + _tmp2_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_EXPORT_ERROR, "Chart is not realized yet"); +#line 77 "../src/chart.vala" + _inner_error0_ = _tmp2_; +#line 77 "../src/chart.vala" + g_propagate_error (error, _inner_error0_); +#line 77 "../src/chart.vala" + _g_object_unref0 (window); +#line 77 "../src/chart.vala" + return; +#line 594 "chart.c" + } +#line 79 "../src/chart.vala" + _tmp3_ = gdk_pixbuf_get_from_window (window, 0, 0, gdk_window_get_width (window), gdk_window_get_height (window)); +#line 79 "../src/chart.vala" + pixbuff = _tmp3_; +#line 80 "../src/chart.vala" + _tmp4_ = pixbuff; +#line 80 "../src/chart.vala" + if (_tmp4_ != NULL) { +#line 604 "chart.c" + GdkPixbuf* _tmp5_; +#line 81 "../src/chart.vala" + _tmp5_ = pixbuff; +#line 81 "../src/chart.vala" + gdk_pixbuf_save (_tmp5_, filename, "png", &_inner_error0_, NULL); +#line 81 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 81 "../src/chart.vala" + g_propagate_error (error, _inner_error0_); +#line 81 "../src/chart.vala" + _g_object_unref0 (pixbuff); +#line 81 "../src/chart.vala" + _g_object_unref0 (window); +#line 81 "../src/chart.vala" + return; +#line 620 "chart.c" + } + } +#line 74 "../src/chart.vala" + _g_object_unref0 (pixbuff); +#line 74 "../src/chart.vala" + _g_object_unref0 (window); +#line 627 "chart.c" +} + +static gboolean +__lambda10_ (LiveChartChart* self) +{ + gboolean result; +#line 90 "../src/chart.vala" + gtk_widget_queue_draw ((GtkWidget*) self); +#line 91 "../src/chart.vala" + result = TRUE; +#line 91 "../src/chart.vala" + return result; +#line 640 "chart.c" +} + +static gboolean +___lambda10__gsource_func (gpointer self) +{ + gboolean result; + result = __lambda10_ ((LiveChartChart*) self); +#line 89 "../src/chart.vala" + return result; +#line 650 "chart.c" +} + +void +live_chart_chart_refresh_every (LiveChartChart* self, + gint ms) +{ +#line 85 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 86 "../src/chart.vala" + if (self->priv->source_timeout != ((guint) 0)) { +#line 87 "../src/chart.vala" + g_source_remove (self->priv->source_timeout); +#line 663 "chart.c" + } +#line 89 "../src/chart.vala" + self->priv->source_timeout = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) ms, ___lambda10__gsource_func, g_object_ref (self), g_object_unref); +#line 667 "chart.c" +} + +static gboolean +live_chart_chart_render (LiveChartChart* self, + GtkWidget* _, + cairo_t* ctx) +{ + LiveChartConfig* _tmp0_; + LiveChartLegend* _tmp1_; + LiveChartBackground* _tmp2_; + LiveChartConfig* _tmp3_; + LiveChartGrid* _tmp4_; + LiveChartConfig* _tmp5_; + LiveChartLegend* _tmp6_; + LiveChartBoundaries boundaries = {0}; + LiveChartConfig* _tmp9_; + LiveChartBoundaries _tmp10_ = {0}; + gboolean result; +#line 95 "../src/chart.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 95 "../src/chart.vala" + g_return_val_if_fail (_ != NULL, FALSE); +#line 95 "../src/chart.vala" + g_return_val_if_fail (ctx != NULL, FALSE); +#line 97 "../src/chart.vala" + _tmp0_ = self->config; +#line 97 "../src/chart.vala" + _tmp1_ = self->priv->_legend; +#line 97 "../src/chart.vala" + live_chart_config_configure (_tmp0_, ctx, _tmp1_); +#line 99 "../src/chart.vala" + _tmp2_ = self->priv->_background; +#line 99 "../src/chart.vala" + _tmp3_ = self->config; +#line 99 "../src/chart.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp2_, ctx, _tmp3_); +#line 100 "../src/chart.vala" + _tmp4_ = self->priv->_grid; +#line 100 "../src/chart.vala" + _tmp5_ = self->config; +#line 100 "../src/chart.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp4_, ctx, _tmp5_); +#line 101 "../src/chart.vala" + _tmp6_ = self->priv->_legend; +#line 101 "../src/chart.vala" + if (_tmp6_ != NULL) { +#line 714 "chart.c" + LiveChartLegend* _tmp7_; + LiveChartConfig* _tmp8_; +#line 101 "../src/chart.vala" + _tmp7_ = self->priv->_legend; +#line 101 "../src/chart.vala" + _tmp8_ = self->config; +#line 101 "../src/chart.vala" + live_chart_legend_draw (_tmp7_, ctx, _tmp8_); +#line 723 "chart.c" + } +#line 103 "../src/chart.vala" + _tmp9_ = self->config; +#line 103 "../src/chart.vala" + live_chart_config_boundaries (_tmp9_, &_tmp10_); +#line 103 "../src/chart.vala" + boundaries = _tmp10_; +#line 731 "chart.c" + { + GeeIterator* _serie_it = NULL; + LiveChartSeries* _tmp11_; + GeeIterator* _tmp12_; +#line 104 "../src/chart.vala" + _tmp11_ = self->series; +#line 104 "../src/chart.vala" + _tmp12_ = live_chart_series_iterator (_tmp11_); +#line 104 "../src/chart.vala" + _serie_it = _tmp12_; +#line 104 "../src/chart.vala" + while (TRUE) { +#line 744 "chart.c" + GeeIterator* _tmp13_; + LiveChartDrawable* serie = NULL; + GeeIterator* _tmp14_; + gpointer _tmp15_; + LiveChartBoundaries _tmp16_; + LiveChartBoundary _tmp17_; + LiveChartBoundaries _tmp18_; + LiveChartBoundary _tmp19_; + LiveChartBoundaries _tmp20_; + LiveChartBoundary _tmp21_; + LiveChartBoundaries _tmp22_; + LiveChartBoundary _tmp23_; + LiveChartDrawable* _tmp24_; + LiveChartConfig* _tmp25_; +#line 104 "../src/chart.vala" + _tmp13_ = _serie_it; +#line 104 "../src/chart.vala" + if (!gee_iterator_next (_tmp13_)) { +#line 104 "../src/chart.vala" + break; +#line 765 "chart.c" + } +#line 104 "../src/chart.vala" + _tmp14_ = _serie_it; +#line 104 "../src/chart.vala" + _tmp15_ = gee_iterator_get (_tmp14_); +#line 104 "../src/chart.vala" + serie = (LiveChartDrawable*) ((LiveChartSerie*) _tmp15_); +#line 105 "../src/chart.vala" + _tmp16_ = boundaries; +#line 105 "../src/chart.vala" + _tmp17_ = _tmp16_.x; +#line 105 "../src/chart.vala" + _tmp18_ = boundaries; +#line 105 "../src/chart.vala" + _tmp19_ = _tmp18_.y; +#line 105 "../src/chart.vala" + _tmp20_ = boundaries; +#line 105 "../src/chart.vala" + _tmp21_ = _tmp20_.x; +#line 105 "../src/chart.vala" + _tmp22_ = boundaries; +#line 105 "../src/chart.vala" + _tmp23_ = _tmp22_.y; +#line 105 "../src/chart.vala" + cairo_rectangle (ctx, (gdouble) _tmp17_.min, (gdouble) _tmp19_.min, (gdouble) _tmp21_.max, (gdouble) _tmp23_.max); +#line 106 "../src/chart.vala" + cairo_clip (ctx); +#line 107 "../src/chart.vala" + _tmp24_ = serie; +#line 107 "../src/chart.vala" + _tmp25_ = self->config; +#line 107 "../src/chart.vala" + live_chart_drawable_draw (_tmp24_, ctx, _tmp25_); +#line 104 "../src/chart.vala" + _g_object_unref0 (serie); +#line 801 "chart.c" + } +#line 104 "../src/chart.vala" + _g_object_unref0 (_serie_it); +#line 805 "chart.c" + } +#line 110 "../src/chart.vala" + result = TRUE; +#line 110 "../src/chart.vala" + return result; +#line 811 "chart.c" +} + +LiveChartGrid* +live_chart_chart_get_grid (LiveChartChart* self) +{ + LiveChartGrid* result; + LiveChartGrid* _tmp0_; +#line 13 "../src/chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 13 "../src/chart.vala" + _tmp0_ = self->priv->_grid; +#line 13 "../src/chart.vala" + result = _tmp0_; +#line 13 "../src/chart.vala" + return result; +#line 827 "chart.c" +} + +void +live_chart_chart_set_grid (LiveChartChart* self, + LiveChartGrid* value) +{ + LiveChartGrid* old_value; +#line 13 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 13 "../src/chart.vala" + old_value = live_chart_chart_get_grid (self); +#line 13 "../src/chart.vala" + if (old_value != value) { +#line 841 "chart.c" + LiveChartGrid* _tmp0_; +#line 13 "../src/chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 13 "../src/chart.vala" + _g_object_unref0 (self->priv->_grid); +#line 13 "../src/chart.vala" + self->priv->_grid = _tmp0_; +#line 13 "../src/chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_chart_properties[LIVE_CHART_CHART_GRID_PROPERTY]); +#line 851 "chart.c" + } +} + +LiveChartBackground* +live_chart_chart_get_background (LiveChartChart* self) +{ + LiveChartBackground* result; + LiveChartBackground* _tmp0_; +#line 14 "../src/chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 14 "../src/chart.vala" + _tmp0_ = self->priv->_background; +#line 14 "../src/chart.vala" + result = _tmp0_; +#line 14 "../src/chart.vala" + return result; +#line 868 "chart.c" +} + +void +live_chart_chart_set_background (LiveChartChart* self, + LiveChartBackground* value) +{ + LiveChartBackground* old_value; +#line 14 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/chart.vala" + old_value = live_chart_chart_get_background (self); +#line 14 "../src/chart.vala" + if (old_value != value) { +#line 882 "chart.c" + LiveChartBackground* _tmp0_; +#line 14 "../src/chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 14 "../src/chart.vala" + _g_object_unref0 (self->priv->_background); +#line 14 "../src/chart.vala" + self->priv->_background = _tmp0_; +#line 14 "../src/chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_chart_properties[LIVE_CHART_CHART_BACKGROUND_PROPERTY]); +#line 892 "chart.c" + } +} + +LiveChartLegend* +live_chart_chart_get_legend (LiveChartChart* self) +{ + LiveChartLegend* result; + LiveChartLegend* _tmp0_; +#line 15 "../src/chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 15 "../src/chart.vala" + _tmp0_ = self->priv->_legend; +#line 15 "../src/chart.vala" + result = _tmp0_; +#line 15 "../src/chart.vala" + return result; +#line 909 "chart.c" +} + +void +live_chart_chart_set_legend (LiveChartChart* self, + LiveChartLegend* value) +{ + LiveChartLegend* old_value; +#line 15 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 15 "../src/chart.vala" + old_value = live_chart_chart_get_legend (self); +#line 15 "../src/chart.vala" + if (old_value != value) { +#line 923 "chart.c" + LiveChartLegend* _tmp0_; +#line 15 "../src/chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 15 "../src/chart.vala" + _g_object_unref0 (self->priv->_legend); +#line 15 "../src/chart.vala" + self->priv->_legend = _tmp0_; +#line 15 "../src/chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_chart_properties[LIVE_CHART_CHART_LEGEND_PROPERTY]); +#line 933 "chart.c" + } +} + +static void +live_chart_chart_class_init (LiveChartChartClass * klass, + gpointer klass_data) +{ +#line 11 "../src/chart.vala" + live_chart_chart_parent_class = g_type_class_peek_parent (klass); +#line 11 "../src/chart.vala" + g_type_class_adjust_private_offset (klass, &LiveChartChart_private_offset); +#line 11 "../src/chart.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_chart_get_property; +#line 11 "../src/chart.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_chart_set_property; +#line 11 "../src/chart.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_chart_finalize; +#line 11 "../src/chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_CHART_GRID_PROPERTY, live_chart_chart_properties[LIVE_CHART_CHART_GRID_PROPERTY] = g_param_spec_object ("grid", "grid", "grid", LIVE_CHART_TYPE_GRID, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 11 "../src/chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_CHART_BACKGROUND_PROPERTY, live_chart_chart_properties[LIVE_CHART_CHART_BACKGROUND_PROPERTY] = g_param_spec_object ("background", "background", "background", LIVE_CHART_TYPE_BACKGROUND, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 11 "../src/chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_CHART_LEGEND_PROPERTY, live_chart_chart_properties[LIVE_CHART_CHART_LEGEND_PROPERTY] = g_param_spec_object ("legend", "legend", "legend", LIVE_CHART_TYPE_LEGEND, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 957 "chart.c" +} + +static void +live_chart_chart_instance_init (LiveChartChart * self, + gpointer klass) +{ + LiveChartGrid* _tmp0_; + LiveChartBackground* _tmp1_; + LiveChartHorizontalLegend* _tmp2_; +#line 11 "../src/chart.vala" + self->priv = live_chart_chart_get_instance_private (self); +#line 13 "../src/chart.vala" + _tmp0_ = live_chart_grid_new (); +#line 13 "../src/chart.vala" + self->priv->_grid = _tmp0_; +#line 14 "../src/chart.vala" + _tmp1_ = live_chart_background_new (); +#line 14 "../src/chart.vala" + self->priv->_background = _tmp1_; +#line 15 "../src/chart.vala" + _tmp2_ = live_chart_horizontal_legend_new (); +#line 15 "../src/chart.vala" + self->priv->_legend = (LiveChartLegend*) _tmp2_; +#line 19 "../src/chart.vala" + self->priv->source_timeout = (guint) 0; +#line 983 "chart.c" +} + +static void +live_chart_chart_finalize (GObject * obj) +{ + LiveChartChart * self; +#line 11 "../src/chart.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_CHART, LiveChartChart); +#line 13 "../src/chart.vala" + _g_object_unref0 (self->priv->_grid); +#line 14 "../src/chart.vala" + _g_object_unref0 (self->priv->_background); +#line 15 "../src/chart.vala" + _g_object_unref0 (self->priv->_legend); +#line 16 "../src/chart.vala" + _live_chart_config_unref0 (self->config); +#line 17 "../src/chart.vala" + _g_object_unref0 (self->series); +#line 11 "../src/chart.vala" + G_OBJECT_CLASS (live_chart_chart_parent_class)->finalize (obj); +#line 1004 "chart.c" +} + +static GType +live_chart_chart_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartChartClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_chart_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartChart), 0, (GInstanceInitFunc) live_chart_chart_instance_init, NULL }; + GType live_chart_chart_type_id; + live_chart_chart_type_id = g_type_register_static (gtk_drawing_area_get_type (), "LiveChartChart", &g_define_type_info, 0); + LiveChartChart_private_offset = g_type_add_instance_private (live_chart_chart_type_id, sizeof (LiveChartChartPrivate)); + return live_chart_chart_type_id; +} + +GType +live_chart_chart_get_type (void) +{ + static volatile gsize live_chart_chart_type_id__once = 0; + if (g_once_init_enter (&live_chart_chart_type_id__once)) { + GType live_chart_chart_type_id; + live_chart_chart_type_id = live_chart_chart_get_type_once (); + g_once_init_leave (&live_chart_chart_type_id__once, live_chart_chart_type_id); + } + return live_chart_chart_type_id__once; +} + +static void +_vala_live_chart_chart_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartChart * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_CHART, LiveChartChart); +#line 11 "../src/chart.vala" + switch (property_id) { +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_GRID_PROPERTY: +#line 11 "../src/chart.vala" + g_value_set_object (value, live_chart_chart_get_grid (self)); +#line 11 "../src/chart.vala" + break; +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_BACKGROUND_PROPERTY: +#line 11 "../src/chart.vala" + g_value_set_object (value, live_chart_chart_get_background (self)); +#line 11 "../src/chart.vala" + break; +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_LEGEND_PROPERTY: +#line 11 "../src/chart.vala" + g_value_set_object (value, live_chart_chart_get_legend (self)); +#line 11 "../src/chart.vala" + break; +#line 1057 "chart.c" + default: +#line 11 "../src/chart.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 11 "../src/chart.vala" + break; +#line 1063 "chart.c" + } +} + +static void +_vala_live_chart_chart_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartChart * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_CHART, LiveChartChart); +#line 11 "../src/chart.vala" + switch (property_id) { +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_GRID_PROPERTY: +#line 11 "../src/chart.vala" + live_chart_chart_set_grid (self, g_value_get_object (value)); +#line 11 "../src/chart.vala" + break; +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_BACKGROUND_PROPERTY: +#line 11 "../src/chart.vala" + live_chart_chart_set_background (self, g_value_get_object (value)); +#line 11 "../src/chart.vala" + break; +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_LEGEND_PROPERTY: +#line 11 "../src/chart.vala" + live_chart_chart_set_legend (self, g_value_get_object (value)); +#line 11 "../src/chart.vala" + break; +#line 1095 "chart.c" + default: +#line 11 "../src/chart.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 11 "../src/chart.vala" + break; +#line 1101 "chart.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/config.c b/iPDC/lib/liblivechart_static.a.p/config.c new file mode 100644 index 0000000..77981ef --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/config.c @@ -0,0 +1,1046 @@ +/* config.c generated by valac 0.56.0, the Vala compiler + * generated from config.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include + +#define _live_chart_yaxis_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_yaxis_unref (var), NULL))) +#define _live_chart_xaxis_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_xaxis_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) +typedef struct _LiveChartParamSpecConfig LiveChartParamSpecConfig; + +struct _LiveChartConfigPrivate { + gint _width; + gint _height; +}; + +struct _LiveChartParamSpecConfig { + GParamSpec parent_instance; +}; + +static gint LiveChartConfig_private_offset; +static gpointer live_chart_config_parent_class = NULL; + +static void live_chart_config_configure_y_max_labels_extents (LiveChartConfig* self, + cairo_t* ctx); +static void live_chart_config_configure_x_max_labels_extents (LiveChartConfig* self, + cairo_t* ctx); +static void live_chart_config_finalize (LiveChartConfig * obj); +static GType live_chart_config_get_type_once (void); + +static GType +live_chart_auto_padding_get_type_once (void) +{ + static const GFlagsValue values[] = {{LIVE_CHART_AUTO_PADDING_NONE, "LIVE_CHART_AUTO_PADDING_NONE", "none"}, {LIVE_CHART_AUTO_PADDING_TOP, "LIVE_CHART_AUTO_PADDING_TOP", "top"}, {LIVE_CHART_AUTO_PADDING_RIGHT, "LIVE_CHART_AUTO_PADDING_RIGHT", "right"}, {LIVE_CHART_AUTO_PADDING_BOTTOM, "LIVE_CHART_AUTO_PADDING_BOTTOM", "bottom"}, {LIVE_CHART_AUTO_PADDING_LEFT, "LIVE_CHART_AUTO_PADDING_LEFT", "left"}, {0, NULL, NULL}}; + GType live_chart_auto_padding_type_id; + live_chart_auto_padding_type_id = g_flags_register_static ("LiveChartAutoPadding", values); + return live_chart_auto_padding_type_id; +} + +GType +live_chart_auto_padding_get_type (void) +{ + static volatile gsize live_chart_auto_padding_type_id__once = 0; + if (g_once_init_enter (&live_chart_auto_padding_type_id__once)) { + GType live_chart_auto_padding_type_id; + live_chart_auto_padding_type_id = live_chart_auto_padding_get_type_once (); + g_once_init_leave (&live_chart_auto_padding_type_id__once, live_chart_auto_padding_type_id); + } + return live_chart_auto_padding_type_id__once; +} + +void +live_chart_padding_init (LiveChartPadding *self) +{ +#line 21 "../src/config.vala" + memset (self, 0, sizeof (LiveChartPadding)); +#line 22 "../src/config.vala" + (*self).smart = ((LIVE_CHART_AUTO_PADDING_TOP | LIVE_CHART_AUTO_PADDING_RIGHT) | LIVE_CHART_AUTO_PADDING_BOTTOM) | LIVE_CHART_AUTO_PADDING_LEFT; +#line 23 "../src/config.vala" + (*self).top = 20; +#line 24 "../src/config.vala" + (*self).right = 20; +#line 25 "../src/config.vala" + (*self).bottom = 20; +#line 26 "../src/config.vala" + (*self).left = 20; +#line 73 "config.c" +} + +LiveChartPadding* +live_chart_padding_dup (const LiveChartPadding* self) +{ + LiveChartPadding* dup; +#line 14 "../src/config.vala" + dup = g_new0 (LiveChartPadding, 1); +#line 14 "../src/config.vala" + memcpy (dup, self, sizeof (LiveChartPadding)); +#line 14 "../src/config.vala" + return dup; +#line 86 "config.c" +} + +void +live_chart_padding_free (LiveChartPadding* self) +{ +#line 14 "../src/config.vala" + g_free (self); +#line 94 "config.c" +} + +static GType +live_chart_padding_get_type_once (void) +{ + GType live_chart_padding_type_id; + live_chart_padding_type_id = g_boxed_type_register_static ("LiveChartPadding", (GBoxedCopyFunc) live_chart_padding_dup, (GBoxedFreeFunc) live_chart_padding_free); + return live_chart_padding_type_id; +} + +GType +live_chart_padding_get_type (void) +{ + static volatile gsize live_chart_padding_type_id__once = 0; + if (g_once_init_enter (&live_chart_padding_type_id__once)) { + GType live_chart_padding_type_id; + live_chart_padding_type_id = live_chart_padding_get_type_once (); + g_once_init_leave (&live_chart_padding_type_id__once, live_chart_padding_type_id); + } + return live_chart_padding_type_id__once; +} + +LiveChartBoundary* +live_chart_boundary_dup (const LiveChartBoundary* self) +{ + LiveChartBoundary* dup; +#line 30 "../src/config.vala" + dup = g_new0 (LiveChartBoundary, 1); +#line 30 "../src/config.vala" + memcpy (dup, self, sizeof (LiveChartBoundary)); +#line 30 "../src/config.vala" + return dup; +#line 127 "config.c" +} + +void +live_chart_boundary_free (LiveChartBoundary* self) +{ +#line 30 "../src/config.vala" + g_free (self); +#line 135 "config.c" +} + +static GType +live_chart_boundary_get_type_once (void) +{ + GType live_chart_boundary_type_id; + live_chart_boundary_type_id = g_boxed_type_register_static ("LiveChartBoundary", (GBoxedCopyFunc) live_chart_boundary_dup, (GBoxedFreeFunc) live_chart_boundary_free); + return live_chart_boundary_type_id; +} + +GType +live_chart_boundary_get_type (void) +{ + static volatile gsize live_chart_boundary_type_id__once = 0; + if (g_once_init_enter (&live_chart_boundary_type_id__once)) { + GType live_chart_boundary_type_id; + live_chart_boundary_type_id = live_chart_boundary_get_type_once (); + g_once_init_leave (&live_chart_boundary_type_id__once, live_chart_boundary_type_id); + } + return live_chart_boundary_type_id__once; +} + +LiveChartBoundaries* +live_chart_boundaries_dup (const LiveChartBoundaries* self) +{ + LiveChartBoundaries* dup; +#line 35 "../src/config.vala" + dup = g_new0 (LiveChartBoundaries, 1); +#line 35 "../src/config.vala" + memcpy (dup, self, sizeof (LiveChartBoundaries)); +#line 35 "../src/config.vala" + return dup; +#line 168 "config.c" +} + +void +live_chart_boundaries_free (LiveChartBoundaries* self) +{ +#line 35 "../src/config.vala" + g_free (self); +#line 176 "config.c" +} + +static GType +live_chart_boundaries_get_type_once (void) +{ + GType live_chart_boundaries_type_id; + live_chart_boundaries_type_id = g_boxed_type_register_static ("LiveChartBoundaries", (GBoxedCopyFunc) live_chart_boundaries_dup, (GBoxedFreeFunc) live_chart_boundaries_free); + return live_chart_boundaries_type_id; +} + +GType +live_chart_boundaries_get_type (void) +{ + static volatile gsize live_chart_boundaries_type_id__once = 0; + if (g_once_init_enter (&live_chart_boundaries_type_id__once)) { + GType live_chart_boundaries_type_id; + live_chart_boundaries_type_id = live_chart_boundaries_get_type_once (); + g_once_init_leave (&live_chart_boundaries_type_id__once, live_chart_boundaries_type_id); + } + return live_chart_boundaries_type_id__once; +} + +static inline gpointer +live_chart_config_get_instance_private (LiveChartConfig* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartConfig_private_offset); +} + +void +live_chart_config_boundaries (LiveChartConfig* self, + LiveChartBoundaries* result) +{ + LiveChartPadding _tmp0_; + gint _tmp1_; + LiveChartPadding _tmp2_; + LiveChartBoundary _tmp3_ = {0}; + LiveChartPadding _tmp4_; + gint _tmp5_; + LiveChartPadding _tmp6_; + LiveChartBoundary _tmp7_ = {0}; + gint _tmp8_; + LiveChartPadding _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + LiveChartPadding _tmp12_; + LiveChartPadding _tmp13_; + LiveChartBoundaries _tmp14_ = {0}; +#line 59 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 60 "../src/config.vala" + _tmp0_ = self->padding; +#line 60 "../src/config.vala" + _tmp1_ = self->priv->_width; +#line 60 "../src/config.vala" + _tmp2_ = self->padding; +#line 60 "../src/config.vala" + _tmp3_.min = _tmp0_.left; +#line 60 "../src/config.vala" + _tmp3_.max = _tmp1_ - _tmp2_.right; +#line 60 "../src/config.vala" + _tmp4_ = self->padding; +#line 60 "../src/config.vala" + _tmp5_ = self->priv->_height; +#line 60 "../src/config.vala" + _tmp6_ = self->padding; +#line 60 "../src/config.vala" + _tmp7_.min = _tmp4_.top; +#line 60 "../src/config.vala" + _tmp7_.max = _tmp5_ - _tmp6_.bottom; +#line 60 "../src/config.vala" + _tmp8_ = self->priv->_width; +#line 60 "../src/config.vala" + _tmp9_ = self->padding; +#line 60 "../src/config.vala" + _tmp10_ = self->padding; +#line 60 "../src/config.vala" + _tmp11_ = self->priv->_height; +#line 60 "../src/config.vala" + _tmp12_ = self->padding; +#line 60 "../src/config.vala" + _tmp13_ = self->padding; +#line 60 "../src/config.vala" + memset (&_tmp14_, 0, sizeof (LiveChartBoundaries)); +#line 60 "../src/config.vala" + _tmp14_.x = _tmp3_; +#line 60 "../src/config.vala" + _tmp14_.y = _tmp7_; +#line 60 "../src/config.vala" + _tmp14_.width = (_tmp8_ - _tmp9_.right) - _tmp10_.left; +#line 60 "../src/config.vala" + _tmp14_.height = (_tmp11_ - _tmp12_.bottom) - _tmp13_.top; +#line 60 "../src/config.vala" + *result = _tmp14_; +#line 60 "../src/config.vala" + return; +#line 272 "config.c" +} + +void +live_chart_config_configure (LiveChartConfig* self, + cairo_t* ctx, + LiveChartLegend* legend) +{ + LiveChartPadding _tmp0_; + LiveChartPadding _tmp5_; + LiveChartPadding _tmp10_; + LiveChartPadding _tmp15_; + gboolean _tmp16_ = FALSE; + LiveChartYAxis* _tmp20_; + LiveChartBoundaries _tmp21_ = {0}; +#line 68 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 68 "../src/config.vala" + g_return_if_fail (ctx != NULL); +#line 69 "../src/config.vala" + live_chart_config_configure_y_max_labels_extents (self, ctx); +#line 70 "../src/config.vala" + live_chart_config_configure_x_max_labels_extents (self, ctx); +#line 72 "../src/config.vala" + _tmp0_ = self->padding; +#line 72 "../src/config.vala" + if ((_tmp0_.smart & LIVE_CHART_AUTO_PADDING_RIGHT) == LIVE_CHART_AUTO_PADDING_RIGHT) { +#line 299 "config.c" + LiveChartXAxis* _tmp1_; + LiveChartLabels* _tmp2_; + cairo_text_extents_t _tmp3_ = {0}; + cairo_text_extents_t _tmp4_; +#line 72 "../src/config.vala" + _tmp1_ = self->x_axis; +#line 72 "../src/config.vala" + _tmp2_ = _tmp1_->labels; +#line 72 "../src/config.vala" + live_chart_labels_get_extents (_tmp2_, &_tmp3_); +#line 72 "../src/config.vala" + _tmp4_ = _tmp3_; +#line 72 "../src/config.vala" + self->padding.right = 10 + (((gint) _tmp4_.width) / 2); +#line 314 "config.c" + } +#line 73 "../src/config.vala" + _tmp5_ = self->padding; +#line 73 "../src/config.vala" + if ((_tmp5_.smart & LIVE_CHART_AUTO_PADDING_LEFT) == LIVE_CHART_AUTO_PADDING_LEFT) { +#line 320 "config.c" + LiveChartYAxis* _tmp6_; + LiveChartLabels* _tmp7_; + cairo_text_extents_t _tmp8_ = {0}; + cairo_text_extents_t _tmp9_; +#line 73 "../src/config.vala" + _tmp6_ = self->y_axis; +#line 73 "../src/config.vala" + _tmp7_ = _tmp6_->labels; +#line 73 "../src/config.vala" + live_chart_labels_get_extents (_tmp7_, &_tmp8_); +#line 73 "../src/config.vala" + _tmp9_ = _tmp8_; +#line 73 "../src/config.vala" + self->padding.left = (gint) _tmp9_.width; +#line 335 "config.c" + } +#line 74 "../src/config.vala" + _tmp10_ = self->padding; +#line 74 "../src/config.vala" + if ((_tmp10_.smart & LIVE_CHART_AUTO_PADDING_BOTTOM) == LIVE_CHART_AUTO_PADDING_BOTTOM) { +#line 341 "config.c" + LiveChartXAxis* _tmp11_; + LiveChartLabels* _tmp12_; + cairo_text_extents_t _tmp13_ = {0}; + cairo_text_extents_t _tmp14_; +#line 74 "../src/config.vala" + _tmp11_ = self->x_axis; +#line 74 "../src/config.vala" + _tmp12_ = _tmp11_->labels; +#line 74 "../src/config.vala" + live_chart_labels_get_extents (_tmp12_, &_tmp13_); +#line 74 "../src/config.vala" + _tmp14_ = _tmp13_; +#line 74 "../src/config.vala" + self->padding.bottom = 15 + ((gint) _tmp14_.height); +#line 356 "config.c" + } +#line 75 "../src/config.vala" + _tmp15_ = self->padding; +#line 75 "../src/config.vala" + if ((_tmp15_.smart & LIVE_CHART_AUTO_PADDING_TOP) == LIVE_CHART_AUTO_PADDING_TOP) { +#line 75 "../src/config.vala" + self->padding.top = 10; +#line 364 "config.c" + } +#line 77 "../src/config.vala" + if (legend != NULL) { +#line 368 "config.c" + LiveChartPadding _tmp17_; +#line 77 "../src/config.vala" + _tmp17_ = self->padding; +#line 77 "../src/config.vala" + _tmp16_ = (_tmp17_.smart & LIVE_CHART_AUTO_PADDING_BOTTOM) == LIVE_CHART_AUTO_PADDING_BOTTOM; +#line 374 "config.c" + } else { +#line 77 "../src/config.vala" + _tmp16_ = FALSE; +#line 378 "config.c" + } +#line 77 "../src/config.vala" + if (_tmp16_) { +#line 382 "config.c" + LiveChartPadding _tmp18_; + LiveChartBoundingBox _tmp19_ = {0}; +#line 77 "../src/config.vala" + _tmp18_ = self->padding; +#line 77 "../src/config.vala" + live_chart_drawable_get_bounding_box ((LiveChartDrawable*) legend, &_tmp19_); +#line 77 "../src/config.vala" + self->padding.bottom = (_tmp18_.bottom + ((gint) _tmp19_.height)) + 5; +#line 391 "config.c" + } +#line 79 "../src/config.vala" + _tmp20_ = self->y_axis; +#line 79 "../src/config.vala" + live_chart_config_boundaries (self, &_tmp21_); +#line 79 "../src/config.vala" + live_chart_yaxis_update (_tmp20_, _tmp21_.height); +#line 399 "config.c" +} + +static void +live_chart_config_configure_y_max_labels_extents (LiveChartConfig* self, + cairo_t* ctx) +{ + cairo_text_extents_t extents = {0}; + gboolean _tmp0_ = FALSE; + LiveChartYAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; + LiveChartYAxis* _tmp29_; + LiveChartLabels* _tmp30_; + cairo_text_extents_t _tmp31_; +#line 82 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 82 "../src/config.vala" + g_return_if_fail (ctx != NULL); +#line 84 "../src/config.vala" + _tmp1_ = self->y_axis; +#line 84 "../src/config.vala" + _tmp2_ = live_chart_yaxis_get_visible (_tmp1_); +#line 84 "../src/config.vala" + _tmp3_ = _tmp2_; +#line 84 "../src/config.vala" + if (_tmp3_) { +#line 426 "config.c" + LiveChartYAxis* _tmp4_; + LiveChartLabels* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 84 "../src/config.vala" + _tmp4_ = self->y_axis; +#line 84 "../src/config.vala" + _tmp5_ = _tmp4_->labels; +#line 84 "../src/config.vala" + _tmp6_ = live_chart_labels_get_visible (_tmp5_); +#line 84 "../src/config.vala" + _tmp7_ = _tmp6_; +#line 84 "../src/config.vala" + _tmp0_ = _tmp7_; +#line 441 "config.c" + } else { +#line 84 "../src/config.vala" + _tmp0_ = FALSE; +#line 445 "config.c" + } +#line 84 "../src/config.vala" + if (_tmp0_) { +#line 449 "config.c" + LiveChartYAxis* _tmp8_; + LiveChartLabels* _tmp9_; + LiveChartFont* _tmp10_; + LiveChartFont* _tmp11_; + const gchar* _tmp12_ = NULL; + LiveChartYAxis* _tmp13_; + const gchar* _tmp14_; + const gchar* _tmp15_; + gint _tmp16_; + gint _tmp17_; + gchar* spaces = NULL; + gchar* _tmp21_; + LiveChartYAxis* _tmp22_; + gchar* _tmp23_; + gchar* _tmp24_; + const gchar* _tmp25_; + gchar* _tmp26_; + gchar* _tmp27_; + cairo_text_extents_t _tmp28_ = {0}; +#line 85 "../src/config.vala" + _tmp8_ = self->y_axis; +#line 85 "../src/config.vala" + _tmp9_ = _tmp8_->labels; +#line 85 "../src/config.vala" + _tmp10_ = live_chart_labels_get_font (_tmp9_); +#line 85 "../src/config.vala" + _tmp11_ = _tmp10_; +#line 85 "../src/config.vala" + live_chart_font_configure (_tmp11_, ctx); +#line 87 "../src/config.vala" + _tmp13_ = self->y_axis; +#line 87 "../src/config.vala" + _tmp14_ = live_chart_yaxis_get_unit (_tmp13_); +#line 87 "../src/config.vala" + _tmp15_ = _tmp14_; +#line 87 "../src/config.vala" + _tmp16_ = strlen (_tmp15_); +#line 87 "../src/config.vala" + _tmp17_ = _tmp16_; +#line 87 "../src/config.vala" + if (_tmp17_ == 0) { +#line 87 "../src/config.vala" + _tmp12_ = "__"; +#line 493 "config.c" + } else { + LiveChartYAxis* _tmp18_; + const gchar* _tmp19_; + const gchar* _tmp20_; +#line 87 "../src/config.vala" + _tmp18_ = self->y_axis; +#line 87 "../src/config.vala" + _tmp19_ = live_chart_yaxis_get_unit (_tmp18_); +#line 87 "../src/config.vala" + _tmp20_ = _tmp19_; +#line 87 "../src/config.vala" + _tmp12_ = _tmp20_; +#line 506 "config.c" + } +#line 87 "../src/config.vala" + _tmp21_ = g_strdup (_tmp12_); +#line 87 "../src/config.vala" + spaces = _tmp21_; +#line 88 "../src/config.vala" + _tmp22_ = self->y_axis; +#line 88 "../src/config.vala" + _tmp23_ = live_chart_yaxis_get_max_displayed_value (_tmp22_); +#line 88 "../src/config.vala" + _tmp24_ = _tmp23_; +#line 88 "../src/config.vala" + _tmp25_ = spaces; +#line 88 "../src/config.vala" + _tmp26_ = g_strconcat (_tmp24_, _tmp25_, NULL); +#line 88 "../src/config.vala" + _tmp27_ = _tmp26_; +#line 88 "../src/config.vala" + cairo_text_extents (ctx, _tmp27_, &_tmp28_); +#line 88 "../src/config.vala" + extents = _tmp28_; +#line 88 "../src/config.vala" + _g_free0 (_tmp27_); +#line 88 "../src/config.vala" + _g_free0 (_tmp24_); +#line 84 "../src/config.vala" + _g_free0 (spaces); +#line 534 "config.c" + } else { +#line 90 "../src/config.vala" + memset (&extents, 0, sizeof (cairo_text_extents_t)); +#line 91 "../src/config.vala" + extents.height = 0.0; +#line 92 "../src/config.vala" + extents.width = 0.0; +#line 93 "../src/config.vala" + extents.x_advance = 0.0; +#line 94 "../src/config.vala" + extents.x_bearing = 0.0; +#line 95 "../src/config.vala" + extents.y_advance = 0.0; +#line 96 "../src/config.vala" + extents.y_bearing = 0.0; +#line 550 "config.c" + } +#line 99 "../src/config.vala" + _tmp29_ = self->y_axis; +#line 99 "../src/config.vala" + _tmp30_ = _tmp29_->labels; +#line 99 "../src/config.vala" + _tmp31_ = extents; +#line 99 "../src/config.vala" + live_chart_labels_set_extents (_tmp30_, &_tmp31_); +#line 560 "config.c" +} + +static void +live_chart_config_configure_x_max_labels_extents (LiveChartConfig* self, + cairo_t* ctx) +{ + cairo_text_extents_t extents = {0}; + gboolean _tmp0_ = FALSE; + LiveChartXAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; + LiveChartXAxis* _tmp15_; + LiveChartLabels* _tmp16_; + cairo_text_extents_t _tmp17_; +#line 102 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 102 "../src/config.vala" + g_return_if_fail (ctx != NULL); +#line 104 "../src/config.vala" + _tmp1_ = self->x_axis; +#line 104 "../src/config.vala" + _tmp2_ = live_chart_xaxis_get_visible (_tmp1_); +#line 104 "../src/config.vala" + _tmp3_ = _tmp2_; +#line 104 "../src/config.vala" + if (_tmp3_) { +#line 587 "config.c" + LiveChartXAxis* _tmp4_; + LiveChartLabels* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 104 "../src/config.vala" + _tmp4_ = self->x_axis; +#line 104 "../src/config.vala" + _tmp5_ = _tmp4_->labels; +#line 104 "../src/config.vala" + _tmp6_ = live_chart_labels_get_visible (_tmp5_); +#line 104 "../src/config.vala" + _tmp7_ = _tmp6_; +#line 104 "../src/config.vala" + _tmp0_ = _tmp7_; +#line 602 "config.c" + } else { +#line 104 "../src/config.vala" + _tmp0_ = FALSE; +#line 606 "config.c" + } +#line 104 "../src/config.vala" + if (_tmp0_) { +#line 610 "config.c" + LiveChartXAxis* _tmp8_; + LiveChartLabels* _tmp9_; + LiveChartFont* _tmp10_; + LiveChartFont* _tmp11_; + gchar* time_format = NULL; + gchar* _tmp12_; + const gchar* _tmp13_; + cairo_text_extents_t _tmp14_ = {0}; +#line 105 "../src/config.vala" + _tmp8_ = self->x_axis; +#line 105 "../src/config.vala" + _tmp9_ = _tmp8_->labels; +#line 105 "../src/config.vala" + _tmp10_ = live_chart_labels_get_font (_tmp9_); +#line 105 "../src/config.vala" + _tmp11_ = _tmp10_; +#line 105 "../src/config.vala" + live_chart_font_configure (_tmp11_, ctx); +#line 106 "../src/config.vala" + _tmp12_ = g_strdup ("00:00:00"); +#line 106 "../src/config.vala" + time_format = _tmp12_; +#line 107 "../src/config.vala" + _tmp13_ = time_format; +#line 107 "../src/config.vala" + cairo_text_extents (ctx, _tmp13_, &_tmp14_); +#line 107 "../src/config.vala" + extents = _tmp14_; +#line 104 "../src/config.vala" + _g_free0 (time_format); +#line 641 "config.c" + } else { +#line 109 "../src/config.vala" + memset (&extents, 0, sizeof (cairo_text_extents_t)); +#line 110 "../src/config.vala" + extents.height = 0.0; +#line 111 "../src/config.vala" + extents.width = 0.0; +#line 112 "../src/config.vala" + extents.x_advance = 0.0; +#line 113 "../src/config.vala" + extents.x_bearing = 0.0; +#line 114 "../src/config.vala" + extents.y_advance = 0.0; +#line 115 "../src/config.vala" + extents.y_bearing = 0.0; +#line 657 "config.c" + } +#line 118 "../src/config.vala" + _tmp15_ = self->x_axis; +#line 118 "../src/config.vala" + _tmp16_ = _tmp15_->labels; +#line 118 "../src/config.vala" + _tmp17_ = extents; +#line 118 "../src/config.vala" + live_chart_labels_set_extents (_tmp16_, &_tmp17_); +#line 667 "config.c" +} + +LiveChartConfig* +live_chart_config_construct (GType object_type) +{ + LiveChartConfig* self = NULL; +#line 42 "../src/config.vala" + self = (LiveChartConfig*) g_type_create_instance (object_type); +#line 42 "../src/config.vala" + return self; +#line 678 "config.c" +} + +LiveChartConfig* +live_chart_config_new (void) +{ +#line 42 "../src/config.vala" + return live_chart_config_construct (LIVE_CHART_TYPE_CONFIG); +#line 686 "config.c" +} + +gint +live_chart_config_get_width (LiveChartConfig* self) +{ + gint result; +#line 45 "../src/config.vala" + g_return_val_if_fail (self != NULL, 0); +#line 45 "../src/config.vala" + result = self->priv->_width; +#line 45 "../src/config.vala" + return result; +#line 699 "config.c" +} + +void +live_chart_config_set_width (LiveChartConfig* self, + gint value) +{ +#line 45 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/config.vala" + self->priv->_width = value; +#line 710 "config.c" +} + +gint +live_chart_config_get_height (LiveChartConfig* self) +{ + gint result; +#line 49 "../src/config.vala" + g_return_val_if_fail (self != NULL, 0); +#line 49 "../src/config.vala" + result = self->priv->_height; +#line 49 "../src/config.vala" + return result; +#line 723 "config.c" +} + +void +live_chart_config_set_height (LiveChartConfig* self, + gint value) +{ +#line 49 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 49 "../src/config.vala" + self->priv->_height = value; +#line 734 "config.c" +} + +static void +live_chart_value_config_init (GValue* value) +{ +#line 42 "../src/config.vala" + value->data[0].v_pointer = NULL; +#line 742 "config.c" +} + +static void +live_chart_value_config_free_value (GValue* value) +{ +#line 42 "../src/config.vala" + if (value->data[0].v_pointer) { +#line 42 "../src/config.vala" + live_chart_config_unref (value->data[0].v_pointer); +#line 752 "config.c" + } +} + +static void +live_chart_value_config_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 42 "../src/config.vala" + if (src_value->data[0].v_pointer) { +#line 42 "../src/config.vala" + dest_value->data[0].v_pointer = live_chart_config_ref (src_value->data[0].v_pointer); +#line 764 "config.c" + } else { +#line 42 "../src/config.vala" + dest_value->data[0].v_pointer = NULL; +#line 768 "config.c" + } +} + +static gpointer +live_chart_value_config_peek_pointer (const GValue* value) +{ +#line 42 "../src/config.vala" + return value->data[0].v_pointer; +#line 777 "config.c" +} + +static gchar* +live_chart_value_config_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 42 "../src/config.vala" + if (collect_values[0].v_pointer) { +#line 788 "config.c" + LiveChartConfig * object; + object = collect_values[0].v_pointer; +#line 42 "../src/config.vala" + if (object->parent_instance.g_class == NULL) { +#line 42 "../src/config.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 795 "config.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 42 "../src/config.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 799 "config.c" + } +#line 42 "../src/config.vala" + value->data[0].v_pointer = live_chart_config_ref (object); +#line 803 "config.c" + } else { +#line 42 "../src/config.vala" + value->data[0].v_pointer = NULL; +#line 807 "config.c" + } +#line 42 "../src/config.vala" + return NULL; +#line 811 "config.c" +} + +static gchar* +live_chart_value_config_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartConfig ** object_p; + object_p = collect_values[0].v_pointer; +#line 42 "../src/config.vala" + if (!object_p) { +#line 42 "../src/config.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 826 "config.c" + } +#line 42 "../src/config.vala" + if (!value->data[0].v_pointer) { +#line 42 "../src/config.vala" + *object_p = NULL; +#line 832 "config.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 42 "../src/config.vala" + *object_p = value->data[0].v_pointer; +#line 836 "config.c" + } else { +#line 42 "../src/config.vala" + *object_p = live_chart_config_ref (value->data[0].v_pointer); +#line 840 "config.c" + } +#line 42 "../src/config.vala" + return NULL; +#line 844 "config.c" +} + +GParamSpec* +live_chart_param_spec_config (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecConfig* spec; +#line 42 "../src/config.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_CONFIG), NULL); +#line 42 "../src/config.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 42 "../src/config.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 42 "../src/config.vala" + return G_PARAM_SPEC (spec); +#line 863 "config.c" +} + +gpointer +live_chart_value_get_config (const GValue* value) +{ +#line 42 "../src/config.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_CONFIG), NULL); +#line 42 "../src/config.vala" + return value->data[0].v_pointer; +#line 873 "config.c" +} + +void +live_chart_value_set_config (GValue* value, + gpointer v_object) +{ + LiveChartConfig * old; +#line 42 "../src/config.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_CONFIG)); +#line 42 "../src/config.vala" + old = value->data[0].v_pointer; +#line 42 "../src/config.vala" + if (v_object) { +#line 42 "../src/config.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_CONFIG)); +#line 42 "../src/config.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 42 "../src/config.vala" + value->data[0].v_pointer = v_object; +#line 42 "../src/config.vala" + live_chart_config_ref (value->data[0].v_pointer); +#line 895 "config.c" + } else { +#line 42 "../src/config.vala" + value->data[0].v_pointer = NULL; +#line 899 "config.c" + } +#line 42 "../src/config.vala" + if (old) { +#line 42 "../src/config.vala" + live_chart_config_unref (old); +#line 905 "config.c" + } +} + +void +live_chart_value_take_config (GValue* value, + gpointer v_object) +{ + LiveChartConfig * old; +#line 42 "../src/config.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_CONFIG)); +#line 42 "../src/config.vala" + old = value->data[0].v_pointer; +#line 42 "../src/config.vala" + if (v_object) { +#line 42 "../src/config.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_CONFIG)); +#line 42 "../src/config.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 42 "../src/config.vala" + value->data[0].v_pointer = v_object; +#line 926 "config.c" + } else { +#line 42 "../src/config.vala" + value->data[0].v_pointer = NULL; +#line 930 "config.c" + } +#line 42 "../src/config.vala" + if (old) { +#line 42 "../src/config.vala" + live_chart_config_unref (old); +#line 936 "config.c" + } +} + +static void +live_chart_config_class_init (LiveChartConfigClass * klass, + gpointer klass_data) +{ +#line 42 "../src/config.vala" + live_chart_config_parent_class = g_type_class_peek_parent (klass); +#line 42 "../src/config.vala" + ((LiveChartConfigClass *) klass)->finalize = live_chart_config_finalize; +#line 42 "../src/config.vala" + g_type_class_adjust_private_offset (klass, &LiveChartConfig_private_offset); +#line 950 "config.c" +} + +static void +live_chart_config_instance_init (LiveChartConfig * self, + gpointer klass) +{ + LiveChartYAxis* _tmp0_; + LiveChartXAxis* _tmp1_; +#line 42 "../src/config.vala" + self->priv = live_chart_config_get_instance_private (self); +#line 44 "../src/config.vala" + self->priv->_width = 0; +#line 48 "../src/config.vala" + self->priv->_height = 0; +#line 52 "../src/config.vala" + live_chart_padding_init (&self->padding); +#line 54 "../src/config.vala" + _tmp0_ = live_chart_yaxis_new (""); +#line 54 "../src/config.vala" + self->y_axis = _tmp0_; +#line 55 "../src/config.vala" + _tmp1_ = live_chart_xaxis_new (); +#line 55 "../src/config.vala" + self->x_axis = _tmp1_; +#line 42 "../src/config.vala" + self->ref_count = 1; +#line 977 "config.c" +} + +static void +live_chart_config_finalize (LiveChartConfig * obj) +{ + LiveChartConfig * self; +#line 42 "../src/config.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_CONFIG, LiveChartConfig); +#line 42 "../src/config.vala" + g_signal_handlers_destroy (self); +#line 54 "../src/config.vala" + _live_chart_yaxis_unref0 (self->y_axis); +#line 55 "../src/config.vala" + _live_chart_xaxis_unref0 (self->x_axis); +#line 57 "../src/config.vala" + _g_object_unref0 (self->categories); +#line 994 "config.c" +} + +static GType +live_chart_config_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_config_init, live_chart_value_config_free_value, live_chart_value_config_copy_value, live_chart_value_config_peek_pointer, "p", live_chart_value_config_collect_value, "p", live_chart_value_config_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartConfigClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_config_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartConfig), 0, (GInstanceInitFunc) live_chart_config_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_config_type_id; + live_chart_config_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartConfig", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartConfig_private_offset = g_type_add_instance_private (live_chart_config_type_id, sizeof (LiveChartConfigPrivate)); + return live_chart_config_type_id; +} + +GType +live_chart_config_get_type (void) +{ + static volatile gsize live_chart_config_type_id__once = 0; + if (g_once_init_enter (&live_chart_config_type_id__once)) { + GType live_chart_config_type_id; + live_chart_config_type_id = live_chart_config_get_type_once (); + g_once_init_leave (&live_chart_config_type_id__once, live_chart_config_type_id); + } + return live_chart_config_type_id__once; +} + +gpointer +live_chart_config_ref (gpointer instance) +{ + LiveChartConfig * self; + self = instance; +#line 42 "../src/config.vala" + g_atomic_int_inc (&self->ref_count); +#line 42 "../src/config.vala" + return instance; +#line 1030 "config.c" +} + +void +live_chart_config_unref (gpointer instance) +{ + LiveChartConfig * self; + self = instance; +#line 42 "../src/config.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 42 "../src/config.vala" + LIVE_CHART_CONFIG_GET_CLASS (self)->finalize (self); +#line 42 "../src/config.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 1044 "config.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/drawable.c b/iPDC/lib/liblivechart_static.a.p/drawable.c new file mode 100644 index 0000000..0296a50 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/drawable.c @@ -0,0 +1,222 @@ +/* drawable.c generated by valac 0.56.0, the Vala compiler + * generated from drawable.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include + +static GType live_chart_drawable_get_type_once (void); +static GType live_chart_colorable_get_type_once (void); + +LiveChartBoundingBox* +live_chart_bounding_box_dup (const LiveChartBoundingBox* self) +{ + LiveChartBoundingBox* dup; +#line 4 "../src/drawable.vala" + dup = g_new0 (LiveChartBoundingBox, 1); +#line 4 "../src/drawable.vala" + memcpy (dup, self, sizeof (LiveChartBoundingBox)); +#line 4 "../src/drawable.vala" + return dup; +#line 23 "drawable.c" +} + +void +live_chart_bounding_box_free (LiveChartBoundingBox* self) +{ +#line 4 "../src/drawable.vala" + g_free (self); +#line 31 "drawable.c" +} + +static GType +live_chart_bounding_box_get_type_once (void) +{ + GType live_chart_bounding_box_type_id; + live_chart_bounding_box_type_id = g_boxed_type_register_static ("LiveChartBoundingBox", (GBoxedCopyFunc) live_chart_bounding_box_dup, (GBoxedFreeFunc) live_chart_bounding_box_free); + return live_chart_bounding_box_type_id; +} + +GType +live_chart_bounding_box_get_type (void) +{ + static volatile gsize live_chart_bounding_box_type_id__once = 0; + if (g_once_init_enter (&live_chart_bounding_box_type_id__once)) { + GType live_chart_bounding_box_type_id; + live_chart_bounding_box_type_id = live_chart_bounding_box_get_type_once (); + g_once_init_leave (&live_chart_bounding_box_type_id__once, live_chart_bounding_box_type_id); + } + return live_chart_bounding_box_type_id__once; +} + +void +live_chart_drawable_draw (LiveChartDrawable* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartDrawableIface* _iface_; +#line 13 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 13 "../src/drawable.vala" + _iface_ = LIVE_CHART_DRAWABLE_GET_INTERFACE (self); +#line 13 "../src/drawable.vala" + if (_iface_->draw) { +#line 13 "../src/drawable.vala" + _iface_->draw (self, ctx, config); +#line 68 "drawable.c" + } +} + +void +live_chart_drawable_get_bounding_box (LiveChartDrawable* self, + LiveChartBoundingBox* result) +{ + LiveChartDrawableIface* _iface_; +#line 15 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 15 "../src/drawable.vala" + _iface_ = LIVE_CHART_DRAWABLE_GET_INTERFACE (self); +#line 15 "../src/drawable.vala" + if (_iface_->get_bounding_box) { +#line 15 "../src/drawable.vala" + _iface_->get_bounding_box (self, result); +#line 85 "drawable.c" + } +} + +gboolean +live_chart_drawable_get_visible (LiveChartDrawable* self) +{ + LiveChartDrawableIface* _iface_; +#line 11 "../src/drawable.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 11 "../src/drawable.vala" + _iface_ = LIVE_CHART_DRAWABLE_GET_INTERFACE (self); +#line 11 "../src/drawable.vala" + if (_iface_->get_visible) { +#line 11 "../src/drawable.vala" + return _iface_->get_visible (self); +#line 101 "drawable.c" + } +#line 11 "../src/drawable.vala" + return FALSE; +#line 105 "drawable.c" +} + +void +live_chart_drawable_set_visible (LiveChartDrawable* self, + gboolean value) +{ + LiveChartDrawableIface* _iface_; +#line 11 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 11 "../src/drawable.vala" + _iface_ = LIVE_CHART_DRAWABLE_GET_INTERFACE (self); +#line 11 "../src/drawable.vala" + if (_iface_->set_visible) { +#line 11 "../src/drawable.vala" + _iface_->set_visible (self, value); +#line 121 "drawable.c" + } +} + +static void +live_chart_drawable_default_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 10 "../src/drawable.vala" + g_object_interface_install_property (iface, g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 131 "drawable.c" +} + +static GType +live_chart_drawable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartDrawableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_drawable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType live_chart_drawable_type_id; + live_chart_drawable_type_id = g_type_register_static (G_TYPE_INTERFACE, "LiveChartDrawable", &g_define_type_info, 0); + g_type_interface_add_prerequisite (live_chart_drawable_type_id, G_TYPE_OBJECT); + return live_chart_drawable_type_id; +} + +GType +live_chart_drawable_get_type (void) +{ + static volatile gsize live_chart_drawable_type_id__once = 0; + if (g_once_init_enter (&live_chart_drawable_type_id__once)) { + GType live_chart_drawable_type_id; + live_chart_drawable_type_id = live_chart_drawable_get_type_once (); + g_once_init_leave (&live_chart_drawable_type_id__once, live_chart_drawable_type_id); + } + return live_chart_drawable_type_id__once; +} + +void +live_chart_colorable_get_main_color (LiveChartColorable* self, + GdkRGBA * result) +{ + LiveChartColorableIface* _iface_; +#line 22 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/drawable.vala" + _iface_ = LIVE_CHART_COLORABLE_GET_INTERFACE (self); +#line 22 "../src/drawable.vala" + if (_iface_->get_main_color) { +#line 22 "../src/drawable.vala" + _iface_->get_main_color (self, result); +#line 169 "drawable.c" + } +#line 22 "../src/drawable.vala" + return; +#line 173 "drawable.c" +} + +void +live_chart_colorable_set_main_color (LiveChartColorable* self, + GdkRGBA * value) +{ + LiveChartColorableIface* _iface_; +#line 22 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/drawable.vala" + _iface_ = LIVE_CHART_COLORABLE_GET_INTERFACE (self); +#line 22 "../src/drawable.vala" + if (_iface_->set_main_color) { +#line 22 "../src/drawable.vala" + _iface_->set_main_color (self, value); +#line 189 "drawable.c" + } +} + +static void +live_chart_colorable_default_init (LiveChartColorableIface * iface, + gpointer iface_data) +{ +#line 20 "../src/drawable.vala" + g_object_interface_install_property (iface, g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_DEPRECATED)); +#line 199 "drawable.c" +} + +static GType +live_chart_colorable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartColorableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_colorable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType live_chart_colorable_type_id; + live_chart_colorable_type_id = g_type_register_static (G_TYPE_INTERFACE, "LiveChartColorable", &g_define_type_info, 0); + g_type_interface_add_prerequisite (live_chart_colorable_type_id, G_TYPE_OBJECT); + return live_chart_colorable_type_id; +} + +GType +live_chart_colorable_get_type (void) +{ + static volatile gsize live_chart_colorable_type_id__once = 0; + if (g_once_init_enter (&live_chart_colorable_type_id__once)) { + GType live_chart_colorable_type_id; + live_chart_colorable_type_id = live_chart_colorable_get_type_once (); + g_once_init_leave (&live_chart_colorable_type_id__once, live_chart_colorable_type_id); + } + return live_chart_colorable_type_id__once; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/font.c b/iPDC/lib/liblivechart_static.a.p/font.c new file mode 100644 index 0000000..1fb7719 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/font.c @@ -0,0 +1,544 @@ +/* font.c generated by valac 0.56.0, the Vala compiler + * generated from font.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#define _g_free0(var) (var = (g_free (var), NULL)) +typedef struct _LiveChartParamSpecFont LiveChartParamSpecFont; + +struct _LiveChartFontPrivate { + guint8 _size; + gchar* _face; + cairo_font_slant_t _slant; + cairo_font_weight_t _weight; + GdkRGBA _color; +}; + +struct _LiveChartParamSpecFont { + GParamSpec parent_instance; +}; + +static gint LiveChartFont_private_offset; +static gpointer live_chart_font_parent_class = NULL; + +static void live_chart_font_finalize (LiveChartFont * obj); +static GType live_chart_font_get_type_once (void); + +static inline gpointer +live_chart_font_get_instance_private (LiveChartFont* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartFont_private_offset); +} + +LiveChartFont* +live_chart_font_construct (GType object_type) +{ + LiveChartFont* self = NULL; + GdkRGBA _tmp0_ = {0}; +#line 12 "../src/font.vala" + self = (LiveChartFont*) g_type_create_instance (object_type); +#line 13 "../src/font.vala" + live_chart_font_set_size (self, (guint8) 10); +#line 14 "../src/font.vala" + live_chart_font_set_face (self, "Sans serif"); +#line 15 "../src/font.vala" + live_chart_font_set_slant (self, CAIRO_FONT_SLANT_NORMAL); +#line 16 "../src/font.vala" + live_chart_font_set_weight (self, CAIRO_FONT_WEIGHT_NORMAL); +#line 17 "../src/font.vala" + _tmp0_.red = 0.4; +#line 17 "../src/font.vala" + _tmp0_.green = 0.4; +#line 17 "../src/font.vala" + _tmp0_.blue = 0.4; +#line 17 "../src/font.vala" + _tmp0_.alpha = 1.0; +#line 17 "../src/font.vala" + live_chart_font_set_color (self, &_tmp0_); +#line 12 "../src/font.vala" + return self; +#line 69 "font.c" +} + +LiveChartFont* +live_chart_font_new (void) +{ +#line 12 "../src/font.vala" + return live_chart_font_construct (LIVE_CHART_TYPE_FONT); +#line 77 "font.c" +} + +void +live_chart_font_configure (LiveChartFont* self, + cairo_t* ctx) +{ + const gchar* _tmp0_; + cairo_font_slant_t _tmp1_; + cairo_font_weight_t _tmp2_; + guint8 _tmp3_; + GdkRGBA _tmp4_; + GdkRGBA _tmp5_; + GdkRGBA _tmp6_; + GdkRGBA _tmp7_; +#line 20 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 20 "../src/font.vala" + g_return_if_fail (ctx != NULL); +#line 21 "../src/font.vala" + _tmp0_ = self->priv->_face; +#line 21 "../src/font.vala" + _tmp1_ = self->priv->_slant; +#line 21 "../src/font.vala" + _tmp2_ = self->priv->_weight; +#line 21 "../src/font.vala" + cairo_select_font_face (ctx, _tmp0_, _tmp1_, _tmp2_); +#line 22 "../src/font.vala" + _tmp3_ = self->priv->_size; +#line 22 "../src/font.vala" + cairo_set_font_size (ctx, (gdouble) _tmp3_); +#line 23 "../src/font.vala" + _tmp4_ = self->priv->_color; +#line 23 "../src/font.vala" + _tmp5_ = self->priv->_color; +#line 23 "../src/font.vala" + _tmp6_ = self->priv->_color; +#line 23 "../src/font.vala" + _tmp7_ = self->priv->_color; +#line 23 "../src/font.vala" + cairo_set_source_rgba (ctx, _tmp4_.red, _tmp5_.green, _tmp6_.blue, _tmp7_.alpha); +#line 118 "font.c" +} + +guint8 +live_chart_font_get_size (LiveChartFont* self) +{ + guint8 result; +#line 6 "../src/font.vala" + g_return_val_if_fail (self != NULL, 0U); +#line 6 "../src/font.vala" + result = self->priv->_size; +#line 6 "../src/font.vala" + return result; +#line 131 "font.c" +} + +void +live_chart_font_set_size (LiveChartFont* self, + guint8 value) +{ +#line 6 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/font.vala" + self->priv->_size = value; +#line 142 "font.c" +} + +const gchar* +live_chart_font_get_face (LiveChartFont* self) +{ + const gchar* result; + const gchar* _tmp0_; +#line 7 "../src/font.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 7 "../src/font.vala" + _tmp0_ = self->priv->_face; +#line 7 "../src/font.vala" + result = _tmp0_; +#line 7 "../src/font.vala" + return result; +#line 158 "font.c" +} + +void +live_chart_font_set_face (LiveChartFont* self, + const gchar* value) +{ + gchar* _tmp0_; +#line 7 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/font.vala" + _tmp0_ = g_strdup (value); +#line 7 "../src/font.vala" + _g_free0 (self->priv->_face); +#line 7 "../src/font.vala" + self->priv->_face = _tmp0_; +#line 174 "font.c" +} + +cairo_font_slant_t +live_chart_font_get_slant (LiveChartFont* self) +{ + cairo_font_slant_t result; +#line 8 "../src/font.vala" + g_return_val_if_fail (self != NULL, 0); +#line 8 "../src/font.vala" + result = self->priv->_slant; +#line 8 "../src/font.vala" + return result; +#line 187 "font.c" +} + +void +live_chart_font_set_slant (LiveChartFont* self, + cairo_font_slant_t value) +{ +#line 8 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 8 "../src/font.vala" + self->priv->_slant = value; +#line 198 "font.c" +} + +cairo_font_weight_t +live_chart_font_get_weight (LiveChartFont* self) +{ + cairo_font_weight_t result; +#line 9 "../src/font.vala" + g_return_val_if_fail (self != NULL, 0); +#line 9 "../src/font.vala" + result = self->priv->_weight; +#line 9 "../src/font.vala" + return result; +#line 211 "font.c" +} + +void +live_chart_font_set_weight (LiveChartFont* self, + cairo_font_weight_t value) +{ +#line 9 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/font.vala" + self->priv->_weight = value; +#line 222 "font.c" +} + +void +live_chart_font_get_color (LiveChartFont* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 10 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/font.vala" + _tmp0_ = self->priv->_color; +#line 10 "../src/font.vala" + *result = _tmp0_; +#line 10 "../src/font.vala" + return; +#line 238 "font.c" +} + +void +live_chart_font_set_color (LiveChartFont* self, + GdkRGBA * value) +{ + GdkRGBA _tmp0_; +#line 10 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/font.vala" + _tmp0_ = *value; +#line 10 "../src/font.vala" + self->priv->_color = _tmp0_; +#line 252 "font.c" +} + +static void +live_chart_value_font_init (GValue* value) +{ +#line 5 "../src/font.vala" + value->data[0].v_pointer = NULL; +#line 260 "font.c" +} + +static void +live_chart_value_font_free_value (GValue* value) +{ +#line 5 "../src/font.vala" + if (value->data[0].v_pointer) { +#line 5 "../src/font.vala" + live_chart_font_unref (value->data[0].v_pointer); +#line 270 "font.c" + } +} + +static void +live_chart_value_font_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 5 "../src/font.vala" + if (src_value->data[0].v_pointer) { +#line 5 "../src/font.vala" + dest_value->data[0].v_pointer = live_chart_font_ref (src_value->data[0].v_pointer); +#line 282 "font.c" + } else { +#line 5 "../src/font.vala" + dest_value->data[0].v_pointer = NULL; +#line 286 "font.c" + } +} + +static gpointer +live_chart_value_font_peek_pointer (const GValue* value) +{ +#line 5 "../src/font.vala" + return value->data[0].v_pointer; +#line 295 "font.c" +} + +static gchar* +live_chart_value_font_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 5 "../src/font.vala" + if (collect_values[0].v_pointer) { +#line 306 "font.c" + LiveChartFont * object; + object = collect_values[0].v_pointer; +#line 5 "../src/font.vala" + if (object->parent_instance.g_class == NULL) { +#line 5 "../src/font.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 313 "font.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 5 "../src/font.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 317 "font.c" + } +#line 5 "../src/font.vala" + value->data[0].v_pointer = live_chart_font_ref (object); +#line 321 "font.c" + } else { +#line 5 "../src/font.vala" + value->data[0].v_pointer = NULL; +#line 325 "font.c" + } +#line 5 "../src/font.vala" + return NULL; +#line 329 "font.c" +} + +static gchar* +live_chart_value_font_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartFont ** object_p; + object_p = collect_values[0].v_pointer; +#line 5 "../src/font.vala" + if (!object_p) { +#line 5 "../src/font.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 344 "font.c" + } +#line 5 "../src/font.vala" + if (!value->data[0].v_pointer) { +#line 5 "../src/font.vala" + *object_p = NULL; +#line 350 "font.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 5 "../src/font.vala" + *object_p = value->data[0].v_pointer; +#line 354 "font.c" + } else { +#line 5 "../src/font.vala" + *object_p = live_chart_font_ref (value->data[0].v_pointer); +#line 358 "font.c" + } +#line 5 "../src/font.vala" + return NULL; +#line 362 "font.c" +} + +GParamSpec* +live_chart_param_spec_font (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecFont* spec; +#line 5 "../src/font.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_FONT), NULL); +#line 5 "../src/font.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 5 "../src/font.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 5 "../src/font.vala" + return G_PARAM_SPEC (spec); +#line 381 "font.c" +} + +gpointer +live_chart_value_get_font (const GValue* value) +{ +#line 5 "../src/font.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_FONT), NULL); +#line 5 "../src/font.vala" + return value->data[0].v_pointer; +#line 391 "font.c" +} + +void +live_chart_value_set_font (GValue* value, + gpointer v_object) +{ + LiveChartFont * old; +#line 5 "../src/font.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_FONT)); +#line 5 "../src/font.vala" + old = value->data[0].v_pointer; +#line 5 "../src/font.vala" + if (v_object) { +#line 5 "../src/font.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_FONT)); +#line 5 "../src/font.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 5 "../src/font.vala" + value->data[0].v_pointer = v_object; +#line 5 "../src/font.vala" + live_chart_font_ref (value->data[0].v_pointer); +#line 413 "font.c" + } else { +#line 5 "../src/font.vala" + value->data[0].v_pointer = NULL; +#line 417 "font.c" + } +#line 5 "../src/font.vala" + if (old) { +#line 5 "../src/font.vala" + live_chart_font_unref (old); +#line 423 "font.c" + } +} + +void +live_chart_value_take_font (GValue* value, + gpointer v_object) +{ + LiveChartFont * old; +#line 5 "../src/font.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_FONT)); +#line 5 "../src/font.vala" + old = value->data[0].v_pointer; +#line 5 "../src/font.vala" + if (v_object) { +#line 5 "../src/font.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_FONT)); +#line 5 "../src/font.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 5 "../src/font.vala" + value->data[0].v_pointer = v_object; +#line 444 "font.c" + } else { +#line 5 "../src/font.vala" + value->data[0].v_pointer = NULL; +#line 448 "font.c" + } +#line 5 "../src/font.vala" + if (old) { +#line 5 "../src/font.vala" + live_chart_font_unref (old); +#line 454 "font.c" + } +} + +static void +live_chart_font_class_init (LiveChartFontClass * klass, + gpointer klass_data) +{ +#line 5 "../src/font.vala" + live_chart_font_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/font.vala" + ((LiveChartFontClass *) klass)->finalize = live_chart_font_finalize; +#line 5 "../src/font.vala" + g_type_class_adjust_private_offset (klass, &LiveChartFont_private_offset); +#line 468 "font.c" +} + +static void +live_chart_font_instance_init (LiveChartFont * self, + gpointer klass) +{ +#line 5 "../src/font.vala" + self->priv = live_chart_font_get_instance_private (self); +#line 5 "../src/font.vala" + self->ref_count = 1; +#line 479 "font.c" +} + +static void +live_chart_font_finalize (LiveChartFont * obj) +{ + LiveChartFont * self; +#line 5 "../src/font.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_FONT, LiveChartFont); +#line 5 "../src/font.vala" + g_signal_handlers_destroy (self); +#line 7 "../src/font.vala" + _g_free0 (self->priv->_face); +#line 492 "font.c" +} + +static GType +live_chart_font_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_font_init, live_chart_value_font_free_value, live_chart_value_font_copy_value, live_chart_value_font_peek_pointer, "p", live_chart_value_font_collect_value, "p", live_chart_value_font_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartFontClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_font_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartFont), 0, (GInstanceInitFunc) live_chart_font_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_font_type_id; + live_chart_font_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartFont", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartFont_private_offset = g_type_add_instance_private (live_chart_font_type_id, sizeof (LiveChartFontPrivate)); + return live_chart_font_type_id; +} + +GType +live_chart_font_get_type (void) +{ + static volatile gsize live_chart_font_type_id__once = 0; + if (g_once_init_enter (&live_chart_font_type_id__once)) { + GType live_chart_font_type_id; + live_chart_font_type_id = live_chart_font_get_type_once (); + g_once_init_leave (&live_chart_font_type_id__once, live_chart_font_type_id); + } + return live_chart_font_type_id__once; +} + +gpointer +live_chart_font_ref (gpointer instance) +{ + LiveChartFont * self; + self = instance; +#line 5 "../src/font.vala" + g_atomic_int_inc (&self->ref_count); +#line 5 "../src/font.vala" + return instance; +#line 528 "font.c" +} + +void +live_chart_font_unref (gpointer instance) +{ + LiveChartFont * self; + self = instance; +#line 5 "../src/font.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 5 "../src/font.vala" + LIVE_CHART_FONT_GET_CLASS (self)->finalize (self); +#line 5 "../src/font.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 542 "font.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/geometry.c b/iPDC/lib/liblivechart_static.a.p/geometry.c new file mode 100644 index 0000000..091dcd1 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/geometry.c @@ -0,0 +1,213 @@ +/* geometry.c generated by valac 0.56.0, the Vala compiler + * generated from geometry.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include + +LiveChartCoord* +live_chart_coord_dup (const LiveChartCoord* self) +{ + LiveChartCoord* dup; +#line 2 "../src/geometry.vala" + dup = g_new0 (LiveChartCoord, 1); +#line 2 "../src/geometry.vala" + memcpy (dup, self, sizeof (LiveChartCoord)); +#line 2 "../src/geometry.vala" + return dup; +#line 21 "geometry.c" +} + +void +live_chart_coord_free (LiveChartCoord* self) +{ +#line 2 "../src/geometry.vala" + g_free (self); +#line 29 "geometry.c" +} + +static GType +live_chart_coord_get_type_once (void) +{ + GType live_chart_coord_type_id; + live_chart_coord_type_id = g_boxed_type_register_static ("LiveChartCoord", (GBoxedCopyFunc) live_chart_coord_dup, (GBoxedFreeFunc) live_chart_coord_free); + return live_chart_coord_type_id; +} + +GType +live_chart_coord_get_type (void) +{ + static volatile gsize live_chart_coord_type_id__once = 0; + if (g_once_init_enter (&live_chart_coord_type_id__once)) { + GType live_chart_coord_type_id; + live_chart_coord_type_id = live_chart_coord_get_type_once (); + g_once_init_leave (&live_chart_coord_type_id__once, live_chart_coord_type_id); + } + return live_chart_coord_type_id__once; +} + +LiveChartSegment* +live_chart_segment_dup (const LiveChartSegment* self) +{ + LiveChartSegment* dup; +#line 7 "../src/geometry.vala" + dup = g_new0 (LiveChartSegment, 1); +#line 7 "../src/geometry.vala" + memcpy (dup, self, sizeof (LiveChartSegment)); +#line 7 "../src/geometry.vala" + return dup; +#line 62 "geometry.c" +} + +void +live_chart_segment_free (LiveChartSegment* self) +{ +#line 7 "../src/geometry.vala" + g_free (self); +#line 70 "geometry.c" +} + +static GType +live_chart_segment_get_type_once (void) +{ + GType live_chart_segment_type_id; + live_chart_segment_type_id = g_boxed_type_register_static ("LiveChartSegment", (GBoxedCopyFunc) live_chart_segment_dup, (GBoxedFreeFunc) live_chart_segment_free); + return live_chart_segment_type_id; +} + +GType +live_chart_segment_get_type (void) +{ + static volatile gsize live_chart_segment_type_id__once = 0; + if (g_once_init_enter (&live_chart_segment_type_id__once)) { + GType live_chart_segment_type_id; + live_chart_segment_type_id = live_chart_segment_get_type_once (); + g_once_init_leave (&live_chart_segment_type_id__once, live_chart_segment_type_id); + } + return live_chart_segment_type_id__once; +} + +LiveChartBezierCurve* +live_chart_bezier_curve_dup (const LiveChartBezierCurve* self) +{ + LiveChartBezierCurve* dup; +#line 11 "../src/geometry.vala" + dup = g_new0 (LiveChartBezierCurve, 1); +#line 11 "../src/geometry.vala" + memcpy (dup, self, sizeof (LiveChartBezierCurve)); +#line 11 "../src/geometry.vala" + return dup; +#line 103 "geometry.c" +} + +void +live_chart_bezier_curve_free (LiveChartBezierCurve* self) +{ +#line 11 "../src/geometry.vala" + g_free (self); +#line 111 "geometry.c" +} + +static GType +live_chart_bezier_curve_get_type_once (void) +{ + GType live_chart_bezier_curve_type_id; + live_chart_bezier_curve_type_id = g_boxed_type_register_static ("LiveChartBezierCurve", (GBoxedCopyFunc) live_chart_bezier_curve_dup, (GBoxedFreeFunc) live_chart_bezier_curve_free); + return live_chart_bezier_curve_type_id; +} + +GType +live_chart_bezier_curve_get_type (void) +{ + static volatile gsize live_chart_bezier_curve_type_id__once = 0; + if (g_once_init_enter (&live_chart_bezier_curve_type_id__once)) { + GType live_chart_bezier_curve_type_id; + live_chart_bezier_curve_type_id = live_chart_bezier_curve_get_type_once (); + g_once_init_leave (&live_chart_bezier_curve_type_id__once, live_chart_bezier_curve_type_id); + } + return live_chart_bezier_curve_type_id__once; +} + +void +live_chart_build_bezier_curve_from_points (LiveChartPoint* previous, + LiveChartPoint* target, + LiveChartBezierCurve* result) +{ + gdouble pressure = 0.0; + LiveChartPoint _tmp0_; + LiveChartPoint _tmp1_; + LiveChartBezierCurve bezier = {0}; + LiveChartPoint _tmp2_; + LiveChartPoint _tmp3_; + LiveChartCoord _tmp4_ = {0}; + LiveChartPoint _tmp5_; + LiveChartPoint _tmp6_; + LiveChartCoord _tmp7_ = {0}; + LiveChartPoint _tmp8_; + LiveChartPoint _tmp9_; + LiveChartCoord _tmp10_ = {0}; + LiveChartPoint _tmp11_; + LiveChartPoint _tmp12_; + LiveChartCoord _tmp13_ = {0}; + LiveChartBezierCurve _tmp14_ = {0}; +#line 18 "../src/geometry.vala" + g_return_if_fail (previous != NULL); +#line 18 "../src/geometry.vala" + g_return_if_fail (target != NULL); +#line 19 "../src/geometry.vala" + _tmp0_ = *target; +#line 19 "../src/geometry.vala" + _tmp1_ = *previous; +#line 19 "../src/geometry.vala" + pressure = (_tmp0_.x - _tmp1_.x) / 2.0; +#line 20 "../src/geometry.vala" + _tmp2_ = *previous; +#line 20 "../src/geometry.vala" + _tmp3_ = *previous; +#line 20 "../src/geometry.vala" + _tmp4_.x = _tmp2_.x; +#line 20 "../src/geometry.vala" + _tmp4_.y = _tmp3_.y; +#line 20 "../src/geometry.vala" + _tmp5_ = *previous; +#line 20 "../src/geometry.vala" + _tmp6_ = *previous; +#line 20 "../src/geometry.vala" + _tmp7_.x = _tmp5_.x + pressure; +#line 20 "../src/geometry.vala" + _tmp7_.y = _tmp6_.y; +#line 20 "../src/geometry.vala" + _tmp8_ = *target; +#line 20 "../src/geometry.vala" + _tmp9_ = *target; +#line 20 "../src/geometry.vala" + _tmp10_.x = _tmp8_.x - pressure; +#line 20 "../src/geometry.vala" + _tmp10_.y = _tmp9_.y; +#line 20 "../src/geometry.vala" + _tmp11_ = *target; +#line 20 "../src/geometry.vala" + _tmp12_ = *target; +#line 20 "../src/geometry.vala" + _tmp13_.x = _tmp11_.x; +#line 20 "../src/geometry.vala" + _tmp13_.y = _tmp12_.y; +#line 20 "../src/geometry.vala" + _tmp14_.c0 = _tmp4_; +#line 20 "../src/geometry.vala" + _tmp14_.c1 = _tmp7_; +#line 20 "../src/geometry.vala" + _tmp14_.c2 = _tmp10_; +#line 20 "../src/geometry.vala" + _tmp14_.c3 = _tmp13_; +#line 20 "../src/geometry.vala" + bezier = _tmp14_; +#line 39 "../src/geometry.vala" + *result = bezier; +#line 39 "../src/geometry.vala" + return; +#line 212 "geometry.c" +} + diff --git a/iPDC/lib/liblivechart_static.a.p/grid.c b/iPDC/lib/liblivechart_static.a.p/grid.c new file mode 100644 index 0000000..1762abb --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/grid.c @@ -0,0 +1,1286 @@ +/* grid.c generated by valac 0.56.0, the Vala compiler + * generated from grid.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_GRID_0_PROPERTY, + LIVE_CHART_GRID_VISIBLE_PROPERTY, + LIVE_CHART_GRID_MAIN_COLOR_PROPERTY, + LIVE_CHART_GRID_NUM_PROPERTIES +}; +static GParamSpec* live_chart_grid_properties[LIVE_CHART_GRID_NUM_PROPERTIES]; +#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL))) +#define _g_time_zone_unref0(var) ((var == NULL) ? NULL : (var = (g_time_zone_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartGridPrivate { + gboolean _visible; + GdkRGBA _main_color; +}; + +static gint LiveChartGrid_private_offset; +static gpointer live_chart_grid_parent_class = NULL; +static LiveChartDrawableIface * live_chart_grid_live_chart_drawable_parent_iface = NULL; + +static void live_chart_grid_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_grid_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_grid_finalize (GObject * obj); +static GType live_chart_grid_get_type_once (void); +static void _vala_live_chart_grid_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_grid_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_grid_get_instance_private (LiveChartGrid* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartGrid_private_offset); +} + +static void +live_chart_grid_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartGrid * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 24 "../src/grid.vala" + self = (LiveChartGrid*) base; +#line 24 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 24 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 25 "../src/grid.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 25 "../src/grid.vala" + _tmp1_ = _tmp0_; +#line 25 "../src/grid.vala" + if (_tmp1_) { +#line 26 "../src/grid.vala" + live_chart_grid_render_abscissa (self, ctx, config); +#line 27 "../src/grid.vala" + live_chart_grid_render_ordinate (self, ctx, config); +#line 28 "../src/grid.vala" + live_chart_grid_render_grid (self, ctx, config); +#line 29 "../src/grid.vala" + live_chart_grid_update_bounding_box (self, config); +#line 30 "../src/grid.vala" + live_chart_grid_debug (self, ctx); +#line 90 "grid.c" + } +} + +static void +live_chart_grid_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartGrid * self; + LiveChartBoundingBox _tmp0_; +#line 34 "../src/grid.vala" + self = (LiveChartGrid*) base; +#line 35 "../src/grid.vala" + _tmp0_ = self->bounding_box; +#line 35 "../src/grid.vala" + *result = _tmp0_; +#line 35 "../src/grid.vala" + return; +#line 108 "grid.c" +} + +void +live_chart_grid_restore (LiveChartGrid* self, + cairo_t* ctx) +{ + GdkRGBA _tmp0_; + GdkRGBA _tmp1_; + GdkRGBA _tmp2_; + GdkRGBA _tmp3_; +#line 38 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 38 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 39 "../src/grid.vala" + _tmp0_ = self->priv->_main_color; +#line 39 "../src/grid.vala" + _tmp1_ = self->priv->_main_color; +#line 39 "../src/grid.vala" + _tmp2_ = self->priv->_main_color; +#line 39 "../src/grid.vala" + _tmp3_ = self->priv->_main_color; +#line 39 "../src/grid.vala" + cairo_set_source_rgba (ctx, _tmp0_.red, _tmp1_.green, _tmp2_.blue, _tmp3_.alpha); +#line 40 "../src/grid.vala" + cairo_set_line_width (ctx, 0.5); +#line 41 "../src/grid.vala" + cairo_set_dash (ctx, NULL, (gint) 0, 0.0); +#line 137 "grid.c" +} + +void +live_chart_grid_render_abscissa (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gboolean _tmp0_ = FALSE; + LiveChartXAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; +#line 44 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 44 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 44 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 45 "../src/grid.vala" + _tmp1_ = config->x_axis; +#line 45 "../src/grid.vala" + _tmp2_ = live_chart_xaxis_get_visible (_tmp1_); +#line 45 "../src/grid.vala" + _tmp3_ = _tmp2_; +#line 45 "../src/grid.vala" + if (_tmp3_) { +#line 163 "grid.c" + LiveChartXAxis* _tmp4_; + LiveChartPath* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 45 "../src/grid.vala" + _tmp4_ = config->x_axis; +#line 45 "../src/grid.vala" + _tmp5_ = _tmp4_->axis; +#line 45 "../src/grid.vala" + _tmp6_ = live_chart_path_get_visible (_tmp5_); +#line 45 "../src/grid.vala" + _tmp7_ = _tmp6_; +#line 45 "../src/grid.vala" + _tmp0_ = _tmp7_; +#line 178 "grid.c" + } else { +#line 45 "../src/grid.vala" + _tmp0_ = FALSE; +#line 182 "grid.c" + } +#line 45 "../src/grid.vala" + if (_tmp0_) { +#line 186 "grid.c" + LiveChartXAxis* _tmp8_; + LiveChartPath* _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + gint _tmp12_; + LiveChartPadding _tmp13_; + gint _tmp14_; + gint _tmp15_; + LiveChartPadding _tmp16_; + gint _tmp17_; + gint _tmp18_; + LiveChartPadding _tmp19_; +#line 46 "../src/grid.vala" + _tmp8_ = config->x_axis; +#line 46 "../src/grid.vala" + _tmp9_ = _tmp8_->axis; +#line 46 "../src/grid.vala" + live_chart_path_configure (_tmp9_, ctx); +#line 47 "../src/grid.vala" + _tmp10_ = config->padding; +#line 47 "../src/grid.vala" + _tmp11_ = live_chart_config_get_height (config); +#line 47 "../src/grid.vala" + _tmp12_ = _tmp11_; +#line 47 "../src/grid.vala" + _tmp13_ = config->padding; +#line 47 "../src/grid.vala" + cairo_move_to (ctx, _tmp10_.left + 0.5, (_tmp12_ - _tmp13_.bottom) + 0.5); +#line 48 "../src/grid.vala" + _tmp14_ = live_chart_config_get_width (config); +#line 48 "../src/grid.vala" + _tmp15_ = _tmp14_; +#line 48 "../src/grid.vala" + _tmp16_ = config->padding; +#line 48 "../src/grid.vala" + _tmp17_ = live_chart_config_get_height (config); +#line 48 "../src/grid.vala" + _tmp18_ = _tmp17_; +#line 48 "../src/grid.vala" + _tmp19_ = config->padding; +#line 48 "../src/grid.vala" + cairo_line_to (ctx, (_tmp15_ - _tmp16_.right) + 0.5, (_tmp18_ - _tmp19_.bottom) + 0.5); +#line 49 "../src/grid.vala" + cairo_stroke (ctx); +#line 50 "../src/grid.vala" + live_chart_grid_restore (self, ctx); +#line 233 "grid.c" + } +} + +void +live_chart_grid_render_ordinate (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gboolean _tmp0_ = FALSE; + LiveChartYAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; +#line 54 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 54 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 54 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 55 "../src/grid.vala" + _tmp1_ = config->y_axis; +#line 55 "../src/grid.vala" + _tmp2_ = live_chart_yaxis_get_visible (_tmp1_); +#line 55 "../src/grid.vala" + _tmp3_ = _tmp2_; +#line 55 "../src/grid.vala" + if (_tmp3_) { +#line 260 "grid.c" + LiveChartYAxis* _tmp4_; + LiveChartPath* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 55 "../src/grid.vala" + _tmp4_ = config->y_axis; +#line 55 "../src/grid.vala" + _tmp5_ = _tmp4_->axis; +#line 55 "../src/grid.vala" + _tmp6_ = live_chart_path_get_visible (_tmp5_); +#line 55 "../src/grid.vala" + _tmp7_ = _tmp6_; +#line 55 "../src/grid.vala" + _tmp0_ = _tmp7_; +#line 275 "grid.c" + } else { +#line 55 "../src/grid.vala" + _tmp0_ = FALSE; +#line 279 "grid.c" + } +#line 55 "../src/grid.vala" + if (_tmp0_) { +#line 283 "grid.c" + LiveChartYAxis* _tmp8_; + LiveChartPath* _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + gint _tmp12_; + LiveChartPadding _tmp13_; + LiveChartPadding _tmp14_; + LiveChartPadding _tmp15_; +#line 56 "../src/grid.vala" + _tmp8_ = config->y_axis; +#line 56 "../src/grid.vala" + _tmp9_ = _tmp8_->axis; +#line 56 "../src/grid.vala" + live_chart_path_configure (_tmp9_, ctx); +#line 57 "../src/grid.vala" + _tmp10_ = config->padding; +#line 57 "../src/grid.vala" + _tmp11_ = live_chart_config_get_height (config); +#line 57 "../src/grid.vala" + _tmp12_ = _tmp11_; +#line 57 "../src/grid.vala" + _tmp13_ = config->padding; +#line 57 "../src/grid.vala" + cairo_move_to (ctx, _tmp10_.left + 0.5, (_tmp12_ - _tmp13_.bottom) + 0.5); +#line 58 "../src/grid.vala" + _tmp14_ = config->padding; +#line 58 "../src/grid.vala" + _tmp15_ = config->padding; +#line 58 "../src/grid.vala" + cairo_line_to (ctx, _tmp14_.left + 0.5, _tmp15_.top + 0.5); +#line 59 "../src/grid.vala" + cairo_stroke (ctx); +#line 60 "../src/grid.vala" + live_chart_grid_restore (self, ctx); +#line 318 "grid.c" + } +} + +void +live_chart_grid_render_grid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 64 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 64 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 64 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 65 "../src/grid.vala" + live_chart_grid_render_hgrid (self, ctx, config); +#line 66 "../src/grid.vala" + live_chart_grid_render_vgrid (self, ctx, config); +#line 337 "grid.c" +} + +void +live_chart_grid_render_vgrid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gint64 time = 0LL; + GTimeZone* _tmp0_; + GTimeZone* _tmp1_; + GDateTime* _tmp2_; + GDateTime* _tmp3_; + gint64 _tmp4_; +#line 69 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 69 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 69 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 70 "../src/grid.vala" + _tmp0_ = g_time_zone_new_local (); +#line 70 "../src/grid.vala" + _tmp1_ = _tmp0_; +#line 70 "../src/grid.vala" + _tmp2_ = g_date_time_new_now (_tmp1_); +#line 70 "../src/grid.vala" + _tmp3_ = _tmp2_; +#line 70 "../src/grid.vala" + _tmp4_ = g_date_time_to_unix (_tmp3_); +#line 70 "../src/grid.vala" + _g_date_time_unref0 (_tmp3_); +#line 70 "../src/grid.vala" + _g_time_zone_unref0 (_tmp1_); +#line 70 "../src/grid.vala" + time = _tmp4_; +#line 373 "grid.c" + { + gdouble i = 0.0; + gint _tmp5_; + gint _tmp6_; + LiveChartPadding _tmp7_; +#line 71 "../src/grid.vala" + _tmp5_ = live_chart_config_get_width (config); +#line 71 "../src/grid.vala" + _tmp6_ = _tmp5_; +#line 71 "../src/grid.vala" + _tmp7_ = config->padding; +#line 71 "../src/grid.vala" + i = (gdouble) (_tmp6_ - _tmp7_.right); +#line 387 "grid.c" + { + gboolean _tmp8_ = FALSE; +#line 71 "../src/grid.vala" + _tmp8_ = TRUE; +#line 71 "../src/grid.vala" + while (TRUE) { +#line 394 "grid.c" + LiveChartPadding _tmp12_; + LiveChartXAxis* _tmp13_; + LiveChartPath* _tmp14_; + gboolean _tmp15_; + gboolean _tmp16_; + gboolean _tmp23_ = FALSE; + LiveChartXAxis* _tmp24_; + gboolean _tmp25_; + gboolean _tmp26_; + LiveChartXAxis* _tmp50_; + gfloat _tmp51_; + gfloat _tmp52_; +#line 71 "../src/grid.vala" + if (!_tmp8_) { +#line 409 "grid.c" + LiveChartXAxis* _tmp9_; + gfloat _tmp10_; + gfloat _tmp11_; +#line 71 "../src/grid.vala" + _tmp9_ = config->x_axis; +#line 71 "../src/grid.vala" + _tmp10_ = live_chart_xaxis_get_tick_length (_tmp9_); +#line 71 "../src/grid.vala" + _tmp11_ = _tmp10_; +#line 71 "../src/grid.vala" + i -= (gdouble) _tmp11_; +#line 421 "grid.c" + } +#line 71 "../src/grid.vala" + _tmp8_ = FALSE; +#line 71 "../src/grid.vala" + _tmp12_ = config->padding; +#line 71 "../src/grid.vala" + if (!(i > ((gdouble) _tmp12_.left))) { +#line 71 "../src/grid.vala" + break; +#line 431 "grid.c" + } +#line 72 "../src/grid.vala" + _tmp13_ = config->x_axis; +#line 72 "../src/grid.vala" + _tmp14_ = _tmp13_->lines; +#line 72 "../src/grid.vala" + _tmp15_ = live_chart_path_get_visible (_tmp14_); +#line 72 "../src/grid.vala" + _tmp16_ = _tmp15_; +#line 72 "../src/grid.vala" + if (_tmp16_) { +#line 443 "grid.c" + LiveChartXAxis* _tmp17_; + LiveChartPath* _tmp18_; + gint _tmp19_; + gint _tmp20_; + LiveChartPadding _tmp21_; + LiveChartPadding _tmp22_; +#line 73 "../src/grid.vala" + _tmp17_ = config->x_axis; +#line 73 "../src/grid.vala" + _tmp18_ = _tmp17_->lines; +#line 73 "../src/grid.vala" + live_chart_path_configure (_tmp18_, ctx); +#line 74 "../src/grid.vala" + _tmp19_ = live_chart_config_get_height (config); +#line 74 "../src/grid.vala" + _tmp20_ = _tmp19_; +#line 74 "../src/grid.vala" + _tmp21_ = config->padding; +#line 74 "../src/grid.vala" + cairo_move_to (ctx, ((gint) i) + 0.5, (0.5 + _tmp20_) - _tmp21_.bottom); +#line 75 "../src/grid.vala" + _tmp22_ = config->padding; +#line 75 "../src/grid.vala" + cairo_line_to (ctx, ((gint) i) + 0.5, 0.5 + _tmp22_.top); +#line 76 "../src/grid.vala" + cairo_stroke (ctx); +#line 77 "../src/grid.vala" + live_chart_grid_restore (self, ctx); +#line 472 "grid.c" + } +#line 81 "../src/grid.vala" + _tmp24_ = config->x_axis; +#line 81 "../src/grid.vala" + _tmp25_ = live_chart_xaxis_get_visible (_tmp24_); +#line 81 "../src/grid.vala" + _tmp26_ = _tmp25_; +#line 81 "../src/grid.vala" + if (_tmp26_) { +#line 482 "grid.c" + LiveChartXAxis* _tmp27_; + LiveChartLabels* _tmp28_; + gboolean _tmp29_; + gboolean _tmp30_; +#line 81 "../src/grid.vala" + _tmp27_ = config->x_axis; +#line 81 "../src/grid.vala" + _tmp28_ = _tmp27_->labels; +#line 81 "../src/grid.vala" + _tmp29_ = live_chart_labels_get_visible (_tmp28_); +#line 81 "../src/grid.vala" + _tmp30_ = _tmp29_; +#line 81 "../src/grid.vala" + _tmp23_ = _tmp30_; +#line 497 "grid.c" + } else { +#line 81 "../src/grid.vala" + _tmp23_ = FALSE; +#line 501 "grid.c" + } +#line 81 "../src/grid.vala" + if (_tmp23_) { +#line 505 "grid.c" + LiveChartXAxis* _tmp31_; + LiveChartLabels* _tmp32_; + LiveChartFont* _tmp33_; + LiveChartFont* _tmp34_; + gchar* text = NULL; + GDateTime* _tmp35_; + GDateTime* _tmp36_; + gchar* _tmp37_; + gchar* _tmp38_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp39_; + cairo_text_extents_t _tmp40_ = {0}; + cairo_text_extents_t _tmp41_; + gint _tmp42_; + gint _tmp43_; + LiveChartPadding _tmp44_; + LiveChartXAxis* _tmp45_; + LiveChartLabels* _tmp46_; + cairo_text_extents_t _tmp47_ = {0}; + cairo_text_extents_t _tmp48_; + const gchar* _tmp49_; +#line 82 "../src/grid.vala" + _tmp31_ = config->x_axis; +#line 82 "../src/grid.vala" + _tmp32_ = _tmp31_->labels; +#line 82 "../src/grid.vala" + _tmp33_ = live_chart_labels_get_font (_tmp32_); +#line 82 "../src/grid.vala" + _tmp34_ = _tmp33_; +#line 82 "../src/grid.vala" + live_chart_font_configure (_tmp34_, ctx); +#line 83 "../src/grid.vala" + _tmp35_ = g_date_time_new_from_unix_local (time); +#line 83 "../src/grid.vala" + _tmp36_ = _tmp35_; +#line 83 "../src/grid.vala" + _tmp37_ = g_date_time_format (_tmp36_, "%H:%M:%S"); +#line 83 "../src/grid.vala" + _tmp38_ = _tmp37_; +#line 83 "../src/grid.vala" + _g_date_time_unref0 (_tmp36_); +#line 83 "../src/grid.vala" + text = _tmp38_; +#line 85 "../src/grid.vala" + _tmp39_ = text; +#line 85 "../src/grid.vala" + cairo_text_extents (ctx, _tmp39_, &_tmp40_); +#line 85 "../src/grid.vala" + extents = _tmp40_; +#line 87 "../src/grid.vala" + _tmp41_ = extents; +#line 87 "../src/grid.vala" + _tmp42_ = live_chart_config_get_height (config); +#line 87 "../src/grid.vala" + _tmp43_ = _tmp42_; +#line 87 "../src/grid.vala" + _tmp44_ = config->padding; +#line 87 "../src/grid.vala" + _tmp45_ = config->x_axis; +#line 87 "../src/grid.vala" + _tmp46_ = _tmp45_->labels; +#line 87 "../src/grid.vala" + live_chart_labels_get_extents (_tmp46_, &_tmp47_); +#line 87 "../src/grid.vala" + _tmp48_ = _tmp47_; +#line 87 "../src/grid.vala" + cairo_move_to (ctx, (i + 0.5) - (_tmp41_.width / 2), (((0.5 + _tmp43_) - _tmp44_.bottom) + _tmp48_.height) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 88 "../src/grid.vala" + _tmp49_ = text; +#line 88 "../src/grid.vala" + cairo_show_text (ctx, _tmp49_); +#line 89 "../src/grid.vala" + cairo_stroke (ctx); +#line 81 "../src/grid.vala" + _g_free0 (text); +#line 581 "grid.c" + } +#line 91 "../src/grid.vala" + _tmp50_ = config->x_axis; +#line 91 "../src/grid.vala" + _tmp51_ = live_chart_xaxis_get_tick_interval (_tmp50_); +#line 91 "../src/grid.vala" + _tmp52_ = _tmp51_; +#line 91 "../src/grid.vala" + time -= (gint64) ((gint) _tmp52_); +#line 591 "grid.c" + } + } + } +} + +void +live_chart_grid_render_hgrid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; +#line 95 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 95 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 95 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 97 "../src/grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 97 "../src/grid.vala" + boundaries = _tmp0_; +#line 614 "grid.c" + { + GeeList* _position_list = NULL; + LiveChartYAxis* _tmp1_; + LiveChartTicks _tmp2_; + GeeList* _tmp3_; + gint _position_size = 0; + GeeList* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gint _position_index = 0; +#line 98 "../src/grid.vala" + _tmp1_ = config->y_axis; +#line 98 "../src/grid.vala" + _tmp2_ = _tmp1_->ticks; +#line 98 "../src/grid.vala" + _tmp3_ = _tmp2_.values; +#line 98 "../src/grid.vala" + _position_list = _tmp3_; +#line 98 "../src/grid.vala" + _tmp4_ = _position_list; +#line 98 "../src/grid.vala" + _tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_); +#line 98 "../src/grid.vala" + _tmp6_ = _tmp5_; +#line 98 "../src/grid.vala" + _position_size = _tmp6_; +#line 98 "../src/grid.vala" + _position_index = -1; +#line 98 "../src/grid.vala" + while (TRUE) { +#line 645 "grid.c" + gint _tmp7_; + gint _tmp8_; + gfloat position = 0.0F; + GeeList* _tmp9_; + gpointer _tmp10_; + gfloat* _tmp11_; + gfloat _tmp12_; + gdouble y = 0.0; + LiveChartBoundaries _tmp13_; + LiveChartBoundaries _tmp14_; + LiveChartBoundary _tmp15_; + LiveChartYAxis* _tmp16_; + LiveChartBoundaries _tmp17_; + LiveChartBoundary _tmp18_; + LiveChartYAxis* _tmp19_; + LiveChartPath* _tmp20_; + gboolean _tmp21_; + gboolean _tmp22_; + gboolean _tmp29_ = FALSE; + LiveChartYAxis* _tmp30_; + gboolean _tmp31_; + gboolean _tmp32_; +#line 98 "../src/grid.vala" + _position_index = _position_index + 1; +#line 98 "../src/grid.vala" + _tmp7_ = _position_index; +#line 98 "../src/grid.vala" + _tmp8_ = _position_size; +#line 98 "../src/grid.vala" + if (!(_tmp7_ < _tmp8_)) { +#line 98 "../src/grid.vala" + break; +#line 678 "grid.c" + } +#line 98 "../src/grid.vala" + _tmp9_ = _position_list; +#line 98 "../src/grid.vala" + _tmp10_ = gee_list_get (_tmp9_, _position_index); +#line 98 "../src/grid.vala" + _tmp11_ = (gfloat*) _tmp10_; +#line 98 "../src/grid.vala" + _tmp12_ = *_tmp11_; +#line 98 "../src/grid.vala" + _g_free0 (_tmp11_); +#line 98 "../src/grid.vala" + position = _tmp12_; +#line 100 "../src/grid.vala" + _tmp13_ = boundaries; +#line 100 "../src/grid.vala" + _tmp14_ = boundaries; +#line 100 "../src/grid.vala" + _tmp15_ = _tmp14_.y; +#line 100 "../src/grid.vala" + _tmp16_ = config->y_axis; +#line 100 "../src/grid.vala" + y = (_tmp13_.height + _tmp15_.min) - (position * live_chart_yaxis_get_ratio (_tmp16_)); +#line 101 "../src/grid.vala" + _tmp17_ = boundaries; +#line 101 "../src/grid.vala" + _tmp18_ = _tmp17_.y; +#line 101 "../src/grid.vala" + if (y < ((gdouble) _tmp18_.min)) { +#line 102 "../src/grid.vala" + break; +#line 710 "grid.c" + } +#line 104 "../src/grid.vala" + _tmp19_ = config->y_axis; +#line 104 "../src/grid.vala" + _tmp20_ = _tmp19_->lines; +#line 104 "../src/grid.vala" + _tmp21_ = live_chart_path_get_visible (_tmp20_); +#line 104 "../src/grid.vala" + _tmp22_ = _tmp21_; +#line 104 "../src/grid.vala" + if (_tmp22_) { +#line 722 "grid.c" + LiveChartYAxis* _tmp23_; + LiveChartPath* _tmp24_; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartBoundaries _tmp27_; + LiveChartBoundary _tmp28_; +#line 105 "../src/grid.vala" + _tmp23_ = config->y_axis; +#line 105 "../src/grid.vala" + _tmp24_ = _tmp23_->lines; +#line 105 "../src/grid.vala" + live_chart_path_configure (_tmp24_, ctx); +#line 106 "../src/grid.vala" + _tmp25_ = boundaries; +#line 106 "../src/grid.vala" + _tmp26_ = _tmp25_.x; +#line 106 "../src/grid.vala" + cairo_move_to (ctx, 0.5 + _tmp26_.max, ((gint) y) + 0.5); +#line 107 "../src/grid.vala" + _tmp27_ = boundaries; +#line 107 "../src/grid.vala" + _tmp28_ = _tmp27_.x; +#line 107 "../src/grid.vala" + cairo_line_to (ctx, _tmp28_.min + 0.5, ((gint) y) + 0.5); +#line 108 "../src/grid.vala" + cairo_stroke (ctx); +#line 109 "../src/grid.vala" + live_chart_grid_restore (self, ctx); +#line 751 "grid.c" + } +#line 113 "../src/grid.vala" + _tmp30_ = config->y_axis; +#line 113 "../src/grid.vala" + _tmp31_ = live_chart_yaxis_get_visible (_tmp30_); +#line 113 "../src/grid.vala" + _tmp32_ = _tmp31_; +#line 113 "../src/grid.vala" + if (_tmp32_) { +#line 761 "grid.c" + LiveChartYAxis* _tmp33_; + LiveChartLabels* _tmp34_; + gboolean _tmp35_; + gboolean _tmp36_; +#line 113 "../src/grid.vala" + _tmp33_ = config->y_axis; +#line 113 "../src/grid.vala" + _tmp34_ = _tmp33_->labels; +#line 113 "../src/grid.vala" + _tmp35_ = live_chart_labels_get_visible (_tmp34_); +#line 113 "../src/grid.vala" + _tmp36_ = _tmp35_; +#line 113 "../src/grid.vala" + _tmp29_ = _tmp36_; +#line 776 "grid.c" + } else { +#line 113 "../src/grid.vala" + _tmp29_ = FALSE; +#line 780 "grid.c" + } +#line 113 "../src/grid.vala" + if (_tmp29_) { +#line 784 "grid.c" + LiveChartYAxis* _tmp37_; + LiveChartLabels* _tmp38_; + LiveChartFont* _tmp39_; + LiveChartFont* _tmp40_; + gchar* value = NULL; + LiveChartYAxis* _tmp41_; + const gchar* _tmp42_; + const gchar* _tmp43_; + gchar* _tmp44_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp45_; + cairo_text_extents_t _tmp46_ = {0}; + LiveChartBoundaries _tmp47_; + LiveChartBoundary _tmp48_; + cairo_text_extents_t _tmp49_; + cairo_text_extents_t _tmp50_; + const gchar* _tmp51_; +#line 114 "../src/grid.vala" + _tmp37_ = config->y_axis; +#line 114 "../src/grid.vala" + _tmp38_ = _tmp37_->labels; +#line 114 "../src/grid.vala" + _tmp39_ = live_chart_labels_get_font (_tmp38_); +#line 114 "../src/grid.vala" + _tmp40_ = _tmp39_; +#line 114 "../src/grid.vala" + live_chart_font_configure (_tmp40_, ctx); +#line 115 "../src/grid.vala" + _tmp41_ = config->y_axis; +#line 115 "../src/grid.vala" + _tmp42_ = live_chart_yaxis_get_unit (_tmp41_); +#line 115 "../src/grid.vala" + _tmp43_ = _tmp42_; +#line 115 "../src/grid.vala" + _tmp44_ = live_chart_format_for_y_axis (_tmp43_, position); +#line 115 "../src/grid.vala" + value = _tmp44_; +#line 118 "../src/grid.vala" + _tmp45_ = value; +#line 118 "../src/grid.vala" + cairo_text_extents (ctx, _tmp45_, &_tmp46_); +#line 118 "../src/grid.vala" + extents = _tmp46_; +#line 119 "../src/grid.vala" + _tmp47_ = boundaries; +#line 119 "../src/grid.vala" + _tmp48_ = _tmp47_.x; +#line 119 "../src/grid.vala" + _tmp49_ = extents; +#line 119 "../src/grid.vala" + _tmp50_ = extents; +#line 119 "../src/grid.vala" + cairo_move_to (ctx, (_tmp48_.min - _tmp49_.width) - 5, (y + (_tmp50_.height / 2)) + 0.5); +#line 120 "../src/grid.vala" + _tmp51_ = value; +#line 120 "../src/grid.vala" + cairo_show_text (ctx, _tmp51_); +#line 121 "../src/grid.vala" + cairo_stroke (ctx); +#line 113 "../src/grid.vala" + _g_free0 (value); +#line 846 "grid.c" + } + } + } +} + +void +live_chart_grid_update_bounding_box (LiveChartGrid* self, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartBoundaries _tmp3_; + LiveChartBoundary _tmp4_; + LiveChartBoundaries _tmp5_; + LiveChartBoundary _tmp6_; + LiveChartBoundaries _tmp7_; + LiveChartBoundary _tmp8_; + LiveChartBoundaries _tmp9_; + LiveChartBoundary _tmp10_; + LiveChartBoundaries _tmp11_; + LiveChartBoundary _tmp12_; + LiveChartBoundingBox _tmp13_ = {0}; +#line 126 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 126 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 127 "../src/grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 127 "../src/grid.vala" + boundaries = _tmp0_; +#line 128 "../src/grid.vala" + _tmp1_ = boundaries; +#line 128 "../src/grid.vala" + _tmp2_ = _tmp1_.x; +#line 128 "../src/grid.vala" + _tmp3_ = boundaries; +#line 128 "../src/grid.vala" + _tmp4_ = _tmp3_.y; +#line 128 "../src/grid.vala" + _tmp5_ = boundaries; +#line 128 "../src/grid.vala" + _tmp6_ = _tmp5_.x; +#line 128 "../src/grid.vala" + _tmp7_ = boundaries; +#line 128 "../src/grid.vala" + _tmp8_ = _tmp7_.x; +#line 128 "../src/grid.vala" + _tmp9_ = boundaries; +#line 128 "../src/grid.vala" + _tmp10_ = _tmp9_.y; +#line 128 "../src/grid.vala" + _tmp11_ = boundaries; +#line 128 "../src/grid.vala" + _tmp12_ = _tmp11_.y; +#line 128 "../src/grid.vala" + memset (&_tmp13_, 0, sizeof (LiveChartBoundingBox)); +#line 128 "../src/grid.vala" + _tmp13_.x = (gdouble) _tmp2_.min; +#line 128 "../src/grid.vala" + _tmp13_.y = (gdouble) _tmp4_.min; +#line 128 "../src/grid.vala" + _tmp13_.width = (gdouble) (_tmp6_.max - _tmp8_.min); +#line 128 "../src/grid.vala" + _tmp13_.height = (gdouble) ((_tmp10_.max - _tmp12_.min) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 128 "../src/grid.vala" + self->bounding_box = _tmp13_; +#line 915 "grid.c" +} + +void +live_chart_grid_debug (LiveChartGrid* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 136 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 136 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 137 "../src/grid.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 137 "../src/grid.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 137 "../src/grid.vala" + debug = _tmp1_; +#line 138 "../src/grid.vala" + _tmp2_ = debug; +#line 138 "../src/grid.vala" + if (_tmp2_ != NULL) { +#line 940 "grid.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 139 "../src/grid.vala" + _tmp3_ = self->bounding_box; +#line 139 "../src/grid.vala" + _tmp4_ = self->bounding_box; +#line 139 "../src/grid.vala" + _tmp5_ = self->bounding_box; +#line 139 "../src/grid.vala" + _tmp6_ = self->bounding_box; +#line 139 "../src/grid.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 140 "../src/grid.vala" + cairo_stroke (ctx); +#line 957 "grid.c" + } +#line 136 "../src/grid.vala" + _g_free0 (debug); +#line 961 "grid.c" +} + +LiveChartGrid* +live_chart_grid_construct (GType object_type) +{ + LiveChartGrid * self = NULL; +#line 5 "../src/grid.vala" + self = (LiveChartGrid*) g_object_new (object_type, NULL); +#line 5 "../src/grid.vala" + return self; +#line 972 "grid.c" +} + +LiveChartGrid* +live_chart_grid_new (void) +{ +#line 5 "../src/grid.vala" + return live_chart_grid_construct (LIVE_CHART_TYPE_GRID); +#line 980 "grid.c" +} + +static gboolean +live_chart_grid_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartGrid* self; +#line 14 "../src/grid.vala" + self = (LiveChartGrid*) base; +#line 14 "../src/grid.vala" + result = self->priv->_visible; +#line 14 "../src/grid.vala" + return result; +#line 994 "grid.c" +} + +static void +live_chart_grid_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartGrid* self; + gboolean old_value; +#line 14 "../src/grid.vala" + self = (LiveChartGrid*) base; +#line 14 "../src/grid.vala" + old_value = live_chart_grid_real_get_visible (base); +#line 14 "../src/grid.vala" + if (old_value != value) { +#line 14 "../src/grid.vala" + self->priv->_visible = value; +#line 14 "../src/grid.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_grid_properties[LIVE_CHART_GRID_VISIBLE_PROPERTY]); +#line 1013 "grid.c" + } +} + +void +live_chart_grid_get_main_color (LiveChartGrid* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 16 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/grid.vala" + _tmp0_ = self->priv->_main_color; +#line 16 "../src/grid.vala" + *result = _tmp0_; +#line 16 "../src/grid.vala" + return; +#line 1030 "grid.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 16 "../src/grid.vala" + if (s1 == s2) { +#line 16 "../src/grid.vala" + return TRUE; +#line 1041 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1 == NULL) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1047 "grid.c" + } +#line 16 "../src/grid.vala" + if (s2 == NULL) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1053 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1->red != s2->red) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1059 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1->green != s2->green) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1065 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1->blue != s2->blue) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1071 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1->alpha != s2->alpha) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1077 "grid.c" + } +#line 16 "../src/grid.vala" + return TRUE; +#line 1081 "grid.c" +} + +void +live_chart_grid_set_main_color (LiveChartGrid* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 16 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/grid.vala" + live_chart_grid_get_main_color (self, &old_value); +#line 16 "../src/grid.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 1095 "grid.c" + GdkRGBA _tmp0_; +#line 16 "../src/grid.vala" + _tmp0_ = *value; +#line 16 "../src/grid.vala" + self->priv->_main_color = _tmp0_; +#line 16 "../src/grid.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_grid_properties[LIVE_CHART_GRID_MAIN_COLOR_PROPERTY]); +#line 1103 "grid.c" + } +} + +static void +live_chart_grid_class_init (LiveChartGridClass * klass, + gpointer klass_data) +{ +#line 5 "../src/grid.vala" + live_chart_grid_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/grid.vala" + g_type_class_adjust_private_offset (klass, &LiveChartGrid_private_offset); +#line 5 "../src/grid.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_grid_get_property; +#line 5 "../src/grid.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_grid_set_property; +#line 5 "../src/grid.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_grid_finalize; +#line 5 "../src/grid.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_GRID_VISIBLE_PROPERTY, live_chart_grid_properties[LIVE_CHART_GRID_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 5 "../src/grid.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_GRID_MAIN_COLOR_PROPERTY, live_chart_grid_properties[LIVE_CHART_GRID_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 1125 "grid.c" +} + +static void +live_chart_grid_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 5 "../src/grid.vala" + live_chart_grid_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 5 "../src/grid.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_grid_real_draw; +#line 5 "../src/grid.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_grid_real_get_bounding_box; +#line 5 "../src/grid.vala" + iface->get_visible = live_chart_grid_real_get_visible; +#line 5 "../src/grid.vala" + iface->set_visible = live_chart_grid_real_set_visible; +#line 1142 "grid.c" +} + +static void +live_chart_grid_instance_init (LiveChartGrid * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; + GdkRGBA _tmp1_ = {0}; +#line 5 "../src/grid.vala" + self->priv = live_chart_grid_get_instance_private (self); +#line 7 "../src/grid.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 7 "../src/grid.vala" + _tmp0_.x = (gdouble) 0; +#line 7 "../src/grid.vala" + _tmp0_.y = (gdouble) 0; +#line 7 "../src/grid.vala" + _tmp0_.width = (gdouble) 0; +#line 7 "../src/grid.vala" + _tmp0_.height = (gdouble) 0; +#line 7 "../src/grid.vala" + self->bounding_box = _tmp0_; +#line 14 "../src/grid.vala" + self->priv->_visible = TRUE; +#line 15 "../src/grid.vala" + memset (&_tmp1_, 0, sizeof (GdkRGBA)); +#line 15 "../src/grid.vala" + _tmp1_.red = 0.4; +#line 15 "../src/grid.vala" + _tmp1_.green = 0.4; +#line 15 "../src/grid.vala" + _tmp1_.blue = 0.4; +#line 15 "../src/grid.vala" + _tmp1_.alpha = 1.0; +#line 15 "../src/grid.vala" + self->priv->_main_color = _tmp1_; +#line 1179 "grid.c" +} + +static void +live_chart_grid_finalize (GObject * obj) +{ + LiveChartGrid * self; +#line 5 "../src/grid.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_GRID, LiveChartGrid); +#line 5 "../src/grid.vala" + G_OBJECT_CLASS (live_chart_grid_parent_class)->finalize (obj); +#line 1190 "grid.c" +} + +static GType +live_chart_grid_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartGridClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_grid_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartGrid), 0, (GInstanceInitFunc) live_chart_grid_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_grid_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_grid_type_id; + live_chart_grid_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartGrid", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_grid_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartGrid_private_offset = g_type_add_instance_private (live_chart_grid_type_id, sizeof (LiveChartGridPrivate)); + return live_chart_grid_type_id; +} + +GType +live_chart_grid_get_type (void) +{ + static volatile gsize live_chart_grid_type_id__once = 0; + if (g_once_init_enter (&live_chart_grid_type_id__once)) { + GType live_chart_grid_type_id; + live_chart_grid_type_id = live_chart_grid_get_type_once (); + g_once_init_leave (&live_chart_grid_type_id__once, live_chart_grid_type_id); + } + return live_chart_grid_type_id__once; +} + +static void +_vala_live_chart_grid_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartGrid * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_GRID, LiveChartGrid); +#line 5 "../src/grid.vala" + switch (property_id) { +#line 5 "../src/grid.vala" + case LIVE_CHART_GRID_VISIBLE_PROPERTY: +#line 5 "../src/grid.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 5 "../src/grid.vala" + break; +#line 5 "../src/grid.vala" + case LIVE_CHART_GRID_MAIN_COLOR_PROPERTY: +#line 1235 "grid.c" + { + GdkRGBA boxed; +#line 5 "../src/grid.vala" + live_chart_grid_get_main_color (self, &boxed); +#line 5 "../src/grid.vala" + g_value_set_boxed (value, &boxed); +#line 1242 "grid.c" + } +#line 5 "../src/grid.vala" + break; +#line 1246 "grid.c" + default: +#line 5 "../src/grid.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/grid.vala" + break; +#line 1252 "grid.c" + } +} + +static void +_vala_live_chart_grid_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartGrid * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_GRID, LiveChartGrid); +#line 5 "../src/grid.vala" + switch (property_id) { +#line 5 "../src/grid.vala" + case LIVE_CHART_GRID_VISIBLE_PROPERTY: +#line 5 "../src/grid.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 5 "../src/grid.vala" + break; +#line 5 "../src/grid.vala" + case LIVE_CHART_GRID_MAIN_COLOR_PROPERTY: +#line 5 "../src/grid.vala" + live_chart_grid_set_main_color (self, g_value_get_boxed (value)); +#line 5 "../src/grid.vala" + break; +#line 1278 "grid.c" + default: +#line 5 "../src/grid.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/grid.vala" + break; +#line 1284 "grid.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/intersections.c b/iPDC/lib/liblivechart_static.a.p/intersections.c new file mode 100644 index 0000000..78553d1 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/intersections.c @@ -0,0 +1,800 @@ +/* intersections.c generated by valac 0.56.0, the Vala compiler + * generated from intersections.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_INTERSECTIONS_0_PROPERTY, + LIVE_CHART_INTERSECTIONS_NUM_PROPERTIES +}; +static GParamSpec* live_chart_intersections_properties[LIVE_CHART_INTERSECTIONS_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +enum { + LIVE_CHART_INTERSECTION_0_PROPERTY, + LIVE_CHART_INTERSECTION_REGION_PROPERTY, + LIVE_CHART_INTERSECTION_START_X_PROPERTY, + LIVE_CHART_INTERSECTION_END_X_PROPERTY, + LIVE_CHART_INTERSECTION_NUM_PROPERTIES +}; +static GParamSpec* live_chart_intersection_properties[LIVE_CHART_INTERSECTION_NUM_PROPERTIES]; +#define _live_chart_region_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_region_unref (var), NULL))) +#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) + +struct _LiveChartIntersectionsPrivate { + GeeList* intersections; +}; + +struct _LiveChartIntersectionPrivate { + LiveChartRegion* _region; + gdouble _start_x; + gdouble _end_x; +}; + +static gint LiveChartIntersections_private_offset; +static gpointer live_chart_intersections_parent_class = NULL; +static gint LiveChartIntersection_private_offset; +static gpointer live_chart_intersection_parent_class = NULL; + +static void live_chart_intersections_finalize (GObject * obj); +static GType live_chart_intersections_get_type_once (void); +static void live_chart_intersection_set_start_x (LiveChartIntersection* self, + gdouble value); +static void live_chart_intersection_set_end_x (LiveChartIntersection* self, + gdouble value); +static gdouble* _double_dup (gdouble* self); +static void live_chart_intersection_finalize (GObject * obj); +static GType live_chart_intersection_get_type_once (void); +static void _vala_live_chart_intersection_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_intersection_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_intersections_get_instance_private (LiveChartIntersections* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartIntersections_private_offset); +} + +void +live_chart_intersections_close (LiveChartIntersections* self, + gdouble x, + gdouble exited_at) +{ + GeeList* _tmp0_; + gpointer _tmp1_; + LiveChartIntersection* _tmp2_; +#line 5 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 6 "../src/intersections.vala" + _tmp1_ = gee_list_last (_tmp0_); +#line 6 "../src/intersections.vala" + _tmp2_ = (LiveChartIntersection*) _tmp1_; +#line 6 "../src/intersections.vala" + live_chart_intersection_close (_tmp2_, x, exited_at); +#line 6 "../src/intersections.vala" + _g_object_unref0 (_tmp2_); +#line 89 "intersections.c" +} + +void +live_chart_intersections_update (LiveChartIntersections* self, + gdouble x) +{ + GeeList* _tmp0_; + gpointer _tmp1_; + LiveChartIntersection* _tmp2_; +#line 9 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 10 "../src/intersections.vala" + _tmp1_ = gee_list_last (_tmp0_); +#line 10 "../src/intersections.vala" + _tmp2_ = (LiveChartIntersection*) _tmp1_; +#line 10 "../src/intersections.vala" + live_chart_intersection_update (_tmp2_, x); +#line 10 "../src/intersections.vala" + _g_object_unref0 (_tmp2_); +#line 111 "intersections.c" +} + +void +live_chart_intersections_open (LiveChartIntersections* self, + LiveChartRegion* region, + gdouble x, + gdouble entered_at) +{ + LiveChartIntersection* intersection = NULL; + LiveChartIntersection* _tmp0_; + GeeList* _tmp1_; +#line 13 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 13 "../src/intersections.vala" + g_return_if_fail (region != NULL); +#line 14 "../src/intersections.vala" + _tmp0_ = live_chart_intersection_new (region, x, entered_at); +#line 14 "../src/intersections.vala" + intersection = _tmp0_; +#line 15 "../src/intersections.vala" + _tmp1_ = self->priv->intersections; +#line 15 "../src/intersections.vala" + gee_collection_add ((GeeCollection*) _tmp1_, intersection); +#line 13 "../src/intersections.vala" + _g_object_unref0 (intersection); +#line 137 "intersections.c" +} + +void +live_chart_intersections_open_without_entrypoint (LiveChartIntersections* self, + LiveChartRegion* region, + gdouble x) +{ + LiveChartIntersection* intersection = NULL; + LiveChartIntersection* _tmp0_; + GeeList* _tmp1_; +#line 18 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 18 "../src/intersections.vala" + g_return_if_fail (region != NULL); +#line 19 "../src/intersections.vala" + _tmp0_ = live_chart_intersection_new_without_entry_point (region, x); +#line 19 "../src/intersections.vala" + intersection = _tmp0_; +#line 20 "../src/intersections.vala" + _tmp1_ = self->priv->intersections; +#line 20 "../src/intersections.vala" + gee_collection_add ((GeeCollection*) _tmp1_, intersection); +#line 18 "../src/intersections.vala" + _g_object_unref0 (intersection); +#line 162 "intersections.c" +} + +void +live_chart_intersections_foreach (LiveChartIntersections* self, + GeeForallFunc f, + gpointer f_target) +{ + GeeList* _tmp0_; +#line 23 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 24 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 24 "../src/intersections.vala" + gee_traversable_foreach ((GeeTraversable*) _tmp0_, f, f_target); +#line 177 "intersections.c" +} + +gboolean +live_chart_intersections_has_an_opened_intersection (LiveChartIntersections* self) +{ + gboolean _tmp0_ = FALSE; + GeeList* _tmp1_; + gint _tmp2_; + gint _tmp3_; + gboolean result; +#line 27 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 28 "../src/intersections.vala" + _tmp1_ = self->priv->intersections; +#line 28 "../src/intersections.vala" + _tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_); +#line 28 "../src/intersections.vala" + _tmp3_ = _tmp2_; +#line 28 "../src/intersections.vala" + if (_tmp3_ > 0) { +#line 198 "intersections.c" + GeeList* _tmp4_; + gpointer _tmp5_; + LiveChartIntersection* _tmp6_; +#line 28 "../src/intersections.vala" + _tmp4_ = self->priv->intersections; +#line 28 "../src/intersections.vala" + _tmp5_ = gee_list_last (_tmp4_); +#line 28 "../src/intersections.vala" + _tmp6_ = (LiveChartIntersection*) _tmp5_; +#line 28 "../src/intersections.vala" + _tmp0_ = live_chart_intersection_is_open (_tmp6_); +#line 28 "../src/intersections.vala" + _g_object_unref0 (_tmp6_); +#line 212 "intersections.c" + } else { +#line 28 "../src/intersections.vala" + _tmp0_ = FALSE; +#line 216 "intersections.c" + } +#line 28 "../src/intersections.vala" + result = _tmp0_; +#line 28 "../src/intersections.vala" + return result; +#line 222 "intersections.c" +} + +static gpointer +_live_chart_region_ref0 (gpointer self) +{ +#line 31 "../src/intersections.vala" + return self ? live_chart_region_ref (self) : NULL; +#line 230 "intersections.c" +} + +LiveChartRegion* +live_chart_intersections_get_current_region (LiveChartIntersections* self) +{ + GeeList* _tmp0_; + gpointer _tmp1_; + LiveChartIntersection* _tmp2_; + LiveChartRegion* _tmp3_; + LiveChartRegion* _tmp4_; + LiveChartRegion* _tmp5_; + LiveChartRegion* _tmp6_; + LiveChartRegion* result; +#line 30 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 31 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 31 "../src/intersections.vala" + _tmp1_ = gee_list_last (_tmp0_); +#line 31 "../src/intersections.vala" + _tmp2_ = (LiveChartIntersection*) _tmp1_; +#line 31 "../src/intersections.vala" + _tmp3_ = live_chart_intersection_get_region (_tmp2_); +#line 31 "../src/intersections.vala" + _tmp4_ = _tmp3_; +#line 31 "../src/intersections.vala" + _tmp5_ = _live_chart_region_ref0 (_tmp4_); +#line 31 "../src/intersections.vala" + _tmp6_ = _tmp5_; +#line 31 "../src/intersections.vala" + _g_object_unref0 (_tmp2_); +#line 31 "../src/intersections.vala" + result = _tmp6_; +#line 31 "../src/intersections.vala" + return result; +#line 266 "intersections.c" +} + +gint +live_chart_intersections_size (LiveChartIntersections* self) +{ + GeeList* _tmp0_; + gint _tmp1_; + gint _tmp2_; + gint result; +#line 34 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, 0); +#line 35 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 35 "../src/intersections.vala" + _tmp1_ = gee_collection_get_size ((GeeCollection*) _tmp0_); +#line 35 "../src/intersections.vala" + _tmp2_ = _tmp1_; +#line 35 "../src/intersections.vala" + result = _tmp2_; +#line 35 "../src/intersections.vala" + return result; +#line 288 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersections_get (LiveChartIntersections* self, + gint index) +{ + GeeList* _tmp0_; + gpointer _tmp1_; + LiveChartIntersection* result; +#line 38 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 39 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 39 "../src/intersections.vala" + _tmp1_ = gee_list_get (_tmp0_, index); +#line 39 "../src/intersections.vala" + result = (LiveChartIntersection*) _tmp1_; +#line 39 "../src/intersections.vala" + return result; +#line 308 "intersections.c" +} + +LiveChartIntersections* +live_chart_intersections_construct (GType object_type) +{ + LiveChartIntersections * self = NULL; +#line 2 "../src/intersections.vala" + self = (LiveChartIntersections*) g_object_new (object_type, NULL); +#line 2 "../src/intersections.vala" + return self; +#line 319 "intersections.c" +} + +LiveChartIntersections* +live_chart_intersections_new (void) +{ +#line 2 "../src/intersections.vala" + return live_chart_intersections_construct (LIVE_CHART_TYPE_INTERSECTIONS); +#line 327 "intersections.c" +} + +static void +live_chart_intersections_class_init (LiveChartIntersectionsClass * klass, + gpointer klass_data) +{ +#line 2 "../src/intersections.vala" + live_chart_intersections_parent_class = g_type_class_peek_parent (klass); +#line 2 "../src/intersections.vala" + g_type_class_adjust_private_offset (klass, &LiveChartIntersections_private_offset); +#line 2 "../src/intersections.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_intersections_finalize; +#line 340 "intersections.c" +} + +static void +live_chart_intersections_instance_init (LiveChartIntersections * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 2 "../src/intersections.vala" + self->priv = live_chart_intersections_get_instance_private (self); +#line 3 "../src/intersections.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_TYPE_INTERSECTION, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL); +#line 3 "../src/intersections.vala" + self->priv->intersections = (GeeList*) _tmp0_; +#line 354 "intersections.c" +} + +static void +live_chart_intersections_finalize (GObject * obj) +{ + LiveChartIntersections * self; +#line 2 "../src/intersections.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_INTERSECTIONS, LiveChartIntersections); +#line 3 "../src/intersections.vala" + _g_object_unref0 (self->priv->intersections); +#line 2 "../src/intersections.vala" + G_OBJECT_CLASS (live_chart_intersections_parent_class)->finalize (obj); +#line 367 "intersections.c" +} + +static GType +live_chart_intersections_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartIntersectionsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_intersections_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartIntersections), 0, (GInstanceInitFunc) live_chart_intersections_instance_init, NULL }; + GType live_chart_intersections_type_id; + live_chart_intersections_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartIntersections", &g_define_type_info, 0); + LiveChartIntersections_private_offset = g_type_add_instance_private (live_chart_intersections_type_id, sizeof (LiveChartIntersectionsPrivate)); + return live_chart_intersections_type_id; +} + +GType +live_chart_intersections_get_type (void) +{ + static volatile gsize live_chart_intersections_type_id__once = 0; + if (g_once_init_enter (&live_chart_intersections_type_id__once)) { + GType live_chart_intersections_type_id; + live_chart_intersections_type_id = live_chart_intersections_get_type_once (); + g_once_init_leave (&live_chart_intersections_type_id__once, live_chart_intersections_type_id); + } + return live_chart_intersections_type_id__once; +} + +static inline gpointer +live_chart_intersection_get_instance_private (LiveChartIntersection* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartIntersection_private_offset); +} + +static gdouble* +_double_dup (gdouble* self) +{ + gdouble* dup; +#line 54 "../src/intersections.vala" + dup = g_new0 (gdouble, 1); +#line 54 "../src/intersections.vala" + memcpy (dup, self, sizeof (gdouble)); +#line 54 "../src/intersections.vala" + return dup; +#line 408 "intersections.c" +} + +static gpointer +__double_dup0 (gpointer self) +{ +#line 54 "../src/intersections.vala" + return self ? _double_dup (self) : NULL; +#line 416 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersection_construct (GType object_type, + LiveChartRegion* region, + gdouble start_x, + gdouble entered_at) +{ + LiveChartIntersection * self = NULL; + gdouble* _tmp0_; +#line 50 "../src/intersections.vala" + g_return_val_if_fail (region != NULL, NULL); +#line 50 "../src/intersections.vala" + self = (LiveChartIntersection*) g_object_new (object_type, NULL); +#line 51 "../src/intersections.vala" + live_chart_intersection_set_region (self, region); +#line 52 "../src/intersections.vala" + live_chart_intersection_set_start_x (self, start_x); +#line 53 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, start_x); +#line 54 "../src/intersections.vala" + _tmp0_ = __double_dup0 (&entered_at); +#line 54 "../src/intersections.vala" + _g_free0 (self->entered_at); +#line 54 "../src/intersections.vala" + self->entered_at = _tmp0_; +#line 50 "../src/intersections.vala" + return self; +#line 445 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersection_new (LiveChartRegion* region, + gdouble start_x, + gdouble entered_at) +{ +#line 50 "../src/intersections.vala" + return live_chart_intersection_construct (LIVE_CHART_TYPE_INTERSECTION, region, start_x, entered_at); +#line 455 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersection_construct_without_entry_point (GType object_type, + LiveChartRegion* region, + gdouble start_x) +{ + LiveChartIntersection * self = NULL; +#line 56 "../src/intersections.vala" + g_return_val_if_fail (region != NULL, NULL); +#line 56 "../src/intersections.vala" + self = (LiveChartIntersection*) g_object_new (object_type, NULL); +#line 57 "../src/intersections.vala" + live_chart_intersection_set_region (self, region); +#line 58 "../src/intersections.vala" + live_chart_intersection_set_start_x (self, start_x); +#line 59 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, start_x); +#line 56 "../src/intersections.vala" + return self; +#line 476 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersection_new_without_entry_point (LiveChartRegion* region, + gdouble start_x) +{ +#line 56 "../src/intersections.vala" + return live_chart_intersection_construct_without_entry_point (LIVE_CHART_TYPE_INTERSECTION, region, start_x); +#line 485 "intersections.c" +} + +void +live_chart_intersection_update (LiveChartIntersection* self, + gdouble x) +{ +#line 62 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 63 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, x); +#line 496 "intersections.c" +} + +void +live_chart_intersection_close (LiveChartIntersection* self, + gdouble x, + gdouble exited_at) +{ + gdouble* _tmp0_; +#line 66 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 67 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, x); +#line 68 "../src/intersections.vala" + _tmp0_ = __double_dup0 (&exited_at); +#line 68 "../src/intersections.vala" + _g_free0 (self->exited_at); +#line 68 "../src/intersections.vala" + self->exited_at = _tmp0_; +#line 515 "intersections.c" +} + +gboolean +live_chart_intersection_is_open (LiveChartIntersection* self) +{ + gdouble* _tmp0_; + gboolean result; +#line 71 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 72 "../src/intersections.vala" + _tmp0_ = self->exited_at; +#line 72 "../src/intersections.vala" + result = _tmp0_ == NULL; +#line 72 "../src/intersections.vala" + return result; +#line 531 "intersections.c" +} + +gboolean +live_chart_intersection_is_closed (LiveChartIntersection* self) +{ + gdouble* _tmp0_; + gboolean result; +#line 75 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 76 "../src/intersections.vala" + _tmp0_ = self->exited_at; +#line 76 "../src/intersections.vala" + result = _tmp0_ != NULL; +#line 76 "../src/intersections.vala" + return result; +#line 547 "intersections.c" +} + +LiveChartRegion* +live_chart_intersection_get_region (LiveChartIntersection* self) +{ + LiveChartRegion* result; + LiveChartRegion* _tmp0_; +#line 44 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 44 "../src/intersections.vala" + _tmp0_ = self->priv->_region; +#line 44 "../src/intersections.vala" + result = _tmp0_; +#line 44 "../src/intersections.vala" + return result; +#line 563 "intersections.c" +} + +void +live_chart_intersection_set_region (LiveChartIntersection* self, + LiveChartRegion* value) +{ + LiveChartRegion* old_value; +#line 44 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 44 "../src/intersections.vala" + old_value = live_chart_intersection_get_region (self); +#line 44 "../src/intersections.vala" + if (old_value != value) { +#line 577 "intersections.c" + LiveChartRegion* _tmp0_; +#line 44 "../src/intersections.vala" + _tmp0_ = _live_chart_region_ref0 (value); +#line 44 "../src/intersections.vala" + _live_chart_region_unref0 (self->priv->_region); +#line 44 "../src/intersections.vala" + self->priv->_region = _tmp0_; +#line 44 "../src/intersections.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_REGION_PROPERTY]); +#line 587 "intersections.c" + } +} + +gdouble +live_chart_intersection_get_start_x (LiveChartIntersection* self) +{ + gdouble result; +#line 45 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 45 "../src/intersections.vala" + result = self->priv->_start_x; +#line 45 "../src/intersections.vala" + return result; +#line 601 "intersections.c" +} + +static void +live_chart_intersection_set_start_x (LiveChartIntersection* self, + gdouble value) +{ + gdouble old_value; +#line 45 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/intersections.vala" + old_value = live_chart_intersection_get_start_x (self); +#line 45 "../src/intersections.vala" + if (old_value != value) { +#line 45 "../src/intersections.vala" + self->priv->_start_x = value; +#line 45 "../src/intersections.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_START_X_PROPERTY]); +#line 619 "intersections.c" + } +} + +gdouble +live_chart_intersection_get_end_x (LiveChartIntersection* self) +{ + gdouble result; +#line 46 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 46 "../src/intersections.vala" + result = self->priv->_end_x; +#line 46 "../src/intersections.vala" + return result; +#line 633 "intersections.c" +} + +static void +live_chart_intersection_set_end_x (LiveChartIntersection* self, + gdouble value) +{ + gdouble old_value; +#line 46 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/intersections.vala" + old_value = live_chart_intersection_get_end_x (self); +#line 46 "../src/intersections.vala" + if (old_value != value) { +#line 46 "../src/intersections.vala" + self->priv->_end_x = value; +#line 46 "../src/intersections.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_END_X_PROPERTY]); +#line 651 "intersections.c" + } +} + +static void +live_chart_intersection_class_init (LiveChartIntersectionClass * klass, + gpointer klass_data) +{ +#line 43 "../src/intersections.vala" + live_chart_intersection_parent_class = g_type_class_peek_parent (klass); +#line 43 "../src/intersections.vala" + g_type_class_adjust_private_offset (klass, &LiveChartIntersection_private_offset); +#line 43 "../src/intersections.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_intersection_get_property; +#line 43 "../src/intersections.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_intersection_set_property; +#line 43 "../src/intersections.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_intersection_finalize; +#line 43 "../src/intersections.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_INTERSECTION_REGION_PROPERTY, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_REGION_PROPERTY] = live_chart_param_spec_region ("region", "region", "region", LIVE_CHART_TYPE_REGION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 43 "../src/intersections.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_INTERSECTION_START_X_PROPERTY, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_START_X_PROPERTY] = g_param_spec_double ("start-x", "start-x", "start-x", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 43 "../src/intersections.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_INTERSECTION_END_X_PROPERTY, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_END_X_PROPERTY] = g_param_spec_double ("end-x", "end-x", "end-x", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 675 "intersections.c" +} + +static void +live_chart_intersection_instance_init (LiveChartIntersection * self, + gpointer klass) +{ +#line 43 "../src/intersections.vala" + self->priv = live_chart_intersection_get_instance_private (self); +#line 684 "intersections.c" +} + +static void +live_chart_intersection_finalize (GObject * obj) +{ + LiveChartIntersection * self; +#line 43 "../src/intersections.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersection); +#line 44 "../src/intersections.vala" + _live_chart_region_unref0 (self->priv->_region); +#line 47 "../src/intersections.vala" + _g_free0 (self->entered_at); +#line 48 "../src/intersections.vala" + _g_free0 (self->exited_at); +#line 43 "../src/intersections.vala" + G_OBJECT_CLASS (live_chart_intersection_parent_class)->finalize (obj); +#line 701 "intersections.c" +} + +static GType +live_chart_intersection_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartIntersectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_intersection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartIntersection), 0, (GInstanceInitFunc) live_chart_intersection_instance_init, NULL }; + GType live_chart_intersection_type_id; + live_chart_intersection_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartIntersection", &g_define_type_info, 0); + LiveChartIntersection_private_offset = g_type_add_instance_private (live_chart_intersection_type_id, sizeof (LiveChartIntersectionPrivate)); + return live_chart_intersection_type_id; +} + +GType +live_chart_intersection_get_type (void) +{ + static volatile gsize live_chart_intersection_type_id__once = 0; + if (g_once_init_enter (&live_chart_intersection_type_id__once)) { + GType live_chart_intersection_type_id; + live_chart_intersection_type_id = live_chart_intersection_get_type_once (); + g_once_init_leave (&live_chart_intersection_type_id__once, live_chart_intersection_type_id); + } + return live_chart_intersection_type_id__once; +} + +static void +_vala_live_chart_intersection_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartIntersection * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersection); +#line 43 "../src/intersections.vala" + switch (property_id) { +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_REGION_PROPERTY: +#line 43 "../src/intersections.vala" + live_chart_value_set_region (value, live_chart_intersection_get_region (self)); +#line 43 "../src/intersections.vala" + break; +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_START_X_PROPERTY: +#line 43 "../src/intersections.vala" + g_value_set_double (value, live_chart_intersection_get_start_x (self)); +#line 43 "../src/intersections.vala" + break; +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_END_X_PROPERTY: +#line 43 "../src/intersections.vala" + g_value_set_double (value, live_chart_intersection_get_end_x (self)); +#line 43 "../src/intersections.vala" + break; +#line 754 "intersections.c" + default: +#line 43 "../src/intersections.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 43 "../src/intersections.vala" + break; +#line 760 "intersections.c" + } +} + +static void +_vala_live_chart_intersection_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartIntersection * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersection); +#line 43 "../src/intersections.vala" + switch (property_id) { +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_REGION_PROPERTY: +#line 43 "../src/intersections.vala" + live_chart_intersection_set_region (self, live_chart_value_get_region (value)); +#line 43 "../src/intersections.vala" + break; +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_START_X_PROPERTY: +#line 43 "../src/intersections.vala" + live_chart_intersection_set_start_x (self, g_value_get_double (value)); +#line 43 "../src/intersections.vala" + break; +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_END_X_PROPERTY: +#line 43 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, g_value_get_double (value)); +#line 43 "../src/intersections.vala" + break; +#line 792 "intersections.c" + default: +#line 43 "../src/intersections.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 43 "../src/intersections.vala" + break; +#line 798 "intersections.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/intersectors.c b/iPDC/lib/liblivechart_static.a.p/intersectors.c new file mode 100644 index 0000000..94b5b8e --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/intersectors.c @@ -0,0 +1,726 @@ +/* intersectors.c generated by valac 0.56.0, the Vala compiler + * generated from intersectors.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include + +#define _live_chart_region_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_region_unref (var), NULL))) +#define _live_chart_config_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_config_unref (var), NULL))) +#define _live_chart_bezier_curve_free0(var) ((var == NULL) ? NULL : (var = (live_chart_bezier_curve_free (var), NULL))) +typedef struct _Block2Data Block2Data; +#define _live_chart_bezier_intersector_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_bezier_intersector_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +typedef struct _LiveChartParamSpecBezierIntersector LiveChartParamSpecBezierIntersector; + +struct _LiveChartBezierIntersectorPrivate { + LiveChartRegion* region; + LiveChartConfig* config; +}; + +struct _Block2Data { + int _ref_count_; + LiveChartBezierIntersector* self; + LiveChartBezierCurve* path; +}; + +struct _LiveChartParamSpecBezierIntersector { + GParamSpec parent_instance; +}; + +static gint LiveChartBezierIntersector_private_offset; +static gpointer live_chart_bezier_intersector_parent_class = NULL; +static LiveChartIntersectorIface * live_chart_bezier_intersector_live_chart_intersector_parent_iface = NULL; + +static GType live_chart_intersector_get_type_once (void); +static void live_chart_bezier_intersector_real_intersect (LiveChartIntersector* base, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + LiveChartBezierCurve* path); +static Block2Data* block2_data_ref (Block2Data* _data2_); +static void block2_data_unref (void * _userdata_); +static LiveChartCoord* __lambda12_ (Block2Data* _data2_, + gdouble value); +static LiveChartCoord* live_chart_bezier_intersector_intersect_at (LiveChartBezierIntersector* self, + LiveChartConfig* config, + LiveChartBezierCurve* curve, + gdouble at_value); +static LiveChartCoord* ___lambda12__live_chart_get_intersection (gdouble at_value, + gpointer self); +static void live_chart_bezier_intersector_create_intersection_segment_at (LiveChartBezierIntersector* self, + LiveChartConfig* config, + gdouble at_y, + LiveChartSegment* result); +static void live_chart_bezier_intersector_finalize (LiveChartBezierIntersector * obj); +static GType live_chart_bezier_intersector_get_type_once (void); + +void +live_chart_intersector_intersect (LiveChartIntersector* self, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + gconstpointer path) +{ + LiveChartIntersectorIface* _iface_; +#line 3 "../src/intersectors.vala" + g_return_if_fail (self != NULL); +#line 3 "../src/intersectors.vala" + _iface_ = LIVE_CHART_INTERSECTOR_GET_INTERFACE (self); +#line 3 "../src/intersectors.vala" + if (_iface_->intersect) { +#line 3 "../src/intersectors.vala" + _iface_->intersect (self, intersections, previous, current, path); +#line 79 "intersectors.c" + } +} + +static void +live_chart_intersector_default_init (LiveChartIntersectorIface * iface, + gpointer iface_data) +{ +} + +static GType +live_chart_intersector_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartIntersectorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_intersector_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType live_chart_intersector_type_id; + live_chart_intersector_type_id = g_type_register_static (G_TYPE_INTERFACE, "LiveChartIntersector", &g_define_type_info, 0); + return live_chart_intersector_type_id; +} + +GType +live_chart_intersector_get_type (void) +{ + static volatile gsize live_chart_intersector_type_id__once = 0; + if (g_once_init_enter (&live_chart_intersector_type_id__once)) { + GType live_chart_intersector_type_id; + live_chart_intersector_type_id = live_chart_intersector_get_type_once (); + g_once_init_leave (&live_chart_intersector_type_id__once, live_chart_intersector_type_id); + } + return live_chart_intersector_type_id__once; +} + +static inline gpointer +live_chart_bezier_intersector_get_instance_private (LiveChartBezierIntersector* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartBezierIntersector_private_offset); +} + +static gpointer +_live_chart_region_ref0 (gpointer self) +{ +#line 11 "../src/intersectors.vala" + return self ? live_chart_region_ref (self) : NULL; +#line 121 "intersectors.c" +} + +static gpointer +_live_chart_config_ref0 (gpointer self) +{ +#line 12 "../src/intersectors.vala" + return self ? live_chart_config_ref (self) : NULL; +#line 129 "intersectors.c" +} + +LiveChartBezierIntersector* +live_chart_bezier_intersector_construct (GType object_type, + LiveChartRegion* region, + LiveChartConfig* config) +{ + LiveChartBezierIntersector* self = NULL; + LiveChartRegion* _tmp0_; + LiveChartConfig* _tmp1_; +#line 10 "../src/intersectors.vala" + g_return_val_if_fail (region != NULL, NULL); +#line 10 "../src/intersectors.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 10 "../src/intersectors.vala" + self = (LiveChartBezierIntersector*) g_type_create_instance (object_type); +#line 11 "../src/intersectors.vala" + _tmp0_ = _live_chart_region_ref0 (region); +#line 11 "../src/intersectors.vala" + _live_chart_region_unref0 (self->priv->region); +#line 11 "../src/intersectors.vala" + self->priv->region = _tmp0_; +#line 12 "../src/intersectors.vala" + _tmp1_ = _live_chart_config_ref0 (config); +#line 12 "../src/intersectors.vala" + _live_chart_config_unref0 (self->priv->config); +#line 12 "../src/intersectors.vala" + self->priv->config = _tmp1_; +#line 10 "../src/intersectors.vala" + return self; +#line 160 "intersectors.c" +} + +LiveChartBezierIntersector* +live_chart_bezier_intersector_new (LiveChartRegion* region, + LiveChartConfig* config) +{ +#line 10 "../src/intersectors.vala" + return live_chart_bezier_intersector_construct (LIVE_CHART_TYPE_BEZIER_INTERSECTOR, region, config); +#line 169 "intersectors.c" +} + +static gpointer +_live_chart_bezier_curve_dup0 (gpointer self) +{ +#line 15 "../src/intersectors.vala" + return self ? live_chart_bezier_curve_dup (self) : NULL; +#line 177 "intersectors.c" +} + +static Block2Data* +block2_data_ref (Block2Data* _data2_) +{ +#line 15 "../src/intersectors.vala" + g_atomic_int_inc (&_data2_->_ref_count_); +#line 15 "../src/intersectors.vala" + return _data2_; +#line 187 "intersectors.c" +} + +static void +block2_data_unref (void * _userdata_) +{ + Block2Data* _data2_; + _data2_ = (Block2Data*) _userdata_; +#line 15 "../src/intersectors.vala" + if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) { +#line 197 "intersectors.c" + LiveChartBezierIntersector* self; +#line 15 "../src/intersectors.vala" + self = _data2_->self; +#line 15 "../src/intersectors.vala" + _live_chart_bezier_curve_free0 (_data2_->path); +#line 15 "../src/intersectors.vala" + _live_chart_bezier_intersector_unref0 (self); +#line 15 "../src/intersectors.vala" + g_slice_free (Block2Data, _data2_); +#line 207 "intersectors.c" + } +} + +static LiveChartCoord* +__lambda12_ (Block2Data* _data2_, + gdouble value) +{ + LiveChartBezierIntersector* self; + LiveChartConfig* _tmp0_; + LiveChartBezierCurve _tmp1_; + LiveChartCoord* _tmp2_; + LiveChartCoord* result; +#line 16 "../src/intersectors.vala" + self = _data2_->self; +#line 17 "../src/intersectors.vala" + _tmp0_ = self->priv->config; +#line 17 "../src/intersectors.vala" + _tmp1_ = *_data2_->path; +#line 17 "../src/intersectors.vala" + _tmp2_ = live_chart_bezier_intersector_intersect_at (self, _tmp0_, &_tmp1_, value); +#line 17 "../src/intersectors.vala" + result = _tmp2_; +#line 17 "../src/intersectors.vala" + return result; +#line 232 "intersectors.c" +} + +static LiveChartCoord* +___lambda12__live_chart_get_intersection (gdouble at_value, + gpointer self) +{ + LiveChartCoord* result; + result = __lambda12_ (self, at_value); +#line 16 "../src/intersectors.vala" + return result; +#line 243 "intersectors.c" +} + +static void +live_chart_bezier_intersector_real_intersect (LiveChartIntersector* base, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + LiveChartBezierCurve* path) +{ + LiveChartBezierIntersector * self; + Block2Data* _data2_; + LiveChartBezierCurve* _tmp0_; + LiveChartRegion* _tmp1_; + LiveChartPoint _tmp2_; + LiveChartPoint _tmp3_; +#line 15 "../src/intersectors.vala" + self = (LiveChartBezierIntersector*) base; +#line 15 "../src/intersectors.vala" + g_return_if_fail (intersections != NULL); +#line 15 "../src/intersectors.vala" + g_return_if_fail (previous != NULL); +#line 15 "../src/intersectors.vala" + g_return_if_fail (current != NULL); +#line 15 "../src/intersectors.vala" + _data2_ = g_slice_new0 (Block2Data); +#line 15 "../src/intersectors.vala" + _data2_->_ref_count_ = 1; +#line 15 "../src/intersectors.vala" + _data2_->self = live_chart_bezier_intersector_ref (self); +#line 15 "../src/intersectors.vala" + _tmp0_ = _live_chart_bezier_curve_dup0 (path); +#line 15 "../src/intersectors.vala" + _live_chart_bezier_curve_free0 (_data2_->path); +#line 15 "../src/intersectors.vala" + _data2_->path = _tmp0_; +#line 16 "../src/intersectors.vala" + _tmp1_ = self->priv->region; +#line 16 "../src/intersectors.vala" + _tmp2_ = *previous; +#line 16 "../src/intersectors.vala" + _tmp3_ = *current; +#line 16 "../src/intersectors.vala" + live_chart_region_handle (_tmp1_, intersections, &_tmp2_, &_tmp3_, ___lambda12__live_chart_get_intersection, _data2_); +#line 15 "../src/intersectors.vala" + block2_data_unref (_data2_); +#line 15 "../src/intersectors.vala" + _data2_ = NULL; +#line 291 "intersectors.c" +} + +static LiveChartCoord* +live_chart_bezier_intersector_intersect_at (LiveChartBezierIntersector* self, + LiveChartConfig* config, + LiveChartBezierCurve* curve, + gdouble at_value) +{ + LiveChartSegment intersection_segment = {0}; + LiveChartSegment _tmp0_ = {0}; + GeeList* intersections = NULL; + LiveChartSegment _tmp1_; + LiveChartBezierCurve _tmp2_; + GeeList* _tmp3_; + GeeList* _tmp4_; + gint _tmp5_; + gint _tmp6_; + LiveChartCoord* result; +#line 21 "../src/intersectors.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 21 "../src/intersectors.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 21 "../src/intersectors.vala" + g_return_val_if_fail (curve != NULL, NULL); +#line 22 "../src/intersectors.vala" + live_chart_bezier_intersector_create_intersection_segment_at (self, config, at_value, &_tmp0_); +#line 22 "../src/intersectors.vala" + intersection_segment = _tmp0_; +#line 23 "../src/intersectors.vala" + _tmp1_ = intersection_segment; +#line 23 "../src/intersectors.vala" + _tmp2_ = *curve; +#line 23 "../src/intersectors.vala" + _tmp3_ = live_chart_find_intersections_between (&_tmp1_, &_tmp2_); +#line 23 "../src/intersectors.vala" + intersections = _tmp3_; +#line 24 "../src/intersectors.vala" + _tmp4_ = intersections; +#line 24 "../src/intersectors.vala" + _tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_); +#line 24 "../src/intersectors.vala" + _tmp6_ = _tmp5_; +#line 24 "../src/intersectors.vala" + if (_tmp6_ > 0) { +#line 336 "intersectors.c" + GeeList* _tmp7_; + gpointer _tmp8_; +#line 25 "../src/intersectors.vala" + _tmp7_ = intersections; +#line 25 "../src/intersectors.vala" + _tmp8_ = gee_list_first (_tmp7_); +#line 25 "../src/intersectors.vala" + result = (LiveChartCoord*) _tmp8_; +#line 25 "../src/intersectors.vala" + _g_object_unref0 (intersections); +#line 25 "../src/intersectors.vala" + return result; +#line 349 "intersectors.c" + } +#line 27 "../src/intersectors.vala" + result = NULL; +#line 27 "../src/intersectors.vala" + _g_object_unref0 (intersections); +#line 27 "../src/intersectors.vala" + return result; +#line 357 "intersectors.c" +} + +static void +live_chart_bezier_intersector_create_intersection_segment_at (LiveChartBezierIntersector* self, + LiveChartConfig* config, + gdouble at_y, + LiveChartSegment* result) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + gdouble y = 0.0; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartYAxis* _tmp3_; + LiveChartBoundaries _tmp4_; + LiveChartBoundary _tmp5_; + LiveChartCoord _tmp6_ = {0}; + LiveChartBoundaries _tmp7_; + LiveChartBoundary _tmp8_; + LiveChartCoord _tmp9_ = {0}; + LiveChartSegment _tmp10_ = {0}; +#line 30 "../src/intersectors.vala" + g_return_if_fail (self != NULL); +#line 30 "../src/intersectors.vala" + g_return_if_fail (config != NULL); +#line 31 "../src/intersectors.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 31 "../src/intersectors.vala" + boundaries = _tmp0_; +#line 32 "../src/intersectors.vala" + _tmp1_ = boundaries; +#line 32 "../src/intersectors.vala" + _tmp2_ = _tmp1_.y; +#line 32 "../src/intersectors.vala" + _tmp3_ = config->y_axis; +#line 32 "../src/intersectors.vala" + y = _tmp2_.max - (at_y * live_chart_yaxis_get_ratio (_tmp3_)); +#line 33 "../src/intersectors.vala" + _tmp4_ = boundaries; +#line 33 "../src/intersectors.vala" + _tmp5_ = _tmp4_.x; +#line 33 "../src/intersectors.vala" + _tmp6_.x = (gdouble) _tmp5_.min; +#line 33 "../src/intersectors.vala" + _tmp6_.y = y; +#line 33 "../src/intersectors.vala" + _tmp7_ = boundaries; +#line 33 "../src/intersectors.vala" + _tmp8_ = _tmp7_.x; +#line 33 "../src/intersectors.vala" + _tmp9_.x = (gdouble) _tmp8_.max; +#line 33 "../src/intersectors.vala" + _tmp9_.y = y; +#line 33 "../src/intersectors.vala" + _tmp10_.from = _tmp6_; +#line 33 "../src/intersectors.vala" + _tmp10_.to = _tmp9_; +#line 33 "../src/intersectors.vala" + *result = _tmp10_; +#line 33 "../src/intersectors.vala" + return; +#line 419 "intersectors.c" +} + +static void +live_chart_value_bezier_intersector_init (GValue* value) +{ +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = NULL; +#line 427 "intersectors.c" +} + +static void +live_chart_value_bezier_intersector_free_value (GValue* value) +{ +#line 6 "../src/intersectors.vala" + if (value->data[0].v_pointer) { +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_unref (value->data[0].v_pointer); +#line 437 "intersectors.c" + } +} + +static void +live_chart_value_bezier_intersector_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 6 "../src/intersectors.vala" + if (src_value->data[0].v_pointer) { +#line 6 "../src/intersectors.vala" + dest_value->data[0].v_pointer = live_chart_bezier_intersector_ref (src_value->data[0].v_pointer); +#line 449 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + dest_value->data[0].v_pointer = NULL; +#line 453 "intersectors.c" + } +} + +static gpointer +live_chart_value_bezier_intersector_peek_pointer (const GValue* value) +{ +#line 6 "../src/intersectors.vala" + return value->data[0].v_pointer; +#line 462 "intersectors.c" +} + +static gchar* +live_chart_value_bezier_intersector_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 6 "../src/intersectors.vala" + if (collect_values[0].v_pointer) { +#line 473 "intersectors.c" + LiveChartBezierIntersector * object; + object = collect_values[0].v_pointer; +#line 6 "../src/intersectors.vala" + if (object->parent_instance.g_class == NULL) { +#line 6 "../src/intersectors.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 480 "intersectors.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 6 "../src/intersectors.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 484 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = live_chart_bezier_intersector_ref (object); +#line 488 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = NULL; +#line 492 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + return NULL; +#line 496 "intersectors.c" +} + +static gchar* +live_chart_value_bezier_intersector_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartBezierIntersector ** object_p; + object_p = collect_values[0].v_pointer; +#line 6 "../src/intersectors.vala" + if (!object_p) { +#line 6 "../src/intersectors.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 511 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + if (!value->data[0].v_pointer) { +#line 6 "../src/intersectors.vala" + *object_p = NULL; +#line 517 "intersectors.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 6 "../src/intersectors.vala" + *object_p = value->data[0].v_pointer; +#line 521 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + *object_p = live_chart_bezier_intersector_ref (value->data[0].v_pointer); +#line 525 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + return NULL; +#line 529 "intersectors.c" +} + +GParamSpec* +live_chart_param_spec_bezier_intersector (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecBezierIntersector* spec; +#line 6 "../src/intersectors.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_BEZIER_INTERSECTOR), NULL); +#line 6 "../src/intersectors.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 6 "../src/intersectors.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 6 "../src/intersectors.vala" + return G_PARAM_SPEC (spec); +#line 548 "intersectors.c" +} + +gpointer +live_chart_value_get_bezier_intersector (const GValue* value) +{ +#line 6 "../src/intersectors.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_BEZIER_INTERSECTOR), NULL); +#line 6 "../src/intersectors.vala" + return value->data[0].v_pointer; +#line 558 "intersectors.c" +} + +void +live_chart_value_set_bezier_intersector (GValue* value, + gpointer v_object) +{ + LiveChartBezierIntersector * old; +#line 6 "../src/intersectors.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_BEZIER_INTERSECTOR)); +#line 6 "../src/intersectors.vala" + old = value->data[0].v_pointer; +#line 6 "../src/intersectors.vala" + if (v_object) { +#line 6 "../src/intersectors.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_BEZIER_INTERSECTOR)); +#line 6 "../src/intersectors.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = v_object; +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_ref (value->data[0].v_pointer); +#line 580 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = NULL; +#line 584 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + if (old) { +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_unref (old); +#line 590 "intersectors.c" + } +} + +void +live_chart_value_take_bezier_intersector (GValue* value, + gpointer v_object) +{ + LiveChartBezierIntersector * old; +#line 6 "../src/intersectors.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_BEZIER_INTERSECTOR)); +#line 6 "../src/intersectors.vala" + old = value->data[0].v_pointer; +#line 6 "../src/intersectors.vala" + if (v_object) { +#line 6 "../src/intersectors.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_BEZIER_INTERSECTOR)); +#line 6 "../src/intersectors.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = v_object; +#line 611 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = NULL; +#line 615 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + if (old) { +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_unref (old); +#line 621 "intersectors.c" + } +} + +static void +live_chart_bezier_intersector_class_init (LiveChartBezierIntersectorClass * klass, + gpointer klass_data) +{ +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/intersectors.vala" + ((LiveChartBezierIntersectorClass *) klass)->finalize = live_chart_bezier_intersector_finalize; +#line 6 "../src/intersectors.vala" + g_type_class_adjust_private_offset (klass, &LiveChartBezierIntersector_private_offset); +#line 635 "intersectors.c" +} + +static void +live_chart_bezier_intersector_live_chart_intersector_interface_init (LiveChartIntersectorIface * iface, + gpointer iface_data) +{ +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_live_chart_intersector_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/intersectors.vala" + iface->intersect = (void (*) (LiveChartIntersector*, LiveChartIntersections*, LiveChartPoint*, LiveChartPoint*, gconstpointer)) live_chart_bezier_intersector_real_intersect; +#line 646 "intersectors.c" +} + +static void +live_chart_bezier_intersector_instance_init (LiveChartBezierIntersector * self, + gpointer klass) +{ +#line 6 "../src/intersectors.vala" + self->priv = live_chart_bezier_intersector_get_instance_private (self); +#line 6 "../src/intersectors.vala" + self->ref_count = 1; +#line 657 "intersectors.c" +} + +static void +live_chart_bezier_intersector_finalize (LiveChartBezierIntersector * obj) +{ + LiveChartBezierIntersector * self; +#line 6 "../src/intersectors.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_BEZIER_INTERSECTOR, LiveChartBezierIntersector); +#line 6 "../src/intersectors.vala" + g_signal_handlers_destroy (self); +#line 7 "../src/intersectors.vala" + _live_chart_region_unref0 (self->priv->region); +#line 8 "../src/intersectors.vala" + _live_chart_config_unref0 (self->priv->config); +#line 672 "intersectors.c" +} + +static GType +live_chart_bezier_intersector_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_bezier_intersector_init, live_chart_value_bezier_intersector_free_value, live_chart_value_bezier_intersector_copy_value, live_chart_value_bezier_intersector_peek_pointer, "p", live_chart_value_bezier_intersector_collect_value, "p", live_chart_value_bezier_intersector_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartBezierIntersectorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_bezier_intersector_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartBezierIntersector), 0, (GInstanceInitFunc) live_chart_bezier_intersector_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + static const GInterfaceInfo live_chart_intersector_info = { (GInterfaceInitFunc) live_chart_bezier_intersector_live_chart_intersector_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_bezier_intersector_type_id; + live_chart_bezier_intersector_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartBezierIntersector", &g_define_type_info, &g_define_type_fundamental_info, 0); + g_type_add_interface_static (live_chart_bezier_intersector_type_id, LIVE_CHART_TYPE_INTERSECTOR, &live_chart_intersector_info); + LiveChartBezierIntersector_private_offset = g_type_add_instance_private (live_chart_bezier_intersector_type_id, sizeof (LiveChartBezierIntersectorPrivate)); + return live_chart_bezier_intersector_type_id; +} + +GType +live_chart_bezier_intersector_get_type (void) +{ + static volatile gsize live_chart_bezier_intersector_type_id__once = 0; + if (g_once_init_enter (&live_chart_bezier_intersector_type_id__once)) { + GType live_chart_bezier_intersector_type_id; + live_chart_bezier_intersector_type_id = live_chart_bezier_intersector_get_type_once (); + g_once_init_leave (&live_chart_bezier_intersector_type_id__once, live_chart_bezier_intersector_type_id); + } + return live_chart_bezier_intersector_type_id__once; +} + +gpointer +live_chart_bezier_intersector_ref (gpointer instance) +{ + LiveChartBezierIntersector * self; + self = instance; +#line 6 "../src/intersectors.vala" + g_atomic_int_inc (&self->ref_count); +#line 6 "../src/intersectors.vala" + return instance; +#line 710 "intersectors.c" +} + +void +live_chart_bezier_intersector_unref (gpointer instance) +{ + LiveChartBezierIntersector * self; + self = instance; +#line 6 "../src/intersectors.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 6 "../src/intersectors.vala" + LIVE_CHART_BEZIER_INTERSECTOR_GET_CLASS (self)->finalize (self); +#line 6 "../src/intersectors.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 724 "intersectors.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/labels.c b/iPDC/lib/liblivechart_static.a.p/labels.c new file mode 100644 index 0000000..a14803f --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/labels.c @@ -0,0 +1,485 @@ +/* labels.c generated by valac 0.56.0, the Vala compiler + * generated from labels.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include + +#define _live_chart_font_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_font_unref (var), NULL))) +typedef struct _LiveChartParamSpecLabels LiveChartParamSpecLabels; + +struct _LiveChartLabelsPrivate { + gboolean _visible; + cairo_text_extents_t _extents; + LiveChartFont* _font; +}; + +struct _LiveChartParamSpecLabels { + GParamSpec parent_instance; +}; + +static gint LiveChartLabels_private_offset; +static gpointer live_chart_labels_parent_class = NULL; + +static void live_chart_labels_finalize (LiveChartLabels * obj); +static GType live_chart_labels_get_type_once (void); + +static inline gpointer +live_chart_labels_get_instance_private (LiveChartLabels* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartLabels_private_offset); +} + +LiveChartLabels* +live_chart_labels_construct (GType object_type) +{ + LiveChartLabels* self = NULL; + cairo_text_extents_t _tmp0_ = {0}; + LiveChartFont* _tmp1_; + LiveChartFont* _tmp2_; + cairo_text_extents_t _tmp3_; + cairo_text_extents_t _tmp4_; + cairo_text_extents_t _tmp5_; + cairo_text_extents_t _tmp6_; + cairo_text_extents_t _tmp7_; + cairo_text_extents_t _tmp8_; +#line 11 "../src/labels.vala" + self = (LiveChartLabels*) g_type_create_instance (object_type); +#line 13 "../src/labels.vala" + live_chart_labels_set_visible (self, TRUE); +#line 14 "../src/labels.vala" + memset (&_tmp0_, 0, sizeof (cairo_text_extents_t)); +#line 14 "../src/labels.vala" + live_chart_labels_set_extents (self, &_tmp0_); +#line 15 "../src/labels.vala" + _tmp1_ = live_chart_font_new (); +#line 15 "../src/labels.vala" + _tmp2_ = _tmp1_; +#line 15 "../src/labels.vala" + live_chart_labels_set_font (self, _tmp2_); +#line 15 "../src/labels.vala" + _live_chart_font_unref0 (_tmp2_); +#line 17 "../src/labels.vala" + _tmp3_ = self->priv->_extents; +#line 17 "../src/labels.vala" + _tmp3_.height = 0.0; +#line 18 "../src/labels.vala" + _tmp4_ = self->priv->_extents; +#line 18 "../src/labels.vala" + _tmp4_.width = 0.0; +#line 19 "../src/labels.vala" + _tmp5_ = self->priv->_extents; +#line 19 "../src/labels.vala" + _tmp5_.x_advance = 0.0; +#line 20 "../src/labels.vala" + _tmp6_ = self->priv->_extents; +#line 20 "../src/labels.vala" + _tmp6_.x_bearing = 0.0; +#line 21 "../src/labels.vala" + _tmp7_ = self->priv->_extents; +#line 21 "../src/labels.vala" + _tmp7_.y_advance = 0.0; +#line 22 "../src/labels.vala" + _tmp8_ = self->priv->_extents; +#line 22 "../src/labels.vala" + _tmp8_.y_bearing = 0.0; +#line 11 "../src/labels.vala" + return self; +#line 91 "labels.c" +} + +LiveChartLabels* +live_chart_labels_new (void) +{ +#line 11 "../src/labels.vala" + return live_chart_labels_construct (LIVE_CHART_TYPE_LABELS); +#line 99 "labels.c" +} + +gboolean +live_chart_labels_get_visible (LiveChartLabels* self) +{ + gboolean result; +#line 7 "../src/labels.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 7 "../src/labels.vala" + result = self->priv->_visible; +#line 7 "../src/labels.vala" + return result; +#line 112 "labels.c" +} + +void +live_chart_labels_set_visible (LiveChartLabels* self, + gboolean value) +{ +#line 7 "../src/labels.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/labels.vala" + self->priv->_visible = value; +#line 123 "labels.c" +} + +void +live_chart_labels_get_extents (LiveChartLabels* self, + cairo_text_extents_t * result) +{ + cairo_text_extents_t _tmp0_; +#line 8 "../src/labels.vala" + g_return_if_fail (self != NULL); +#line 8 "../src/labels.vala" + _tmp0_ = self->priv->_extents; +#line 8 "../src/labels.vala" + *result = _tmp0_; +#line 8 "../src/labels.vala" + return; +#line 139 "labels.c" +} + +void +live_chart_labels_set_extents (LiveChartLabels* self, + cairo_text_extents_t * value) +{ + cairo_text_extents_t _tmp0_; +#line 8 "../src/labels.vala" + g_return_if_fail (self != NULL); +#line 8 "../src/labels.vala" + _tmp0_ = *value; +#line 8 "../src/labels.vala" + self->priv->_extents = _tmp0_; +#line 153 "labels.c" +} + +LiveChartFont* +live_chart_labels_get_font (LiveChartLabels* self) +{ + LiveChartFont* result; + LiveChartFont* _tmp0_; +#line 9 "../src/labels.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 9 "../src/labels.vala" + _tmp0_ = self->priv->_font; +#line 9 "../src/labels.vala" + result = _tmp0_; +#line 9 "../src/labels.vala" + return result; +#line 169 "labels.c" +} + +static gpointer +_live_chart_font_ref0 (gpointer self) +{ +#line 9 "../src/labels.vala" + return self ? live_chart_font_ref (self) : NULL; +#line 177 "labels.c" +} + +void +live_chart_labels_set_font (LiveChartLabels* self, + LiveChartFont* value) +{ + LiveChartFont* _tmp0_; +#line 9 "../src/labels.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/labels.vala" + _tmp0_ = _live_chart_font_ref0 (value); +#line 9 "../src/labels.vala" + _live_chart_font_unref0 (self->priv->_font); +#line 9 "../src/labels.vala" + self->priv->_font = _tmp0_; +#line 193 "labels.c" +} + +static void +live_chart_value_labels_init (GValue* value) +{ +#line 5 "../src/labels.vala" + value->data[0].v_pointer = NULL; +#line 201 "labels.c" +} + +static void +live_chart_value_labels_free_value (GValue* value) +{ +#line 5 "../src/labels.vala" + if (value->data[0].v_pointer) { +#line 5 "../src/labels.vala" + live_chart_labels_unref (value->data[0].v_pointer); +#line 211 "labels.c" + } +} + +static void +live_chart_value_labels_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 5 "../src/labels.vala" + if (src_value->data[0].v_pointer) { +#line 5 "../src/labels.vala" + dest_value->data[0].v_pointer = live_chart_labels_ref (src_value->data[0].v_pointer); +#line 223 "labels.c" + } else { +#line 5 "../src/labels.vala" + dest_value->data[0].v_pointer = NULL; +#line 227 "labels.c" + } +} + +static gpointer +live_chart_value_labels_peek_pointer (const GValue* value) +{ +#line 5 "../src/labels.vala" + return value->data[0].v_pointer; +#line 236 "labels.c" +} + +static gchar* +live_chart_value_labels_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 5 "../src/labels.vala" + if (collect_values[0].v_pointer) { +#line 247 "labels.c" + LiveChartLabels * object; + object = collect_values[0].v_pointer; +#line 5 "../src/labels.vala" + if (object->parent_instance.g_class == NULL) { +#line 5 "../src/labels.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 254 "labels.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 5 "../src/labels.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 258 "labels.c" + } +#line 5 "../src/labels.vala" + value->data[0].v_pointer = live_chart_labels_ref (object); +#line 262 "labels.c" + } else { +#line 5 "../src/labels.vala" + value->data[0].v_pointer = NULL; +#line 266 "labels.c" + } +#line 5 "../src/labels.vala" + return NULL; +#line 270 "labels.c" +} + +static gchar* +live_chart_value_labels_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartLabels ** object_p; + object_p = collect_values[0].v_pointer; +#line 5 "../src/labels.vala" + if (!object_p) { +#line 5 "../src/labels.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 285 "labels.c" + } +#line 5 "../src/labels.vala" + if (!value->data[0].v_pointer) { +#line 5 "../src/labels.vala" + *object_p = NULL; +#line 291 "labels.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 5 "../src/labels.vala" + *object_p = value->data[0].v_pointer; +#line 295 "labels.c" + } else { +#line 5 "../src/labels.vala" + *object_p = live_chart_labels_ref (value->data[0].v_pointer); +#line 299 "labels.c" + } +#line 5 "../src/labels.vala" + return NULL; +#line 303 "labels.c" +} + +GParamSpec* +live_chart_param_spec_labels (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecLabels* spec; +#line 5 "../src/labels.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_LABELS), NULL); +#line 5 "../src/labels.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 5 "../src/labels.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 5 "../src/labels.vala" + return G_PARAM_SPEC (spec); +#line 322 "labels.c" +} + +gpointer +live_chart_value_get_labels (const GValue* value) +{ +#line 5 "../src/labels.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_LABELS), NULL); +#line 5 "../src/labels.vala" + return value->data[0].v_pointer; +#line 332 "labels.c" +} + +void +live_chart_value_set_labels (GValue* value, + gpointer v_object) +{ + LiveChartLabels * old; +#line 5 "../src/labels.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_LABELS)); +#line 5 "../src/labels.vala" + old = value->data[0].v_pointer; +#line 5 "../src/labels.vala" + if (v_object) { +#line 5 "../src/labels.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_LABELS)); +#line 5 "../src/labels.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 5 "../src/labels.vala" + value->data[0].v_pointer = v_object; +#line 5 "../src/labels.vala" + live_chart_labels_ref (value->data[0].v_pointer); +#line 354 "labels.c" + } else { +#line 5 "../src/labels.vala" + value->data[0].v_pointer = NULL; +#line 358 "labels.c" + } +#line 5 "../src/labels.vala" + if (old) { +#line 5 "../src/labels.vala" + live_chart_labels_unref (old); +#line 364 "labels.c" + } +} + +void +live_chart_value_take_labels (GValue* value, + gpointer v_object) +{ + LiveChartLabels * old; +#line 5 "../src/labels.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_LABELS)); +#line 5 "../src/labels.vala" + old = value->data[0].v_pointer; +#line 5 "../src/labels.vala" + if (v_object) { +#line 5 "../src/labels.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_LABELS)); +#line 5 "../src/labels.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 5 "../src/labels.vala" + value->data[0].v_pointer = v_object; +#line 385 "labels.c" + } else { +#line 5 "../src/labels.vala" + value->data[0].v_pointer = NULL; +#line 389 "labels.c" + } +#line 5 "../src/labels.vala" + if (old) { +#line 5 "../src/labels.vala" + live_chart_labels_unref (old); +#line 395 "labels.c" + } +} + +static void +live_chart_labels_class_init (LiveChartLabelsClass * klass, + gpointer klass_data) +{ +#line 5 "../src/labels.vala" + live_chart_labels_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/labels.vala" + ((LiveChartLabelsClass *) klass)->finalize = live_chart_labels_finalize; +#line 5 "../src/labels.vala" + g_type_class_adjust_private_offset (klass, &LiveChartLabels_private_offset); +#line 409 "labels.c" +} + +static void +live_chart_labels_instance_init (LiveChartLabels * self, + gpointer klass) +{ +#line 5 "../src/labels.vala" + self->priv = live_chart_labels_get_instance_private (self); +#line 5 "../src/labels.vala" + self->ref_count = 1; +#line 420 "labels.c" +} + +static void +live_chart_labels_finalize (LiveChartLabels * obj) +{ + LiveChartLabels * self; +#line 5 "../src/labels.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_LABELS, LiveChartLabels); +#line 5 "../src/labels.vala" + g_signal_handlers_destroy (self); +#line 9 "../src/labels.vala" + _live_chart_font_unref0 (self->priv->_font); +#line 433 "labels.c" +} + +static GType +live_chart_labels_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_labels_init, live_chart_value_labels_free_value, live_chart_value_labels_copy_value, live_chart_value_labels_peek_pointer, "p", live_chart_value_labels_collect_value, "p", live_chart_value_labels_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartLabelsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_labels_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartLabels), 0, (GInstanceInitFunc) live_chart_labels_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_labels_type_id; + live_chart_labels_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartLabels", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartLabels_private_offset = g_type_add_instance_private (live_chart_labels_type_id, sizeof (LiveChartLabelsPrivate)); + return live_chart_labels_type_id; +} + +GType +live_chart_labels_get_type (void) +{ + static volatile gsize live_chart_labels_type_id__once = 0; + if (g_once_init_enter (&live_chart_labels_type_id__once)) { + GType live_chart_labels_type_id; + live_chart_labels_type_id = live_chart_labels_get_type_once (); + g_once_init_leave (&live_chart_labels_type_id__once, live_chart_labels_type_id); + } + return live_chart_labels_type_id__once; +} + +gpointer +live_chart_labels_ref (gpointer instance) +{ + LiveChartLabels * self; + self = instance; +#line 5 "../src/labels.vala" + g_atomic_int_inc (&self->ref_count); +#line 5 "../src/labels.vala" + return instance; +#line 469 "labels.c" +} + +void +live_chart_labels_unref (gpointer instance) +{ + LiveChartLabels * self; + self = instance; +#line 5 "../src/labels.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 5 "../src/labels.vala" + LIVE_CHART_LABELS_GET_CLASS (self)->finalize (self); +#line 5 "../src/labels.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 483 "labels.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/legend.c b/iPDC/lib/liblivechart_static.a.p/legend.c new file mode 100644 index 0000000..df67be3 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/legend.c @@ -0,0 +1,1051 @@ +/* legend.c generated by valac 0.56.0, the Vala compiler + * generated from legend.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_WIDTH 15 +#define LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_HEIGHT 10 + +enum { + LIVE_CHART_LEGEND_0_PROPERTY, + LIVE_CHART_LEGEND_VISIBLE_PROPERTY, + LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY, + LIVE_CHART_LEGEND_NUM_PROPERTIES +}; +static GParamSpec* live_chart_legend_properties[LIVE_CHART_LEGEND_NUM_PROPERTIES]; +#define _live_chart_labels_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_labels_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +enum { + LIVE_CHART_HORIZONTAL_LEGEND_0_PROPERTY, + LIVE_CHART_HORIZONTAL_LEGEND_NUM_PROPERTIES +}; +static GParamSpec* live_chart_horizontal_legend_properties[LIVE_CHART_HORIZONTAL_LEGEND_NUM_PROPERTIES]; +#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL))) +typedef struct _Block3Data Block3Data; +typedef struct _Block4Data Block4Data; +#define _g_free0(var) (var = (g_free (var), NULL)) +enum { + LIVE_CHART_NOOP_LEGEND_0_PROPERTY, + LIVE_CHART_NOOP_LEGEND_NUM_PROPERTIES +}; +static GParamSpec* live_chart_noop_legend_properties[LIVE_CHART_NOOP_LEGEND_NUM_PROPERTIES]; + +struct _LiveChartLegendPrivate { + gboolean _visible; + GdkRGBA _main_color; +}; + +struct _Block3Data { + int _ref_count_; + LiveChartHorizontalLegend* self; + cairo_t* ctx; +}; + +struct _Block4Data { + int _ref_count_; + Block3Data * _data3_; + gint y_padding; + LiveChartBoundaries boundaries; + gint pos; +}; + +static gint LiveChartLegend_private_offset; +static gpointer live_chart_legend_parent_class = NULL; +static LiveChartDrawableIface * live_chart_legend_live_chart_drawable_parent_iface = NULL; +static gpointer live_chart_horizontal_legend_parent_class = NULL; +static gpointer live_chart_noop_legend_parent_class = NULL; + +static void live_chart_legend_real_draw (LiveChartLegend* self, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_legend_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_legend_finalize (GObject * obj); +static GType live_chart_legend_get_type_once (void); +static void _vala_live_chart_legend_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_legend_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static void live_chart_horizontal_legend_real_draw (LiveChartLegend* base, + cairo_t* ctx, + LiveChartConfig* config); +static Block3Data* block3_data_ref (Block3Data* _data3_); +static void block3_data_unref (void * _userdata_); +static Block4Data* block4_data_ref (Block4Data* _data4_); +static void block4_data_unref (void * _userdata_); +static gint live_chart_horizontal_legend_get_y_padding (LiveChartHorizontalLegend* self, + LiveChartConfig* config); +static gboolean ___lambda6_ (Block4Data* _data4_, + LiveChartSerie* serie); +static void live_chart_horizontal_legend_name_extents (LiveChartHorizontalLegend* self, + const gchar* name, + cairo_t* ctx, + cairo_text_extents_t* result); +static gboolean ____lambda6__gee_forall_func (gpointer g, + gpointer self); +static void live_chart_horizontal_legend_update_bounding_box (LiveChartHorizontalLegend* self, + LiveChartConfig* config, + gint width); +static GType live_chart_horizontal_legend_get_type_once (void); +static void live_chart_noop_legend_real_draw (LiveChartLegend* base, + cairo_t* ctx, + LiveChartConfig* config); +static GType live_chart_noop_legend_get_type_once (void); + +static inline gpointer +live_chart_legend_get_instance_private (LiveChartLegend* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartLegend_private_offset); +} + +void +live_chart_legend_add_legend (LiveChartLegend* self, + LiveChartSerie* serie) +{ + GeeArrayList* _tmp0_; +#line 25 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 25 "../src/legend.vala" + g_return_if_fail (serie != NULL); +#line 26 "../src/legend.vala" + _tmp0_ = self->series; +#line 26 "../src/legend.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, serie); +#line 130 "legend.c" +} + +static void +live_chart_legend_real_draw (LiveChartLegend* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 29 "../src/legend.vala" + g_critical ("Type `%s' does not implement abstract method `live_chart_legend_draw'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 29 "../src/legend.vala" + return; +#line 142 "legend.c" +} + +void +live_chart_legend_draw (LiveChartLegend* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartLegendClass* _klass_; +#line 29 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 29 "../src/legend.vala" + _klass_ = LIVE_CHART_LEGEND_GET_CLASS (self); +#line 29 "../src/legend.vala" + if (_klass_->draw) { +#line 29 "../src/legend.vala" + _klass_->draw (self, ctx, config); +#line 159 "legend.c" + } +} + +static void +live_chart_legend_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartLegend * self; + LiveChartBoundingBox _tmp0_; +#line 30 "../src/legend.vala" + self = (LiveChartLegend*) base; +#line 31 "../src/legend.vala" + _tmp0_ = self->bounding_box; +#line 31 "../src/legend.vala" + *result = _tmp0_; +#line 31 "../src/legend.vala" + return; +#line 177 "legend.c" +} + +LiveChartLegend* +live_chart_legend_construct (GType object_type) +{ + LiveChartLegend * self = NULL; +#line 5 "../src/legend.vala" + self = (LiveChartLegend*) g_object_new (object_type, NULL); +#line 5 "../src/legend.vala" + return self; +#line 188 "legend.c" +} + +static gboolean +live_chart_legend_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartLegend* self; +#line 7 "../src/legend.vala" + self = (LiveChartLegend*) base; +#line 7 "../src/legend.vala" + result = self->priv->_visible; +#line 7 "../src/legend.vala" + return result; +#line 202 "legend.c" +} + +static void +live_chart_legend_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartLegend* self; + gboolean old_value; +#line 7 "../src/legend.vala" + self = (LiveChartLegend*) base; +#line 7 "../src/legend.vala" + old_value = live_chart_legend_real_get_visible (base); +#line 7 "../src/legend.vala" + if (old_value != value) { +#line 7 "../src/legend.vala" + self->priv->_visible = value; +#line 7 "../src/legend.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_legend_properties[LIVE_CHART_LEGEND_VISIBLE_PROPERTY]); +#line 221 "legend.c" + } +} + +void +live_chart_legend_get_main_color (LiveChartLegend* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 18 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 18 "../src/legend.vala" + _tmp0_ = self->priv->_main_color; +#line 18 "../src/legend.vala" + *result = _tmp0_; +#line 18 "../src/legend.vala" + return; +#line 238 "legend.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 18 "../src/legend.vala" + if (s1 == s2) { +#line 18 "../src/legend.vala" + return TRUE; +#line 249 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1 == NULL) { +#line 18 "../src/legend.vala" + return FALSE; +#line 255 "legend.c" + } +#line 18 "../src/legend.vala" + if (s2 == NULL) { +#line 18 "../src/legend.vala" + return FALSE; +#line 261 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1->red != s2->red) { +#line 18 "../src/legend.vala" + return FALSE; +#line 267 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1->green != s2->green) { +#line 18 "../src/legend.vala" + return FALSE; +#line 273 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1->blue != s2->blue) { +#line 18 "../src/legend.vala" + return FALSE; +#line 279 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1->alpha != s2->alpha) { +#line 18 "../src/legend.vala" + return FALSE; +#line 285 "legend.c" + } +#line 18 "../src/legend.vala" + return TRUE; +#line 289 "legend.c" +} + +void +live_chart_legend_set_main_color (LiveChartLegend* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 18 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 18 "../src/legend.vala" + live_chart_legend_get_main_color (self, &old_value); +#line 18 "../src/legend.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 303 "legend.c" + GdkRGBA _tmp0_; +#line 18 "../src/legend.vala" + _tmp0_ = *value; +#line 18 "../src/legend.vala" + self->priv->_main_color = _tmp0_; +#line 18 "../src/legend.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_legend_properties[LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY]); +#line 311 "legend.c" + } +} + +static void +live_chart_legend_class_init (LiveChartLegendClass * klass, + gpointer klass_data) +{ +#line 5 "../src/legend.vala" + live_chart_legend_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/legend.vala" + g_type_class_adjust_private_offset (klass, &LiveChartLegend_private_offset); +#line 5 "../src/legend.vala" + ((LiveChartLegendClass *) klass)->draw = (void (*) (LiveChartLegend*, cairo_t*, LiveChartConfig*)) live_chart_legend_real_draw; +#line 5 "../src/legend.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_legend_get_property; +#line 5 "../src/legend.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_legend_set_property; +#line 5 "../src/legend.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_legend_finalize; +#line 5 "../src/legend.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_LEGEND_VISIBLE_PROPERTY, live_chart_legend_properties[LIVE_CHART_LEGEND_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 5 "../src/legend.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY, live_chart_legend_properties[LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 335 "legend.c" +} + +static void +live_chart_legend_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 5 "../src/legend.vala" + live_chart_legend_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 5 "../src/legend.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_legend_draw; +#line 5 "../src/legend.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_legend_real_get_bounding_box; +#line 5 "../src/legend.vala" + iface->get_visible = live_chart_legend_real_get_visible; +#line 5 "../src/legend.vala" + iface->set_visible = live_chart_legend_real_set_visible; +#line 352 "legend.c" +} + +static void +live_chart_legend_instance_init (LiveChartLegend * self, + gpointer klass) +{ + LiveChartLabels* _tmp0_; + GeeArrayList* _tmp1_; + LiveChartBoundingBox _tmp2_ = {0}; + GdkRGBA _tmp3_ = {0}; +#line 5 "../src/legend.vala" + self->priv = live_chart_legend_get_instance_private (self); +#line 7 "../src/legend.vala" + self->priv->_visible = TRUE; +#line 8 "../src/legend.vala" + _tmp0_ = live_chart_labels_new (); +#line 8 "../src/legend.vala" + self->labels = _tmp0_; +#line 10 "../src/legend.vala" + _tmp1_ = gee_array_list_new (LIVE_CHART_TYPE_SERIE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL); +#line 10 "../src/legend.vala" + self->series = _tmp1_; +#line 11 "../src/legend.vala" + memset (&_tmp2_, 0, sizeof (LiveChartBoundingBox)); +#line 11 "../src/legend.vala" + _tmp2_.x = (gdouble) 0; +#line 11 "../src/legend.vala" + _tmp2_.y = (gdouble) 0; +#line 11 "../src/legend.vala" + _tmp2_.width = (gdouble) 0; +#line 11 "../src/legend.vala" + _tmp2_.height = (gdouble) 0; +#line 11 "../src/legend.vala" + self->bounding_box = _tmp2_; +#line 17 "../src/legend.vala" + memset (&_tmp3_, 0, sizeof (GdkRGBA)); +#line 17 "../src/legend.vala" + _tmp3_.red = 1.0; +#line 17 "../src/legend.vala" + _tmp3_.green = 1.0; +#line 17 "../src/legend.vala" + _tmp3_.blue = 1.0; +#line 17 "../src/legend.vala" + _tmp3_.alpha = 1.0; +#line 17 "../src/legend.vala" + self->priv->_main_color = _tmp3_; +#line 399 "legend.c" +} + +static void +live_chart_legend_finalize (GObject * obj) +{ + LiveChartLegend * self; +#line 5 "../src/legend.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_LEGEND, LiveChartLegend); +#line 8 "../src/legend.vala" + _live_chart_labels_unref0 (self->labels); +#line 10 "../src/legend.vala" + _g_object_unref0 (self->series); +#line 5 "../src/legend.vala" + G_OBJECT_CLASS (live_chart_legend_parent_class)->finalize (obj); +#line 414 "legend.c" +} + +static GType +live_chart_legend_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartLegendClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_legend_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartLegend), 0, (GInstanceInitFunc) live_chart_legend_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_legend_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_legend_type_id; + live_chart_legend_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartLegend", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (live_chart_legend_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartLegend_private_offset = g_type_add_instance_private (live_chart_legend_type_id, sizeof (LiveChartLegendPrivate)); + return live_chart_legend_type_id; +} + +GType +live_chart_legend_get_type (void) +{ + static volatile gsize live_chart_legend_type_id__once = 0; + if (g_once_init_enter (&live_chart_legend_type_id__once)) { + GType live_chart_legend_type_id; + live_chart_legend_type_id = live_chart_legend_get_type_once (); + g_once_init_leave (&live_chart_legend_type_id__once, live_chart_legend_type_id); + } + return live_chart_legend_type_id__once; +} + +static void +_vala_live_chart_legend_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartLegend * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_LEGEND, LiveChartLegend); +#line 5 "../src/legend.vala" + switch (property_id) { +#line 5 "../src/legend.vala" + case LIVE_CHART_LEGEND_VISIBLE_PROPERTY: +#line 5 "../src/legend.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 5 "../src/legend.vala" + break; +#line 5 "../src/legend.vala" + case LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY: +#line 459 "legend.c" + { + GdkRGBA boxed; +#line 5 "../src/legend.vala" + live_chart_legend_get_main_color (self, &boxed); +#line 5 "../src/legend.vala" + g_value_set_boxed (value, &boxed); +#line 466 "legend.c" + } +#line 5 "../src/legend.vala" + break; +#line 470 "legend.c" + default: +#line 5 "../src/legend.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/legend.vala" + break; +#line 476 "legend.c" + } +} + +static void +_vala_live_chart_legend_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartLegend * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_LEGEND, LiveChartLegend); +#line 5 "../src/legend.vala" + switch (property_id) { +#line 5 "../src/legend.vala" + case LIVE_CHART_LEGEND_VISIBLE_PROPERTY: +#line 5 "../src/legend.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 5 "../src/legend.vala" + break; +#line 5 "../src/legend.vala" + case LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY: +#line 5 "../src/legend.vala" + live_chart_legend_set_main_color (self, g_value_get_boxed (value)); +#line 5 "../src/legend.vala" + break; +#line 502 "legend.c" + default: +#line 5 "../src/legend.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/legend.vala" + break; +#line 508 "legend.c" + } +} + +static gpointer +_cairo_reference0 (gpointer self) +{ +#line 40 "../src/legend.vala" + return self ? cairo_reference (self) : NULL; +#line 517 "legend.c" +} + +static Block3Data* +block3_data_ref (Block3Data* _data3_) +{ +#line 40 "../src/legend.vala" + g_atomic_int_inc (&_data3_->_ref_count_); +#line 40 "../src/legend.vala" + return _data3_; +#line 527 "legend.c" +} + +static void +block3_data_unref (void * _userdata_) +{ + Block3Data* _data3_; + _data3_ = (Block3Data*) _userdata_; +#line 40 "../src/legend.vala" + if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) { +#line 537 "legend.c" + LiveChartHorizontalLegend* self; +#line 40 "../src/legend.vala" + self = _data3_->self; +#line 40 "../src/legend.vala" + _cairo_destroy0 (_data3_->ctx); +#line 40 "../src/legend.vala" + _g_object_unref0 (self); +#line 40 "../src/legend.vala" + g_slice_free (Block3Data, _data3_); +#line 547 "legend.c" + } +} + +static Block4Data* +block4_data_ref (Block4Data* _data4_) +{ +#line 41 "../src/legend.vala" + g_atomic_int_inc (&_data4_->_ref_count_); +#line 41 "../src/legend.vala" + return _data4_; +#line 558 "legend.c" +} + +static void +block4_data_unref (void * _userdata_) +{ + Block4Data* _data4_; + _data4_ = (Block4Data*) _userdata_; +#line 41 "../src/legend.vala" + if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) { +#line 568 "legend.c" + LiveChartHorizontalLegend* self; +#line 41 "../src/legend.vala" + self = _data4_->_data3_->self; +#line 41 "../src/legend.vala" + block3_data_unref (_data4_->_data3_); +#line 41 "../src/legend.vala" + _data4_->_data3_ = NULL; +#line 41 "../src/legend.vala" + g_slice_free (Block4Data, _data4_); +#line 578 "legend.c" + } +} + +static gboolean +___lambda6_ (Block4Data* _data4_, + LiveChartSerie* serie) +{ + Block3Data* _data3_; + LiveChartHorizontalLegend* self; + GdkRGBA _tmp0_ = {0}; + GdkRGBA _tmp1_; + GdkRGBA _tmp2_ = {0}; + GdkRGBA _tmp3_; + GdkRGBA _tmp4_ = {0}; + GdkRGBA _tmp5_; + LiveChartBoundaries _tmp6_; + LiveChartBoundary _tmp7_; + LiveChartBoundaries _tmp8_; + LiveChartBoundary _tmp9_; + LiveChartLabels* _tmp10_; + LiveChartFont* _tmp11_; + LiveChartFont* _tmp12_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp13_; + const gchar* _tmp14_; + cairo_text_extents_t _tmp15_ = {0}; + LiveChartBoundaries _tmp16_; + LiveChartBoundary _tmp17_; + LiveChartBoundaries _tmp18_; + LiveChartBoundary _tmp19_; + cairo_text_extents_t _tmp20_; + cairo_text_extents_t _tmp21_; + const gchar* _tmp22_; + const gchar* _tmp23_; + cairo_text_extents_t _tmp24_; + gboolean result; +#line 46 "../src/legend.vala" + _data3_ = _data4_->_data3_; +#line 46 "../src/legend.vala" + self = _data3_->self; +#line 46 "../src/legend.vala" + g_return_val_if_fail (serie != NULL, FALSE); +#line 47 "../src/legend.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) serie, &_tmp0_); +#line 47 "../src/legend.vala" + _tmp1_ = _tmp0_; +#line 47 "../src/legend.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) serie, &_tmp2_); +#line 47 "../src/legend.vala" + _tmp3_ = _tmp2_; +#line 47 "../src/legend.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) serie, &_tmp4_); +#line 47 "../src/legend.vala" + _tmp5_ = _tmp4_; +#line 47 "../src/legend.vala" + cairo_set_source_rgba (_data3_->ctx, _tmp1_.red, _tmp3_.green, _tmp5_.blue, (gdouble) 1); +#line 48 "../src/legend.vala" + _tmp6_ = _data4_->boundaries; +#line 48 "../src/legend.vala" + _tmp7_ = _tmp6_.x; +#line 48 "../src/legend.vala" + _tmp8_ = _data4_->boundaries; +#line 48 "../src/legend.vala" + _tmp9_ = _tmp8_.y; +#line 48 "../src/legend.vala" + cairo_rectangle (_data3_->ctx, (gdouble) (_tmp7_.min + _data4_->pos), (gdouble) (_tmp9_.max + _data4_->y_padding), (gdouble) LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_WIDTH, (gdouble) LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_HEIGHT); +#line 49 "../src/legend.vala" + cairo_fill (_data3_->ctx); +#line 51 "../src/legend.vala" + _tmp10_ = ((LiveChartLegend*) self)->labels; +#line 51 "../src/legend.vala" + _tmp11_ = live_chart_labels_get_font (_tmp10_); +#line 51 "../src/legend.vala" + _tmp12_ = _tmp11_; +#line 51 "../src/legend.vala" + live_chart_font_configure (_tmp12_, _data3_->ctx); +#line 52 "../src/legend.vala" + _tmp13_ = live_chart_serie_get_name (serie); +#line 52 "../src/legend.vala" + _tmp14_ = _tmp13_; +#line 52 "../src/legend.vala" + live_chart_horizontal_legend_name_extents (self, _tmp14_, _data3_->ctx, &_tmp15_); +#line 52 "../src/legend.vala" + extents = _tmp15_; +#line 53 "../src/legend.vala" + _tmp16_ = _data4_->boundaries; +#line 53 "../src/legend.vala" + _tmp17_ = _tmp16_.x; +#line 53 "../src/legend.vala" + _tmp18_ = _data4_->boundaries; +#line 53 "../src/legend.vala" + _tmp19_ = _tmp18_.y; +#line 53 "../src/legend.vala" + _tmp20_ = extents; +#line 53 "../src/legend.vala" + _tmp21_ = extents; +#line 53 "../src/legend.vala" + cairo_move_to (_data3_->ctx, (gdouble) (((_tmp17_.min + _data4_->pos) + LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_WIDTH) + 3), ((_tmp19_.max + _data4_->y_padding) + _tmp20_.height) + ((LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_HEIGHT - _tmp21_.height) / 2)); +#line 54 "../src/legend.vala" + _tmp22_ = live_chart_serie_get_name (serie); +#line 54 "../src/legend.vala" + _tmp23_ = _tmp22_; +#line 54 "../src/legend.vala" + cairo_show_text (_data3_->ctx, _tmp23_); +#line 56 "../src/legend.vala" + _tmp24_ = extents; +#line 56 "../src/legend.vala" + _data4_->pos += (LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_WIDTH + ((gint) _tmp24_.width)) + 20; +#line 58 "../src/legend.vala" + result = TRUE; +#line 58 "../src/legend.vala" + _g_object_unref0 (serie); +#line 58 "../src/legend.vala" + return result; +#line 693 "legend.c" +} + +static gboolean +____lambda6__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = ___lambda6_ (self, (LiveChartSerie*) g); +#line 46 "../src/legend.vala" + return result; +#line 704 "legend.c" +} + +static void +live_chart_horizontal_legend_real_draw (LiveChartLegend* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartHorizontalLegend * self; + Block3Data* _data3_; + cairo_t* _tmp0_; + gboolean _tmp1_; + gboolean _tmp2_; +#line 40 "../src/legend.vala" + self = (LiveChartHorizontalLegend*) base; +#line 40 "../src/legend.vala" + g_return_if_fail (ctx != NULL); +#line 40 "../src/legend.vala" + g_return_if_fail (config != NULL); +#line 40 "../src/legend.vala" + _data3_ = g_slice_new0 (Block3Data); +#line 40 "../src/legend.vala" + _data3_->_ref_count_ = 1; +#line 40 "../src/legend.vala" + _data3_->self = g_object_ref (self); +#line 40 "../src/legend.vala" + _tmp0_ = _cairo_reference0 (ctx); +#line 40 "../src/legend.vala" + _cairo_destroy0 (_data3_->ctx); +#line 40 "../src/legend.vala" + _data3_->ctx = _tmp0_; +#line 41 "../src/legend.vala" + _tmp1_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 41 "../src/legend.vala" + _tmp2_ = _tmp1_; +#line 41 "../src/legend.vala" + if (_tmp2_) { +#line 741 "legend.c" + Block4Data* _data4_; + LiveChartBoundaries _tmp3_ = {0}; + GeeArrayList* _tmp4_; +#line 41 "../src/legend.vala" + _data4_ = g_slice_new0 (Block4Data); +#line 41 "../src/legend.vala" + _data4_->_ref_count_ = 1; +#line 41 "../src/legend.vala" + _data4_->_data3_ = block3_data_ref (_data3_); +#line 43 "../src/legend.vala" + _data4_->y_padding = live_chart_horizontal_legend_get_y_padding (self, config); +#line 44 "../src/legend.vala" + live_chart_config_boundaries (config, &_tmp3_); +#line 44 "../src/legend.vala" + _data4_->boundaries = _tmp3_; +#line 45 "../src/legend.vala" + _data4_->pos = 0; +#line 46 "../src/legend.vala" + _tmp4_ = ((LiveChartLegend*) self)->series; +#line 46 "../src/legend.vala" + gee_abstract_collection_foreach ((GeeAbstractCollection*) _tmp4_, ____lambda6__gee_forall_func, _data4_); +#line 60 "../src/legend.vala" + cairo_stroke (_data3_->ctx); +#line 61 "../src/legend.vala" + live_chart_horizontal_legend_update_bounding_box (self, config, _data4_->pos); +#line 62 "../src/legend.vala" + live_chart_horizontal_legend_debug (self, _data3_->ctx); +#line 41 "../src/legend.vala" + block4_data_unref (_data4_); +#line 41 "../src/legend.vala" + _data4_ = NULL; +#line 773 "legend.c" + } +#line 40 "../src/legend.vala" + block3_data_unref (_data3_); +#line 40 "../src/legend.vala" + _data3_ = NULL; +#line 779 "legend.c" +} + +static gint +live_chart_horizontal_legend_get_y_padding (LiveChartHorizontalLegend* self, + LiveChartConfig* config) +{ + LiveChartXAxis* _tmp0_; + LiveChartLabels* _tmp1_; + cairo_text_extents_t _tmp2_ = {0}; + cairo_text_extents_t _tmp3_; + gint result; +#line 66 "../src/legend.vala" + g_return_val_if_fail (self != NULL, 0); +#line 66 "../src/legend.vala" + g_return_val_if_fail (config != NULL, 0); +#line 67 "../src/legend.vala" + _tmp0_ = config->x_axis; +#line 67 "../src/legend.vala" + _tmp1_ = _tmp0_->labels; +#line 67 "../src/legend.vala" + live_chart_labels_get_extents (_tmp1_, &_tmp2_); +#line 67 "../src/legend.vala" + _tmp3_ = _tmp2_; +#line 67 "../src/legend.vala" + result = (gint) ((LIVE_CHART_GRID_ABSCISSA_TIME_PADDING * 2) + _tmp3_.height); +#line 67 "../src/legend.vala" + return result; +#line 807 "legend.c" +} + +static void +live_chart_horizontal_legend_name_extents (LiveChartHorizontalLegend* self, + const gchar* name, + cairo_t* ctx, + cairo_text_extents_t* result) +{ + cairo_text_extents_t name_extents = {0}; + cairo_text_extents_t _tmp0_ = {0}; +#line 70 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 70 "../src/legend.vala" + g_return_if_fail (name != NULL); +#line 70 "../src/legend.vala" + g_return_if_fail (ctx != NULL); +#line 72 "../src/legend.vala" + cairo_text_extents (ctx, name, &_tmp0_); +#line 72 "../src/legend.vala" + name_extents = _tmp0_; +#line 74 "../src/legend.vala" + *result = name_extents; +#line 74 "../src/legend.vala" + return; +#line 832 "legend.c" +} + +static void +live_chart_horizontal_legend_update_bounding_box (LiveChartHorizontalLegend* self, + LiveChartConfig* config, + gint width) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartBoundaries _tmp3_; + LiveChartBoundary _tmp4_; + LiveChartBoundingBox _tmp5_ = {0}; +#line 77 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 77 "../src/legend.vala" + g_return_if_fail (config != NULL); +#line 78 "../src/legend.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 78 "../src/legend.vala" + boundaries = _tmp0_; +#line 79 "../src/legend.vala" + _tmp1_ = boundaries; +#line 79 "../src/legend.vala" + _tmp2_ = _tmp1_.x; +#line 79 "../src/legend.vala" + _tmp3_ = boundaries; +#line 79 "../src/legend.vala" + _tmp4_ = _tmp3_.y; +#line 79 "../src/legend.vala" + memset (&_tmp5_, 0, sizeof (LiveChartBoundingBox)); +#line 79 "../src/legend.vala" + _tmp5_.x = (gdouble) _tmp2_.min; +#line 79 "../src/legend.vala" + _tmp5_.y = (gdouble) (_tmp4_.max + live_chart_horizontal_legend_get_y_padding (self, config)); +#line 79 "../src/legend.vala" + _tmp5_.width = (gdouble) width; +#line 79 "../src/legend.vala" + _tmp5_.height = (gdouble) 10; +#line 79 "../src/legend.vala" + ((LiveChartLegend*) self)->bounding_box = _tmp5_; +#line 875 "legend.c" +} + +void +live_chart_horizontal_legend_debug (LiveChartHorizontalLegend* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 87 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 87 "../src/legend.vala" + g_return_if_fail (ctx != NULL); +#line 88 "../src/legend.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 88 "../src/legend.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 88 "../src/legend.vala" + debug = _tmp1_; +#line 89 "../src/legend.vala" + _tmp2_ = debug; +#line 89 "../src/legend.vala" + if (_tmp2_ != NULL) { +#line 900 "legend.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 90 "../src/legend.vala" + _tmp3_ = ((LiveChartLegend*) self)->bounding_box; +#line 90 "../src/legend.vala" + _tmp4_ = ((LiveChartLegend*) self)->bounding_box; +#line 90 "../src/legend.vala" + _tmp5_ = ((LiveChartLegend*) self)->bounding_box; +#line 90 "../src/legend.vala" + _tmp6_ = ((LiveChartLegend*) self)->bounding_box; +#line 90 "../src/legend.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 91 "../src/legend.vala" + cairo_stroke (ctx); +#line 917 "legend.c" + } +#line 87 "../src/legend.vala" + _g_free0 (debug); +#line 921 "legend.c" +} + +LiveChartHorizontalLegend* +live_chart_horizontal_legend_construct (GType object_type) +{ + LiveChartHorizontalLegend * self = NULL; +#line 35 "../src/legend.vala" + self = (LiveChartHorizontalLegend*) live_chart_legend_construct (object_type); +#line 35 "../src/legend.vala" + return self; +#line 932 "legend.c" +} + +LiveChartHorizontalLegend* +live_chart_horizontal_legend_new (void) +{ +#line 35 "../src/legend.vala" + return live_chart_horizontal_legend_construct (LIVE_CHART_TYPE_HORIZONTAL_LEGEND); +#line 940 "legend.c" +} + +static void +live_chart_horizontal_legend_class_init (LiveChartHorizontalLegendClass * klass, + gpointer klass_data) +{ +#line 35 "../src/legend.vala" + live_chart_horizontal_legend_parent_class = g_type_class_peek_parent (klass); +#line 35 "../src/legend.vala" + ((LiveChartLegendClass *) klass)->draw = (void (*) (LiveChartLegend*, cairo_t*, LiveChartConfig*)) live_chart_horizontal_legend_real_draw; +#line 951 "legend.c" +} + +static void +live_chart_horizontal_legend_instance_init (LiveChartHorizontalLegend * self, + gpointer klass) +{ +} + +static GType +live_chart_horizontal_legend_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartHorizontalLegendClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_horizontal_legend_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartHorizontalLegend), 0, (GInstanceInitFunc) live_chart_horizontal_legend_instance_init, NULL }; + GType live_chart_horizontal_legend_type_id; + live_chart_horizontal_legend_type_id = g_type_register_static (LIVE_CHART_TYPE_LEGEND, "LiveChartHorizontalLegend", &g_define_type_info, 0); + return live_chart_horizontal_legend_type_id; +} + +GType +live_chart_horizontal_legend_get_type (void) +{ + static volatile gsize live_chart_horizontal_legend_type_id__once = 0; + if (g_once_init_enter (&live_chart_horizontal_legend_type_id__once)) { + GType live_chart_horizontal_legend_type_id; + live_chart_horizontal_legend_type_id = live_chart_horizontal_legend_get_type_once (); + g_once_init_leave (&live_chart_horizontal_legend_type_id__once, live_chart_horizontal_legend_type_id); + } + return live_chart_horizontal_legend_type_id__once; +} + +static void +live_chart_noop_legend_real_draw (LiveChartLegend* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartNoopLegend * self; +#line 97 "../src/legend.vala" + self = (LiveChartNoopLegend*) base; +#line 97 "../src/legend.vala" + g_return_if_fail (ctx != NULL); +#line 97 "../src/legend.vala" + g_return_if_fail (config != NULL); +#line 993 "legend.c" +} + +LiveChartNoopLegend* +live_chart_noop_legend_construct (GType object_type) +{ + LiveChartNoopLegend * self = NULL; +#line 96 "../src/legend.vala" + self = (LiveChartNoopLegend*) live_chart_legend_construct (object_type); +#line 96 "../src/legend.vala" + return self; +#line 1004 "legend.c" +} + +LiveChartNoopLegend* +live_chart_noop_legend_new (void) +{ +#line 96 "../src/legend.vala" + return live_chart_noop_legend_construct (LIVE_CHART_TYPE_NOOP_LEGEND); +#line 1012 "legend.c" +} + +static void +live_chart_noop_legend_class_init (LiveChartNoopLegendClass * klass, + gpointer klass_data) +{ +#line 96 "../src/legend.vala" + live_chart_noop_legend_parent_class = g_type_class_peek_parent (klass); +#line 96 "../src/legend.vala" + ((LiveChartLegendClass *) klass)->draw = (void (*) (LiveChartLegend*, cairo_t*, LiveChartConfig*)) live_chart_noop_legend_real_draw; +#line 1023 "legend.c" +} + +static void +live_chart_noop_legend_instance_init (LiveChartNoopLegend * self, + gpointer klass) +{ +} + +static GType +live_chart_noop_legend_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartNoopLegendClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_noop_legend_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartNoopLegend), 0, (GInstanceInitFunc) live_chart_noop_legend_instance_init, NULL }; + GType live_chart_noop_legend_type_id; + live_chart_noop_legend_type_id = g_type_register_static (LIVE_CHART_TYPE_LEGEND, "LiveChartNoopLegend", &g_define_type_info, 0); + return live_chart_noop_legend_type_id; +} + +GType +live_chart_noop_legend_get_type (void) +{ + static volatile gsize live_chart_noop_legend_type_id__once = 0; + if (g_once_init_enter (&live_chart_noop_legend_type_id__once)) { + GType live_chart_noop_legend_type_id; + live_chart_noop_legend_type_id = live_chart_noop_legend_get_type_once (); + g_once_init_leave (&live_chart_noop_legend_type_id__once, live_chart_noop_legend_type_id); + } + return live_chart_noop_legend_type_id__once; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/line.c b/iPDC/lib/liblivechart_static.a.p/line.c new file mode 100644 index 0000000..5b5446a --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/line.c @@ -0,0 +1,375 @@ +/* line.c generated by valac 0.56.0, the Vala compiler + * generated from line.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_LINE_0_PROPERTY, + LIVE_CHART_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_line_properties[LIVE_CHART_LINE_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +static gpointer live_chart_line_parent_class = NULL; + +static void live_chart_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_line_update_bounding_box (LiveChartLine* self, + LiveChartPoints* points, + LiveChartConfig* config); +static GType live_chart_line_get_type_once (void); + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 8 "../src/line.vala" + return self ? g_object_ref (self) : NULL; +#line 34 "line.c" +} + +LiveChartLine* +live_chart_line_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartLine * self = NULL; + LiveChartValues* _tmp0_; +#line 6 "../src/line.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 7 "../src/line.vala" + self = (LiveChartLine*) live_chart_serie_renderer_construct (object_type); +#line 8 "../src/line.vala" + _tmp0_ = _g_object_ref0 (values); +#line 8 "../src/line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 8 "../src/line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 6 "../src/line.vala" + return self; +#line 55 "line.c" +} + +LiveChartLine* +live_chart_line_new (LiveChartValues* values) +{ +#line 6 "../src/line.vala" + return live_chart_line_construct (LIVE_CHART_TYPE_LINE, values); +#line 63 "line.c" +} + +static void +live_chart_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 11 "../src/line.vala" + self = (LiveChartLine*) base; +#line 11 "../src/line.vala" + g_return_if_fail (ctx != NULL); +#line 11 "../src/line.vala" + g_return_if_fail (config != NULL); +#line 12 "../src/line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 12 "../src/line.vala" + _tmp1_ = _tmp0_; +#line 12 "../src/line.vala" + if (_tmp1_) { +#line 86 "line.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 13 "../src/line.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 13 "../src/line.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 13 "../src/line.vala" + points = _tmp3_; +#line 14 "../src/line.vala" + _tmp4_ = points; +#line 14 "../src/line.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 14 "../src/line.vala" + _tmp6_ = _tmp5_; +#line 14 "../src/line.vala" + if (_tmp6_ > 0) { +#line 107 "line.c" + LiveChartPoints* _tmp7_; + LiveChartPoints* _tmp8_; + LiveChartPoints* _tmp9_; +#line 15 "../src/line.vala" + _tmp7_ = points; +#line 15 "../src/line.vala" + _tmp8_ = live_chart_line_draw_line (self, _tmp7_, ctx, config); +#line 15 "../src/line.vala" + _tmp9_ = _tmp8_; +#line 15 "../src/line.vala" + _g_object_unref0 (_tmp9_); +#line 16 "../src/line.vala" + cairo_stroke (ctx); +#line 121 "line.c" + } +#line 12 "../src/line.vala" + _g_object_unref0 (points); +#line 125 "line.c" + } +} + +LiveChartPoints* +live_chart_line_draw_line (LiveChartLine* self, + LiveChartPoints* points, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartPath* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPoint first_point = {0}; + LiveChartPoint _tmp2_ = {0}; + LiveChartPath* _tmp3_; + LiveChartPath* _tmp4_; + LiveChartPoint _tmp5_; + LiveChartPoint _tmp6_; + LiveChartPoints* _tmp18_; + LiveChartPoints* result; +#line 21 "../src/line.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 21 "../src/line.vala" + g_return_val_if_fail (points != NULL, NULL); +#line 21 "../src/line.vala" + g_return_val_if_fail (ctx != NULL, NULL); +#line 21 "../src/line.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 22 "../src/line.vala" + _tmp0_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 22 "../src/line.vala" + _tmp1_ = _tmp0_; +#line 22 "../src/line.vala" + live_chart_path_configure (_tmp1_, ctx); +#line 24 "../src/line.vala" + live_chart_points_first (points, &_tmp2_); +#line 24 "../src/line.vala" + first_point = _tmp2_; +#line 26 "../src/line.vala" + live_chart_line_update_bounding_box (self, points, config); +#line 27 "../src/line.vala" + live_chart_serie_renderer_debug ((LiveChartSerieRenderer*) self, ctx); +#line 29 "../src/line.vala" + _tmp3_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 29 "../src/line.vala" + _tmp4_ = _tmp3_; +#line 29 "../src/line.vala" + live_chart_path_configure (_tmp4_, ctx); +#line 31 "../src/line.vala" + _tmp5_ = first_point; +#line 31 "../src/line.vala" + _tmp6_ = first_point; +#line 31 "../src/line.vala" + cairo_move_to (ctx, _tmp5_.x, _tmp6_.y); +#line 179 "line.c" + { + gint pos = 0; +#line 32 "../src/line.vala" + pos = 0; +#line 184 "line.c" + { + gboolean _tmp7_ = FALSE; +#line 32 "../src/line.vala" + _tmp7_ = TRUE; +#line 32 "../src/line.vala" + while (TRUE) { +#line 191 "line.c" + gint _tmp9_; + gint _tmp10_; + LiveChartPoint current_point = {0}; + LiveChartPoint _tmp11_ = {0}; + LiveChartPoint next_point = {0}; + LiveChartPoint _tmp12_ = {0}; + LiveChartPoint _tmp13_; + LiveChartPoint _tmp16_; + LiveChartPoint _tmp17_; +#line 32 "../src/line.vala" + if (!_tmp7_) { +#line 203 "line.c" + gint _tmp8_; +#line 32 "../src/line.vala" + _tmp8_ = pos; +#line 32 "../src/line.vala" + pos = _tmp8_ + 1; +#line 209 "line.c" + } +#line 32 "../src/line.vala" + _tmp7_ = FALSE; +#line 32 "../src/line.vala" + _tmp9_ = live_chart_points_get_size (points); +#line 32 "../src/line.vala" + _tmp10_ = _tmp9_; +#line 32 "../src/line.vala" + if (!(pos < (_tmp10_ - 1))) { +#line 32 "../src/line.vala" + break; +#line 221 "line.c" + } +#line 33 "../src/line.vala" + live_chart_points_get (points, pos, &_tmp11_); +#line 33 "../src/line.vala" + current_point = _tmp11_; +#line 34 "../src/line.vala" + live_chart_points_after (points, pos, &_tmp12_); +#line 34 "../src/line.vala" + next_point = _tmp12_; +#line 35 "../src/line.vala" + _tmp13_ = current_point; +#line 35 "../src/line.vala" + if (live_chart_serie_renderer_is_out_of_area ((LiveChartSerieRenderer*) self, &_tmp13_)) { +#line 235 "line.c" + LiveChartPoint _tmp14_; + LiveChartPoint _tmp15_; +#line 36 "../src/line.vala" + _tmp14_ = current_point; +#line 36 "../src/line.vala" + _tmp15_ = current_point; +#line 36 "../src/line.vala" + cairo_move_to (ctx, _tmp14_.x, _tmp15_.y); +#line 37 "../src/line.vala" + continue; +#line 246 "line.c" + } +#line 40 "../src/line.vala" + _tmp16_ = next_point; +#line 40 "../src/line.vala" + _tmp17_ = next_point; +#line 40 "../src/line.vala" + cairo_line_to (ctx, _tmp16_.x, _tmp17_.y); +#line 254 "line.c" + } + } + } +#line 43 "../src/line.vala" + _tmp18_ = _g_object_ref0 (points); +#line 43 "../src/line.vala" + result = _tmp18_; +#line 43 "../src/line.vala" + return result; +#line 264 "line.c" +} + +static void +live_chart_line_update_bounding_box (LiveChartLine* self, + LiveChartPoints* points, + LiveChartConfig* config) +{ + LiveChartPoint _tmp0_ = {0}; + LiveChartBounds* _tmp1_; + LiveChartBounds* _tmp2_; + gdouble _tmp3_; + gdouble _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint _tmp6_ = {0}; + LiveChartBounds* _tmp7_; + LiveChartBounds* _tmp8_; + gdouble _tmp9_; + gdouble _tmp10_; + LiveChartBounds* _tmp11_; + LiveChartBounds* _tmp12_; + gdouble _tmp13_; + gdouble _tmp14_; + LiveChartBoundingBox _tmp15_ = {0}; +#line 46 "../src/line.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/line.vala" + g_return_if_fail (points != NULL); +#line 46 "../src/line.vala" + g_return_if_fail (config != NULL); +#line 47 "../src/line.vala" + live_chart_points_first (points, &_tmp0_); +#line 47 "../src/line.vala" + _tmp1_ = live_chart_points_get_bounds (points); +#line 47 "../src/line.vala" + _tmp2_ = _tmp1_; +#line 47 "../src/line.vala" + _tmp3_ = live_chart_bounds_get_lower (_tmp2_); +#line 47 "../src/line.vala" + _tmp4_ = _tmp3_; +#line 47 "../src/line.vala" + live_chart_points_last (points, &_tmp5_); +#line 47 "../src/line.vala" + live_chart_points_first (points, &_tmp6_); +#line 47 "../src/line.vala" + _tmp7_ = live_chart_points_get_bounds (points); +#line 47 "../src/line.vala" + _tmp8_ = _tmp7_; +#line 47 "../src/line.vala" + _tmp9_ = live_chart_bounds_get_upper (_tmp8_); +#line 47 "../src/line.vala" + _tmp10_ = _tmp9_; +#line 47 "../src/line.vala" + _tmp11_ = live_chart_points_get_bounds (points); +#line 47 "../src/line.vala" + _tmp12_ = _tmp11_; +#line 47 "../src/line.vala" + _tmp13_ = live_chart_bounds_get_lower (_tmp12_); +#line 47 "../src/line.vala" + _tmp14_ = _tmp13_; +#line 47 "../src/line.vala" + memset (&_tmp15_, 0, sizeof (LiveChartBoundingBox)); +#line 47 "../src/line.vala" + _tmp15_.x = _tmp0_.x; +#line 47 "../src/line.vala" + _tmp15_.y = _tmp4_; +#line 47 "../src/line.vala" + _tmp15_.width = _tmp5_.x - _tmp6_.x; +#line 47 "../src/line.vala" + _tmp15_.height = _tmp10_ - _tmp14_; +#line 47 "../src/line.vala" + ((LiveChartSerieRenderer*) self)->bounding_box = _tmp15_; +#line 336 "line.c" +} + +static void +live_chart_line_class_init (LiveChartLineClass * klass, + gpointer klass_data) +{ +#line 4 "../src/line.vala" + live_chart_line_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_line_real_draw; +#line 347 "line.c" +} + +static void +live_chart_line_instance_init (LiveChartLine * self, + gpointer klass) +{ +} + +static GType +live_chart_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartLine), 0, (GInstanceInitFunc) live_chart_line_instance_init, NULL }; + GType live_chart_line_type_id; + live_chart_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartLine", &g_define_type_info, 0); + return live_chart_line_type_id; +} + +GType +live_chart_line_get_type (void) +{ + static volatile gsize live_chart_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_line_type_id__once)) { + GType live_chart_line_type_id; + live_chart_line_type_id = live_chart_line_get_type_once (); + g_once_init_leave (&live_chart_line_type_id__once, live_chart_line_type_id); + } + return live_chart_line_type_id__once; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/line_area.c b/iPDC/lib/liblivechart_static.a.p/line_area.c new file mode 100644 index 0000000..fb26625 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/line_area.c @@ -0,0 +1,308 @@ +/* line_area.c generated by valac 0.56.0, the Vala compiler + * generated from line_area.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_LINE_AREA_0_PROPERTY, + LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY, + LIVE_CHART_LINE_AREA_NUM_PROPERTIES +}; +static GParamSpec* live_chart_line_area_properties[LIVE_CHART_LINE_AREA_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +struct _LiveChartLineAreaPrivate { + gdouble _area_alpha; +}; + +static gint LiveChartLineArea_private_offset; +static gpointer live_chart_line_area_parent_class = NULL; + +static void live_chart_line_area_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_line_area_finalize (GObject * obj); +static GType live_chart_line_area_get_type_once (void); +static void _vala_live_chart_line_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_line_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_line_area_get_instance_private (LiveChartLineArea* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartLineArea_private_offset); +} + +LiveChartLineArea* +live_chart_line_area_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartLineArea * self = NULL; +#line 8 "../src/line_area.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 9 "../src/line_area.vala" + self = (LiveChartLineArea*) live_chart_line_construct (object_type, values); +#line 8 "../src/line_area.vala" + return self; +#line 58 "line_area.c" +} + +LiveChartLineArea* +live_chart_line_area_new (LiveChartValues* values) +{ +#line 8 "../src/line_area.vala" + return live_chart_line_area_construct (LIVE_CHART_TYPE_LINE_AREA, values); +#line 66 "line_area.c" +} + +static void +live_chart_line_area_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartLineArea * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 12 "../src/line_area.vala" + self = (LiveChartLineArea*) base; +#line 12 "../src/line_area.vala" + g_return_if_fail (ctx != NULL); +#line 12 "../src/line_area.vala" + g_return_if_fail (config != NULL); +#line 13 "../src/line_area.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 13 "../src/line_area.vala" + _tmp1_ = _tmp0_; +#line 13 "../src/line_area.vala" + if (_tmp1_) { +#line 89 "line_area.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 14 "../src/line_area.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 14 "../src/line_area.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 14 "../src/line_area.vala" + points = _tmp3_; +#line 15 "../src/line_area.vala" + _tmp4_ = points; +#line 15 "../src/line_area.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 15 "../src/line_area.vala" + _tmp6_ = _tmp5_; +#line 15 "../src/line_area.vala" + if (_tmp6_ > 0) { +#line 110 "line_area.c" + LiveChartPoints* _tmp7_; + LiveChartPoints* _tmp8_; + LiveChartPoints* _tmp9_; + LiveChartArea* area = NULL; + LiveChartPoints* _tmp10_; + GdkRGBA _tmp11_ = {0}; + GdkRGBA _tmp12_; + gdouble _tmp13_; + LiveChartArea* _tmp14_; + LiveChartArea* _tmp15_; +#line 16 "../src/line_area.vala" + _tmp7_ = points; +#line 16 "../src/line_area.vala" + _tmp8_ = live_chart_line_draw_line ((LiveChartLine*) self, _tmp7_, ctx, config); +#line 16 "../src/line_area.vala" + _tmp9_ = _tmp8_; +#line 16 "../src/line_area.vala" + _g_object_unref0 (_tmp9_); +#line 17 "../src/line_area.vala" + cairo_stroke_preserve (ctx); +#line 19 "../src/line_area.vala" + _tmp10_ = points; +#line 19 "../src/line_area.vala" + live_chart_serie_renderer_get_main_color ((LiveChartSerieRenderer*) self, &_tmp11_); +#line 19 "../src/line_area.vala" + _tmp12_ = _tmp11_; +#line 19 "../src/line_area.vala" + _tmp13_ = self->priv->_area_alpha; +#line 19 "../src/line_area.vala" + _tmp14_ = live_chart_area_new (_tmp10_, &_tmp12_, _tmp13_); +#line 19 "../src/line_area.vala" + area = _tmp14_; +#line 20 "../src/line_area.vala" + _tmp15_ = area; +#line 20 "../src/line_area.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp15_, ctx, config); +#line 21 "../src/line_area.vala" + cairo_fill (ctx); +#line 15 "../src/line_area.vala" + _g_object_unref0 (area); +#line 151 "line_area.c" + } +#line 24 "../src/line_area.vala" + cairo_stroke (ctx); +#line 13 "../src/line_area.vala" + _g_object_unref0 (points); +#line 157 "line_area.c" + } +} + +gdouble +live_chart_line_area_get_area_alpha (LiveChartLineArea* self) +{ + gdouble result; +#line 6 "../src/line_area.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 6 "../src/line_area.vala" + result = self->priv->_area_alpha; +#line 6 "../src/line_area.vala" + return result; +#line 171 "line_area.c" +} + +void +live_chart_line_area_set_area_alpha (LiveChartLineArea* self, + gdouble value) +{ + gdouble old_value; +#line 6 "../src/line_area.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/line_area.vala" + old_value = live_chart_line_area_get_area_alpha (self); +#line 6 "../src/line_area.vala" + if (old_value != value) { +#line 6 "../src/line_area.vala" + self->priv->_area_alpha = value; +#line 6 "../src/line_area.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_line_area_properties[LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY]); +#line 189 "line_area.c" + } +} + +static void +live_chart_line_area_class_init (LiveChartLineAreaClass * klass, + gpointer klass_data) +{ +#line 4 "../src/line_area.vala" + live_chart_line_area_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/line_area.vala" + g_type_class_adjust_private_offset (klass, &LiveChartLineArea_private_offset); +#line 4 "../src/line_area.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_line_area_real_draw; +#line 4 "../src/line_area.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_line_area_get_property; +#line 4 "../src/line_area.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_line_area_set_property; +#line 4 "../src/line_area.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_line_area_finalize; +#line 4 "../src/line_area.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY, live_chart_line_area_properties[LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY] = g_param_spec_double ("area-alpha", "area-alpha", "area-alpha", -G_MAXDOUBLE, G_MAXDOUBLE, 0.1, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 211 "line_area.c" +} + +static void +live_chart_line_area_instance_init (LiveChartLineArea * self, + gpointer klass) +{ +#line 4 "../src/line_area.vala" + self->priv = live_chart_line_area_get_instance_private (self); +#line 6 "../src/line_area.vala" + self->priv->_area_alpha = 0.1; +#line 222 "line_area.c" +} + +static void +live_chart_line_area_finalize (GObject * obj) +{ + LiveChartLineArea * self; +#line 4 "../src/line_area.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_LINE_AREA, LiveChartLineArea); +#line 4 "../src/line_area.vala" + G_OBJECT_CLASS (live_chart_line_area_parent_class)->finalize (obj); +#line 233 "line_area.c" +} + +static GType +live_chart_line_area_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartLineAreaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_line_area_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartLineArea), 0, (GInstanceInitFunc) live_chart_line_area_instance_init, NULL }; + GType live_chart_line_area_type_id; + live_chart_line_area_type_id = g_type_register_static (LIVE_CHART_TYPE_LINE, "LiveChartLineArea", &g_define_type_info, 0); + LiveChartLineArea_private_offset = g_type_add_instance_private (live_chart_line_area_type_id, sizeof (LiveChartLineAreaPrivate)); + return live_chart_line_area_type_id; +} + +GType +live_chart_line_area_get_type (void) +{ + static volatile gsize live_chart_line_area_type_id__once = 0; + if (g_once_init_enter (&live_chart_line_area_type_id__once)) { + GType live_chart_line_area_type_id; + live_chart_line_area_type_id = live_chart_line_area_get_type_once (); + g_once_init_leave (&live_chart_line_area_type_id__once, live_chart_line_area_type_id); + } + return live_chart_line_area_type_id__once; +} + +static void +_vala_live_chart_line_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartLineArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_LINE_AREA, LiveChartLineArea); +#line 4 "../src/line_area.vala" + switch (property_id) { +#line 4 "../src/line_area.vala" + case LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY: +#line 4 "../src/line_area.vala" + g_value_set_double (value, live_chart_line_area_get_area_alpha (self)); +#line 4 "../src/line_area.vala" + break; +#line 274 "line_area.c" + default: +#line 4 "../src/line_area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/line_area.vala" + break; +#line 280 "line_area.c" + } +} + +static void +_vala_live_chart_line_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartLineArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_LINE_AREA, LiveChartLineArea); +#line 4 "../src/line_area.vala" + switch (property_id) { +#line 4 "../src/line_area.vala" + case LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY: +#line 4 "../src/line_area.vala" + live_chart_line_area_set_area_alpha (self, g_value_get_double (value)); +#line 4 "../src/line_area.vala" + break; +#line 300 "line_area.c" + default: +#line 4 "../src/line_area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/line_area.vala" + break; +#line 306 "line_area.c" + } +} + diff --git a/iPDC/lib/liblivechart_static.a.p/max_bound_line.c b/iPDC/lib/liblivechart_static.a.p/max_bound_line.c new file mode 100644 index 0000000..75e31fa --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/max_bound_line.c @@ -0,0 +1,249 @@ +/* max_bound_line.c generated by valac 0.56.0, the Vala compiler + * generated from max_bound_line.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_MAX_BOUND_LINE_0_PROPERTY, + LIVE_CHART_MAX_BOUND_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_max_bound_line_properties[LIVE_CHART_MAX_BOUND_LINE_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +static gpointer live_chart_max_bound_line_parent_class = NULL; + +static void live_chart_max_bound_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static GType live_chart_max_bound_line_get_type_once (void); + +LiveChartMaxBoundLine* +live_chart_max_bound_line_construct (GType object_type) +{ + LiveChartMaxBoundLine * self = NULL; + LiveChartValues* _tmp0_; +#line 8 "../src/max_bound_line.vala" + self = (LiveChartMaxBoundLine*) live_chart_serie_renderer_construct (object_type); +#line 9 "../src/max_bound_line.vala" + _tmp0_ = live_chart_values_new (1000); +#line 9 "../src/max_bound_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 9 "../src/max_bound_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 7 "../src/max_bound_line.vala" + return self; +#line 42 "max_bound_line.c" +} + +LiveChartMaxBoundLine* +live_chart_max_bound_line_new (void) +{ +#line 7 "../src/max_bound_line.vala" + return live_chart_max_bound_line_construct (LIVE_CHART_TYPE_MAX_BOUND_LINE); +#line 50 "max_bound_line.c" +} + +LiveChartMaxBoundLine* +live_chart_max_bound_line_construct_from_serie (GType object_type, + LiveChartSerie* serie) +{ + LiveChartMaxBoundLine * self = NULL; + LiveChartValues* _tmp0_; +#line 12 "../src/max_bound_line.vala" + g_return_val_if_fail (serie != NULL, NULL); +#line 12 "../src/max_bound_line.vala" + self = (LiveChartMaxBoundLine*) live_chart_serie_renderer_construct (object_type); +#line 13 "../src/max_bound_line.vala" + _tmp0_ = live_chart_serie_get_values (serie); +#line 13 "../src/max_bound_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 13 "../src/max_bound_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 12 "../src/max_bound_line.vala" + return self; +#line 71 "max_bound_line.c" +} + +LiveChartMaxBoundLine* +live_chart_max_bound_line_new_from_serie (LiveChartSerie* serie) +{ +#line 12 "../src/max_bound_line.vala" + return live_chart_max_bound_line_construct_from_serie (LIVE_CHART_TYPE_MAX_BOUND_LINE, serie); +#line 79 "max_bound_line.c" +} + +static void +live_chart_max_bound_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartMaxBoundLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 16 "../src/max_bound_line.vala" + self = (LiveChartMaxBoundLine*) base; +#line 16 "../src/max_bound_line.vala" + g_return_if_fail (ctx != NULL); +#line 16 "../src/max_bound_line.vala" + g_return_if_fail (config != NULL); +#line 17 "../src/max_bound_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 17 "../src/max_bound_line.vala" + _tmp1_ = _tmp0_; +#line 17 "../src/max_bound_line.vala" + if (_tmp1_) { +#line 102 "max_bound_line.c" + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp2_ = {0}; + gdouble _tmp3_ = 0.0; + LiveChartValues* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gdouble y = 0.0; + LiveChartPath* _tmp19_; + LiveChartPath* _tmp20_; + LiveChartBoundaries _tmp21_; + LiveChartBoundary _tmp22_; + LiveChartBoundaries _tmp23_; + LiveChartBoundary _tmp24_; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartBoundaries _tmp27_; + LiveChartBoundary _tmp28_; +#line 18 "../src/max_bound_line.vala" + live_chart_config_boundaries (config, &_tmp2_); +#line 18 "../src/max_bound_line.vala" + boundaries = _tmp2_; +#line 19 "../src/max_bound_line.vala" + _tmp4_ = ((LiveChartSerieRenderer*) self)->values; +#line 19 "../src/max_bound_line.vala" + _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_); +#line 19 "../src/max_bound_line.vala" + _tmp6_ = _tmp5_; +#line 19 "../src/max_bound_line.vala" + if (_tmp6_ == 0) { +#line 132 "max_bound_line.c" + LiveChartYAxis* _tmp7_; + LiveChartBounds* _tmp8_; + LiveChartBounds* _tmp9_; + gdouble _tmp10_; + gdouble _tmp11_; + LiveChartYAxis* _tmp12_; +#line 19 "../src/max_bound_line.vala" + _tmp7_ = config->y_axis; +#line 19 "../src/max_bound_line.vala" + _tmp8_ = live_chart_yaxis_get_bounds (_tmp7_); +#line 19 "../src/max_bound_line.vala" + _tmp9_ = _tmp8_; +#line 19 "../src/max_bound_line.vala" + _tmp10_ = live_chart_bounds_get_upper (_tmp9_); +#line 19 "../src/max_bound_line.vala" + _tmp11_ = _tmp10_; +#line 19 "../src/max_bound_line.vala" + _tmp12_ = config->y_axis; +#line 19 "../src/max_bound_line.vala" + _tmp3_ = _tmp11_ * live_chart_yaxis_get_ratio (_tmp12_); +#line 19 "../src/max_bound_line.vala" + _g_object_unref0 (_tmp9_); +#line 155 "max_bound_line.c" + } else { + LiveChartValues* _tmp13_; + LiveChartBounds* _tmp14_; + LiveChartBounds* _tmp15_; + gdouble _tmp16_; + gdouble _tmp17_; + LiveChartYAxis* _tmp18_; +#line 19 "../src/max_bound_line.vala" + _tmp13_ = ((LiveChartSerieRenderer*) self)->values; +#line 19 "../src/max_bound_line.vala" + _tmp14_ = live_chart_values_get_bounds (_tmp13_); +#line 19 "../src/max_bound_line.vala" + _tmp15_ = _tmp14_; +#line 19 "../src/max_bound_line.vala" + _tmp16_ = live_chart_bounds_get_upper (_tmp15_); +#line 19 "../src/max_bound_line.vala" + _tmp17_ = _tmp16_; +#line 19 "../src/max_bound_line.vala" + _tmp18_ = config->y_axis; +#line 19 "../src/max_bound_line.vala" + _tmp3_ = _tmp17_ * live_chart_yaxis_get_ratio (_tmp18_); +#line 177 "max_bound_line.c" + } +#line 19 "../src/max_bound_line.vala" + y = _tmp3_; +#line 20 "../src/max_bound_line.vala" + _tmp19_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 20 "../src/max_bound_line.vala" + _tmp20_ = _tmp19_; +#line 20 "../src/max_bound_line.vala" + live_chart_path_configure (_tmp20_, ctx); +#line 21 "../src/max_bound_line.vala" + _tmp21_ = boundaries; +#line 21 "../src/max_bound_line.vala" + _tmp22_ = _tmp21_.x; +#line 21 "../src/max_bound_line.vala" + _tmp23_ = boundaries; +#line 21 "../src/max_bound_line.vala" + _tmp24_ = _tmp23_.y; +#line 21 "../src/max_bound_line.vala" + cairo_move_to (ctx, (gdouble) _tmp22_.min, _tmp24_.max - y); +#line 22 "../src/max_bound_line.vala" + _tmp25_ = boundaries; +#line 22 "../src/max_bound_line.vala" + _tmp26_ = _tmp25_.x; +#line 22 "../src/max_bound_line.vala" + _tmp27_ = boundaries; +#line 22 "../src/max_bound_line.vala" + _tmp28_ = _tmp27_.y; +#line 22 "../src/max_bound_line.vala" + cairo_line_to (ctx, (gdouble) _tmp26_.max, _tmp28_.max - y); +#line 23 "../src/max_bound_line.vala" + cairo_stroke (ctx); +#line 209 "max_bound_line.c" + } +} + +static void +live_chart_max_bound_line_class_init (LiveChartMaxBoundLineClass * klass, + gpointer klass_data) +{ +#line 5 "../src/max_bound_line.vala" + live_chart_max_bound_line_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/max_bound_line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_max_bound_line_real_draw; +#line 221 "max_bound_line.c" +} + +static void +live_chart_max_bound_line_instance_init (LiveChartMaxBoundLine * self, + gpointer klass) +{ +} + +static GType +live_chart_max_bound_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartMaxBoundLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_max_bound_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartMaxBoundLine), 0, (GInstanceInitFunc) live_chart_max_bound_line_instance_init, NULL }; + GType live_chart_max_bound_line_type_id; + live_chart_max_bound_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartMaxBoundLine", &g_define_type_info, 0); + return live_chart_max_bound_line_type_id; +} + +GType +live_chart_max_bound_line_get_type (void) +{ + static volatile gsize live_chart_max_bound_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_max_bound_line_type_id__once)) { + GType live_chart_max_bound_line_type_id; + live_chart_max_bound_line_type_id = live_chart_max_bound_line_get_type_once (); + g_once_init_leave (&live_chart_max_bound_line_type_id__once, live_chart_max_bound_line_type_id); + } + return live_chart_max_bound_line_type_id__once; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/min_bound_line.c b/iPDC/lib/liblivechart_static.a.p/min_bound_line.c new file mode 100644 index 0000000..cf122f9 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/min_bound_line.c @@ -0,0 +1,260 @@ +/* min_bound_line.c generated by valac 0.56.0, the Vala compiler + * generated from min_bound_line.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_MIN_BOUND_LINE_0_PROPERTY, + LIVE_CHART_MIN_BOUND_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_min_bound_line_properties[LIVE_CHART_MIN_BOUND_LINE_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +static gpointer live_chart_min_bound_line_parent_class = NULL; + +static void live_chart_min_bound_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static GType live_chart_min_bound_line_get_type_once (void); + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 9 "../src/min_bound_line.vala" + return self ? g_object_ref (self) : NULL; +#line 32 "min_bound_line.c" +} + +LiveChartMinBoundLine* +live_chart_min_bound_line_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartMinBoundLine * self = NULL; + LiveChartValues* _tmp0_; +#line 7 "../src/min_bound_line.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 8 "../src/min_bound_line.vala" + self = (LiveChartMinBoundLine*) live_chart_serie_renderer_construct (object_type); +#line 9 "../src/min_bound_line.vala" + _tmp0_ = _g_object_ref0 (values); +#line 9 "../src/min_bound_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 9 "../src/min_bound_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 7 "../src/min_bound_line.vala" + return self; +#line 53 "min_bound_line.c" +} + +LiveChartMinBoundLine* +live_chart_min_bound_line_new (LiveChartValues* values) +{ +#line 7 "../src/min_bound_line.vala" + return live_chart_min_bound_line_construct (LIVE_CHART_TYPE_MIN_BOUND_LINE, values); +#line 61 "min_bound_line.c" +} + +LiveChartMinBoundLine* +live_chart_min_bound_line_construct_from_serie (GType object_type, + LiveChartSerie* serie) +{ + LiveChartMinBoundLine * self = NULL; + LiveChartValues* _tmp0_; +#line 12 "../src/min_bound_line.vala" + g_return_val_if_fail (serie != NULL, NULL); +#line 12 "../src/min_bound_line.vala" + self = (LiveChartMinBoundLine*) live_chart_serie_renderer_construct (object_type); +#line 13 "../src/min_bound_line.vala" + _tmp0_ = live_chart_serie_get_values (serie); +#line 13 "../src/min_bound_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 13 "../src/min_bound_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 12 "../src/min_bound_line.vala" + return self; +#line 82 "min_bound_line.c" +} + +LiveChartMinBoundLine* +live_chart_min_bound_line_new_from_serie (LiveChartSerie* serie) +{ +#line 12 "../src/min_bound_line.vala" + return live_chart_min_bound_line_construct_from_serie (LIVE_CHART_TYPE_MIN_BOUND_LINE, serie); +#line 90 "min_bound_line.c" +} + +static void +live_chart_min_bound_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartMinBoundLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 16 "../src/min_bound_line.vala" + self = (LiveChartMinBoundLine*) base; +#line 16 "../src/min_bound_line.vala" + g_return_if_fail (ctx != NULL); +#line 16 "../src/min_bound_line.vala" + g_return_if_fail (config != NULL); +#line 17 "../src/min_bound_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 17 "../src/min_bound_line.vala" + _tmp1_ = _tmp0_; +#line 17 "../src/min_bound_line.vala" + if (_tmp1_) { +#line 113 "min_bound_line.c" + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp2_ = {0}; + gdouble _tmp3_ = 0.0; + LiveChartValues* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gdouble y = 0.0; + LiveChartPath* _tmp19_; + LiveChartPath* _tmp20_; + LiveChartBoundaries _tmp21_; + LiveChartBoundary _tmp22_; + LiveChartBoundaries _tmp23_; + LiveChartBoundary _tmp24_; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartBoundaries _tmp27_; + LiveChartBoundary _tmp28_; +#line 18 "../src/min_bound_line.vala" + live_chart_config_boundaries (config, &_tmp2_); +#line 18 "../src/min_bound_line.vala" + boundaries = _tmp2_; +#line 19 "../src/min_bound_line.vala" + _tmp4_ = ((LiveChartSerieRenderer*) self)->values; +#line 19 "../src/min_bound_line.vala" + _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_); +#line 19 "../src/min_bound_line.vala" + _tmp6_ = _tmp5_; +#line 19 "../src/min_bound_line.vala" + if (_tmp6_ == 0) { +#line 143 "min_bound_line.c" + LiveChartYAxis* _tmp7_; + LiveChartBounds* _tmp8_; + LiveChartBounds* _tmp9_; + gdouble _tmp10_; + gdouble _tmp11_; + LiveChartYAxis* _tmp12_; +#line 19 "../src/min_bound_line.vala" + _tmp7_ = config->y_axis; +#line 19 "../src/min_bound_line.vala" + _tmp8_ = live_chart_yaxis_get_bounds (_tmp7_); +#line 19 "../src/min_bound_line.vala" + _tmp9_ = _tmp8_; +#line 19 "../src/min_bound_line.vala" + _tmp10_ = live_chart_bounds_get_lower (_tmp9_); +#line 19 "../src/min_bound_line.vala" + _tmp11_ = _tmp10_; +#line 19 "../src/min_bound_line.vala" + _tmp12_ = config->y_axis; +#line 19 "../src/min_bound_line.vala" + _tmp3_ = _tmp11_ * live_chart_yaxis_get_ratio (_tmp12_); +#line 19 "../src/min_bound_line.vala" + _g_object_unref0 (_tmp9_); +#line 166 "min_bound_line.c" + } else { + LiveChartValues* _tmp13_; + LiveChartBounds* _tmp14_; + LiveChartBounds* _tmp15_; + gdouble _tmp16_; + gdouble _tmp17_; + LiveChartYAxis* _tmp18_; +#line 19 "../src/min_bound_line.vala" + _tmp13_ = ((LiveChartSerieRenderer*) self)->values; +#line 19 "../src/min_bound_line.vala" + _tmp14_ = live_chart_values_get_bounds (_tmp13_); +#line 19 "../src/min_bound_line.vala" + _tmp15_ = _tmp14_; +#line 19 "../src/min_bound_line.vala" + _tmp16_ = live_chart_bounds_get_lower (_tmp15_); +#line 19 "../src/min_bound_line.vala" + _tmp17_ = _tmp16_; +#line 19 "../src/min_bound_line.vala" + _tmp18_ = config->y_axis; +#line 19 "../src/min_bound_line.vala" + _tmp3_ = _tmp17_ * live_chart_yaxis_get_ratio (_tmp18_); +#line 188 "min_bound_line.c" + } +#line 19 "../src/min_bound_line.vala" + y = _tmp3_; +#line 20 "../src/min_bound_line.vala" + _tmp19_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 20 "../src/min_bound_line.vala" + _tmp20_ = _tmp19_; +#line 20 "../src/min_bound_line.vala" + live_chart_path_configure (_tmp20_, ctx); +#line 21 "../src/min_bound_line.vala" + _tmp21_ = boundaries; +#line 21 "../src/min_bound_line.vala" + _tmp22_ = _tmp21_.x; +#line 21 "../src/min_bound_line.vala" + _tmp23_ = boundaries; +#line 21 "../src/min_bound_line.vala" + _tmp24_ = _tmp23_.y; +#line 21 "../src/min_bound_line.vala" + cairo_move_to (ctx, (gdouble) _tmp22_.min, _tmp24_.max - y); +#line 22 "../src/min_bound_line.vala" + _tmp25_ = boundaries; +#line 22 "../src/min_bound_line.vala" + _tmp26_ = _tmp25_.x; +#line 22 "../src/min_bound_line.vala" + _tmp27_ = boundaries; +#line 22 "../src/min_bound_line.vala" + _tmp28_ = _tmp27_.y; +#line 22 "../src/min_bound_line.vala" + cairo_line_to (ctx, (gdouble) _tmp26_.max, _tmp28_.max - y); +#line 23 "../src/min_bound_line.vala" + cairo_stroke (ctx); +#line 220 "min_bound_line.c" + } +} + +static void +live_chart_min_bound_line_class_init (LiveChartMinBoundLineClass * klass, + gpointer klass_data) +{ +#line 5 "../src/min_bound_line.vala" + live_chart_min_bound_line_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/min_bound_line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_min_bound_line_real_draw; +#line 232 "min_bound_line.c" +} + +static void +live_chart_min_bound_line_instance_init (LiveChartMinBoundLine * self, + gpointer klass) +{ +} + +static GType +live_chart_min_bound_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartMinBoundLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_min_bound_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartMinBoundLine), 0, (GInstanceInitFunc) live_chart_min_bound_line_instance_init, NULL }; + GType live_chart_min_bound_line_type_id; + live_chart_min_bound_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartMinBoundLine", &g_define_type_info, 0); + return live_chart_min_bound_line_type_id; +} + +GType +live_chart_min_bound_line_get_type (void) +{ + static volatile gsize live_chart_min_bound_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_min_bound_line_type_id__once)) { + GType live_chart_min_bound_line_type_id; + live_chart_min_bound_line_type_id = live_chart_min_bound_line_get_type_once (); + g_once_init_leave (&live_chart_min_bound_line_type_id__once, live_chart_min_bound_line_type_id); + } + return live_chart_min_bound_line_type_id__once; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/path.c b/iPDC/lib/liblivechart_static.a.p/path.c new file mode 100644 index 0000000..2c2523f --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/path.c @@ -0,0 +1,586 @@ +/* path.c generated by valac 0.56.0, the Vala compiler + * generated from path.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_PATH_0_PROPERTY, + LIVE_CHART_PATH_WIDTH_PROPERTY, + LIVE_CHART_PATH_COLOR_PROPERTY, + LIVE_CHART_PATH_VISIBLE_PROPERTY, + LIVE_CHART_PATH_NUM_PROPERTIES +}; +static GParamSpec* live_chart_path_properties[LIVE_CHART_PATH_NUM_PROPERTIES]; +#define _live_chart_dash_free0(var) ((var == NULL) ? NULL : (var = (live_chart_dash_free (var), NULL))) + +struct _LiveChartPathPrivate { + gdouble _width; + GdkRGBA _color; + gboolean _visible; +}; + +static gint LiveChartPath_private_offset; +static gpointer live_chart_path_parent_class = NULL; + +static gdouble* _vala_array_dup1 (gdouble* self, + gssize length); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_path_finalize (GObject * obj); +static GType live_chart_path_get_type_once (void); +static void _vala_live_chart_path_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_path_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +void +live_chart_dash_init (LiveChartDash *self) +{ +#line 8 "../src/path.vala" + memset (self, 0, sizeof (LiveChartDash)); +#line 9 "../src/path.vala" + (*self).offset = (gdouble) 0; +#line 57 "path.c" +} + +static gdouble* +_vala_array_dup1 (gdouble* self, + gssize length) +{ +#line 5 "../src/path.vala" + if (length > 0) { +#line 5 "../src/path.vala" + return _vala_memdup2 (self, length * sizeof (gdouble)); +#line 68 "path.c" + } +#line 5 "../src/path.vala" + return NULL; +#line 72 "path.c" +} + +void +live_chart_dash_copy (const LiveChartDash* self, + LiveChartDash* dest) +{ + gdouble* _tmp0_; + gint _tmp0__length1; + gdouble* _tmp1_; + gint _tmp1__length1; +#line 5 "../src/path.vala" + _tmp0_ = (*self).dashes; +#line 5 "../src/path.vala" + _tmp0__length1 = (*self).dashes_length1; +#line 5 "../src/path.vala" + _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup1 (_tmp0_, _tmp0__length1) : _tmp0_; +#line 5 "../src/path.vala" + _tmp1__length1 = _tmp0__length1; +#line 5 "../src/path.vala" + (*dest).dashes = (g_free ((*dest).dashes), NULL); +#line 5 "../src/path.vala" + (*dest).dashes = _tmp1_; +#line 5 "../src/path.vala" + (*dest).dashes_length1 = _tmp1__length1; +#line 5 "../src/path.vala" + (*dest).offset = (*self).offset; +#line 99 "path.c" +} + +void +live_chart_dash_destroy (LiveChartDash* self) +{ +#line 6 "../src/path.vala" + (*self).dashes = (g_free ((*self).dashes), NULL); +#line 107 "path.c" +} + +LiveChartDash* +live_chart_dash_dup (const LiveChartDash* self) +{ + LiveChartDash* dup; +#line 5 "../src/path.vala" + dup = g_new0 (LiveChartDash, 1); +#line 5 "../src/path.vala" + live_chart_dash_copy (self, dup); +#line 5 "../src/path.vala" + return dup; +#line 120 "path.c" +} + +void +live_chart_dash_free (LiveChartDash* self) +{ +#line 5 "../src/path.vala" + live_chart_dash_destroy (self); +#line 5 "../src/path.vala" + g_free (self); +#line 130 "path.c" +} + +static GType +live_chart_dash_get_type_once (void) +{ + GType live_chart_dash_type_id; + live_chart_dash_type_id = g_boxed_type_register_static ("LiveChartDash", (GBoxedCopyFunc) live_chart_dash_dup, (GBoxedFreeFunc) live_chart_dash_free); + return live_chart_dash_type_id; +} + +GType +live_chart_dash_get_type (void) +{ + static volatile gsize live_chart_dash_type_id__once = 0; + if (g_once_init_enter (&live_chart_dash_type_id__once)) { + GType live_chart_dash_type_id; + live_chart_dash_type_id = live_chart_dash_get_type_once (); + g_once_init_leave (&live_chart_dash_type_id__once, live_chart_dash_type_id); + } + return live_chart_dash_type_id__once; +} + +static inline gpointer +live_chart_path_get_instance_private (LiveChartPath* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartPath_private_offset); +} + +static gpointer +_live_chart_dash_dup0 (gpointer self) +{ +#line 23 "../src/path.vala" + return self ? live_chart_dash_dup (self) : NULL; +#line 164 "path.c" +} + +LiveChartPath* +live_chart_path_construct (GType object_type, + gdouble width, + GdkRGBA* color, + gboolean visible, + LiveChartDash* dash) +{ + LiveChartPath * self = NULL; + GdkRGBA _tmp0_; + LiveChartDash* _tmp1_; +#line 19 "../src/path.vala" + g_return_val_if_fail (color != NULL, NULL); +#line 19 "../src/path.vala" + self = (LiveChartPath*) g_object_new (object_type, NULL); +#line 20 "../src/path.vala" + live_chart_path_set_width (self, width); +#line 21 "../src/path.vala" + _tmp0_ = *color; +#line 21 "../src/path.vala" + live_chart_path_set_color (self, &_tmp0_); +#line 22 "../src/path.vala" + live_chart_path_set_visible (self, TRUE); +#line 23 "../src/path.vala" + _tmp1_ = _live_chart_dash_dup0 (dash); +#line 23 "../src/path.vala" + _live_chart_dash_free0 (self->dash); +#line 23 "../src/path.vala" + self->dash = _tmp1_; +#line 19 "../src/path.vala" + return self; +#line 197 "path.c" +} + +LiveChartPath* +live_chart_path_new (gdouble width, + GdkRGBA* color, + gboolean visible, + LiveChartDash* dash) +{ +#line 19 "../src/path.vala" + return live_chart_path_construct (LIVE_CHART_TYPE_PATH, width, color, visible, dash); +#line 208 "path.c" +} + +void +live_chart_path_configure (LiveChartPath* self, + cairo_t* ctx) +{ + gboolean _tmp0_; +#line 26 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 26 "../src/path.vala" + g_return_if_fail (ctx != NULL); +#line 27 "../src/path.vala" + _tmp0_ = self->priv->_visible; +#line 27 "../src/path.vala" + if (_tmp0_) { +#line 224 "path.c" + LiveChartDash* _tmp1_; + GdkRGBA _tmp5_; + GdkRGBA _tmp6_; + GdkRGBA _tmp7_; + GdkRGBA _tmp8_; + gdouble _tmp9_; +#line 28 "../src/path.vala" + _tmp1_ = self->dash; +#line 28 "../src/path.vala" + if (_tmp1_ != NULL) { +#line 235 "path.c" + LiveChartDash* _tmp2_; + gdouble* _tmp3_; + gint _tmp3__length1; + LiveChartDash* _tmp4_; +#line 29 "../src/path.vala" + _tmp2_ = self->dash; +#line 29 "../src/path.vala" + _tmp3_ = (*_tmp2_).dashes; +#line 29 "../src/path.vala" + _tmp3__length1 = (*_tmp2_).dashes_length1; +#line 29 "../src/path.vala" + _tmp4_ = self->dash; +#line 29 "../src/path.vala" + cairo_set_dash (ctx, _tmp3_, (gint) _tmp3__length1, (*_tmp4_).offset); +#line 250 "path.c" + } +#line 31 "../src/path.vala" + _tmp5_ = self->priv->_color; +#line 31 "../src/path.vala" + _tmp6_ = self->priv->_color; +#line 31 "../src/path.vala" + _tmp7_ = self->priv->_color; +#line 31 "../src/path.vala" + _tmp8_ = self->priv->_color; +#line 31 "../src/path.vala" + cairo_set_source_rgba (ctx, _tmp5_.red, _tmp6_.green, _tmp7_.blue, _tmp8_.alpha); +#line 32 "../src/path.vala" + _tmp9_ = self->priv->_width; +#line 32 "../src/path.vala" + cairo_set_line_width (ctx, _tmp9_); +#line 266 "path.c" + } +} + +gdouble +live_chart_path_get_width (LiveChartPath* self) +{ + gdouble result; +#line 14 "../src/path.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 14 "../src/path.vala" + result = self->priv->_width; +#line 14 "../src/path.vala" + return result; +#line 280 "path.c" +} + +void +live_chart_path_set_width (LiveChartPath* self, + gdouble value) +{ + gdouble old_value; +#line 14 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/path.vala" + old_value = live_chart_path_get_width (self); +#line 14 "../src/path.vala" + if (old_value != value) { +#line 14 "../src/path.vala" + self->priv->_width = value; +#line 14 "../src/path.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_path_properties[LIVE_CHART_PATH_WIDTH_PROPERTY]); +#line 298 "path.c" + } +} + +void +live_chart_path_get_color (LiveChartPath* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 16 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/path.vala" + _tmp0_ = self->priv->_color; +#line 16 "../src/path.vala" + *result = _tmp0_; +#line 16 "../src/path.vala" + return; +#line 315 "path.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 16 "../src/path.vala" + if (s1 == s2) { +#line 16 "../src/path.vala" + return TRUE; +#line 326 "path.c" + } +#line 16 "../src/path.vala" + if (s1 == NULL) { +#line 16 "../src/path.vala" + return FALSE; +#line 332 "path.c" + } +#line 16 "../src/path.vala" + if (s2 == NULL) { +#line 16 "../src/path.vala" + return FALSE; +#line 338 "path.c" + } +#line 16 "../src/path.vala" + if (s1->red != s2->red) { +#line 16 "../src/path.vala" + return FALSE; +#line 344 "path.c" + } +#line 16 "../src/path.vala" + if (s1->green != s2->green) { +#line 16 "../src/path.vala" + return FALSE; +#line 350 "path.c" + } +#line 16 "../src/path.vala" + if (s1->blue != s2->blue) { +#line 16 "../src/path.vala" + return FALSE; +#line 356 "path.c" + } +#line 16 "../src/path.vala" + if (s1->alpha != s2->alpha) { +#line 16 "../src/path.vala" + return FALSE; +#line 362 "path.c" + } +#line 16 "../src/path.vala" + return TRUE; +#line 366 "path.c" +} + +void +live_chart_path_set_color (LiveChartPath* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 16 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/path.vala" + live_chart_path_get_color (self, &old_value); +#line 16 "../src/path.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 380 "path.c" + GdkRGBA _tmp0_; +#line 16 "../src/path.vala" + _tmp0_ = *value; +#line 16 "../src/path.vala" + self->priv->_color = _tmp0_; +#line 16 "../src/path.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_path_properties[LIVE_CHART_PATH_COLOR_PROPERTY]); +#line 388 "path.c" + } +} + +gboolean +live_chart_path_get_visible (LiveChartPath* self) +{ + gboolean result; +#line 17 "../src/path.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 17 "../src/path.vala" + result = self->priv->_visible; +#line 17 "../src/path.vala" + return result; +#line 402 "path.c" +} + +void +live_chart_path_set_visible (LiveChartPath* self, + gboolean value) +{ + gboolean old_value; +#line 17 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 17 "../src/path.vala" + old_value = live_chart_path_get_visible (self); +#line 17 "../src/path.vala" + if (old_value != value) { +#line 17 "../src/path.vala" + self->priv->_visible = value; +#line 17 "../src/path.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_path_properties[LIVE_CHART_PATH_VISIBLE_PROPERTY]); +#line 420 "path.c" + } +} + +static void +live_chart_path_class_init (LiveChartPathClass * klass, + gpointer klass_data) +{ +#line 13 "../src/path.vala" + live_chart_path_parent_class = g_type_class_peek_parent (klass); +#line 13 "../src/path.vala" + g_type_class_adjust_private_offset (klass, &LiveChartPath_private_offset); +#line 13 "../src/path.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_path_get_property; +#line 13 "../src/path.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_path_set_property; +#line 13 "../src/path.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_path_finalize; +#line 13 "../src/path.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_PATH_WIDTH_PROPERTY, live_chart_path_properties[LIVE_CHART_PATH_WIDTH_PROPERTY] = g_param_spec_double ("width", "width", "width", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 13 "../src/path.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_PATH_COLOR_PROPERTY, live_chart_path_properties[LIVE_CHART_PATH_COLOR_PROPERTY] = g_param_spec_boxed ("color", "color", "color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 13 "../src/path.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_PATH_VISIBLE_PROPERTY, live_chart_path_properties[LIVE_CHART_PATH_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 444 "path.c" +} + +static void +live_chart_path_instance_init (LiveChartPath * self, + gpointer klass) +{ +#line 13 "../src/path.vala" + self->priv = live_chart_path_get_instance_private (self); +#line 453 "path.c" +} + +static void +live_chart_path_finalize (GObject * obj) +{ + LiveChartPath * self; +#line 13 "../src/path.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_PATH, LiveChartPath); +#line 15 "../src/path.vala" + _live_chart_dash_free0 (self->dash); +#line 13 "../src/path.vala" + G_OBJECT_CLASS (live_chart_path_parent_class)->finalize (obj); +#line 466 "path.c" +} + +static GType +live_chart_path_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartPathClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_path_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartPath), 0, (GInstanceInitFunc) live_chart_path_instance_init, NULL }; + GType live_chart_path_type_id; + live_chart_path_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartPath", &g_define_type_info, 0); + LiveChartPath_private_offset = g_type_add_instance_private (live_chart_path_type_id, sizeof (LiveChartPathPrivate)); + return live_chart_path_type_id; +} + +GType +live_chart_path_get_type (void) +{ + static volatile gsize live_chart_path_type_id__once = 0; + if (g_once_init_enter (&live_chart_path_type_id__once)) { + GType live_chart_path_type_id; + live_chart_path_type_id = live_chart_path_get_type_once (); + g_once_init_leave (&live_chart_path_type_id__once, live_chart_path_type_id); + } + return live_chart_path_type_id__once; +} + +static void +_vala_live_chart_path_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartPath * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_PATH, LiveChartPath); +#line 13 "../src/path.vala" + switch (property_id) { +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_WIDTH_PROPERTY: +#line 13 "../src/path.vala" + g_value_set_double (value, live_chart_path_get_width (self)); +#line 13 "../src/path.vala" + break; +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_COLOR_PROPERTY: +#line 509 "path.c" + { + GdkRGBA boxed; +#line 13 "../src/path.vala" + live_chart_path_get_color (self, &boxed); +#line 13 "../src/path.vala" + g_value_set_boxed (value, &boxed); +#line 516 "path.c" + } +#line 13 "../src/path.vala" + break; +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_VISIBLE_PROPERTY: +#line 13 "../src/path.vala" + g_value_set_boolean (value, live_chart_path_get_visible (self)); +#line 13 "../src/path.vala" + break; +#line 526 "path.c" + default: +#line 13 "../src/path.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 13 "../src/path.vala" + break; +#line 532 "path.c" + } +} + +static void +_vala_live_chart_path_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartPath * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_PATH, LiveChartPath); +#line 13 "../src/path.vala" + switch (property_id) { +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_WIDTH_PROPERTY: +#line 13 "../src/path.vala" + live_chart_path_set_width (self, g_value_get_double (value)); +#line 13 "../src/path.vala" + break; +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_COLOR_PROPERTY: +#line 13 "../src/path.vala" + live_chart_path_set_color (self, g_value_get_boxed (value)); +#line 13 "../src/path.vala" + break; +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_VISIBLE_PROPERTY: +#line 13 "../src/path.vala" + live_chart_path_set_visible (self, g_value_get_boolean (value)); +#line 13 "../src/path.vala" + break; +#line 564 "path.c" + default: +#line 13 "../src/path.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 13 "../src/path.vala" + break; +#line 570 "path.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/points.c b/iPDC/lib/liblivechart_static.a.p/points.c new file mode 100644 index 0000000..3ee0412 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/points.c @@ -0,0 +1,739 @@ +/* points.c generated by valac 0.56.0, the Vala compiler + * generated from points.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_POINTS_0_PROPERTY, + LIVE_CHART_POINTS_BOUNDS_PROPERTY, + LIVE_CHART_POINTS_SIZE_PROPERTY, + LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY, + LIVE_CHART_POINTS_NUM_PROPERTIES +}; +static GParamSpec* live_chart_points_properties[LIVE_CHART_POINTS_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_point_free0(var) ((var == NULL) ? NULL : (var = (live_chart_point_free (var), NULL))) +#define _live_chart_timestamped_value_free0(var) ((var == NULL) ? NULL : (var = (live_chart_timestamped_value_free (var), NULL))) + +struct _LiveChartPointsPrivate { + GeeArrayList* points; + LiveChartBounds* _bounds; + gdouble _realtime_delta; +}; + +static gint LiveChartPoints_private_offset; +static gpointer live_chart_points_parent_class = NULL; + +static void live_chart_points_value_to_point (LiveChartTimestampedValue* last_value, + LiveChartTimestampedValue* current_value, + LiveChartConfig* config, + LiveChartBoundaries* boundaries, + gdouble realtime_delta, + LiveChartPoint* result); +static void live_chart_points_finalize (GObject * obj); +static GType live_chart_points_get_type_once (void); +static void _vala_live_chart_points_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_points_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +LiveChartPoint* +live_chart_point_dup (const LiveChartPoint* self) +{ + LiveChartPoint* dup; +#line 4 "../src/points.vala" + dup = g_new0 (LiveChartPoint, 1); +#line 4 "../src/points.vala" + memcpy (dup, self, sizeof (LiveChartPoint)); +#line 4 "../src/points.vala" + return dup; +#line 63 "points.c" +} + +void +live_chart_point_free (LiveChartPoint* self) +{ +#line 4 "../src/points.vala" + g_free (self); +#line 71 "points.c" +} + +static GType +live_chart_point_get_type_once (void) +{ + GType live_chart_point_type_id; + live_chart_point_type_id = g_boxed_type_register_static ("LiveChartPoint", (GBoxedCopyFunc) live_chart_point_dup, (GBoxedFreeFunc) live_chart_point_free); + return live_chart_point_type_id; +} + +GType +live_chart_point_get_type (void) +{ + static volatile gsize live_chart_point_type_id__once = 0; + if (g_once_init_enter (&live_chart_point_type_id__once)) { + GType live_chart_point_type_id; + live_chart_point_type_id = live_chart_point_get_type_once (); + g_once_init_leave (&live_chart_point_type_id__once, live_chart_point_type_id); + } + return live_chart_point_type_id__once; +} + +static inline gpointer +live_chart_points_get_instance_private (LiveChartPoints* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartPoints_private_offset); +} + +LiveChartPoints* +live_chart_points_construct (GType object_type) +{ + LiveChartPoints * self = NULL; + LiveChartBounds* _tmp0_; + LiveChartBounds* _tmp1_; +#line 17 "../src/points.vala" + self = (LiveChartPoints*) g_object_new (object_type, NULL); +#line 18 "../src/points.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 18 "../src/points.vala" + _tmp1_ = _tmp0_; +#line 18 "../src/points.vala" + live_chart_points_set_bounds (self, _tmp1_); +#line 18 "../src/points.vala" + _g_object_unref0 (_tmp1_); +#line 17 "../src/points.vala" + return self; +#line 118 "points.c" +} + +LiveChartPoints* +live_chart_points_new (void) +{ +#line 17 "../src/points.vala" + return live_chart_points_construct (LIVE_CHART_TYPE_POINTS); +#line 126 "points.c" +} + +void +live_chart_points_add (LiveChartPoints* self, + LiveChartPoint* point) +{ + LiveChartBounds* _tmp0_; + LiveChartPoint _tmp1_; + GeeArrayList* _tmp2_; + LiveChartPoint _tmp3_; +#line 21 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 21 "../src/points.vala" + g_return_if_fail (point != NULL); +#line 22 "../src/points.vala" + _tmp0_ = self->priv->_bounds; +#line 22 "../src/points.vala" + _tmp1_ = *point; +#line 22 "../src/points.vala" + live_chart_bounds_update (_tmp0_, _tmp1_.y); +#line 23 "../src/points.vala" + _tmp2_ = self->priv->points; +#line 23 "../src/points.vala" + _tmp3_ = *point; +#line 23 "../src/points.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp2_, &_tmp3_); +#line 153 "points.c" +} + +void +live_chart_points_get (LiveChartPoints* self, + gint at, + LiveChartPoint* result) +{ + GeeArrayList* _tmp0_; + gpointer _tmp1_; + LiveChartPoint* _tmp2_; + LiveChartPoint _tmp3_; +#line 36 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 37 "../src/points.vala" + _tmp0_ = self->priv->points; +#line 37 "../src/points.vala" + _tmp1_ = gee_abstract_list_get ((GeeAbstractList*) _tmp0_, at); +#line 37 "../src/points.vala" + _tmp2_ = (LiveChartPoint*) _tmp1_; +#line 37 "../src/points.vala" + _tmp3_ = *_tmp2_; +#line 37 "../src/points.vala" + _live_chart_point_free0 (_tmp2_); +#line 37 "../src/points.vala" + *result = _tmp3_; +#line 37 "../src/points.vala" + return; +#line 181 "points.c" +} + +void +live_chart_points_after (LiveChartPoints* self, + gint at, + LiveChartPoint* result) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartPoint _tmp5_ = {0}; +#line 40 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 41 "../src/points.vala" + _tmp0_ = live_chart_points_get_size (self); +#line 41 "../src/points.vala" + _tmp1_ = _tmp0_; +#line 41 "../src/points.vala" + if ((at + 1) >= _tmp1_) { +#line 200 "points.c" + gint _tmp2_; + gint _tmp3_; + LiveChartPoint _tmp4_ = {0}; +#line 41 "../src/points.vala" + _tmp2_ = live_chart_points_get_size (self); +#line 41 "../src/points.vala" + _tmp3_ = _tmp2_; +#line 41 "../src/points.vala" + live_chart_points_get (self, _tmp3_ - 1, &_tmp4_); +#line 41 "../src/points.vala" + *result = _tmp4_; +#line 41 "../src/points.vala" + return; +#line 214 "points.c" + } +#line 42 "../src/points.vala" + live_chart_points_get (self, at + 1, &_tmp5_); +#line 42 "../src/points.vala" + *result = _tmp5_; +#line 42 "../src/points.vala" + return; +#line 222 "points.c" +} + +void +live_chart_points_first (LiveChartPoints* self, + LiveChartPoint* result) +{ + LiveChartPoint _tmp0_ = {0}; +#line 45 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/points.vala" + live_chart_points_get (self, 0, &_tmp0_); +#line 46 "../src/points.vala" + *result = _tmp0_; +#line 46 "../src/points.vala" + return; +#line 238 "points.c" +} + +void +live_chart_points_last (LiveChartPoints* self, + LiveChartPoint* result) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartPoint _tmp2_ = {0}; +#line 49 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 50 "../src/points.vala" + _tmp0_ = live_chart_points_get_size (self); +#line 50 "../src/points.vala" + _tmp1_ = _tmp0_; +#line 50 "../src/points.vala" + live_chart_points_get (self, _tmp1_ - 1, &_tmp2_); +#line 50 "../src/points.vala" + *result = _tmp2_; +#line 50 "../src/points.vala" + return; +#line 260 "points.c" +} + +LiveChartPoints* +live_chart_points_create (LiveChartValues* values, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartPoints* points = NULL; + LiveChartPoints* _tmp1_; + gint _tmp2_; + gint _tmp3_; + LiveChartPoints* result; +#line 53 "../src/points.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 53 "../src/points.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 54 "../src/points.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 54 "../src/points.vala" + boundaries = _tmp0_; +#line 56 "../src/points.vala" + _tmp1_ = live_chart_points_new (); +#line 56 "../src/points.vala" + points = _tmp1_; +#line 57 "../src/points.vala" + _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) values); +#line 57 "../src/points.vala" + _tmp3_ = _tmp2_; +#line 57 "../src/points.vala" + if (_tmp3_ > 0) { +#line 292 "points.c" + LiveChartTimestampedValue* last_value = NULL; + gpointer _tmp4_; + LiveChartPoints* _tmp5_; + LiveChartTimestampedValue* _tmp6_; + LiveChartXAxis* _tmp7_; +#line 58 "../src/points.vala" + _tmp4_ = gee_linked_list_last ((GeeLinkedList*) values); +#line 58 "../src/points.vala" + last_value = (LiveChartTimestampedValue*) _tmp4_; +#line 59 "../src/points.vala" + _tmp5_ = points; +#line 59 "../src/points.vala" + _tmp6_ = last_value; +#line 59 "../src/points.vala" + _tmp7_ = config->x_axis; +#line 59 "../src/points.vala" + live_chart_points_set_realtime_delta (_tmp5_, (((g_get_real_time () / 1000) - (*_tmp6_).timestamp) * live_chart_xaxis_get_ratio (_tmp7_)) / 1000); +#line 310 "points.c" + { + LiveChartValues* _value_list = NULL; + gint _value_size = 0; + LiveChartValues* _tmp8_; + gint _tmp9_; + gint _tmp10_; + gint _value_index = 0; +#line 61 "../src/points.vala" + _value_list = values; +#line 61 "../src/points.vala" + _tmp8_ = _value_list; +#line 61 "../src/points.vala" + _tmp9_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp8_); +#line 61 "../src/points.vala" + _tmp10_ = _tmp9_; +#line 61 "../src/points.vala" + _value_size = _tmp10_; +#line 61 "../src/points.vala" + _value_index = -1; +#line 61 "../src/points.vala" + while (TRUE) { +#line 332 "points.c" + gint _tmp11_; + gint _tmp12_; + LiveChartTimestampedValue value = {0}; + LiveChartValues* _tmp13_; + gpointer _tmp14_; + LiveChartTimestampedValue* _tmp15_; + LiveChartTimestampedValue _tmp16_; + LiveChartPoint point = {0}; + LiveChartTimestampedValue* _tmp17_; + LiveChartTimestampedValue _tmp18_; + LiveChartBoundaries _tmp19_; + LiveChartPoints* _tmp20_; + gdouble _tmp21_; + LiveChartTimestampedValue _tmp22_; + LiveChartPoint _tmp23_ = {0}; + LiveChartPoints* _tmp24_; + LiveChartPoint _tmp25_; +#line 61 "../src/points.vala" + _value_index = _value_index + 1; +#line 61 "../src/points.vala" + _tmp11_ = _value_index; +#line 61 "../src/points.vala" + _tmp12_ = _value_size; +#line 61 "../src/points.vala" + if (!(_tmp11_ < _tmp12_)) { +#line 61 "../src/points.vala" + break; +#line 360 "points.c" + } +#line 61 "../src/points.vala" + _tmp13_ = _value_list; +#line 61 "../src/points.vala" + _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp13_, _value_index); +#line 61 "../src/points.vala" + _tmp15_ = (LiveChartTimestampedValue*) _tmp14_; +#line 61 "../src/points.vala" + _tmp16_ = *_tmp15_; +#line 61 "../src/points.vala" + _live_chart_timestamped_value_free0 (_tmp15_); +#line 61 "../src/points.vala" + value = _tmp16_; +#line 62 "../src/points.vala" + _tmp17_ = last_value; +#line 62 "../src/points.vala" + _tmp18_ = value; +#line 62 "../src/points.vala" + _tmp19_ = boundaries; +#line 62 "../src/points.vala" + _tmp20_ = points; +#line 62 "../src/points.vala" + _tmp21_ = _tmp20_->priv->_realtime_delta; +#line 62 "../src/points.vala" + _tmp22_ = *_tmp17_; +#line 62 "../src/points.vala" + live_chart_points_value_to_point (&_tmp22_, &_tmp18_, config, &_tmp19_, _tmp21_, &_tmp23_); +#line 62 "../src/points.vala" + point = _tmp23_; +#line 63 "../src/points.vala" + _tmp24_ = points; +#line 63 "../src/points.vala" + _tmp25_ = point; +#line 63 "../src/points.vala" + live_chart_points_add (_tmp24_, &_tmp25_); +#line 396 "points.c" + } + } +#line 57 "../src/points.vala" + _live_chart_timestamped_value_free0 (last_value); +#line 401 "points.c" + } +#line 67 "../src/points.vala" + result = points; +#line 67 "../src/points.vala" + return result; +#line 407 "points.c" +} + +static void +live_chart_points_value_to_point (LiveChartTimestampedValue* last_value, + LiveChartTimestampedValue* current_value, + LiveChartConfig* config, + LiveChartBoundaries* boundaries, + gdouble realtime_delta, + LiveChartPoint* result) +{ + LiveChartBoundaries _tmp0_; + LiveChartBoundary _tmp1_; + LiveChartTimestampedValue _tmp2_; + LiveChartTimestampedValue _tmp3_; + LiveChartXAxis* _tmp4_; + LiveChartBoundaries _tmp5_; + LiveChartBoundary _tmp6_; + LiveChartTimestampedValue _tmp7_; + LiveChartYAxis* _tmp8_; + LiveChartTimestampedValue _tmp9_; + LiveChartYAxis* _tmp10_; + LiveChartTimestampedValue _tmp11_; + LiveChartPoint _tmp12_ = {0}; +#line 70 "../src/points.vala" + g_return_if_fail (last_value != NULL); +#line 70 "../src/points.vala" + g_return_if_fail (current_value != NULL); +#line 70 "../src/points.vala" + g_return_if_fail (config != NULL); +#line 70 "../src/points.vala" + g_return_if_fail (boundaries != NULL); +#line 71 "../src/points.vala" + _tmp0_ = *boundaries; +#line 71 "../src/points.vala" + _tmp1_ = _tmp0_.x; +#line 71 "../src/points.vala" + _tmp2_ = *last_value; +#line 71 "../src/points.vala" + _tmp3_ = *current_value; +#line 71 "../src/points.vala" + _tmp4_ = config->x_axis; +#line 71 "../src/points.vala" + _tmp5_ = *boundaries; +#line 71 "../src/points.vala" + _tmp6_ = _tmp5_.y; +#line 71 "../src/points.vala" + _tmp7_ = *current_value; +#line 71 "../src/points.vala" + _tmp8_ = config->y_axis; +#line 71 "../src/points.vala" + _tmp9_ = *current_value; +#line 71 "../src/points.vala" + _tmp10_ = config->y_axis; +#line 71 "../src/points.vala" + _tmp11_ = *current_value; +#line 71 "../src/points.vala" + memset (&_tmp12_, 0, sizeof (LiveChartPoint)); +#line 71 "../src/points.vala" + _tmp12_.x = (_tmp1_.max - (((_tmp2_.timestamp - _tmp3_.timestamp) / 1000) * live_chart_xaxis_get_ratio (_tmp4_))) - realtime_delta; +#line 71 "../src/points.vala" + _tmp12_.y = _tmp6_.max - (_tmp7_.value * live_chart_yaxis_get_ratio (_tmp8_)); +#line 71 "../src/points.vala" + _tmp12_.height = _tmp9_.value * live_chart_yaxis_get_ratio (_tmp10_); +#line 71 "../src/points.vala" + _tmp12_.data = _tmp11_; +#line 71 "../src/points.vala" + *result = _tmp12_; +#line 71 "../src/points.vala" + return; +#line 477 "points.c" +} + +LiveChartBounds* +live_chart_points_get_bounds (LiveChartPoints* self) +{ + LiveChartBounds* result; + LiveChartBounds* _tmp0_; +#line 14 "../src/points.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 14 "../src/points.vala" + _tmp0_ = self->priv->_bounds; +#line 14 "../src/points.vala" + result = _tmp0_; +#line 14 "../src/points.vala" + return result; +#line 493 "points.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 14 "../src/points.vala" + return self ? g_object_ref (self) : NULL; +#line 501 "points.c" +} + +void +live_chart_points_set_bounds (LiveChartPoints* self, + LiveChartBounds* value) +{ + LiveChartBounds* old_value; +#line 14 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/points.vala" + old_value = live_chart_points_get_bounds (self); +#line 14 "../src/points.vala" + if (old_value != value) { +#line 515 "points.c" + LiveChartBounds* _tmp0_; +#line 14 "../src/points.vala" + _tmp0_ = _g_object_ref0 (value); +#line 14 "../src/points.vala" + _g_object_unref0 (self->priv->_bounds); +#line 14 "../src/points.vala" + self->priv->_bounds = _tmp0_; +#line 14 "../src/points.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_points_properties[LIVE_CHART_POINTS_BOUNDS_PROPERTY]); +#line 525 "points.c" + } +} + +gint +live_chart_points_get_size (LiveChartPoints* self) +{ + gint result; + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; +#line 27 "../src/points.vala" + g_return_val_if_fail (self != NULL, 0); +#line 28 "../src/points.vala" + _tmp0_ = self->priv->points; +#line 28 "../src/points.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 28 "../src/points.vala" + _tmp2_ = _tmp1_; +#line 28 "../src/points.vala" + result = _tmp2_; +#line 28 "../src/points.vala" + return result; +#line 548 "points.c" +} + +gdouble +live_chart_points_get_realtime_delta (LiveChartPoints* self) +{ + gdouble result; +#line 33 "../src/points.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 33 "../src/points.vala" + result = self->priv->_realtime_delta; +#line 33 "../src/points.vala" + return result; +#line 561 "points.c" +} + +void +live_chart_points_set_realtime_delta (LiveChartPoints* self, + gdouble value) +{ + gdouble old_value; +#line 33 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 33 "../src/points.vala" + old_value = live_chart_points_get_realtime_delta (self); +#line 33 "../src/points.vala" + if (old_value != value) { +#line 33 "../src/points.vala" + self->priv->_realtime_delta = value; +#line 33 "../src/points.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_points_properties[LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY]); +#line 579 "points.c" + } +} + +static void +live_chart_points_class_init (LiveChartPointsClass * klass, + gpointer klass_data) +{ +#line 10 "../src/points.vala" + live_chart_points_parent_class = g_type_class_peek_parent (klass); +#line 10 "../src/points.vala" + g_type_class_adjust_private_offset (klass, &LiveChartPoints_private_offset); +#line 10 "../src/points.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_points_get_property; +#line 10 "../src/points.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_points_set_property; +#line 10 "../src/points.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_points_finalize; +#line 10 "../src/points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_POINTS_BOUNDS_PROPERTY, live_chart_points_properties[LIVE_CHART_POINTS_BOUNDS_PROPERTY] = g_param_spec_object ("bounds", "bounds", "bounds", LIVE_CHART_TYPE_BOUNDS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 10 "../src/points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_POINTS_SIZE_PROPERTY, live_chart_points_properties[LIVE_CHART_POINTS_SIZE_PROPERTY] = g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 10 "../src/points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY, live_chart_points_properties[LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY] = g_param_spec_double ("realtime-delta", "realtime-delta", "realtime-delta", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 603 "points.c" +} + +static void +live_chart_points_instance_init (LiveChartPoints * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 10 "../src/points.vala" + self->priv = live_chart_points_get_instance_private (self); +#line 12 "../src/points.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_TYPE_POINT, (GBoxedCopyFunc) live_chart_point_dup, (GDestroyNotify) live_chart_point_free, NULL, NULL, NULL); +#line 12 "../src/points.vala" + self->priv->points = _tmp0_; +#line 617 "points.c" +} + +static void +live_chart_points_finalize (GObject * obj) +{ + LiveChartPoints * self; +#line 10 "../src/points.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_POINTS, LiveChartPoints); +#line 12 "../src/points.vala" + _g_object_unref0 (self->priv->points); +#line 13 "../src/points.vala" + _g_object_unref0 (self->priv->_bounds); +#line 10 "../src/points.vala" + G_OBJECT_CLASS (live_chart_points_parent_class)->finalize (obj); +#line 632 "points.c" +} + +static GType +live_chart_points_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartPointsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_points_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartPoints), 0, (GInstanceInitFunc) live_chart_points_instance_init, NULL }; + GType live_chart_points_type_id; + live_chart_points_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartPoints", &g_define_type_info, 0); + LiveChartPoints_private_offset = g_type_add_instance_private (live_chart_points_type_id, sizeof (LiveChartPointsPrivate)); + return live_chart_points_type_id; +} + +GType +live_chart_points_get_type (void) +{ + static volatile gsize live_chart_points_type_id__once = 0; + if (g_once_init_enter (&live_chart_points_type_id__once)) { + GType live_chart_points_type_id; + live_chart_points_type_id = live_chart_points_get_type_once (); + g_once_init_leave (&live_chart_points_type_id__once, live_chart_points_type_id); + } + return live_chart_points_type_id__once; +} + +static void +_vala_live_chart_points_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartPoints * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_POINTS, LiveChartPoints); +#line 10 "../src/points.vala" + switch (property_id) { +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_BOUNDS_PROPERTY: +#line 10 "../src/points.vala" + g_value_set_object (value, live_chart_points_get_bounds (self)); +#line 10 "../src/points.vala" + break; +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_SIZE_PROPERTY: +#line 10 "../src/points.vala" + g_value_set_int (value, live_chart_points_get_size (self)); +#line 10 "../src/points.vala" + break; +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY: +#line 10 "../src/points.vala" + g_value_set_double (value, live_chart_points_get_realtime_delta (self)); +#line 10 "../src/points.vala" + break; +#line 685 "points.c" + default: +#line 10 "../src/points.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 10 "../src/points.vala" + break; +#line 691 "points.c" + } +} + +static void +_vala_live_chart_points_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartPoints * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_POINTS, LiveChartPoints); +#line 10 "../src/points.vala" + switch (property_id) { +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_BOUNDS_PROPERTY: +#line 10 "../src/points.vala" + live_chart_points_set_bounds (self, g_value_get_object (value)); +#line 10 "../src/points.vala" + break; +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY: +#line 10 "../src/points.vala" + live_chart_points_set_realtime_delta (self, g_value_get_double (value)); +#line 10 "../src/points.vala" + break; +#line 717 "points.c" + default: +#line 10 "../src/points.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 10 "../src/points.vala" + break; +#line 723 "points.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/region.c b/iPDC/lib/liblivechart_static.a.p/region.c new file mode 100644 index 0000000..e6febd8 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/region.c @@ -0,0 +1,1158 @@ +/* region.c generated by valac 0.56.0, the Vala compiler + * generated from region.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include + +#define _live_chart_coord_free0(var) ((var == NULL) ? NULL : (var = (live_chart_coord_free (var), NULL))) +typedef struct _LiveChartParamSpecRegion LiveChartParamSpecRegion; + +struct _LiveChartRegionPrivate { + gdouble ceil; + gdouble floor; + GdkRGBA _line_color; + GdkRGBA _area_color; +}; + +struct _LiveChartParamSpecRegion { + GParamSpec parent_instance; +}; + +static gint LiveChartRegion_private_offset; +static gpointer live_chart_region_parent_class = NULL; + +static gboolean live_chart_region_enter_by_the_bottom (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static gboolean live_chart_region_enter_by_the_top (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static gboolean live_chart_region_leaving_by_the_top (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static gboolean live_chart_region_leaving_by_the_bottom (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static gboolean live_chart_region_is_within (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static void live_chart_region_finalize (LiveChartRegion * obj); +static GType live_chart_region_get_type_once (void); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static GType +live_chart_region_handle_status_get_type_once (void) +{ + static const GEnumValue values[] = {{LIVE_CHART_REGION_HANDLE_STATUS_ENTER, "LIVE_CHART_REGION_HANDLE_STATUS_ENTER", "enter"}, {LIVE_CHART_REGION_HANDLE_STATUS_EXIT, "LIVE_CHART_REGION_HANDLE_STATUS_EXIT", "exit"}, {LIVE_CHART_REGION_HANDLE_STATUS_WITHIN, "LIVE_CHART_REGION_HANDLE_STATUS_WITHIN", "within"}, {LIVE_CHART_REGION_HANDLE_STATUS_OUT, "LIVE_CHART_REGION_HANDLE_STATUS_OUT", "out"}, {0, NULL, NULL}}; + GType live_chart_region_handle_status_type_id; + live_chart_region_handle_status_type_id = g_enum_register_static ("LiveChartRegionHandleStatus", values); + return live_chart_region_handle_status_type_id; +} + +GType +live_chart_region_handle_status_get_type (void) +{ + static volatile gsize live_chart_region_handle_status_type_id__once = 0; + if (g_once_init_enter (&live_chart_region_handle_status_type_id__once)) { + GType live_chart_region_handle_status_type_id; + live_chart_region_handle_status_type_id = live_chart_region_handle_status_get_type_once (); + g_once_init_leave (&live_chart_region_handle_status_type_id__once, live_chart_region_handle_status_type_id); + } + return live_chart_region_handle_status_type_id__once; +} + +LiveChartRegionHandleResult* +live_chart_region_handle_result_dup (const LiveChartRegionHandleResult* self) +{ + LiveChartRegionHandleResult* dup; +#line 11 "../src/region.vala" + dup = g_new0 (LiveChartRegionHandleResult, 1); +#line 11 "../src/region.vala" + memcpy (dup, self, sizeof (LiveChartRegionHandleResult)); +#line 11 "../src/region.vala" + return dup; +#line 81 "region.c" +} + +void +live_chart_region_handle_result_free (LiveChartRegionHandleResult* self) +{ +#line 11 "../src/region.vala" + g_free (self); +#line 89 "region.c" +} + +static GType +live_chart_region_handle_result_get_type_once (void) +{ + GType live_chart_region_handle_result_type_id; + live_chart_region_handle_result_type_id = g_boxed_type_register_static ("LiveChartRegionHandleResult", (GBoxedCopyFunc) live_chart_region_handle_result_dup, (GBoxedFreeFunc) live_chart_region_handle_result_free); + return live_chart_region_handle_result_type_id; +} + +GType +live_chart_region_handle_result_get_type (void) +{ + static volatile gsize live_chart_region_handle_result_type_id__once = 0; + if (g_once_init_enter (&live_chart_region_handle_result_type_id__once)) { + GType live_chart_region_handle_result_type_id; + live_chart_region_handle_result_type_id = live_chart_region_handle_result_get_type_once (); + g_once_init_leave (&live_chart_region_handle_result_type_id__once, live_chart_region_handle_result_type_id); + } + return live_chart_region_handle_result_type_id__once; +} + +static inline gpointer +live_chart_region_get_instance_private (LiveChartRegion* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartRegion_private_offset); +} + +LiveChartRegion* +live_chart_region_construct (GType object_type, + gdouble floor, + gdouble ceil) +{ + LiveChartRegion* self = NULL; +#line 25 "../src/region.vala" + self = (LiveChartRegion*) g_type_create_instance (object_type); +#line 26 "../src/region.vala" + self->priv->floor = floor; +#line 27 "../src/region.vala" + self->priv->ceil = ceil; +#line 25 "../src/region.vala" + return self; +#line 132 "region.c" +} + +LiveChartRegion* +live_chart_region_new (gdouble floor, + gdouble ceil) +{ +#line 25 "../src/region.vala" + return live_chart_region_construct (LIVE_CHART_TYPE_REGION, floor, ceil); +#line 141 "region.c" +} + +LiveChartRegion* +live_chart_region_construct_between (GType object_type, + gdouble above, + gdouble below) +{ + LiveChartRegion* self = NULL; +#line 38 "../src/region.vala" + self = (LiveChartRegion*) live_chart_region_construct (object_type, above, below); +#line 37 "../src/region.vala" + return self; +#line 154 "region.c" +} + +LiveChartRegion* +live_chart_region_new_between (gdouble above, + gdouble below) +{ +#line 37 "../src/region.vala" + return live_chart_region_construct_between (LIVE_CHART_TYPE_REGION, above, below); +#line 163 "region.c" +} + +static gpointer +_live_chart_region_ref0 (gpointer self) +{ +#line 43 "../src/region.vala" + return self ? live_chart_region_ref (self) : NULL; +#line 171 "region.c" +} + +LiveChartRegion* +live_chart_region_with_line_color (LiveChartRegion* self, + GdkRGBA* color) +{ + GdkRGBA _tmp0_; + LiveChartRegion* _tmp1_; + LiveChartRegion* result; +#line 41 "../src/region.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 41 "../src/region.vala" + g_return_val_if_fail (color != NULL, NULL); +#line 42 "../src/region.vala" + _tmp0_ = *color; +#line 42 "../src/region.vala" + live_chart_region_set_line_color (self, &_tmp0_); +#line 43 "../src/region.vala" + _tmp1_ = _live_chart_region_ref0 (self); +#line 43 "../src/region.vala" + result = _tmp1_; +#line 43 "../src/region.vala" + return result; +#line 195 "region.c" +} + +LiveChartRegion* +live_chart_region_with_area_color (LiveChartRegion* self, + GdkRGBA* color) +{ + GdkRGBA _tmp0_; + LiveChartRegion* _tmp1_; + LiveChartRegion* result; +#line 45 "../src/region.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 45 "../src/region.vala" + g_return_val_if_fail (color != NULL, NULL); +#line 46 "../src/region.vala" + _tmp0_ = *color; +#line 46 "../src/region.vala" + live_chart_region_set_area_color (self, &_tmp0_); +#line 47 "../src/region.vala" + _tmp1_ = _live_chart_region_ref0 (self); +#line 47 "../src/region.vala" + result = _tmp1_; +#line 47 "../src/region.vala" + return result; +#line 219 "region.c" +} + +gboolean +live_chart_region_has_at_least_one_point_within (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + gboolean _tmp1_ = FALSE; + LiveChartPoint _tmp2_; + LiveChartTimestampedValue _tmp3_; + gboolean result; +#line 50 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 50 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 50 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 51 "../src/region.vala" + _tmp2_ = *previous; +#line 51 "../src/region.vala" + _tmp3_ = _tmp2_.data; +#line 51 "../src/region.vala" + if (_tmp3_.value > self->priv->floor) { +#line 244 "region.c" + LiveChartPoint _tmp4_; + LiveChartTimestampedValue _tmp5_; +#line 51 "../src/region.vala" + _tmp4_ = *previous; +#line 51 "../src/region.vala" + _tmp5_ = _tmp4_.data; +#line 51 "../src/region.vala" + _tmp1_ = _tmp5_.value <= self->priv->ceil; +#line 253 "region.c" + } else { +#line 51 "../src/region.vala" + _tmp1_ = FALSE; +#line 257 "region.c" + } +#line 51 "../src/region.vala" + if (_tmp1_) { +#line 51 "../src/region.vala" + _tmp0_ = TRUE; +#line 263 "region.c" + } else { + gboolean _tmp6_ = FALSE; + LiveChartPoint _tmp7_; + LiveChartTimestampedValue _tmp8_; +#line 51 "../src/region.vala" + _tmp7_ = *current; +#line 51 "../src/region.vala" + _tmp8_ = _tmp7_.data; +#line 51 "../src/region.vala" + if (_tmp8_.value > self->priv->floor) { +#line 274 "region.c" + LiveChartPoint _tmp9_; + LiveChartTimestampedValue _tmp10_; +#line 51 "../src/region.vala" + _tmp9_ = *current; +#line 51 "../src/region.vala" + _tmp10_ = _tmp9_.data; +#line 51 "../src/region.vala" + _tmp6_ = _tmp10_.value <= self->priv->ceil; +#line 283 "region.c" + } else { +#line 51 "../src/region.vala" + _tmp6_ = FALSE; +#line 287 "region.c" + } +#line 51 "../src/region.vala" + _tmp0_ = _tmp6_; +#line 291 "region.c" + } +#line 51 "../src/region.vala" + result = _tmp0_; +#line 51 "../src/region.vala" + return result; +#line 297 "region.c" +} + +void +live_chart_region_handle (LiveChartRegion* self, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + LiveChartGetIntersection get_intersection, + gpointer get_intersection_target) +{ + LiveChartPoint _tmp0_; + LiveChartPoint _tmp1_; +#line 54 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 54 "../src/region.vala" + g_return_if_fail (intersections != NULL); +#line 54 "../src/region.vala" + g_return_if_fail (previous != NULL); +#line 54 "../src/region.vala" + g_return_if_fail (current != NULL); +#line 55 "../src/region.vala" + _tmp0_ = *previous; +#line 55 "../src/region.vala" + _tmp1_ = *current; +#line 55 "../src/region.vala" + if (live_chart_region_has_at_least_one_point_within (self, &_tmp0_, &_tmp1_)) { +#line 324 "region.c" + LiveChartPoint _tmp2_; + LiveChartPoint _tmp3_; + LiveChartPoint _tmp7_; + LiveChartPoint _tmp8_; + LiveChartPoint _tmp12_; + LiveChartPoint _tmp13_; + LiveChartPoint _tmp18_; + LiveChartPoint _tmp19_; + LiveChartPoint _tmp24_; + LiveChartPoint _tmp25_; +#line 56 "../src/region.vala" + _tmp2_ = *previous; +#line 56 "../src/region.vala" + _tmp3_ = *current; +#line 56 "../src/region.vala" + if (live_chart_region_enter_by_the_bottom (self, &_tmp2_, &_tmp3_)) { +#line 341 "region.c" + gdouble entered_at = 0.0; + LiveChartCoord* coords = NULL; + LiveChartCoord* _tmp4_; +#line 57 "../src/region.vala" + entered_at = self->priv->floor; +#line 58 "../src/region.vala" + _tmp4_ = get_intersection (entered_at, get_intersection_target); +#line 58 "../src/region.vala" + coords = _tmp4_; +#line 59 "../src/region.vala" + if (live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 353 "region.c" + LiveChartPoint _tmp5_; +#line 60 "../src/region.vala" + _tmp5_ = *current; +#line 60 "../src/region.vala" + live_chart_intersections_update (intersections, _tmp5_.x); +#line 359 "region.c" + } else { + LiveChartCoord* _tmp6_; +#line 62 "../src/region.vala" + _tmp6_ = coords; +#line 62 "../src/region.vala" + live_chart_intersections_open (intersections, self, (*_tmp6_).x, entered_at); +#line 366 "region.c" + } +#line 56 "../src/region.vala" + _live_chart_coord_free0 (coords); +#line 370 "region.c" + } +#line 65 "../src/region.vala" + _tmp7_ = *previous; +#line 65 "../src/region.vala" + _tmp8_ = *current; +#line 65 "../src/region.vala" + if (live_chart_region_enter_by_the_top (self, &_tmp7_, &_tmp8_)) { +#line 378 "region.c" + gdouble entered_at = 0.0; + LiveChartCoord* coords = NULL; + LiveChartCoord* _tmp9_; +#line 67 "../src/region.vala" + entered_at = self->priv->ceil; +#line 68 "../src/region.vala" + _tmp9_ = get_intersection (entered_at, get_intersection_target); +#line 68 "../src/region.vala" + coords = _tmp9_; +#line 70 "../src/region.vala" + if (live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 390 "region.c" + LiveChartPoint _tmp10_; +#line 71 "../src/region.vala" + _tmp10_ = *current; +#line 71 "../src/region.vala" + live_chart_intersections_update (intersections, _tmp10_.x); +#line 396 "region.c" + } else { + LiveChartCoord* _tmp11_; +#line 73 "../src/region.vala" + _tmp11_ = coords; +#line 73 "../src/region.vala" + live_chart_intersections_open (intersections, self, (*_tmp11_).x, entered_at); +#line 403 "region.c" + } +#line 65 "../src/region.vala" + _live_chart_coord_free0 (coords); +#line 407 "region.c" + } +#line 77 "../src/region.vala" + _tmp12_ = *previous; +#line 77 "../src/region.vala" + _tmp13_ = *current; +#line 77 "../src/region.vala" + if (live_chart_region_leaving_by_the_top (self, &_tmp12_, &_tmp13_)) { +#line 415 "region.c" + gdouble exited_at = 0.0; + LiveChartCoord* coords = NULL; + LiveChartCoord* _tmp14_; +#line 78 "../src/region.vala" + exited_at = self->priv->ceil; +#line 79 "../src/region.vala" + _tmp14_ = get_intersection (exited_at, get_intersection_target); +#line 79 "../src/region.vala" + coords = _tmp14_; +#line 81 "../src/region.vala" + if (live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 427 "region.c" + LiveChartCoord* _tmp15_; +#line 82 "../src/region.vala" + _tmp15_ = coords; +#line 82 "../src/region.vala" + live_chart_intersections_close (intersections, (*_tmp15_).x, exited_at); +#line 433 "region.c" + } else { + LiveChartPoint _tmp16_; + LiveChartCoord* _tmp17_; +#line 84 "../src/region.vala" + _tmp16_ = *previous; +#line 84 "../src/region.vala" + live_chart_intersections_open_without_entrypoint (intersections, self, _tmp16_.x); +#line 85 "../src/region.vala" + _tmp17_ = coords; +#line 85 "../src/region.vala" + live_chart_intersections_close (intersections, (*_tmp17_).x, exited_at); +#line 445 "region.c" + } +#line 77 "../src/region.vala" + _live_chart_coord_free0 (coords); +#line 449 "region.c" + } +#line 88 "../src/region.vala" + _tmp18_ = *previous; +#line 88 "../src/region.vala" + _tmp19_ = *current; +#line 88 "../src/region.vala" + if (live_chart_region_leaving_by_the_bottom (self, &_tmp18_, &_tmp19_)) { +#line 457 "region.c" + gdouble exited_at = 0.0; + LiveChartCoord* coords = NULL; + LiveChartCoord* _tmp20_; +#line 89 "../src/region.vala" + exited_at = self->priv->floor; +#line 90 "../src/region.vala" + _tmp20_ = get_intersection (exited_at, get_intersection_target); +#line 90 "../src/region.vala" + coords = _tmp20_; +#line 92 "../src/region.vala" + if (live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 469 "region.c" + LiveChartCoord* _tmp21_; +#line 93 "../src/region.vala" + _tmp21_ = coords; +#line 93 "../src/region.vala" + live_chart_intersections_close (intersections, (*_tmp21_).x, exited_at); +#line 475 "region.c" + } else { + LiveChartPoint _tmp22_; + LiveChartCoord* _tmp23_; +#line 95 "../src/region.vala" + _tmp22_ = *previous; +#line 95 "../src/region.vala" + live_chart_intersections_open_without_entrypoint (intersections, self, _tmp22_.x); +#line 96 "../src/region.vala" + _tmp23_ = coords; +#line 96 "../src/region.vala" + live_chart_intersections_close (intersections, (*_tmp23_).x, exited_at); +#line 487 "region.c" + } +#line 88 "../src/region.vala" + _live_chart_coord_free0 (coords); +#line 491 "region.c" + } +#line 99 "../src/region.vala" + _tmp24_ = *previous; +#line 99 "../src/region.vala" + _tmp25_ = *current; +#line 99 "../src/region.vala" + if (live_chart_region_is_within (self, &_tmp24_, &_tmp25_)) { +#line 100 "../src/region.vala" + if (!live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 501 "region.c" + LiveChartPoint _tmp26_; +#line 101 "../src/region.vala" + _tmp26_ = *previous; +#line 101 "../src/region.vala" + live_chart_intersections_open_without_entrypoint (intersections, self, _tmp26_.x); +#line 507 "region.c" + } else { + LiveChartPoint _tmp27_; +#line 103 "../src/region.vala" + _tmp27_ = *current; +#line 103 "../src/region.vala" + live_chart_intersections_update (intersections, _tmp27_.x); +#line 514 "region.c" + } + } + } +} + +static gboolean +live_chart_region_enter_by_the_bottom (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + LiveChartPoint _tmp1_; + LiveChartTimestampedValue _tmp2_; + gboolean result; +#line 109 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 109 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 109 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 110 "../src/region.vala" + _tmp1_ = *previous; +#line 110 "../src/region.vala" + _tmp2_ = _tmp1_.data; +#line 110 "../src/region.vala" + if (_tmp2_.value <= self->priv->floor) { +#line 541 "region.c" + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; +#line 110 "../src/region.vala" + _tmp3_ = *current; +#line 110 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 110 "../src/region.vala" + _tmp0_ = _tmp4_.value > self->priv->floor; +#line 550 "region.c" + } else { +#line 110 "../src/region.vala" + _tmp0_ = FALSE; +#line 554 "region.c" + } +#line 110 "../src/region.vala" + result = _tmp0_; +#line 110 "../src/region.vala" + return result; +#line 560 "region.c" +} + +static gboolean +live_chart_region_enter_by_the_top (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + LiveChartPoint _tmp1_; + LiveChartTimestampedValue _tmp2_; + gboolean result; +#line 113 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 113 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 113 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 114 "../src/region.vala" + _tmp1_ = *previous; +#line 114 "../src/region.vala" + _tmp2_ = _tmp1_.data; +#line 114 "../src/region.vala" + if (_tmp2_.value >= self->priv->ceil) { +#line 584 "region.c" + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; +#line 114 "../src/region.vala" + _tmp3_ = *current; +#line 114 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 114 "../src/region.vala" + _tmp0_ = _tmp4_.value < self->priv->ceil; +#line 593 "region.c" + } else { +#line 114 "../src/region.vala" + _tmp0_ = FALSE; +#line 597 "region.c" + } +#line 114 "../src/region.vala" + result = _tmp0_; +#line 114 "../src/region.vala" + return result; +#line 603 "region.c" +} + +static gboolean +live_chart_region_leaving_by_the_top (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + LiveChartPoint _tmp1_; + LiveChartTimestampedValue _tmp2_; + gboolean result; +#line 117 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 117 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 117 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 118 "../src/region.vala" + _tmp1_ = *previous; +#line 118 "../src/region.vala" + _tmp2_ = _tmp1_.data; +#line 118 "../src/region.vala" + if (_tmp2_.value >= self->priv->floor) { +#line 627 "region.c" + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; +#line 118 "../src/region.vala" + _tmp3_ = *current; +#line 118 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 118 "../src/region.vala" + _tmp0_ = _tmp4_.value > self->priv->ceil; +#line 636 "region.c" + } else { +#line 118 "../src/region.vala" + _tmp0_ = FALSE; +#line 640 "region.c" + } +#line 118 "../src/region.vala" + result = _tmp0_; +#line 118 "../src/region.vala" + return result; +#line 646 "region.c" +} + +static gboolean +live_chart_region_leaving_by_the_bottom (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + LiveChartPoint _tmp1_; + LiveChartTimestampedValue _tmp2_; + gboolean result; +#line 121 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 121 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 121 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 122 "../src/region.vala" + _tmp1_ = *previous; +#line 122 "../src/region.vala" + _tmp2_ = _tmp1_.data; +#line 122 "../src/region.vala" + if (_tmp2_.value >= self->priv->floor) { +#line 670 "region.c" + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; +#line 122 "../src/region.vala" + _tmp3_ = *current; +#line 122 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 122 "../src/region.vala" + _tmp0_ = _tmp4_.value < self->priv->floor; +#line 679 "region.c" + } else { +#line 122 "../src/region.vala" + _tmp0_ = FALSE; +#line 683 "region.c" + } +#line 122 "../src/region.vala" + result = _tmp0_; +#line 122 "../src/region.vala" + return result; +#line 689 "region.c" +} + +static gboolean +live_chart_region_is_within (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + gboolean _tmp1_ = FALSE; + gboolean _tmp2_ = FALSE; + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; + gboolean result; +#line 125 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 125 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 125 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 126 "../src/region.vala" + _tmp3_ = *previous; +#line 126 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 126 "../src/region.vala" + if (_tmp4_.value >= self->priv->floor) { +#line 715 "region.c" + LiveChartPoint _tmp5_; + LiveChartTimestampedValue _tmp6_; +#line 126 "../src/region.vala" + _tmp5_ = *current; +#line 126 "../src/region.vala" + _tmp6_ = _tmp5_.data; +#line 126 "../src/region.vala" + _tmp2_ = _tmp6_.value > self->priv->floor; +#line 724 "region.c" + } else { +#line 126 "../src/region.vala" + _tmp2_ = FALSE; +#line 728 "region.c" + } +#line 126 "../src/region.vala" + if (_tmp2_) { +#line 732 "region.c" + LiveChartPoint _tmp7_; + LiveChartTimestampedValue _tmp8_; +#line 126 "../src/region.vala" + _tmp7_ = *previous; +#line 126 "../src/region.vala" + _tmp8_ = _tmp7_.data; +#line 126 "../src/region.vala" + _tmp1_ = _tmp8_.value < self->priv->ceil; +#line 741 "region.c" + } else { +#line 126 "../src/region.vala" + _tmp1_ = FALSE; +#line 745 "region.c" + } +#line 126 "../src/region.vala" + if (_tmp1_) { +#line 749 "region.c" + LiveChartPoint _tmp9_; + LiveChartTimestampedValue _tmp10_; +#line 126 "../src/region.vala" + _tmp9_ = *current; +#line 126 "../src/region.vala" + _tmp10_ = _tmp9_.data; +#line 126 "../src/region.vala" + _tmp0_ = _tmp10_.value < self->priv->ceil; +#line 758 "region.c" + } else { +#line 126 "../src/region.vala" + _tmp0_ = FALSE; +#line 762 "region.c" + } +#line 126 "../src/region.vala" + result = _tmp0_; +#line 126 "../src/region.vala" + return result; +#line 768 "region.c" +} + +void +live_chart_region_get_line_color (LiveChartRegion* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 22 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/region.vala" + _tmp0_ = self->priv->_line_color; +#line 22 "../src/region.vala" + *result = _tmp0_; +#line 22 "../src/region.vala" + return; +#line 784 "region.c" +} + +void +live_chart_region_set_line_color (LiveChartRegion* self, + GdkRGBA * value) +{ + GdkRGBA _tmp0_; +#line 22 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/region.vala" + _tmp0_ = *value; +#line 22 "../src/region.vala" + self->priv->_line_color = _tmp0_; +#line 798 "region.c" +} + +void +live_chart_region_get_area_color (LiveChartRegion* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 23 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 23 "../src/region.vala" + _tmp0_ = self->priv->_area_color; +#line 23 "../src/region.vala" + *result = _tmp0_; +#line 23 "../src/region.vala" + return; +#line 814 "region.c" +} + +void +live_chart_region_set_area_color (LiveChartRegion* self, + GdkRGBA * value) +{ + GdkRGBA _tmp0_; +#line 23 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 23 "../src/region.vala" + _tmp0_ = *value; +#line 23 "../src/region.vala" + self->priv->_area_color = _tmp0_; +#line 828 "region.c" +} + +static void +live_chart_value_region_init (GValue* value) +{ +#line 18 "../src/region.vala" + value->data[0].v_pointer = NULL; +#line 836 "region.c" +} + +static void +live_chart_value_region_free_value (GValue* value) +{ +#line 18 "../src/region.vala" + if (value->data[0].v_pointer) { +#line 18 "../src/region.vala" + live_chart_region_unref (value->data[0].v_pointer); +#line 846 "region.c" + } +} + +static void +live_chart_value_region_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 18 "../src/region.vala" + if (src_value->data[0].v_pointer) { +#line 18 "../src/region.vala" + dest_value->data[0].v_pointer = live_chart_region_ref (src_value->data[0].v_pointer); +#line 858 "region.c" + } else { +#line 18 "../src/region.vala" + dest_value->data[0].v_pointer = NULL; +#line 862 "region.c" + } +} + +static gpointer +live_chart_value_region_peek_pointer (const GValue* value) +{ +#line 18 "../src/region.vala" + return value->data[0].v_pointer; +#line 871 "region.c" +} + +static gchar* +live_chart_value_region_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 18 "../src/region.vala" + if (collect_values[0].v_pointer) { +#line 882 "region.c" + LiveChartRegion * object; + object = collect_values[0].v_pointer; +#line 18 "../src/region.vala" + if (object->parent_instance.g_class == NULL) { +#line 18 "../src/region.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 889 "region.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 18 "../src/region.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 893 "region.c" + } +#line 18 "../src/region.vala" + value->data[0].v_pointer = live_chart_region_ref (object); +#line 897 "region.c" + } else { +#line 18 "../src/region.vala" + value->data[0].v_pointer = NULL; +#line 901 "region.c" + } +#line 18 "../src/region.vala" + return NULL; +#line 905 "region.c" +} + +static gchar* +live_chart_value_region_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartRegion ** object_p; + object_p = collect_values[0].v_pointer; +#line 18 "../src/region.vala" + if (!object_p) { +#line 18 "../src/region.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 920 "region.c" + } +#line 18 "../src/region.vala" + if (!value->data[0].v_pointer) { +#line 18 "../src/region.vala" + *object_p = NULL; +#line 926 "region.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 18 "../src/region.vala" + *object_p = value->data[0].v_pointer; +#line 930 "region.c" + } else { +#line 18 "../src/region.vala" + *object_p = live_chart_region_ref (value->data[0].v_pointer); +#line 934 "region.c" + } +#line 18 "../src/region.vala" + return NULL; +#line 938 "region.c" +} + +GParamSpec* +live_chart_param_spec_region (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecRegion* spec; +#line 18 "../src/region.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_REGION), NULL); +#line 18 "../src/region.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 18 "../src/region.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 18 "../src/region.vala" + return G_PARAM_SPEC (spec); +#line 957 "region.c" +} + +gpointer +live_chart_value_get_region (const GValue* value) +{ +#line 18 "../src/region.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_REGION), NULL); +#line 18 "../src/region.vala" + return value->data[0].v_pointer; +#line 967 "region.c" +} + +void +live_chart_value_set_region (GValue* value, + gpointer v_object) +{ + LiveChartRegion * old; +#line 18 "../src/region.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_REGION)); +#line 18 "../src/region.vala" + old = value->data[0].v_pointer; +#line 18 "../src/region.vala" + if (v_object) { +#line 18 "../src/region.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_REGION)); +#line 18 "../src/region.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 18 "../src/region.vala" + value->data[0].v_pointer = v_object; +#line 18 "../src/region.vala" + live_chart_region_ref (value->data[0].v_pointer); +#line 989 "region.c" + } else { +#line 18 "../src/region.vala" + value->data[0].v_pointer = NULL; +#line 993 "region.c" + } +#line 18 "../src/region.vala" + if (old) { +#line 18 "../src/region.vala" + live_chart_region_unref (old); +#line 999 "region.c" + } +} + +void +live_chart_value_take_region (GValue* value, + gpointer v_object) +{ + LiveChartRegion * old; +#line 18 "../src/region.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_REGION)); +#line 18 "../src/region.vala" + old = value->data[0].v_pointer; +#line 18 "../src/region.vala" + if (v_object) { +#line 18 "../src/region.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_REGION)); +#line 18 "../src/region.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 18 "../src/region.vala" + value->data[0].v_pointer = v_object; +#line 1020 "region.c" + } else { +#line 18 "../src/region.vala" + value->data[0].v_pointer = NULL; +#line 1024 "region.c" + } +#line 18 "../src/region.vala" + if (old) { +#line 18 "../src/region.vala" + live_chart_region_unref (old); +#line 1030 "region.c" + } +} + +static void +live_chart_region_class_init (LiveChartRegionClass * klass, + gpointer klass_data) +{ +#line 18 "../src/region.vala" + live_chart_region_parent_class = g_type_class_peek_parent (klass); +#line 18 "../src/region.vala" + ((LiveChartRegionClass *) klass)->finalize = live_chart_region_finalize; +#line 18 "../src/region.vala" + g_type_class_adjust_private_offset (klass, &LiveChartRegion_private_offset); +#line 1044 "region.c" +} + +static void +live_chart_region_instance_init (LiveChartRegion * self, + gpointer klass) +{ + GdkRGBA _tmp0_ = {0}; + GdkRGBA _tmp1_ = {0}; +#line 18 "../src/region.vala" + self->priv = live_chart_region_get_instance_private (self); +#line 22 "../src/region.vala" + memset (&_tmp0_, 0, sizeof (GdkRGBA)); +#line 22 "../src/region.vala" + _tmp0_.red = (gdouble) 1; +#line 22 "../src/region.vala" + _tmp0_.green = (gdouble) 1; +#line 22 "../src/region.vala" + _tmp0_.blue = (gdouble) 1; +#line 22 "../src/region.vala" + _tmp0_.alpha = (gdouble) 1; +#line 22 "../src/region.vala" + self->priv->_line_color = _tmp0_; +#line 23 "../src/region.vala" + memset (&_tmp1_, 0, sizeof (GdkRGBA)); +#line 23 "../src/region.vala" + _tmp1_.red = (gdouble) 1; +#line 23 "../src/region.vala" + _tmp1_.green = (gdouble) 1; +#line 23 "../src/region.vala" + _tmp1_.blue = (gdouble) 1; +#line 23 "../src/region.vala" + _tmp1_.alpha = 0.5; +#line 23 "../src/region.vala" + self->priv->_area_color = _tmp1_; +#line 18 "../src/region.vala" + self->ref_count = 1; +#line 1081 "region.c" +} + +static void +live_chart_region_finalize (LiveChartRegion * obj) +{ + LiveChartRegion * self; +#line 18 "../src/region.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_REGION, LiveChartRegion); +#line 18 "../src/region.vala" + g_signal_handlers_destroy (self); +#line 1092 "region.c" +} + +static GType +live_chart_region_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_region_init, live_chart_value_region_free_value, live_chart_value_region_copy_value, live_chart_value_region_peek_pointer, "p", live_chart_value_region_collect_value, "p", live_chart_value_region_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartRegionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_region_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartRegion), 0, (GInstanceInitFunc) live_chart_region_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_region_type_id; + live_chart_region_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartRegion", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartRegion_private_offset = g_type_add_instance_private (live_chart_region_type_id, sizeof (LiveChartRegionPrivate)); + return live_chart_region_type_id; +} + +GType +live_chart_region_get_type (void) +{ + static volatile gsize live_chart_region_type_id__once = 0; + if (g_once_init_enter (&live_chart_region_type_id__once)) { + GType live_chart_region_type_id; + live_chart_region_type_id = live_chart_region_get_type_once (); + g_once_init_leave (&live_chart_region_type_id__once, live_chart_region_type_id); + } + return live_chart_region_type_id__once; +} + +gpointer +live_chart_region_ref (gpointer instance) +{ + LiveChartRegion * self; + self = instance; +#line 18 "../src/region.vala" + g_atomic_int_inc (&self->ref_count); +#line 18 "../src/region.vala" + return instance; +#line 1128 "region.c" +} + +void +live_chart_region_unref (gpointer instance) +{ + LiveChartRegion * self; + self = instance; +#line 18 "../src/region.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 18 "../src/region.vala" + LIVE_CHART_REGION_GET_CLASS (self)->finalize (self); +#line 18 "../src/region.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 1142 "region.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/serie.c b/iPDC/lib/liblivechart_static.a.p/serie.c new file mode 100644 index 0000000..bb030a9 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/serie.c @@ -0,0 +1,679 @@ +/* serie.c generated by valac 0.56.0, the Vala compiler + * generated from serie.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_SERIE_0_PROPERTY, + LIVE_CHART_SERIE_NAME_PROPERTY, + LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY, + LIVE_CHART_SERIE_LINE_PROPERTY, + LIVE_CHART_SERIE_VISIBLE_PROPERTY, + LIVE_CHART_SERIE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_serie_properties[LIVE_CHART_SERIE_NUM_PROPERTIES]; +#define _g_free0(var) (var = (g_free (var), NULL)) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +enum { + LIVE_CHART_SERIE_VALUE_ADDED_SIGNAL, + LIVE_CHART_SERIE_NUM_SIGNALS +}; +static guint live_chart_serie_signals[LIVE_CHART_SERIE_NUM_SIGNALS] = {0}; + +struct _LiveChartSeriePrivate { + gchar* _name; + gboolean _visible; + LiveChartSerieRenderer* renderer; +}; + +static gint LiveChartSerie_private_offset; +static gpointer live_chart_serie_parent_class = NULL; +static LiveChartColorableIface * live_chart_serie_live_chart_colorable_parent_iface = NULL; +static LiveChartDrawableIface * live_chart_serie_live_chart_drawable_parent_iface = NULL; + +static void live_chart_serie_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_serie_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_serie_finalize (GObject * obj); +static GType live_chart_serie_get_type_once (void); +static void _vala_live_chart_serie_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_serie_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_serie_get_instance_private (LiveChartSerie* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSerie_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 38 "../src/serie.vala" + return self ? g_object_ref (self) : NULL; +#line 73 "serie.c" +} + +LiveChartSerie* +live_chart_serie_construct (GType object_type, + const gchar* name, + LiveChartSerieRenderer* renderer) +{ + LiveChartSerie * self = NULL; + LiveChartSerieRenderer* _tmp0_; +#line 36 "../src/serie.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 36 "../src/serie.vala" + g_return_val_if_fail (renderer != NULL, NULL); +#line 36 "../src/serie.vala" + self = (LiveChartSerie*) g_object_new (object_type, NULL); +#line 37 "../src/serie.vala" + live_chart_serie_set_name (self, name); +#line 38 "../src/serie.vala" + _tmp0_ = _g_object_ref0 (renderer); +#line 38 "../src/serie.vala" + _g_object_unref0 (self->priv->renderer); +#line 38 "../src/serie.vala" + self->priv->renderer = _tmp0_; +#line 36 "../src/serie.vala" + return self; +#line 99 "serie.c" +} + +LiveChartSerie* +live_chart_serie_new (const gchar* name, + LiveChartSerieRenderer* renderer) +{ +#line 36 "../src/serie.vala" + return live_chart_serie_construct (LIVE_CHART_TYPE_SERIE, name, renderer); +#line 108 "serie.c" +} + +static void +live_chart_serie_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartSerie * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 41 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 41 "../src/serie.vala" + g_return_if_fail (ctx != NULL); +#line 41 "../src/serie.vala" + g_return_if_fail (config != NULL); +#line 42 "../src/serie.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 42 "../src/serie.vala" + _tmp1_ = _tmp0_; +#line 42 "../src/serie.vala" + if (_tmp1_) { +#line 131 "serie.c" + LiveChartSerieRenderer* _tmp2_; +#line 43 "../src/serie.vala" + _tmp2_ = self->priv->renderer; +#line 43 "../src/serie.vala" + live_chart_serie_renderer_draw (_tmp2_, ctx, config); +#line 137 "serie.c" + } +} + +void +live_chart_serie_add (LiveChartSerie* self, + gdouble value) +{ + LiveChartSerieRenderer* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* _tmp2_; + LiveChartTimestampedValue _tmp3_ = {0}; +#line 47 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 48 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 48 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_values (_tmp0_); +#line 48 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 48 "../src/serie.vala" + _tmp3_.timestamp = (gdouble) (g_get_real_time () / 1000); +#line 48 "../src/serie.vala" + _tmp3_.value = value; +#line 48 "../src/serie.vala" + live_chart_values_add (_tmp2_, &_tmp3_); +#line 48 "../src/serie.vala" + _g_object_unref0 (_tmp2_); +#line 49 "../src/serie.vala" + g_signal_emit (self, live_chart_serie_signals[LIVE_CHART_SERIE_VALUE_ADDED_SIGNAL], 0, value); +#line 167 "serie.c" +} + +void +live_chart_serie_add_with_timestamp (LiveChartSerie* self, + gdouble value, + gint64 timestamp) +{ + LiveChartSerieRenderer* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* _tmp2_; + LiveChartTimestampedValue _tmp3_ = {0}; +#line 52 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 53 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 53 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_values (_tmp0_); +#line 53 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 53 "../src/serie.vala" + _tmp3_.timestamp = (gdouble) timestamp; +#line 53 "../src/serie.vala" + _tmp3_.value = value; +#line 53 "../src/serie.vala" + live_chart_values_add (_tmp2_, &_tmp3_); +#line 53 "../src/serie.vala" + _g_object_unref0 (_tmp2_); +#line 54 "../src/serie.vala" + g_signal_emit (self, live_chart_serie_signals[LIVE_CHART_SERIE_VALUE_ADDED_SIGNAL], 0, value); +#line 197 "serie.c" +} + +void +live_chart_serie_set_main_color (LiveChartSerie* self, + GdkRGBA* color) +{ + GdkRGBA _tmp0_; +#line 58 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 58 "../src/serie.vala" + g_return_if_fail (color != NULL); +#line 59 "../src/serie.vala" + _tmp0_ = *color; +#line 59 "../src/serie.vala" + live_chart_colorable_set_main_color ((LiveChartColorable*) self, &_tmp0_); +#line 213 "serie.c" +} + +void +live_chart_serie_get_main_color (LiveChartSerie* self, + GdkRGBA* result) +{ + GdkRGBA _tmp0_ = {0}; + GdkRGBA _tmp1_; +#line 63 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 64 "../src/serie.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) self, &_tmp0_); +#line 64 "../src/serie.vala" + _tmp1_ = _tmp0_; +#line 64 "../src/serie.vala" + *result = _tmp1_; +#line 64 "../src/serie.vala" + return; +#line 232 "serie.c" +} + +LiveChartValues* +live_chart_serie_get_values (LiveChartSerie* self) +{ + LiveChartSerieRenderer* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* result; +#line 67 "../src/serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 68 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 68 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_values (_tmp0_); +#line 68 "../src/serie.vala" + result = _tmp1_; +#line 68 "../src/serie.vala" + return result; +#line 251 "serie.c" +} + +void +live_chart_serie_clear (LiveChartSerie* self) +{ + LiveChartSerieRenderer* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* _tmp2_; +#line 71 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 72 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 72 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_values (_tmp0_); +#line 72 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 72 "../src/serie.vala" + gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp2_); +#line 72 "../src/serie.vala" + _g_object_unref0 (_tmp2_); +#line 272 "serie.c" +} + +static void +live_chart_serie_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartSerie * self; + LiveChartSerieRenderer* _tmp0_; + LiveChartBoundingBox _tmp1_ = {0}; +#line 75 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 76 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 76 "../src/serie.vala" + live_chart_drawable_get_bounding_box ((LiveChartDrawable*) _tmp0_, &_tmp1_); +#line 76 "../src/serie.vala" + *result = _tmp1_; +#line 76 "../src/serie.vala" + return; +#line 292 "serie.c" +} + +const gchar* +live_chart_serie_get_name (LiveChartSerie* self) +{ + const gchar* result; + const gchar* _tmp0_; +#line 7 "../src/serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 7 "../src/serie.vala" + _tmp0_ = self->priv->_name; +#line 7 "../src/serie.vala" + result = _tmp0_; +#line 7 "../src/serie.vala" + return result; +#line 308 "serie.c" +} + +void +live_chart_serie_set_name (LiveChartSerie* self, + const gchar* value) +{ + gchar* old_value; +#line 7 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/serie.vala" + old_value = live_chart_serie_get_name (self); +#line 7 "../src/serie.vala" + if (g_strcmp0 (value, old_value) != 0) { +#line 322 "serie.c" + gchar* _tmp0_; +#line 7 "../src/serie.vala" + _tmp0_ = g_strdup (value); +#line 7 "../src/serie.vala" + _g_free0 (self->priv->_name); +#line 7 "../src/serie.vala" + self->priv->_name = _tmp0_; +#line 7 "../src/serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_properties[LIVE_CHART_SERIE_NAME_PROPERTY]); +#line 332 "serie.c" + } +} + +static void +live_chart_serie_real_get_main_color (LiveChartColorable* base, + GdkRGBA * result) +{ + LiveChartSerie* self; + LiveChartSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_ = {0}; + GdkRGBA _tmp4_; +#line 11 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 12 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 12 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_line (_tmp0_); +#line 12 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 12 "../src/serie.vala" + live_chart_path_get_color (_tmp2_, &_tmp3_); +#line 12 "../src/serie.vala" + _tmp4_ = _tmp3_; +#line 12 "../src/serie.vala" + *result = _tmp4_; +#line 12 "../src/serie.vala" + return; +#line 362 "serie.c" +} + +static void +live_chart_serie_real_set_main_color (LiveChartColorable* base, + GdkRGBA * value) +{ + LiveChartSerie* self; + LiveChartSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_; +#line 15 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 16 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 16 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_line (_tmp0_); +#line 16 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 16 "../src/serie.vala" + _tmp3_ = *value; +#line 16 "../src/serie.vala" + live_chart_path_set_color (_tmp2_, &_tmp3_); +#line 15 "../src/serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_properties[LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY]); +#line 388 "serie.c" +} + +LiveChartPath* +live_chart_serie_get_line (LiveChartSerie* self) +{ + LiveChartPath* result; + LiveChartSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; +#line 21 "../src/serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 22 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 22 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_line (_tmp0_); +#line 22 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 22 "../src/serie.vala" + result = _tmp2_; +#line 22 "../src/serie.vala" + return result; +#line 410 "serie.c" +} + +void +live_chart_serie_set_line (LiveChartSerie* self, + LiveChartPath* value) +{ + LiveChartSerieRenderer* _tmp0_; +#line 25 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 26 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 26 "../src/serie.vala" + live_chart_serie_renderer_set_line (_tmp0_, value); +#line 25 "../src/serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_properties[LIVE_CHART_SERIE_LINE_PROPERTY]); +#line 426 "serie.c" +} + +static gboolean +live_chart_serie_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartSerie* self; +#line 30 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 30 "../src/serie.vala" + result = self->priv->_visible; +#line 30 "../src/serie.vala" + return result; +#line 440 "serie.c" +} + +static void +live_chart_serie_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartSerie* self; + gboolean old_value; +#line 30 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 30 "../src/serie.vala" + old_value = live_chart_serie_real_get_visible (base); +#line 30 "../src/serie.vala" + if (old_value != value) { +#line 30 "../src/serie.vala" + self->priv->_visible = value; +#line 30 "../src/serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_properties[LIVE_CHART_SERIE_VISIBLE_PROPERTY]); +#line 459 "serie.c" + } +} + +static void +live_chart_serie_class_init (LiveChartSerieClass * klass, + gpointer klass_data) +{ +#line 4 "../src/serie.vala" + live_chart_serie_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/serie.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSerie_private_offset); +#line 4 "../src/serie.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_serie_get_property; +#line 4 "../src/serie.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_serie_set_property; +#line 4 "../src/serie.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_serie_finalize; +#line 4 "../src/serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_NAME_PROPERTY, live_chart_serie_properties[LIVE_CHART_SERIE_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY, live_chart_serie_properties[LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_LINE_PROPERTY, live_chart_serie_properties[LIVE_CHART_SERIE_LINE_PROPERTY] = g_param_spec_object ("line", "line", "line", LIVE_CHART_TYPE_PATH, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_VISIBLE_PROPERTY, live_chart_serie_properties[LIVE_CHART_SERIE_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/serie.vala" + live_chart_serie_signals[LIVE_CHART_SERIE_VALUE_ADDED_SIGNAL] = g_signal_new ("value-added", LIVE_CHART_TYPE_SERIE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); +#line 487 "serie.c" +} + +static void +live_chart_serie_live_chart_colorable_interface_init (LiveChartColorableIface * iface, + gpointer iface_data) +{ +#line 4 "../src/serie.vala" + live_chart_serie_live_chart_colorable_parent_iface = g_type_interface_peek_parent (iface); +#line 4 "../src/serie.vala" + iface->get_main_color = live_chart_serie_real_get_main_color; +#line 4 "../src/serie.vala" + iface->set_main_color = live_chart_serie_real_set_main_color; +#line 500 "serie.c" +} + +static void +live_chart_serie_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 4 "../src/serie.vala" + live_chart_serie_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 4 "../src/serie.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_serie_real_draw; +#line 4 "../src/serie.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_serie_real_get_bounding_box; +#line 4 "../src/serie.vala" + iface->get_visible = live_chart_serie_real_get_visible; +#line 4 "../src/serie.vala" + iface->set_visible = live_chart_serie_real_set_visible; +#line 517 "serie.c" +} + +static void +live_chart_serie_instance_init (LiveChartSerie * self, + gpointer klass) +{ +#line 4 "../src/serie.vala" + self->priv = live_chart_serie_get_instance_private (self); +#line 30 "../src/serie.vala" + self->priv->_visible = TRUE; +#line 528 "serie.c" +} + +static void +live_chart_serie_finalize (GObject * obj) +{ + LiveChartSerie * self; +#line 4 "../src/serie.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SERIE, LiveChartSerie); +#line 6 "../src/serie.vala" + _g_free0 (self->priv->_name); +#line 34 "../src/serie.vala" + _g_object_unref0 (self->priv->renderer); +#line 4 "../src/serie.vala" + G_OBJECT_CLASS (live_chart_serie_parent_class)->finalize (obj); +#line 543 "serie.c" +} + +static GType +live_chart_serie_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSerieClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_serie_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSerie), 0, (GInstanceInitFunc) live_chart_serie_instance_init, NULL }; + static const GInterfaceInfo live_chart_colorable_info = { (GInterfaceInitFunc) live_chart_serie_live_chart_colorable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_serie_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_serie_type_id; + live_chart_serie_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartSerie", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_serie_type_id, LIVE_CHART_TYPE_COLORABLE, &live_chart_colorable_info); + g_type_add_interface_static (live_chart_serie_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartSerie_private_offset = g_type_add_instance_private (live_chart_serie_type_id, sizeof (LiveChartSeriePrivate)); + return live_chart_serie_type_id; +} + +GType +live_chart_serie_get_type (void) +{ + static volatile gsize live_chart_serie_type_id__once = 0; + if (g_once_init_enter (&live_chart_serie_type_id__once)) { + GType live_chart_serie_type_id; + live_chart_serie_type_id = live_chart_serie_get_type_once (); + g_once_init_leave (&live_chart_serie_type_id__once, live_chart_serie_type_id); + } + return live_chart_serie_type_id__once; +} + +static void +_vala_live_chart_serie_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartSerie * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SERIE, LiveChartSerie); +#line 4 "../src/serie.vala" + switch (property_id) { +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_NAME_PROPERTY: +#line 4 "../src/serie.vala" + g_value_set_string (value, live_chart_serie_get_name (self)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY: +#line 590 "serie.c" + { + GdkRGBA boxed; +#line 4 "../src/serie.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) self, &boxed); +#line 4 "../src/serie.vala" + g_value_set_boxed (value, &boxed); +#line 597 "serie.c" + } +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_LINE_PROPERTY: +#line 4 "../src/serie.vala" + g_value_set_object (value, live_chart_serie_get_line (self)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_VISIBLE_PROPERTY: +#line 4 "../src/serie.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 4 "../src/serie.vala" + break; +#line 613 "serie.c" + default: +#line 4 "../src/serie.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/serie.vala" + break; +#line 619 "serie.c" + } +} + +static void +_vala_live_chart_serie_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartSerie * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SERIE, LiveChartSerie); +#line 4 "../src/serie.vala" + switch (property_id) { +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_NAME_PROPERTY: +#line 4 "../src/serie.vala" + live_chart_serie_set_name (self, g_value_get_string (value)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY: +#line 4 "../src/serie.vala" + live_chart_colorable_set_main_color ((LiveChartColorable*) self, g_value_get_boxed (value)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_LINE_PROPERTY: +#line 4 "../src/serie.vala" + live_chart_serie_set_line (self, g_value_get_object (value)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_VISIBLE_PROPERTY: +#line 4 "../src/serie.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 4 "../src/serie.vala" + break; +#line 657 "serie.c" + default: +#line 4 "../src/serie.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/serie.vala" + break; +#line 663 "serie.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/serie_renderer.c b/iPDC/lib/liblivechart_static.a.p/serie_renderer.c new file mode 100644 index 0000000..66180c8 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/serie_renderer.c @@ -0,0 +1,549 @@ +/* serie_renderer.c generated by valac 0.56.0, the Vala compiler + * generated from serie_renderer.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#define LIVE_CHART_SERIE_RENDERER_VIRTUAL_LEFT_PADDING -200 + +enum { + LIVE_CHART_SERIE_RENDERER_0_PROPERTY, + LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY, + LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY, + LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY, + LIVE_CHART_SERIE_RENDERER_NUM_PROPERTIES +}; +static GParamSpec* live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartSerieRendererPrivate { + gboolean _visible; + LiveChartPath* _line; +}; + +static gint LiveChartSerieRenderer_private_offset; +static gpointer live_chart_serie_renderer_parent_class = NULL; +static LiveChartDrawableIface * live_chart_serie_renderer_live_chart_drawable_parent_iface = NULL; + +static void live_chart_serie_renderer_real_draw (LiveChartSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_serie_renderer_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_serie_renderer_finalize (GObject * obj); +static GType live_chart_serie_renderer_get_type_once (void); +static void _vala_live_chart_serie_renderer_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_serie_renderer_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_serie_renderer_get_instance_private (LiveChartSerieRenderer* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSerieRenderer_private_offset); +} + +LiveChartSerieRenderer* +live_chart_serie_renderer_construct (GType object_type) +{ + LiveChartSerieRenderer * self = NULL; + GdkRGBA _tmp0_ = {0}; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; +#line 23 "../src/serie_renderer.vala" + self = (LiveChartSerieRenderer*) g_object_new (object_type, NULL); +#line 24 "../src/serie_renderer.vala" + _tmp0_.red = 1.0; +#line 24 "../src/serie_renderer.vala" + _tmp0_.green = 1.0; +#line 24 "../src/serie_renderer.vala" + _tmp0_.blue = 1.0; +#line 24 "../src/serie_renderer.vala" + _tmp0_.alpha = 1.0; +#line 24 "../src/serie_renderer.vala" + _tmp1_ = live_chart_path_new ((gdouble) 1, &_tmp0_, TRUE, NULL); +#line 24 "../src/serie_renderer.vala" + _tmp2_ = _tmp1_; +#line 24 "../src/serie_renderer.vala" + live_chart_serie_renderer_set_line (self, _tmp2_); +#line 24 "../src/serie_renderer.vala" + _g_object_unref0 (_tmp2_); +#line 23 "../src/serie_renderer.vala" + return self; +#line 88 "serie_renderer.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 36 "../src/serie_renderer.vala" + return self ? g_object_ref (self) : NULL; +#line 96 "serie_renderer.c" +} + +LiveChartValues* +live_chart_serie_renderer_get_values (LiveChartSerieRenderer* self) +{ + LiveChartValues* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* result; +#line 35 "../src/serie_renderer.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 36 "../src/serie_renderer.vala" + _tmp0_ = self->values; +#line 36 "../src/serie_renderer.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 36 "../src/serie_renderer.vala" + result = _tmp1_; +#line 36 "../src/serie_renderer.vala" + return result; +#line 115 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_real_draw (LiveChartSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 39 "../src/serie_renderer.vala" + g_critical ("Type `%s' does not implement abstract method `live_chart_serie_renderer_draw'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 39 "../src/serie_renderer.vala" + return; +#line 127 "serie_renderer.c" +} + +void +live_chart_serie_renderer_draw (LiveChartSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartSerieRendererClass* _klass_; +#line 39 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 39 "../src/serie_renderer.vala" + _klass_ = LIVE_CHART_SERIE_RENDERER_GET_CLASS (self); +#line 39 "../src/serie_renderer.vala" + if (_klass_->draw) { +#line 39 "../src/serie_renderer.vala" + _klass_->draw (self, ctx, config); +#line 144 "serie_renderer.c" + } +} + +static void +live_chart_serie_renderer_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartSerieRenderer * self; + LiveChartBoundingBox _tmp0_; +#line 41 "../src/serie_renderer.vala" + self = (LiveChartSerieRenderer*) base; +#line 42 "../src/serie_renderer.vala" + _tmp0_ = self->bounding_box; +#line 42 "../src/serie_renderer.vala" + *result = _tmp0_; +#line 42 "../src/serie_renderer.vala" + return; +#line 162 "serie_renderer.c" +} + +void +live_chart_serie_renderer_debug (LiveChartSerieRenderer* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 45 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/serie_renderer.vala" + g_return_if_fail (ctx != NULL); +#line 46 "../src/serie_renderer.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 46 "../src/serie_renderer.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 46 "../src/serie_renderer.vala" + debug = _tmp1_; +#line 47 "../src/serie_renderer.vala" + _tmp2_ = debug; +#line 47 "../src/serie_renderer.vala" + if (_tmp2_ != NULL) { +#line 187 "serie_renderer.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 48 "../src/serie_renderer.vala" + _tmp3_ = self->bounding_box; +#line 48 "../src/serie_renderer.vala" + _tmp4_ = self->bounding_box; +#line 48 "../src/serie_renderer.vala" + _tmp5_ = self->bounding_box; +#line 48 "../src/serie_renderer.vala" + _tmp6_ = self->bounding_box; +#line 48 "../src/serie_renderer.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 49 "../src/serie_renderer.vala" + cairo_stroke (ctx); +#line 204 "serie_renderer.c" + } +#line 45 "../src/serie_renderer.vala" + _g_free0 (debug); +#line 208 "serie_renderer.c" +} + +gboolean +live_chart_serie_renderer_is_out_of_area (LiveChartSerieRenderer* self, + LiveChartPoint* point) +{ + LiveChartPoint _tmp0_; + gboolean result; +#line 53 "../src/serie_renderer.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 53 "../src/serie_renderer.vala" + g_return_val_if_fail (point != NULL, FALSE); +#line 54 "../src/serie_renderer.vala" + _tmp0_ = *point; +#line 54 "../src/serie_renderer.vala" + result = _tmp0_.x < ((gdouble) LIVE_CHART_SERIE_RENDERER_VIRTUAL_LEFT_PADDING); +#line 54 "../src/serie_renderer.vala" + return result; +#line 227 "serie_renderer.c" +} + +static gboolean +live_chart_serie_renderer_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartSerieRenderer* self; +#line 9 "../src/serie_renderer.vala" + self = (LiveChartSerieRenderer*) base; +#line 9 "../src/serie_renderer.vala" + result = self->priv->_visible; +#line 9 "../src/serie_renderer.vala" + return result; +#line 241 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartSerieRenderer* self; + gboolean old_value; +#line 9 "../src/serie_renderer.vala" + self = (LiveChartSerieRenderer*) base; +#line 9 "../src/serie_renderer.vala" + old_value = live_chart_serie_renderer_real_get_visible (base); +#line 9 "../src/serie_renderer.vala" + if (old_value != value) { +#line 9 "../src/serie_renderer.vala" + self->priv->_visible = value; +#line 9 "../src/serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY]); +#line 260 "serie_renderer.c" + } +} + +void +live_chart_serie_renderer_get_main_color (LiveChartSerieRenderer* self, + GdkRGBA * result) +{ + LiveChartPath* _tmp0_; + GdkRGBA _tmp1_ = {0}; + GdkRGBA _tmp2_; +#line 13 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/serie_renderer.vala" + _tmp0_ = self->priv->_line; +#line 14 "../src/serie_renderer.vala" + live_chart_path_get_color (_tmp0_, &_tmp1_); +#line 14 "../src/serie_renderer.vala" + _tmp2_ = _tmp1_; +#line 14 "../src/serie_renderer.vala" + *result = _tmp2_; +#line 14 "../src/serie_renderer.vala" + return; +#line 283 "serie_renderer.c" +} + +void +live_chart_serie_renderer_set_main_color (LiveChartSerieRenderer* self, + GdkRGBA * value) +{ + LiveChartPath* _tmp0_; + GdkRGBA _tmp1_; +#line 17 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 18 "../src/serie_renderer.vala" + _tmp0_ = self->priv->_line; +#line 18 "../src/serie_renderer.vala" + _tmp1_ = *value; +#line 18 "../src/serie_renderer.vala" + live_chart_path_set_color (_tmp0_, &_tmp1_); +#line 17 "../src/serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY]); +#line 302 "serie_renderer.c" +} + +LiveChartPath* +live_chart_serie_renderer_get_line (LiveChartSerieRenderer* self) +{ + LiveChartPath* result; + LiveChartPath* _tmp0_; +#line 21 "../src/serie_renderer.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 21 "../src/serie_renderer.vala" + _tmp0_ = self->priv->_line; +#line 21 "../src/serie_renderer.vala" + result = _tmp0_; +#line 21 "../src/serie_renderer.vala" + return result; +#line 318 "serie_renderer.c" +} + +void +live_chart_serie_renderer_set_line (LiveChartSerieRenderer* self, + LiveChartPath* value) +{ + LiveChartPath* old_value; +#line 21 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 21 "../src/serie_renderer.vala" + old_value = live_chart_serie_renderer_get_line (self); +#line 21 "../src/serie_renderer.vala" + if (old_value != value) { +#line 332 "serie_renderer.c" + LiveChartPath* _tmp0_; +#line 21 "../src/serie_renderer.vala" + _tmp0_ = _g_object_ref0 (value); +#line 21 "../src/serie_renderer.vala" + _g_object_unref0 (self->priv->_line); +#line 21 "../src/serie_renderer.vala" + self->priv->_line = _tmp0_; +#line 21 "../src/serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY]); +#line 342 "serie_renderer.c" + } +} + +static void +live_chart_serie_renderer_class_init (LiveChartSerieRendererClass * klass, + gpointer klass_data) +{ +#line 5 "../src/serie_renderer.vala" + live_chart_serie_renderer_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/serie_renderer.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSerieRenderer_private_offset); +#line 5 "../src/serie_renderer.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_serie_renderer_real_draw; +#line 5 "../src/serie_renderer.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_serie_renderer_get_property; +#line 5 "../src/serie_renderer.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_serie_renderer_set_property; +#line 5 "../src/serie_renderer.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_serie_renderer_finalize; +#line 5 "../src/serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 5 "../src/serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_DEPRECATED)); +#line 5 "../src/serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY] = g_param_spec_object ("line", "line", "line", LIVE_CHART_TYPE_PATH, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 368 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 5 "../src/serie_renderer.vala" + live_chart_serie_renderer_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 5 "../src/serie_renderer.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_serie_renderer_draw; +#line 5 "../src/serie_renderer.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_serie_renderer_real_get_bounding_box; +#line 5 "../src/serie_renderer.vala" + iface->get_visible = live_chart_serie_renderer_real_get_visible; +#line 5 "../src/serie_renderer.vala" + iface->set_visible = live_chart_serie_renderer_real_set_visible; +#line 385 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_instance_init (LiveChartSerieRenderer * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; +#line 5 "../src/serie_renderer.vala" + self->priv = live_chart_serie_renderer_get_instance_private (self); +#line 9 "../src/serie_renderer.vala" + self->priv->_visible = TRUE; +#line 27 "../src/serie_renderer.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 27 "../src/serie_renderer.vala" + _tmp0_.x = (gdouble) 0; +#line 27 "../src/serie_renderer.vala" + _tmp0_.y = (gdouble) 0; +#line 27 "../src/serie_renderer.vala" + _tmp0_.width = (gdouble) 0; +#line 27 "../src/serie_renderer.vala" + _tmp0_.height = (gdouble) 0; +#line 27 "../src/serie_renderer.vala" + self->bounding_box = _tmp0_; +#line 409 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_finalize (GObject * obj) +{ + LiveChartSerieRenderer * self; +#line 5 "../src/serie_renderer.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRenderer); +#line 21 "../src/serie_renderer.vala" + _g_object_unref0 (self->priv->_line); +#line 34 "../src/serie_renderer.vala" + _g_object_unref0 (self->values); +#line 5 "../src/serie_renderer.vala" + G_OBJECT_CLASS (live_chart_serie_renderer_parent_class)->finalize (obj); +#line 424 "serie_renderer.c" +} + +static GType +live_chart_serie_renderer_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSerieRendererClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_serie_renderer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSerieRenderer), 0, (GInstanceInitFunc) live_chart_serie_renderer_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_serie_renderer_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_serie_renderer_type_id; + live_chart_serie_renderer_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartSerieRenderer", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (live_chart_serie_renderer_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartSerieRenderer_private_offset = g_type_add_instance_private (live_chart_serie_renderer_type_id, sizeof (LiveChartSerieRendererPrivate)); + return live_chart_serie_renderer_type_id; +} + +GType +live_chart_serie_renderer_get_type (void) +{ + static volatile gsize live_chart_serie_renderer_type_id__once = 0; + if (g_once_init_enter (&live_chart_serie_renderer_type_id__once)) { + GType live_chart_serie_renderer_type_id; + live_chart_serie_renderer_type_id = live_chart_serie_renderer_get_type_once (); + g_once_init_leave (&live_chart_serie_renderer_type_id__once, live_chart_serie_renderer_type_id); + } + return live_chart_serie_renderer_type_id__once; +} + +static void +_vala_live_chart_serie_renderer_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartSerieRenderer * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRenderer); +#line 5 "../src/serie_renderer.vala" + switch (property_id) { +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY: +#line 5 "../src/serie_renderer.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 5 "../src/serie_renderer.vala" + break; +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY: +#line 469 "serie_renderer.c" + { + GdkRGBA boxed; +#line 5 "../src/serie_renderer.vala" + live_chart_serie_renderer_get_main_color (self, &boxed); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#line 475 "serie_renderer.c" + g_value_set_boxed (value, &boxed); +G_GNUC_END_IGNORE_DEPRECATIONS + } +#line 5 "../src/serie_renderer.vala" + break; +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY: +#line 5 "../src/serie_renderer.vala" + g_value_set_object (value, live_chart_serie_renderer_get_line (self)); +#line 5 "../src/serie_renderer.vala" + break; +#line 487 "serie_renderer.c" + default: +#line 5 "../src/serie_renderer.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/serie_renderer.vala" + break; +#line 493 "serie_renderer.c" + } +} + +static void +_vala_live_chart_serie_renderer_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartSerieRenderer * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRenderer); +#line 5 "../src/serie_renderer.vala" + switch (property_id) { +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY: +#line 5 "../src/serie_renderer.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 5 "../src/serie_renderer.vala" + break; +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY: +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#line 516 "serie_renderer.c" + live_chart_serie_renderer_set_main_color (self, g_value_get_boxed (value)); +G_GNUC_END_IGNORE_DEPRECATIONS +#line 5 "../src/serie_renderer.vala" + break; +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY: +#line 5 "../src/serie_renderer.vala" + live_chart_serie_renderer_set_line (self, g_value_get_object (value)); +#line 5 "../src/serie_renderer.vala" + break; +#line 527 "serie_renderer.c" + default: +#line 5 "../src/serie_renderer.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/serie_renderer.vala" + break; +#line 533 "serie_renderer.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/series.c b/iPDC/lib/liblivechart_static.a.p/series.c new file mode 100644 index 0000000..cc35ff8 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/series.c @@ -0,0 +1,491 @@ +/* series.c generated by valac 0.56.0, the Vala compiler + * generated from series.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_SERIES_0_PROPERTY, + LIVE_CHART_SERIES_NUM_PROPERTIES +}; +static GParamSpec* live_chart_series_properties[LIVE_CHART_SERIES_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_timestamped_value_free0(var) ((var == NULL) ? NULL : (var = (live_chart_timestamped_value_free (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartSeriesPrivate { + GeeArrayList* series; + LiveChartChart* chart; +}; + +static gint LiveChartSeries_private_offset; +static gpointer live_chart_series_parent_class = NULL; + +static gboolean __lambda7_ (LiveChartSeries* self, + LiveChartTimestampedValue* value); +static gboolean ___lambda7__gee_forall_func (gpointer g, + gpointer self); +static void __lambda8_ (LiveChartSeries* self, + gdouble value); +static void ___lambda8__live_chart_serie_value_added (LiveChartSerie* _sender, + gdouble value, + gpointer self); +static void live_chart_series_finalize (GObject * obj); +static GType live_chart_series_get_type_once (void); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_series_get_instance_private (LiveChartSeries* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSeries_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 10 "../src/series.vala" + return self ? g_object_ref (self) : NULL; +#line 56 "series.c" +} + +LiveChartSeries* +live_chart_series_construct (GType object_type, + LiveChartChart* chart) +{ + LiveChartSeries * self = NULL; + LiveChartChart* _tmp0_; +#line 9 "../src/series.vala" + g_return_val_if_fail (chart != NULL, NULL); +#line 9 "../src/series.vala" + self = (LiveChartSeries*) g_object_new (object_type, NULL); +#line 10 "../src/series.vala" + _tmp0_ = _g_object_ref0 (chart); +#line 10 "../src/series.vala" + _g_object_unref0 (self->priv->chart); +#line 10 "../src/series.vala" + self->priv->chart = _tmp0_; +#line 9 "../src/series.vala" + return self; +#line 77 "series.c" +} + +LiveChartSeries* +live_chart_series_new (LiveChartChart* chart) +{ +#line 9 "../src/series.vala" + return live_chart_series_construct (LIVE_CHART_TYPE_SERIES, chart); +#line 85 "series.c" +} + +static gboolean +__lambda7_ (LiveChartSeries* self, + LiveChartTimestampedValue* value) +{ + LiveChartChart* _tmp0_; + LiveChartConfig* _tmp1_; + LiveChartYAxis* _tmp2_; + gboolean result; +#line 16 "../src/series.vala" + _tmp0_ = self->priv->chart; +#line 16 "../src/series.vala" + _tmp1_ = _tmp0_->config; +#line 16 "../src/series.vala" + _tmp2_ = _tmp1_->y_axis; +#line 16 "../src/series.vala" + live_chart_yaxis_update_bounds (_tmp2_, (*value).value); +#line 16 "../src/series.vala" + result = TRUE; +#line 16 "../src/series.vala" + _live_chart_timestamped_value_free0 (value); +#line 16 "../src/series.vala" + return result; +#line 110 "series.c" +} + +static gboolean +___lambda7__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = __lambda7_ ((LiveChartSeries*) self, (LiveChartTimestampedValue*) g); +#line 16 "../src/series.vala" + return result; +#line 121 "series.c" +} + +static void +__lambda8_ (LiveChartSeries* self, + gdouble value) +{ + LiveChartChart* _tmp0_; + LiveChartConfig* _tmp1_; + LiveChartYAxis* _tmp2_; +#line 20 "../src/series.vala" + _tmp0_ = self->priv->chart; +#line 20 "../src/series.vala" + _tmp1_ = _tmp0_->config; +#line 20 "../src/series.vala" + _tmp2_ = _tmp1_->y_axis; +#line 20 "../src/series.vala" + live_chart_yaxis_update_bounds (_tmp2_, value); +#line 139 "series.c" +} + +static void +___lambda8__live_chart_serie_value_added (LiveChartSerie* _sender, + gdouble value, + gpointer self) +{ +#line 19 "../src/series.vala" + __lambda8_ ((LiveChartSeries*) self, value); +#line 149 "series.c" +} + +LiveChartSerie* +live_chart_series_register (LiveChartSeries* self, + LiveChartSerie* serie) +{ + GeeArrayList* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* _tmp2_; + LiveChartChart* _tmp3_; + LiveChartLegend* _tmp4_; + LiveChartLegend* _tmp5_; + LiveChartSerie* _tmp9_; + LiveChartSerie* result; +#line 13 "../src/series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 13 "../src/series.vala" + g_return_val_if_fail (serie != NULL, NULL); +#line 14 "../src/series.vala" + _tmp0_ = self->priv->series; +#line 14 "../src/series.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, serie); +#line 16 "../src/series.vala" + _tmp1_ = live_chart_serie_get_values (serie); +#line 16 "../src/series.vala" + _tmp2_ = _tmp1_; +#line 16 "../src/series.vala" + gee_abstract_collection_foreach ((GeeAbstractCollection*) _tmp2_, ___lambda7__gee_forall_func, self); +#line 16 "../src/series.vala" + _g_object_unref0 (_tmp2_); +#line 18 "../src/series.vala" + _tmp3_ = self->priv->chart; +#line 18 "../src/series.vala" + _tmp4_ = live_chart_chart_get_legend (_tmp3_); +#line 18 "../src/series.vala" + _tmp5_ = _tmp4_; +#line 18 "../src/series.vala" + if (_tmp5_ != NULL) { +#line 188 "series.c" + LiveChartChart* _tmp6_; + LiveChartLegend* _tmp7_; + LiveChartLegend* _tmp8_; +#line 18 "../src/series.vala" + _tmp6_ = self->priv->chart; +#line 18 "../src/series.vala" + _tmp7_ = live_chart_chart_get_legend (_tmp6_); +#line 18 "../src/series.vala" + _tmp8_ = _tmp7_; +#line 18 "../src/series.vala" + live_chart_legend_add_legend (_tmp8_, serie); +#line 200 "series.c" + } +#line 19 "../src/series.vala" + g_signal_connect_object (serie, "value-added", (GCallback) ___lambda8__live_chart_serie_value_added, self, 0); +#line 22 "../src/series.vala" + _tmp9_ = _g_object_ref0 (serie); +#line 22 "../src/series.vala" + result = _tmp9_; +#line 22 "../src/series.vala" + return result; +#line 210 "series.c" +} + +LiveChartSerie* +live_chart_series_get (LiveChartSeries* self, + gint index, + GError** error) +{ + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; + GeeArrayList* _tmp7_; + gpointer _tmp8_; + GError* _inner_error0_ = NULL; + LiveChartSerie* result; +#line 25 "../src/series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 26 "../src/series.vala" + _tmp0_ = self->priv->series; +#line 26 "../src/series.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 26 "../src/series.vala" + _tmp2_ = _tmp1_; +#line 26 "../src/series.vala" + if (index > (_tmp2_ - 1)) { +#line 235 "series.c" + gchar* _tmp3_; + gchar* _tmp4_; + GError* _tmp5_; + GError* _tmp6_; +#line 27 "../src/series.vala" + _tmp3_ = g_strdup_printf ("Serie at index %d not found", index); +#line 27 "../src/series.vala" + _tmp4_ = _tmp3_; +#line 27 "../src/series.vala" + _tmp5_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, _tmp4_); +#line 27 "../src/series.vala" + _tmp6_ = _tmp5_; +#line 27 "../src/series.vala" + _g_free0 (_tmp4_); +#line 27 "../src/series.vala" + _inner_error0_ = _tmp6_; +#line 27 "../src/series.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 27 "../src/series.vala" + g_propagate_error (error, _inner_error0_); +#line 27 "../src/series.vala" + return NULL; +#line 258 "series.c" + } else { +#line 27 "../src/series.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 27 "../src/series.vala" + g_clear_error (&_inner_error0_); +#line 27 "../src/series.vala" + return NULL; +#line 266 "series.c" + } + } +#line 29 "../src/series.vala" + _tmp7_ = self->priv->series; +#line 29 "../src/series.vala" + _tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, index); +#line 29 "../src/series.vala" + result = (LiveChartSerie*) _tmp8_; +#line 29 "../src/series.vala" + return result; +#line 277 "series.c" +} + +LiveChartSerie* +live_chart_series_get_by_name (LiveChartSeries* self, + const gchar* name, + GError** error) +{ + gchar* _tmp11_; + gchar* _tmp12_; + GError* _tmp13_; + GError* _tmp14_; + GError* _inner_error0_ = NULL; + LiveChartSerie* result; +#line 32 "../src/series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 32 "../src/series.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 295 "series.c" + { + GeeArrayList* _serie_list = NULL; + GeeArrayList* _tmp0_; + gint _serie_size = 0; + GeeArrayList* _tmp1_; + gint _tmp2_; + gint _tmp3_; + gint _serie_index = 0; +#line 33 "../src/series.vala" + _tmp0_ = self->priv->series; +#line 33 "../src/series.vala" + _serie_list = _tmp0_; +#line 33 "../src/series.vala" + _tmp1_ = _serie_list; +#line 33 "../src/series.vala" + _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_); +#line 33 "../src/series.vala" + _tmp3_ = _tmp2_; +#line 33 "../src/series.vala" + _serie_size = _tmp3_; +#line 33 "../src/series.vala" + _serie_index = -1; +#line 33 "../src/series.vala" + while (TRUE) { +#line 320 "series.c" + gint _tmp4_; + gint _tmp5_; + LiveChartSerie* serie = NULL; + GeeArrayList* _tmp6_; + gpointer _tmp7_; + LiveChartSerie* _tmp8_; + const gchar* _tmp9_; + const gchar* _tmp10_; +#line 33 "../src/series.vala" + _serie_index = _serie_index + 1; +#line 33 "../src/series.vala" + _tmp4_ = _serie_index; +#line 33 "../src/series.vala" + _tmp5_ = _serie_size; +#line 33 "../src/series.vala" + if (!(_tmp4_ < _tmp5_)) { +#line 33 "../src/series.vala" + break; +#line 339 "series.c" + } +#line 33 "../src/series.vala" + _tmp6_ = _serie_list; +#line 33 "../src/series.vala" + _tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, _serie_index); +#line 33 "../src/series.vala" + serie = (LiveChartSerie*) _tmp7_; +#line 34 "../src/series.vala" + _tmp8_ = serie; +#line 34 "../src/series.vala" + _tmp9_ = live_chart_serie_get_name (_tmp8_); +#line 34 "../src/series.vala" + _tmp10_ = _tmp9_; +#line 34 "../src/series.vala" + if (g_strcmp0 (_tmp10_, name) == 0) { +#line 34 "../src/series.vala" + result = serie; +#line 34 "../src/series.vala" + return result; +#line 359 "series.c" + } +#line 33 "../src/series.vala" + _g_object_unref0 (serie); +#line 363 "series.c" + } + } +#line 36 "../src/series.vala" + _tmp11_ = g_strdup_printf ("Serie with name %s not found", name); +#line 36 "../src/series.vala" + _tmp12_ = _tmp11_; +#line 36 "../src/series.vala" + _tmp13_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, _tmp12_); +#line 36 "../src/series.vala" + _tmp14_ = _tmp13_; +#line 36 "../src/series.vala" + _g_free0 (_tmp12_); +#line 36 "../src/series.vala" + _inner_error0_ = _tmp14_; +#line 36 "../src/series.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 36 "../src/series.vala" + g_propagate_error (error, _inner_error0_); +#line 36 "../src/series.vala" + return NULL; +#line 384 "series.c" + } else { +#line 36 "../src/series.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 36 "../src/series.vala" + g_clear_error (&_inner_error0_); +#line 36 "../src/series.vala" + return NULL; +#line 392 "series.c" + } +} + +GeeIterator* +live_chart_series_iterator (LiveChartSeries* self) +{ + GeeArrayList* _tmp0_; + GeeListIterator* _tmp1_; + GeeIterator* result; +#line 39 "../src/series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 40 "../src/series.vala" + _tmp0_ = self->priv->series; +#line 40 "../src/series.vala" + _tmp1_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp0_); +#line 40 "../src/series.vala" + result = (GeeIterator*) _tmp1_; +#line 40 "../src/series.vala" + return result; +#line 412 "series.c" +} + +static void +live_chart_series_class_init (LiveChartSeriesClass * klass, + gpointer klass_data) +{ +#line 4 "../src/series.vala" + live_chart_series_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/series.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSeries_private_offset); +#line 4 "../src/series.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_series_finalize; +#line 425 "series.c" +} + +static void +live_chart_series_instance_init (LiveChartSeries * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 4 "../src/series.vala" + self->priv = live_chart_series_get_instance_private (self); +#line 6 "../src/series.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_TYPE_SERIE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL); +#line 6 "../src/series.vala" + self->priv->series = _tmp0_; +#line 439 "series.c" +} + +static void +live_chart_series_finalize (GObject * obj) +{ + LiveChartSeries * self; +#line 4 "../src/series.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SERIES, LiveChartSeries); +#line 6 "../src/series.vala" + _g_object_unref0 (self->priv->series); +#line 7 "../src/series.vala" + _g_object_unref0 (self->priv->chart); +#line 4 "../src/series.vala" + G_OBJECT_CLASS (live_chart_series_parent_class)->finalize (obj); +#line 454 "series.c" +} + +static GType +live_chart_series_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSeriesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_series_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSeries), 0, (GInstanceInitFunc) live_chart_series_instance_init, NULL }; + GType live_chart_series_type_id; + live_chart_series_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartSeries", &g_define_type_info, 0); + LiveChartSeries_private_offset = g_type_add_instance_private (live_chart_series_type_id, sizeof (LiveChartSeriesPrivate)); + return live_chart_series_type_id; +} + +GType +live_chart_series_get_type (void) +{ + static volatile gsize live_chart_series_type_id__once = 0; + if (g_once_init_enter (&live_chart_series_type_id__once)) { + GType live_chart_series_type_id; + live_chart_series_type_id = live_chart_series_get_type_once (); + g_once_init_leave (&live_chart_series_type_id__once, live_chart_series_type_id); + } + return live_chart_series_type_id__once; +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/smooth_line.c b/iPDC/lib/liblivechart_static.a.p/smooth_line.c new file mode 100644 index 0000000..3ef4bf8 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/smooth_line.c @@ -0,0 +1,887 @@ +/* smooth_line.c generated by valac 0.56.0, the Vala compiler + * generated from smooth_line.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_SMOOTH_LINE_0_PROPERTY, + LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY, + LIVE_CHART_SMOOTH_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_smooth_line_properties[LIVE_CHART_SMOOTH_LINE_NUM_PROPERTIES]; +#define _live_chart_region_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_region_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _cairo_path_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_path_destroy (var), NULL))) +#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL))) +typedef struct _Block6Data Block6Data; +#define _live_chart_bezier_intersector_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_bezier_intersector_unref (var), NULL))) + +struct _LiveChartSmoothLinePrivate { + LiveChartRegion* _region; +}; + +struct _Block6Data { + int _ref_count_; + LiveChartSmoothLine* self; + LiveChartBoundaries boundaries; + cairo_t* ctx; +}; + +static gint LiveChartSmoothLine_private_offset; +static gpointer live_chart_smooth_line_parent_class = NULL; + +static void live_chart_smooth_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_smooth_line_update_bounding_box (LiveChartSmoothLine* self, + LiveChartPoints* points, + LiveChartConfig* config); +static void live_chart_smooth_line_generate_intersections (LiveChartSmoothLine* self, + LiveChartPoint* previous, + LiveChartPoint* target, + LiveChartConfig* config, + LiveChartBezierCurve* curve); +static Block6Data* block6_data_ref (Block6Data* _data6_); +static void block6_data_unref (void * _userdata_); +static gboolean __lambda13_ (Block6Data* _data6_, + LiveChartIntersection* intersection); +static gboolean ___lambda13__gee_forall_func (gpointer g, + gpointer self); +static void live_chart_smooth_line_finalize (GObject * obj); +static GType live_chart_smooth_line_get_type_once (void); +static void _vala_live_chart_smooth_line_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_smooth_line_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_smooth_line_get_instance_private (LiveChartSmoothLine* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSmoothLine_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 10 "../src/smooth_line.vala" + return self ? g_object_ref (self) : NULL; +#line 82 "smooth_line.c" +} + +LiveChartSmoothLine* +live_chart_smooth_line_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartSmoothLine * self = NULL; + LiveChartValues* _tmp0_; +#line 8 "../src/smooth_line.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 9 "../src/smooth_line.vala" + self = (LiveChartSmoothLine*) live_chart_serie_renderer_construct (object_type); +#line 10 "../src/smooth_line.vala" + _tmp0_ = _g_object_ref0 (values); +#line 10 "../src/smooth_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 10 "../src/smooth_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 8 "../src/smooth_line.vala" + return self; +#line 103 "smooth_line.c" +} + +LiveChartSmoothLine* +live_chart_smooth_line_new (LiveChartValues* values) +{ +#line 8 "../src/smooth_line.vala" + return live_chart_smooth_line_construct (LIVE_CHART_TYPE_SMOOTH_LINE, values); +#line 111 "smooth_line.c" +} + +static void +live_chart_smooth_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartSmoothLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 13 "../src/smooth_line.vala" + self = (LiveChartSmoothLine*) base; +#line 13 "../src/smooth_line.vala" + g_return_if_fail (ctx != NULL); +#line 13 "../src/smooth_line.vala" + g_return_if_fail (config != NULL); +#line 14 "../src/smooth_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 14 "../src/smooth_line.vala" + _tmp1_ = _tmp0_; +#line 14 "../src/smooth_line.vala" + if (_tmp1_) { +#line 134 "smooth_line.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 15 "../src/smooth_line.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 15 "../src/smooth_line.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 15 "../src/smooth_line.vala" + points = _tmp3_; +#line 16 "../src/smooth_line.vala" + _tmp4_ = points; +#line 16 "../src/smooth_line.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 16 "../src/smooth_line.vala" + _tmp6_ = _tmp5_; +#line 16 "../src/smooth_line.vala" + if (_tmp6_ > 0) { +#line 155 "smooth_line.c" + LiveChartRegion* _tmp7_; + LiveChartPoints* _tmp8_; + cairo_path_t* _tmp9_; + cairo_path_t* _tmp10_; + LiveChartRegion* _tmp11_; +#line 18 "../src/smooth_line.vala" + _tmp7_ = self->priv->_region; +#line 18 "../src/smooth_line.vala" + if (_tmp7_ != NULL) { +#line 19 "../src/smooth_line.vala" + cairo_push_group (ctx); +#line 167 "smooth_line.c" + } +#line 22 "../src/smooth_line.vala" + _tmp8_ = points; +#line 22 "../src/smooth_line.vala" + _tmp9_ = live_chart_smooth_line_draw_smooth_line (self, _tmp8_, ctx, config); +#line 22 "../src/smooth_line.vala" + _tmp10_ = _tmp9_; +#line 22 "../src/smooth_line.vala" + _cairo_path_destroy0 (_tmp10_); +#line 23 "../src/smooth_line.vala" + cairo_stroke (ctx); +#line 25 "../src/smooth_line.vala" + _tmp11_ = self->priv->_region; +#line 25 "../src/smooth_line.vala" + if (_tmp11_ != NULL) { +#line 26 "../src/smooth_line.vala" + cairo_set_operator (ctx, CAIRO_OPERATOR_ATOP); +#line 27 "../src/smooth_line.vala" + live_chart_smooth_line_draw_regions_on_line (self, ctx, config); +#line 28 "../src/smooth_line.vala" + cairo_fill (ctx); +#line 29 "../src/smooth_line.vala" + cairo_pop_group_to_source (ctx); +#line 30 "../src/smooth_line.vala" + cairo_paint (ctx); +#line 193 "smooth_line.c" + } + } +#line 14 "../src/smooth_line.vala" + _g_object_unref0 (points); +#line 198 "smooth_line.c" + } +} + +cairo_path_t* +live_chart_smooth_line_draw_smooth_line (LiveChartSmoothLine* self, + LiveChartPoints* points, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartIntersections* _tmp0_; + LiveChartPoint first_point = {0}; + LiveChartPoint _tmp1_ = {0}; + LiveChartPoint _tmp2_; + LiveChartPoint _tmp3_; + LiveChartPath* _tmp4_; + LiveChartPath* _tmp5_; + cairo_path_t* _tmp32_; + cairo_path_t* result; +#line 36 "../src/smooth_line.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 36 "../src/smooth_line.vala" + g_return_val_if_fail (points != NULL, NULL); +#line 36 "../src/smooth_line.vala" + g_return_val_if_fail (ctx != NULL, NULL); +#line 36 "../src/smooth_line.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 37 "../src/smooth_line.vala" + _tmp0_ = live_chart_intersections_new (); +#line 37 "../src/smooth_line.vala" + _g_object_unref0 (self->intersections); +#line 37 "../src/smooth_line.vala" + self->intersections = _tmp0_; +#line 38 "../src/smooth_line.vala" + live_chart_points_first (points, &_tmp1_); +#line 38 "../src/smooth_line.vala" + first_point = _tmp1_; +#line 40 "../src/smooth_line.vala" + live_chart_smooth_line_update_bounding_box (self, points, config); +#line 41 "../src/smooth_line.vala" + live_chart_serie_renderer_debug ((LiveChartSerieRenderer*) self, ctx); +#line 43 "../src/smooth_line.vala" + _tmp2_ = first_point; +#line 43 "../src/smooth_line.vala" + _tmp3_ = first_point; +#line 43 "../src/smooth_line.vala" + cairo_move_to (ctx, _tmp2_.x, _tmp3_.y); +#line 44 "../src/smooth_line.vala" + _tmp4_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 44 "../src/smooth_line.vala" + _tmp5_ = _tmp4_; +#line 44 "../src/smooth_line.vala" + live_chart_path_configure (_tmp5_, ctx); +#line 251 "smooth_line.c" + { + gint pos = 0; +#line 46 "../src/smooth_line.vala" + pos = 0; +#line 256 "smooth_line.c" + { + gboolean _tmp6_ = FALSE; +#line 46 "../src/smooth_line.vala" + _tmp6_ = TRUE; +#line 46 "../src/smooth_line.vala" + while (TRUE) { +#line 263 "smooth_line.c" + gint _tmp8_; + gint _tmp9_; + LiveChartPoint previous_point = {0}; + LiveChartPoint _tmp10_ = {0}; + LiveChartPoint target_point = {0}; + LiveChartPoint _tmp11_ = {0}; + LiveChartPoint _tmp12_; + LiveChartBezierCurve curve = {0}; + LiveChartPoint _tmp13_; + LiveChartPoint _tmp14_; + LiveChartBezierCurve _tmp15_ = {0}; + LiveChartBezierCurve _tmp16_; + LiveChartCoord _tmp17_; + LiveChartBezierCurve _tmp18_; + LiveChartCoord _tmp19_; + LiveChartBezierCurve _tmp20_; + LiveChartCoord _tmp21_; + LiveChartBezierCurve _tmp22_; + LiveChartCoord _tmp23_; + LiveChartBezierCurve _tmp24_; + LiveChartCoord _tmp25_; + LiveChartBezierCurve _tmp26_; + LiveChartCoord _tmp27_; + LiveChartRegion* _tmp28_; +#line 46 "../src/smooth_line.vala" + if (!_tmp6_) { +#line 290 "smooth_line.c" + gint _tmp7_; +#line 46 "../src/smooth_line.vala" + _tmp7_ = pos; +#line 46 "../src/smooth_line.vala" + pos = _tmp7_ + 1; +#line 296 "smooth_line.c" + } +#line 46 "../src/smooth_line.vala" + _tmp6_ = FALSE; +#line 46 "../src/smooth_line.vala" + _tmp8_ = live_chart_points_get_size (points); +#line 46 "../src/smooth_line.vala" + _tmp9_ = _tmp8_; +#line 46 "../src/smooth_line.vala" + if (!(pos <= (_tmp9_ - 1))) { +#line 46 "../src/smooth_line.vala" + break; +#line 308 "smooth_line.c" + } +#line 48 "../src/smooth_line.vala" + live_chart_points_get (points, pos, &_tmp10_); +#line 48 "../src/smooth_line.vala" + previous_point = _tmp10_; +#line 49 "../src/smooth_line.vala" + live_chart_points_after (points, pos, &_tmp11_); +#line 49 "../src/smooth_line.vala" + target_point = _tmp11_; +#line 51 "../src/smooth_line.vala" + _tmp12_ = previous_point; +#line 51 "../src/smooth_line.vala" + if (live_chart_serie_renderer_is_out_of_area ((LiveChartSerieRenderer*) self, &_tmp12_)) { +#line 52 "../src/smooth_line.vala" + continue; +#line 324 "smooth_line.c" + } +#line 55 "../src/smooth_line.vala" + _tmp13_ = previous_point; +#line 55 "../src/smooth_line.vala" + _tmp14_ = target_point; +#line 55 "../src/smooth_line.vala" + live_chart_build_bezier_curve_from_points (&_tmp13_, &_tmp14_, &_tmp15_); +#line 55 "../src/smooth_line.vala" + curve = _tmp15_; +#line 57 "../src/smooth_line.vala" + _tmp16_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp17_ = _tmp16_.c1; +#line 57 "../src/smooth_line.vala" + _tmp18_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp19_ = _tmp18_.c1; +#line 57 "../src/smooth_line.vala" + _tmp20_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp21_ = _tmp20_.c2; +#line 57 "../src/smooth_line.vala" + _tmp22_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp23_ = _tmp22_.c2; +#line 57 "../src/smooth_line.vala" + _tmp24_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp25_ = _tmp24_.c3; +#line 57 "../src/smooth_line.vala" + _tmp26_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp27_ = _tmp26_.c3; +#line 57 "../src/smooth_line.vala" + cairo_curve_to (ctx, _tmp17_.x, _tmp19_.y, _tmp21_.x, _tmp23_.y, _tmp25_.x, _tmp27_.y); +#line 62 "../src/smooth_line.vala" + _tmp28_ = self->priv->_region; +#line 62 "../src/smooth_line.vala" + if (_tmp28_ != NULL) { +#line 364 "smooth_line.c" + LiveChartPoint _tmp29_; + LiveChartPoint _tmp30_; + LiveChartBezierCurve _tmp31_; +#line 63 "../src/smooth_line.vala" + _tmp29_ = previous_point; +#line 63 "../src/smooth_line.vala" + _tmp30_ = target_point; +#line 63 "../src/smooth_line.vala" + _tmp31_ = curve; +#line 63 "../src/smooth_line.vala" + live_chart_smooth_line_generate_intersections (self, &_tmp29_, &_tmp30_, config, &_tmp31_); +#line 376 "smooth_line.c" + } + } + } + } +#line 67 "../src/smooth_line.vala" + _tmp32_ = cairo_copy_path (ctx); +#line 67 "../src/smooth_line.vala" + result = _tmp32_; +#line 67 "../src/smooth_line.vala" + return result; +#line 387 "smooth_line.c" +} + +static gpointer +_cairo_reference0 (gpointer self) +{ +#line 70 "../src/smooth_line.vala" + return self ? cairo_reference (self) : NULL; +#line 395 "smooth_line.c" +} + +static Block6Data* +block6_data_ref (Block6Data* _data6_) +{ +#line 70 "../src/smooth_line.vala" + g_atomic_int_inc (&_data6_->_ref_count_); +#line 70 "../src/smooth_line.vala" + return _data6_; +#line 405 "smooth_line.c" +} + +static void +block6_data_unref (void * _userdata_) +{ + Block6Data* _data6_; + _data6_ = (Block6Data*) _userdata_; +#line 70 "../src/smooth_line.vala" + if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) { +#line 415 "smooth_line.c" + LiveChartSmoothLine* self; +#line 70 "../src/smooth_line.vala" + self = _data6_->self; +#line 70 "../src/smooth_line.vala" + _cairo_destroy0 (_data6_->ctx); +#line 70 "../src/smooth_line.vala" + _g_object_unref0 (self); +#line 70 "../src/smooth_line.vala" + g_slice_free (Block6Data, _data6_); +#line 425 "smooth_line.c" + } +} + +static gboolean +__lambda13_ (Block6Data* _data6_, + LiveChartIntersection* intersection) +{ + LiveChartSmoothLine* self; + gboolean result; +#line 72 "../src/smooth_line.vala" + self = _data6_->self; +#line 73 "../src/smooth_line.vala" + if (intersection != NULL) { +#line 439 "smooth_line.c" + gdouble _tmp0_; + gdouble _tmp1_; + LiveChartBoundaries _tmp2_; + LiveChartBoundary _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + gdouble _tmp6_; + gdouble _tmp7_; + LiveChartBoundaries _tmp8_; + LiveChartRegion* _tmp9_; + LiveChartRegion* _tmp10_; + GdkRGBA _tmp11_ = {0}; + GdkRGBA _tmp12_; + LiveChartRegion* _tmp13_; + LiveChartRegion* _tmp14_; + GdkRGBA _tmp15_ = {0}; + GdkRGBA _tmp16_; + LiveChartRegion* _tmp17_; + LiveChartRegion* _tmp18_; + GdkRGBA _tmp19_ = {0}; + GdkRGBA _tmp20_; + LiveChartRegion* _tmp21_; + LiveChartRegion* _tmp22_; + GdkRGBA _tmp23_ = {0}; + GdkRGBA _tmp24_; +#line 74 "../src/smooth_line.vala" + _tmp0_ = live_chart_intersection_get_start_x (intersection); +#line 74 "../src/smooth_line.vala" + _tmp1_ = _tmp0_; +#line 74 "../src/smooth_line.vala" + _tmp2_ = _data6_->boundaries; +#line 74 "../src/smooth_line.vala" + _tmp3_ = _tmp2_.y; +#line 74 "../src/smooth_line.vala" + _tmp4_ = live_chart_intersection_get_end_x (intersection); +#line 74 "../src/smooth_line.vala" + _tmp5_ = _tmp4_; +#line 74 "../src/smooth_line.vala" + _tmp6_ = live_chart_intersection_get_start_x (intersection); +#line 74 "../src/smooth_line.vala" + _tmp7_ = _tmp6_; +#line 74 "../src/smooth_line.vala" + _tmp8_ = _data6_->boundaries; +#line 74 "../src/smooth_line.vala" + cairo_rectangle (_data6_->ctx, _tmp1_, (gdouble) _tmp3_.min, _tmp5_ - _tmp7_, (gdouble) _tmp8_.height); +#line 75 "../src/smooth_line.vala" + _tmp9_ = live_chart_intersection_get_region (intersection); +#line 75 "../src/smooth_line.vala" + _tmp10_ = _tmp9_; +#line 75 "../src/smooth_line.vala" + live_chart_region_get_line_color (_tmp10_, &_tmp11_); +#line 75 "../src/smooth_line.vala" + _tmp12_ = _tmp11_; +#line 75 "../src/smooth_line.vala" + _tmp13_ = live_chart_intersection_get_region (intersection); +#line 75 "../src/smooth_line.vala" + _tmp14_ = _tmp13_; +#line 75 "../src/smooth_line.vala" + live_chart_region_get_line_color (_tmp14_, &_tmp15_); +#line 75 "../src/smooth_line.vala" + _tmp16_ = _tmp15_; +#line 75 "../src/smooth_line.vala" + _tmp17_ = live_chart_intersection_get_region (intersection); +#line 75 "../src/smooth_line.vala" + _tmp18_ = _tmp17_; +#line 75 "../src/smooth_line.vala" + live_chart_region_get_line_color (_tmp18_, &_tmp19_); +#line 75 "../src/smooth_line.vala" + _tmp20_ = _tmp19_; +#line 75 "../src/smooth_line.vala" + _tmp21_ = live_chart_intersection_get_region (intersection); +#line 75 "../src/smooth_line.vala" + _tmp22_ = _tmp21_; +#line 75 "../src/smooth_line.vala" + live_chart_region_get_line_color (_tmp22_, &_tmp23_); +#line 75 "../src/smooth_line.vala" + _tmp24_ = _tmp23_; +#line 75 "../src/smooth_line.vala" + cairo_set_source_rgba (_data6_->ctx, _tmp12_.red, _tmp16_.green, _tmp20_.blue, _tmp24_.alpha); +#line 519 "smooth_line.c" + } +#line 77 "../src/smooth_line.vala" + result = TRUE; +#line 77 "../src/smooth_line.vala" + _g_object_unref0 (intersection); +#line 77 "../src/smooth_line.vala" + return result; +#line 527 "smooth_line.c" +} + +static gboolean +___lambda13__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = __lambda13_ (self, (LiveChartIntersection*) g); +#line 72 "../src/smooth_line.vala" + return result; +#line 538 "smooth_line.c" +} + +void +live_chart_smooth_line_draw_regions_on_line (LiveChartSmoothLine* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + Block6Data* _data6_; + cairo_t* _tmp0_; + LiveChartBoundaries _tmp1_ = {0}; + LiveChartIntersections* _tmp2_; +#line 70 "../src/smooth_line.vala" + g_return_if_fail (self != NULL); +#line 70 "../src/smooth_line.vala" + g_return_if_fail (ctx != NULL); +#line 70 "../src/smooth_line.vala" + g_return_if_fail (config != NULL); +#line 70 "../src/smooth_line.vala" + _data6_ = g_slice_new0 (Block6Data); +#line 70 "../src/smooth_line.vala" + _data6_->_ref_count_ = 1; +#line 70 "../src/smooth_line.vala" + _data6_->self = g_object_ref (self); +#line 70 "../src/smooth_line.vala" + _tmp0_ = _cairo_reference0 (ctx); +#line 70 "../src/smooth_line.vala" + _cairo_destroy0 (_data6_->ctx); +#line 70 "../src/smooth_line.vala" + _data6_->ctx = _tmp0_; +#line 71 "../src/smooth_line.vala" + live_chart_config_boundaries (config, &_tmp1_); +#line 71 "../src/smooth_line.vala" + _data6_->boundaries = _tmp1_; +#line 72 "../src/smooth_line.vala" + _tmp2_ = self->intersections; +#line 72 "../src/smooth_line.vala" + live_chart_intersections_foreach (_tmp2_, ___lambda13__gee_forall_func, _data6_); +#line 70 "../src/smooth_line.vala" + block6_data_unref (_data6_); +#line 70 "../src/smooth_line.vala" + _data6_ = NULL; +#line 580 "smooth_line.c" +} + +static void +live_chart_smooth_line_generate_intersections (LiveChartSmoothLine* self, + LiveChartPoint* previous, + LiveChartPoint* target, + LiveChartConfig* config, + LiveChartBezierCurve* curve) +{ + LiveChartRegion* _tmp0_; + LiveChartBezierIntersector* _tmp1_; + LiveChartBezierIntersector* _tmp2_; + LiveChartIntersections* _tmp3_; + LiveChartPoint _tmp4_; + LiveChartPoint _tmp5_; + LiveChartBezierCurve _tmp6_; +#line 81 "../src/smooth_line.vala" + g_return_if_fail (self != NULL); +#line 81 "../src/smooth_line.vala" + g_return_if_fail (previous != NULL); +#line 81 "../src/smooth_line.vala" + g_return_if_fail (target != NULL); +#line 81 "../src/smooth_line.vala" + g_return_if_fail (config != NULL); +#line 81 "../src/smooth_line.vala" + g_return_if_fail (curve != NULL); +#line 82 "../src/smooth_line.vala" + _tmp0_ = self->priv->_region; +#line 82 "../src/smooth_line.vala" + _tmp1_ = live_chart_bezier_intersector_new (_tmp0_, config); +#line 82 "../src/smooth_line.vala" + _tmp2_ = _tmp1_; +#line 82 "../src/smooth_line.vala" + _tmp3_ = self->intersections; +#line 82 "../src/smooth_line.vala" + _tmp4_ = *previous; +#line 82 "../src/smooth_line.vala" + _tmp5_ = *target; +#line 82 "../src/smooth_line.vala" + _tmp6_ = *curve; +#line 82 "../src/smooth_line.vala" + live_chart_intersector_intersect ((LiveChartIntersector*) _tmp2_, _tmp3_, &_tmp4_, &_tmp5_, &_tmp6_); +#line 82 "../src/smooth_line.vala" + _live_chart_bezier_intersector_unref0 (_tmp2_); +#line 625 "smooth_line.c" +} + +static void +live_chart_smooth_line_update_bounding_box (LiveChartSmoothLine* self, + LiveChartPoints* points, + LiveChartConfig* config) +{ + LiveChartPoint _tmp0_ = {0}; + LiveChartBounds* _tmp1_; + LiveChartBounds* _tmp2_; + gdouble _tmp3_; + gdouble _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint _tmp6_ = {0}; + LiveChartBounds* _tmp7_; + LiveChartBounds* _tmp8_; + gdouble _tmp9_; + gdouble _tmp10_; + LiveChartBounds* _tmp11_; + LiveChartBounds* _tmp12_; + gdouble _tmp13_; + gdouble _tmp14_; + LiveChartBoundingBox _tmp15_ = {0}; +#line 85 "../src/smooth_line.vala" + g_return_if_fail (self != NULL); +#line 85 "../src/smooth_line.vala" + g_return_if_fail (points != NULL); +#line 85 "../src/smooth_line.vala" + g_return_if_fail (config != NULL); +#line 86 "../src/smooth_line.vala" + live_chart_points_first (points, &_tmp0_); +#line 86 "../src/smooth_line.vala" + _tmp1_ = live_chart_points_get_bounds (points); +#line 86 "../src/smooth_line.vala" + _tmp2_ = _tmp1_; +#line 86 "../src/smooth_line.vala" + _tmp3_ = live_chart_bounds_get_lower (_tmp2_); +#line 86 "../src/smooth_line.vala" + _tmp4_ = _tmp3_; +#line 86 "../src/smooth_line.vala" + live_chart_points_last (points, &_tmp5_); +#line 86 "../src/smooth_line.vala" + live_chart_points_first (points, &_tmp6_); +#line 86 "../src/smooth_line.vala" + _tmp7_ = live_chart_points_get_bounds (points); +#line 86 "../src/smooth_line.vala" + _tmp8_ = _tmp7_; +#line 86 "../src/smooth_line.vala" + _tmp9_ = live_chart_bounds_get_upper (_tmp8_); +#line 86 "../src/smooth_line.vala" + _tmp10_ = _tmp9_; +#line 86 "../src/smooth_line.vala" + _tmp11_ = live_chart_points_get_bounds (points); +#line 86 "../src/smooth_line.vala" + _tmp12_ = _tmp11_; +#line 86 "../src/smooth_line.vala" + _tmp13_ = live_chart_bounds_get_lower (_tmp12_); +#line 86 "../src/smooth_line.vala" + _tmp14_ = _tmp13_; +#line 86 "../src/smooth_line.vala" + memset (&_tmp15_, 0, sizeof (LiveChartBoundingBox)); +#line 86 "../src/smooth_line.vala" + _tmp15_.x = _tmp0_.x; +#line 86 "../src/smooth_line.vala" + _tmp15_.y = _tmp4_; +#line 86 "../src/smooth_line.vala" + _tmp15_.width = _tmp5_.x - _tmp6_.x; +#line 86 "../src/smooth_line.vala" + _tmp15_.height = _tmp10_ - _tmp14_; +#line 86 "../src/smooth_line.vala" + ((LiveChartSerieRenderer*) self)->bounding_box = _tmp15_; +#line 697 "smooth_line.c" +} + +LiveChartRegion* +live_chart_smooth_line_get_region (LiveChartSmoothLine* self) +{ + LiveChartRegion* result; + LiveChartRegion* _tmp0_; +#line 6 "../src/smooth_line.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 6 "../src/smooth_line.vala" + _tmp0_ = self->priv->_region; +#line 6 "../src/smooth_line.vala" + result = _tmp0_; +#line 6 "../src/smooth_line.vala" + return result; +#line 713 "smooth_line.c" +} + +static gpointer +_live_chart_region_ref0 (gpointer self) +{ +#line 6 "../src/smooth_line.vala" + return self ? live_chart_region_ref (self) : NULL; +#line 721 "smooth_line.c" +} + +void +live_chart_smooth_line_set_region (LiveChartSmoothLine* self, + LiveChartRegion* value) +{ + LiveChartRegion* old_value; +#line 6 "../src/smooth_line.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/smooth_line.vala" + old_value = live_chart_smooth_line_get_region (self); +#line 6 "../src/smooth_line.vala" + if (old_value != value) { +#line 735 "smooth_line.c" + LiveChartRegion* _tmp0_; +#line 6 "../src/smooth_line.vala" + _tmp0_ = _live_chart_region_ref0 (value); +#line 6 "../src/smooth_line.vala" + _live_chart_region_unref0 (self->priv->_region); +#line 6 "../src/smooth_line.vala" + self->priv->_region = _tmp0_; +#line 6 "../src/smooth_line.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_smooth_line_properties[LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY]); +#line 745 "smooth_line.c" + } +} + +static void +live_chart_smooth_line_class_init (LiveChartSmoothLineClass * klass, + gpointer klass_data) +{ +#line 4 "../src/smooth_line.vala" + live_chart_smooth_line_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/smooth_line.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSmoothLine_private_offset); +#line 4 "../src/smooth_line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_smooth_line_real_draw; +#line 4 "../src/smooth_line.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_smooth_line_get_property; +#line 4 "../src/smooth_line.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_smooth_line_set_property; +#line 4 "../src/smooth_line.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_smooth_line_finalize; +#line 4 "../src/smooth_line.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY, live_chart_smooth_line_properties[LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY] = live_chart_param_spec_region ("region", "region", "region", LIVE_CHART_TYPE_REGION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 767 "smooth_line.c" +} + +static void +live_chart_smooth_line_instance_init (LiveChartSmoothLine * self, + gpointer klass) +{ + LiveChartIntersections* _tmp0_; +#line 4 "../src/smooth_line.vala" + self->priv = live_chart_smooth_line_get_instance_private (self); +#line 6 "../src/smooth_line.vala" + self->priv->_region = NULL; +#line 7 "../src/smooth_line.vala" + _tmp0_ = live_chart_intersections_new (); +#line 7 "../src/smooth_line.vala" + self->intersections = _tmp0_; +#line 783 "smooth_line.c" +} + +static void +live_chart_smooth_line_finalize (GObject * obj) +{ + LiveChartSmoothLine * self; +#line 4 "../src/smooth_line.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine); +#line 6 "../src/smooth_line.vala" + _live_chart_region_unref0 (self->priv->_region); +#line 7 "../src/smooth_line.vala" + _g_object_unref0 (self->intersections); +#line 4 "../src/smooth_line.vala" + G_OBJECT_CLASS (live_chart_smooth_line_parent_class)->finalize (obj); +#line 798 "smooth_line.c" +} + +static GType +live_chart_smooth_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSmoothLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_smooth_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSmoothLine), 0, (GInstanceInitFunc) live_chart_smooth_line_instance_init, NULL }; + GType live_chart_smooth_line_type_id; + live_chart_smooth_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartSmoothLine", &g_define_type_info, 0); + LiveChartSmoothLine_private_offset = g_type_add_instance_private (live_chart_smooth_line_type_id, sizeof (LiveChartSmoothLinePrivate)); + return live_chart_smooth_line_type_id; +} + +GType +live_chart_smooth_line_get_type (void) +{ + static volatile gsize live_chart_smooth_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_smooth_line_type_id__once)) { + GType live_chart_smooth_line_type_id; + live_chart_smooth_line_type_id = live_chart_smooth_line_get_type_once (); + g_once_init_leave (&live_chart_smooth_line_type_id__once, live_chart_smooth_line_type_id); + } + return live_chart_smooth_line_type_id__once; +} + +static void +_vala_live_chart_smooth_line_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartSmoothLine * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine); +#line 4 "../src/smooth_line.vala" + switch (property_id) { +#line 4 "../src/smooth_line.vala" + case LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY: +#line 4 "../src/smooth_line.vala" + live_chart_value_set_region (value, live_chart_smooth_line_get_region (self)); +#line 4 "../src/smooth_line.vala" + break; +#line 839 "smooth_line.c" + default: +#line 4 "../src/smooth_line.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/smooth_line.vala" + break; +#line 845 "smooth_line.c" + } +} + +static void +_vala_live_chart_smooth_line_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartSmoothLine * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine); +#line 4 "../src/smooth_line.vala" + switch (property_id) { +#line 4 "../src/smooth_line.vala" + case LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY: +#line 4 "../src/smooth_line.vala" + live_chart_smooth_line_set_region (self, live_chart_value_get_region (value)); +#line 4 "../src/smooth_line.vala" + break; +#line 865 "smooth_line.c" + default: +#line 4 "../src/smooth_line.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/smooth_line.vala" + break; +#line 871 "smooth_line.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/smooth_line_area.c b/iPDC/lib/liblivechart_static.a.p/smooth_line_area.c new file mode 100644 index 0000000..0caf082 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/smooth_line_area.c @@ -0,0 +1,564 @@ +/* smooth_line_area.c generated by valac 0.56.0, the Vala compiler + * generated from smooth_line_area.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_SMOOTH_LINE_AREA_0_PROPERTY, + LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY, + LIVE_CHART_SMOOTH_LINE_AREA_NUM_PROPERTIES +}; +static GParamSpec* live_chart_smooth_line_area_properties[LIVE_CHART_SMOOTH_LINE_AREA_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _cairo_path_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_path_destroy (var), NULL))) +#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL))) +typedef struct _Block5Data Block5Data; + +struct _LiveChartSmoothLineAreaPrivate { + gdouble _area_alpha; +}; + +struct _Block5Data { + int _ref_count_; + LiveChartSmoothLineArea* self; + LiveChartBoundaries boundaries; + cairo_t* ctx; +}; + +static gint LiveChartSmoothLineArea_private_offset; +static gpointer live_chart_smooth_line_area_parent_class = NULL; + +static void live_chart_smooth_line_area_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static Block5Data* block5_data_ref (Block5Data* _data5_); +static void block5_data_unref (void * _userdata_); +static gboolean __lambda14_ (Block5Data* _data5_, + LiveChartIntersection* intersection); +static gboolean ___lambda14__gee_forall_func (gpointer g, + gpointer self); +static void live_chart_smooth_line_area_finalize (GObject * obj); +static GType live_chart_smooth_line_area_get_type_once (void); +static void _vala_live_chart_smooth_line_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_smooth_line_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_smooth_line_area_get_instance_private (LiveChartSmoothLineArea* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSmoothLineArea_private_offset); +} + +LiveChartSmoothLineArea* +live_chart_smooth_line_area_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartSmoothLineArea * self = NULL; +#line 8 "../src/smooth_line_area.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 9 "../src/smooth_line_area.vala" + self = (LiveChartSmoothLineArea*) live_chart_smooth_line_construct (object_type, values); +#line 8 "../src/smooth_line_area.vala" + return self; +#line 77 "smooth_line_area.c" +} + +LiveChartSmoothLineArea* +live_chart_smooth_line_area_new (LiveChartValues* values) +{ +#line 8 "../src/smooth_line_area.vala" + return live_chart_smooth_line_area_construct (LIVE_CHART_TYPE_SMOOTH_LINE_AREA, values); +#line 85 "smooth_line_area.c" +} + +static void +live_chart_smooth_line_area_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartSmoothLineArea * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 11 "../src/smooth_line_area.vala" + self = (LiveChartSmoothLineArea*) base; +#line 11 "../src/smooth_line_area.vala" + g_return_if_fail (ctx != NULL); +#line 11 "../src/smooth_line_area.vala" + g_return_if_fail (config != NULL); +#line 12 "../src/smooth_line_area.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 12 "../src/smooth_line_area.vala" + _tmp1_ = _tmp0_; +#line 12 "../src/smooth_line_area.vala" + if (_tmp1_) { +#line 108 "smooth_line_area.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 13 "../src/smooth_line_area.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 13 "../src/smooth_line_area.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 13 "../src/smooth_line_area.vala" + points = _tmp3_; +#line 14 "../src/smooth_line_area.vala" + _tmp4_ = points; +#line 14 "../src/smooth_line_area.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 14 "../src/smooth_line_area.vala" + _tmp6_ = _tmp5_; +#line 14 "../src/smooth_line_area.vala" + if (_tmp6_ > 0) { +#line 129 "smooth_line_area.c" + cairo_path_t* path = NULL; + LiveChartPoints* _tmp7_; + cairo_path_t* _tmp8_; + LiveChartArea* area = NULL; + LiveChartPoints* _tmp9_; + GdkRGBA _tmp10_ = {0}; + GdkRGBA _tmp11_; + gdouble _tmp12_; + LiveChartArea* _tmp13_; + LiveChartArea* _tmp14_; + cairo_path_t* _tmp15_; + LiveChartArea* _tmp16_; +#line 16 "../src/smooth_line_area.vala" + cairo_push_group (ctx); +#line 17 "../src/smooth_line_area.vala" + _tmp7_ = points; +#line 17 "../src/smooth_line_area.vala" + _tmp8_ = live_chart_smooth_line_draw_smooth_line ((LiveChartSmoothLine*) self, _tmp7_, ctx, config); +#line 17 "../src/smooth_line_area.vala" + path = _tmp8_; +#line 18 "../src/smooth_line_area.vala" + cairo_stroke_preserve (ctx); +#line 20 "../src/smooth_line_area.vala" + _tmp9_ = points; +#line 20 "../src/smooth_line_area.vala" + live_chart_serie_renderer_get_main_color ((LiveChartSerieRenderer*) self, &_tmp10_); +#line 20 "../src/smooth_line_area.vala" + _tmp11_ = _tmp10_; +#line 20 "../src/smooth_line_area.vala" + _tmp12_ = self->priv->_area_alpha; +#line 20 "../src/smooth_line_area.vala" + _tmp13_ = live_chart_area_new (_tmp9_, &_tmp11_, _tmp12_); +#line 20 "../src/smooth_line_area.vala" + area = _tmp13_; +#line 21 "../src/smooth_line_area.vala" + _tmp14_ = area; +#line 21 "../src/smooth_line_area.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp14_, ctx, config); +#line 22 "../src/smooth_line_area.vala" + cairo_fill (ctx); +#line 24 "../src/smooth_line_area.vala" + cairo_set_operator (ctx, CAIRO_OPERATOR_ATOP); +#line 25 "../src/smooth_line_area.vala" + live_chart_smooth_line_draw_regions_on_line ((LiveChartSmoothLine*) self, ctx, config); +#line 26 "../src/smooth_line_area.vala" + cairo_fill (ctx); +#line 27 "../src/smooth_line_area.vala" + cairo_pop_group_to_source (ctx); +#line 29 "../src/smooth_line_area.vala" + cairo_save (ctx); +#line 30 "../src/smooth_line_area.vala" + _tmp15_ = path; +#line 30 "../src/smooth_line_area.vala" + cairo_append_path (ctx, _tmp15_); +#line 31 "../src/smooth_line_area.vala" + _tmp16_ = area; +#line 31 "../src/smooth_line_area.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp16_, ctx, config); +#line 32 "../src/smooth_line_area.vala" + cairo_clip (ctx); +#line 34 "../src/smooth_line_area.vala" + live_chart_smooth_line_area_draw_regions_on_area (self, ctx, config); +#line 35 "../src/smooth_line_area.vala" + cairo_restore (ctx); +#line 36 "../src/smooth_line_area.vala" + cairo_paint (ctx); +#line 14 "../src/smooth_line_area.vala" + _g_object_unref0 (area); +#line 14 "../src/smooth_line_area.vala" + _cairo_path_destroy0 (path); +#line 200 "smooth_line_area.c" + } +#line 12 "../src/smooth_line_area.vala" + _g_object_unref0 (points); +#line 204 "smooth_line_area.c" + } +} + +static gpointer +_cairo_reference0 (gpointer self) +{ +#line 42 "../src/smooth_line_area.vala" + return self ? cairo_reference (self) : NULL; +#line 213 "smooth_line_area.c" +} + +static Block5Data* +block5_data_ref (Block5Data* _data5_) +{ +#line 42 "../src/smooth_line_area.vala" + g_atomic_int_inc (&_data5_->_ref_count_); +#line 42 "../src/smooth_line_area.vala" + return _data5_; +#line 223 "smooth_line_area.c" +} + +static void +block5_data_unref (void * _userdata_) +{ + Block5Data* _data5_; + _data5_ = (Block5Data*) _userdata_; +#line 42 "../src/smooth_line_area.vala" + if (g_atomic_int_dec_and_test (&_data5_->_ref_count_)) { +#line 233 "smooth_line_area.c" + LiveChartSmoothLineArea* self; +#line 42 "../src/smooth_line_area.vala" + self = _data5_->self; +#line 42 "../src/smooth_line_area.vala" + _cairo_destroy0 (_data5_->ctx); +#line 42 "../src/smooth_line_area.vala" + _g_object_unref0 (self); +#line 42 "../src/smooth_line_area.vala" + g_slice_free (Block5Data, _data5_); +#line 243 "smooth_line_area.c" + } +} + +static gboolean +__lambda14_ (Block5Data* _data5_, + LiveChartIntersection* intersection) +{ + LiveChartSmoothLineArea* self; + gboolean result; +#line 44 "../src/smooth_line_area.vala" + self = _data5_->self; +#line 45 "../src/smooth_line_area.vala" + if (intersection != NULL) { +#line 257 "smooth_line_area.c" + gdouble _tmp0_; + gdouble _tmp1_; + LiveChartBoundaries _tmp2_; + LiveChartBoundary _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + gdouble _tmp6_; + gdouble _tmp7_; + LiveChartBoundaries _tmp8_; + LiveChartRegion* _tmp9_; + LiveChartRegion* _tmp10_; + GdkRGBA _tmp11_ = {0}; + GdkRGBA _tmp12_; + LiveChartRegion* _tmp13_; + LiveChartRegion* _tmp14_; + GdkRGBA _tmp15_ = {0}; + GdkRGBA _tmp16_; + LiveChartRegion* _tmp17_; + LiveChartRegion* _tmp18_; + GdkRGBA _tmp19_ = {0}; + GdkRGBA _tmp20_; + LiveChartRegion* _tmp21_; + LiveChartRegion* _tmp22_; + GdkRGBA _tmp23_ = {0}; + GdkRGBA _tmp24_; +#line 46 "../src/smooth_line_area.vala" + _tmp0_ = live_chart_intersection_get_start_x (intersection); +#line 46 "../src/smooth_line_area.vala" + _tmp1_ = _tmp0_; +#line 46 "../src/smooth_line_area.vala" + _tmp2_ = _data5_->boundaries; +#line 46 "../src/smooth_line_area.vala" + _tmp3_ = _tmp2_.y; +#line 46 "../src/smooth_line_area.vala" + _tmp4_ = live_chart_intersection_get_end_x (intersection); +#line 46 "../src/smooth_line_area.vala" + _tmp5_ = _tmp4_; +#line 46 "../src/smooth_line_area.vala" + _tmp6_ = live_chart_intersection_get_start_x (intersection); +#line 46 "../src/smooth_line_area.vala" + _tmp7_ = _tmp6_; +#line 46 "../src/smooth_line_area.vala" + _tmp8_ = _data5_->boundaries; +#line 46 "../src/smooth_line_area.vala" + cairo_rectangle (_data5_->ctx, _tmp1_, (gdouble) _tmp3_.min, _tmp5_ - _tmp7_, (gdouble) _tmp8_.height); +#line 47 "../src/smooth_line_area.vala" + _tmp9_ = live_chart_intersection_get_region (intersection); +#line 47 "../src/smooth_line_area.vala" + _tmp10_ = _tmp9_; +#line 47 "../src/smooth_line_area.vala" + live_chart_region_get_area_color (_tmp10_, &_tmp11_); +#line 47 "../src/smooth_line_area.vala" + _tmp12_ = _tmp11_; +#line 47 "../src/smooth_line_area.vala" + _tmp13_ = live_chart_intersection_get_region (intersection); +#line 47 "../src/smooth_line_area.vala" + _tmp14_ = _tmp13_; +#line 47 "../src/smooth_line_area.vala" + live_chart_region_get_area_color (_tmp14_, &_tmp15_); +#line 47 "../src/smooth_line_area.vala" + _tmp16_ = _tmp15_; +#line 47 "../src/smooth_line_area.vala" + _tmp17_ = live_chart_intersection_get_region (intersection); +#line 47 "../src/smooth_line_area.vala" + _tmp18_ = _tmp17_; +#line 47 "../src/smooth_line_area.vala" + live_chart_region_get_area_color (_tmp18_, &_tmp19_); +#line 47 "../src/smooth_line_area.vala" + _tmp20_ = _tmp19_; +#line 47 "../src/smooth_line_area.vala" + _tmp21_ = live_chart_intersection_get_region (intersection); +#line 47 "../src/smooth_line_area.vala" + _tmp22_ = _tmp21_; +#line 47 "../src/smooth_line_area.vala" + live_chart_region_get_area_color (_tmp22_, &_tmp23_); +#line 47 "../src/smooth_line_area.vala" + _tmp24_ = _tmp23_; +#line 47 "../src/smooth_line_area.vala" + cairo_set_source_rgba (_data5_->ctx, _tmp12_.red, _tmp16_.green, _tmp20_.blue, _tmp24_.alpha); +#line 48 "../src/smooth_line_area.vala" + cairo_fill (_data5_->ctx); +#line 339 "smooth_line_area.c" + } +#line 50 "../src/smooth_line_area.vala" + result = TRUE; +#line 50 "../src/smooth_line_area.vala" + _g_object_unref0 (intersection); +#line 50 "../src/smooth_line_area.vala" + return result; +#line 347 "smooth_line_area.c" +} + +static gboolean +___lambda14__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = __lambda14_ (self, (LiveChartIntersection*) g); +#line 44 "../src/smooth_line_area.vala" + return result; +#line 358 "smooth_line_area.c" +} + +void +live_chart_smooth_line_area_draw_regions_on_area (LiveChartSmoothLineArea* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + Block5Data* _data5_; + cairo_t* _tmp0_; + LiveChartBoundaries _tmp1_ = {0}; + LiveChartIntersections* _tmp2_; +#line 42 "../src/smooth_line_area.vala" + g_return_if_fail (self != NULL); +#line 42 "../src/smooth_line_area.vala" + g_return_if_fail (ctx != NULL); +#line 42 "../src/smooth_line_area.vala" + g_return_if_fail (config != NULL); +#line 42 "../src/smooth_line_area.vala" + _data5_ = g_slice_new0 (Block5Data); +#line 42 "../src/smooth_line_area.vala" + _data5_->_ref_count_ = 1; +#line 42 "../src/smooth_line_area.vala" + _data5_->self = g_object_ref (self); +#line 42 "../src/smooth_line_area.vala" + _tmp0_ = _cairo_reference0 (ctx); +#line 42 "../src/smooth_line_area.vala" + _cairo_destroy0 (_data5_->ctx); +#line 42 "../src/smooth_line_area.vala" + _data5_->ctx = _tmp0_; +#line 43 "../src/smooth_line_area.vala" + live_chart_config_boundaries (config, &_tmp1_); +#line 43 "../src/smooth_line_area.vala" + _data5_->boundaries = _tmp1_; +#line 44 "../src/smooth_line_area.vala" + _tmp2_ = ((LiveChartSmoothLine*) self)->intersections; +#line 44 "../src/smooth_line_area.vala" + live_chart_intersections_foreach (_tmp2_, ___lambda14__gee_forall_func, _data5_); +#line 42 "../src/smooth_line_area.vala" + block5_data_unref (_data5_); +#line 42 "../src/smooth_line_area.vala" + _data5_ = NULL; +#line 400 "smooth_line_area.c" +} + +gdouble +live_chart_smooth_line_area_get_area_alpha (LiveChartSmoothLineArea* self) +{ + gdouble result; +#line 6 "../src/smooth_line_area.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 6 "../src/smooth_line_area.vala" + result = self->priv->_area_alpha; +#line 6 "../src/smooth_line_area.vala" + return result; +#line 413 "smooth_line_area.c" +} + +void +live_chart_smooth_line_area_set_area_alpha (LiveChartSmoothLineArea* self, + gdouble value) +{ + gdouble old_value; +#line 6 "../src/smooth_line_area.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/smooth_line_area.vala" + old_value = live_chart_smooth_line_area_get_area_alpha (self); +#line 6 "../src/smooth_line_area.vala" + if (old_value != value) { +#line 6 "../src/smooth_line_area.vala" + self->priv->_area_alpha = value; +#line 6 "../src/smooth_line_area.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_smooth_line_area_properties[LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY]); +#line 431 "smooth_line_area.c" + } +} + +static void +live_chart_smooth_line_area_class_init (LiveChartSmoothLineAreaClass * klass, + gpointer klass_data) +{ +#line 4 "../src/smooth_line_area.vala" + live_chart_smooth_line_area_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/smooth_line_area.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSmoothLineArea_private_offset); +#line 4 "../src/smooth_line_area.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_smooth_line_area_real_draw; +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_smooth_line_area_get_property; +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_smooth_line_area_set_property; +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_smooth_line_area_finalize; +#line 4 "../src/smooth_line_area.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY, live_chart_smooth_line_area_properties[LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY] = g_param_spec_double ("area-alpha", "area-alpha", "area-alpha", -G_MAXDOUBLE, G_MAXDOUBLE, 0.1, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 453 "smooth_line_area.c" +} + +static void +live_chart_smooth_line_area_instance_init (LiveChartSmoothLineArea * self, + gpointer klass) +{ +#line 4 "../src/smooth_line_area.vala" + self->priv = live_chart_smooth_line_area_get_instance_private (self); +#line 6 "../src/smooth_line_area.vala" + self->priv->_area_alpha = 0.1; +#line 464 "smooth_line_area.c" +} + +static void +live_chart_smooth_line_area_finalize (GObject * obj) +{ + LiveChartSmoothLineArea * self; +#line 4 "../src/smooth_line_area.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineArea); +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_CLASS (live_chart_smooth_line_area_parent_class)->finalize (obj); +#line 475 "smooth_line_area.c" +} + +static GType +live_chart_smooth_line_area_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSmoothLineAreaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_smooth_line_area_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSmoothLineArea), 0, (GInstanceInitFunc) live_chart_smooth_line_area_instance_init, NULL }; + GType live_chart_smooth_line_area_type_id; + live_chart_smooth_line_area_type_id = g_type_register_static (LIVE_CHART_TYPE_SMOOTH_LINE, "LiveChartSmoothLineArea", &g_define_type_info, 0); + LiveChartSmoothLineArea_private_offset = g_type_add_instance_private (live_chart_smooth_line_area_type_id, sizeof (LiveChartSmoothLineAreaPrivate)); + return live_chart_smooth_line_area_type_id; +} + +GType +live_chart_smooth_line_area_get_type (void) +{ + static volatile gsize live_chart_smooth_line_area_type_id__once = 0; + if (g_once_init_enter (&live_chart_smooth_line_area_type_id__once)) { + GType live_chart_smooth_line_area_type_id; + live_chart_smooth_line_area_type_id = live_chart_smooth_line_area_get_type_once (); + g_once_init_leave (&live_chart_smooth_line_area_type_id__once, live_chart_smooth_line_area_type_id); + } + return live_chart_smooth_line_area_type_id__once; +} + +static void +_vala_live_chart_smooth_line_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartSmoothLineArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineArea); +#line 4 "../src/smooth_line_area.vala" + switch (property_id) { +#line 4 "../src/smooth_line_area.vala" + case LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY: +#line 4 "../src/smooth_line_area.vala" + g_value_set_double (value, live_chart_smooth_line_area_get_area_alpha (self)); +#line 4 "../src/smooth_line_area.vala" + break; +#line 516 "smooth_line_area.c" + default: +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/smooth_line_area.vala" + break; +#line 522 "smooth_line_area.c" + } +} + +static void +_vala_live_chart_smooth_line_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartSmoothLineArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineArea); +#line 4 "../src/smooth_line_area.vala" + switch (property_id) { +#line 4 "../src/smooth_line_area.vala" + case LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY: +#line 4 "../src/smooth_line_area.vala" + live_chart_smooth_line_area_set_area_alpha (self, g_value_get_double (value)); +#line 4 "../src/smooth_line_area.vala" + break; +#line 542 "smooth_line_area.c" + default: +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/smooth_line_area.vala" + break; +#line 548 "smooth_line_area.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/static/static_chart.c b/iPDC/lib/liblivechart_static.a.p/static/static_chart.c new file mode 100644 index 0000000..edaed44 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/static/static_chart.c @@ -0,0 +1,672 @@ +/* static_chart.c generated by valac 0.56.0, the Vala compiler + * generated from static_chart.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_CHART_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY, + LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY, + LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY, + LIVE_CHART_STATIC_STATIC_CHART_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_config_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_config_unref (var), NULL))) + +struct _LiveChartStaticStaticChartPrivate { + LiveChartStaticStaticGrid* _grid; + LiveChartBackground* _background; + LiveChartLegend* _legend; + GeeArrayList* categories; +}; + +static gint LiveChartStaticStaticChart_private_offset; +static gpointer live_chart_static_static_chart_parent_class = NULL; + +static void __lambda16_ (LiveChartStaticStaticChart* self, + GtkAllocation* allocation); +static void ___lambda16__gtk_widget_size_allocate (GtkWidget* _sender, + GtkAllocation* allocation, + gpointer self); +static gboolean live_chart_static_static_chart_render (LiveChartStaticStaticChart* self, + GtkWidget* _, + cairo_t* ctx); +static gboolean _live_chart_static_static_chart_render_gtk_widget_draw (GtkWidget* _sender, + cairo_t* cr, + gpointer self); +static void live_chart_static_static_chart_finalize (GObject * obj); +static GType live_chart_static_static_chart_get_type_once (void); +static void _vala_live_chart_static_static_chart_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_chart_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_chart_get_instance_private (LiveChartStaticStaticChart* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticChart_private_offset); +} + +static gpointer +_live_chart_config_ref0 (gpointer self) +{ +#line 17 "../src/static/static_chart.vala" + return self ? live_chart_config_ref (self) : NULL; +#line 72 "static_chart.c" +} + +static void +__lambda16_ (LiveChartStaticStaticChart* self, + GtkAllocation* allocation) +{ + LiveChartConfig* _tmp0_; + GtkAllocation _tmp1_; + LiveChartConfig* _tmp2_; + GtkAllocation _tmp3_; +#line 18 "../src/static/static_chart.vala" + g_return_if_fail (allocation != NULL); +#line 19 "../src/static/static_chart.vala" + _tmp0_ = self->config; +#line 19 "../src/static/static_chart.vala" + _tmp1_ = *allocation; +#line 19 "../src/static/static_chart.vala" + live_chart_config_set_height (_tmp0_, _tmp1_.height); +#line 20 "../src/static/static_chart.vala" + _tmp2_ = self->config; +#line 20 "../src/static/static_chart.vala" + _tmp3_ = *allocation; +#line 20 "../src/static/static_chart.vala" + live_chart_config_set_width (_tmp2_, _tmp3_.width); +#line 97 "static_chart.c" +} + +static void +___lambda16__gtk_widget_size_allocate (GtkWidget* _sender, + GtkAllocation* allocation, + gpointer self) +{ +#line 18 "../src/static/static_chart.vala" + __lambda16_ ((LiveChartStaticStaticChart*) self, allocation); +#line 107 "static_chart.c" +} + +static gboolean +_live_chart_static_static_chart_render_gtk_widget_draw (GtkWidget* _sender, + cairo_t* cr, + gpointer self) +{ + gboolean result; + result = live_chart_static_static_chart_render ((LiveChartStaticStaticChart*) self, _sender, cr); +#line 23 "../src/static/static_chart.vala" + return result; +#line 119 "static_chart.c" +} + +LiveChartStaticStaticChart* +live_chart_static_static_chart_construct (GType object_type, + LiveChartConfig* config) +{ + LiveChartStaticStaticChart * self = NULL; + LiveChartConfig* _tmp0_; + LiveChartStaticStaticSeries* _tmp1_; +#line 16 "../src/static/static_chart.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 16 "../src/static/static_chart.vala" + self = (LiveChartStaticStaticChart*) g_object_new (object_type, NULL); +#line 17 "../src/static/static_chart.vala" + _tmp0_ = _live_chart_config_ref0 (config); +#line 17 "../src/static/static_chart.vala" + _live_chart_config_unref0 (self->config); +#line 17 "../src/static/static_chart.vala" + self->config = _tmp0_; +#line 18 "../src/static/static_chart.vala" + g_signal_connect_object ((GtkWidget*) self, "size-allocate", (GCallback) ___lambda16__gtk_widget_size_allocate, self, 0); +#line 23 "../src/static/static_chart.vala" + g_signal_connect_object ((GtkWidget*) self, "draw", (GCallback) _live_chart_static_static_chart_render_gtk_widget_draw, self, 0); +#line 25 "../src/static/static_chart.vala" + _tmp1_ = live_chart_static_static_series_new (self); +#line 25 "../src/static/static_chart.vala" + _g_object_unref0 (self->series); +#line 25 "../src/static/static_chart.vala" + self->series = _tmp1_; +#line 16 "../src/static/static_chart.vala" + return self; +#line 151 "static_chart.c" +} + +LiveChartStaticStaticChart* +live_chart_static_static_chart_new (LiveChartConfig* config) +{ +#line 16 "../src/static/static_chart.vala" + return live_chart_static_static_chart_construct (LIVE_CHART_STATIC_TYPE_STATIC_CHART, config); +#line 159 "static_chart.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 29 "../src/static/static_chart.vala" + return self ? g_object_ref (self) : NULL; +#line 167 "static_chart.c" +} + +void +live_chart_static_static_chart_set_categories (LiveChartStaticStaticChart* self, + GeeArrayList* categories) +{ + GeeArrayList* _tmp0_; + LiveChartConfig* _tmp1_; + GeeArrayList* _tmp2_; +#line 28 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 28 "../src/static/static_chart.vala" + g_return_if_fail (categories != NULL); +#line 29 "../src/static/static_chart.vala" + _tmp0_ = _g_object_ref0 (categories); +#line 29 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->categories); +#line 29 "../src/static/static_chart.vala" + self->priv->categories = _tmp0_; +#line 30 "../src/static/static_chart.vala" + _tmp1_ = self->config; +#line 30 "../src/static/static_chart.vala" + _tmp2_ = _g_object_ref0 (categories); +#line 30 "../src/static/static_chart.vala" + _g_object_unref0 (_tmp1_->categories); +#line 30 "../src/static/static_chart.vala" + _tmp1_->categories = _tmp2_; +#line 195 "static_chart.c" +} + +void +live_chart_static_static_chart_add_serie (LiveChartStaticStaticChart* self, + LiveChartStaticStaticSerie* serie) +{ + LiveChartStaticStaticSeries* _tmp0_; + LiveChartStaticStaticSerie* _tmp1_; + LiveChartStaticStaticSerie* _tmp2_; +#line 33 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 33 "../src/static/static_chart.vala" + g_return_if_fail (serie != NULL); +#line 34 "../src/static/static_chart.vala" + _tmp0_ = self->series; +#line 34 "../src/static/static_chart.vala" + _tmp1_ = live_chart_static_static_series_register (_tmp0_, serie); +#line 34 "../src/static/static_chart.vala" + _tmp2_ = _tmp1_; +#line 34 "../src/static/static_chart.vala" + _g_object_unref0 (_tmp2_); +#line 217 "static_chart.c" +} + +static gboolean +live_chart_static_static_chart_render (LiveChartStaticStaticChart* self, + GtkWidget* _, + cairo_t* ctx) +{ + LiveChartConfig* _tmp0_; + LiveChartLegend* _tmp1_; + LiveChartBackground* _tmp2_; + LiveChartConfig* _tmp3_; + LiveChartStaticStaticGrid* _tmp4_; + LiveChartConfig* _tmp5_; + LiveChartLegend* _tmp6_; + LiveChartBoundaries boundaries = {0}; + LiveChartConfig* _tmp9_; + LiveChartBoundaries _tmp10_ = {0}; + gboolean result; +#line 38 "../src/static/static_chart.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 38 "../src/static/static_chart.vala" + g_return_val_if_fail (_ != NULL, FALSE); +#line 38 "../src/static/static_chart.vala" + g_return_val_if_fail (ctx != NULL, FALSE); +#line 40 "../src/static/static_chart.vala" + _tmp0_ = self->config; +#line 40 "../src/static/static_chart.vala" + _tmp1_ = self->priv->_legend; +#line 40 "../src/static/static_chart.vala" + live_chart_config_configure (_tmp0_, ctx, _tmp1_); +#line 42 "../src/static/static_chart.vala" + _tmp2_ = self->priv->_background; +#line 42 "../src/static/static_chart.vala" + _tmp3_ = self->config; +#line 42 "../src/static/static_chart.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp2_, ctx, _tmp3_); +#line 43 "../src/static/static_chart.vala" + _tmp4_ = self->priv->_grid; +#line 43 "../src/static/static_chart.vala" + _tmp5_ = self->config; +#line 43 "../src/static/static_chart.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp4_, ctx, _tmp5_); +#line 44 "../src/static/static_chart.vala" + _tmp6_ = self->priv->_legend; +#line 44 "../src/static/static_chart.vala" + if (_tmp6_ != NULL) { +#line 264 "static_chart.c" + LiveChartLegend* _tmp7_; + LiveChartConfig* _tmp8_; +#line 44 "../src/static/static_chart.vala" + _tmp7_ = self->priv->_legend; +#line 44 "../src/static/static_chart.vala" + _tmp8_ = self->config; +#line 44 "../src/static/static_chart.vala" + live_chart_legend_draw (_tmp7_, ctx, _tmp8_); +#line 273 "static_chart.c" + } +#line 46 "../src/static/static_chart.vala" + _tmp9_ = self->config; +#line 46 "../src/static/static_chart.vala" + live_chart_config_boundaries (_tmp9_, &_tmp10_); +#line 46 "../src/static/static_chart.vala" + boundaries = _tmp10_; +#line 281 "static_chart.c" + { + GeeIterator* _serie_it = NULL; + LiveChartStaticStaticSeries* _tmp11_; + GeeIterator* _tmp12_; +#line 47 "../src/static/static_chart.vala" + _tmp11_ = self->series; +#line 47 "../src/static/static_chart.vala" + _tmp12_ = live_chart_static_static_series_iterator (_tmp11_); +#line 47 "../src/static/static_chart.vala" + _serie_it = _tmp12_; +#line 47 "../src/static/static_chart.vala" + while (TRUE) { +#line 294 "static_chart.c" + GeeIterator* _tmp13_; + LiveChartDrawable* serie = NULL; + GeeIterator* _tmp14_; + gpointer _tmp15_; + LiveChartBoundaries _tmp16_; + LiveChartBoundary _tmp17_; + LiveChartBoundaries _tmp18_; + LiveChartBoundary _tmp19_; + LiveChartBoundaries _tmp20_; + LiveChartBoundary _tmp21_; + LiveChartBoundaries _tmp22_; + LiveChartBoundary _tmp23_; + LiveChartDrawable* _tmp24_; + LiveChartConfig* _tmp25_; +#line 47 "../src/static/static_chart.vala" + _tmp13_ = _serie_it; +#line 47 "../src/static/static_chart.vala" + if (!gee_iterator_next (_tmp13_)) { +#line 47 "../src/static/static_chart.vala" + break; +#line 315 "static_chart.c" + } +#line 47 "../src/static/static_chart.vala" + _tmp14_ = _serie_it; +#line 47 "../src/static/static_chart.vala" + _tmp15_ = gee_iterator_get (_tmp14_); +#line 47 "../src/static/static_chart.vala" + serie = (LiveChartDrawable*) ((LiveChartStaticStaticSerie*) _tmp15_); +#line 48 "../src/static/static_chart.vala" + _tmp16_ = boundaries; +#line 48 "../src/static/static_chart.vala" + _tmp17_ = _tmp16_.x; +#line 48 "../src/static/static_chart.vala" + _tmp18_ = boundaries; +#line 48 "../src/static/static_chart.vala" + _tmp19_ = _tmp18_.y; +#line 48 "../src/static/static_chart.vala" + _tmp20_ = boundaries; +#line 48 "../src/static/static_chart.vala" + _tmp21_ = _tmp20_.x; +#line 48 "../src/static/static_chart.vala" + _tmp22_ = boundaries; +#line 48 "../src/static/static_chart.vala" + _tmp23_ = _tmp22_.y; +#line 48 "../src/static/static_chart.vala" + cairo_rectangle (ctx, (gdouble) _tmp17_.min, (gdouble) _tmp19_.min, (gdouble) _tmp21_.max, (gdouble) _tmp23_.max); +#line 49 "../src/static/static_chart.vala" + cairo_clip (ctx); +#line 50 "../src/static/static_chart.vala" + _tmp24_ = serie; +#line 50 "../src/static/static_chart.vala" + _tmp25_ = self->config; +#line 50 "../src/static/static_chart.vala" + live_chart_drawable_draw (_tmp24_, ctx, _tmp25_); +#line 47 "../src/static/static_chart.vala" + _g_object_unref0 (serie); +#line 351 "static_chart.c" + } +#line 47 "../src/static/static_chart.vala" + _g_object_unref0 (_serie_it); +#line 355 "static_chart.c" + } +#line 53 "../src/static/static_chart.vala" + result = TRUE; +#line 53 "../src/static/static_chart.vala" + return result; +#line 361 "static_chart.c" +} + +LiveChartStaticStaticGrid* +live_chart_static_static_chart_get_grid (LiveChartStaticStaticChart* self) +{ + LiveChartStaticStaticGrid* result; + LiveChartStaticStaticGrid* _tmp0_; +#line 8 "../src/static/static_chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 8 "../src/static/static_chart.vala" + _tmp0_ = self->priv->_grid; +#line 8 "../src/static/static_chart.vala" + result = _tmp0_; +#line 8 "../src/static/static_chart.vala" + return result; +#line 377 "static_chart.c" +} + +void +live_chart_static_static_chart_set_grid (LiveChartStaticStaticChart* self, + LiveChartStaticStaticGrid* value) +{ + LiveChartStaticStaticGrid* old_value; +#line 8 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 8 "../src/static/static_chart.vala" + old_value = live_chart_static_static_chart_get_grid (self); +#line 8 "../src/static/static_chart.vala" + if (old_value != value) { +#line 391 "static_chart.c" + LiveChartStaticStaticGrid* _tmp0_; +#line 8 "../src/static/static_chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 8 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_grid); +#line 8 "../src/static/static_chart.vala" + self->priv->_grid = _tmp0_; +#line 8 "../src/static/static_chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY]); +#line 401 "static_chart.c" + } +} + +LiveChartBackground* +live_chart_static_static_chart_get_background (LiveChartStaticStaticChart* self) +{ + LiveChartBackground* result; + LiveChartBackground* _tmp0_; +#line 9 "../src/static/static_chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 9 "../src/static/static_chart.vala" + _tmp0_ = self->priv->_background; +#line 9 "../src/static/static_chart.vala" + result = _tmp0_; +#line 9 "../src/static/static_chart.vala" + return result; +#line 418 "static_chart.c" +} + +void +live_chart_static_static_chart_set_background (LiveChartStaticStaticChart* self, + LiveChartBackground* value) +{ + LiveChartBackground* old_value; +#line 9 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/static/static_chart.vala" + old_value = live_chart_static_static_chart_get_background (self); +#line 9 "../src/static/static_chart.vala" + if (old_value != value) { +#line 432 "static_chart.c" + LiveChartBackground* _tmp0_; +#line 9 "../src/static/static_chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 9 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_background); +#line 9 "../src/static/static_chart.vala" + self->priv->_background = _tmp0_; +#line 9 "../src/static/static_chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY]); +#line 442 "static_chart.c" + } +} + +LiveChartLegend* +live_chart_static_static_chart_get_legend (LiveChartStaticStaticChart* self) +{ + LiveChartLegend* result; + LiveChartLegend* _tmp0_; +#line 10 "../src/static/static_chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 10 "../src/static/static_chart.vala" + _tmp0_ = self->priv->_legend; +#line 10 "../src/static/static_chart.vala" + result = _tmp0_; +#line 10 "../src/static/static_chart.vala" + return result; +#line 459 "static_chart.c" +} + +void +live_chart_static_static_chart_set_legend (LiveChartStaticStaticChart* self, + LiveChartLegend* value) +{ + LiveChartLegend* old_value; +#line 10 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/static/static_chart.vala" + old_value = live_chart_static_static_chart_get_legend (self); +#line 10 "../src/static/static_chart.vala" + if (old_value != value) { +#line 473 "static_chart.c" + LiveChartLegend* _tmp0_; +#line 10 "../src/static/static_chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 10 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_legend); +#line 10 "../src/static/static_chart.vala" + self->priv->_legend = _tmp0_; +#line 10 "../src/static/static_chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY]); +#line 483 "static_chart.c" + } +} + +static void +live_chart_static_static_chart_class_init (LiveChartStaticStaticChartClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_chart.vala" + live_chart_static_static_chart_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_chart.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticChart_private_offset); +#line 6 "../src/static/static_chart.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_chart_get_property; +#line 6 "../src/static/static_chart.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_chart_set_property; +#line 6 "../src/static/static_chart.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_chart_finalize; +#line 6 "../src/static/static_chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY] = g_param_spec_object ("grid", "grid", "grid", LIVE_CHART_STATIC_TYPE_STATIC_GRID, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY] = g_param_spec_object ("background", "background", "background", LIVE_CHART_TYPE_BACKGROUND, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY] = g_param_spec_object ("legend", "legend", "legend", LIVE_CHART_TYPE_LEGEND, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 507 "static_chart.c" +} + +static void +live_chart_static_static_chart_instance_init (LiveChartStaticStaticChart * self, + gpointer klass) +{ + LiveChartStaticStaticGrid* _tmp0_; + LiveChartBackground* _tmp1_; + LiveChartHorizontalLegend* _tmp2_; + GeeArrayList* _tmp3_; +#line 6 "../src/static/static_chart.vala" + self->priv = live_chart_static_static_chart_get_instance_private (self); +#line 8 "../src/static/static_chart.vala" + _tmp0_ = live_chart_static_static_grid_new (); +#line 8 "../src/static/static_chart.vala" + self->priv->_grid = _tmp0_; +#line 9 "../src/static/static_chart.vala" + _tmp1_ = live_chart_background_new (); +#line 9 "../src/static/static_chart.vala" + self->priv->_background = _tmp1_; +#line 10 "../src/static/static_chart.vala" + _tmp2_ = live_chart_horizontal_legend_new (); +#line 10 "../src/static/static_chart.vala" + self->priv->_legend = (LiveChartLegend*) _tmp2_; +#line 14 "../src/static/static_chart.vala" + _tmp3_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 14 "../src/static/static_chart.vala" + self->priv->categories = _tmp3_; +#line 536 "static_chart.c" +} + +static void +live_chart_static_static_chart_finalize (GObject * obj) +{ + LiveChartStaticStaticChart * self; +#line 6 "../src/static/static_chart.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChart); +#line 8 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_grid); +#line 9 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_background); +#line 10 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_legend); +#line 11 "../src/static/static_chart.vala" + _live_chart_config_unref0 (self->config); +#line 12 "../src/static/static_chart.vala" + _g_object_unref0 (self->series); +#line 14 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->categories); +#line 6 "../src/static/static_chart.vala" + G_OBJECT_CLASS (live_chart_static_static_chart_parent_class)->finalize (obj); +#line 559 "static_chart.c" +} + +static GType +live_chart_static_static_chart_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticChartClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_chart_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticChart), 0, (GInstanceInitFunc) live_chart_static_static_chart_instance_init, NULL }; + GType live_chart_static_static_chart_type_id; + live_chart_static_static_chart_type_id = g_type_register_static (gtk_drawing_area_get_type (), "LiveChartStaticStaticChart", &g_define_type_info, 0); + LiveChartStaticStaticChart_private_offset = g_type_add_instance_private (live_chart_static_static_chart_type_id, sizeof (LiveChartStaticStaticChartPrivate)); + return live_chart_static_static_chart_type_id; +} + +GType +live_chart_static_static_chart_get_type (void) +{ + static volatile gsize live_chart_static_static_chart_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_chart_type_id__once)) { + GType live_chart_static_static_chart_type_id; + live_chart_static_static_chart_type_id = live_chart_static_static_chart_get_type_once (); + g_once_init_leave (&live_chart_static_static_chart_type_id__once, live_chart_static_static_chart_type_id); + } + return live_chart_static_static_chart_type_id__once; +} + +static void +_vala_live_chart_static_static_chart_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticChart * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChart); +#line 6 "../src/static/static_chart.vala" + switch (property_id) { +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY: +#line 6 "../src/static/static_chart.vala" + g_value_set_object (value, live_chart_static_static_chart_get_grid (self)); +#line 6 "../src/static/static_chart.vala" + break; +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY: +#line 6 "../src/static/static_chart.vala" + g_value_set_object (value, live_chart_static_static_chart_get_background (self)); +#line 6 "../src/static/static_chart.vala" + break; +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY: +#line 6 "../src/static/static_chart.vala" + g_value_set_object (value, live_chart_static_static_chart_get_legend (self)); +#line 6 "../src/static/static_chart.vala" + break; +#line 612 "static_chart.c" + default: +#line 6 "../src/static/static_chart.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_chart.vala" + break; +#line 618 "static_chart.c" + } +} + +static void +_vala_live_chart_static_static_chart_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticChart * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChart); +#line 6 "../src/static/static_chart.vala" + switch (property_id) { +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY: +#line 6 "../src/static/static_chart.vala" + live_chart_static_static_chart_set_grid (self, g_value_get_object (value)); +#line 6 "../src/static/static_chart.vala" + break; +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY: +#line 6 "../src/static/static_chart.vala" + live_chart_static_static_chart_set_background (self, g_value_get_object (value)); +#line 6 "../src/static/static_chart.vala" + break; +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY: +#line 6 "../src/static/static_chart.vala" + live_chart_static_static_chart_set_legend (self, g_value_get_object (value)); +#line 6 "../src/static/static_chart.vala" + break; +#line 650 "static_chart.c" + default: +#line 6 "../src/static/static_chart.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_chart.vala" + break; +#line 656 "static_chart.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/static/static_grid.c b/iPDC/lib/liblivechart_static.a.p/static/static_grid.c new file mode 100644 index 0000000..ca57eaa --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/static/static_grid.c @@ -0,0 +1,1270 @@ +/* static_grid.c generated by valac 0.56.0, the Vala compiler + * generated from static_grid.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_GRID_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY, + LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY, + LIVE_CHART_STATIC_STATIC_GRID_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_NUM_PROPERTIES]; +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartStaticStaticGridPrivate { + gboolean _visible; + GdkRGBA _main_color; +}; + +static gint LiveChartStaticStaticGrid_private_offset; +static gpointer live_chart_static_static_grid_parent_class = NULL; +static LiveChartDrawableIface * live_chart_static_static_grid_live_chart_drawable_parent_iface = NULL; + +static void live_chart_static_static_grid_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_static_static_grid_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_static_static_grid_finalize (GObject * obj); +static GType live_chart_static_static_grid_get_type_once (void); +static void _vala_live_chart_static_static_grid_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_grid_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_grid_get_instance_private (LiveChartStaticStaticGrid* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticGrid_private_offset); +} + +static void +live_chart_static_static_grid_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartStaticStaticGrid * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 25 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) base; +#line 25 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 25 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 26 "../src/static/static_grid.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 26 "../src/static/static_grid.vala" + _tmp1_ = _tmp0_; +#line 26 "../src/static/static_grid.vala" + if (_tmp1_) { +#line 27 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_abscissa (self, ctx, config); +#line 28 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_ordinate (self, ctx, config); +#line 29 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_grid (self, ctx, config); +#line 30 "../src/static/static_grid.vala" + live_chart_static_static_grid_update_bounding_box (self, config); +#line 31 "../src/static/static_grid.vala" + live_chart_static_static_grid_debug (self, ctx); +#line 90 "static_grid.c" + } +} + +static void +live_chart_static_static_grid_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartStaticStaticGrid * self; + LiveChartBoundingBox _tmp0_; +#line 35 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) base; +#line 36 "../src/static/static_grid.vala" + _tmp0_ = self->bounding_box; +#line 36 "../src/static/static_grid.vala" + *result = _tmp0_; +#line 36 "../src/static/static_grid.vala" + return; +#line 108 "static_grid.c" +} + +void +live_chart_static_static_grid_restore (LiveChartStaticStaticGrid* self, + cairo_t* ctx) +{ + GdkRGBA _tmp0_; + GdkRGBA _tmp1_; + GdkRGBA _tmp2_; + GdkRGBA _tmp3_; +#line 39 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 39 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 40 "../src/static/static_grid.vala" + _tmp0_ = self->priv->_main_color; +#line 40 "../src/static/static_grid.vala" + _tmp1_ = self->priv->_main_color; +#line 40 "../src/static/static_grid.vala" + _tmp2_ = self->priv->_main_color; +#line 40 "../src/static/static_grid.vala" + _tmp3_ = self->priv->_main_color; +#line 40 "../src/static/static_grid.vala" + cairo_set_source_rgba (ctx, _tmp0_.red, _tmp1_.green, _tmp2_.blue, _tmp3_.alpha); +#line 41 "../src/static/static_grid.vala" + cairo_set_line_width (ctx, 0.5); +#line 42 "../src/static/static_grid.vala" + cairo_set_dash (ctx, NULL, (gint) 0, 0.0); +#line 137 "static_grid.c" +} + +void +live_chart_static_static_grid_render_abscissa (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gboolean _tmp0_ = FALSE; + LiveChartXAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; +#line 45 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 45 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 46 "../src/static/static_grid.vala" + _tmp1_ = config->x_axis; +#line 46 "../src/static/static_grid.vala" + _tmp2_ = live_chart_xaxis_get_visible (_tmp1_); +#line 46 "../src/static/static_grid.vala" + _tmp3_ = _tmp2_; +#line 46 "../src/static/static_grid.vala" + if (_tmp3_) { +#line 163 "static_grid.c" + LiveChartXAxis* _tmp4_; + LiveChartPath* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 46 "../src/static/static_grid.vala" + _tmp4_ = config->x_axis; +#line 46 "../src/static/static_grid.vala" + _tmp5_ = _tmp4_->axis; +#line 46 "../src/static/static_grid.vala" + _tmp6_ = live_chart_path_get_visible (_tmp5_); +#line 46 "../src/static/static_grid.vala" + _tmp7_ = _tmp6_; +#line 46 "../src/static/static_grid.vala" + _tmp0_ = _tmp7_; +#line 178 "static_grid.c" + } else { +#line 46 "../src/static/static_grid.vala" + _tmp0_ = FALSE; +#line 182 "static_grid.c" + } +#line 46 "../src/static/static_grid.vala" + if (_tmp0_) { +#line 186 "static_grid.c" + LiveChartXAxis* _tmp8_; + LiveChartPath* _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + gint _tmp12_; + LiveChartPadding _tmp13_; + gint _tmp14_; + gint _tmp15_; + LiveChartPadding _tmp16_; + gint _tmp17_; + gint _tmp18_; + LiveChartPadding _tmp19_; +#line 47 "../src/static/static_grid.vala" + _tmp8_ = config->x_axis; +#line 47 "../src/static/static_grid.vala" + _tmp9_ = _tmp8_->axis; +#line 47 "../src/static/static_grid.vala" + live_chart_path_configure (_tmp9_, ctx); +#line 48 "../src/static/static_grid.vala" + _tmp10_ = config->padding; +#line 48 "../src/static/static_grid.vala" + _tmp11_ = live_chart_config_get_height (config); +#line 48 "../src/static/static_grid.vala" + _tmp12_ = _tmp11_; +#line 48 "../src/static/static_grid.vala" + _tmp13_ = config->padding; +#line 48 "../src/static/static_grid.vala" + cairo_move_to (ctx, _tmp10_.left + 0.5, (_tmp12_ - _tmp13_.bottom) + 0.5); +#line 49 "../src/static/static_grid.vala" + _tmp14_ = live_chart_config_get_width (config); +#line 49 "../src/static/static_grid.vala" + _tmp15_ = _tmp14_; +#line 49 "../src/static/static_grid.vala" + _tmp16_ = config->padding; +#line 49 "../src/static/static_grid.vala" + _tmp17_ = live_chart_config_get_height (config); +#line 49 "../src/static/static_grid.vala" + _tmp18_ = _tmp17_; +#line 49 "../src/static/static_grid.vala" + _tmp19_ = config->padding; +#line 49 "../src/static/static_grid.vala" + cairo_line_to (ctx, (_tmp15_ - _tmp16_.right) + 0.5, (_tmp18_ - _tmp19_.bottom) + 0.5); +#line 50 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 51 "../src/static/static_grid.vala" + live_chart_static_static_grid_restore (self, ctx); +#line 233 "static_grid.c" + } +} + +void +live_chart_static_static_grid_render_ordinate (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gboolean _tmp0_ = FALSE; + LiveChartYAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; +#line 55 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 55 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 55 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 56 "../src/static/static_grid.vala" + _tmp1_ = config->y_axis; +#line 56 "../src/static/static_grid.vala" + _tmp2_ = live_chart_yaxis_get_visible (_tmp1_); +#line 56 "../src/static/static_grid.vala" + _tmp3_ = _tmp2_; +#line 56 "../src/static/static_grid.vala" + if (_tmp3_) { +#line 260 "static_grid.c" + LiveChartYAxis* _tmp4_; + LiveChartPath* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 56 "../src/static/static_grid.vala" + _tmp4_ = config->y_axis; +#line 56 "../src/static/static_grid.vala" + _tmp5_ = _tmp4_->axis; +#line 56 "../src/static/static_grid.vala" + _tmp6_ = live_chart_path_get_visible (_tmp5_); +#line 56 "../src/static/static_grid.vala" + _tmp7_ = _tmp6_; +#line 56 "../src/static/static_grid.vala" + _tmp0_ = _tmp7_; +#line 275 "static_grid.c" + } else { +#line 56 "../src/static/static_grid.vala" + _tmp0_ = FALSE; +#line 279 "static_grid.c" + } +#line 56 "../src/static/static_grid.vala" + if (_tmp0_) { +#line 283 "static_grid.c" + LiveChartYAxis* _tmp8_; + LiveChartPath* _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + gint _tmp12_; + LiveChartPadding _tmp13_; + LiveChartPadding _tmp14_; + LiveChartPadding _tmp15_; +#line 57 "../src/static/static_grid.vala" + _tmp8_ = config->y_axis; +#line 57 "../src/static/static_grid.vala" + _tmp9_ = _tmp8_->axis; +#line 57 "../src/static/static_grid.vala" + live_chart_path_configure (_tmp9_, ctx); +#line 58 "../src/static/static_grid.vala" + _tmp10_ = config->padding; +#line 58 "../src/static/static_grid.vala" + _tmp11_ = live_chart_config_get_height (config); +#line 58 "../src/static/static_grid.vala" + _tmp12_ = _tmp11_; +#line 58 "../src/static/static_grid.vala" + _tmp13_ = config->padding; +#line 58 "../src/static/static_grid.vala" + cairo_move_to (ctx, _tmp10_.left + 0.5, (_tmp12_ - _tmp13_.bottom) + 0.5); +#line 59 "../src/static/static_grid.vala" + _tmp14_ = config->padding; +#line 59 "../src/static/static_grid.vala" + _tmp15_ = config->padding; +#line 59 "../src/static/static_grid.vala" + cairo_line_to (ctx, _tmp14_.left + 0.5, _tmp15_.top + 0.5); +#line 60 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 61 "../src/static/static_grid.vala" + live_chart_static_static_grid_restore (self, ctx); +#line 318 "static_grid.c" + } +} + +void +live_chart_static_static_grid_render_grid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 65 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 65 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 65 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 66 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_hgrid (self, ctx, config); +#line 67 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_vgrid (self, ctx, config); +#line 337 "static_grid.c" +} + +void +live_chart_static_static_grid_render_vgrid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + gint width_between_each_points = 0; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartBoundaries _tmp3_; + LiveChartBoundary _tmp4_; + GeeArrayList* _tmp5_; + gint _tmp6_; + gint _tmp7_; +#line 70 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 70 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 70 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 72 "../src/static/static_grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 72 "../src/static/static_grid.vala" + boundaries = _tmp0_; +#line 75 "../src/static/static_grid.vala" + _tmp1_ = boundaries; +#line 75 "../src/static/static_grid.vala" + _tmp2_ = _tmp1_.x; +#line 75 "../src/static/static_grid.vala" + _tmp3_ = boundaries; +#line 75 "../src/static/static_grid.vala" + _tmp4_ = _tmp3_.x; +#line 75 "../src/static/static_grid.vala" + _tmp5_ = config->categories; +#line 75 "../src/static/static_grid.vala" + _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_); +#line 75 "../src/static/static_grid.vala" + _tmp7_ = _tmp6_; +#line 75 "../src/static/static_grid.vala" + width_between_each_points = (_tmp2_.max - _tmp4_.min) / (_tmp7_ - 1); +#line 381 "static_grid.c" + { + guint8 i = 0U; +#line 77 "../src/static/static_grid.vala" + i = (guint8) 0; +#line 386 "static_grid.c" + { + gboolean _tmp8_ = FALSE; +#line 77 "../src/static/static_grid.vala" + _tmp8_ = TRUE; +#line 77 "../src/static/static_grid.vala" + while (TRUE) { +#line 393 "static_grid.c" + GeeArrayList* _tmp10_; + gint _tmp11_; + gint _tmp12_; + gchar* category = NULL; + GeeArrayList* _tmp13_; + gpointer _tmp14_; + gboolean _tmp15_ = FALSE; + LiveChartXAxis* _tmp16_; + gboolean _tmp17_; + gboolean _tmp18_; +#line 77 "../src/static/static_grid.vala" + if (!_tmp8_) { +#line 406 "static_grid.c" + guint8 _tmp9_; +#line 77 "../src/static/static_grid.vala" + _tmp9_ = i; +#line 77 "../src/static/static_grid.vala" + i = _tmp9_ + 1; +#line 412 "static_grid.c" + } +#line 77 "../src/static/static_grid.vala" + _tmp8_ = FALSE; +#line 77 "../src/static/static_grid.vala" + _tmp10_ = config->categories; +#line 77 "../src/static/static_grid.vala" + _tmp11_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp10_); +#line 77 "../src/static/static_grid.vala" + _tmp12_ = _tmp11_; +#line 77 "../src/static/static_grid.vala" + if (!(((gint) i) < _tmp12_)) { +#line 77 "../src/static/static_grid.vala" + break; +#line 426 "static_grid.c" + } +#line 78 "../src/static/static_grid.vala" + _tmp13_ = config->categories; +#line 78 "../src/static/static_grid.vala" + _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp13_, (gint) i); +#line 78 "../src/static/static_grid.vala" + category = (gchar*) _tmp14_; +#line 79 "../src/static/static_grid.vala" + _tmp16_ = config->x_axis; +#line 79 "../src/static/static_grid.vala" + _tmp17_ = live_chart_xaxis_get_visible (_tmp16_); +#line 79 "../src/static/static_grid.vala" + _tmp18_ = _tmp17_; +#line 79 "../src/static/static_grid.vala" + if (_tmp18_) { +#line 442 "static_grid.c" + LiveChartXAxis* _tmp19_; + LiveChartLabels* _tmp20_; + gboolean _tmp21_; + gboolean _tmp22_; +#line 79 "../src/static/static_grid.vala" + _tmp19_ = config->x_axis; +#line 79 "../src/static/static_grid.vala" + _tmp20_ = _tmp19_->labels; +#line 79 "../src/static/static_grid.vala" + _tmp21_ = live_chart_labels_get_visible (_tmp20_); +#line 79 "../src/static/static_grid.vala" + _tmp22_ = _tmp21_; +#line 79 "../src/static/static_grid.vala" + _tmp15_ = _tmp22_; +#line 457 "static_grid.c" + } else { +#line 79 "../src/static/static_grid.vala" + _tmp15_ = FALSE; +#line 461 "static_grid.c" + } +#line 79 "../src/static/static_grid.vala" + if (_tmp15_) { +#line 465 "static_grid.c" + LiveChartXAxis* _tmp23_; + LiveChartLabels* _tmp24_; + LiveChartFont* _tmp25_; + LiveChartFont* _tmp26_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp27_; + cairo_text_extents_t _tmp28_ = {0}; + const gchar* _tmp29_; + cairo_text_extents_t _tmp30_; + gint _tmp31_; + gint _tmp32_; + LiveChartPadding _tmp33_; + LiveChartXAxis* _tmp34_; + LiveChartLabels* _tmp35_; + cairo_text_extents_t _tmp36_ = {0}; + cairo_text_extents_t _tmp37_; + cairo_text_extents_t _tmp38_; + LiveChartBoundaries _tmp39_; + LiveChartBoundary _tmp40_; + gint _tmp41_; + gint _tmp42_; + LiveChartPadding _tmp43_; + LiveChartXAxis* _tmp44_; + LiveChartLabels* _tmp45_; + cairo_text_extents_t _tmp46_ = {0}; + cairo_text_extents_t _tmp47_; + const gchar* _tmp48_; +#line 80 "../src/static/static_grid.vala" + _tmp23_ = config->x_axis; +#line 80 "../src/static/static_grid.vala" + _tmp24_ = _tmp23_->labels; +#line 80 "../src/static/static_grid.vala" + _tmp25_ = live_chart_labels_get_font (_tmp24_); +#line 80 "../src/static/static_grid.vala" + _tmp26_ = _tmp25_; +#line 80 "../src/static/static_grid.vala" + live_chart_font_configure (_tmp26_, ctx); +#line 84 "../src/static/static_grid.vala" + _tmp27_ = category; +#line 84 "../src/static/static_grid.vala" + cairo_text_extents (ctx, _tmp27_, &_tmp28_); +#line 84 "../src/static/static_grid.vala" + extents = _tmp28_; +#line 85 "../src/static/static_grid.vala" + _tmp29_ = category; +#line 85 "../src/static/static_grid.vala" + _tmp30_ = extents; +#line 85 "../src/static/static_grid.vala" + _tmp31_ = live_chart_config_get_height (config); +#line 85 "../src/static/static_grid.vala" + _tmp32_ = _tmp31_; +#line 85 "../src/static/static_grid.vala" + _tmp33_ = config->padding; +#line 85 "../src/static/static_grid.vala" + _tmp34_ = config->x_axis; +#line 85 "../src/static/static_grid.vala" + _tmp35_ = _tmp34_->labels; +#line 85 "../src/static/static_grid.vala" + live_chart_labels_get_extents (_tmp35_, &_tmp36_); +#line 85 "../src/static/static_grid.vala" + _tmp37_ = _tmp36_; +#line 85 "../src/static/static_grid.vala" + g_message ("static_grid.vala:85: Display %s at %f,%f", _tmp29_, ((width_between_each_points + 0.5) - (_tmp30_.width / 2)) * i, (((0.5 + _tmp32_) - _tmp33_.bottom) + _tmp37_.height) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 86 "../src/static/static_grid.vala" + _tmp38_ = extents; +#line 86 "../src/static/static_grid.vala" + _tmp39_ = boundaries; +#line 86 "../src/static/static_grid.vala" + _tmp40_ = _tmp39_.x; +#line 86 "../src/static/static_grid.vala" + _tmp41_ = live_chart_config_get_height (config); +#line 86 "../src/static/static_grid.vala" + _tmp42_ = _tmp41_; +#line 86 "../src/static/static_grid.vala" + _tmp43_ = config->padding; +#line 86 "../src/static/static_grid.vala" + _tmp44_ = config->x_axis; +#line 86 "../src/static/static_grid.vala" + _tmp45_ = _tmp44_->labels; +#line 86 "../src/static/static_grid.vala" + live_chart_labels_get_extents (_tmp45_, &_tmp46_); +#line 86 "../src/static/static_grid.vala" + _tmp47_ = _tmp46_; +#line 86 "../src/static/static_grid.vala" + cairo_move_to (ctx, (((width_between_each_points * i) + 0.5) - (_tmp38_.width / 2)) + _tmp40_.min, (((0.5 + _tmp42_) - _tmp43_.bottom) + _tmp47_.height) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 87 "../src/static/static_grid.vala" + _tmp48_ = category; +#line 87 "../src/static/static_grid.vala" + cairo_show_text (ctx, _tmp48_); +#line 88 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 557 "static_grid.c" + } +#line 77 "../src/static/static_grid.vala" + _g_free0 (category); +#line 561 "static_grid.c" + } + } + } +} + +void +live_chart_static_static_grid_render_hgrid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; +#line 117 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 117 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 117 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 119 "../src/static/static_grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 119 "../src/static/static_grid.vala" + boundaries = _tmp0_; +#line 584 "static_grid.c" + { + GeeList* _position_list = NULL; + LiveChartYAxis* _tmp1_; + LiveChartTicks _tmp2_; + GeeList* _tmp3_; + gint _position_size = 0; + GeeList* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gint _position_index = 0; +#line 120 "../src/static/static_grid.vala" + _tmp1_ = config->y_axis; +#line 120 "../src/static/static_grid.vala" + _tmp2_ = _tmp1_->ticks; +#line 120 "../src/static/static_grid.vala" + _tmp3_ = _tmp2_.values; +#line 120 "../src/static/static_grid.vala" + _position_list = _tmp3_; +#line 120 "../src/static/static_grid.vala" + _tmp4_ = _position_list; +#line 120 "../src/static/static_grid.vala" + _tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_); +#line 120 "../src/static/static_grid.vala" + _tmp6_ = _tmp5_; +#line 120 "../src/static/static_grid.vala" + _position_size = _tmp6_; +#line 120 "../src/static/static_grid.vala" + _position_index = -1; +#line 120 "../src/static/static_grid.vala" + while (TRUE) { +#line 615 "static_grid.c" + gint _tmp7_; + gint _tmp8_; + gfloat position = 0.0F; + GeeList* _tmp9_; + gpointer _tmp10_; + gfloat* _tmp11_; + gfloat _tmp12_; + gdouble y = 0.0; + LiveChartBoundaries _tmp13_; + LiveChartBoundaries _tmp14_; + LiveChartBoundary _tmp15_; + LiveChartYAxis* _tmp16_; + LiveChartBoundaries _tmp17_; + LiveChartBoundary _tmp18_; + LiveChartYAxis* _tmp19_; + LiveChartPath* _tmp20_; + gboolean _tmp21_; + gboolean _tmp22_; + gboolean _tmp29_ = FALSE; + LiveChartYAxis* _tmp30_; + gboolean _tmp31_; + gboolean _tmp32_; +#line 120 "../src/static/static_grid.vala" + _position_index = _position_index + 1; +#line 120 "../src/static/static_grid.vala" + _tmp7_ = _position_index; +#line 120 "../src/static/static_grid.vala" + _tmp8_ = _position_size; +#line 120 "../src/static/static_grid.vala" + if (!(_tmp7_ < _tmp8_)) { +#line 120 "../src/static/static_grid.vala" + break; +#line 648 "static_grid.c" + } +#line 120 "../src/static/static_grid.vala" + _tmp9_ = _position_list; +#line 120 "../src/static/static_grid.vala" + _tmp10_ = gee_list_get (_tmp9_, _position_index); +#line 120 "../src/static/static_grid.vala" + _tmp11_ = (gfloat*) _tmp10_; +#line 120 "../src/static/static_grid.vala" + _tmp12_ = *_tmp11_; +#line 120 "../src/static/static_grid.vala" + _g_free0 (_tmp11_); +#line 120 "../src/static/static_grid.vala" + position = _tmp12_; +#line 122 "../src/static/static_grid.vala" + _tmp13_ = boundaries; +#line 122 "../src/static/static_grid.vala" + _tmp14_ = boundaries; +#line 122 "../src/static/static_grid.vala" + _tmp15_ = _tmp14_.y; +#line 122 "../src/static/static_grid.vala" + _tmp16_ = config->y_axis; +#line 122 "../src/static/static_grid.vala" + y = (_tmp13_.height + _tmp15_.min) - (position * live_chart_yaxis_get_ratio (_tmp16_)); +#line 123 "../src/static/static_grid.vala" + _tmp17_ = boundaries; +#line 123 "../src/static/static_grid.vala" + _tmp18_ = _tmp17_.y; +#line 123 "../src/static/static_grid.vala" + if (y < ((gdouble) _tmp18_.min)) { +#line 124 "../src/static/static_grid.vala" + break; +#line 680 "static_grid.c" + } +#line 126 "../src/static/static_grid.vala" + _tmp19_ = config->y_axis; +#line 126 "../src/static/static_grid.vala" + _tmp20_ = _tmp19_->lines; +#line 126 "../src/static/static_grid.vala" + _tmp21_ = live_chart_path_get_visible (_tmp20_); +#line 126 "../src/static/static_grid.vala" + _tmp22_ = _tmp21_; +#line 126 "../src/static/static_grid.vala" + if (_tmp22_) { +#line 692 "static_grid.c" + LiveChartYAxis* _tmp23_; + LiveChartPath* _tmp24_; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartBoundaries _tmp27_; + LiveChartBoundary _tmp28_; +#line 127 "../src/static/static_grid.vala" + _tmp23_ = config->y_axis; +#line 127 "../src/static/static_grid.vala" + _tmp24_ = _tmp23_->lines; +#line 127 "../src/static/static_grid.vala" + live_chart_path_configure (_tmp24_, ctx); +#line 128 "../src/static/static_grid.vala" + _tmp25_ = boundaries; +#line 128 "../src/static/static_grid.vala" + _tmp26_ = _tmp25_.x; +#line 128 "../src/static/static_grid.vala" + cairo_move_to (ctx, 0.5 + _tmp26_.max, ((gint) y) + 0.5); +#line 129 "../src/static/static_grid.vala" + _tmp27_ = boundaries; +#line 129 "../src/static/static_grid.vala" + _tmp28_ = _tmp27_.x; +#line 129 "../src/static/static_grid.vala" + cairo_line_to (ctx, _tmp28_.min + 0.5, ((gint) y) + 0.5); +#line 130 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 131 "../src/static/static_grid.vala" + live_chart_static_static_grid_restore (self, ctx); +#line 721 "static_grid.c" + } +#line 135 "../src/static/static_grid.vala" + _tmp30_ = config->y_axis; +#line 135 "../src/static/static_grid.vala" + _tmp31_ = live_chart_yaxis_get_visible (_tmp30_); +#line 135 "../src/static/static_grid.vala" + _tmp32_ = _tmp31_; +#line 135 "../src/static/static_grid.vala" + if (_tmp32_) { +#line 731 "static_grid.c" + LiveChartYAxis* _tmp33_; + LiveChartLabels* _tmp34_; + gboolean _tmp35_; + gboolean _tmp36_; +#line 135 "../src/static/static_grid.vala" + _tmp33_ = config->y_axis; +#line 135 "../src/static/static_grid.vala" + _tmp34_ = _tmp33_->labels; +#line 135 "../src/static/static_grid.vala" + _tmp35_ = live_chart_labels_get_visible (_tmp34_); +#line 135 "../src/static/static_grid.vala" + _tmp36_ = _tmp35_; +#line 135 "../src/static/static_grid.vala" + _tmp29_ = _tmp36_; +#line 746 "static_grid.c" + } else { +#line 135 "../src/static/static_grid.vala" + _tmp29_ = FALSE; +#line 750 "static_grid.c" + } +#line 135 "../src/static/static_grid.vala" + if (_tmp29_) { +#line 754 "static_grid.c" + LiveChartYAxis* _tmp37_; + LiveChartLabels* _tmp38_; + LiveChartFont* _tmp39_; + LiveChartFont* _tmp40_; + gchar* value = NULL; + LiveChartYAxis* _tmp41_; + const gchar* _tmp42_; + const gchar* _tmp43_; + gchar* _tmp44_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp45_; + cairo_text_extents_t _tmp46_ = {0}; + LiveChartBoundaries _tmp47_; + LiveChartBoundary _tmp48_; + cairo_text_extents_t _tmp49_; + cairo_text_extents_t _tmp50_; + const gchar* _tmp51_; +#line 136 "../src/static/static_grid.vala" + _tmp37_ = config->y_axis; +#line 136 "../src/static/static_grid.vala" + _tmp38_ = _tmp37_->labels; +#line 136 "../src/static/static_grid.vala" + _tmp39_ = live_chart_labels_get_font (_tmp38_); +#line 136 "../src/static/static_grid.vala" + _tmp40_ = _tmp39_; +#line 136 "../src/static/static_grid.vala" + live_chart_font_configure (_tmp40_, ctx); +#line 137 "../src/static/static_grid.vala" + _tmp41_ = config->y_axis; +#line 137 "../src/static/static_grid.vala" + _tmp42_ = live_chart_yaxis_get_unit (_tmp41_); +#line 137 "../src/static/static_grid.vala" + _tmp43_ = _tmp42_; +#line 137 "../src/static/static_grid.vala" + _tmp44_ = live_chart_format_for_y_axis (_tmp43_, position); +#line 137 "../src/static/static_grid.vala" + value = _tmp44_; +#line 140 "../src/static/static_grid.vala" + _tmp45_ = value; +#line 140 "../src/static/static_grid.vala" + cairo_text_extents (ctx, _tmp45_, &_tmp46_); +#line 140 "../src/static/static_grid.vala" + extents = _tmp46_; +#line 141 "../src/static/static_grid.vala" + _tmp47_ = boundaries; +#line 141 "../src/static/static_grid.vala" + _tmp48_ = _tmp47_.x; +#line 141 "../src/static/static_grid.vala" + _tmp49_ = extents; +#line 141 "../src/static/static_grid.vala" + _tmp50_ = extents; +#line 141 "../src/static/static_grid.vala" + cairo_move_to (ctx, (_tmp48_.min - _tmp49_.width) - 5, (y + (_tmp50_.height / 2)) + 0.5); +#line 142 "../src/static/static_grid.vala" + _tmp51_ = value; +#line 142 "../src/static/static_grid.vala" + cairo_show_text (ctx, _tmp51_); +#line 143 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 135 "../src/static/static_grid.vala" + _g_free0 (value); +#line 816 "static_grid.c" + } + } + } +} + +void +live_chart_static_static_grid_update_bounding_box (LiveChartStaticStaticGrid* self, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartBoundaries _tmp3_; + LiveChartBoundary _tmp4_; + LiveChartBoundaries _tmp5_; + LiveChartBoundary _tmp6_; + LiveChartBoundaries _tmp7_; + LiveChartBoundary _tmp8_; + LiveChartBoundaries _tmp9_; + LiveChartBoundary _tmp10_; + LiveChartBoundaries _tmp11_; + LiveChartBoundary _tmp12_; + LiveChartBoundingBox _tmp13_ = {0}; +#line 148 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 148 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 149 "../src/static/static_grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 149 "../src/static/static_grid.vala" + boundaries = _tmp0_; +#line 150 "../src/static/static_grid.vala" + _tmp1_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp2_ = _tmp1_.x; +#line 150 "../src/static/static_grid.vala" + _tmp3_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp4_ = _tmp3_.y; +#line 150 "../src/static/static_grid.vala" + _tmp5_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp6_ = _tmp5_.x; +#line 150 "../src/static/static_grid.vala" + _tmp7_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp8_ = _tmp7_.x; +#line 150 "../src/static/static_grid.vala" + _tmp9_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp10_ = _tmp9_.y; +#line 150 "../src/static/static_grid.vala" + _tmp11_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp12_ = _tmp11_.y; +#line 150 "../src/static/static_grid.vala" + memset (&_tmp13_, 0, sizeof (LiveChartBoundingBox)); +#line 150 "../src/static/static_grid.vala" + _tmp13_.x = (gdouble) _tmp2_.min; +#line 150 "../src/static/static_grid.vala" + _tmp13_.y = (gdouble) _tmp4_.min; +#line 150 "../src/static/static_grid.vala" + _tmp13_.width = (gdouble) (_tmp6_.max - _tmp8_.min); +#line 150 "../src/static/static_grid.vala" + _tmp13_.height = (gdouble) ((_tmp10_.max - _tmp12_.min) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 150 "../src/static/static_grid.vala" + self->bounding_box = _tmp13_; +#line 885 "static_grid.c" +} + +void +live_chart_static_static_grid_debug (LiveChartStaticStaticGrid* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 158 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 158 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 159 "../src/static/static_grid.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 159 "../src/static/static_grid.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 159 "../src/static/static_grid.vala" + debug = _tmp1_; +#line 160 "../src/static/static_grid.vala" + _tmp2_ = debug; +#line 160 "../src/static/static_grid.vala" + if (_tmp2_ != NULL) { +#line 910 "static_grid.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 161 "../src/static/static_grid.vala" + _tmp3_ = self->bounding_box; +#line 161 "../src/static/static_grid.vala" + _tmp4_ = self->bounding_box; +#line 161 "../src/static/static_grid.vala" + _tmp5_ = self->bounding_box; +#line 161 "../src/static/static_grid.vala" + _tmp6_ = self->bounding_box; +#line 161 "../src/static/static_grid.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 162 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 927 "static_grid.c" + } +#line 158 "../src/static/static_grid.vala" + _g_free0 (debug); +#line 931 "static_grid.c" +} + +LiveChartStaticStaticGrid* +live_chart_static_static_grid_construct (GType object_type) +{ + LiveChartStaticStaticGrid * self = NULL; +#line 6 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) g_object_new (object_type, NULL); +#line 6 "../src/static/static_grid.vala" + return self; +#line 942 "static_grid.c" +} + +LiveChartStaticStaticGrid* +live_chart_static_static_grid_new (void) +{ +#line 6 "../src/static/static_grid.vala" + return live_chart_static_static_grid_construct (LIVE_CHART_STATIC_TYPE_STATIC_GRID); +#line 950 "static_grid.c" +} + +static gboolean +live_chart_static_static_grid_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartStaticStaticGrid* self; +#line 15 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) base; +#line 15 "../src/static/static_grid.vala" + result = self->priv->_visible; +#line 15 "../src/static/static_grid.vala" + return result; +#line 964 "static_grid.c" +} + +static void +live_chart_static_static_grid_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartStaticStaticGrid* self; + gboolean old_value; +#line 15 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) base; +#line 15 "../src/static/static_grid.vala" + old_value = live_chart_static_static_grid_real_get_visible (base); +#line 15 "../src/static/static_grid.vala" + if (old_value != value) { +#line 15 "../src/static/static_grid.vala" + self->priv->_visible = value; +#line 15 "../src/static/static_grid.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY]); +#line 983 "static_grid.c" + } +} + +void +live_chart_static_static_grid_get_main_color (LiveChartStaticStaticGrid* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 17 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 17 "../src/static/static_grid.vala" + _tmp0_ = self->priv->_main_color; +#line 17 "../src/static/static_grid.vala" + *result = _tmp0_; +#line 17 "../src/static/static_grid.vala" + return; +#line 1000 "static_grid.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 17 "../src/static/static_grid.vala" + if (s1 == s2) { +#line 17 "../src/static/static_grid.vala" + return TRUE; +#line 1011 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1 == NULL) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1017 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s2 == NULL) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1023 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1->red != s2->red) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1029 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1->green != s2->green) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1035 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1->blue != s2->blue) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1041 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1->alpha != s2->alpha) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1047 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + return TRUE; +#line 1051 "static_grid.c" +} + +void +live_chart_static_static_grid_set_main_color (LiveChartStaticStaticGrid* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 17 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 17 "../src/static/static_grid.vala" + live_chart_static_static_grid_get_main_color (self, &old_value); +#line 17 "../src/static/static_grid.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 1065 "static_grid.c" + GdkRGBA _tmp0_; +#line 17 "../src/static/static_grid.vala" + _tmp0_ = *value; +#line 17 "../src/static/static_grid.vala" + self->priv->_main_color = _tmp0_; +#line 17 "../src/static/static_grid.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY]); +#line 1073 "static_grid.c" + } +} + +static void +live_chart_static_static_grid_class_init (LiveChartStaticStaticGridClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_grid.vala" + live_chart_static_static_grid_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_grid.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticGrid_private_offset); +#line 6 "../src/static/static_grid.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_grid_get_property; +#line 6 "../src/static/static_grid.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_grid_set_property; +#line 6 "../src/static/static_grid.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_grid_finalize; +#line 6 "../src/static/static_grid.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY, live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_grid.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY, live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 1095 "static_grid.c" +} + +static void +live_chart_static_static_grid_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 6 "../src/static/static_grid.vala" + live_chart_static_static_grid_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/static/static_grid.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_static_static_grid_real_draw; +#line 6 "../src/static/static_grid.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_static_static_grid_real_get_bounding_box; +#line 6 "../src/static/static_grid.vala" + iface->get_visible = live_chart_static_static_grid_real_get_visible; +#line 6 "../src/static/static_grid.vala" + iface->set_visible = live_chart_static_static_grid_real_set_visible; +#line 1112 "static_grid.c" +} + +static void +live_chart_static_static_grid_instance_init (LiveChartStaticStaticGrid * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; + GdkRGBA _tmp1_ = {0}; +#line 6 "../src/static/static_grid.vala" + self->priv = live_chart_static_static_grid_get_instance_private (self); +#line 8 "../src/static/static_grid.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 8 "../src/static/static_grid.vala" + _tmp0_.x = (gdouble) 0; +#line 8 "../src/static/static_grid.vala" + _tmp0_.y = (gdouble) 0; +#line 8 "../src/static/static_grid.vala" + _tmp0_.width = (gdouble) 0; +#line 8 "../src/static/static_grid.vala" + _tmp0_.height = (gdouble) 0; +#line 8 "../src/static/static_grid.vala" + self->bounding_box = _tmp0_; +#line 15 "../src/static/static_grid.vala" + self->priv->_visible = TRUE; +#line 16 "../src/static/static_grid.vala" + memset (&_tmp1_, 0, sizeof (GdkRGBA)); +#line 16 "../src/static/static_grid.vala" + _tmp1_.red = 0.4; +#line 16 "../src/static/static_grid.vala" + _tmp1_.green = 0.4; +#line 16 "../src/static/static_grid.vala" + _tmp1_.blue = 0.4; +#line 16 "../src/static/static_grid.vala" + _tmp1_.alpha = 1.0; +#line 16 "../src/static/static_grid.vala" + self->priv->_main_color = _tmp1_; +#line 1149 "static_grid.c" +} + +static void +live_chart_static_static_grid_finalize (GObject * obj) +{ + LiveChartStaticStaticGrid * self; +#line 6 "../src/static/static_grid.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGrid); +#line 6 "../src/static/static_grid.vala" + G_OBJECT_CLASS (live_chart_static_static_grid_parent_class)->finalize (obj); +#line 1160 "static_grid.c" +} + +static GType +live_chart_static_static_grid_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticGridClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_grid_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticGrid), 0, (GInstanceInitFunc) live_chart_static_static_grid_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_static_static_grid_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_static_static_grid_type_id; + live_chart_static_static_grid_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticGrid", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_static_static_grid_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartStaticStaticGrid_private_offset = g_type_add_instance_private (live_chart_static_static_grid_type_id, sizeof (LiveChartStaticStaticGridPrivate)); + return live_chart_static_static_grid_type_id; +} + +GType +live_chart_static_static_grid_get_type (void) +{ + static volatile gsize live_chart_static_static_grid_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_grid_type_id__once)) { + GType live_chart_static_static_grid_type_id; + live_chart_static_static_grid_type_id = live_chart_static_static_grid_get_type_once (); + g_once_init_leave (&live_chart_static_static_grid_type_id__once, live_chart_static_static_grid_type_id); + } + return live_chart_static_static_grid_type_id__once; +} + +static void +_vala_live_chart_static_static_grid_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticGrid * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGrid); +#line 6 "../src/static/static_grid.vala" + switch (property_id) { +#line 6 "../src/static/static_grid.vala" + case LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY: +#line 6 "../src/static/static_grid.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 6 "../src/static/static_grid.vala" + break; +#line 6 "../src/static/static_grid.vala" + case LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY: +#line 1205 "static_grid.c" + { + GdkRGBA boxed; +#line 6 "../src/static/static_grid.vala" + live_chart_static_static_grid_get_main_color (self, &boxed); +#line 6 "../src/static/static_grid.vala" + g_value_set_boxed (value, &boxed); +#line 1212 "static_grid.c" + } +#line 6 "../src/static/static_grid.vala" + break; +#line 1216 "static_grid.c" + default: +#line 6 "../src/static/static_grid.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_grid.vala" + break; +#line 1222 "static_grid.c" + } +} + +static void +_vala_live_chart_static_static_grid_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticGrid * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGrid); +#line 6 "../src/static/static_grid.vala" + switch (property_id) { +#line 6 "../src/static/static_grid.vala" + case LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY: +#line 6 "../src/static/static_grid.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 6 "../src/static/static_grid.vala" + break; +#line 6 "../src/static/static_grid.vala" + case LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY: +#line 6 "../src/static/static_grid.vala" + live_chart_static_static_grid_set_main_color (self, g_value_get_boxed (value)); +#line 6 "../src/static/static_grid.vala" + break; +#line 1248 "static_grid.c" + default: +#line 6 "../src/static/static_grid.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_grid.vala" + break; +#line 1254 "static_grid.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/static/static_line.c b/iPDC/lib/liblivechart_static.a.p/static/static_line.c new file mode 100644 index 0000000..8cb1c79 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/static/static_line.c @@ -0,0 +1,404 @@ +/* static_line.c generated by valac 0.56.0, the Vala compiler + * generated from static_line.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_LINE_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_line_properties[LIVE_CHART_STATIC_STATIC_LINE_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +static gpointer live_chart_static_static_line_parent_class = NULL; + +static void live_chart_static_static_line_real_draw (LiveChartStaticStaticSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_static_static_line_update_bounding_box (LiveChartStaticStaticLine* self, + LiveChartStaticStaticPoints* points, + LiveChartConfig* config); +static GType live_chart_static_static_line_get_type_once (void); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 9 "../src/static/static_line.vala" + return self ? g_object_ref (self) : NULL; +#line 38 "static_line.c" +} + +LiveChartStaticStaticLine* +live_chart_static_static_line_construct (GType object_type, + LiveChartStaticStaticValues* values) +{ + LiveChartStaticStaticLine * self = NULL; + LiveChartStaticStaticValues* _tmp0_; +#line 7 "../src/static/static_line.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 8 "../src/static/static_line.vala" + self = (LiveChartStaticStaticLine*) live_chart_static_static_serie_renderer_construct (object_type); +#line 9 "../src/static/static_line.vala" + _tmp0_ = _g_object_ref0 (values); +#line 9 "../src/static/static_line.vala" + _g_object_unref0 (((LiveChartStaticStaticSerieRenderer*) self)->values); +#line 9 "../src/static/static_line.vala" + ((LiveChartStaticStaticSerieRenderer*) self)->values = _tmp0_; +#line 7 "../src/static/static_line.vala" + return self; +#line 59 "static_line.c" +} + +LiveChartStaticStaticLine* +live_chart_static_static_line_new (LiveChartStaticStaticValues* values) +{ +#line 7 "../src/static/static_line.vala" + return live_chart_static_static_line_construct (LIVE_CHART_STATIC_TYPE_STATIC_LINE, values); +#line 67 "static_line.c" +} + +static void +live_chart_static_static_line_real_draw (LiveChartStaticStaticSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartStaticStaticLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 12 "../src/static/static_line.vala" + self = (LiveChartStaticStaticLine*) base; +#line 12 "../src/static/static_line.vala" + g_return_if_fail (ctx != NULL); +#line 12 "../src/static/static_line.vala" + g_return_if_fail (config != NULL); +#line 13 "../src/static/static_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 13 "../src/static/static_line.vala" + _tmp1_ = _tmp0_; +#line 13 "../src/static/static_line.vala" + if (_tmp1_) { +#line 90 "static_line.c" + LiveChartStaticStaticPoints* points = NULL; + LiveChartStaticStaticValues* _tmp2_; + LiveChartStaticStaticPoints* _tmp3_; + LiveChartStaticStaticPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 14 "../src/static/static_line.vala" + _tmp2_ = ((LiveChartStaticStaticSerieRenderer*) self)->values; +#line 14 "../src/static/static_line.vala" + _tmp3_ = live_chart_static_static_points_create (_tmp2_, config); +#line 14 "../src/static/static_line.vala" + points = _tmp3_; +#line 15 "../src/static/static_line.vala" + _tmp4_ = points; +#line 15 "../src/static/static_line.vala" + _tmp5_ = live_chart_static_static_points_get_size (_tmp4_); +#line 15 "../src/static/static_line.vala" + _tmp6_ = _tmp5_; +#line 15 "../src/static/static_line.vala" + if (_tmp6_ > 0) { +#line 111 "static_line.c" + LiveChartStaticStaticPoints* _tmp7_; +#line 16 "../src/static/static_line.vala" + _tmp7_ = points; +#line 16 "../src/static/static_line.vala" + live_chart_static_static_line_draw_line (self, _tmp7_, ctx, config); +#line 17 "../src/static/static_line.vala" + cairo_stroke (ctx); +#line 119 "static_line.c" + } +#line 13 "../src/static/static_line.vala" + _g_object_unref0 (points); +#line 123 "static_line.c" + } +} + +void +live_chart_static_static_line_draw_line (LiveChartStaticStaticLine* self, + LiveChartStaticStaticPoints* points, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartPath* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPoint first_point = {0}; + LiveChartPoint _tmp2_ = {0}; + LiveChartPoint _tmp3_; + LiveChartPoint _tmp4_; + LiveChartPoint _tmp5_; + LiveChartPoint _tmp6_; + gchar* _tmp7_; + gchar* _tmp8_; +#line 22 "../src/static/static_line.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/static/static_line.vala" + g_return_if_fail (points != NULL); +#line 22 "../src/static/static_line.vala" + g_return_if_fail (ctx != NULL); +#line 22 "../src/static/static_line.vala" + g_return_if_fail (config != NULL); +#line 23 "../src/static/static_line.vala" + _tmp0_ = live_chart_static_static_serie_renderer_get_line ((LiveChartStaticStaticSerieRenderer*) self); +#line 23 "../src/static/static_line.vala" + _tmp1_ = _tmp0_; +#line 23 "../src/static/static_line.vala" + live_chart_path_configure (_tmp1_, ctx); +#line 25 "../src/static/static_line.vala" + live_chart_static_static_points_first (points, &_tmp2_); +#line 25 "../src/static/static_line.vala" + first_point = _tmp2_; +#line 27 "../src/static/static_line.vala" + live_chart_static_static_line_update_bounding_box (self, points, config); +#line 28 "../src/static/static_line.vala" + live_chart_static_static_serie_renderer_debug ((LiveChartStaticStaticSerieRenderer*) self, ctx); +#line 30 "../src/static/static_line.vala" + _tmp3_ = first_point; +#line 30 "../src/static/static_line.vala" + _tmp4_ = first_point; +#line 30 "../src/static/static_line.vala" + cairo_move_to (ctx, _tmp3_.x, _tmp4_.y); +#line 31 "../src/static/static_line.vala" + _tmp5_ = first_point; +#line 31 "../src/static/static_line.vala" + _tmp6_ = first_point; +#line 31 "../src/static/static_line.vala" + _tmp7_ = g_strdup_printf ("Draw point %f, %f", _tmp5_.x, _tmp6_.y); +#line 31 "../src/static/static_line.vala" + _tmp8_ = _tmp7_; +#line 31 "../src/static/static_line.vala" + g_message ("static_line.vala:31: %s", _tmp8_); +#line 31 "../src/static/static_line.vala" + _g_free0 (_tmp8_); +#line 183 "static_line.c" + { + gint pos = 0; +#line 32 "../src/static/static_line.vala" + pos = 0; +#line 188 "static_line.c" + { + gboolean _tmp9_ = FALSE; +#line 32 "../src/static/static_line.vala" + _tmp9_ = TRUE; +#line 32 "../src/static/static_line.vala" + while (TRUE) { +#line 195 "static_line.c" + gint _tmp11_; + gint _tmp12_; + LiveChartPoint current_point = {0}; + LiveChartPoint _tmp13_ = {0}; + LiveChartPoint next_point = {0}; + LiveChartPoint _tmp14_ = {0}; + LiveChartPoint _tmp15_; + LiveChartPoint _tmp18_; + LiveChartPoint _tmp19_; + gchar* _tmp20_; + gchar* _tmp21_; + LiveChartPoint _tmp22_; + LiveChartPoint _tmp23_; +#line 32 "../src/static/static_line.vala" + if (!_tmp9_) { +#line 211 "static_line.c" + gint _tmp10_; +#line 32 "../src/static/static_line.vala" + _tmp10_ = pos; +#line 32 "../src/static/static_line.vala" + pos = _tmp10_ + 1; +#line 217 "static_line.c" + } +#line 32 "../src/static/static_line.vala" + _tmp9_ = FALSE; +#line 32 "../src/static/static_line.vala" + _tmp11_ = live_chart_static_static_points_get_size (points); +#line 32 "../src/static/static_line.vala" + _tmp12_ = _tmp11_; +#line 32 "../src/static/static_line.vala" + if (!(pos < (_tmp12_ - 1))) { +#line 32 "../src/static/static_line.vala" + break; +#line 229 "static_line.c" + } +#line 33 "../src/static/static_line.vala" + live_chart_static_static_points_get (points, pos, &_tmp13_); +#line 33 "../src/static/static_line.vala" + current_point = _tmp13_; +#line 34 "../src/static/static_line.vala" + live_chart_static_static_points_after (points, pos, &_tmp14_); +#line 34 "../src/static/static_line.vala" + next_point = _tmp14_; +#line 35 "../src/static/static_line.vala" + _tmp15_ = current_point; +#line 35 "../src/static/static_line.vala" + if (live_chart_static_static_serie_renderer_is_out_of_area ((LiveChartStaticStaticSerieRenderer*) self, &_tmp15_)) { +#line 243 "static_line.c" + LiveChartPoint _tmp16_; + LiveChartPoint _tmp17_; +#line 36 "../src/static/static_line.vala" + g_message ("static_line.vala:36: #########################Out of area"); +#line 37 "../src/static/static_line.vala" + _tmp16_ = current_point; +#line 37 "../src/static/static_line.vala" + _tmp17_ = current_point; +#line 37 "../src/static/static_line.vala" + cairo_move_to (ctx, _tmp16_.x, _tmp17_.y); +#line 38 "../src/static/static_line.vala" + continue; +#line 256 "static_line.c" + } +#line 40 "../src/static/static_line.vala" + _tmp18_ = next_point; +#line 40 "../src/static/static_line.vala" + _tmp19_ = next_point; +#line 40 "../src/static/static_line.vala" + _tmp20_ = g_strdup_printf ("Draw point %f, %f as pos %d", _tmp18_.x, _tmp19_.y, pos); +#line 40 "../src/static/static_line.vala" + _tmp21_ = _tmp20_; +#line 40 "../src/static/static_line.vala" + g_message ("static_line.vala:40: %s", _tmp21_); +#line 40 "../src/static/static_line.vala" + _g_free0 (_tmp21_); +#line 41 "../src/static/static_line.vala" + _tmp22_ = next_point; +#line 41 "../src/static/static_line.vala" + _tmp23_ = next_point; +#line 41 "../src/static/static_line.vala" + cairo_line_to (ctx, _tmp22_.x, _tmp23_.y); +#line 276 "static_line.c" + } + } + } +} + +static void +live_chart_static_static_line_update_bounding_box (LiveChartStaticStaticLine* self, + LiveChartStaticStaticPoints* points, + LiveChartConfig* config) +{ + LiveChartPoint _tmp0_ = {0}; + LiveChartBounds* _tmp1_; + LiveChartBounds* _tmp2_; + gdouble _tmp3_; + gdouble _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint _tmp6_ = {0}; + LiveChartBounds* _tmp7_; + LiveChartBounds* _tmp8_; + gdouble _tmp9_; + gdouble _tmp10_; + LiveChartBounds* _tmp11_; + LiveChartBounds* _tmp12_; + gdouble _tmp13_; + gdouble _tmp14_; + LiveChartBoundingBox _tmp15_ = {0}; +#line 45 "../src/static/static_line.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/static/static_line.vala" + g_return_if_fail (points != NULL); +#line 45 "../src/static/static_line.vala" + g_return_if_fail (config != NULL); +#line 46 "../src/static/static_line.vala" + live_chart_static_static_points_first (points, &_tmp0_); +#line 46 "../src/static/static_line.vala" + _tmp1_ = live_chart_static_static_points_get_bounds (points); +#line 46 "../src/static/static_line.vala" + _tmp2_ = _tmp1_; +#line 46 "../src/static/static_line.vala" + _tmp3_ = live_chart_bounds_get_lower (_tmp2_); +#line 46 "../src/static/static_line.vala" + _tmp4_ = _tmp3_; +#line 46 "../src/static/static_line.vala" + live_chart_static_static_points_last (points, &_tmp5_); +#line 46 "../src/static/static_line.vala" + live_chart_static_static_points_first (points, &_tmp6_); +#line 46 "../src/static/static_line.vala" + _tmp7_ = live_chart_static_static_points_get_bounds (points); +#line 46 "../src/static/static_line.vala" + _tmp8_ = _tmp7_; +#line 46 "../src/static/static_line.vala" + _tmp9_ = live_chart_bounds_get_upper (_tmp8_); +#line 46 "../src/static/static_line.vala" + _tmp10_ = _tmp9_; +#line 46 "../src/static/static_line.vala" + _tmp11_ = live_chart_static_static_points_get_bounds (points); +#line 46 "../src/static/static_line.vala" + _tmp12_ = _tmp11_; +#line 46 "../src/static/static_line.vala" + _tmp13_ = live_chart_bounds_get_lower (_tmp12_); +#line 46 "../src/static/static_line.vala" + _tmp14_ = _tmp13_; +#line 46 "../src/static/static_line.vala" + memset (&_tmp15_, 0, sizeof (LiveChartBoundingBox)); +#line 46 "../src/static/static_line.vala" + _tmp15_.x = _tmp0_.x; +#line 46 "../src/static/static_line.vala" + _tmp15_.y = _tmp4_; +#line 46 "../src/static/static_line.vala" + _tmp15_.width = _tmp5_.x - _tmp6_.x; +#line 46 "../src/static/static_line.vala" + _tmp15_.height = _tmp10_ - _tmp14_; +#line 46 "../src/static/static_line.vala" + ((LiveChartStaticStaticSerieRenderer*) self)->bounding_box = _tmp15_; +#line 351 "static_line.c" +} + +static void +live_chart_static_static_line_class_init (LiveChartStaticStaticLineClass * klass, + gpointer klass_data) +{ +#line 5 "../src/static/static_line.vala" + live_chart_static_static_line_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/static/static_line.vala" + ((LiveChartStaticStaticSerieRendererClass *) klass)->draw = (void (*) (LiveChartStaticStaticSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_static_static_line_real_draw; +#line 362 "static_line.c" +} + +static void +live_chart_static_static_line_instance_init (LiveChartStaticStaticLine * self, + gpointer klass) +{ +} + +static GType +live_chart_static_static_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticLine), 0, (GInstanceInitFunc) live_chart_static_static_line_instance_init, NULL }; + GType live_chart_static_static_line_type_id; + live_chart_static_static_line_type_id = g_type_register_static (LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, "LiveChartStaticStaticLine", &g_define_type_info, 0); + return live_chart_static_static_line_type_id; +} + +GType +live_chart_static_static_line_get_type (void) +{ + static volatile gsize live_chart_static_static_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_line_type_id__once)) { + GType live_chart_static_static_line_type_id; + live_chart_static_static_line_type_id = live_chart_static_static_line_get_type_once (); + g_once_init_leave (&live_chart_static_static_line_type_id__once, live_chart_static_static_line_type_id); + } + return live_chart_static_static_line_type_id__once; +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/static/static_points.c b/iPDC/lib/liblivechart_static.a.p/static/static_points.c new file mode 100644 index 0000000..3a1ba40 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/static/static_points.c @@ -0,0 +1,821 @@ +/* static_points.c generated by valac 0.56.0, the Vala compiler + * generated from static_points.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_POINTS_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY, + LIVE_CHART_STATIC_STATIC_POINTS_SIZE_PROPERTY, + LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY, + LIVE_CHART_STATIC_STATIC_POINTS_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_point_free0(var) ((var == NULL) ? NULL : (var = (live_chart_point_free (var), NULL))) +#define _live_chart_static_named_value_free0(var) ((var == NULL) ? NULL : (var = (live_chart_static_named_value_free (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartStaticStaticPointsPrivate { + GeeArrayList* points; + LiveChartBounds* _bounds; + gdouble _realtime_delta; +}; + +static gint LiveChartStaticStaticPoints_private_offset; +static gpointer live_chart_static_static_points_parent_class = NULL; + +static void live_chart_static_static_points_value_to_point (LiveChartStaticNamedValue* current_value, + LiveChartConfig* config, + LiveChartBoundaries* boundaries, + LiveChartPoint* result); +static void live_chart_static_static_points_finalize (GObject * obj); +static GType live_chart_static_static_points_get_type_once (void); +static void _vala_live_chart_static_static_points_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_points_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_points_get_instance_private (LiveChartStaticStaticPoints* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticPoints_private_offset); +} + +LiveChartStaticStaticPoints* +live_chart_static_static_points_construct (GType object_type) +{ + LiveChartStaticStaticPoints * self = NULL; + LiveChartBounds* _tmp0_; + LiveChartBounds* _tmp1_; +#line 13 "../src/static/static_points.vala" + self = (LiveChartStaticStaticPoints*) g_object_new (object_type, NULL); +#line 14 "../src/static/static_points.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 14 "../src/static/static_points.vala" + _tmp1_ = _tmp0_; +#line 14 "../src/static/static_points.vala" + live_chart_static_static_points_set_bounds (self, _tmp1_); +#line 14 "../src/static/static_points.vala" + _g_object_unref0 (_tmp1_); +#line 13 "../src/static/static_points.vala" + return self; +#line 77 "static_points.c" +} + +LiveChartStaticStaticPoints* +live_chart_static_static_points_new (void) +{ +#line 13 "../src/static/static_points.vala" + return live_chart_static_static_points_construct (LIVE_CHART_STATIC_TYPE_STATIC_POINTS); +#line 85 "static_points.c" +} + +void +live_chart_static_static_points_add (LiveChartStaticStaticPoints* self, + LiveChartPoint* point) +{ + LiveChartBounds* _tmp0_; + LiveChartPoint _tmp1_; + GeeArrayList* _tmp2_; + LiveChartPoint _tmp3_; +#line 17 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 17 "../src/static/static_points.vala" + g_return_if_fail (point != NULL); +#line 18 "../src/static/static_points.vala" + _tmp0_ = self->priv->_bounds; +#line 18 "../src/static/static_points.vala" + _tmp1_ = *point; +#line 18 "../src/static/static_points.vala" + live_chart_bounds_update (_tmp0_, _tmp1_.y); +#line 19 "../src/static/static_points.vala" + _tmp2_ = self->priv->points; +#line 19 "../src/static/static_points.vala" + _tmp3_ = *point; +#line 19 "../src/static/static_points.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp2_, &_tmp3_); +#line 112 "static_points.c" +} + +void +live_chart_static_static_points_get (LiveChartStaticStaticPoints* self, + gint at, + LiveChartPoint* result) +{ + GeeArrayList* _tmp0_; + gpointer _tmp1_; + LiveChartPoint* _tmp2_; + LiveChartPoint _tmp3_; +#line 32 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 33 "../src/static/static_points.vala" + _tmp0_ = self->priv->points; +#line 33 "../src/static/static_points.vala" + _tmp1_ = gee_abstract_list_get ((GeeAbstractList*) _tmp0_, at); +#line 33 "../src/static/static_points.vala" + _tmp2_ = (LiveChartPoint*) _tmp1_; +#line 33 "../src/static/static_points.vala" + _tmp3_ = *_tmp2_; +#line 33 "../src/static/static_points.vala" + _live_chart_point_free0 (_tmp2_); +#line 33 "../src/static/static_points.vala" + *result = _tmp3_; +#line 33 "../src/static/static_points.vala" + return; +#line 140 "static_points.c" +} + +void +live_chart_static_static_points_after (LiveChartStaticStaticPoints* self, + gint at, + LiveChartPoint* result) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartPoint _tmp5_ = {0}; +#line 36 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 37 "../src/static/static_points.vala" + _tmp0_ = live_chart_static_static_points_get_size (self); +#line 37 "../src/static/static_points.vala" + _tmp1_ = _tmp0_; +#line 37 "../src/static/static_points.vala" + if ((at + 1) >= _tmp1_) { +#line 159 "static_points.c" + gint _tmp2_; + gint _tmp3_; + LiveChartPoint _tmp4_ = {0}; +#line 37 "../src/static/static_points.vala" + _tmp2_ = live_chart_static_static_points_get_size (self); +#line 37 "../src/static/static_points.vala" + _tmp3_ = _tmp2_; +#line 37 "../src/static/static_points.vala" + live_chart_static_static_points_get (self, _tmp3_ - 1, &_tmp4_); +#line 37 "../src/static/static_points.vala" + *result = _tmp4_; +#line 37 "../src/static/static_points.vala" + return; +#line 173 "static_points.c" + } +#line 38 "../src/static/static_points.vala" + live_chart_static_static_points_get (self, at + 1, &_tmp5_); +#line 38 "../src/static/static_points.vala" + *result = _tmp5_; +#line 38 "../src/static/static_points.vala" + return; +#line 181 "static_points.c" +} + +void +live_chart_static_static_points_first (LiveChartStaticStaticPoints* self, + LiveChartPoint* result) +{ + LiveChartPoint _tmp0_ = {0}; +#line 41 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 42 "../src/static/static_points.vala" + live_chart_static_static_points_get (self, 0, &_tmp0_); +#line 42 "../src/static/static_points.vala" + *result = _tmp0_; +#line 42 "../src/static/static_points.vala" + return; +#line 197 "static_points.c" +} + +void +live_chart_static_static_points_last (LiveChartStaticStaticPoints* self, + LiveChartPoint* result) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartPoint _tmp2_ = {0}; +#line 45 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/static/static_points.vala" + _tmp0_ = live_chart_static_static_points_get_size (self); +#line 46 "../src/static/static_points.vala" + _tmp1_ = _tmp0_; +#line 46 "../src/static/static_points.vala" + live_chart_static_static_points_get (self, _tmp1_ - 1, &_tmp2_); +#line 46 "../src/static/static_points.vala" + *result = _tmp2_; +#line 46 "../src/static/static_points.vala" + return; +#line 219 "static_points.c" +} + +LiveChartStaticStaticPoints* +live_chart_static_static_points_create (LiveChartStaticStaticValues* values, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartStaticStaticPoints* points = NULL; + LiveChartStaticStaticPoints* _tmp1_; + gint _tmp2_; + gint _tmp3_; + LiveChartStaticStaticPoints* result; +#line 49 "../src/static/static_points.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 49 "../src/static/static_points.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 50 "../src/static/static_points.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 50 "../src/static/static_points.vala" + boundaries = _tmp0_; +#line 52 "../src/static/static_points.vala" + _tmp1_ = live_chart_static_static_points_new (); +#line 52 "../src/static/static_points.vala" + points = _tmp1_; +#line 53 "../src/static/static_points.vala" + _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) values); +#line 53 "../src/static/static_points.vala" + _tmp3_ = _tmp2_; +#line 53 "../src/static/static_points.vala" + if (_tmp3_ > 0) { +#line 251 "static_points.c" + { + LiveChartStaticStaticValues* _value_list = NULL; + gint _value_size = 0; + LiveChartStaticStaticValues* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gint _value_index = 0; +#line 54 "../src/static/static_points.vala" + _value_list = values; +#line 54 "../src/static/static_points.vala" + _tmp4_ = _value_list; +#line 54 "../src/static/static_points.vala" + _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_); +#line 54 "../src/static/static_points.vala" + _tmp6_ = _tmp5_; +#line 54 "../src/static/static_points.vala" + _value_size = _tmp6_; +#line 54 "../src/static/static_points.vala" + _value_index = -1; +#line 54 "../src/static/static_points.vala" + while (TRUE) { +#line 273 "static_points.c" + gint _tmp7_; + gint _tmp8_; + LiveChartStaticNamedValue value = {0}; + LiveChartStaticStaticValues* _tmp9_; + gpointer _tmp10_; + LiveChartStaticNamedValue* _tmp11_; + LiveChartStaticNamedValue _tmp12_; + LiveChartStaticNamedValue _tmp13_ = {0}; + LiveChartStaticNamedValue _tmp14_; + LiveChartPoint point = {0}; + LiveChartStaticNamedValue _tmp15_; + LiveChartBoundaries _tmp16_; + LiveChartPoint _tmp17_ = {0}; + LiveChartStaticStaticPoints* _tmp18_; + LiveChartPoint _tmp19_; +#line 54 "../src/static/static_points.vala" + _value_index = _value_index + 1; +#line 54 "../src/static/static_points.vala" + _tmp7_ = _value_index; +#line 54 "../src/static/static_points.vala" + _tmp8_ = _value_size; +#line 54 "../src/static/static_points.vala" + if (!(_tmp7_ < _tmp8_)) { +#line 54 "../src/static/static_points.vala" + break; +#line 299 "static_points.c" + } +#line 54 "../src/static/static_points.vala" + _tmp9_ = _value_list; +#line 54 "../src/static/static_points.vala" + _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _value_index); +#line 54 "../src/static/static_points.vala" + _tmp11_ = (LiveChartStaticNamedValue*) _tmp10_; +#line 54 "../src/static/static_points.vala" + _tmp12_ = *_tmp11_; +#line 54 "../src/static/static_points.vala" + live_chart_static_named_value_copy (&_tmp12_, &_tmp13_); +#line 54 "../src/static/static_points.vala" + _tmp14_ = _tmp13_; +#line 54 "../src/static/static_points.vala" + _live_chart_static_named_value_free0 (_tmp11_); +#line 54 "../src/static/static_points.vala" + value = _tmp14_; +#line 55 "../src/static/static_points.vala" + _tmp15_ = value; +#line 55 "../src/static/static_points.vala" + _tmp16_ = boundaries; +#line 55 "../src/static/static_points.vala" + live_chart_static_static_points_value_to_point (&_tmp15_, config, &_tmp16_, &_tmp17_); +#line 55 "../src/static/static_points.vala" + point = _tmp17_; +#line 56 "../src/static/static_points.vala" + _tmp18_ = points; +#line 56 "../src/static/static_points.vala" + _tmp19_ = point; +#line 56 "../src/static/static_points.vala" + live_chart_static_static_points_add (_tmp18_, &_tmp19_); +#line 54 "../src/static/static_points.vala" + live_chart_static_named_value_destroy (&value); +#line 333 "static_points.c" + } + } + } +#line 60 "../src/static/static_points.vala" + result = points; +#line 60 "../src/static/static_points.vala" + return result; +#line 341 "static_points.c" +} + +static void +live_chart_static_static_points_value_to_point (LiveChartStaticNamedValue* current_value, + LiveChartConfig* config, + LiveChartBoundaries* boundaries, + LiveChartPoint* result) +{ + gint category_length = 0; + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; + guint8 category_pos = 0U; + gint width_between_each_points = 0; + LiveChartBoundaries _tmp15_; + LiveChartBoundary _tmp16_; + LiveChartBoundaries _tmp17_; + LiveChartBoundary _tmp18_; + gint _tmp19_; + gint _tmp20_; + gchar* _tmp21_; + gchar* _tmp22_; + gint x = 0; + LiveChartBoundaries _tmp23_; + LiveChartBoundary _tmp24_; + gdouble y = 0.0; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartStaticNamedValue _tmp27_; + LiveChartYAxis* _tmp28_; + LiveChartStaticNamedValue _tmp29_; + const gchar* _tmp30_; + LiveChartXAxis* _tmp31_; + gchar* _tmp32_; + gchar* _tmp33_; + LiveChartStaticNamedValue _tmp34_; + LiveChartYAxis* _tmp35_; + LiveChartPoint _tmp36_ = {0}; +#line 63 "../src/static/static_points.vala" + g_return_if_fail (current_value != NULL); +#line 63 "../src/static/static_points.vala" + g_return_if_fail (config != NULL); +#line 63 "../src/static/static_points.vala" + g_return_if_fail (boundaries != NULL); +#line 64 "../src/static/static_points.vala" + _tmp0_ = config->categories; +#line 64 "../src/static/static_points.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 64 "../src/static/static_points.vala" + _tmp2_ = _tmp1_; +#line 64 "../src/static/static_points.vala" + category_length = _tmp2_; +#line 65 "../src/static/static_points.vala" + category_pos = (guint8) 0; +#line 396 "static_points.c" + { + guint8 i = 0U; +#line 66 "../src/static/static_points.vala" + i = (guint8) 0; +#line 401 "static_points.c" + { + gboolean _tmp3_ = FALSE; +#line 66 "../src/static/static_points.vala" + _tmp3_ = TRUE; +#line 66 "../src/static/static_points.vala" + while (TRUE) { +#line 408 "static_points.c" + gchar* category = NULL; + GeeArrayList* _tmp5_; + gpointer _tmp6_; + gboolean _tmp7_ = FALSE; + const gchar* _tmp8_; +#line 66 "../src/static/static_points.vala" + if (!_tmp3_) { +#line 416 "static_points.c" + guint8 _tmp4_; +#line 66 "../src/static/static_points.vala" + _tmp4_ = i; +#line 66 "../src/static/static_points.vala" + i = _tmp4_ + 1; +#line 422 "static_points.c" + } +#line 66 "../src/static/static_points.vala" + _tmp3_ = FALSE; +#line 66 "../src/static/static_points.vala" + if (!(((gint) i) < category_length)) { +#line 66 "../src/static/static_points.vala" + break; +#line 430 "static_points.c" + } +#line 67 "../src/static/static_points.vala" + _tmp5_ = config->categories; +#line 67 "../src/static/static_points.vala" + _tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, (gint) i); +#line 67 "../src/static/static_points.vala" + category = (gchar*) _tmp6_; +#line 68 "../src/static/static_points.vala" + _tmp8_ = category; +#line 68 "../src/static/static_points.vala" + if (_tmp8_ != NULL) { +#line 442 "static_points.c" + const gchar* _tmp9_; + LiveChartStaticNamedValue _tmp10_; + const gchar* _tmp11_; +#line 68 "../src/static/static_points.vala" + _tmp9_ = category; +#line 68 "../src/static/static_points.vala" + _tmp10_ = *current_value; +#line 68 "../src/static/static_points.vala" + _tmp11_ = _tmp10_.name; +#line 68 "../src/static/static_points.vala" + _tmp7_ = g_strcmp0 (_tmp9_, _tmp11_) == 0; +#line 454 "static_points.c" + } else { +#line 68 "../src/static/static_points.vala" + _tmp7_ = FALSE; +#line 458 "static_points.c" + } +#line 68 "../src/static/static_points.vala" + if (_tmp7_) { +#line 462 "static_points.c" + const gchar* _tmp12_; + gchar* _tmp13_; + gchar* _tmp14_; +#line 69 "../src/static/static_points.vala" + category_pos = i; +#line 70 "../src/static/static_points.vala" + _tmp12_ = category; +#line 70 "../src/static/static_points.vala" + _tmp13_ = g_strdup_printf ("Found category %s at pos %d", _tmp12_, (gint) i); +#line 70 "../src/static/static_points.vala" + _tmp14_ = _tmp13_; +#line 70 "../src/static/static_points.vala" + g_message ("static_points.vala:70: %s", _tmp14_); +#line 70 "../src/static/static_points.vala" + _g_free0 (_tmp14_); +#line 71 "../src/static/static_points.vala" + _g_free0 (category); +#line 71 "../src/static/static_points.vala" + break; +#line 482 "static_points.c" + } +#line 66 "../src/static/static_points.vala" + _g_free0 (category); +#line 486 "static_points.c" + } + } + } +#line 74 "../src/static/static_points.vala" + _tmp15_ = *boundaries; +#line 74 "../src/static/static_points.vala" + _tmp16_ = _tmp15_.x; +#line 74 "../src/static/static_points.vala" + _tmp17_ = *boundaries; +#line 74 "../src/static/static_points.vala" + _tmp18_ = _tmp17_.x; +#line 74 "../src/static/static_points.vala" + width_between_each_points = (_tmp16_.max - _tmp18_.min) / (category_length - 1); +#line 75 "../src/static/static_points.vala" + _tmp19_ = live_chart_config_get_width (config); +#line 75 "../src/static/static_points.vala" + _tmp20_ = _tmp19_; +#line 75 "../src/static/static_points.vala" + _tmp21_ = g_strdup_printf ("WIDTH %d", _tmp20_); +#line 75 "../src/static/static_points.vala" + _tmp22_ = _tmp21_; +#line 75 "../src/static/static_points.vala" + g_message ("static_points.vala:75: %s", _tmp22_); +#line 75 "../src/static/static_points.vala" + _g_free0 (_tmp22_); +#line 76 "../src/static/static_points.vala" + _tmp23_ = *boundaries; +#line 76 "../src/static/static_points.vala" + _tmp24_ = _tmp23_.x; +#line 76 "../src/static/static_points.vala" + x = _tmp24_.min + (category_pos * width_between_each_points); +#line 77 "../src/static/static_points.vala" + _tmp25_ = *boundaries; +#line 77 "../src/static/static_points.vala" + _tmp26_ = _tmp25_.y; +#line 77 "../src/static/static_points.vala" + _tmp27_ = *current_value; +#line 77 "../src/static/static_points.vala" + _tmp28_ = config->y_axis; +#line 77 "../src/static/static_points.vala" + y = _tmp26_.max - (_tmp27_.value * live_chart_yaxis_get_ratio (_tmp28_)); +#line 78 "../src/static/static_points.vala" + _tmp29_ = *current_value; +#line 78 "../src/static/static_points.vala" + _tmp30_ = _tmp29_.name; +#line 78 "../src/static/static_points.vala" + _tmp31_ = config->x_axis; +#line 78 "../src/static/static_points.vala" + _tmp32_ = g_strdup_printf ("category %s at pos %d (%f,%f) (width_between_each_points = %d) ratio: " \ +"%f", _tmp30_, (gint) category_pos, (gdouble) x, y, width_between_each_points, live_chart_xaxis_get_ratio (_tmp31_)); +#line 78 "../src/static/static_points.vala" + _tmp33_ = _tmp32_; +#line 78 "../src/static/static_points.vala" + g_message ("static_points.vala:78: %s", _tmp33_); +#line 78 "../src/static/static_points.vala" + _g_free0 (_tmp33_); +#line 79 "../src/static/static_points.vala" + _tmp34_ = *current_value; +#line 79 "../src/static/static_points.vala" + _tmp35_ = config->y_axis; +#line 79 "../src/static/static_points.vala" + memset (&_tmp36_, 0, sizeof (LiveChartPoint)); +#line 79 "../src/static/static_points.vala" + _tmp36_.x = (gdouble) x; +#line 79 "../src/static/static_points.vala" + _tmp36_.y = y; +#line 79 "../src/static/static_points.vala" + _tmp36_.height = _tmp34_.value * live_chart_yaxis_get_ratio (_tmp35_); +#line 79 "../src/static/static_points.vala" + *result = _tmp36_; +#line 79 "../src/static/static_points.vala" + return; +#line 558 "static_points.c" +} + +LiveChartBounds* +live_chart_static_static_points_get_bounds (LiveChartStaticStaticPoints* self) +{ + LiveChartBounds* result; + LiveChartBounds* _tmp0_; +#line 10 "../src/static/static_points.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 10 "../src/static/static_points.vala" + _tmp0_ = self->priv->_bounds; +#line 10 "../src/static/static_points.vala" + result = _tmp0_; +#line 10 "../src/static/static_points.vala" + return result; +#line 574 "static_points.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 10 "../src/static/static_points.vala" + return self ? g_object_ref (self) : NULL; +#line 582 "static_points.c" +} + +void +live_chart_static_static_points_set_bounds (LiveChartStaticStaticPoints* self, + LiveChartBounds* value) +{ + LiveChartBounds* old_value; +#line 10 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/static/static_points.vala" + old_value = live_chart_static_static_points_get_bounds (self); +#line 10 "../src/static/static_points.vala" + if (old_value != value) { +#line 596 "static_points.c" + LiveChartBounds* _tmp0_; +#line 10 "../src/static/static_points.vala" + _tmp0_ = _g_object_ref0 (value); +#line 10 "../src/static/static_points.vala" + _g_object_unref0 (self->priv->_bounds); +#line 10 "../src/static/static_points.vala" + self->priv->_bounds = _tmp0_; +#line 10 "../src/static/static_points.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY]); +#line 606 "static_points.c" + } +} + +gint +live_chart_static_static_points_get_size (LiveChartStaticStaticPoints* self) +{ + gint result; + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; +#line 23 "../src/static/static_points.vala" + g_return_val_if_fail (self != NULL, 0); +#line 24 "../src/static/static_points.vala" + _tmp0_ = self->priv->points; +#line 24 "../src/static/static_points.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 24 "../src/static/static_points.vala" + _tmp2_ = _tmp1_; +#line 24 "../src/static/static_points.vala" + result = _tmp2_; +#line 24 "../src/static/static_points.vala" + return result; +#line 629 "static_points.c" +} + +gdouble +live_chart_static_static_points_get_realtime_delta (LiveChartStaticStaticPoints* self) +{ + gdouble result; +#line 29 "../src/static/static_points.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 29 "../src/static/static_points.vala" + result = self->priv->_realtime_delta; +#line 29 "../src/static/static_points.vala" + return result; +#line 642 "static_points.c" +} + +void +live_chart_static_static_points_set_realtime_delta (LiveChartStaticStaticPoints* self, + gdouble value) +{ + gdouble old_value; +#line 29 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 29 "../src/static/static_points.vala" + old_value = live_chart_static_static_points_get_realtime_delta (self); +#line 29 "../src/static/static_points.vala" + if (old_value != value) { +#line 29 "../src/static/static_points.vala" + self->priv->_realtime_delta = value; +#line 29 "../src/static/static_points.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY]); +#line 660 "static_points.c" + } +} + +static void +live_chart_static_static_points_class_init (LiveChartStaticStaticPointsClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_points.vala" + live_chart_static_static_points_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_points.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticPoints_private_offset); +#line 6 "../src/static/static_points.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_points_get_property; +#line 6 "../src/static/static_points.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_points_set_property; +#line 6 "../src/static/static_points.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_points_finalize; +#line 6 "../src/static/static_points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY] = g_param_spec_object ("bounds", "bounds", "bounds", LIVE_CHART_TYPE_BOUNDS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 6 "../src/static/static_points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_POINTS_SIZE_PROPERTY, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_SIZE_PROPERTY] = g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 6 "../src/static/static_points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY] = g_param_spec_double ("realtime-delta", "realtime-delta", "realtime-delta", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 684 "static_points.c" +} + +static void +live_chart_static_static_points_instance_init (LiveChartStaticStaticPoints * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 6 "../src/static/static_points.vala" + self->priv = live_chart_static_static_points_get_instance_private (self); +#line 8 "../src/static/static_points.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_TYPE_POINT, (GBoxedCopyFunc) live_chart_point_dup, (GDestroyNotify) live_chart_point_free, NULL, NULL, NULL); +#line 8 "../src/static/static_points.vala" + self->priv->points = _tmp0_; +#line 698 "static_points.c" +} + +static void +live_chart_static_static_points_finalize (GObject * obj) +{ + LiveChartStaticStaticPoints * self; +#line 6 "../src/static/static_points.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPoints); +#line 8 "../src/static/static_points.vala" + _g_object_unref0 (self->priv->points); +#line 9 "../src/static/static_points.vala" + _g_object_unref0 (self->priv->_bounds); +#line 6 "../src/static/static_points.vala" + G_OBJECT_CLASS (live_chart_static_static_points_parent_class)->finalize (obj); +#line 713 "static_points.c" +} + +static GType +live_chart_static_static_points_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticPointsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_points_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticPoints), 0, (GInstanceInitFunc) live_chart_static_static_points_instance_init, NULL }; + GType live_chart_static_static_points_type_id; + live_chart_static_static_points_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticPoints", &g_define_type_info, 0); + LiveChartStaticStaticPoints_private_offset = g_type_add_instance_private (live_chart_static_static_points_type_id, sizeof (LiveChartStaticStaticPointsPrivate)); + return live_chart_static_static_points_type_id; +} + +GType +live_chart_static_static_points_get_type (void) +{ + static volatile gsize live_chart_static_static_points_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_points_type_id__once)) { + GType live_chart_static_static_points_type_id; + live_chart_static_static_points_type_id = live_chart_static_static_points_get_type_once (); + g_once_init_leave (&live_chart_static_static_points_type_id__once, live_chart_static_static_points_type_id); + } + return live_chart_static_static_points_type_id__once; +} + +static void +_vala_live_chart_static_static_points_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticPoints * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPoints); +#line 6 "../src/static/static_points.vala" + switch (property_id) { +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY: +#line 6 "../src/static/static_points.vala" + g_value_set_object (value, live_chart_static_static_points_get_bounds (self)); +#line 6 "../src/static/static_points.vala" + break; +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_SIZE_PROPERTY: +#line 6 "../src/static/static_points.vala" + g_value_set_int (value, live_chart_static_static_points_get_size (self)); +#line 6 "../src/static/static_points.vala" + break; +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY: +#line 6 "../src/static/static_points.vala" + g_value_set_double (value, live_chart_static_static_points_get_realtime_delta (self)); +#line 6 "../src/static/static_points.vala" + break; +#line 766 "static_points.c" + default: +#line 6 "../src/static/static_points.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_points.vala" + break; +#line 772 "static_points.c" + } +} + +static void +_vala_live_chart_static_static_points_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticPoints * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPoints); +#line 6 "../src/static/static_points.vala" + switch (property_id) { +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY: +#line 6 "../src/static/static_points.vala" + live_chart_static_static_points_set_bounds (self, g_value_get_object (value)); +#line 6 "../src/static/static_points.vala" + break; +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY: +#line 6 "../src/static/static_points.vala" + live_chart_static_static_points_set_realtime_delta (self, g_value_get_double (value)); +#line 6 "../src/static/static_points.vala" + break; +#line 798 "static_points.c" + default: +#line 6 "../src/static/static_points.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_points.vala" + break; +#line 804 "static_points.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/static/static_serie.c b/iPDC/lib/liblivechart_static.a.p/static/static_serie.c new file mode 100644 index 0000000..a75a10b --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/static/static_serie.c @@ -0,0 +1,619 @@ +/* static_serie.c generated by valac 0.56.0, the Vala compiler + * generated from static_serie.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_SERIE_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_NUM_PROPERTIES]; +#define _g_free0(var) (var = (g_free (var), NULL)) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +enum { + LIVE_CHART_STATIC_STATIC_SERIE_VALUE_ADDED_SIGNAL, + LIVE_CHART_STATIC_STATIC_SERIE_NUM_SIGNALS +}; +static guint live_chart_static_static_serie_signals[LIVE_CHART_STATIC_STATIC_SERIE_NUM_SIGNALS] = {0}; + +struct _LiveChartStaticStaticSeriePrivate { + gchar* _name; + gboolean _visible; + LiveChartStaticStaticSerieRenderer* renderer; +}; + +static gint LiveChartStaticStaticSerie_private_offset; +static gpointer live_chart_static_static_serie_parent_class = NULL; +static LiveChartColorableIface * live_chart_static_static_serie_live_chart_colorable_parent_iface = NULL; +static LiveChartDrawableIface * live_chart_static_static_serie_live_chart_drawable_parent_iface = NULL; + +static void live_chart_static_static_serie_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_static_static_serie_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_static_static_serie_finalize (GObject * obj); +static GType live_chart_static_static_serie_get_type_once (void); +static void _vala_live_chart_static_static_serie_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_serie_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_serie_get_instance_private (LiveChartStaticStaticSerie* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticSerie_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 39 "../src/static/static_serie.vala" + return self ? g_object_ref (self) : NULL; +#line 73 "static_serie.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_serie_construct (GType object_type, + const gchar* name, + LiveChartStaticStaticSerieRenderer* renderer) +{ + LiveChartStaticStaticSerie * self = NULL; + LiveChartStaticStaticSerieRenderer* _tmp0_; +#line 37 "../src/static/static_serie.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 37 "../src/static/static_serie.vala" + g_return_val_if_fail (renderer != NULL, NULL); +#line 37 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) g_object_new (object_type, NULL); +#line 38 "../src/static/static_serie.vala" + live_chart_static_static_serie_set_name (self, name); +#line 39 "../src/static/static_serie.vala" + _tmp0_ = _g_object_ref0 (renderer); +#line 39 "../src/static/static_serie.vala" + _g_object_unref0 (self->priv->renderer); +#line 39 "../src/static/static_serie.vala" + self->priv->renderer = _tmp0_; +#line 37 "../src/static/static_serie.vala" + return self; +#line 99 "static_serie.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_serie_new (const gchar* name, + LiveChartStaticStaticSerieRenderer* renderer) +{ +#line 37 "../src/static/static_serie.vala" + return live_chart_static_static_serie_construct (LIVE_CHART_STATIC_TYPE_STATIC_SERIE, name, renderer); +#line 108 "static_serie.c" +} + +static void +live_chart_static_static_serie_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartStaticStaticSerie * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 42 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 42 "../src/static/static_serie.vala" + g_return_if_fail (ctx != NULL); +#line 42 "../src/static/static_serie.vala" + g_return_if_fail (config != NULL); +#line 43 "../src/static/static_serie.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 43 "../src/static/static_serie.vala" + _tmp1_ = _tmp0_; +#line 43 "../src/static/static_serie.vala" + if (_tmp1_) { +#line 131 "static_serie.c" + LiveChartStaticStaticSerieRenderer* _tmp2_; +#line 44 "../src/static/static_serie.vala" + _tmp2_ = self->priv->renderer; +#line 44 "../src/static/static_serie.vala" + live_chart_static_static_serie_renderer_draw (_tmp2_, ctx, config); +#line 137 "static_serie.c" + } +} + +void +live_chart_static_static_serie_add (LiveChartStaticStaticSerie* self, + const gchar* name, + gdouble value) +{ + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartStaticStaticValues* _tmp1_; + LiveChartStaticStaticValues* _tmp2_; + LiveChartStaticNamedValue _tmp3_ = {0}; +#line 48 "../src/static/static_serie.vala" + g_return_if_fail (self != NULL); +#line 48 "../src/static/static_serie.vala" + g_return_if_fail (name != NULL); +#line 49 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 49 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_values (_tmp0_); +#line 49 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 49 "../src/static/static_serie.vala" + _g_free0 (_tmp3_.name); +#line 49 "../src/static/static_serie.vala" + _tmp3_.name = name; +#line 49 "../src/static/static_serie.vala" + _tmp3_.value = value; +#line 49 "../src/static/static_serie.vala" + live_chart_static_static_values_add (_tmp2_, &_tmp3_); +#line 49 "../src/static/static_serie.vala" + _g_object_unref0 (_tmp2_); +#line 50 "../src/static/static_serie.vala" + g_signal_emit (self, live_chart_static_static_serie_signals[LIVE_CHART_STATIC_STATIC_SERIE_VALUE_ADDED_SIGNAL], 0, value); +#line 172 "static_serie.c" +} + +LiveChartStaticStaticValues* +live_chart_static_static_serie_get_values (LiveChartStaticStaticSerie* self) +{ + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartStaticStaticValues* _tmp1_; + LiveChartStaticStaticValues* result; +#line 53 "../src/static/static_serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 54 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 54 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_values (_tmp0_); +#line 54 "../src/static/static_serie.vala" + result = _tmp1_; +#line 54 "../src/static/static_serie.vala" + return result; +#line 191 "static_serie.c" +} + +void +live_chart_static_static_serie_clear (LiveChartStaticStaticSerie* self) +{ + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartStaticStaticValues* _tmp1_; + LiveChartStaticStaticValues* _tmp2_; +#line 57 "../src/static/static_serie.vala" + g_return_if_fail (self != NULL); +#line 58 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 58 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_values (_tmp0_); +#line 58 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 58 "../src/static/static_serie.vala" + gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp2_); +#line 58 "../src/static/static_serie.vala" + _g_object_unref0 (_tmp2_); +#line 212 "static_serie.c" +} + +static void +live_chart_static_static_serie_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartStaticStaticSerie * self; + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartBoundingBox _tmp1_ = {0}; +#line 61 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 62 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 62 "../src/static/static_serie.vala" + live_chart_drawable_get_bounding_box ((LiveChartDrawable*) _tmp0_, &_tmp1_); +#line 62 "../src/static/static_serie.vala" + *result = _tmp1_; +#line 62 "../src/static/static_serie.vala" + return; +#line 232 "static_serie.c" +} + +const gchar* +live_chart_static_static_serie_get_name (LiveChartStaticStaticSerie* self) +{ + const gchar* result; + const gchar* _tmp0_; +#line 9 "../src/static/static_serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 9 "../src/static/static_serie.vala" + _tmp0_ = self->priv->_name; +#line 9 "../src/static/static_serie.vala" + result = _tmp0_; +#line 9 "../src/static/static_serie.vala" + return result; +#line 248 "static_serie.c" +} + +void +live_chart_static_static_serie_set_name (LiveChartStaticStaticSerie* self, + const gchar* value) +{ + gchar* old_value; +#line 9 "../src/static/static_serie.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/static/static_serie.vala" + old_value = live_chart_static_static_serie_get_name (self); +#line 9 "../src/static/static_serie.vala" + if (g_strcmp0 (value, old_value) != 0) { +#line 262 "static_serie.c" + gchar* _tmp0_; +#line 9 "../src/static/static_serie.vala" + _tmp0_ = g_strdup (value); +#line 9 "../src/static/static_serie.vala" + _g_free0 (self->priv->_name); +#line 9 "../src/static/static_serie.vala" + self->priv->_name = _tmp0_; +#line 9 "../src/static/static_serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY]); +#line 272 "static_serie.c" + } +} + +static void +live_chart_static_static_serie_real_get_main_color (LiveChartColorable* base, + GdkRGBA * result) +{ + LiveChartStaticStaticSerie* self; + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_ = {0}; + GdkRGBA _tmp4_; +#line 13 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 14 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 14 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_line (_tmp0_); +#line 14 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 14 "../src/static/static_serie.vala" + live_chart_path_get_color (_tmp2_, &_tmp3_); +#line 14 "../src/static/static_serie.vala" + _tmp4_ = _tmp3_; +#line 14 "../src/static/static_serie.vala" + *result = _tmp4_; +#line 14 "../src/static/static_serie.vala" + return; +#line 302 "static_serie.c" +} + +static void +live_chart_static_static_serie_real_set_main_color (LiveChartColorable* base, + GdkRGBA * value) +{ + LiveChartStaticStaticSerie* self; + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_; +#line 17 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 18 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 18 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_line (_tmp0_); +#line 18 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 18 "../src/static/static_serie.vala" + _tmp3_ = *value; +#line 18 "../src/static/static_serie.vala" + live_chart_path_set_color (_tmp2_, &_tmp3_); +#line 17 "../src/static/static_serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY]); +#line 328 "static_serie.c" +} + +LiveChartPath* +live_chart_static_static_serie_get_line (LiveChartStaticStaticSerie* self) +{ + LiveChartPath* result; + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; +#line 22 "../src/static/static_serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 23 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 23 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_line (_tmp0_); +#line 23 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 23 "../src/static/static_serie.vala" + result = _tmp2_; +#line 23 "../src/static/static_serie.vala" + return result; +#line 350 "static_serie.c" +} + +void +live_chart_static_static_serie_set_line (LiveChartStaticStaticSerie* self, + LiveChartPath* value) +{ + LiveChartStaticStaticSerieRenderer* _tmp0_; +#line 26 "../src/static/static_serie.vala" + g_return_if_fail (self != NULL); +#line 27 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 27 "../src/static/static_serie.vala" + live_chart_static_static_serie_renderer_set_line (_tmp0_, value); +#line 26 "../src/static/static_serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY]); +#line 366 "static_serie.c" +} + +static gboolean +live_chart_static_static_serie_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartStaticStaticSerie* self; +#line 31 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 31 "../src/static/static_serie.vala" + result = self->priv->_visible; +#line 31 "../src/static/static_serie.vala" + return result; +#line 380 "static_serie.c" +} + +static void +live_chart_static_static_serie_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartStaticStaticSerie* self; + gboolean old_value; +#line 31 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 31 "../src/static/static_serie.vala" + old_value = live_chart_static_static_serie_real_get_visible (base); +#line 31 "../src/static/static_serie.vala" + if (old_value != value) { +#line 31 "../src/static/static_serie.vala" + self->priv->_visible = value; +#line 31 "../src/static/static_serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY]); +#line 399 "static_serie.c" + } +} + +static void +live_chart_static_static_serie_class_init (LiveChartStaticStaticSerieClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_serie.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticSerie_private_offset); +#line 6 "../src/static/static_serie.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_serie_get_property; +#line 6 "../src/static/static_serie.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_serie_set_property; +#line 6 "../src/static/static_serie.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_serie_finalize; +#line 6 "../src/static/static_serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY] = g_param_spec_object ("line", "line", "line", LIVE_CHART_TYPE_PATH, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_signals[LIVE_CHART_STATIC_STATIC_SERIE_VALUE_ADDED_SIGNAL] = g_signal_new ("value-added", LIVE_CHART_STATIC_TYPE_STATIC_SERIE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); +#line 427 "static_serie.c" +} + +static void +live_chart_static_static_serie_live_chart_colorable_interface_init (LiveChartColorableIface * iface, + gpointer iface_data) +{ +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_live_chart_colorable_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/static/static_serie.vala" + iface->get_main_color = live_chart_static_static_serie_real_get_main_color; +#line 6 "../src/static/static_serie.vala" + iface->set_main_color = live_chart_static_static_serie_real_set_main_color; +#line 440 "static_serie.c" +} + +static void +live_chart_static_static_serie_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/static/static_serie.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_static_static_serie_real_draw; +#line 6 "../src/static/static_serie.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_static_static_serie_real_get_bounding_box; +#line 6 "../src/static/static_serie.vala" + iface->get_visible = live_chart_static_static_serie_real_get_visible; +#line 6 "../src/static/static_serie.vala" + iface->set_visible = live_chart_static_static_serie_real_set_visible; +#line 457 "static_serie.c" +} + +static void +live_chart_static_static_serie_instance_init (LiveChartStaticStaticSerie * self, + gpointer klass) +{ +#line 6 "../src/static/static_serie.vala" + self->priv = live_chart_static_static_serie_get_instance_private (self); +#line 31 "../src/static/static_serie.vala" + self->priv->_visible = TRUE; +#line 468 "static_serie.c" +} + +static void +live_chart_static_static_serie_finalize (GObject * obj) +{ + LiveChartStaticStaticSerie * self; +#line 6 "../src/static/static_serie.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerie); +#line 8 "../src/static/static_serie.vala" + _g_free0 (self->priv->_name); +#line 35 "../src/static/static_serie.vala" + _g_object_unref0 (self->priv->renderer); +#line 6 "../src/static/static_serie.vala" + G_OBJECT_CLASS (live_chart_static_static_serie_parent_class)->finalize (obj); +#line 483 "static_serie.c" +} + +static GType +live_chart_static_static_serie_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticSerieClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_serie_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticSerie), 0, (GInstanceInitFunc) live_chart_static_static_serie_instance_init, NULL }; + static const GInterfaceInfo live_chart_colorable_info = { (GInterfaceInitFunc) live_chart_static_static_serie_live_chart_colorable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_static_static_serie_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_static_static_serie_type_id; + live_chart_static_static_serie_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticSerie", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_static_static_serie_type_id, LIVE_CHART_TYPE_COLORABLE, &live_chart_colorable_info); + g_type_add_interface_static (live_chart_static_static_serie_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartStaticStaticSerie_private_offset = g_type_add_instance_private (live_chart_static_static_serie_type_id, sizeof (LiveChartStaticStaticSeriePrivate)); + return live_chart_static_static_serie_type_id; +} + +GType +live_chart_static_static_serie_get_type (void) +{ + static volatile gsize live_chart_static_static_serie_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_serie_type_id__once)) { + GType live_chart_static_static_serie_type_id; + live_chart_static_static_serie_type_id = live_chart_static_static_serie_get_type_once (); + g_once_init_leave (&live_chart_static_static_serie_type_id__once, live_chart_static_static_serie_type_id); + } + return live_chart_static_static_serie_type_id__once; +} + +static void +_vala_live_chart_static_static_serie_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticSerie * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerie); +#line 6 "../src/static/static_serie.vala" + switch (property_id) { +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY: +#line 6 "../src/static/static_serie.vala" + g_value_set_string (value, live_chart_static_static_serie_get_name (self)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY: +#line 530 "static_serie.c" + { + GdkRGBA boxed; +#line 6 "../src/static/static_serie.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) self, &boxed); +#line 6 "../src/static/static_serie.vala" + g_value_set_boxed (value, &boxed); +#line 537 "static_serie.c" + } +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY: +#line 6 "../src/static/static_serie.vala" + g_value_set_object (value, live_chart_static_static_serie_get_line (self)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY: +#line 6 "../src/static/static_serie.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 6 "../src/static/static_serie.vala" + break; +#line 553 "static_serie.c" + default: +#line 6 "../src/static/static_serie.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_serie.vala" + break; +#line 559 "static_serie.c" + } +} + +static void +_vala_live_chart_static_static_serie_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticSerie * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerie); +#line 6 "../src/static/static_serie.vala" + switch (property_id) { +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY: +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_set_name (self, g_value_get_string (value)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY: +#line 6 "../src/static/static_serie.vala" + live_chart_colorable_set_main_color ((LiveChartColorable*) self, g_value_get_boxed (value)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY: +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_set_line (self, g_value_get_object (value)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY: +#line 6 "../src/static/static_serie.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 6 "../src/static/static_serie.vala" + break; +#line 597 "static_serie.c" + default: +#line 6 "../src/static/static_serie.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_serie.vala" + break; +#line 603 "static_serie.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/static/static_serie_renderer.c b/iPDC/lib/liblivechart_static.a.p/static/static_serie_renderer.c new file mode 100644 index 0000000..fc549ec --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/static/static_serie_renderer.c @@ -0,0 +1,483 @@ +/* static_serie_renderer.c generated by valac 0.56.0, the Vala compiler + * generated from static_serie_renderer.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#define LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VIRTUAL_LEFT_PADDING -200 + +enum { + LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartStaticStaticSerieRendererPrivate { + gboolean _visible; + LiveChartPath* _line; +}; + +static gint LiveChartStaticStaticSerieRenderer_private_offset; +static gpointer live_chart_static_static_serie_renderer_parent_class = NULL; +static LiveChartDrawableIface * live_chart_static_static_serie_renderer_live_chart_drawable_parent_iface = NULL; + +static void live_chart_static_static_serie_renderer_real_draw (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_static_static_serie_renderer_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_static_static_serie_renderer_finalize (GObject * obj); +static GType live_chart_static_static_serie_renderer_get_type_once (void); +static void _vala_live_chart_static_static_serie_renderer_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_serie_renderer_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_serie_renderer_get_instance_private (LiveChartStaticStaticSerieRenderer* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticSerieRenderer_private_offset); +} + +LiveChartStaticStaticSerieRenderer* +live_chart_static_static_serie_renderer_construct (GType object_type) +{ + LiveChartStaticStaticSerieRenderer * self = NULL; + GdkRGBA _tmp0_ = {0}; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; +#line 14 "../src/static/static_serie_renderer.vala" + self = (LiveChartStaticStaticSerieRenderer*) g_object_new (object_type, NULL); +#line 15 "../src/static/static_serie_renderer.vala" + _tmp0_.red = 1.0; +#line 15 "../src/static/static_serie_renderer.vala" + _tmp0_.green = 1.0; +#line 15 "../src/static/static_serie_renderer.vala" + _tmp0_.blue = 1.0; +#line 15 "../src/static/static_serie_renderer.vala" + _tmp0_.alpha = 1.0; +#line 15 "../src/static/static_serie_renderer.vala" + _tmp1_ = live_chart_path_new ((gdouble) 1, &_tmp0_, TRUE, NULL); +#line 15 "../src/static/static_serie_renderer.vala" + _tmp2_ = _tmp1_; +#line 15 "../src/static/static_serie_renderer.vala" + live_chart_static_static_serie_renderer_set_line (self, _tmp2_); +#line 15 "../src/static/static_serie_renderer.vala" + _g_object_unref0 (_tmp2_); +#line 14 "../src/static/static_serie_renderer.vala" + return self; +#line 87 "static_serie_renderer.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 27 "../src/static/static_serie_renderer.vala" + return self ? g_object_ref (self) : NULL; +#line 95 "static_serie_renderer.c" +} + +LiveChartStaticStaticValues* +live_chart_static_static_serie_renderer_get_values (LiveChartStaticStaticSerieRenderer* self) +{ + LiveChartStaticStaticValues* _tmp0_; + LiveChartStaticStaticValues* _tmp1_; + LiveChartStaticStaticValues* result; +#line 26 "../src/static/static_serie_renderer.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 27 "../src/static/static_serie_renderer.vala" + _tmp0_ = self->values; +#line 27 "../src/static/static_serie_renderer.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 27 "../src/static/static_serie_renderer.vala" + result = _tmp1_; +#line 27 "../src/static/static_serie_renderer.vala" + return result; +#line 114 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_real_draw (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 30 "../src/static/static_serie_renderer.vala" + g_critical ("Type `%s' does not implement abstract method `live_chart_static_static_serie_renderer_draw'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 30 "../src/static/static_serie_renderer.vala" + return; +#line 126 "static_serie_renderer.c" +} + +void +live_chart_static_static_serie_renderer_draw (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartStaticStaticSerieRendererClass* _klass_; +#line 30 "../src/static/static_serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 30 "../src/static/static_serie_renderer.vala" + _klass_ = LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_GET_CLASS (self); +#line 30 "../src/static/static_serie_renderer.vala" + if (_klass_->draw) { +#line 30 "../src/static/static_serie_renderer.vala" + _klass_->draw (self, ctx, config); +#line 143 "static_serie_renderer.c" + } +} + +static void +live_chart_static_static_serie_renderer_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartStaticStaticSerieRenderer * self; + LiveChartBoundingBox _tmp0_; +#line 31 "../src/static/static_serie_renderer.vala" + self = (LiveChartStaticStaticSerieRenderer*) base; +#line 32 "../src/static/static_serie_renderer.vala" + _tmp0_ = self->bounding_box; +#line 32 "../src/static/static_serie_renderer.vala" + *result = _tmp0_; +#line 32 "../src/static/static_serie_renderer.vala" + return; +#line 161 "static_serie_renderer.c" +} + +void +live_chart_static_static_serie_renderer_debug (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 35 "../src/static/static_serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 35 "../src/static/static_serie_renderer.vala" + g_return_if_fail (ctx != NULL); +#line 36 "../src/static/static_serie_renderer.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 36 "../src/static/static_serie_renderer.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 36 "../src/static/static_serie_renderer.vala" + debug = _tmp1_; +#line 37 "../src/static/static_serie_renderer.vala" + _tmp2_ = debug; +#line 37 "../src/static/static_serie_renderer.vala" + if (_tmp2_ != NULL) { +#line 186 "static_serie_renderer.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 38 "../src/static/static_serie_renderer.vala" + _tmp3_ = self->bounding_box; +#line 38 "../src/static/static_serie_renderer.vala" + _tmp4_ = self->bounding_box; +#line 38 "../src/static/static_serie_renderer.vala" + _tmp5_ = self->bounding_box; +#line 38 "../src/static/static_serie_renderer.vala" + _tmp6_ = self->bounding_box; +#line 38 "../src/static/static_serie_renderer.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 39 "../src/static/static_serie_renderer.vala" + cairo_stroke (ctx); +#line 203 "static_serie_renderer.c" + } +#line 35 "../src/static/static_serie_renderer.vala" + _g_free0 (debug); +#line 207 "static_serie_renderer.c" +} + +gboolean +live_chart_static_static_serie_renderer_is_out_of_area (LiveChartStaticStaticSerieRenderer* self, + LiveChartPoint* point) +{ + LiveChartPoint _tmp0_; + gboolean result; +#line 43 "../src/static/static_serie_renderer.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 43 "../src/static/static_serie_renderer.vala" + g_return_val_if_fail (point != NULL, FALSE); +#line 44 "../src/static/static_serie_renderer.vala" + _tmp0_ = *point; +#line 44 "../src/static/static_serie_renderer.vala" + result = _tmp0_.x < ((gdouble) LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VIRTUAL_LEFT_PADDING); +#line 44 "../src/static/static_serie_renderer.vala" + return result; +#line 226 "static_serie_renderer.c" +} + +static gboolean +live_chart_static_static_serie_renderer_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartStaticStaticSerieRenderer* self; +#line 10 "../src/static/static_serie_renderer.vala" + self = (LiveChartStaticStaticSerieRenderer*) base; +#line 10 "../src/static/static_serie_renderer.vala" + result = self->priv->_visible; +#line 10 "../src/static/static_serie_renderer.vala" + return result; +#line 240 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartStaticStaticSerieRenderer* self; + gboolean old_value; +#line 10 "../src/static/static_serie_renderer.vala" + self = (LiveChartStaticStaticSerieRenderer*) base; +#line 10 "../src/static/static_serie_renderer.vala" + old_value = live_chart_static_static_serie_renderer_real_get_visible (base); +#line 10 "../src/static/static_serie_renderer.vala" + if (old_value != value) { +#line 10 "../src/static/static_serie_renderer.vala" + self->priv->_visible = value; +#line 10 "../src/static/static_serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY]); +#line 259 "static_serie_renderer.c" + } +} + +LiveChartPath* +live_chart_static_static_serie_renderer_get_line (LiveChartStaticStaticSerieRenderer* self) +{ + LiveChartPath* result; + LiveChartPath* _tmp0_; +#line 12 "../src/static/static_serie_renderer.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 12 "../src/static/static_serie_renderer.vala" + _tmp0_ = self->priv->_line; +#line 12 "../src/static/static_serie_renderer.vala" + result = _tmp0_; +#line 12 "../src/static/static_serie_renderer.vala" + return result; +#line 276 "static_serie_renderer.c" +} + +void +live_chart_static_static_serie_renderer_set_line (LiveChartStaticStaticSerieRenderer* self, + LiveChartPath* value) +{ + LiveChartPath* old_value; +#line 12 "../src/static/static_serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 12 "../src/static/static_serie_renderer.vala" + old_value = live_chart_static_static_serie_renderer_get_line (self); +#line 12 "../src/static/static_serie_renderer.vala" + if (old_value != value) { +#line 290 "static_serie_renderer.c" + LiveChartPath* _tmp0_; +#line 12 "../src/static/static_serie_renderer.vala" + _tmp0_ = _g_object_ref0 (value); +#line 12 "../src/static/static_serie_renderer.vala" + _g_object_unref0 (self->priv->_line); +#line 12 "../src/static/static_serie_renderer.vala" + self->priv->_line = _tmp0_; +#line 12 "../src/static/static_serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY]); +#line 300 "static_serie_renderer.c" + } +} + +static void +live_chart_static_static_serie_renderer_class_init (LiveChartStaticStaticSerieRendererClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_serie_renderer.vala" + live_chart_static_static_serie_renderer_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_serie_renderer.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticSerieRenderer_private_offset); +#line 6 "../src/static/static_serie_renderer.vala" + ((LiveChartStaticStaticSerieRendererClass *) klass)->draw = (void (*) (LiveChartStaticStaticSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_static_static_serie_renderer_real_draw; +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_serie_renderer_get_property; +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_serie_renderer_set_property; +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_serie_renderer_finalize; +#line 6 "../src/static/static_serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY, live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY, live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY] = g_param_spec_object ("line", "line", "line", LIVE_CHART_TYPE_PATH, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 324 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 6 "../src/static/static_serie_renderer.vala" + live_chart_static_static_serie_renderer_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/static/static_serie_renderer.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_static_static_serie_renderer_draw; +#line 6 "../src/static/static_serie_renderer.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_static_static_serie_renderer_real_get_bounding_box; +#line 6 "../src/static/static_serie_renderer.vala" + iface->get_visible = live_chart_static_static_serie_renderer_real_get_visible; +#line 6 "../src/static/static_serie_renderer.vala" + iface->set_visible = live_chart_static_static_serie_renderer_real_set_visible; +#line 341 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_instance_init (LiveChartStaticStaticSerieRenderer * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; +#line 6 "../src/static/static_serie_renderer.vala" + self->priv = live_chart_static_static_serie_renderer_get_instance_private (self); +#line 10 "../src/static/static_serie_renderer.vala" + self->priv->_visible = TRUE; +#line 18 "../src/static/static_serie_renderer.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 18 "../src/static/static_serie_renderer.vala" + _tmp0_.x = (gdouble) 0; +#line 18 "../src/static/static_serie_renderer.vala" + _tmp0_.y = (gdouble) 0; +#line 18 "../src/static/static_serie_renderer.vala" + _tmp0_.width = (gdouble) 0; +#line 18 "../src/static/static_serie_renderer.vala" + _tmp0_.height = (gdouble) 0; +#line 18 "../src/static/static_serie_renderer.vala" + self->bounding_box = _tmp0_; +#line 365 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_finalize (GObject * obj) +{ + LiveChartStaticStaticSerieRenderer * self; +#line 6 "../src/static/static_serie_renderer.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRenderer); +#line 12 "../src/static/static_serie_renderer.vala" + _g_object_unref0 (self->priv->_line); +#line 25 "../src/static/static_serie_renderer.vala" + _g_object_unref0 (self->values); +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_CLASS (live_chart_static_static_serie_renderer_parent_class)->finalize (obj); +#line 380 "static_serie_renderer.c" +} + +static GType +live_chart_static_static_serie_renderer_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticSerieRendererClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_serie_renderer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticSerieRenderer), 0, (GInstanceInitFunc) live_chart_static_static_serie_renderer_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_static_static_serie_renderer_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_static_static_serie_renderer_type_id; + live_chart_static_static_serie_renderer_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticSerieRenderer", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (live_chart_static_static_serie_renderer_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartStaticStaticSerieRenderer_private_offset = g_type_add_instance_private (live_chart_static_static_serie_renderer_type_id, sizeof (LiveChartStaticStaticSerieRendererPrivate)); + return live_chart_static_static_serie_renderer_type_id; +} + +GType +live_chart_static_static_serie_renderer_get_type (void) +{ + static volatile gsize live_chart_static_static_serie_renderer_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_serie_renderer_type_id__once)) { + GType live_chart_static_static_serie_renderer_type_id; + live_chart_static_static_serie_renderer_type_id = live_chart_static_static_serie_renderer_get_type_once (); + g_once_init_leave (&live_chart_static_static_serie_renderer_type_id__once, live_chart_static_static_serie_renderer_type_id); + } + return live_chart_static_static_serie_renderer_type_id__once; +} + +static void +_vala_live_chart_static_static_serie_renderer_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticSerieRenderer * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRenderer); +#line 6 "../src/static/static_serie_renderer.vala" + switch (property_id) { +#line 6 "../src/static/static_serie_renderer.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY: +#line 6 "../src/static/static_serie_renderer.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 6 "../src/static/static_serie_renderer.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY: +#line 6 "../src/static/static_serie_renderer.vala" + g_value_set_object (value, live_chart_static_static_serie_renderer_get_line (self)); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 429 "static_serie_renderer.c" + default: +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 435 "static_serie_renderer.c" + } +} + +static void +_vala_live_chart_static_static_serie_renderer_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticSerieRenderer * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRenderer); +#line 6 "../src/static/static_serie_renderer.vala" + switch (property_id) { +#line 6 "../src/static/static_serie_renderer.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY: +#line 6 "../src/static/static_serie_renderer.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 6 "../src/static/static_serie_renderer.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY: +#line 6 "../src/static/static_serie_renderer.vala" + live_chart_static_static_serie_renderer_set_line (self, g_value_get_object (value)); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 461 "static_serie_renderer.c" + default: +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 467 "static_serie_renderer.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/static/static_series.c b/iPDC/lib/liblivechart_static.a.p/static/static_series.c new file mode 100644 index 0000000..1f62db8 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/static/static_series.c @@ -0,0 +1,415 @@ +/* static_series.c generated by valac 0.56.0, the Vala compiler + * generated from static_series.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_SERIES_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIES_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_series_properties[LIVE_CHART_STATIC_STATIC_SERIES_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartStaticStaticSeriesPrivate { + GeeArrayList* series; + LiveChartStaticStaticChart* chart; +}; + +static gint LiveChartStaticStaticSeries_private_offset; +static gpointer live_chart_static_static_series_parent_class = NULL; + +static void __lambda15_ (LiveChartStaticStaticSeries* self, + gdouble value); +static void ___lambda15__live_chart_static_static_serie_value_added (LiveChartStaticStaticSerie* _sender, + gdouble value, + gpointer self); +static void live_chart_static_static_series_finalize (GObject * obj); +static GType live_chart_static_static_series_get_type_once (void); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_series_get_instance_private (LiveChartStaticStaticSeries* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticSeries_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 12 "../src/static/static_series.vala" + return self ? g_object_ref (self) : NULL; +#line 51 "static_series.c" +} + +LiveChartStaticStaticSeries* +live_chart_static_static_series_construct (GType object_type, + LiveChartStaticStaticChart* chart) +{ + LiveChartStaticStaticSeries * self = NULL; + LiveChartStaticStaticChart* _tmp0_; +#line 11 "../src/static/static_series.vala" + g_return_val_if_fail (chart != NULL, NULL); +#line 11 "../src/static/static_series.vala" + self = (LiveChartStaticStaticSeries*) g_object_new (object_type, NULL); +#line 12 "../src/static/static_series.vala" + _tmp0_ = _g_object_ref0 (chart); +#line 12 "../src/static/static_series.vala" + _g_object_unref0 (self->priv->chart); +#line 12 "../src/static/static_series.vala" + self->priv->chart = _tmp0_; +#line 11 "../src/static/static_series.vala" + return self; +#line 72 "static_series.c" +} + +LiveChartStaticStaticSeries* +live_chart_static_static_series_new (LiveChartStaticStaticChart* chart) +{ +#line 11 "../src/static/static_series.vala" + return live_chart_static_static_series_construct (LIVE_CHART_STATIC_TYPE_STATIC_SERIES, chart); +#line 80 "static_series.c" +} + +static void +__lambda15_ (LiveChartStaticStaticSeries* self, + gdouble value) +{ + LiveChartStaticStaticChart* _tmp0_; + LiveChartConfig* _tmp1_; + LiveChartYAxis* _tmp2_; +#line 20 "../src/static/static_series.vala" + _tmp0_ = self->priv->chart; +#line 20 "../src/static/static_series.vala" + _tmp1_ = _tmp0_->config; +#line 20 "../src/static/static_series.vala" + _tmp2_ = _tmp1_->y_axis; +#line 20 "../src/static/static_series.vala" + live_chart_yaxis_update_bounds (_tmp2_, value); +#line 98 "static_series.c" +} + +static void +___lambda15__live_chart_static_static_serie_value_added (LiveChartStaticStaticSerie* _sender, + gdouble value, + gpointer self) +{ +#line 18 "../src/static/static_series.vala" + __lambda15_ ((LiveChartStaticStaticSeries*) self, value); +#line 108 "static_series.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_series_register (LiveChartStaticStaticSeries* self, + LiveChartStaticStaticSerie* serie) +{ + GeeArrayList* _tmp0_; + LiveChartStaticStaticSerie* _tmp1_; + LiveChartStaticStaticSerie* result; +#line 15 "../src/static/static_series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 15 "../src/static/static_series.vala" + g_return_val_if_fail (serie != NULL, NULL); +#line 16 "../src/static/static_series.vala" + _tmp0_ = self->priv->series; +#line 16 "../src/static/static_series.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, serie); +#line 18 "../src/static/static_series.vala" + g_signal_connect_object (serie, "value-added", (GCallback) ___lambda15__live_chart_static_static_serie_value_added, self, 0); +#line 22 "../src/static/static_series.vala" + _tmp1_ = _g_object_ref0 (serie); +#line 22 "../src/static/static_series.vala" + result = _tmp1_; +#line 22 "../src/static/static_series.vala" + return result; +#line 134 "static_series.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_series_get (LiveChartStaticStaticSeries* self, + gint index, + GError** error) +{ + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; + GeeArrayList* _tmp7_; + gpointer _tmp8_; + GError* _inner_error0_ = NULL; + LiveChartStaticStaticSerie* result; +#line 25 "../src/static/static_series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 26 "../src/static/static_series.vala" + _tmp0_ = self->priv->series; +#line 26 "../src/static/static_series.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 26 "../src/static/static_series.vala" + _tmp2_ = _tmp1_; +#line 26 "../src/static/static_series.vala" + if (index > (_tmp2_ - 1)) { +#line 159 "static_series.c" + gchar* _tmp3_; + gchar* _tmp4_; + GError* _tmp5_; + GError* _tmp6_; +#line 27 "../src/static/static_series.vala" + _tmp3_ = g_strdup_printf ("Serie at index %d not found", index); +#line 27 "../src/static/static_series.vala" + _tmp4_ = _tmp3_; +#line 27 "../src/static/static_series.vala" + _tmp5_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, _tmp4_); +#line 27 "../src/static/static_series.vala" + _tmp6_ = _tmp5_; +#line 27 "../src/static/static_series.vala" + _g_free0 (_tmp4_); +#line 27 "../src/static/static_series.vala" + _inner_error0_ = _tmp6_; +#line 27 "../src/static/static_series.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 27 "../src/static/static_series.vala" + g_propagate_error (error, _inner_error0_); +#line 27 "../src/static/static_series.vala" + return NULL; +#line 182 "static_series.c" + } else { +#line 27 "../src/static/static_series.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 27 "../src/static/static_series.vala" + g_clear_error (&_inner_error0_); +#line 27 "../src/static/static_series.vala" + return NULL; +#line 190 "static_series.c" + } + } +#line 29 "../src/static/static_series.vala" + _tmp7_ = self->priv->series; +#line 29 "../src/static/static_series.vala" + _tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, index); +#line 29 "../src/static/static_series.vala" + result = (LiveChartStaticStaticSerie*) _tmp8_; +#line 29 "../src/static/static_series.vala" + return result; +#line 201 "static_series.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_series_get_by_name (LiveChartStaticStaticSeries* self, + const gchar* name, + GError** error) +{ + gchar* _tmp11_; + gchar* _tmp12_; + GError* _tmp13_; + GError* _tmp14_; + GError* _inner_error0_ = NULL; + LiveChartStaticStaticSerie* result; +#line 32 "../src/static/static_series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 32 "../src/static/static_series.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 219 "static_series.c" + { + GeeArrayList* _serie_list = NULL; + GeeArrayList* _tmp0_; + gint _serie_size = 0; + GeeArrayList* _tmp1_; + gint _tmp2_; + gint _tmp3_; + gint _serie_index = 0; +#line 33 "../src/static/static_series.vala" + _tmp0_ = self->priv->series; +#line 33 "../src/static/static_series.vala" + _serie_list = _tmp0_; +#line 33 "../src/static/static_series.vala" + _tmp1_ = _serie_list; +#line 33 "../src/static/static_series.vala" + _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_); +#line 33 "../src/static/static_series.vala" + _tmp3_ = _tmp2_; +#line 33 "../src/static/static_series.vala" + _serie_size = _tmp3_; +#line 33 "../src/static/static_series.vala" + _serie_index = -1; +#line 33 "../src/static/static_series.vala" + while (TRUE) { +#line 244 "static_series.c" + gint _tmp4_; + gint _tmp5_; + LiveChartStaticStaticSerie* serie = NULL; + GeeArrayList* _tmp6_; + gpointer _tmp7_; + LiveChartStaticStaticSerie* _tmp8_; + const gchar* _tmp9_; + const gchar* _tmp10_; +#line 33 "../src/static/static_series.vala" + _serie_index = _serie_index + 1; +#line 33 "../src/static/static_series.vala" + _tmp4_ = _serie_index; +#line 33 "../src/static/static_series.vala" + _tmp5_ = _serie_size; +#line 33 "../src/static/static_series.vala" + if (!(_tmp4_ < _tmp5_)) { +#line 33 "../src/static/static_series.vala" + break; +#line 263 "static_series.c" + } +#line 33 "../src/static/static_series.vala" + _tmp6_ = _serie_list; +#line 33 "../src/static/static_series.vala" + _tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, _serie_index); +#line 33 "../src/static/static_series.vala" + serie = (LiveChartStaticStaticSerie*) _tmp7_; +#line 34 "../src/static/static_series.vala" + _tmp8_ = serie; +#line 34 "../src/static/static_series.vala" + _tmp9_ = live_chart_static_static_serie_get_name (_tmp8_); +#line 34 "../src/static/static_series.vala" + _tmp10_ = _tmp9_; +#line 34 "../src/static/static_series.vala" + if (g_strcmp0 (_tmp10_, name) == 0) { +#line 34 "../src/static/static_series.vala" + result = serie; +#line 34 "../src/static/static_series.vala" + return result; +#line 283 "static_series.c" + } +#line 33 "../src/static/static_series.vala" + _g_object_unref0 (serie); +#line 287 "static_series.c" + } + } +#line 36 "../src/static/static_series.vala" + _tmp11_ = g_strdup_printf ("Serie with name %s not found", name); +#line 36 "../src/static/static_series.vala" + _tmp12_ = _tmp11_; +#line 36 "../src/static/static_series.vala" + _tmp13_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, _tmp12_); +#line 36 "../src/static/static_series.vala" + _tmp14_ = _tmp13_; +#line 36 "../src/static/static_series.vala" + _g_free0 (_tmp12_); +#line 36 "../src/static/static_series.vala" + _inner_error0_ = _tmp14_; +#line 36 "../src/static/static_series.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 36 "../src/static/static_series.vala" + g_propagate_error (error, _inner_error0_); +#line 36 "../src/static/static_series.vala" + return NULL; +#line 308 "static_series.c" + } else { +#line 36 "../src/static/static_series.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 36 "../src/static/static_series.vala" + g_clear_error (&_inner_error0_); +#line 36 "../src/static/static_series.vala" + return NULL; +#line 316 "static_series.c" + } +} + +GeeIterator* +live_chart_static_static_series_iterator (LiveChartStaticStaticSeries* self) +{ + GeeArrayList* _tmp0_; + GeeListIterator* _tmp1_; + GeeIterator* result; +#line 39 "../src/static/static_series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 40 "../src/static/static_series.vala" + _tmp0_ = self->priv->series; +#line 40 "../src/static/static_series.vala" + _tmp1_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp0_); +#line 40 "../src/static/static_series.vala" + result = (GeeIterator*) _tmp1_; +#line 40 "../src/static/static_series.vala" + return result; +#line 336 "static_series.c" +} + +static void +live_chart_static_static_series_class_init (LiveChartStaticStaticSeriesClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_series.vala" + live_chart_static_static_series_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_series.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticSeries_private_offset); +#line 6 "../src/static/static_series.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_series_finalize; +#line 349 "static_series.c" +} + +static void +live_chart_static_static_series_instance_init (LiveChartStaticStaticSeries * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 6 "../src/static/static_series.vala" + self->priv = live_chart_static_static_series_get_instance_private (self); +#line 8 "../src/static/static_series.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_STATIC_TYPE_STATIC_SERIE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL); +#line 8 "../src/static/static_series.vala" + self->priv->series = _tmp0_; +#line 363 "static_series.c" +} + +static void +live_chart_static_static_series_finalize (GObject * obj) +{ + LiveChartStaticStaticSeries * self; +#line 6 "../src/static/static_series.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_SERIES, LiveChartStaticStaticSeries); +#line 8 "../src/static/static_series.vala" + _g_object_unref0 (self->priv->series); +#line 9 "../src/static/static_series.vala" + _g_object_unref0 (self->priv->chart); +#line 6 "../src/static/static_series.vala" + G_OBJECT_CLASS (live_chart_static_static_series_parent_class)->finalize (obj); +#line 378 "static_series.c" +} + +static GType +live_chart_static_static_series_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticSeriesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_series_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticSeries), 0, (GInstanceInitFunc) live_chart_static_static_series_instance_init, NULL }; + GType live_chart_static_static_series_type_id; + live_chart_static_static_series_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticSeries", &g_define_type_info, 0); + LiveChartStaticStaticSeries_private_offset = g_type_add_instance_private (live_chart_static_static_series_type_id, sizeof (LiveChartStaticStaticSeriesPrivate)); + return live_chart_static_static_series_type_id; +} + +GType +live_chart_static_static_series_get_type (void) +{ + static volatile gsize live_chart_static_static_series_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_series_type_id__once)) { + GType live_chart_static_static_series_type_id; + live_chart_static_static_series_type_id = live_chart_static_static_series_get_type_once (); + g_once_init_leave (&live_chart_static_static_series_type_id__once, live_chart_static_static_series_type_id); + } + return live_chart_static_static_series_type_id__once; +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/static/static_values.c b/iPDC/lib/liblivechart_static.a.p/static/static_values.c new file mode 100644 index 0000000..143ec5c --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/static/static_values.c @@ -0,0 +1,348 @@ +/* static_values.c generated by valac 0.56.0, the Vala compiler + * generated from static_values.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include + +#define _g_free0(var) (var = (g_free (var), NULL)) +enum { + LIVE_CHART_STATIC_STATIC_VALUES_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY, + LIVE_CHART_STATIC_STATIC_VALUES_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_values_properties[LIVE_CHART_STATIC_STATIC_VALUES_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +struct _LiveChartStaticStaticValuesPrivate { + LiveChartBounds* _bounds; +}; + +static gint LiveChartStaticStaticValues_private_offset; +static gpointer live_chart_static_static_values_parent_class = NULL; + +static void live_chart_static_static_values_finalize (GObject * obj); +static GType live_chart_static_static_values_get_type_once (void); +static void _vala_live_chart_static_static_values_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_values_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +void +live_chart_static_named_value_copy (const LiveChartStaticNamedValue* self, + LiveChartStaticNamedValue* dest) +{ + const gchar* _tmp0_; + gchar* _tmp1_; +#line 6 "../src/static/static_values.vala" + _tmp0_ = (*self).name; +#line 6 "../src/static/static_values.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 6 "../src/static/static_values.vala" + _g_free0 ((*dest).name); +#line 6 "../src/static/static_values.vala" + (*dest).name = _tmp1_; +#line 6 "../src/static/static_values.vala" + (*dest).value = (*self).value; +#line 59 "static_values.c" +} + +void +live_chart_static_named_value_destroy (LiveChartStaticNamedValue* self) +{ +#line 7 "../src/static/static_values.vala" + _g_free0 ((*self).name); +#line 67 "static_values.c" +} + +LiveChartStaticNamedValue* +live_chart_static_named_value_dup (const LiveChartStaticNamedValue* self) +{ + LiveChartStaticNamedValue* dup; +#line 6 "../src/static/static_values.vala" + dup = g_new0 (LiveChartStaticNamedValue, 1); +#line 6 "../src/static/static_values.vala" + live_chart_static_named_value_copy (self, dup); +#line 6 "../src/static/static_values.vala" + return dup; +#line 80 "static_values.c" +} + +void +live_chart_static_named_value_free (LiveChartStaticNamedValue* self) +{ +#line 6 "../src/static/static_values.vala" + live_chart_static_named_value_destroy (self); +#line 6 "../src/static/static_values.vala" + g_free (self); +#line 90 "static_values.c" +} + +static GType +live_chart_static_named_value_get_type_once (void) +{ + GType live_chart_static_named_value_type_id; + live_chart_static_named_value_type_id = g_boxed_type_register_static ("LiveChartStaticNamedValue", (GBoxedCopyFunc) live_chart_static_named_value_dup, (GBoxedFreeFunc) live_chart_static_named_value_free); + return live_chart_static_named_value_type_id; +} + +GType +live_chart_static_named_value_get_type (void) +{ + static volatile gsize live_chart_static_named_value_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_named_value_type_id__once)) { + GType live_chart_static_named_value_type_id; + live_chart_static_named_value_type_id = live_chart_static_named_value_get_type_once (); + g_once_init_leave (&live_chart_static_named_value_type_id__once, live_chart_static_named_value_type_id); + } + return live_chart_static_named_value_type_id__once; +} + +static inline gpointer +live_chart_static_static_values_get_instance_private (LiveChartStaticStaticValues* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticValues_private_offset); +} + +LiveChartStaticStaticValues* +live_chart_static_static_values_construct (GType object_type) +{ + LiveChartStaticStaticValues * self = NULL; + LiveChartBounds* _tmp0_; + LiveChartBounds* _tmp1_; +#line 17 "../src/static/static_values.vala" + self = (LiveChartStaticStaticValues*) gee_linked_list_construct (object_type, LIVE_CHART_STATIC_TYPE_NAMED_VALUE, (GBoxedCopyFunc) live_chart_static_named_value_dup, (GDestroyNotify) live_chart_static_named_value_free, NULL, NULL, NULL); +#line 18 "../src/static/static_values.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 18 "../src/static/static_values.vala" + _tmp1_ = _tmp0_; +#line 18 "../src/static/static_values.vala" + live_chart_static_static_values_set_bounds (self, _tmp1_); +#line 18 "../src/static/static_values.vala" + _g_object_unref0 (_tmp1_); +#line 17 "../src/static/static_values.vala" + return self; +#line 137 "static_values.c" +} + +LiveChartStaticStaticValues* +live_chart_static_static_values_new (void) +{ +#line 17 "../src/static/static_values.vala" + return live_chart_static_static_values_construct (LIVE_CHART_STATIC_TYPE_STATIC_VALUES); +#line 145 "static_values.c" +} + +void +live_chart_static_static_values_add (LiveChartStaticStaticValues* self, + LiveChartStaticNamedValue* value) +{ + LiveChartBounds* _tmp0_; + LiveChartStaticNamedValue _tmp1_; + LiveChartStaticNamedValue _tmp2_; +#line 21 "../src/static/static_values.vala" + g_return_if_fail (self != NULL); +#line 21 "../src/static/static_values.vala" + g_return_if_fail (value != NULL); +#line 22 "../src/static/static_values.vala" + _tmp0_ = self->priv->_bounds; +#line 22 "../src/static/static_values.vala" + _tmp1_ = *value; +#line 22 "../src/static/static_values.vala" + live_chart_bounds_update (_tmp0_, _tmp1_.value); +#line 23 "../src/static/static_values.vala" + _tmp2_ = *value; +#line 23 "../src/static/static_values.vala" + GEE_ABSTRACT_COLLECTION_CLASS (live_chart_static_static_values_parent_class)->add ((GeeAbstractCollection*) G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_LINKED_LIST, GeeLinkedList), &_tmp2_); +#line 169 "static_values.c" +} + +LiveChartBounds* +live_chart_static_static_values_get_bounds (LiveChartStaticStaticValues* self) +{ + LiveChartBounds* result; + LiveChartBounds* _tmp0_; +#line 14 "../src/static/static_values.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 14 "../src/static/static_values.vala" + _tmp0_ = self->priv->_bounds; +#line 14 "../src/static/static_values.vala" + result = _tmp0_; +#line 14 "../src/static/static_values.vala" + return result; +#line 185 "static_values.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 14 "../src/static/static_values.vala" + return self ? g_object_ref (self) : NULL; +#line 193 "static_values.c" +} + +void +live_chart_static_static_values_set_bounds (LiveChartStaticStaticValues* self, + LiveChartBounds* value) +{ + LiveChartBounds* old_value; +#line 14 "../src/static/static_values.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/static/static_values.vala" + old_value = live_chart_static_static_values_get_bounds (self); +#line 14 "../src/static/static_values.vala" + if (old_value != value) { +#line 207 "static_values.c" + LiveChartBounds* _tmp0_; +#line 14 "../src/static/static_values.vala" + _tmp0_ = _g_object_ref0 (value); +#line 14 "../src/static/static_values.vala" + _g_object_unref0 (self->priv->_bounds); +#line 14 "../src/static/static_values.vala" + self->priv->_bounds = _tmp0_; +#line 14 "../src/static/static_values.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_values_properties[LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY]); +#line 217 "static_values.c" + } +} + +static void +live_chart_static_static_values_class_init (LiveChartStaticStaticValuesClass * klass, + gpointer klass_data) +{ +#line 11 "../src/static/static_values.vala" + live_chart_static_static_values_parent_class = g_type_class_peek_parent (klass); +#line 11 "../src/static/static_values.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticValues_private_offset); +#line 11 "../src/static/static_values.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_values_get_property; +#line 11 "../src/static/static_values.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_values_set_property; +#line 11 "../src/static/static_values.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_values_finalize; +#line 11 "../src/static/static_values.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY, live_chart_static_static_values_properties[LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY] = g_param_spec_object ("bounds", "bounds", "bounds", LIVE_CHART_TYPE_BOUNDS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 237 "static_values.c" +} + +static void +live_chart_static_static_values_instance_init (LiveChartStaticStaticValues * self, + gpointer klass) +{ +#line 11 "../src/static/static_values.vala" + self->priv = live_chart_static_static_values_get_instance_private (self); +#line 246 "static_values.c" +} + +static void +live_chart_static_static_values_finalize (GObject * obj) +{ + LiveChartStaticStaticValues * self; +#line 11 "../src/static/static_values.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValues); +#line 13 "../src/static/static_values.vala" + _g_object_unref0 (self->priv->_bounds); +#line 11 "../src/static/static_values.vala" + G_OBJECT_CLASS (live_chart_static_static_values_parent_class)->finalize (obj); +#line 259 "static_values.c" +} + +static GType +live_chart_static_static_values_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticValuesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_values_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticValues), 0, (GInstanceInitFunc) live_chart_static_static_values_instance_init, NULL }; + GType live_chart_static_static_values_type_id; + live_chart_static_static_values_type_id = g_type_register_static (GEE_TYPE_LINKED_LIST, "LiveChartStaticStaticValues", &g_define_type_info, 0); + LiveChartStaticStaticValues_private_offset = g_type_add_instance_private (live_chart_static_static_values_type_id, sizeof (LiveChartStaticStaticValuesPrivate)); + return live_chart_static_static_values_type_id; +} + +GType +live_chart_static_static_values_get_type (void) +{ + static volatile gsize live_chart_static_static_values_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_values_type_id__once)) { + GType live_chart_static_static_values_type_id; + live_chart_static_static_values_type_id = live_chart_static_static_values_get_type_once (); + g_once_init_leave (&live_chart_static_static_values_type_id__once, live_chart_static_static_values_type_id); + } + return live_chart_static_static_values_type_id__once; +} + +static void +_vala_live_chart_static_static_values_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticValues * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValues); +#line 11 "../src/static/static_values.vala" + switch (property_id) { +#line 11 "../src/static/static_values.vala" + case LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY: +#line 11 "../src/static/static_values.vala" + g_value_set_object (value, live_chart_static_static_values_get_bounds (self)); +#line 11 "../src/static/static_values.vala" + break; +#line 300 "static_values.c" + default: +#line 11 "../src/static/static_values.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 11 "../src/static/static_values.vala" + break; +#line 306 "static_values.c" + } +} + +static void +_vala_live_chart_static_static_values_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticValues * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValues); +#line 11 "../src/static/static_values.vala" + switch (property_id) { +#line 11 "../src/static/static_values.vala" + case LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY: +#line 11 "../src/static/static_values.vala" + live_chart_static_static_values_set_bounds (self, g_value_get_object (value)); +#line 11 "../src/static/static_values.vala" + break; +#line 326 "static_values.c" + default: +#line 11 "../src/static/static_values.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 11 "../src/static/static_values.vala" + break; +#line 332 "static_values.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/threshold_line.c b/iPDC/lib/liblivechart_static.a.p/threshold_line.c new file mode 100644 index 0000000..4f3ea83 --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/threshold_line.c @@ -0,0 +1,303 @@ +/* threshold_line.c generated by valac 0.56.0, the Vala compiler + * generated from threshold_line.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_THRESHOLD_LINE_0_PROPERTY, + LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY, + LIVE_CHART_THRESHOLD_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_threshold_line_properties[LIVE_CHART_THRESHOLD_LINE_NUM_PROPERTIES]; + +struct _LiveChartThresholdLinePrivate { + gdouble _value; +}; + +static gint LiveChartThresholdLine_private_offset; +static gpointer live_chart_threshold_line_parent_class = NULL; + +static void live_chart_threshold_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_threshold_line_finalize (GObject * obj); +static GType live_chart_threshold_line_get_type_once (void); +static void _vala_live_chart_threshold_line_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_threshold_line_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_threshold_line_get_instance_private (LiveChartThresholdLine* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartThresholdLine_private_offset); +} + +LiveChartThresholdLine* +live_chart_threshold_line_construct (GType object_type, + gdouble value) +{ + LiveChartThresholdLine * self = NULL; +#line 10 "../src/threshold_line.vala" + self = (LiveChartThresholdLine*) live_chart_serie_renderer_construct (object_type); +#line 11 "../src/threshold_line.vala" + live_chart_threshold_line_set_value (self, value); +#line 9 "../src/threshold_line.vala" + return self; +#line 59 "threshold_line.c" +} + +LiveChartThresholdLine* +live_chart_threshold_line_new (gdouble value) +{ +#line 9 "../src/threshold_line.vala" + return live_chart_threshold_line_construct (LIVE_CHART_TYPE_THRESHOLD_LINE, value); +#line 67 "threshold_line.c" +} + +static void +live_chart_threshold_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartThresholdLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 14 "../src/threshold_line.vala" + self = (LiveChartThresholdLine*) base; +#line 14 "../src/threshold_line.vala" + g_return_if_fail (ctx != NULL); +#line 14 "../src/threshold_line.vala" + g_return_if_fail (config != NULL); +#line 15 "../src/threshold_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 15 "../src/threshold_line.vala" + _tmp1_ = _tmp0_; +#line 15 "../src/threshold_line.vala" + if (_tmp1_) { +#line 90 "threshold_line.c" + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp2_ = {0}; + LiveChartPath* _tmp3_; + LiveChartPath* _tmp4_; + gdouble y = 0.0; + LiveChartBoundaries _tmp5_; + LiveChartBoundary _tmp6_; + gdouble _tmp7_; + LiveChartYAxis* _tmp8_; + LiveChartBoundaries _tmp9_; + LiveChartBoundary _tmp10_; + LiveChartBoundaries _tmp11_; + LiveChartBoundary _tmp12_; +#line 16 "../src/threshold_line.vala" + live_chart_config_boundaries (config, &_tmp2_); +#line 16 "../src/threshold_line.vala" + boundaries = _tmp2_; +#line 17 "../src/threshold_line.vala" + _tmp3_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 17 "../src/threshold_line.vala" + _tmp4_ = _tmp3_; +#line 17 "../src/threshold_line.vala" + live_chart_path_configure (_tmp4_, ctx); +#line 18 "../src/threshold_line.vala" + _tmp5_ = boundaries; +#line 18 "../src/threshold_line.vala" + _tmp6_ = _tmp5_.y; +#line 18 "../src/threshold_line.vala" + _tmp7_ = self->priv->_value; +#line 18 "../src/threshold_line.vala" + _tmp8_ = config->y_axis; +#line 18 "../src/threshold_line.vala" + y = _tmp6_.max - (_tmp7_ * live_chart_yaxis_get_ratio (_tmp8_)); +#line 19 "../src/threshold_line.vala" + _tmp9_ = boundaries; +#line 19 "../src/threshold_line.vala" + _tmp10_ = _tmp9_.x; +#line 19 "../src/threshold_line.vala" + cairo_move_to (ctx, (gdouble) _tmp10_.min, y); +#line 20 "../src/threshold_line.vala" + _tmp11_ = boundaries; +#line 20 "../src/threshold_line.vala" + _tmp12_ = _tmp11_.x; +#line 20 "../src/threshold_line.vala" + cairo_line_to (ctx, (gdouble) _tmp12_.max, y); +#line 21 "../src/threshold_line.vala" + cairo_stroke (ctx); +#line 138 "threshold_line.c" + } +} + +gdouble +live_chart_threshold_line_get_value (LiveChartThresholdLine* self) +{ + gdouble result; +#line 7 "../src/threshold_line.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 7 "../src/threshold_line.vala" + result = self->priv->_value; +#line 7 "../src/threshold_line.vala" + return result; +#line 152 "threshold_line.c" +} + +void +live_chart_threshold_line_set_value (LiveChartThresholdLine* self, + gdouble value) +{ + gdouble old_value; +#line 7 "../src/threshold_line.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/threshold_line.vala" + old_value = live_chart_threshold_line_get_value (self); +#line 7 "../src/threshold_line.vala" + if (old_value != value) { +#line 7 "../src/threshold_line.vala" + self->priv->_value = value; +#line 7 "../src/threshold_line.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_threshold_line_properties[LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY]); +#line 170 "threshold_line.c" + } +} + +static void +live_chart_threshold_line_class_init (LiveChartThresholdLineClass * klass, + gpointer klass_data) +{ +#line 5 "../src/threshold_line.vala" + live_chart_threshold_line_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/threshold_line.vala" + g_type_class_adjust_private_offset (klass, &LiveChartThresholdLine_private_offset); +#line 5 "../src/threshold_line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_threshold_line_real_draw; +#line 5 "../src/threshold_line.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_threshold_line_get_property; +#line 5 "../src/threshold_line.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_threshold_line_set_property; +#line 5 "../src/threshold_line.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_threshold_line_finalize; +#line 5 "../src/threshold_line.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY, live_chart_threshold_line_properties[LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY] = g_param_spec_double ("value", "value", "value", -G_MAXDOUBLE, G_MAXDOUBLE, (gdouble) 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 192 "threshold_line.c" +} + +static void +live_chart_threshold_line_instance_init (LiveChartThresholdLine * self, + gpointer klass) +{ +#line 5 "../src/threshold_line.vala" + self->priv = live_chart_threshold_line_get_instance_private (self); +#line 7 "../src/threshold_line.vala" + self->priv->_value = (gdouble) 0; +#line 203 "threshold_line.c" +} + +static void +live_chart_threshold_line_finalize (GObject * obj) +{ + LiveChartThresholdLine * self; +#line 5 "../src/threshold_line.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLine); +#line 5 "../src/threshold_line.vala" + G_OBJECT_CLASS (live_chart_threshold_line_parent_class)->finalize (obj); +#line 214 "threshold_line.c" +} + +static GType +live_chart_threshold_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartThresholdLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_threshold_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartThresholdLine), 0, (GInstanceInitFunc) live_chart_threshold_line_instance_init, NULL }; + GType live_chart_threshold_line_type_id; + live_chart_threshold_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartThresholdLine", &g_define_type_info, 0); + LiveChartThresholdLine_private_offset = g_type_add_instance_private (live_chart_threshold_line_type_id, sizeof (LiveChartThresholdLinePrivate)); + return live_chart_threshold_line_type_id; +} + +GType +live_chart_threshold_line_get_type (void) +{ + static volatile gsize live_chart_threshold_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_threshold_line_type_id__once)) { + GType live_chart_threshold_line_type_id; + live_chart_threshold_line_type_id = live_chart_threshold_line_get_type_once (); + g_once_init_leave (&live_chart_threshold_line_type_id__once, live_chart_threshold_line_type_id); + } + return live_chart_threshold_line_type_id__once; +} + +static void +_vala_live_chart_threshold_line_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartThresholdLine * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLine); +#line 5 "../src/threshold_line.vala" + switch (property_id) { +#line 5 "../src/threshold_line.vala" + case LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY: +#line 5 "../src/threshold_line.vala" + g_value_set_double (value, live_chart_threshold_line_get_value (self)); +#line 5 "../src/threshold_line.vala" + break; +#line 255 "threshold_line.c" + default: +#line 5 "../src/threshold_line.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/threshold_line.vala" + break; +#line 261 "threshold_line.c" + } +} + +static void +_vala_live_chart_threshold_line_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartThresholdLine * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLine); +#line 5 "../src/threshold_line.vala" + switch (property_id) { +#line 5 "../src/threshold_line.vala" + case LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY: +#line 5 "../src/threshold_line.vala" + live_chart_threshold_line_set_value (self, g_value_get_double (value)); +#line 5 "../src/threshold_line.vala" + break; +#line 281 "threshold_line.c" + default: +#line 5 "../src/threshold_line.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/threshold_line.vala" + break; +#line 287 "threshold_line.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/utils.c b/iPDC/lib/liblivechart_static.a.p/utils.c new file mode 100644 index 0000000..f96a5cb --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/utils.c @@ -0,0 +1,392 @@ +/* utils.c generated by valac 0.56.0, the Vala compiler + * generated from utils.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include +#include + +#define _g_free0(var) (var = (g_free (var), NULL)) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +VALA_EXTERN gint live_chart_num_of_digits (gint value); +static gfloat* _float_dup (gfloat* self); +static gint __lambda4_ (gint a, + gint b); +static gint ___lambda4__gcompare_data_func (gconstpointer a, + gconstpointer b, + gpointer self); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +gfloat +live_chart_cap (gfloat value) +{ + gint num_digits = 0; + gdouble size = 0.0; + gdouble integer_part = 0.0; + gdouble fractional_part = 0.0; + gdouble _tmp0_ = 0.0; + gdouble _tmp1_; + gdouble delta = 0.0; + gfloat result; +#line 6 "../src/utils.vala" + num_digits = live_chart_num_of_digits ((gint) value); +#line 8 "../src/utils.vala" + size = pow ((gdouble) 10, ((gdouble) num_digits) - 1); +#line 10 "../src/utils.vala" + if (fmod (value, size) == ((gdouble) 0)) { +#line 11 "../src/utils.vala" + result = value; +#line 11 "../src/utils.vala" + return result; +#line 48 "utils.c" + } +#line 15 "../src/utils.vala" + _tmp1_ = modf (value / size, &_tmp0_); +#line 15 "../src/utils.vala" + integer_part = _tmp0_; +#line 15 "../src/utils.vala" + fractional_part = _tmp1_ * size; +#line 17 "../src/utils.vala" + delta = size - fractional_part; +#line 19 "../src/utils.vala" + result = (gfloat) (value + delta); +#line 19 "../src/utils.vala" + return result; +#line 62 "utils.c" +} + +gboolean +live_chart_has_fractional_part (gfloat value) +{ + gboolean result; +#line 23 "../src/utils.vala" + result = value != ((gfloat) ((gint) value)); +#line 23 "../src/utils.vala" + return result; +#line 73 "utils.c" +} + +gchar* +live_chart_format_for_y_axis (const gchar* unit, + gfloat value) +{ + gchar* pattern = NULL; + gchar* _tmp0_; + const gchar* _tmp2_; + gchar* _tmp3_; + gchar* result; +#line 26 "../src/utils.vala" + g_return_val_if_fail (unit != NULL, NULL); +#line 27 "../src/utils.vala" + _tmp0_ = g_strdup ("%0.0f%s"); +#line 27 "../src/utils.vala" + pattern = _tmp0_; +#line 28 "../src/utils.vala" + if (live_chart_has_fractional_part (value)) { +#line 93 "utils.c" + gchar* _tmp1_; +#line 29 "../src/utils.vala" + _tmp1_ = g_strdup ("%0.2f%s"); +#line 29 "../src/utils.vala" + _g_free0 (pattern); +#line 29 "../src/utils.vala" + pattern = _tmp1_; +#line 101 "utils.c" + } +#line 31 "../src/utils.vala" + _tmp2_ = pattern; +#line 31 "../src/utils.vala" + _tmp3_ = g_strdup_printf (_tmp2_, value, unit); +#line 31 "../src/utils.vala" + result = _tmp3_; +#line 31 "../src/utils.vala" + _g_free0 (pattern); +#line 31 "../src/utils.vala" + return result; +#line 113 "utils.c" +} + +static gfloat* +_float_dup (gfloat* self) +{ + gfloat* dup; +#line 37 "../src/utils.vala" + dup = g_new0 (gfloat, 1); +#line 37 "../src/utils.vala" + memcpy (dup, self, sizeof (gfloat)); +#line 37 "../src/utils.vala" + return dup; +#line 126 "utils.c" +} + +static gint +__lambda4_ (gint a, + gint b) +{ + gint result; +#line 57 "../src/utils.vala" + result = a - b; +#line 57 "../src/utils.vala" + return result; +#line 138 "utils.c" +} + +static gint +___lambda4__gcompare_data_func (gconstpointer a, + gconstpointer b, + gpointer self) +{ + gint result; + result = __lambda4_ ((gint) ((gintptr) a), (gint) ((gintptr) b)); +#line 56 "../src/utils.vala" + return result; +#line 150 "utils.c" +} + +GeeList* +live_chart_golden_divisors (gfloat value) +{ + gfloat _tmp1_ = 0.0F; + gfloat factor = 0.0F; + gfloat working_value = 0.0F; + gfloat sqrt = 0.0F; + GeeArrayList* divs = NULL; + GeeArrayList* _tmp2_; + GeeArrayList* _tmp7_; + GeeArrayList* ndivs = NULL; + GeeArrayList* _tmp8_; + gint last_div = 0; + GeeArrayList* _tmp9_; + gpointer _tmp10_; + GeeList* result; +#line 36 "../src/utils.vala" + if (value == ((gfloat) 0)) { +#line 171 "utils.c" + GeeArrayList* _tmp0_; +#line 37 "../src/utils.vala" + _tmp0_ = gee_array_list_new (G_TYPE_FLOAT, (GBoxedCopyFunc) _float_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 37 "../src/utils.vala" + result = (GeeList*) _tmp0_; +#line 37 "../src/utils.vala" + return result; +#line 179 "utils.c" + } +#line 41 "../src/utils.vala" + if (value < ((gfloat) 10)) { +#line 41 "../src/utils.vala" + _tmp1_ = live_chart_cap (100 / value); +#line 185 "utils.c" + } else { +#line 41 "../src/utils.vala" + _tmp1_ = 1.f; +#line 189 "utils.c" + } +#line 41 "../src/utils.vala" + factor = _tmp1_; +#line 42 "../src/utils.vala" + working_value = value * factor; +#line 44 "../src/utils.vala" + sqrt = sqrtf (working_value); +#line 45 "../src/utils.vala" + _tmp2_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL, NULL, NULL); +#line 45 "../src/utils.vala" + divs = _tmp2_; +#line 201 "utils.c" + { + gint i = 0; +#line 47 "../src/utils.vala" + i = 1; +#line 206 "utils.c" + { + gboolean _tmp3_ = FALSE; +#line 47 "../src/utils.vala" + _tmp3_ = TRUE; +#line 47 "../src/utils.vala" + while (TRUE) { +#line 47 "../src/utils.vala" + if (!_tmp3_) { +#line 215 "utils.c" + gint _tmp4_; +#line 47 "../src/utils.vala" + _tmp4_ = i; +#line 47 "../src/utils.vala" + i = _tmp4_ + 1; +#line 221 "utils.c" + } +#line 47 "../src/utils.vala" + _tmp3_ = FALSE; +#line 47 "../src/utils.vala" + if (!(((gfloat) i) <= sqrt)) { +#line 47 "../src/utils.vala" + break; +#line 229 "utils.c" + } +#line 48 "../src/utils.vala" + if (fmodf (working_value, i) == ((gfloat) 0)) { +#line 233 "utils.c" + GeeArrayList* _tmp5_; + gfloat tmp = 0.0F; +#line 49 "../src/utils.vala" + _tmp5_ = divs; +#line 49 "../src/utils.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp5_, (gpointer) ((gintptr) i)); +#line 50 "../src/utils.vala" + tmp = working_value / i; +#line 51 "../src/utils.vala" + if (tmp != ((gfloat) i)) { +#line 244 "utils.c" + GeeArrayList* _tmp6_; +#line 52 "../src/utils.vala" + _tmp6_ = divs; +#line 52 "../src/utils.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp6_, (gpointer) ((gintptr) tmp)); +#line 250 "utils.c" + } + } + } + } + } +#line 56 "../src/utils.vala" + _tmp7_ = divs; +#line 56 "../src/utils.vala" + gee_list_sort ((GeeList*) _tmp7_, ___lambda4__gcompare_data_func, NULL, NULL); +#line 60 "../src/utils.vala" + _tmp8_ = gee_array_list_new (G_TYPE_FLOAT, (GBoxedCopyFunc) _float_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 60 "../src/utils.vala" + ndivs = _tmp8_; +#line 61 "../src/utils.vala" + _tmp9_ = divs; +#line 61 "../src/utils.vala" + _tmp10_ = gee_list_last ((GeeList*) _tmp9_); +#line 61 "../src/utils.vala" + last_div = (gint) ((gintptr) _tmp10_); +#line 270 "utils.c" + { + gint i = 0; + GeeArrayList* _tmp11_; + gint _tmp12_; + gint _tmp13_; +#line 62 "../src/utils.vala" + _tmp11_ = divs; +#line 62 "../src/utils.vala" + _tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_); +#line 62 "../src/utils.vala" + _tmp13_ = _tmp12_; +#line 62 "../src/utils.vala" + i = _tmp13_ - 1; +#line 284 "utils.c" + { + gboolean _tmp14_ = FALSE; +#line 62 "../src/utils.vala" + _tmp14_ = TRUE; +#line 62 "../src/utils.vala" + while (TRUE) { +#line 291 "utils.c" + gint current = 0; + GeeArrayList* _tmp16_; + gpointer _tmp17_; + GeeArrayList* _tmp18_; + gfloat _tmp19_; +#line 62 "../src/utils.vala" + if (!_tmp14_) { +#line 299 "utils.c" + gint _tmp15_; +#line 62 "../src/utils.vala" + _tmp15_ = i; +#line 62 "../src/utils.vala" + i = _tmp15_ - 1; +#line 305 "utils.c" + } +#line 62 "../src/utils.vala" + _tmp14_ = FALSE; +#line 62 "../src/utils.vala" + if (!(i >= 0)) { +#line 62 "../src/utils.vala" + break; +#line 313 "utils.c" + } +#line 63 "../src/utils.vala" + _tmp16_ = divs; +#line 63 "../src/utils.vala" + _tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, i); +#line 63 "../src/utils.vala" + current = (gint) ((gintptr) _tmp17_); +#line 64 "../src/utils.vala" + if ((last_div / current) != 2) { +#line 65 "../src/utils.vala" + continue; +#line 325 "utils.c" + } +#line 67 "../src/utils.vala" + _tmp18_ = ndivs; +#line 67 "../src/utils.vala" + _tmp19_ = (gfloat) current; +#line 67 "../src/utils.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp18_, &_tmp19_); +#line 68 "../src/utils.vala" + last_div = current; +#line 335 "utils.c" + } + } + } +#line 71 "../src/utils.vala" + result = (GeeList*) ndivs; +#line 71 "../src/utils.vala" + _g_object_unref0 (divs); +#line 71 "../src/utils.vala" + return result; +#line 345 "utils.c" +} + +gint +live_chart_num_of_digits (gint value) +{ + gint num_digits = 0; + gint result; +#line 75 "../src/utils.vala" + num_digits = 0; +#line 76 "../src/utils.vala" + while (TRUE) { +#line 357 "utils.c" + gint _tmp0_; +#line 76 "../src/utils.vala" + if (!(value != 0)) { +#line 76 "../src/utils.vala" + break; +#line 363 "utils.c" + } +#line 77 "../src/utils.vala" + value = value / 10; +#line 78 "../src/utils.vala" + num_digits = num_digits + 1; +#line 78 "../src/utils.vala" + _tmp0_ = num_digits; +#line 371 "utils.c" + } +#line 81 "../src/utils.vala" + result = num_digits; +#line 81 "../src/utils.vala" + return result; +#line 377 "utils.c" +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a.p/values.c b/iPDC/lib/liblivechart_static.a.p/values.c new file mode 100644 index 0000000..cd0883b --- /dev/null +++ b/iPDC/lib/liblivechart_static.a.p/values.c @@ -0,0 +1,341 @@ +/* values.c generated by valac 0.56.0, the Vala compiler + * generated from values.vala, do not modify */ + +#include "livechart_static.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_VALUES_0_PROPERTY, + LIVE_CHART_VALUES_BOUNDS_PROPERTY, + LIVE_CHART_VALUES_NUM_PROPERTIES +}; +static GParamSpec* live_chart_values_properties[LIVE_CHART_VALUES_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_timestamped_value_free0(var) ((var == NULL) ? NULL : (var = (live_chart_timestamped_value_free (var), NULL))) + +struct _LiveChartValuesPrivate { + LiveChartBounds* _bounds; + gint buffer_size; +}; + +static gint LiveChartValues_private_offset; +static gpointer live_chart_values_parent_class = NULL; + +static void live_chart_values_finalize (GObject * obj); +static GType live_chart_values_get_type_once (void); +static void _vala_live_chart_values_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_values_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +LiveChartTimestampedValue* +live_chart_timestamped_value_dup (const LiveChartTimestampedValue* self) +{ + LiveChartTimestampedValue* dup; +#line 5 "../src/values.vala" + dup = g_new0 (LiveChartTimestampedValue, 1); +#line 5 "../src/values.vala" + memcpy (dup, self, sizeof (LiveChartTimestampedValue)); +#line 5 "../src/values.vala" + return dup; +#line 53 "values.c" +} + +void +live_chart_timestamped_value_free (LiveChartTimestampedValue* self) +{ +#line 5 "../src/values.vala" + g_free (self); +#line 61 "values.c" +} + +static GType +live_chart_timestamped_value_get_type_once (void) +{ + GType live_chart_timestamped_value_type_id; + live_chart_timestamped_value_type_id = g_boxed_type_register_static ("LiveChartTimestampedValue", (GBoxedCopyFunc) live_chart_timestamped_value_dup, (GBoxedFreeFunc) live_chart_timestamped_value_free); + return live_chart_timestamped_value_type_id; +} + +GType +live_chart_timestamped_value_get_type (void) +{ + static volatile gsize live_chart_timestamped_value_type_id__once = 0; + if (g_once_init_enter (&live_chart_timestamped_value_type_id__once)) { + GType live_chart_timestamped_value_type_id; + live_chart_timestamped_value_type_id = live_chart_timestamped_value_get_type_once (); + g_once_init_leave (&live_chart_timestamped_value_type_id__once, live_chart_timestamped_value_type_id); + } + return live_chart_timestamped_value_type_id__once; +} + +static inline gpointer +live_chart_values_get_instance_private (LiveChartValues* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartValues_private_offset); +} + +LiveChartValues* +live_chart_values_construct (GType object_type, + gint buffer_size) +{ + LiveChartValues * self = NULL; + LiveChartBounds* _tmp0_; + LiveChartBounds* _tmp1_; +#line 17 "../src/values.vala" + self = (LiveChartValues*) gee_linked_list_construct (object_type, LIVE_CHART_TYPE_TIMESTAMPED_VALUE, (GBoxedCopyFunc) live_chart_timestamped_value_dup, (GDestroyNotify) live_chart_timestamped_value_free, NULL, NULL, NULL); +#line 18 "../src/values.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 18 "../src/values.vala" + _tmp1_ = _tmp0_; +#line 18 "../src/values.vala" + live_chart_values_set_bounds (self, _tmp1_); +#line 18 "../src/values.vala" + _g_object_unref0 (_tmp1_); +#line 19 "../src/values.vala" + self->priv->buffer_size = buffer_size; +#line 17 "../src/values.vala" + return self; +#line 111 "values.c" +} + +LiveChartValues* +live_chart_values_new (gint buffer_size) +{ +#line 17 "../src/values.vala" + return live_chart_values_construct (LIVE_CHART_TYPE_VALUES, buffer_size); +#line 119 "values.c" +} + +void +live_chart_values_add (LiveChartValues* self, + LiveChartTimestampedValue* value) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartBounds* _tmp4_; + LiveChartTimestampedValue _tmp5_; + LiveChartTimestampedValue _tmp6_; +#line 22 "../src/values.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/values.vala" + g_return_if_fail (value != NULL); +#line 23 "../src/values.vala" + _tmp0_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) self); +#line 23 "../src/values.vala" + _tmp1_ = _tmp0_; +#line 23 "../src/values.vala" + if (_tmp1_ == self->priv->buffer_size) { +#line 141 "values.c" + gpointer _tmp2_; + LiveChartTimestampedValue* _tmp3_; +#line 24 "../src/values.vala" + _tmp2_ = gee_abstract_list_remove_at ((GeeAbstractList*) self, 0); +#line 24 "../src/values.vala" + _tmp3_ = (LiveChartTimestampedValue*) _tmp2_; +#line 24 "../src/values.vala" + _live_chart_timestamped_value_free0 (_tmp3_); +#line 150 "values.c" + } +#line 26 "../src/values.vala" + _tmp4_ = self->priv->_bounds; +#line 26 "../src/values.vala" + _tmp5_ = *value; +#line 26 "../src/values.vala" + live_chart_bounds_update (_tmp4_, _tmp5_.value); +#line 27 "../src/values.vala" + _tmp6_ = *value; +#line 27 "../src/values.vala" + GEE_ABSTRACT_COLLECTION_CLASS (live_chart_values_parent_class)->add ((GeeAbstractCollection*) G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_LINKED_LIST, GeeLinkedList), &_tmp6_); +#line 162 "values.c" +} + +LiveChartBounds* +live_chart_values_get_bounds (LiveChartValues* self) +{ + LiveChartBounds* result; + LiveChartBounds* _tmp0_; +#line 12 "../src/values.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 12 "../src/values.vala" + _tmp0_ = self->priv->_bounds; +#line 12 "../src/values.vala" + result = _tmp0_; +#line 12 "../src/values.vala" + return result; +#line 178 "values.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 12 "../src/values.vala" + return self ? g_object_ref (self) : NULL; +#line 186 "values.c" +} + +void +live_chart_values_set_bounds (LiveChartValues* self, + LiveChartBounds* value) +{ + LiveChartBounds* old_value; +#line 12 "../src/values.vala" + g_return_if_fail (self != NULL); +#line 12 "../src/values.vala" + old_value = live_chart_values_get_bounds (self); +#line 12 "../src/values.vala" + if (old_value != value) { +#line 200 "values.c" + LiveChartBounds* _tmp0_; +#line 12 "../src/values.vala" + _tmp0_ = _g_object_ref0 (value); +#line 12 "../src/values.vala" + _g_object_unref0 (self->priv->_bounds); +#line 12 "../src/values.vala" + self->priv->_bounds = _tmp0_; +#line 12 "../src/values.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_values_properties[LIVE_CHART_VALUES_BOUNDS_PROPERTY]); +#line 210 "values.c" + } +} + +static void +live_chart_values_class_init (LiveChartValuesClass * klass, + gpointer klass_data) +{ +#line 9 "../src/values.vala" + live_chart_values_parent_class = g_type_class_peek_parent (klass); +#line 9 "../src/values.vala" + g_type_class_adjust_private_offset (klass, &LiveChartValues_private_offset); +#line 9 "../src/values.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_values_get_property; +#line 9 "../src/values.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_values_set_property; +#line 9 "../src/values.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_values_finalize; +#line 9 "../src/values.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_VALUES_BOUNDS_PROPERTY, live_chart_values_properties[LIVE_CHART_VALUES_BOUNDS_PROPERTY] = g_param_spec_object ("bounds", "bounds", "bounds", LIVE_CHART_TYPE_BOUNDS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 230 "values.c" +} + +static void +live_chart_values_instance_init (LiveChartValues * self, + gpointer klass) +{ +#line 9 "../src/values.vala" + self->priv = live_chart_values_get_instance_private (self); +#line 239 "values.c" +} + +static void +live_chart_values_finalize (GObject * obj) +{ + LiveChartValues * self; +#line 9 "../src/values.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_VALUES, LiveChartValues); +#line 11 "../src/values.vala" + _g_object_unref0 (self->priv->_bounds); +#line 9 "../src/values.vala" + G_OBJECT_CLASS (live_chart_values_parent_class)->finalize (obj); +#line 252 "values.c" +} + +static GType +live_chart_values_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartValuesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_values_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartValues), 0, (GInstanceInitFunc) live_chart_values_instance_init, NULL }; + GType live_chart_values_type_id; + live_chart_values_type_id = g_type_register_static (GEE_TYPE_LINKED_LIST, "LiveChartValues", &g_define_type_info, 0); + LiveChartValues_private_offset = g_type_add_instance_private (live_chart_values_type_id, sizeof (LiveChartValuesPrivate)); + return live_chart_values_type_id; +} + +GType +live_chart_values_get_type (void) +{ + static volatile gsize live_chart_values_type_id__once = 0; + if (g_once_init_enter (&live_chart_values_type_id__once)) { + GType live_chart_values_type_id; + live_chart_values_type_id = live_chart_values_get_type_once (); + g_once_init_leave (&live_chart_values_type_id__once, live_chart_values_type_id); + } + return live_chart_values_type_id__once; +} + +static void +_vala_live_chart_values_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartValues * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_VALUES, LiveChartValues); +#line 9 "../src/values.vala" + switch (property_id) { +#line 9 "../src/values.vala" + case LIVE_CHART_VALUES_BOUNDS_PROPERTY: +#line 9 "../src/values.vala" + g_value_set_object (value, live_chart_values_get_bounds (self)); +#line 9 "../src/values.vala" + break; +#line 293 "values.c" + default: +#line 9 "../src/values.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 9 "../src/values.vala" + break; +#line 299 "values.c" + } +} + +static void +_vala_live_chart_values_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartValues * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_VALUES, LiveChartValues); +#line 9 "../src/values.vala" + switch (property_id) { +#line 9 "../src/values.vala" + case LIVE_CHART_VALUES_BOUNDS_PROPERTY: +#line 9 "../src/values.vala" + live_chart_values_set_bounds (self, g_value_get_object (value)); +#line 9 "../src/values.vala" + break; +#line 319 "values.c" + default: +#line 9 "../src/values.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 9 "../src/values.vala" + break; +#line 325 "values.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/livechart.h b/iPDC/lib/livechart.h new file mode 100644 index 0000000..760f3b7 --- /dev/null +++ b/iPDC/lib/livechart.h @@ -0,0 +1,1846 @@ +/* livechart.h generated by valac 0.56.0, the Vala compiler, do not modify */ + +#ifndef __SRC_LIVECHART_H__ +#define __SRC_LIVECHART_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +G_BEGIN_DECLS + +#if !defined(VALA_EXTERN) +#if defined(_MSC_VER) +#define VALA_EXTERN __declspec(dllexport) extern +#elif __GNUC__ >= 4 +#define VALA_EXTERN __attribute__((visibility("default"))) extern +#else +#define VALA_EXTERN extern +#endif +#endif +#define LIVE_CHART_GRID_ABSCISSA_TIME_PADDING 5 +#define LIVE_CHART_STATIC_STATIC_GRID_ABSCISSA_TIME_PADDING 5 + +#define LIVE_CHART_TYPE_DRAWABLE (live_chart_drawable_get_type ()) +#define LIVE_CHART_DRAWABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_DRAWABLE, LiveChartDrawable)) +#define LIVE_CHART_IS_DRAWABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_DRAWABLE)) +#define LIVE_CHART_DRAWABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LIVE_CHART_TYPE_DRAWABLE, LiveChartDrawableIface)) + +typedef struct _LiveChartDrawable LiveChartDrawable; +typedef struct _LiveChartDrawableIface LiveChartDrawableIface; + +#define LIVE_CHART_TYPE_CONFIG (live_chart_config_get_type ()) +#define LIVE_CHART_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_CONFIG, LiveChartConfig)) +#define LIVE_CHART_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_CONFIG, LiveChartConfigClass)) +#define LIVE_CHART_IS_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_CONFIG)) +#define LIVE_CHART_IS_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_CONFIG)) +#define LIVE_CHART_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_CONFIG, LiveChartConfigClass)) + +typedef struct _LiveChartConfig LiveChartConfig; +typedef struct _LiveChartConfigClass LiveChartConfigClass; + +#define LIVE_CHART_TYPE_BOUNDING_BOX (live_chart_bounding_box_get_type ()) +typedef struct _LiveChartBoundingBox LiveChartBoundingBox; + +#define LIVE_CHART_TYPE_AREA (live_chart_area_get_type ()) +#define LIVE_CHART_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_AREA, LiveChartArea)) +#define LIVE_CHART_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_AREA, LiveChartAreaClass)) +#define LIVE_CHART_IS_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_AREA)) +#define LIVE_CHART_IS_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_AREA)) +#define LIVE_CHART_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_AREA, LiveChartAreaClass)) + +typedef struct _LiveChartArea LiveChartArea; +typedef struct _LiveChartAreaClass LiveChartAreaClass; +typedef struct _LiveChartAreaPrivate LiveChartAreaPrivate; + +#define LIVE_CHART_TYPE_POINTS (live_chart_points_get_type ()) +#define LIVE_CHART_POINTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_POINTS, LiveChartPoints)) +#define LIVE_CHART_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_POINTS, LiveChartPointsClass)) +#define LIVE_CHART_IS_POINTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_POINTS)) +#define LIVE_CHART_IS_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_POINTS)) +#define LIVE_CHART_POINTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_POINTS, LiveChartPointsClass)) + +typedef struct _LiveChartPoints LiveChartPoints; +typedef struct _LiveChartPointsClass LiveChartPointsClass; + +#define LIVE_CHART_TYPE_XAXIS (live_chart_xaxis_get_type ()) +#define LIVE_CHART_XAXIS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_XAXIS, LiveChartXAxis)) +#define LIVE_CHART_XAXIS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_XAXIS, LiveChartXAxisClass)) +#define LIVE_CHART_IS_XAXIS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_XAXIS)) +#define LIVE_CHART_IS_XAXIS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_XAXIS)) +#define LIVE_CHART_XAXIS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_XAXIS, LiveChartXAxisClass)) + +typedef struct _LiveChartXAxis LiveChartXAxis; +typedef struct _LiveChartXAxisClass LiveChartXAxisClass; +typedef struct _LiveChartXAxisPrivate LiveChartXAxisPrivate; + +#define LIVE_CHART_TYPE_LABELS (live_chart_labels_get_type ()) +#define LIVE_CHART_LABELS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_LABELS, LiveChartLabels)) +#define LIVE_CHART_LABELS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_LABELS, LiveChartLabelsClass)) +#define LIVE_CHART_IS_LABELS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_LABELS)) +#define LIVE_CHART_IS_LABELS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_LABELS)) +#define LIVE_CHART_LABELS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_LABELS, LiveChartLabelsClass)) + +typedef struct _LiveChartLabels LiveChartLabels; +typedef struct _LiveChartLabelsClass LiveChartLabelsClass; + +#define LIVE_CHART_TYPE_PATH (live_chart_path_get_type ()) +#define LIVE_CHART_PATH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_PATH, LiveChartPath)) +#define LIVE_CHART_PATH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_PATH, LiveChartPathClass)) +#define LIVE_CHART_IS_PATH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_PATH)) +#define LIVE_CHART_IS_PATH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_PATH)) +#define LIVE_CHART_PATH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_PATH, LiveChartPathClass)) + +typedef struct _LiveChartPath LiveChartPath; +typedef struct _LiveChartPathClass LiveChartPathClass; + +#define LIVE_CHART_TYPE_TICKS (live_chart_ticks_get_type ()) +typedef struct _LiveChartTicks LiveChartTicks; + +#define LIVE_CHART_TYPE_YAXIS (live_chart_yaxis_get_type ()) +#define LIVE_CHART_YAXIS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_YAXIS, LiveChartYAxis)) +#define LIVE_CHART_YAXIS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_YAXIS, LiveChartYAxisClass)) +#define LIVE_CHART_IS_YAXIS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_YAXIS)) +#define LIVE_CHART_IS_YAXIS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_YAXIS)) +#define LIVE_CHART_YAXIS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_YAXIS, LiveChartYAxisClass)) + +typedef struct _LiveChartYAxis LiveChartYAxis; +typedef struct _LiveChartYAxisClass LiveChartYAxisClass; +typedef struct _LiveChartYAxisPrivate LiveChartYAxisPrivate; + +#define LIVE_CHART_TYPE_BOUNDS (live_chart_bounds_get_type ()) +#define LIVE_CHART_BOUNDS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_BOUNDS, LiveChartBounds)) +#define LIVE_CHART_BOUNDS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_BOUNDS, LiveChartBoundsClass)) +#define LIVE_CHART_IS_BOUNDS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_BOUNDS)) +#define LIVE_CHART_IS_BOUNDS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_BOUNDS)) +#define LIVE_CHART_BOUNDS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_BOUNDS, LiveChartBoundsClass)) + +typedef struct _LiveChartBounds LiveChartBounds; +typedef struct _LiveChartBoundsClass LiveChartBoundsClass; + +#define LIVE_CHART_TYPE_BACKGROUND (live_chart_background_get_type ()) +#define LIVE_CHART_BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_BACKGROUND, LiveChartBackground)) +#define LIVE_CHART_BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_BACKGROUND, LiveChartBackgroundClass)) +#define LIVE_CHART_IS_BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_BACKGROUND)) +#define LIVE_CHART_IS_BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_BACKGROUND)) +#define LIVE_CHART_BACKGROUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_BACKGROUND, LiveChartBackgroundClass)) + +typedef struct _LiveChartBackground LiveChartBackground; +typedef struct _LiveChartBackgroundClass LiveChartBackgroundClass; +typedef struct _LiveChartBackgroundPrivate LiveChartBackgroundPrivate; + +#define LIVE_CHART_TYPE_SERIE_RENDERER (live_chart_serie_renderer_get_type ()) +#define LIVE_CHART_SERIE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRenderer)) +#define LIVE_CHART_SERIE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRendererClass)) +#define LIVE_CHART_IS_SERIE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SERIE_RENDERER)) +#define LIVE_CHART_IS_SERIE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SERIE_RENDERER)) +#define LIVE_CHART_SERIE_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRendererClass)) + +typedef struct _LiveChartSerieRenderer LiveChartSerieRenderer; +typedef struct _LiveChartSerieRendererClass LiveChartSerieRendererClass; +typedef struct _LiveChartSerieRendererPrivate LiveChartSerieRendererPrivate; + +#define LIVE_CHART_TYPE_VALUES (live_chart_values_get_type ()) +#define LIVE_CHART_VALUES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_VALUES, LiveChartValues)) +#define LIVE_CHART_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_VALUES, LiveChartValuesClass)) +#define LIVE_CHART_IS_VALUES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_VALUES)) +#define LIVE_CHART_IS_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_VALUES)) +#define LIVE_CHART_VALUES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_VALUES, LiveChartValuesClass)) + +typedef struct _LiveChartValues LiveChartValues; +typedef struct _LiveChartValuesClass LiveChartValuesClass; + +#define LIVE_CHART_TYPE_BAR (live_chart_bar_get_type ()) +#define LIVE_CHART_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_BAR, LiveChartBar)) +#define LIVE_CHART_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_BAR, LiveChartBarClass)) +#define LIVE_CHART_IS_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_BAR)) +#define LIVE_CHART_IS_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_BAR)) +#define LIVE_CHART_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_BAR, LiveChartBarClass)) + +typedef struct _LiveChartBar LiveChartBar; +typedef struct _LiveChartBarClass LiveChartBarClass; +typedef struct _LiveChartBarPrivate LiveChartBarPrivate; + +#define LIVE_CHART_TYPE_SEGMENT (live_chart_segment_get_type ()) +typedef struct _LiveChartSegment LiveChartSegment; + +#define LIVE_CHART_TYPE_COORD (live_chart_coord_get_type ()) +typedef struct _LiveChartCoord LiveChartCoord; + +#define LIVE_CHART_TYPE_BEZIER_CURVE (live_chart_bezier_curve_get_type ()) +typedef struct _LiveChartBezierCurve LiveChartBezierCurve; +typedef struct _LiveChartBoundsPrivate LiveChartBoundsPrivate; + +#define LIVE_CHART_TYPE_CHART_ERROR (live_chart_chart_error_get_type ()) + +#define LIVE_CHART_TYPE_CHART (live_chart_chart_get_type ()) +#define LIVE_CHART_CHART(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_CHART, LiveChartChart)) +#define LIVE_CHART_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_CHART, LiveChartChartClass)) +#define LIVE_CHART_IS_CHART(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_CHART)) +#define LIVE_CHART_IS_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_CHART)) +#define LIVE_CHART_CHART_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_CHART, LiveChartChartClass)) + +typedef struct _LiveChartChart LiveChartChart; +typedef struct _LiveChartChartClass LiveChartChartClass; +typedef struct _LiveChartChartPrivate LiveChartChartPrivate; + +#define LIVE_CHART_TYPE_SERIES (live_chart_series_get_type ()) +#define LIVE_CHART_SERIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SERIES, LiveChartSeries)) +#define LIVE_CHART_SERIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SERIES, LiveChartSeriesClass)) +#define LIVE_CHART_IS_SERIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SERIES)) +#define LIVE_CHART_IS_SERIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SERIES)) +#define LIVE_CHART_SERIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SERIES, LiveChartSeriesClass)) + +typedef struct _LiveChartSeries LiveChartSeries; +typedef struct _LiveChartSeriesClass LiveChartSeriesClass; + +#define LIVE_CHART_TYPE_SERIE (live_chart_serie_get_type ()) +#define LIVE_CHART_SERIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SERIE, LiveChartSerie)) +#define LIVE_CHART_SERIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SERIE, LiveChartSerieClass)) +#define LIVE_CHART_IS_SERIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SERIE)) +#define LIVE_CHART_IS_SERIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SERIE)) +#define LIVE_CHART_SERIE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SERIE, LiveChartSerieClass)) + +typedef struct _LiveChartSerie LiveChartSerie; +typedef struct _LiveChartSerieClass LiveChartSerieClass; + +#define LIVE_CHART_TYPE_GRID (live_chart_grid_get_type ()) +#define LIVE_CHART_GRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_GRID, LiveChartGrid)) +#define LIVE_CHART_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_GRID, LiveChartGridClass)) +#define LIVE_CHART_IS_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_GRID)) +#define LIVE_CHART_IS_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_GRID)) +#define LIVE_CHART_GRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_GRID, LiveChartGridClass)) + +typedef struct _LiveChartGrid LiveChartGrid; +typedef struct _LiveChartGridClass LiveChartGridClass; + +#define LIVE_CHART_TYPE_LEGEND (live_chart_legend_get_type ()) +#define LIVE_CHART_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_LEGEND, LiveChartLegend)) +#define LIVE_CHART_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_LEGEND, LiveChartLegendClass)) +#define LIVE_CHART_IS_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_LEGEND)) +#define LIVE_CHART_IS_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_LEGEND)) +#define LIVE_CHART_LEGEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_LEGEND, LiveChartLegendClass)) + +typedef struct _LiveChartLegend LiveChartLegend; +typedef struct _LiveChartLegendClass LiveChartLegendClass; +typedef enum { + LIVE_CHART_AUTO_PADDING_NONE = 1 << 0, + LIVE_CHART_AUTO_PADDING_TOP = 1 << 1, + LIVE_CHART_AUTO_PADDING_RIGHT = 1 << 2, + LIVE_CHART_AUTO_PADDING_BOTTOM = 1 << 3, + LIVE_CHART_AUTO_PADDING_LEFT = 1 << 4 +} LiveChartAutoPadding; + +#define LIVE_CHART_TYPE_AUTO_PADDING (live_chart_auto_padding_get_type ()) + +#define LIVE_CHART_TYPE_PADDING (live_chart_padding_get_type ()) +typedef struct _LiveChartPadding LiveChartPadding; + +#define LIVE_CHART_TYPE_BOUNDARY (live_chart_boundary_get_type ()) +typedef struct _LiveChartBoundary LiveChartBoundary; + +#define LIVE_CHART_TYPE_BOUNDARIES (live_chart_boundaries_get_type ()) +typedef struct _LiveChartBoundaries LiveChartBoundaries; +typedef struct _LiveChartConfigPrivate LiveChartConfigPrivate; + +#define LIVE_CHART_TYPE_COLORABLE (live_chart_colorable_get_type ()) +#define LIVE_CHART_COLORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_COLORABLE, LiveChartColorable)) +#define LIVE_CHART_IS_COLORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_COLORABLE)) +#define LIVE_CHART_COLORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LIVE_CHART_TYPE_COLORABLE, LiveChartColorableIface)) + +typedef struct _LiveChartColorable LiveChartColorable; +typedef struct _LiveChartColorableIface LiveChartColorableIface; + +#define LIVE_CHART_TYPE_FONT (live_chart_font_get_type ()) +#define LIVE_CHART_FONT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_FONT, LiveChartFont)) +#define LIVE_CHART_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_FONT, LiveChartFontClass)) +#define LIVE_CHART_IS_FONT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_FONT)) +#define LIVE_CHART_IS_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_FONT)) +#define LIVE_CHART_FONT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_FONT, LiveChartFontClass)) + +typedef struct _LiveChartFont LiveChartFont; +typedef struct _LiveChartFontClass LiveChartFontClass; +typedef struct _LiveChartFontPrivate LiveChartFontPrivate; + +#define LIVE_CHART_TYPE_POINT (live_chart_point_get_type ()) +typedef struct _LiveChartPoint LiveChartPoint; + +#define LIVE_CHART_TYPE_TIMESTAMPED_VALUE (live_chart_timestamped_value_get_type ()) +typedef struct _LiveChartTimestampedValue LiveChartTimestampedValue; +typedef struct _LiveChartGridPrivate LiveChartGridPrivate; + +#define LIVE_CHART_TYPE_INTERSECTIONS (live_chart_intersections_get_type ()) +#define LIVE_CHART_INTERSECTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_INTERSECTIONS, LiveChartIntersections)) +#define LIVE_CHART_INTERSECTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_INTERSECTIONS, LiveChartIntersectionsClass)) +#define LIVE_CHART_IS_INTERSECTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_INTERSECTIONS)) +#define LIVE_CHART_IS_INTERSECTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_INTERSECTIONS)) +#define LIVE_CHART_INTERSECTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_INTERSECTIONS, LiveChartIntersectionsClass)) + +typedef struct _LiveChartIntersections LiveChartIntersections; +typedef struct _LiveChartIntersectionsClass LiveChartIntersectionsClass; +typedef struct _LiveChartIntersectionsPrivate LiveChartIntersectionsPrivate; + +#define LIVE_CHART_TYPE_REGION (live_chart_region_get_type ()) +#define LIVE_CHART_REGION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_REGION, LiveChartRegion)) +#define LIVE_CHART_REGION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_REGION, LiveChartRegionClass)) +#define LIVE_CHART_IS_REGION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_REGION)) +#define LIVE_CHART_IS_REGION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_REGION)) +#define LIVE_CHART_REGION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_REGION, LiveChartRegionClass)) + +typedef struct _LiveChartRegion LiveChartRegion; +typedef struct _LiveChartRegionClass LiveChartRegionClass; + +#define LIVE_CHART_TYPE_INTERSECTION (live_chart_intersection_get_type ()) +#define LIVE_CHART_INTERSECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersection)) +#define LIVE_CHART_INTERSECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersectionClass)) +#define LIVE_CHART_IS_INTERSECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_INTERSECTION)) +#define LIVE_CHART_IS_INTERSECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_INTERSECTION)) +#define LIVE_CHART_INTERSECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersectionClass)) + +typedef struct _LiveChartIntersection LiveChartIntersection; +typedef struct _LiveChartIntersectionClass LiveChartIntersectionClass; +typedef struct _LiveChartIntersectionPrivate LiveChartIntersectionPrivate; + +#define LIVE_CHART_TYPE_INTERSECTOR (live_chart_intersector_get_type ()) +#define LIVE_CHART_INTERSECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_INTERSECTOR, LiveChartIntersector)) +#define LIVE_CHART_IS_INTERSECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_INTERSECTOR)) +#define LIVE_CHART_INTERSECTOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LIVE_CHART_TYPE_INTERSECTOR, LiveChartIntersectorIface)) + +typedef struct _LiveChartIntersector LiveChartIntersector; +typedef struct _LiveChartIntersectorIface LiveChartIntersectorIface; + +#define LIVE_CHART_TYPE_BEZIER_INTERSECTOR (live_chart_bezier_intersector_get_type ()) +#define LIVE_CHART_BEZIER_INTERSECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_BEZIER_INTERSECTOR, LiveChartBezierIntersector)) +#define LIVE_CHART_BEZIER_INTERSECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_BEZIER_INTERSECTOR, LiveChartBezierIntersectorClass)) +#define LIVE_CHART_IS_BEZIER_INTERSECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_BEZIER_INTERSECTOR)) +#define LIVE_CHART_IS_BEZIER_INTERSECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_BEZIER_INTERSECTOR)) +#define LIVE_CHART_BEZIER_INTERSECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_BEZIER_INTERSECTOR, LiveChartBezierIntersectorClass)) + +typedef struct _LiveChartBezierIntersector LiveChartBezierIntersector; +typedef struct _LiveChartBezierIntersectorClass LiveChartBezierIntersectorClass; +typedef struct _LiveChartBezierIntersectorPrivate LiveChartBezierIntersectorPrivate; +typedef struct _LiveChartLabelsPrivate LiveChartLabelsPrivate; +typedef struct _LiveChartLegendPrivate LiveChartLegendPrivate; + +#define LIVE_CHART_TYPE_HORIZONTAL_LEGEND (live_chart_horizontal_legend_get_type ()) +#define LIVE_CHART_HORIZONTAL_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_HORIZONTAL_LEGEND, LiveChartHorizontalLegend)) +#define LIVE_CHART_HORIZONTAL_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_HORIZONTAL_LEGEND, LiveChartHorizontalLegendClass)) +#define LIVE_CHART_IS_HORIZONTAL_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_HORIZONTAL_LEGEND)) +#define LIVE_CHART_IS_HORIZONTAL_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_HORIZONTAL_LEGEND)) +#define LIVE_CHART_HORIZONTAL_LEGEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_HORIZONTAL_LEGEND, LiveChartHorizontalLegendClass)) + +typedef struct _LiveChartHorizontalLegend LiveChartHorizontalLegend; +typedef struct _LiveChartHorizontalLegendClass LiveChartHorizontalLegendClass; +typedef struct _LiveChartHorizontalLegendPrivate LiveChartHorizontalLegendPrivate; + +#define LIVE_CHART_TYPE_NOOP_LEGEND (live_chart_noop_legend_get_type ()) +#define LIVE_CHART_NOOP_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_NOOP_LEGEND, LiveChartNoopLegend)) +#define LIVE_CHART_NOOP_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_NOOP_LEGEND, LiveChartNoopLegendClass)) +#define LIVE_CHART_IS_NOOP_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_NOOP_LEGEND)) +#define LIVE_CHART_IS_NOOP_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_NOOP_LEGEND)) +#define LIVE_CHART_NOOP_LEGEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_NOOP_LEGEND, LiveChartNoopLegendClass)) + +typedef struct _LiveChartNoopLegend LiveChartNoopLegend; +typedef struct _LiveChartNoopLegendClass LiveChartNoopLegendClass; +typedef struct _LiveChartNoopLegendPrivate LiveChartNoopLegendPrivate; + +#define LIVE_CHART_TYPE_LINE (live_chart_line_get_type ()) +#define LIVE_CHART_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_LINE, LiveChartLine)) +#define LIVE_CHART_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_LINE, LiveChartLineClass)) +#define LIVE_CHART_IS_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_LINE)) +#define LIVE_CHART_IS_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_LINE)) +#define LIVE_CHART_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_LINE, LiveChartLineClass)) + +typedef struct _LiveChartLine LiveChartLine; +typedef struct _LiveChartLineClass LiveChartLineClass; +typedef struct _LiveChartLinePrivate LiveChartLinePrivate; + +#define LIVE_CHART_TYPE_LINE_AREA (live_chart_line_area_get_type ()) +#define LIVE_CHART_LINE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_LINE_AREA, LiveChartLineArea)) +#define LIVE_CHART_LINE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_LINE_AREA, LiveChartLineAreaClass)) +#define LIVE_CHART_IS_LINE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_LINE_AREA)) +#define LIVE_CHART_IS_LINE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_LINE_AREA)) +#define LIVE_CHART_LINE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_LINE_AREA, LiveChartLineAreaClass)) + +typedef struct _LiveChartLineArea LiveChartLineArea; +typedef struct _LiveChartLineAreaClass LiveChartLineAreaClass; +typedef struct _LiveChartLineAreaPrivate LiveChartLineAreaPrivate; + +#define LIVE_CHART_TYPE_MAX_BOUND_LINE (live_chart_max_bound_line_get_type ()) +#define LIVE_CHART_MAX_BOUND_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_MAX_BOUND_LINE, LiveChartMaxBoundLine)) +#define LIVE_CHART_MAX_BOUND_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_MAX_BOUND_LINE, LiveChartMaxBoundLineClass)) +#define LIVE_CHART_IS_MAX_BOUND_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_MAX_BOUND_LINE)) +#define LIVE_CHART_IS_MAX_BOUND_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_MAX_BOUND_LINE)) +#define LIVE_CHART_MAX_BOUND_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_MAX_BOUND_LINE, LiveChartMaxBoundLineClass)) + +typedef struct _LiveChartMaxBoundLine LiveChartMaxBoundLine; +typedef struct _LiveChartMaxBoundLineClass LiveChartMaxBoundLineClass; +typedef struct _LiveChartMaxBoundLinePrivate LiveChartMaxBoundLinePrivate; + +#define LIVE_CHART_TYPE_MIN_BOUND_LINE (live_chart_min_bound_line_get_type ()) +#define LIVE_CHART_MIN_BOUND_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_MIN_BOUND_LINE, LiveChartMinBoundLine)) +#define LIVE_CHART_MIN_BOUND_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_MIN_BOUND_LINE, LiveChartMinBoundLineClass)) +#define LIVE_CHART_IS_MIN_BOUND_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_MIN_BOUND_LINE)) +#define LIVE_CHART_IS_MIN_BOUND_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_MIN_BOUND_LINE)) +#define LIVE_CHART_MIN_BOUND_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_MIN_BOUND_LINE, LiveChartMinBoundLineClass)) + +typedef struct _LiveChartMinBoundLine LiveChartMinBoundLine; +typedef struct _LiveChartMinBoundLineClass LiveChartMinBoundLineClass; +typedef struct _LiveChartMinBoundLinePrivate LiveChartMinBoundLinePrivate; + +#define LIVE_CHART_TYPE_DASH (live_chart_dash_get_type ()) +typedef struct _LiveChartDash LiveChartDash; +typedef struct _LiveChartPathPrivate LiveChartPathPrivate; +typedef struct _LiveChartPointsPrivate LiveChartPointsPrivate; +typedef enum { + LIVE_CHART_REGION_HANDLE_STATUS_ENTER, + LIVE_CHART_REGION_HANDLE_STATUS_EXIT, + LIVE_CHART_REGION_HANDLE_STATUS_WITHIN, + LIVE_CHART_REGION_HANDLE_STATUS_OUT +} LiveChartRegionHandleStatus; + +#define LIVE_CHART_TYPE_REGION_HANDLE_STATUS (live_chart_region_handle_status_get_type ()) + +#define LIVE_CHART_TYPE_REGION_HANDLE_RESULT (live_chart_region_handle_result_get_type ()) +typedef struct _LiveChartRegionHandleResult LiveChartRegionHandleResult; +typedef LiveChartCoord* (*LiveChartGetIntersection) (gdouble at_value, gpointer user_data); +typedef struct _LiveChartRegionPrivate LiveChartRegionPrivate; +typedef struct _LiveChartSeriePrivate LiveChartSeriePrivate; +typedef struct _LiveChartSeriesPrivate LiveChartSeriesPrivate; + +#define LIVE_CHART_TYPE_SMOOTH_LINE (live_chart_smooth_line_get_type ()) +#define LIVE_CHART_SMOOTH_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine)) +#define LIVE_CHART_SMOOTH_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLineClass)) +#define LIVE_CHART_IS_SMOOTH_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SMOOTH_LINE)) +#define LIVE_CHART_IS_SMOOTH_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SMOOTH_LINE)) +#define LIVE_CHART_SMOOTH_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLineClass)) + +typedef struct _LiveChartSmoothLine LiveChartSmoothLine; +typedef struct _LiveChartSmoothLineClass LiveChartSmoothLineClass; +typedef struct _LiveChartSmoothLinePrivate LiveChartSmoothLinePrivate; + +#define LIVE_CHART_TYPE_SMOOTH_LINE_AREA (live_chart_smooth_line_area_get_type ()) +#define LIVE_CHART_SMOOTH_LINE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineArea)) +#define LIVE_CHART_SMOOTH_LINE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineAreaClass)) +#define LIVE_CHART_IS_SMOOTH_LINE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SMOOTH_LINE_AREA)) +#define LIVE_CHART_IS_SMOOTH_LINE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SMOOTH_LINE_AREA)) +#define LIVE_CHART_SMOOTH_LINE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineAreaClass)) + +typedef struct _LiveChartSmoothLineArea LiveChartSmoothLineArea; +typedef struct _LiveChartSmoothLineAreaClass LiveChartSmoothLineAreaClass; +typedef struct _LiveChartSmoothLineAreaPrivate LiveChartSmoothLineAreaPrivate; + +#define LIVE_CHART_TYPE_THRESHOLD_LINE (live_chart_threshold_line_get_type ()) +#define LIVE_CHART_THRESHOLD_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLine)) +#define LIVE_CHART_THRESHOLD_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLineClass)) +#define LIVE_CHART_IS_THRESHOLD_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_THRESHOLD_LINE)) +#define LIVE_CHART_IS_THRESHOLD_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_THRESHOLD_LINE)) +#define LIVE_CHART_THRESHOLD_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLineClass)) + +typedef struct _LiveChartThresholdLine LiveChartThresholdLine; +typedef struct _LiveChartThresholdLineClass LiveChartThresholdLineClass; +typedef struct _LiveChartThresholdLinePrivate LiveChartThresholdLinePrivate; +typedef struct _LiveChartValuesPrivate LiveChartValuesPrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_CHART (live_chart_static_static_chart_get_type ()) +#define LIVE_CHART_STATIC_STATIC_CHART(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChart)) +#define LIVE_CHART_STATIC_STATIC_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChartClass)) +#define LIVE_CHART_STATIC_IS_STATIC_CHART(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_CHART)) +#define LIVE_CHART_STATIC_IS_STATIC_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_CHART)) +#define LIVE_CHART_STATIC_STATIC_CHART_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChartClass)) + +typedef struct _LiveChartStaticStaticChart LiveChartStaticStaticChart; +typedef struct _LiveChartStaticStaticChartClass LiveChartStaticStaticChartClass; +typedef struct _LiveChartStaticStaticChartPrivate LiveChartStaticStaticChartPrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_SERIES (live_chart_static_static_series_get_type ()) +#define LIVE_CHART_STATIC_STATIC_SERIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIES, LiveChartStaticStaticSeries)) +#define LIVE_CHART_STATIC_STATIC_SERIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIES, LiveChartStaticStaticSeriesClass)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIES)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIES)) +#define LIVE_CHART_STATIC_STATIC_SERIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIES, LiveChartStaticStaticSeriesClass)) + +typedef struct _LiveChartStaticStaticSeries LiveChartStaticStaticSeries; +typedef struct _LiveChartStaticStaticSeriesClass LiveChartStaticStaticSeriesClass; + +#define LIVE_CHART_STATIC_TYPE_STATIC_SERIE (live_chart_static_static_serie_get_type ()) +#define LIVE_CHART_STATIC_STATIC_SERIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerie)) +#define LIVE_CHART_STATIC_STATIC_SERIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerieClass)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIE)) +#define LIVE_CHART_STATIC_STATIC_SERIE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerieClass)) + +typedef struct _LiveChartStaticStaticSerie LiveChartStaticStaticSerie; +typedef struct _LiveChartStaticStaticSerieClass LiveChartStaticStaticSerieClass; + +#define LIVE_CHART_STATIC_TYPE_STATIC_GRID (live_chart_static_static_grid_get_type ()) +#define LIVE_CHART_STATIC_STATIC_GRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGrid)) +#define LIVE_CHART_STATIC_STATIC_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGridClass)) +#define LIVE_CHART_STATIC_IS_STATIC_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_GRID)) +#define LIVE_CHART_STATIC_IS_STATIC_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_GRID)) +#define LIVE_CHART_STATIC_STATIC_GRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGridClass)) + +typedef struct _LiveChartStaticStaticGrid LiveChartStaticStaticGrid; +typedef struct _LiveChartStaticStaticGridClass LiveChartStaticStaticGridClass; +typedef struct _LiveChartStaticStaticSeriesPrivate LiveChartStaticStaticSeriesPrivate; +typedef struct _LiveChartStaticStaticSeriePrivate LiveChartStaticStaticSeriePrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER (live_chart_static_static_serie_renderer_get_type ()) +#define LIVE_CHART_STATIC_STATIC_SERIE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRenderer)) +#define LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRendererClass)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER)) +#define LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRendererClass)) + +typedef struct _LiveChartStaticStaticSerieRenderer LiveChartStaticStaticSerieRenderer; +typedef struct _LiveChartStaticStaticSerieRendererClass LiveChartStaticStaticSerieRendererClass; + +#define LIVE_CHART_STATIC_TYPE_STATIC_VALUES (live_chart_static_static_values_get_type ()) +#define LIVE_CHART_STATIC_STATIC_VALUES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValues)) +#define LIVE_CHART_STATIC_STATIC_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValuesClass)) +#define LIVE_CHART_STATIC_IS_STATIC_VALUES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_VALUES)) +#define LIVE_CHART_STATIC_IS_STATIC_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_VALUES)) +#define LIVE_CHART_STATIC_STATIC_VALUES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValuesClass)) + +typedef struct _LiveChartStaticStaticValues LiveChartStaticStaticValues; +typedef struct _LiveChartStaticStaticValuesClass LiveChartStaticStaticValuesClass; + +#define LIVE_CHART_STATIC_TYPE_NAMED_VALUE (live_chart_static_named_value_get_type ()) +typedef struct _LiveChartStaticNamedValue LiveChartStaticNamedValue; +typedef struct _LiveChartStaticStaticValuesPrivate LiveChartStaticStaticValuesPrivate; +typedef struct _LiveChartStaticStaticSerieRendererPrivate LiveChartStaticStaticSerieRendererPrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_LINE (live_chart_static_static_line_get_type ()) +#define LIVE_CHART_STATIC_STATIC_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_LINE, LiveChartStaticStaticLine)) +#define LIVE_CHART_STATIC_STATIC_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_LINE, LiveChartStaticStaticLineClass)) +#define LIVE_CHART_STATIC_IS_STATIC_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_LINE)) +#define LIVE_CHART_STATIC_IS_STATIC_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_LINE)) +#define LIVE_CHART_STATIC_STATIC_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_LINE, LiveChartStaticStaticLineClass)) + +typedef struct _LiveChartStaticStaticLine LiveChartStaticStaticLine; +typedef struct _LiveChartStaticStaticLineClass LiveChartStaticStaticLineClass; +typedef struct _LiveChartStaticStaticLinePrivate LiveChartStaticStaticLinePrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_POINTS (live_chart_static_static_points_get_type ()) +#define LIVE_CHART_STATIC_STATIC_POINTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPoints)) +#define LIVE_CHART_STATIC_STATIC_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPointsClass)) +#define LIVE_CHART_STATIC_IS_STATIC_POINTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_POINTS)) +#define LIVE_CHART_STATIC_IS_STATIC_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_POINTS)) +#define LIVE_CHART_STATIC_STATIC_POINTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPointsClass)) + +typedef struct _LiveChartStaticStaticPoints LiveChartStaticStaticPoints; +typedef struct _LiveChartStaticStaticPointsClass LiveChartStaticStaticPointsClass; +typedef struct _LiveChartStaticStaticGridPrivate LiveChartStaticStaticGridPrivate; +typedef struct _LiveChartStaticStaticPointsPrivate LiveChartStaticStaticPointsPrivate; + +struct _LiveChartBoundingBox { + gdouble x; + gdouble y; + gdouble width; + gdouble height; +}; + +struct _LiveChartDrawableIface { + GTypeInterface parent_iface; + void (*draw) (LiveChartDrawable* self, cairo_t* ctx, LiveChartConfig* config); + void (*get_bounding_box) (LiveChartDrawable* self, LiveChartBoundingBox* result); + gboolean (*get_visible) (LiveChartDrawable* self); + void (*set_visible) (LiveChartDrawable* self, gboolean value); +}; + +struct _LiveChartArea { + GObject parent_instance; + LiveChartAreaPrivate * priv; +}; + +struct _LiveChartAreaClass { + GObjectClass parent_class; +}; + +struct _LiveChartXAxis { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartXAxisPrivate * priv; + LiveChartLabels* labels; + LiveChartPath* axis; + LiveChartPath* lines; +}; + +struct _LiveChartXAxisClass { + GTypeClass parent_class; + void (*finalize) (LiveChartXAxis *self); +}; + +struct _LiveChartTicks { + GeeList* values; +}; + +struct _LiveChartYAxis { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartYAxisPrivate * priv; + LiveChartLabels* labels; + LiveChartPath* axis; + LiveChartPath* lines; + gboolean smart_ratio G_GNUC_DEPRECATED ; + gdouble* fixed_max; + LiveChartTicks ticks; +}; + +struct _LiveChartYAxisClass { + GTypeClass parent_class; + void (*finalize) (LiveChartYAxis *self); +}; + +struct _LiveChartBackground { + GObject parent_instance; + LiveChartBackgroundPrivate * priv; +}; + +struct _LiveChartBackgroundClass { + GObjectClass parent_class; +}; + +struct _LiveChartSerieRenderer { + GObject parent_instance; + LiveChartSerieRendererPrivate * priv; + LiveChartBoundingBox bounding_box; + LiveChartValues* values; +}; + +struct _LiveChartSerieRendererClass { + GObjectClass parent_class; + void (*draw) (LiveChartSerieRenderer* self, cairo_t* ctx, LiveChartConfig* config); +}; + +struct _LiveChartBar { + LiveChartSerieRenderer parent_instance; + LiveChartBarPrivate * priv; +}; + +struct _LiveChartBarClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartCoord { + gdouble x; + gdouble y; +}; + +struct _LiveChartSegment { + LiveChartCoord from; + LiveChartCoord to; +}; + +struct _LiveChartBezierCurve { + LiveChartCoord c0; + LiveChartCoord c1; + LiveChartCoord c2; + LiveChartCoord c3; +}; + +struct _LiveChartBounds { + GObject parent_instance; + LiveChartBoundsPrivate * priv; +}; + +struct _LiveChartBoundsClass { + GObjectClass parent_class; +}; + +typedef enum { + LIVE_CHART_CHART_ERROR_EXPORT_ERROR, + LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND +} LiveChartChartError; +#define LIVE_CHART_CHART_ERROR live_chart_chart_error_quark () + +struct _LiveChartChart { + GtkDrawingArea parent_instance; + LiveChartChartPrivate * priv; + LiveChartConfig* config; + LiveChartSeries* series; +}; + +struct _LiveChartChartClass { + GtkDrawingAreaClass parent_class; +}; + +struct _LiveChartPadding { + LiveChartAutoPadding smart; + gint top; + gint right; + gint bottom; + gint left; +}; + +struct _LiveChartBoundary { + gint min; + gint max; +}; + +struct _LiveChartBoundaries { + LiveChartBoundary x; + LiveChartBoundary y; + gint width; + gint height; +}; + +struct _LiveChartConfig { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartConfigPrivate * priv; + LiveChartPadding padding; + LiveChartYAxis* y_axis; + LiveChartXAxis* x_axis; + GeeArrayList* categories; +}; + +struct _LiveChartConfigClass { + GTypeClass parent_class; + void (*finalize) (LiveChartConfig *self); +}; + +struct _LiveChartColorableIface { + GTypeInterface parent_iface; + void (*get_main_color) (LiveChartColorable* self, GdkRGBA * result); + void (*set_main_color) (LiveChartColorable* self, GdkRGBA * value); +}; + +struct _LiveChartFont { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartFontPrivate * priv; +}; + +struct _LiveChartFontClass { + GTypeClass parent_class; + void (*finalize) (LiveChartFont *self); +}; + +struct _LiveChartTimestampedValue { + gdouble timestamp; + gdouble value; +}; + +struct _LiveChartPoint { + gdouble x; + gdouble y; + gdouble height; + LiveChartTimestampedValue data; +}; + +struct _LiveChartGrid { + GObject parent_instance; + LiveChartGridPrivate * priv; + LiveChartBoundingBox bounding_box; +}; + +struct _LiveChartGridClass { + GObjectClass parent_class; +}; + +struct _LiveChartIntersections { + GObject parent_instance; + LiveChartIntersectionsPrivate * priv; +}; + +struct _LiveChartIntersectionsClass { + GObjectClass parent_class; +}; + +struct _LiveChartIntersection { + GObject parent_instance; + LiveChartIntersectionPrivate * priv; + gdouble* entered_at; + gdouble* exited_at; +}; + +struct _LiveChartIntersectionClass { + GObjectClass parent_class; +}; + +struct _LiveChartIntersectorIface { + GTypeInterface parent_iface; + void (*intersect) (LiveChartIntersector* self, LiveChartIntersections* intersections, LiveChartPoint* previous, LiveChartPoint* current, gconstpointer path); +}; + +struct _LiveChartBezierIntersector { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartBezierIntersectorPrivate * priv; +}; + +struct _LiveChartBezierIntersectorClass { + GTypeClass parent_class; + void (*finalize) (LiveChartBezierIntersector *self); +}; + +struct _LiveChartLabels { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartLabelsPrivate * priv; +}; + +struct _LiveChartLabelsClass { + GTypeClass parent_class; + void (*finalize) (LiveChartLabels *self); +}; + +struct _LiveChartLegend { + GObject parent_instance; + LiveChartLegendPrivate * priv; + LiveChartLabels* labels; + GeeArrayList* series; + LiveChartBoundingBox bounding_box; +}; + +struct _LiveChartLegendClass { + GObjectClass parent_class; + void (*draw) (LiveChartLegend* self, cairo_t* ctx, LiveChartConfig* config); +}; + +struct _LiveChartHorizontalLegend { + LiveChartLegend parent_instance; + LiveChartHorizontalLegendPrivate * priv; +}; + +struct _LiveChartHorizontalLegendClass { + LiveChartLegendClass parent_class; +}; + +struct _LiveChartNoopLegend { + LiveChartLegend parent_instance; + LiveChartNoopLegendPrivate * priv; +}; + +struct _LiveChartNoopLegendClass { + LiveChartLegendClass parent_class; +}; + +struct _LiveChartLine { + LiveChartSerieRenderer parent_instance; + LiveChartLinePrivate * priv; +}; + +struct _LiveChartLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartLineArea { + LiveChartLine parent_instance; + LiveChartLineAreaPrivate * priv; +}; + +struct _LiveChartLineAreaClass { + LiveChartLineClass parent_class; +}; + +struct _LiveChartMaxBoundLine { + LiveChartSerieRenderer parent_instance; + LiveChartMaxBoundLinePrivate * priv; +}; + +struct _LiveChartMaxBoundLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartMinBoundLine { + LiveChartSerieRenderer parent_instance; + LiveChartMinBoundLinePrivate * priv; +}; + +struct _LiveChartMinBoundLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartDash { + gdouble* dashes; + gint dashes_length1; + gdouble offset; +}; + +struct _LiveChartPath { + GObject parent_instance; + LiveChartPathPrivate * priv; + LiveChartDash* dash; +}; + +struct _LiveChartPathClass { + GObjectClass parent_class; +}; + +struct _LiveChartPoints { + GObject parent_instance; + LiveChartPointsPrivate * priv; +}; + +struct _LiveChartPointsClass { + GObjectClass parent_class; +}; + +struct _LiveChartRegionHandleResult { + LiveChartRegionHandleStatus status; + gdouble at_value; +}; + +struct _LiveChartRegion { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartRegionPrivate * priv; +}; + +struct _LiveChartRegionClass { + GTypeClass parent_class; + void (*finalize) (LiveChartRegion *self); +}; + +struct _LiveChartSerie { + GObject parent_instance; + LiveChartSeriePrivate * priv; +}; + +struct _LiveChartSerieClass { + GObjectClass parent_class; +}; + +struct _LiveChartSeries { + GObject parent_instance; + LiveChartSeriesPrivate * priv; +}; + +struct _LiveChartSeriesClass { + GObjectClass parent_class; +}; + +struct _LiveChartSmoothLine { + LiveChartSerieRenderer parent_instance; + LiveChartSmoothLinePrivate * priv; + LiveChartIntersections* intersections; +}; + +struct _LiveChartSmoothLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartSmoothLineArea { + LiveChartSmoothLine parent_instance; + LiveChartSmoothLineAreaPrivate * priv; +}; + +struct _LiveChartSmoothLineAreaClass { + LiveChartSmoothLineClass parent_class; +}; + +struct _LiveChartThresholdLine { + LiveChartSerieRenderer parent_instance; + LiveChartThresholdLinePrivate * priv; +}; + +struct _LiveChartThresholdLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartValues { + GeeLinkedList parent_instance; + LiveChartValuesPrivate * priv; +}; + +struct _LiveChartValuesClass { + GeeLinkedListClass parent_class; +}; + +struct _LiveChartStaticStaticChart { + GtkDrawingArea parent_instance; + LiveChartStaticStaticChartPrivate * priv; + LiveChartConfig* config; + LiveChartStaticStaticSeries* series; +}; + +struct _LiveChartStaticStaticChartClass { + GtkDrawingAreaClass parent_class; +}; + +struct _LiveChartStaticStaticSeries { + GObject parent_instance; + LiveChartStaticStaticSeriesPrivate * priv; +}; + +struct _LiveChartStaticStaticSeriesClass { + GObjectClass parent_class; +}; + +struct _LiveChartStaticStaticSerie { + GObject parent_instance; + LiveChartStaticStaticSeriePrivate * priv; +}; + +struct _LiveChartStaticStaticSerieClass { + GObjectClass parent_class; +}; + +struct _LiveChartStaticNamedValue { + gchar* name; + gdouble value; +}; + +struct _LiveChartStaticStaticValues { + GeeLinkedList parent_instance; + LiveChartStaticStaticValuesPrivate * priv; +}; + +struct _LiveChartStaticStaticValuesClass { + GeeLinkedListClass parent_class; +}; + +struct _LiveChartStaticStaticSerieRenderer { + GObject parent_instance; + LiveChartStaticStaticSerieRendererPrivate * priv; + LiveChartBoundingBox bounding_box; + LiveChartStaticStaticValues* values; +}; + +struct _LiveChartStaticStaticSerieRendererClass { + GObjectClass parent_class; + void (*draw) (LiveChartStaticStaticSerieRenderer* self, cairo_t* ctx, LiveChartConfig* config); +}; + +struct _LiveChartStaticStaticLine { + LiveChartStaticStaticSerieRenderer parent_instance; + LiveChartStaticStaticLinePrivate * priv; +}; + +struct _LiveChartStaticStaticLineClass { + LiveChartStaticStaticSerieRendererClass parent_class; +}; + +struct _LiveChartStaticStaticGrid { + GObject parent_instance; + LiveChartStaticStaticGridPrivate * priv; + LiveChartBoundingBox bounding_box; +}; + +struct _LiveChartStaticStaticGridClass { + GObjectClass parent_class; +}; + +struct _LiveChartStaticStaticPoints { + GObject parent_instance; + LiveChartStaticStaticPointsPrivate * priv; +}; + +struct _LiveChartStaticStaticPointsClass { + GObjectClass parent_class; +}; + +VALA_EXTERN gpointer live_chart_config_ref (gpointer instance); +VALA_EXTERN void live_chart_config_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_config (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_config (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_config (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_config (const GValue* value); +VALA_EXTERN GType live_chart_config_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartConfig, live_chart_config_unref) +VALA_EXTERN GType live_chart_bounding_box_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartBoundingBox* live_chart_bounding_box_dup (const LiveChartBoundingBox* self); +VALA_EXTERN void live_chart_bounding_box_free (LiveChartBoundingBox* self); +VALA_EXTERN GType live_chart_drawable_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartDrawable, g_object_unref) +VALA_EXTERN GType live_chart_area_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartArea, g_object_unref) +VALA_EXTERN GType live_chart_points_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartPoints, g_object_unref) +VALA_EXTERN LiveChartArea* live_chart_area_new (LiveChartPoints* points, + GdkRGBA* color, + gdouble alpha); +VALA_EXTERN LiveChartArea* live_chart_area_construct (GType object_type, + LiveChartPoints* points, + GdkRGBA* color, + gdouble alpha); +VALA_EXTERN gpointer live_chart_xaxis_ref (gpointer instance); +VALA_EXTERN void live_chart_xaxis_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_xaxis (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_xaxis (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_xaxis (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_xaxis (const GValue* value); +VALA_EXTERN GType live_chart_xaxis_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartXAxis, live_chart_xaxis_unref) +VALA_EXTERN gpointer live_chart_labels_ref (gpointer instance); +VALA_EXTERN void live_chart_labels_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_labels (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_labels (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_labels (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_labels (const GValue* value); +VALA_EXTERN GType live_chart_labels_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartLabels, live_chart_labels_unref) +VALA_EXTERN GType live_chart_path_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartPath, g_object_unref) +VALA_EXTERN LiveChartXAxis* live_chart_xaxis_new (void); +VALA_EXTERN LiveChartXAxis* live_chart_xaxis_construct (GType object_type); +VALA_EXTERN gdouble live_chart_xaxis_get_ratio (LiveChartXAxis* self); +VALA_EXTERN gfloat live_chart_xaxis_get_tick_interval (LiveChartXAxis* self); +VALA_EXTERN void live_chart_xaxis_set_tick_interval (LiveChartXAxis* self, + gfloat value); +VALA_EXTERN gfloat live_chart_xaxis_get_tick_length (LiveChartXAxis* self); +VALA_EXTERN void live_chart_xaxis_set_tick_length (LiveChartXAxis* self, + gfloat value); +VALA_EXTERN gboolean live_chart_xaxis_get_visible (LiveChartXAxis* self); +VALA_EXTERN void live_chart_xaxis_set_visible (LiveChartXAxis* self, + gboolean value); +VALA_EXTERN GType live_chart_ticks_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartTicks* live_chart_ticks_dup (const LiveChartTicks* self); +VALA_EXTERN void live_chart_ticks_free (LiveChartTicks* self); +VALA_EXTERN void live_chart_ticks_copy (const LiveChartTicks* self, + LiveChartTicks* dest); +VALA_EXTERN void live_chart_ticks_destroy (LiveChartTicks* self); +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (LiveChartTicks, live_chart_ticks_destroy) +VALA_EXTERN void live_chart_ticks_init (LiveChartTicks *self); +VALA_EXTERN gpointer live_chart_yaxis_ref (gpointer instance); +VALA_EXTERN void live_chart_yaxis_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_yaxis (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_yaxis (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_yaxis (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_yaxis (const GValue* value); +VALA_EXTERN GType live_chart_yaxis_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartYAxis, live_chart_yaxis_unref) +VALA_EXTERN LiveChartYAxis* live_chart_yaxis_new (const gchar* unit); +VALA_EXTERN LiveChartYAxis* live_chart_yaxis_construct (GType object_type, + const gchar* unit); +VALA_EXTERN gdouble live_chart_yaxis_get_ratio (LiveChartYAxis* self); +VALA_EXTERN GType live_chart_bounds_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartBounds, g_object_unref) +VALA_EXTERN LiveChartBounds* live_chart_yaxis_get_bounds (LiveChartYAxis* self); +VALA_EXTERN gboolean live_chart_yaxis_update_bounds (LiveChartYAxis* self, + gdouble value); +VALA_EXTERN void live_chart_yaxis_update (LiveChartYAxis* self, + gint area_height); +VALA_EXTERN gchar* live_chart_yaxis_get_max_displayed_value (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_get_ticks (LiveChartYAxis* self, + LiveChartTicks* result); +VALA_EXTERN gfloat live_chart_yaxis_get_ratio_threshold (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_set_ratio_threshold (LiveChartYAxis* self, + gfloat value); +VALA_EXTERN gfloat live_chart_yaxis_get_tick_interval (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_set_tick_interval (LiveChartYAxis* self, + gfloat value); +VALA_EXTERN gboolean live_chart_yaxis_get_visible (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_set_visible (LiveChartYAxis* self, + gboolean value); +VALA_EXTERN gfloat live_chart_yaxis_get_tick_length (LiveChartYAxis* self) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_yaxis_set_tick_length (LiveChartYAxis* self, + gfloat value) G_GNUC_DEPRECATED ; +VALA_EXTERN const gchar* live_chart_yaxis_get_unit (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_set_unit (LiveChartYAxis* self, + const gchar* value); +VALA_EXTERN GType live_chart_background_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartBackground, g_object_unref) +VALA_EXTERN LiveChartBackground* live_chart_background_new (void); +VALA_EXTERN LiveChartBackground* live_chart_background_construct (GType object_type); +VALA_EXTERN void live_chart_background_get_color (LiveChartBackground* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_background_set_color (LiveChartBackground* self, + GdkRGBA * value); +VALA_EXTERN void live_chart_background_get_main_color (LiveChartBackground* self, + GdkRGBA * result) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_background_set_main_color (LiveChartBackground* self, + GdkRGBA * value) G_GNUC_DEPRECATED ; +VALA_EXTERN GType live_chart_serie_renderer_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSerieRenderer, g_object_unref) +VALA_EXTERN GType live_chart_values_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartValues, g_object_unref) +VALA_EXTERN GType live_chart_bar_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartBar, g_object_unref) +VALA_EXTERN LiveChartBar* live_chart_bar_new (LiveChartValues* values); +VALA_EXTERN LiveChartBar* live_chart_bar_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN GType live_chart_segment_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_coord_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartCoord* live_chart_coord_dup (const LiveChartCoord* self); +VALA_EXTERN void live_chart_coord_free (LiveChartCoord* self); +VALA_EXTERN LiveChartSegment* live_chart_segment_dup (const LiveChartSegment* self); +VALA_EXTERN void live_chart_segment_free (LiveChartSegment* self); +VALA_EXTERN GType live_chart_bezier_curve_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartBezierCurve* live_chart_bezier_curve_dup (const LiveChartBezierCurve* self); +VALA_EXTERN void live_chart_bezier_curve_free (LiveChartBezierCurve* self); +VALA_EXTERN GeeList* live_chart_find_intersections_between (LiveChartSegment* segment, + LiveChartBezierCurve* bezier); +VALA_EXTERN LiveChartBounds* live_chart_bounds_new (gdouble lower, + gdouble upper); +VALA_EXTERN LiveChartBounds* live_chart_bounds_construct (GType object_type, + gdouble lower, + gdouble upper); +VALA_EXTERN gboolean live_chart_bounds_has_lower (LiveChartBounds* self); +VALA_EXTERN gboolean live_chart_bounds_has_upper (LiveChartBounds* self); +VALA_EXTERN gboolean live_chart_bounds_update (LiveChartBounds* self, + gdouble value); +VALA_EXTERN gdouble live_chart_bounds_get_lower (LiveChartBounds* self); +VALA_EXTERN gdouble live_chart_bounds_get_upper (LiveChartBounds* self); +VALA_EXTERN GQuark live_chart_chart_error_quark (void); +GType live_chart_chart_error_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_chart_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartChart, g_object_unref) +VALA_EXTERN GType live_chart_series_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSeries, g_object_unref) +VALA_EXTERN LiveChartChart* live_chart_chart_new (LiveChartConfig* config); +VALA_EXTERN LiveChartChart* live_chart_chart_construct (GType object_type, + LiveChartConfig* config); +VALA_EXTERN GType live_chart_serie_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSerie, g_object_unref) +VALA_EXTERN void live_chart_chart_add_serie (LiveChartChart* self, + LiveChartSerie* serie); +VALA_EXTERN void live_chart_chart_add_value (LiveChartChart* self, + LiveChartSerie* serie, + gdouble value) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_chart_add_value_by_index (LiveChartChart* self, + gint serie_index, + gdouble value, + GError** error) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_chart_add_unaware_timestamp_collection (LiveChartChart* self, + LiveChartSerie* serie, + GeeCollection* collection, + gint timespan_between_value); +VALA_EXTERN void live_chart_chart_add_unaware_timestamp_collection_by_index (LiveChartChart* self, + gint serie_index, + GeeCollection* collection, + gint timespan_between_value, + GError** error); +VALA_EXTERN void live_chart_chart_to_png (LiveChartChart* self, + const gchar* filename, + GError** error); +VALA_EXTERN void live_chart_chart_refresh_every (LiveChartChart* self, + gint ms); +VALA_EXTERN GType live_chart_grid_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartGrid, g_object_unref) +VALA_EXTERN LiveChartGrid* live_chart_chart_get_grid (LiveChartChart* self); +VALA_EXTERN void live_chart_chart_set_grid (LiveChartChart* self, + LiveChartGrid* value); +VALA_EXTERN LiveChartBackground* live_chart_chart_get_background (LiveChartChart* self); +VALA_EXTERN void live_chart_chart_set_background (LiveChartChart* self, + LiveChartBackground* value); +VALA_EXTERN GType live_chart_legend_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartLegend, g_object_unref) +VALA_EXTERN LiveChartLegend* live_chart_chart_get_legend (LiveChartChart* self); +VALA_EXTERN void live_chart_chart_set_legend (LiveChartChart* self, + LiveChartLegend* value); +VALA_EXTERN GType live_chart_auto_padding_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_padding_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartPadding* live_chart_padding_dup (const LiveChartPadding* self); +VALA_EXTERN void live_chart_padding_free (LiveChartPadding* self); +VALA_EXTERN void live_chart_padding_init (LiveChartPadding *self); +VALA_EXTERN GType live_chart_boundary_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartBoundary* live_chart_boundary_dup (const LiveChartBoundary* self); +VALA_EXTERN void live_chart_boundary_free (LiveChartBoundary* self); +VALA_EXTERN GType live_chart_boundaries_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartBoundaries* live_chart_boundaries_dup (const LiveChartBoundaries* self); +VALA_EXTERN void live_chart_boundaries_free (LiveChartBoundaries* self); +VALA_EXTERN void live_chart_config_boundaries (LiveChartConfig* self, + LiveChartBoundaries* result); +VALA_EXTERN void live_chart_config_configure (LiveChartConfig* self, + cairo_t* ctx, + LiveChartLegend* legend); +VALA_EXTERN LiveChartConfig* live_chart_config_new (void); +VALA_EXTERN LiveChartConfig* live_chart_config_construct (GType object_type); +VALA_EXTERN gint live_chart_config_get_width (LiveChartConfig* self); +VALA_EXTERN void live_chart_config_set_width (LiveChartConfig* self, + gint value); +VALA_EXTERN gint live_chart_config_get_height (LiveChartConfig* self); +VALA_EXTERN void live_chart_config_set_height (LiveChartConfig* self, + gint value); +VALA_EXTERN void live_chart_drawable_draw (LiveChartDrawable* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_drawable_get_bounding_box (LiveChartDrawable* self, + LiveChartBoundingBox* result); +VALA_EXTERN gboolean live_chart_drawable_get_visible (LiveChartDrawable* self); +VALA_EXTERN void live_chart_drawable_set_visible (LiveChartDrawable* self, + gboolean value); +VALA_EXTERN GType live_chart_colorable_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartColorable, g_object_unref) +VALA_EXTERN void live_chart_colorable_get_main_color (LiveChartColorable* self, + GdkRGBA * result) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_colorable_set_main_color (LiveChartColorable* self, + GdkRGBA * value) G_GNUC_DEPRECATED ; +VALA_EXTERN gpointer live_chart_font_ref (gpointer instance); +VALA_EXTERN void live_chart_font_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_font (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_font (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_font (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_font (const GValue* value); +VALA_EXTERN GType live_chart_font_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartFont, live_chart_font_unref) +VALA_EXTERN LiveChartFont* live_chart_font_new (void); +VALA_EXTERN LiveChartFont* live_chart_font_construct (GType object_type); +VALA_EXTERN void live_chart_font_configure (LiveChartFont* self, + cairo_t* ctx); +VALA_EXTERN guint8 live_chart_font_get_size (LiveChartFont* self); +VALA_EXTERN void live_chart_font_set_size (LiveChartFont* self, + guint8 value); +VALA_EXTERN const gchar* live_chart_font_get_face (LiveChartFont* self); +VALA_EXTERN void live_chart_font_set_face (LiveChartFont* self, + const gchar* value); +VALA_EXTERN cairo_font_slant_t live_chart_font_get_slant (LiveChartFont* self); +VALA_EXTERN void live_chart_font_set_slant (LiveChartFont* self, + cairo_font_slant_t value); +VALA_EXTERN cairo_font_weight_t live_chart_font_get_weight (LiveChartFont* self); +VALA_EXTERN void live_chart_font_set_weight (LiveChartFont* self, + cairo_font_weight_t value); +VALA_EXTERN void live_chart_font_get_color (LiveChartFont* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_font_set_color (LiveChartFont* self, + GdkRGBA * value); +VALA_EXTERN GType live_chart_point_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_timestamped_value_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartTimestampedValue* live_chart_timestamped_value_dup (const LiveChartTimestampedValue* self); +VALA_EXTERN void live_chart_timestamped_value_free (LiveChartTimestampedValue* self); +VALA_EXTERN LiveChartPoint* live_chart_point_dup (const LiveChartPoint* self); +VALA_EXTERN void live_chart_point_free (LiveChartPoint* self); +VALA_EXTERN void live_chart_build_bezier_curve_from_points (LiveChartPoint* previous, + LiveChartPoint* target, + LiveChartBezierCurve* result); +VALA_EXTERN void live_chart_grid_restore (LiveChartGrid* self, + cairo_t* ctx); +VALA_EXTERN void live_chart_grid_render_abscissa (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_render_ordinate (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_render_grid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_render_vgrid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_render_hgrid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_update_bounding_box (LiveChartGrid* self, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_debug (LiveChartGrid* self, + cairo_t* ctx); +VALA_EXTERN LiveChartGrid* live_chart_grid_new (void); +VALA_EXTERN LiveChartGrid* live_chart_grid_construct (GType object_type); +VALA_EXTERN void live_chart_grid_get_main_color (LiveChartGrid* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_grid_set_main_color (LiveChartGrid* self, + GdkRGBA * value); +VALA_EXTERN GType live_chart_intersections_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartIntersections, g_object_unref) +VALA_EXTERN void live_chart_intersections_close (LiveChartIntersections* self, + gdouble x, + gdouble exited_at); +VALA_EXTERN void live_chart_intersections_update (LiveChartIntersections* self, + gdouble x); +VALA_EXTERN gpointer live_chart_region_ref (gpointer instance); +VALA_EXTERN void live_chart_region_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_region (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_region (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_region (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_region (const GValue* value); +VALA_EXTERN GType live_chart_region_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartRegion, live_chart_region_unref) +VALA_EXTERN void live_chart_intersections_open (LiveChartIntersections* self, + LiveChartRegion* region, + gdouble x, + gdouble entered_at); +VALA_EXTERN void live_chart_intersections_open_without_entrypoint (LiveChartIntersections* self, + LiveChartRegion* region, + gdouble x); +VALA_EXTERN GType live_chart_intersection_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartIntersection, g_object_unref) +VALA_EXTERN void live_chart_intersections_foreach (LiveChartIntersections* self, + GeeForallFunc f, + gpointer f_target); +VALA_EXTERN gboolean live_chart_intersections_has_an_opened_intersection (LiveChartIntersections* self); +VALA_EXTERN LiveChartRegion* live_chart_intersections_get_current_region (LiveChartIntersections* self); +VALA_EXTERN gint live_chart_intersections_size (LiveChartIntersections* self); +VALA_EXTERN LiveChartIntersection* live_chart_intersections_get (LiveChartIntersections* self, + gint index); +VALA_EXTERN LiveChartIntersections* live_chart_intersections_new (void); +VALA_EXTERN LiveChartIntersections* live_chart_intersections_construct (GType object_type); +VALA_EXTERN LiveChartIntersection* live_chart_intersection_new (LiveChartRegion* region, + gdouble start_x, + gdouble entered_at); +VALA_EXTERN LiveChartIntersection* live_chart_intersection_construct (GType object_type, + LiveChartRegion* region, + gdouble start_x, + gdouble entered_at); +VALA_EXTERN LiveChartIntersection* live_chart_intersection_new_without_entry_point (LiveChartRegion* region, + gdouble start_x); +VALA_EXTERN LiveChartIntersection* live_chart_intersection_construct_without_entry_point (GType object_type, + LiveChartRegion* region, + gdouble start_x); +VALA_EXTERN void live_chart_intersection_update (LiveChartIntersection* self, + gdouble x); +VALA_EXTERN void live_chart_intersection_close (LiveChartIntersection* self, + gdouble x, + gdouble exited_at); +VALA_EXTERN gboolean live_chart_intersection_is_open (LiveChartIntersection* self); +VALA_EXTERN gboolean live_chart_intersection_is_closed (LiveChartIntersection* self); +VALA_EXTERN LiveChartRegion* live_chart_intersection_get_region (LiveChartIntersection* self); +VALA_EXTERN void live_chart_intersection_set_region (LiveChartIntersection* self, + LiveChartRegion* value); +VALA_EXTERN gdouble live_chart_intersection_get_start_x (LiveChartIntersection* self); +VALA_EXTERN gdouble live_chart_intersection_get_end_x (LiveChartIntersection* self); +VALA_EXTERN GType live_chart_intersector_get_type (void) G_GNUC_CONST ; +VALA_EXTERN void live_chart_intersector_intersect (LiveChartIntersector* self, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + gconstpointer path); +VALA_EXTERN gpointer live_chart_bezier_intersector_ref (gpointer instance); +VALA_EXTERN void live_chart_bezier_intersector_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_bezier_intersector (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_bezier_intersector (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_bezier_intersector (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_bezier_intersector (const GValue* value); +VALA_EXTERN GType live_chart_bezier_intersector_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartBezierIntersector, live_chart_bezier_intersector_unref) +VALA_EXTERN LiveChartBezierIntersector* live_chart_bezier_intersector_new (LiveChartRegion* region, + LiveChartConfig* config); +VALA_EXTERN LiveChartBezierIntersector* live_chart_bezier_intersector_construct (GType object_type, + LiveChartRegion* region, + LiveChartConfig* config); +VALA_EXTERN LiveChartLabels* live_chart_labels_new (void); +VALA_EXTERN LiveChartLabels* live_chart_labels_construct (GType object_type); +VALA_EXTERN gboolean live_chart_labels_get_visible (LiveChartLabels* self); +VALA_EXTERN void live_chart_labels_set_visible (LiveChartLabels* self, + gboolean value); +VALA_EXTERN void live_chart_labels_get_extents (LiveChartLabels* self, + cairo_text_extents_t * result); +VALA_EXTERN void live_chart_labels_set_extents (LiveChartLabels* self, + cairo_text_extents_t * value); +VALA_EXTERN LiveChartFont* live_chart_labels_get_font (LiveChartLabels* self); +VALA_EXTERN void live_chart_labels_set_font (LiveChartLabels* self, + LiveChartFont* value); +VALA_EXTERN void live_chart_legend_add_legend (LiveChartLegend* self, + LiveChartSerie* serie); +VALA_EXTERN void live_chart_legend_draw (LiveChartLegend* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN LiveChartLegend* live_chart_legend_construct (GType object_type); +VALA_EXTERN void live_chart_legend_get_main_color (LiveChartLegend* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_legend_set_main_color (LiveChartLegend* self, + GdkRGBA * value); +VALA_EXTERN GType live_chart_horizontal_legend_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartHorizontalLegend, g_object_unref) +VALA_EXTERN void live_chart_horizontal_legend_debug (LiveChartHorizontalLegend* self, + cairo_t* ctx); +VALA_EXTERN LiveChartHorizontalLegend* live_chart_horizontal_legend_new (void); +VALA_EXTERN LiveChartHorizontalLegend* live_chart_horizontal_legend_construct (GType object_type); +VALA_EXTERN GType live_chart_noop_legend_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartNoopLegend, g_object_unref) +VALA_EXTERN LiveChartNoopLegend* live_chart_noop_legend_new (void); +VALA_EXTERN LiveChartNoopLegend* live_chart_noop_legend_construct (GType object_type); +VALA_EXTERN GType live_chart_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartLine, g_object_unref) +VALA_EXTERN GType live_chart_line_area_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartLineArea, g_object_unref) +VALA_EXTERN LiveChartLineArea* live_chart_line_area_new (LiveChartValues* values); +VALA_EXTERN LiveChartLineArea* live_chart_line_area_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN gdouble live_chart_line_area_get_area_alpha (LiveChartLineArea* self); +VALA_EXTERN void live_chart_line_area_set_area_alpha (LiveChartLineArea* self, + gdouble value); +VALA_EXTERN LiveChartLine* live_chart_line_new (LiveChartValues* values); +VALA_EXTERN LiveChartLine* live_chart_line_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN LiveChartPoints* live_chart_line_draw_line (LiveChartLine* self, + LiveChartPoints* points, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN GType live_chart_max_bound_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartMaxBoundLine, g_object_unref) +VALA_EXTERN LiveChartMaxBoundLine* live_chart_max_bound_line_new (void); +VALA_EXTERN LiveChartMaxBoundLine* live_chart_max_bound_line_construct (GType object_type); +VALA_EXTERN LiveChartMaxBoundLine* live_chart_max_bound_line_new_from_serie (LiveChartSerie* serie); +VALA_EXTERN LiveChartMaxBoundLine* live_chart_max_bound_line_construct_from_serie (GType object_type, + LiveChartSerie* serie); +VALA_EXTERN GType live_chart_min_bound_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartMinBoundLine, g_object_unref) +VALA_EXTERN LiveChartMinBoundLine* live_chart_min_bound_line_new (LiveChartValues* values); +VALA_EXTERN LiveChartMinBoundLine* live_chart_min_bound_line_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN LiveChartMinBoundLine* live_chart_min_bound_line_new_from_serie (LiveChartSerie* serie); +VALA_EXTERN LiveChartMinBoundLine* live_chart_min_bound_line_construct_from_serie (GType object_type, + LiveChartSerie* serie); +VALA_EXTERN GType live_chart_dash_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartDash* live_chart_dash_dup (const LiveChartDash* self); +VALA_EXTERN void live_chart_dash_free (LiveChartDash* self); +VALA_EXTERN void live_chart_dash_copy (const LiveChartDash* self, + LiveChartDash* dest); +VALA_EXTERN void live_chart_dash_destroy (LiveChartDash* self); +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (LiveChartDash, live_chart_dash_destroy) +VALA_EXTERN void live_chart_dash_init (LiveChartDash *self); +VALA_EXTERN LiveChartPath* live_chart_path_new (gdouble width, + GdkRGBA* color, + gboolean visible, + LiveChartDash* dash); +VALA_EXTERN LiveChartPath* live_chart_path_construct (GType object_type, + gdouble width, + GdkRGBA* color, + gboolean visible, + LiveChartDash* dash); +VALA_EXTERN void live_chart_path_configure (LiveChartPath* self, + cairo_t* ctx); +VALA_EXTERN gdouble live_chart_path_get_width (LiveChartPath* self); +VALA_EXTERN void live_chart_path_set_width (LiveChartPath* self, + gdouble value); +VALA_EXTERN void live_chart_path_get_color (LiveChartPath* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_path_set_color (LiveChartPath* self, + GdkRGBA * value); +VALA_EXTERN gboolean live_chart_path_get_visible (LiveChartPath* self); +VALA_EXTERN void live_chart_path_set_visible (LiveChartPath* self, + gboolean value); +VALA_EXTERN LiveChartPoints* live_chart_points_new (void); +VALA_EXTERN LiveChartPoints* live_chart_points_construct (GType object_type); +VALA_EXTERN void live_chart_points_add (LiveChartPoints* self, + LiveChartPoint* point); +VALA_EXTERN void live_chart_points_get (LiveChartPoints* self, + gint at, + LiveChartPoint* result); +VALA_EXTERN void live_chart_points_after (LiveChartPoints* self, + gint at, + LiveChartPoint* result); +VALA_EXTERN void live_chart_points_first (LiveChartPoints* self, + LiveChartPoint* result); +VALA_EXTERN void live_chart_points_last (LiveChartPoints* self, + LiveChartPoint* result); +VALA_EXTERN LiveChartPoints* live_chart_points_create (LiveChartValues* values, + LiveChartConfig* config); +VALA_EXTERN LiveChartBounds* live_chart_points_get_bounds (LiveChartPoints* self); +VALA_EXTERN void live_chart_points_set_bounds (LiveChartPoints* self, + LiveChartBounds* value); +VALA_EXTERN gint live_chart_points_get_size (LiveChartPoints* self); +VALA_EXTERN gdouble live_chart_points_get_realtime_delta (LiveChartPoints* self); +VALA_EXTERN void live_chart_points_set_realtime_delta (LiveChartPoints* self, + gdouble value); +VALA_EXTERN GType live_chart_region_handle_status_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_region_handle_result_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartRegionHandleResult* live_chart_region_handle_result_dup (const LiveChartRegionHandleResult* self); +VALA_EXTERN void live_chart_region_handle_result_free (LiveChartRegionHandleResult* self); +VALA_EXTERN LiveChartRegion* live_chart_region_new (gdouble floor, + gdouble ceil); +VALA_EXTERN LiveChartRegion* live_chart_region_construct (GType object_type, + gdouble floor, + gdouble ceil); +VALA_EXTERN LiveChartRegion* live_chart_region_new_between (gdouble above, + gdouble below); +VALA_EXTERN LiveChartRegion* live_chart_region_construct_between (GType object_type, + gdouble above, + gdouble below); +VALA_EXTERN LiveChartRegion* live_chart_region_with_line_color (LiveChartRegion* self, + GdkRGBA* color); +VALA_EXTERN LiveChartRegion* live_chart_region_with_area_color (LiveChartRegion* self, + GdkRGBA* color); +VALA_EXTERN gboolean live_chart_region_has_at_least_one_point_within (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +VALA_EXTERN void live_chart_region_handle (LiveChartRegion* self, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + LiveChartGetIntersection get_intersection, + gpointer get_intersection_target); +VALA_EXTERN void live_chart_region_get_line_color (LiveChartRegion* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_region_set_line_color (LiveChartRegion* self, + GdkRGBA * value); +VALA_EXTERN void live_chart_region_get_area_color (LiveChartRegion* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_region_set_area_color (LiveChartRegion* self, + GdkRGBA * value); +VALA_EXTERN LiveChartSerie* live_chart_serie_new (const gchar* name, + LiveChartSerieRenderer* renderer); +VALA_EXTERN LiveChartSerie* live_chart_serie_construct (GType object_type, + const gchar* name, + LiveChartSerieRenderer* renderer); +VALA_EXTERN void live_chart_serie_add (LiveChartSerie* self, + gdouble value); +VALA_EXTERN void live_chart_serie_add_with_timestamp (LiveChartSerie* self, + gdouble value, + gint64 timestamp); +VALA_EXTERN void live_chart_serie_set_main_color (LiveChartSerie* self, + GdkRGBA* color) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_serie_get_main_color (LiveChartSerie* self, + GdkRGBA* result) G_GNUC_DEPRECATED ; +VALA_EXTERN LiveChartValues* live_chart_serie_get_values (LiveChartSerie* self); +VALA_EXTERN void live_chart_serie_clear (LiveChartSerie* self); +VALA_EXTERN const gchar* live_chart_serie_get_name (LiveChartSerie* self); +VALA_EXTERN void live_chart_serie_set_name (LiveChartSerie* self, + const gchar* value); +VALA_EXTERN LiveChartPath* live_chart_serie_get_line (LiveChartSerie* self); +VALA_EXTERN void live_chart_serie_set_line (LiveChartSerie* self, + LiveChartPath* value); +VALA_EXTERN LiveChartSerieRenderer* live_chart_serie_renderer_construct (GType object_type); +VALA_EXTERN LiveChartValues* live_chart_serie_renderer_get_values (LiveChartSerieRenderer* self); +VALA_EXTERN void live_chart_serie_renderer_draw (LiveChartSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_serie_renderer_debug (LiveChartSerieRenderer* self, + cairo_t* ctx); +VALA_EXTERN gboolean live_chart_serie_renderer_is_out_of_area (LiveChartSerieRenderer* self, + LiveChartPoint* point); +VALA_EXTERN void live_chart_serie_renderer_get_main_color (LiveChartSerieRenderer* self, + GdkRGBA * result) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_serie_renderer_set_main_color (LiveChartSerieRenderer* self, + GdkRGBA * value) G_GNUC_DEPRECATED ; +VALA_EXTERN LiveChartPath* live_chart_serie_renderer_get_line (LiveChartSerieRenderer* self); +VALA_EXTERN void live_chart_serie_renderer_set_line (LiveChartSerieRenderer* self, + LiveChartPath* value); +VALA_EXTERN LiveChartSeries* live_chart_series_new (LiveChartChart* chart); +VALA_EXTERN LiveChartSeries* live_chart_series_construct (GType object_type, + LiveChartChart* chart); +VALA_EXTERN LiveChartSerie* live_chart_series_register (LiveChartSeries* self, + LiveChartSerie* serie); +VALA_EXTERN LiveChartSerie* live_chart_series_get (LiveChartSeries* self, + gint index, + GError** error); +VALA_EXTERN LiveChartSerie* live_chart_series_get_by_name (LiveChartSeries* self, + const gchar* name, + GError** error); +VALA_EXTERN GeeIterator* live_chart_series_iterator (LiveChartSeries* self); +VALA_EXTERN GType live_chart_smooth_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSmoothLine, g_object_unref) +VALA_EXTERN GType live_chart_smooth_line_area_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSmoothLineArea, g_object_unref) +VALA_EXTERN LiveChartSmoothLineArea* live_chart_smooth_line_area_new (LiveChartValues* values); +VALA_EXTERN LiveChartSmoothLineArea* live_chart_smooth_line_area_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN void live_chart_smooth_line_area_draw_regions_on_area (LiveChartSmoothLineArea* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN gdouble live_chart_smooth_line_area_get_area_alpha (LiveChartSmoothLineArea* self); +VALA_EXTERN void live_chart_smooth_line_area_set_area_alpha (LiveChartSmoothLineArea* self, + gdouble value); +VALA_EXTERN LiveChartSmoothLine* live_chart_smooth_line_new (LiveChartValues* values); +VALA_EXTERN LiveChartSmoothLine* live_chart_smooth_line_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN cairo_path_t* live_chart_smooth_line_draw_smooth_line (LiveChartSmoothLine* self, + LiveChartPoints* points, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_smooth_line_draw_regions_on_line (LiveChartSmoothLine* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN LiveChartRegion* live_chart_smooth_line_get_region (LiveChartSmoothLine* self); +VALA_EXTERN void live_chart_smooth_line_set_region (LiveChartSmoothLine* self, + LiveChartRegion* value); +VALA_EXTERN GType live_chart_threshold_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartThresholdLine, g_object_unref) +VALA_EXTERN LiveChartThresholdLine* live_chart_threshold_line_new (gdouble value); +VALA_EXTERN LiveChartThresholdLine* live_chart_threshold_line_construct (GType object_type, + gdouble value); +VALA_EXTERN gdouble live_chart_threshold_line_get_value (LiveChartThresholdLine* self); +VALA_EXTERN void live_chart_threshold_line_set_value (LiveChartThresholdLine* self, + gdouble value); +VALA_EXTERN gfloat live_chart_cap (gfloat value); +VALA_EXTERN gboolean live_chart_has_fractional_part (gfloat value); +VALA_EXTERN gchar* live_chart_format_for_y_axis (const gchar* unit, + gfloat value); +VALA_EXTERN GeeList* live_chart_golden_divisors (gfloat value); +VALA_EXTERN LiveChartValues* live_chart_values_new (gint buffer_size); +VALA_EXTERN LiveChartValues* live_chart_values_construct (GType object_type, + gint buffer_size); +VALA_EXTERN void live_chart_values_add (LiveChartValues* self, + LiveChartTimestampedValue* value); +VALA_EXTERN LiveChartBounds* live_chart_values_get_bounds (LiveChartValues* self); +VALA_EXTERN void live_chart_values_set_bounds (LiveChartValues* self, + LiveChartBounds* value); +VALA_EXTERN GType live_chart_static_static_chart_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticChart, g_object_unref) +VALA_EXTERN GType live_chart_static_static_series_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticSeries, g_object_unref) +VALA_EXTERN LiveChartStaticStaticChart* live_chart_static_static_chart_new (LiveChartConfig* config); +VALA_EXTERN LiveChartStaticStaticChart* live_chart_static_static_chart_construct (GType object_type, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_chart_set_categories (LiveChartStaticStaticChart* self, + GeeArrayList* categories); +VALA_EXTERN GType live_chart_static_static_serie_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticSerie, g_object_unref) +VALA_EXTERN void live_chart_static_static_chart_add_serie (LiveChartStaticStaticChart* self, + LiveChartStaticStaticSerie* serie); +VALA_EXTERN GType live_chart_static_static_grid_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticGrid, g_object_unref) +VALA_EXTERN LiveChartStaticStaticGrid* live_chart_static_static_chart_get_grid (LiveChartStaticStaticChart* self); +VALA_EXTERN void live_chart_static_static_chart_set_grid (LiveChartStaticStaticChart* self, + LiveChartStaticStaticGrid* value); +VALA_EXTERN LiveChartBackground* live_chart_static_static_chart_get_background (LiveChartStaticStaticChart* self); +VALA_EXTERN void live_chart_static_static_chart_set_background (LiveChartStaticStaticChart* self, + LiveChartBackground* value); +VALA_EXTERN LiveChartLegend* live_chart_static_static_chart_get_legend (LiveChartStaticStaticChart* self); +VALA_EXTERN void live_chart_static_static_chart_set_legend (LiveChartStaticStaticChart* self, + LiveChartLegend* value); +VALA_EXTERN LiveChartStaticStaticSeries* live_chart_static_static_series_new (LiveChartStaticStaticChart* chart); +VALA_EXTERN LiveChartStaticStaticSeries* live_chart_static_static_series_construct (GType object_type, + LiveChartStaticStaticChart* chart); +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_series_register (LiveChartStaticStaticSeries* self, + LiveChartStaticStaticSerie* serie); +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_series_get (LiveChartStaticStaticSeries* self, + gint index, + GError** error); +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_series_get_by_name (LiveChartStaticStaticSeries* self, + const gchar* name, + GError** error); +VALA_EXTERN GeeIterator* live_chart_static_static_series_iterator (LiveChartStaticStaticSeries* self); +VALA_EXTERN GType live_chart_static_static_serie_renderer_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticSerieRenderer, g_object_unref) +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_serie_new (const gchar* name, + LiveChartStaticStaticSerieRenderer* renderer); +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_serie_construct (GType object_type, + const gchar* name, + LiveChartStaticStaticSerieRenderer* renderer); +VALA_EXTERN void live_chart_static_static_serie_add (LiveChartStaticStaticSerie* self, + const gchar* name, + gdouble value); +VALA_EXTERN GType live_chart_static_static_values_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticValues, g_object_unref) +VALA_EXTERN LiveChartStaticStaticValues* live_chart_static_static_serie_get_values (LiveChartStaticStaticSerie* self); +VALA_EXTERN void live_chart_static_static_serie_clear (LiveChartStaticStaticSerie* self); +VALA_EXTERN const gchar* live_chart_static_static_serie_get_name (LiveChartStaticStaticSerie* self); +VALA_EXTERN void live_chart_static_static_serie_set_name (LiveChartStaticStaticSerie* self, + const gchar* value); +VALA_EXTERN LiveChartPath* live_chart_static_static_serie_get_line (LiveChartStaticStaticSerie* self); +VALA_EXTERN void live_chart_static_static_serie_set_line (LiveChartStaticStaticSerie* self, + LiveChartPath* value); +VALA_EXTERN GType live_chart_static_named_value_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartStaticNamedValue* live_chart_static_named_value_dup (const LiveChartStaticNamedValue* self); +VALA_EXTERN void live_chart_static_named_value_free (LiveChartStaticNamedValue* self); +VALA_EXTERN void live_chart_static_named_value_copy (const LiveChartStaticNamedValue* self, + LiveChartStaticNamedValue* dest); +VALA_EXTERN void live_chart_static_named_value_destroy (LiveChartStaticNamedValue* self); +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (LiveChartStaticNamedValue, live_chart_static_named_value_destroy) +VALA_EXTERN LiveChartStaticStaticValues* live_chart_static_static_values_new (void); +VALA_EXTERN LiveChartStaticStaticValues* live_chart_static_static_values_construct (GType object_type); +VALA_EXTERN void live_chart_static_static_values_add (LiveChartStaticStaticValues* self, + LiveChartStaticNamedValue* value); +VALA_EXTERN LiveChartBounds* live_chart_static_static_values_get_bounds (LiveChartStaticStaticValues* self); +VALA_EXTERN void live_chart_static_static_values_set_bounds (LiveChartStaticStaticValues* self, + LiveChartBounds* value); +VALA_EXTERN LiveChartStaticStaticSerieRenderer* live_chart_static_static_serie_renderer_construct (GType object_type); +VALA_EXTERN LiveChartStaticStaticValues* live_chart_static_static_serie_renderer_get_values (LiveChartStaticStaticSerieRenderer* self); +VALA_EXTERN void live_chart_static_static_serie_renderer_draw (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_serie_renderer_debug (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx); +VALA_EXTERN gboolean live_chart_static_static_serie_renderer_is_out_of_area (LiveChartStaticStaticSerieRenderer* self, + LiveChartPoint* point); +VALA_EXTERN LiveChartPath* live_chart_static_static_serie_renderer_get_line (LiveChartStaticStaticSerieRenderer* self); +VALA_EXTERN void live_chart_static_static_serie_renderer_set_line (LiveChartStaticStaticSerieRenderer* self, + LiveChartPath* value); +VALA_EXTERN GType live_chart_static_static_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticLine, g_object_unref) +VALA_EXTERN LiveChartStaticStaticLine* live_chart_static_static_line_new (LiveChartStaticStaticValues* values); +VALA_EXTERN LiveChartStaticStaticLine* live_chart_static_static_line_construct (GType object_type, + LiveChartStaticStaticValues* values); +VALA_EXTERN GType live_chart_static_static_points_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticPoints, g_object_unref) +VALA_EXTERN void live_chart_static_static_line_draw_line (LiveChartStaticStaticLine* self, + LiveChartStaticStaticPoints* points, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_restore (LiveChartStaticStaticGrid* self, + cairo_t* ctx); +VALA_EXTERN void live_chart_static_static_grid_render_abscissa (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_render_ordinate (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_render_grid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_render_vgrid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_render_hgrid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_update_bounding_box (LiveChartStaticStaticGrid* self, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_debug (LiveChartStaticStaticGrid* self, + cairo_t* ctx); +VALA_EXTERN LiveChartStaticStaticGrid* live_chart_static_static_grid_new (void); +VALA_EXTERN LiveChartStaticStaticGrid* live_chart_static_static_grid_construct (GType object_type); +VALA_EXTERN void live_chart_static_static_grid_get_main_color (LiveChartStaticStaticGrid* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_static_static_grid_set_main_color (LiveChartStaticStaticGrid* self, + GdkRGBA * value); +VALA_EXTERN LiveChartStaticStaticPoints* live_chart_static_static_points_new (void); +VALA_EXTERN LiveChartStaticStaticPoints* live_chart_static_static_points_construct (GType object_type); +VALA_EXTERN void live_chart_static_static_points_add (LiveChartStaticStaticPoints* self, + LiveChartPoint* point); +VALA_EXTERN void live_chart_static_static_points_get (LiveChartStaticStaticPoints* self, + gint at, + LiveChartPoint* result); +VALA_EXTERN void live_chart_static_static_points_after (LiveChartStaticStaticPoints* self, + gint at, + LiveChartPoint* result); +VALA_EXTERN void live_chart_static_static_points_first (LiveChartStaticStaticPoints* self, + LiveChartPoint* result); +VALA_EXTERN void live_chart_static_static_points_last (LiveChartStaticStaticPoints* self, + LiveChartPoint* result); +VALA_EXTERN LiveChartStaticStaticPoints* live_chart_static_static_points_create (LiveChartStaticStaticValues* values, + LiveChartConfig* config); +VALA_EXTERN LiveChartBounds* live_chart_static_static_points_get_bounds (LiveChartStaticStaticPoints* self); +VALA_EXTERN void live_chart_static_static_points_set_bounds (LiveChartStaticStaticPoints* self, + LiveChartBounds* value); +VALA_EXTERN gint live_chart_static_static_points_get_size (LiveChartStaticStaticPoints* self); +VALA_EXTERN gdouble live_chart_static_static_points_get_realtime_delta (LiveChartStaticStaticPoints* self); +VALA_EXTERN void live_chart_static_static_points_set_realtime_delta (LiveChartStaticStaticPoints* self, + gdouble value); + +G_END_DECLS + +#endif diff --git a/iPDC/lib/livechart.vapi b/iPDC/lib/livechart.vapi new file mode 100644 index 0000000..39aedac --- /dev/null +++ b/iPDC/lib/livechart.vapi @@ -0,0 +1,507 @@ +/* livechart.vapi generated by valac 0.56.0, do not modify. */ + +namespace LiveChart { + namespace Static { + [CCode (cheader_filename = "livechart.h")] + public class StaticChart : Gtk.DrawingArea { + public LiveChart.Config config; + public LiveChart.Static.StaticSeries series; + public StaticChart (LiveChart.Config config = new LiveChart.Config ()); + public void add_serie (LiveChart.Static.StaticSerie serie); + public void set_categories (Gee.ArrayList categories); + public LiveChart.Background background { get; set; } + public LiveChart.Static.StaticGrid grid { get; set; } + public LiveChart.Legend legend { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class StaticGrid : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + public const int ABSCISSA_TIME_PADDING; + public StaticGrid (); + protected void debug (Cairo.Context ctx); + protected void render_abscissa (Cairo.Context ctx, LiveChart.Config config); + protected void render_grid (Cairo.Context ctx, LiveChart.Config config); + protected void render_hgrid (Cairo.Context ctx, LiveChart.Config config); + protected void render_ordinate (Cairo.Context ctx, LiveChart.Config config); + protected void render_vgrid (Cairo.Context ctx, LiveChart.Config config); + protected void restore (Cairo.Context ctx); + protected void update_bounding_box (LiveChart.Config config); + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class StaticLine : LiveChart.Static.StaticSerieRenderer { + public StaticLine (LiveChart.Static.StaticValues values = new LiveChart.Static.StaticValues ()); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + protected void draw_line (LiveChart.Static.StaticPoints points, Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart.h")] + public class StaticPoints : GLib.Object { + public StaticPoints (); + public void add (LiveChart.Point point); + public LiveChart.Point after (int at); + public static LiveChart.Static.StaticPoints create (LiveChart.Static.StaticValues values, LiveChart.Config config); + public LiveChart.Point first (); + public new LiveChart.Point @get (int at); + public LiveChart.Point last (); + public LiveChart.Bounds bounds { get; set construct; } + public double realtime_delta { get; set; } + public int size { get; } + } + [CCode (cheader_filename = "livechart.h")] + public class StaticSerie : LiveChart.Colorable, LiveChart.Drawable, GLib.Object { + public StaticSerie (string name, LiveChart.Static.StaticSerieRenderer renderer = new LiveChart.Static.StaticLine (new LiveChart.Static.StaticValues ())); + public void add (string name, double value); + public void clear (); + public LiveChart.Static.StaticValues get_values (); + public LiveChart.Path line { get; set; } + public string name { get; set; } + public signal void value_added (double value); + } + [CCode (cheader_filename = "livechart.h")] + public abstract class StaticSerieRenderer : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + protected LiveChart.Static.StaticValues values; + protected StaticSerieRenderer (); + protected void debug (Cairo.Context ctx); + public abstract void draw (Cairo.Context ctx, LiveChart.Config config); + public LiveChart.Static.StaticValues get_values (); + protected bool is_out_of_area (LiveChart.Point point); + public LiveChart.Path line { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class StaticSeries : GLib.Object { + public StaticSeries (LiveChart.Static.StaticChart chart); + public new LiveChart.Static.StaticSerie @get (int index) throws LiveChart.ChartError; + public LiveChart.Static.StaticSerie get_by_name (string name) throws LiveChart.ChartError; + public Gee.Iterator iterator (); + public LiveChart.Static.StaticSerie register (LiveChart.Static.StaticSerie serie); + } + [CCode (cheader_filename = "livechart.h")] + public class StaticValues : Gee.LinkedList { + public StaticValues (); + public new void add (LiveChart.Static.NamedValue value); + public LiveChart.Bounds bounds { get; set construct; } + } + [CCode (cheader_filename = "livechart.h")] + public struct NamedValue { + public string name; + public double value; + } + } + [CCode (cheader_filename = "livechart.h")] + public class Area : LiveChart.Drawable, GLib.Object { + public Area (LiveChart.Points points, Gdk.RGBA color, double alpha); + } + [CCode (cheader_filename = "livechart.h")] + public class Background : LiveChart.Drawable, GLib.Object { + public Background (); + public Gdk.RGBA color { get; set; } + [Version (deprecated = true, deprecated_since = "1.8.0", replacement = "Background.color")] + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Bar : LiveChart.SerieRenderer { + public Bar (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart.h")] + public class BezierIntersector : LiveChart.Intersector { + public BezierIntersector (LiveChart.Region region, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart.h")] + public class Bounds : GLib.Object { + public Bounds (double lower = double.NAN, double upper = double.NAN); + public bool has_lower (); + public bool has_upper (); + public bool update (double value); + public double lower { get; private set; } + public double upper { get; private set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Chart : Gtk.DrawingArea { + public LiveChart.Config config; + public LiveChart.Series series; + public Chart (LiveChart.Config config = new LiveChart.Config ()); + public void add_serie (LiveChart.Serie serie); + public void add_unaware_timestamp_collection (LiveChart.Serie serie, Gee.Collection collection, int timespan_between_value); + public void add_unaware_timestamp_collection_by_index (int serie_index, Gee.Collection collection, int timespan_between_value) throws LiveChart.ChartError; + [Version (deprecated = true, deprecated_since = "1.7.0", replacement = "Retrieve the Serie from Chart.series (or from the serie you created) and add the value using serie.add")] + public void add_value (LiveChart.Serie serie, double value); + [Version (deprecated = true, deprecated_since = "1.7.0", replacement = "Retrieve the Serie from Chart.series and add the value using serie.add")] + public void add_value_by_index (int serie_index, double value) throws LiveChart.ChartError; + public void refresh_every (int ms); + public void to_png (string filename) throws GLib.Error; + public LiveChart.Background background { get; set; } + public LiveChart.Grid grid { get; set; } + public LiveChart.Legend legend { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Config { + public LiveChart.Padding padding; + public LiveChart.XAxis x_axis; + public LiveChart.YAxis y_axis; + public Config (); + public LiveChart.Boundaries boundaries (); + public void configure (Cairo.Context ctx, LiveChart.Legend? legend); + public int height { get; set; } + public int width { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Font { + public Font (); + public void configure (Cairo.Context ctx); + public Gdk.RGBA color { get; set; } + public string face { get; set; } + public uint8 size { get; set; } + public Cairo.FontSlant slant { get; set; } + public Cairo.FontWeight weight { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Grid : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + public const int ABSCISSA_TIME_PADDING; + public Grid (); + protected void debug (Cairo.Context ctx); + protected void render_abscissa (Cairo.Context ctx, LiveChart.Config config); + protected void render_grid (Cairo.Context ctx, LiveChart.Config config); + protected void render_hgrid (Cairo.Context ctx, LiveChart.Config config); + protected void render_ordinate (Cairo.Context ctx, LiveChart.Config config); + protected void render_vgrid (Cairo.Context ctx, LiveChart.Config config); + protected void restore (Cairo.Context ctx); + protected void update_bounding_box (LiveChart.Config config); + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class HorizontalLegend : LiveChart.Legend { + public HorizontalLegend (); + protected void debug (Cairo.Context ctx); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart.h")] + public class Intersection : GLib.Object { + public double? entered_at; + public double? exited_at; + public Intersection (LiveChart.Region region, double start_x, double entered_at); + public void close (double x, double exited_at); + public bool is_closed (); + public bool is_open (); + public void update (double x); + public Intersection.without_entry_point (LiveChart.Region region, double start_x); + public double end_x { get; private set; } + public LiveChart.Region region { get; set construct; } + public double start_x { get; private set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Intersections : GLib.Object { + public Intersections (); + public void close (double x, double exited_at); + public void @foreach (Gee.ForallFunc f); + public new LiveChart.Intersection @get (int index); + public LiveChart.Region get_current_region (); + public bool has_an_opened_intersection (); + public void open (LiveChart.Region region, double x, double entered_at); + public void open_without_entrypoint (LiveChart.Region region, double x); + public int size (); + public void update (double x); + } + [CCode (cheader_filename = "livechart.h")] + public class Labels { + public Labels (); + public Cairo.TextExtents extents { get; set; } + public LiveChart.Font font { get; set; } + public bool visible { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public abstract class Legend : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + public LiveChart.Labels labels; + protected Gee.ArrayList series; + protected Legend (); + public void add_legend (LiveChart.Serie serie); + public abstract void draw (Cairo.Context ctx, LiveChart.Config config); + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Line : LiveChart.SerieRenderer { + public Line (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + protected LiveChart.Points draw_line (LiveChart.Points points, Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart.h")] + public class LineArea : LiveChart.Line { + public LineArea (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + public double area_alpha { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class MaxBoundLine : LiveChart.SerieRenderer { + public MaxBoundLine (); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + public MaxBoundLine.from_serie (LiveChart.Serie serie); + } + [CCode (cheader_filename = "livechart.h")] + public class MinBoundLine : LiveChart.SerieRenderer { + public MinBoundLine (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + public MinBoundLine.from_serie (LiveChart.Serie serie); + } + [CCode (cheader_filename = "livechart.h")] + public class NoopLegend : LiveChart.Legend { + public NoopLegend (); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart.h")] + public class Path : GLib.Object { + public LiveChart.Dash? dash; + public Path (double width = 0.5, Gdk.RGBA color = { 1.0, 1.0, 1.0, 1.0 }, bool visible = true, LiveChart.Dash? dash = null); + public void configure (Cairo.Context ctx); + public Gdk.RGBA color { get; set; } + public bool visible { get; set; } + public double width { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Points : GLib.Object { + public Points (); + public void add (LiveChart.Point point); + public LiveChart.Point after (int at); + public static LiveChart.Points create (LiveChart.Values values, LiveChart.Config config); + public LiveChart.Point first (); + public new LiveChart.Point @get (int at); + public LiveChart.Point last (); + public LiveChart.Bounds bounds { get; set construct; } + public double realtime_delta { get; set; } + public int size { get; } + } + [CCode (cheader_filename = "livechart.h")] + public class Region { + public Region (double floor, double ceil); + public Region.between (double above, double below); + public void handle (LiveChart.Intersections intersections, LiveChart.Point previous, LiveChart.Point current, LiveChart.GetIntersection get_intersection); + public bool has_at_least_one_point_within (LiveChart.Point previous, LiveChart.Point current); + public LiveChart.Region with_area_color (Gdk.RGBA color); + public LiveChart.Region with_line_color (Gdk.RGBA color); + public Gdk.RGBA area_color { get; set; } + public Gdk.RGBA line_color { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Serie : LiveChart.Colorable, LiveChart.Drawable, GLib.Object { + public Serie (string name, LiveChart.SerieRenderer renderer = new LiveChart.Line (new LiveChart.Values (1000))); + public void add (double value); + public void add_with_timestamp (double value, int64 timestamp); + public void clear (); + [Version (deprecated = true, deprecated_since = "1.7.1", replacement = "Serie.main_color property instead")] + public Gdk.RGBA get_main_color (); + public LiveChart.Values get_values (); + [Version (deprecated = true, deprecated_since = "1.7.1", replacement = "Serie.main_color property instead")] + public void set_main_color (Gdk.RGBA color); + public LiveChart.Path line { get; set; } + public string name { get; set; } + public signal void value_added (double value); + } + [CCode (cheader_filename = "livechart.h")] + public abstract class SerieRenderer : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + protected LiveChart.Values values; + protected SerieRenderer (); + protected void debug (Cairo.Context ctx); + public abstract void draw (Cairo.Context ctx, LiveChart.Config config); + public LiveChart.Values get_values (); + protected bool is_out_of_area (LiveChart.Point point); + public LiveChart.Path line { get; set; } + [Version (deprecated = true, deprecated_since = "1.8.0", replacement = "Serie.renderer.line.color")] + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Series : GLib.Object { + public Series (LiveChart.Chart chart); + public new LiveChart.Serie @get (int index) throws LiveChart.ChartError; + public LiveChart.Serie get_by_name (string name) throws LiveChart.ChartError; + public Gee.Iterator iterator (); + public LiveChart.Serie register (LiveChart.Serie serie); + } + [CCode (cheader_filename = "livechart.h")] + public class SmoothLine : LiveChart.SerieRenderer { + protected LiveChart.Intersections intersections; + public SmoothLine (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + protected void draw_regions_on_line (Cairo.Context ctx, LiveChart.Config config); + public Cairo.Path draw_smooth_line (LiveChart.Points points, Cairo.Context ctx, LiveChart.Config config); + public LiveChart.Region? region { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class SmoothLineArea : LiveChart.SmoothLine { + public SmoothLineArea (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + protected void draw_regions_on_area (Cairo.Context ctx, LiveChart.Config config); + public double area_alpha { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class ThresholdLine : LiveChart.SerieRenderer { + public ThresholdLine (double value); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + public double value { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class Values : Gee.LinkedList { + public Values (int buffer_size = 1000); + public new void add (LiveChart.TimestampedValue value); + public LiveChart.Bounds bounds { get; set construct; } + } + [CCode (cheader_filename = "livechart.h")] + public class XAxis { + public LiveChart.Path axis; + public LiveChart.Labels labels; + public LiveChart.Path lines; + public XAxis (); + public double get_ratio (); + public float tick_interval { get; set; } + public float tick_length { get; set; } + public bool visible { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public class YAxis { + public LiveChart.Path axis; + public double? fixed_max; + public LiveChart.Labels labels; + public LiveChart.Path lines; + [Version (deprecated = true, deprecated_since = "1.0.0b7", replacement = "ratio is always smart ;)")] + public bool smart_ratio; + public LiveChart.Ticks ticks; + public YAxis (string unit = ""); + public LiveChart.Bounds get_bounds (); + public string get_max_displayed_value (); + public double get_ratio (); + public LiveChart.Ticks get_ticks (); + public void update (int area_height); + public bool update_bounds (double value); + public float ratio_threshold { get; set; } + public float tick_interval { get; set; } + [Version (deprecated = true, deprecated_since = "1.0.0b7")] + public float tick_length { get; set; } + public string unit { get; set; } + public bool visible { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public interface Colorable : GLib.Object { + [Version (deprecated = true, deprecated_since = "1.8.0", replacement = "Serie.line.color")] + public abstract Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public interface Drawable : GLib.Object { + public abstract void draw (Cairo.Context ctx, LiveChart.Config config); + public abstract LiveChart.BoundingBox get_bounding_box (); + public abstract bool visible { get; set; } + } + [CCode (cheader_filename = "livechart.h")] + public interface Intersector { + public abstract void intersect (LiveChart.Intersections intersections, LiveChart.Point previous, LiveChart.Point current, T path); + } + [CCode (cheader_filename = "livechart.h")] + public struct BezierCurve { + public LiveChart.Coord c0; + public LiveChart.Coord c1; + public LiveChart.Coord c2; + public LiveChart.Coord c3; + } + [CCode (cheader_filename = "livechart.h")] + public struct Boundaries { + public LiveChart.Boundary x; + public LiveChart.Boundary y; + public int width; + public int height; + } + [CCode (cheader_filename = "livechart.h")] + public struct Boundary { + public int min; + public int max; + } + [CCode (cheader_filename = "livechart.h")] + public struct BoundingBox { + public double x; + public double y; + public double width; + public double height; + } + [CCode (cheader_filename = "livechart.h")] + public struct Coord { + public double x; + public double y; + } + [CCode (cheader_filename = "livechart.h")] + public struct Dash { + public double[]? dashes; + public double offset; + public Dash (); + } + [CCode (cheader_filename = "livechart.h")] + public struct Padding { + public LiveChart.AutoPadding smart; + public int top; + public int right; + public int bottom; + public int left; + public Padding (); + } + [CCode (cheader_filename = "livechart.h")] + public struct Point { + public double x; + public double y; + public double height; + public LiveChart.TimestampedValue data; + } + [CCode (cheader_filename = "livechart.h")] + public struct RegionHandleResult { + public LiveChart.RegionHandleStatus status; + public double at_value; + } + [CCode (cheader_filename = "livechart.h")] + public struct Segment { + public LiveChart.Coord from; + public LiveChart.Coord to; + } + [CCode (cheader_filename = "livechart.h")] + public struct Ticks { + public Gee.List values; + public Ticks (); + } + [CCode (cheader_filename = "livechart.h")] + public struct TimestampedValue { + public double timestamp; + public double value; + } + [CCode (cheader_filename = "livechart.h")] + [Flags] + public enum AutoPadding { + NONE, + TOP, + RIGHT, + BOTTOM, + LEFT + } + [CCode (cheader_filename = "livechart.h")] + public enum RegionHandleStatus { + ENTER, + EXIT, + WITHIN, + OUT + } + [CCode (cheader_filename = "livechart.h")] + public errordomain ChartError { + EXPORT_ERROR, + SERIE_NOT_FOUND + } + [CCode (cheader_filename = "livechart.h")] + public delegate LiveChart.Coord? GetIntersection (double at_value); + [CCode (cheader_filename = "livechart.h")] + public static LiveChart.BezierCurve build_bezier_curve_from_points (LiveChart.Point previous, LiveChart.Point target); + [CCode (cheader_filename = "livechart.h")] + public static float cap (float value); + [CCode (cheader_filename = "livechart.h")] + public static Gee.List find_intersections_between (LiveChart.Segment segment, LiveChart.BezierCurve bezier); + [CCode (cheader_filename = "livechart.h")] + public static string format_for_y_axis (string unit, float value); + [CCode (cheader_filename = "livechart.h")] + public static Gee.List golden_divisors (float value); + [CCode (cheader_filename = "livechart.h")] + public static bool has_fractional_part (float value); +} diff --git a/iPDC/lib/livechart_static.h b/iPDC/lib/livechart_static.h new file mode 100644 index 0000000..adda37c --- /dev/null +++ b/iPDC/lib/livechart_static.h @@ -0,0 +1,1846 @@ +/* livechart_static.h generated by valac 0.56.0, the Vala compiler, do not modify */ + +#ifndef __SRC_LIVECHART_STATIC_H__ +#define __SRC_LIVECHART_STATIC_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +G_BEGIN_DECLS + +#if !defined(VALA_EXTERN) +#if defined(_MSC_VER) +#define VALA_EXTERN __declspec(dllexport) extern +#elif __GNUC__ >= 4 +#define VALA_EXTERN __attribute__((visibility("default"))) extern +#else +#define VALA_EXTERN extern +#endif +#endif +#define LIVE_CHART_GRID_ABSCISSA_TIME_PADDING 5 +#define LIVE_CHART_STATIC_STATIC_GRID_ABSCISSA_TIME_PADDING 5 + +#define LIVE_CHART_TYPE_DRAWABLE (live_chart_drawable_get_type ()) +#define LIVE_CHART_DRAWABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_DRAWABLE, LiveChartDrawable)) +#define LIVE_CHART_IS_DRAWABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_DRAWABLE)) +#define LIVE_CHART_DRAWABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LIVE_CHART_TYPE_DRAWABLE, LiveChartDrawableIface)) + +typedef struct _LiveChartDrawable LiveChartDrawable; +typedef struct _LiveChartDrawableIface LiveChartDrawableIface; + +#define LIVE_CHART_TYPE_CONFIG (live_chart_config_get_type ()) +#define LIVE_CHART_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_CONFIG, LiveChartConfig)) +#define LIVE_CHART_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_CONFIG, LiveChartConfigClass)) +#define LIVE_CHART_IS_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_CONFIG)) +#define LIVE_CHART_IS_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_CONFIG)) +#define LIVE_CHART_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_CONFIG, LiveChartConfigClass)) + +typedef struct _LiveChartConfig LiveChartConfig; +typedef struct _LiveChartConfigClass LiveChartConfigClass; + +#define LIVE_CHART_TYPE_BOUNDING_BOX (live_chart_bounding_box_get_type ()) +typedef struct _LiveChartBoundingBox LiveChartBoundingBox; + +#define LIVE_CHART_TYPE_AREA (live_chart_area_get_type ()) +#define LIVE_CHART_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_AREA, LiveChartArea)) +#define LIVE_CHART_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_AREA, LiveChartAreaClass)) +#define LIVE_CHART_IS_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_AREA)) +#define LIVE_CHART_IS_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_AREA)) +#define LIVE_CHART_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_AREA, LiveChartAreaClass)) + +typedef struct _LiveChartArea LiveChartArea; +typedef struct _LiveChartAreaClass LiveChartAreaClass; +typedef struct _LiveChartAreaPrivate LiveChartAreaPrivate; + +#define LIVE_CHART_TYPE_POINTS (live_chart_points_get_type ()) +#define LIVE_CHART_POINTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_POINTS, LiveChartPoints)) +#define LIVE_CHART_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_POINTS, LiveChartPointsClass)) +#define LIVE_CHART_IS_POINTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_POINTS)) +#define LIVE_CHART_IS_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_POINTS)) +#define LIVE_CHART_POINTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_POINTS, LiveChartPointsClass)) + +typedef struct _LiveChartPoints LiveChartPoints; +typedef struct _LiveChartPointsClass LiveChartPointsClass; + +#define LIVE_CHART_TYPE_XAXIS (live_chart_xaxis_get_type ()) +#define LIVE_CHART_XAXIS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_XAXIS, LiveChartXAxis)) +#define LIVE_CHART_XAXIS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_XAXIS, LiveChartXAxisClass)) +#define LIVE_CHART_IS_XAXIS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_XAXIS)) +#define LIVE_CHART_IS_XAXIS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_XAXIS)) +#define LIVE_CHART_XAXIS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_XAXIS, LiveChartXAxisClass)) + +typedef struct _LiveChartXAxis LiveChartXAxis; +typedef struct _LiveChartXAxisClass LiveChartXAxisClass; +typedef struct _LiveChartXAxisPrivate LiveChartXAxisPrivate; + +#define LIVE_CHART_TYPE_LABELS (live_chart_labels_get_type ()) +#define LIVE_CHART_LABELS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_LABELS, LiveChartLabels)) +#define LIVE_CHART_LABELS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_LABELS, LiveChartLabelsClass)) +#define LIVE_CHART_IS_LABELS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_LABELS)) +#define LIVE_CHART_IS_LABELS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_LABELS)) +#define LIVE_CHART_LABELS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_LABELS, LiveChartLabelsClass)) + +typedef struct _LiveChartLabels LiveChartLabels; +typedef struct _LiveChartLabelsClass LiveChartLabelsClass; + +#define LIVE_CHART_TYPE_PATH (live_chart_path_get_type ()) +#define LIVE_CHART_PATH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_PATH, LiveChartPath)) +#define LIVE_CHART_PATH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_PATH, LiveChartPathClass)) +#define LIVE_CHART_IS_PATH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_PATH)) +#define LIVE_CHART_IS_PATH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_PATH)) +#define LIVE_CHART_PATH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_PATH, LiveChartPathClass)) + +typedef struct _LiveChartPath LiveChartPath; +typedef struct _LiveChartPathClass LiveChartPathClass; + +#define LIVE_CHART_TYPE_TICKS (live_chart_ticks_get_type ()) +typedef struct _LiveChartTicks LiveChartTicks; + +#define LIVE_CHART_TYPE_YAXIS (live_chart_yaxis_get_type ()) +#define LIVE_CHART_YAXIS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_YAXIS, LiveChartYAxis)) +#define LIVE_CHART_YAXIS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_YAXIS, LiveChartYAxisClass)) +#define LIVE_CHART_IS_YAXIS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_YAXIS)) +#define LIVE_CHART_IS_YAXIS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_YAXIS)) +#define LIVE_CHART_YAXIS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_YAXIS, LiveChartYAxisClass)) + +typedef struct _LiveChartYAxis LiveChartYAxis; +typedef struct _LiveChartYAxisClass LiveChartYAxisClass; +typedef struct _LiveChartYAxisPrivate LiveChartYAxisPrivate; + +#define LIVE_CHART_TYPE_BOUNDS (live_chart_bounds_get_type ()) +#define LIVE_CHART_BOUNDS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_BOUNDS, LiveChartBounds)) +#define LIVE_CHART_BOUNDS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_BOUNDS, LiveChartBoundsClass)) +#define LIVE_CHART_IS_BOUNDS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_BOUNDS)) +#define LIVE_CHART_IS_BOUNDS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_BOUNDS)) +#define LIVE_CHART_BOUNDS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_BOUNDS, LiveChartBoundsClass)) + +typedef struct _LiveChartBounds LiveChartBounds; +typedef struct _LiveChartBoundsClass LiveChartBoundsClass; + +#define LIVE_CHART_TYPE_BACKGROUND (live_chart_background_get_type ()) +#define LIVE_CHART_BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_BACKGROUND, LiveChartBackground)) +#define LIVE_CHART_BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_BACKGROUND, LiveChartBackgroundClass)) +#define LIVE_CHART_IS_BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_BACKGROUND)) +#define LIVE_CHART_IS_BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_BACKGROUND)) +#define LIVE_CHART_BACKGROUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_BACKGROUND, LiveChartBackgroundClass)) + +typedef struct _LiveChartBackground LiveChartBackground; +typedef struct _LiveChartBackgroundClass LiveChartBackgroundClass; +typedef struct _LiveChartBackgroundPrivate LiveChartBackgroundPrivate; + +#define LIVE_CHART_TYPE_SERIE_RENDERER (live_chart_serie_renderer_get_type ()) +#define LIVE_CHART_SERIE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRenderer)) +#define LIVE_CHART_SERIE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRendererClass)) +#define LIVE_CHART_IS_SERIE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SERIE_RENDERER)) +#define LIVE_CHART_IS_SERIE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SERIE_RENDERER)) +#define LIVE_CHART_SERIE_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRendererClass)) + +typedef struct _LiveChartSerieRenderer LiveChartSerieRenderer; +typedef struct _LiveChartSerieRendererClass LiveChartSerieRendererClass; +typedef struct _LiveChartSerieRendererPrivate LiveChartSerieRendererPrivate; + +#define LIVE_CHART_TYPE_VALUES (live_chart_values_get_type ()) +#define LIVE_CHART_VALUES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_VALUES, LiveChartValues)) +#define LIVE_CHART_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_VALUES, LiveChartValuesClass)) +#define LIVE_CHART_IS_VALUES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_VALUES)) +#define LIVE_CHART_IS_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_VALUES)) +#define LIVE_CHART_VALUES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_VALUES, LiveChartValuesClass)) + +typedef struct _LiveChartValues LiveChartValues; +typedef struct _LiveChartValuesClass LiveChartValuesClass; + +#define LIVE_CHART_TYPE_BAR (live_chart_bar_get_type ()) +#define LIVE_CHART_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_BAR, LiveChartBar)) +#define LIVE_CHART_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_BAR, LiveChartBarClass)) +#define LIVE_CHART_IS_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_BAR)) +#define LIVE_CHART_IS_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_BAR)) +#define LIVE_CHART_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_BAR, LiveChartBarClass)) + +typedef struct _LiveChartBar LiveChartBar; +typedef struct _LiveChartBarClass LiveChartBarClass; +typedef struct _LiveChartBarPrivate LiveChartBarPrivate; + +#define LIVE_CHART_TYPE_SEGMENT (live_chart_segment_get_type ()) +typedef struct _LiveChartSegment LiveChartSegment; + +#define LIVE_CHART_TYPE_COORD (live_chart_coord_get_type ()) +typedef struct _LiveChartCoord LiveChartCoord; + +#define LIVE_CHART_TYPE_BEZIER_CURVE (live_chart_bezier_curve_get_type ()) +typedef struct _LiveChartBezierCurve LiveChartBezierCurve; +typedef struct _LiveChartBoundsPrivate LiveChartBoundsPrivate; + +#define LIVE_CHART_TYPE_CHART_ERROR (live_chart_chart_error_get_type ()) + +#define LIVE_CHART_TYPE_CHART (live_chart_chart_get_type ()) +#define LIVE_CHART_CHART(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_CHART, LiveChartChart)) +#define LIVE_CHART_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_CHART, LiveChartChartClass)) +#define LIVE_CHART_IS_CHART(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_CHART)) +#define LIVE_CHART_IS_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_CHART)) +#define LIVE_CHART_CHART_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_CHART, LiveChartChartClass)) + +typedef struct _LiveChartChart LiveChartChart; +typedef struct _LiveChartChartClass LiveChartChartClass; +typedef struct _LiveChartChartPrivate LiveChartChartPrivate; + +#define LIVE_CHART_TYPE_SERIES (live_chart_series_get_type ()) +#define LIVE_CHART_SERIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SERIES, LiveChartSeries)) +#define LIVE_CHART_SERIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SERIES, LiveChartSeriesClass)) +#define LIVE_CHART_IS_SERIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SERIES)) +#define LIVE_CHART_IS_SERIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SERIES)) +#define LIVE_CHART_SERIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SERIES, LiveChartSeriesClass)) + +typedef struct _LiveChartSeries LiveChartSeries; +typedef struct _LiveChartSeriesClass LiveChartSeriesClass; + +#define LIVE_CHART_TYPE_SERIE (live_chart_serie_get_type ()) +#define LIVE_CHART_SERIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SERIE, LiveChartSerie)) +#define LIVE_CHART_SERIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SERIE, LiveChartSerieClass)) +#define LIVE_CHART_IS_SERIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SERIE)) +#define LIVE_CHART_IS_SERIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SERIE)) +#define LIVE_CHART_SERIE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SERIE, LiveChartSerieClass)) + +typedef struct _LiveChartSerie LiveChartSerie; +typedef struct _LiveChartSerieClass LiveChartSerieClass; + +#define LIVE_CHART_TYPE_GRID (live_chart_grid_get_type ()) +#define LIVE_CHART_GRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_GRID, LiveChartGrid)) +#define LIVE_CHART_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_GRID, LiveChartGridClass)) +#define LIVE_CHART_IS_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_GRID)) +#define LIVE_CHART_IS_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_GRID)) +#define LIVE_CHART_GRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_GRID, LiveChartGridClass)) + +typedef struct _LiveChartGrid LiveChartGrid; +typedef struct _LiveChartGridClass LiveChartGridClass; + +#define LIVE_CHART_TYPE_LEGEND (live_chart_legend_get_type ()) +#define LIVE_CHART_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_LEGEND, LiveChartLegend)) +#define LIVE_CHART_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_LEGEND, LiveChartLegendClass)) +#define LIVE_CHART_IS_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_LEGEND)) +#define LIVE_CHART_IS_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_LEGEND)) +#define LIVE_CHART_LEGEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_LEGEND, LiveChartLegendClass)) + +typedef struct _LiveChartLegend LiveChartLegend; +typedef struct _LiveChartLegendClass LiveChartLegendClass; +typedef enum { + LIVE_CHART_AUTO_PADDING_NONE = 1 << 0, + LIVE_CHART_AUTO_PADDING_TOP = 1 << 1, + LIVE_CHART_AUTO_PADDING_RIGHT = 1 << 2, + LIVE_CHART_AUTO_PADDING_BOTTOM = 1 << 3, + LIVE_CHART_AUTO_PADDING_LEFT = 1 << 4 +} LiveChartAutoPadding; + +#define LIVE_CHART_TYPE_AUTO_PADDING (live_chart_auto_padding_get_type ()) + +#define LIVE_CHART_TYPE_PADDING (live_chart_padding_get_type ()) +typedef struct _LiveChartPadding LiveChartPadding; + +#define LIVE_CHART_TYPE_BOUNDARY (live_chart_boundary_get_type ()) +typedef struct _LiveChartBoundary LiveChartBoundary; + +#define LIVE_CHART_TYPE_BOUNDARIES (live_chart_boundaries_get_type ()) +typedef struct _LiveChartBoundaries LiveChartBoundaries; +typedef struct _LiveChartConfigPrivate LiveChartConfigPrivate; + +#define LIVE_CHART_TYPE_COLORABLE (live_chart_colorable_get_type ()) +#define LIVE_CHART_COLORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_COLORABLE, LiveChartColorable)) +#define LIVE_CHART_IS_COLORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_COLORABLE)) +#define LIVE_CHART_COLORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LIVE_CHART_TYPE_COLORABLE, LiveChartColorableIface)) + +typedef struct _LiveChartColorable LiveChartColorable; +typedef struct _LiveChartColorableIface LiveChartColorableIface; + +#define LIVE_CHART_TYPE_FONT (live_chart_font_get_type ()) +#define LIVE_CHART_FONT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_FONT, LiveChartFont)) +#define LIVE_CHART_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_FONT, LiveChartFontClass)) +#define LIVE_CHART_IS_FONT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_FONT)) +#define LIVE_CHART_IS_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_FONT)) +#define LIVE_CHART_FONT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_FONT, LiveChartFontClass)) + +typedef struct _LiveChartFont LiveChartFont; +typedef struct _LiveChartFontClass LiveChartFontClass; +typedef struct _LiveChartFontPrivate LiveChartFontPrivate; + +#define LIVE_CHART_TYPE_POINT (live_chart_point_get_type ()) +typedef struct _LiveChartPoint LiveChartPoint; + +#define LIVE_CHART_TYPE_TIMESTAMPED_VALUE (live_chart_timestamped_value_get_type ()) +typedef struct _LiveChartTimestampedValue LiveChartTimestampedValue; +typedef struct _LiveChartGridPrivate LiveChartGridPrivate; + +#define LIVE_CHART_TYPE_INTERSECTIONS (live_chart_intersections_get_type ()) +#define LIVE_CHART_INTERSECTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_INTERSECTIONS, LiveChartIntersections)) +#define LIVE_CHART_INTERSECTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_INTERSECTIONS, LiveChartIntersectionsClass)) +#define LIVE_CHART_IS_INTERSECTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_INTERSECTIONS)) +#define LIVE_CHART_IS_INTERSECTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_INTERSECTIONS)) +#define LIVE_CHART_INTERSECTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_INTERSECTIONS, LiveChartIntersectionsClass)) + +typedef struct _LiveChartIntersections LiveChartIntersections; +typedef struct _LiveChartIntersectionsClass LiveChartIntersectionsClass; +typedef struct _LiveChartIntersectionsPrivate LiveChartIntersectionsPrivate; + +#define LIVE_CHART_TYPE_REGION (live_chart_region_get_type ()) +#define LIVE_CHART_REGION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_REGION, LiveChartRegion)) +#define LIVE_CHART_REGION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_REGION, LiveChartRegionClass)) +#define LIVE_CHART_IS_REGION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_REGION)) +#define LIVE_CHART_IS_REGION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_REGION)) +#define LIVE_CHART_REGION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_REGION, LiveChartRegionClass)) + +typedef struct _LiveChartRegion LiveChartRegion; +typedef struct _LiveChartRegionClass LiveChartRegionClass; + +#define LIVE_CHART_TYPE_INTERSECTION (live_chart_intersection_get_type ()) +#define LIVE_CHART_INTERSECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersection)) +#define LIVE_CHART_INTERSECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersectionClass)) +#define LIVE_CHART_IS_INTERSECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_INTERSECTION)) +#define LIVE_CHART_IS_INTERSECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_INTERSECTION)) +#define LIVE_CHART_INTERSECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersectionClass)) + +typedef struct _LiveChartIntersection LiveChartIntersection; +typedef struct _LiveChartIntersectionClass LiveChartIntersectionClass; +typedef struct _LiveChartIntersectionPrivate LiveChartIntersectionPrivate; + +#define LIVE_CHART_TYPE_INTERSECTOR (live_chart_intersector_get_type ()) +#define LIVE_CHART_INTERSECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_INTERSECTOR, LiveChartIntersector)) +#define LIVE_CHART_IS_INTERSECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_INTERSECTOR)) +#define LIVE_CHART_INTERSECTOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LIVE_CHART_TYPE_INTERSECTOR, LiveChartIntersectorIface)) + +typedef struct _LiveChartIntersector LiveChartIntersector; +typedef struct _LiveChartIntersectorIface LiveChartIntersectorIface; + +#define LIVE_CHART_TYPE_BEZIER_INTERSECTOR (live_chart_bezier_intersector_get_type ()) +#define LIVE_CHART_BEZIER_INTERSECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_BEZIER_INTERSECTOR, LiveChartBezierIntersector)) +#define LIVE_CHART_BEZIER_INTERSECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_BEZIER_INTERSECTOR, LiveChartBezierIntersectorClass)) +#define LIVE_CHART_IS_BEZIER_INTERSECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_BEZIER_INTERSECTOR)) +#define LIVE_CHART_IS_BEZIER_INTERSECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_BEZIER_INTERSECTOR)) +#define LIVE_CHART_BEZIER_INTERSECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_BEZIER_INTERSECTOR, LiveChartBezierIntersectorClass)) + +typedef struct _LiveChartBezierIntersector LiveChartBezierIntersector; +typedef struct _LiveChartBezierIntersectorClass LiveChartBezierIntersectorClass; +typedef struct _LiveChartBezierIntersectorPrivate LiveChartBezierIntersectorPrivate; +typedef struct _LiveChartLabelsPrivate LiveChartLabelsPrivate; +typedef struct _LiveChartLegendPrivate LiveChartLegendPrivate; + +#define LIVE_CHART_TYPE_HORIZONTAL_LEGEND (live_chart_horizontal_legend_get_type ()) +#define LIVE_CHART_HORIZONTAL_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_HORIZONTAL_LEGEND, LiveChartHorizontalLegend)) +#define LIVE_CHART_HORIZONTAL_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_HORIZONTAL_LEGEND, LiveChartHorizontalLegendClass)) +#define LIVE_CHART_IS_HORIZONTAL_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_HORIZONTAL_LEGEND)) +#define LIVE_CHART_IS_HORIZONTAL_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_HORIZONTAL_LEGEND)) +#define LIVE_CHART_HORIZONTAL_LEGEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_HORIZONTAL_LEGEND, LiveChartHorizontalLegendClass)) + +typedef struct _LiveChartHorizontalLegend LiveChartHorizontalLegend; +typedef struct _LiveChartHorizontalLegendClass LiveChartHorizontalLegendClass; +typedef struct _LiveChartHorizontalLegendPrivate LiveChartHorizontalLegendPrivate; + +#define LIVE_CHART_TYPE_NOOP_LEGEND (live_chart_noop_legend_get_type ()) +#define LIVE_CHART_NOOP_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_NOOP_LEGEND, LiveChartNoopLegend)) +#define LIVE_CHART_NOOP_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_NOOP_LEGEND, LiveChartNoopLegendClass)) +#define LIVE_CHART_IS_NOOP_LEGEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_NOOP_LEGEND)) +#define LIVE_CHART_IS_NOOP_LEGEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_NOOP_LEGEND)) +#define LIVE_CHART_NOOP_LEGEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_NOOP_LEGEND, LiveChartNoopLegendClass)) + +typedef struct _LiveChartNoopLegend LiveChartNoopLegend; +typedef struct _LiveChartNoopLegendClass LiveChartNoopLegendClass; +typedef struct _LiveChartNoopLegendPrivate LiveChartNoopLegendPrivate; + +#define LIVE_CHART_TYPE_LINE (live_chart_line_get_type ()) +#define LIVE_CHART_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_LINE, LiveChartLine)) +#define LIVE_CHART_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_LINE, LiveChartLineClass)) +#define LIVE_CHART_IS_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_LINE)) +#define LIVE_CHART_IS_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_LINE)) +#define LIVE_CHART_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_LINE, LiveChartLineClass)) + +typedef struct _LiveChartLine LiveChartLine; +typedef struct _LiveChartLineClass LiveChartLineClass; +typedef struct _LiveChartLinePrivate LiveChartLinePrivate; + +#define LIVE_CHART_TYPE_LINE_AREA (live_chart_line_area_get_type ()) +#define LIVE_CHART_LINE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_LINE_AREA, LiveChartLineArea)) +#define LIVE_CHART_LINE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_LINE_AREA, LiveChartLineAreaClass)) +#define LIVE_CHART_IS_LINE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_LINE_AREA)) +#define LIVE_CHART_IS_LINE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_LINE_AREA)) +#define LIVE_CHART_LINE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_LINE_AREA, LiveChartLineAreaClass)) + +typedef struct _LiveChartLineArea LiveChartLineArea; +typedef struct _LiveChartLineAreaClass LiveChartLineAreaClass; +typedef struct _LiveChartLineAreaPrivate LiveChartLineAreaPrivate; + +#define LIVE_CHART_TYPE_MAX_BOUND_LINE (live_chart_max_bound_line_get_type ()) +#define LIVE_CHART_MAX_BOUND_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_MAX_BOUND_LINE, LiveChartMaxBoundLine)) +#define LIVE_CHART_MAX_BOUND_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_MAX_BOUND_LINE, LiveChartMaxBoundLineClass)) +#define LIVE_CHART_IS_MAX_BOUND_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_MAX_BOUND_LINE)) +#define LIVE_CHART_IS_MAX_BOUND_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_MAX_BOUND_LINE)) +#define LIVE_CHART_MAX_BOUND_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_MAX_BOUND_LINE, LiveChartMaxBoundLineClass)) + +typedef struct _LiveChartMaxBoundLine LiveChartMaxBoundLine; +typedef struct _LiveChartMaxBoundLineClass LiveChartMaxBoundLineClass; +typedef struct _LiveChartMaxBoundLinePrivate LiveChartMaxBoundLinePrivate; + +#define LIVE_CHART_TYPE_MIN_BOUND_LINE (live_chart_min_bound_line_get_type ()) +#define LIVE_CHART_MIN_BOUND_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_MIN_BOUND_LINE, LiveChartMinBoundLine)) +#define LIVE_CHART_MIN_BOUND_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_MIN_BOUND_LINE, LiveChartMinBoundLineClass)) +#define LIVE_CHART_IS_MIN_BOUND_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_MIN_BOUND_LINE)) +#define LIVE_CHART_IS_MIN_BOUND_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_MIN_BOUND_LINE)) +#define LIVE_CHART_MIN_BOUND_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_MIN_BOUND_LINE, LiveChartMinBoundLineClass)) + +typedef struct _LiveChartMinBoundLine LiveChartMinBoundLine; +typedef struct _LiveChartMinBoundLineClass LiveChartMinBoundLineClass; +typedef struct _LiveChartMinBoundLinePrivate LiveChartMinBoundLinePrivate; + +#define LIVE_CHART_TYPE_DASH (live_chart_dash_get_type ()) +typedef struct _LiveChartDash LiveChartDash; +typedef struct _LiveChartPathPrivate LiveChartPathPrivate; +typedef struct _LiveChartPointsPrivate LiveChartPointsPrivate; +typedef enum { + LIVE_CHART_REGION_HANDLE_STATUS_ENTER, + LIVE_CHART_REGION_HANDLE_STATUS_EXIT, + LIVE_CHART_REGION_HANDLE_STATUS_WITHIN, + LIVE_CHART_REGION_HANDLE_STATUS_OUT +} LiveChartRegionHandleStatus; + +#define LIVE_CHART_TYPE_REGION_HANDLE_STATUS (live_chart_region_handle_status_get_type ()) + +#define LIVE_CHART_TYPE_REGION_HANDLE_RESULT (live_chart_region_handle_result_get_type ()) +typedef struct _LiveChartRegionHandleResult LiveChartRegionHandleResult; +typedef LiveChartCoord* (*LiveChartGetIntersection) (gdouble at_value, gpointer user_data); +typedef struct _LiveChartRegionPrivate LiveChartRegionPrivate; +typedef struct _LiveChartSeriePrivate LiveChartSeriePrivate; +typedef struct _LiveChartSeriesPrivate LiveChartSeriesPrivate; + +#define LIVE_CHART_TYPE_SMOOTH_LINE (live_chart_smooth_line_get_type ()) +#define LIVE_CHART_SMOOTH_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine)) +#define LIVE_CHART_SMOOTH_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLineClass)) +#define LIVE_CHART_IS_SMOOTH_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SMOOTH_LINE)) +#define LIVE_CHART_IS_SMOOTH_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SMOOTH_LINE)) +#define LIVE_CHART_SMOOTH_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLineClass)) + +typedef struct _LiveChartSmoothLine LiveChartSmoothLine; +typedef struct _LiveChartSmoothLineClass LiveChartSmoothLineClass; +typedef struct _LiveChartSmoothLinePrivate LiveChartSmoothLinePrivate; + +#define LIVE_CHART_TYPE_SMOOTH_LINE_AREA (live_chart_smooth_line_area_get_type ()) +#define LIVE_CHART_SMOOTH_LINE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineArea)) +#define LIVE_CHART_SMOOTH_LINE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineAreaClass)) +#define LIVE_CHART_IS_SMOOTH_LINE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_SMOOTH_LINE_AREA)) +#define LIVE_CHART_IS_SMOOTH_LINE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_SMOOTH_LINE_AREA)) +#define LIVE_CHART_SMOOTH_LINE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineAreaClass)) + +typedef struct _LiveChartSmoothLineArea LiveChartSmoothLineArea; +typedef struct _LiveChartSmoothLineAreaClass LiveChartSmoothLineAreaClass; +typedef struct _LiveChartSmoothLineAreaPrivate LiveChartSmoothLineAreaPrivate; + +#define LIVE_CHART_TYPE_THRESHOLD_LINE (live_chart_threshold_line_get_type ()) +#define LIVE_CHART_THRESHOLD_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLine)) +#define LIVE_CHART_THRESHOLD_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLineClass)) +#define LIVE_CHART_IS_THRESHOLD_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_TYPE_THRESHOLD_LINE)) +#define LIVE_CHART_IS_THRESHOLD_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_TYPE_THRESHOLD_LINE)) +#define LIVE_CHART_THRESHOLD_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLineClass)) + +typedef struct _LiveChartThresholdLine LiveChartThresholdLine; +typedef struct _LiveChartThresholdLineClass LiveChartThresholdLineClass; +typedef struct _LiveChartThresholdLinePrivate LiveChartThresholdLinePrivate; +typedef struct _LiveChartValuesPrivate LiveChartValuesPrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_CHART (live_chart_static_static_chart_get_type ()) +#define LIVE_CHART_STATIC_STATIC_CHART(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChart)) +#define LIVE_CHART_STATIC_STATIC_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChartClass)) +#define LIVE_CHART_STATIC_IS_STATIC_CHART(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_CHART)) +#define LIVE_CHART_STATIC_IS_STATIC_CHART_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_CHART)) +#define LIVE_CHART_STATIC_STATIC_CHART_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChartClass)) + +typedef struct _LiveChartStaticStaticChart LiveChartStaticStaticChart; +typedef struct _LiveChartStaticStaticChartClass LiveChartStaticStaticChartClass; +typedef struct _LiveChartStaticStaticChartPrivate LiveChartStaticStaticChartPrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_SERIES (live_chart_static_static_series_get_type ()) +#define LIVE_CHART_STATIC_STATIC_SERIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIES, LiveChartStaticStaticSeries)) +#define LIVE_CHART_STATIC_STATIC_SERIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIES, LiveChartStaticStaticSeriesClass)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIES)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIES)) +#define LIVE_CHART_STATIC_STATIC_SERIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIES, LiveChartStaticStaticSeriesClass)) + +typedef struct _LiveChartStaticStaticSeries LiveChartStaticStaticSeries; +typedef struct _LiveChartStaticStaticSeriesClass LiveChartStaticStaticSeriesClass; + +#define LIVE_CHART_STATIC_TYPE_STATIC_SERIE (live_chart_static_static_serie_get_type ()) +#define LIVE_CHART_STATIC_STATIC_SERIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerie)) +#define LIVE_CHART_STATIC_STATIC_SERIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerieClass)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIE)) +#define LIVE_CHART_STATIC_STATIC_SERIE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerieClass)) + +typedef struct _LiveChartStaticStaticSerie LiveChartStaticStaticSerie; +typedef struct _LiveChartStaticStaticSerieClass LiveChartStaticStaticSerieClass; + +#define LIVE_CHART_STATIC_TYPE_STATIC_GRID (live_chart_static_static_grid_get_type ()) +#define LIVE_CHART_STATIC_STATIC_GRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGrid)) +#define LIVE_CHART_STATIC_STATIC_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGridClass)) +#define LIVE_CHART_STATIC_IS_STATIC_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_GRID)) +#define LIVE_CHART_STATIC_IS_STATIC_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_GRID)) +#define LIVE_CHART_STATIC_STATIC_GRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGridClass)) + +typedef struct _LiveChartStaticStaticGrid LiveChartStaticStaticGrid; +typedef struct _LiveChartStaticStaticGridClass LiveChartStaticStaticGridClass; +typedef struct _LiveChartStaticStaticSeriesPrivate LiveChartStaticStaticSeriesPrivate; +typedef struct _LiveChartStaticStaticSeriePrivate LiveChartStaticStaticSeriePrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER (live_chart_static_static_serie_renderer_get_type ()) +#define LIVE_CHART_STATIC_STATIC_SERIE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRenderer)) +#define LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRendererClass)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER)) +#define LIVE_CHART_STATIC_IS_STATIC_SERIE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER)) +#define LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRendererClass)) + +typedef struct _LiveChartStaticStaticSerieRenderer LiveChartStaticStaticSerieRenderer; +typedef struct _LiveChartStaticStaticSerieRendererClass LiveChartStaticStaticSerieRendererClass; + +#define LIVE_CHART_STATIC_TYPE_STATIC_VALUES (live_chart_static_static_values_get_type ()) +#define LIVE_CHART_STATIC_STATIC_VALUES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValues)) +#define LIVE_CHART_STATIC_STATIC_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValuesClass)) +#define LIVE_CHART_STATIC_IS_STATIC_VALUES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_VALUES)) +#define LIVE_CHART_STATIC_IS_STATIC_VALUES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_VALUES)) +#define LIVE_CHART_STATIC_STATIC_VALUES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValuesClass)) + +typedef struct _LiveChartStaticStaticValues LiveChartStaticStaticValues; +typedef struct _LiveChartStaticStaticValuesClass LiveChartStaticStaticValuesClass; + +#define LIVE_CHART_STATIC_TYPE_NAMED_VALUE (live_chart_static_named_value_get_type ()) +typedef struct _LiveChartStaticNamedValue LiveChartStaticNamedValue; +typedef struct _LiveChartStaticStaticValuesPrivate LiveChartStaticStaticValuesPrivate; +typedef struct _LiveChartStaticStaticSerieRendererPrivate LiveChartStaticStaticSerieRendererPrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_LINE (live_chart_static_static_line_get_type ()) +#define LIVE_CHART_STATIC_STATIC_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_LINE, LiveChartStaticStaticLine)) +#define LIVE_CHART_STATIC_STATIC_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_LINE, LiveChartStaticStaticLineClass)) +#define LIVE_CHART_STATIC_IS_STATIC_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_LINE)) +#define LIVE_CHART_STATIC_IS_STATIC_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_LINE)) +#define LIVE_CHART_STATIC_STATIC_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_LINE, LiveChartStaticStaticLineClass)) + +typedef struct _LiveChartStaticStaticLine LiveChartStaticStaticLine; +typedef struct _LiveChartStaticStaticLineClass LiveChartStaticStaticLineClass; +typedef struct _LiveChartStaticStaticLinePrivate LiveChartStaticStaticLinePrivate; + +#define LIVE_CHART_STATIC_TYPE_STATIC_POINTS (live_chart_static_static_points_get_type ()) +#define LIVE_CHART_STATIC_STATIC_POINTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPoints)) +#define LIVE_CHART_STATIC_STATIC_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPointsClass)) +#define LIVE_CHART_STATIC_IS_STATIC_POINTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIVE_CHART_STATIC_TYPE_STATIC_POINTS)) +#define LIVE_CHART_STATIC_IS_STATIC_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIVE_CHART_STATIC_TYPE_STATIC_POINTS)) +#define LIVE_CHART_STATIC_STATIC_POINTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPointsClass)) + +typedef struct _LiveChartStaticStaticPoints LiveChartStaticStaticPoints; +typedef struct _LiveChartStaticStaticPointsClass LiveChartStaticStaticPointsClass; +typedef struct _LiveChartStaticStaticGridPrivate LiveChartStaticStaticGridPrivate; +typedef struct _LiveChartStaticStaticPointsPrivate LiveChartStaticStaticPointsPrivate; + +struct _LiveChartBoundingBox { + gdouble x; + gdouble y; + gdouble width; + gdouble height; +}; + +struct _LiveChartDrawableIface { + GTypeInterface parent_iface; + void (*draw) (LiveChartDrawable* self, cairo_t* ctx, LiveChartConfig* config); + void (*get_bounding_box) (LiveChartDrawable* self, LiveChartBoundingBox* result); + gboolean (*get_visible) (LiveChartDrawable* self); + void (*set_visible) (LiveChartDrawable* self, gboolean value); +}; + +struct _LiveChartArea { + GObject parent_instance; + LiveChartAreaPrivate * priv; +}; + +struct _LiveChartAreaClass { + GObjectClass parent_class; +}; + +struct _LiveChartXAxis { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartXAxisPrivate * priv; + LiveChartLabels* labels; + LiveChartPath* axis; + LiveChartPath* lines; +}; + +struct _LiveChartXAxisClass { + GTypeClass parent_class; + void (*finalize) (LiveChartXAxis *self); +}; + +struct _LiveChartTicks { + GeeList* values; +}; + +struct _LiveChartYAxis { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartYAxisPrivate * priv; + LiveChartLabels* labels; + LiveChartPath* axis; + LiveChartPath* lines; + gboolean smart_ratio G_GNUC_DEPRECATED ; + gdouble* fixed_max; + LiveChartTicks ticks; +}; + +struct _LiveChartYAxisClass { + GTypeClass parent_class; + void (*finalize) (LiveChartYAxis *self); +}; + +struct _LiveChartBackground { + GObject parent_instance; + LiveChartBackgroundPrivate * priv; +}; + +struct _LiveChartBackgroundClass { + GObjectClass parent_class; +}; + +struct _LiveChartSerieRenderer { + GObject parent_instance; + LiveChartSerieRendererPrivate * priv; + LiveChartBoundingBox bounding_box; + LiveChartValues* values; +}; + +struct _LiveChartSerieRendererClass { + GObjectClass parent_class; + void (*draw) (LiveChartSerieRenderer* self, cairo_t* ctx, LiveChartConfig* config); +}; + +struct _LiveChartBar { + LiveChartSerieRenderer parent_instance; + LiveChartBarPrivate * priv; +}; + +struct _LiveChartBarClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartCoord { + gdouble x; + gdouble y; +}; + +struct _LiveChartSegment { + LiveChartCoord from; + LiveChartCoord to; +}; + +struct _LiveChartBezierCurve { + LiveChartCoord c0; + LiveChartCoord c1; + LiveChartCoord c2; + LiveChartCoord c3; +}; + +struct _LiveChartBounds { + GObject parent_instance; + LiveChartBoundsPrivate * priv; +}; + +struct _LiveChartBoundsClass { + GObjectClass parent_class; +}; + +typedef enum { + LIVE_CHART_CHART_ERROR_EXPORT_ERROR, + LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND +} LiveChartChartError; +#define LIVE_CHART_CHART_ERROR live_chart_chart_error_quark () + +struct _LiveChartChart { + GtkDrawingArea parent_instance; + LiveChartChartPrivate * priv; + LiveChartConfig* config; + LiveChartSeries* series; +}; + +struct _LiveChartChartClass { + GtkDrawingAreaClass parent_class; +}; + +struct _LiveChartPadding { + LiveChartAutoPadding smart; + gint top; + gint right; + gint bottom; + gint left; +}; + +struct _LiveChartBoundary { + gint min; + gint max; +}; + +struct _LiveChartBoundaries { + LiveChartBoundary x; + LiveChartBoundary y; + gint width; + gint height; +}; + +struct _LiveChartConfig { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartConfigPrivate * priv; + LiveChartPadding padding; + LiveChartYAxis* y_axis; + LiveChartXAxis* x_axis; + GeeArrayList* categories; +}; + +struct _LiveChartConfigClass { + GTypeClass parent_class; + void (*finalize) (LiveChartConfig *self); +}; + +struct _LiveChartColorableIface { + GTypeInterface parent_iface; + void (*get_main_color) (LiveChartColorable* self, GdkRGBA * result); + void (*set_main_color) (LiveChartColorable* self, GdkRGBA * value); +}; + +struct _LiveChartFont { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartFontPrivate * priv; +}; + +struct _LiveChartFontClass { + GTypeClass parent_class; + void (*finalize) (LiveChartFont *self); +}; + +struct _LiveChartTimestampedValue { + gdouble timestamp; + gdouble value; +}; + +struct _LiveChartPoint { + gdouble x; + gdouble y; + gdouble height; + LiveChartTimestampedValue data; +}; + +struct _LiveChartGrid { + GObject parent_instance; + LiveChartGridPrivate * priv; + LiveChartBoundingBox bounding_box; +}; + +struct _LiveChartGridClass { + GObjectClass parent_class; +}; + +struct _LiveChartIntersections { + GObject parent_instance; + LiveChartIntersectionsPrivate * priv; +}; + +struct _LiveChartIntersectionsClass { + GObjectClass parent_class; +}; + +struct _LiveChartIntersection { + GObject parent_instance; + LiveChartIntersectionPrivate * priv; + gdouble* entered_at; + gdouble* exited_at; +}; + +struct _LiveChartIntersectionClass { + GObjectClass parent_class; +}; + +struct _LiveChartIntersectorIface { + GTypeInterface parent_iface; + void (*intersect) (LiveChartIntersector* self, LiveChartIntersections* intersections, LiveChartPoint* previous, LiveChartPoint* current, gconstpointer path); +}; + +struct _LiveChartBezierIntersector { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartBezierIntersectorPrivate * priv; +}; + +struct _LiveChartBezierIntersectorClass { + GTypeClass parent_class; + void (*finalize) (LiveChartBezierIntersector *self); +}; + +struct _LiveChartLabels { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartLabelsPrivate * priv; +}; + +struct _LiveChartLabelsClass { + GTypeClass parent_class; + void (*finalize) (LiveChartLabels *self); +}; + +struct _LiveChartLegend { + GObject parent_instance; + LiveChartLegendPrivate * priv; + LiveChartLabels* labels; + GeeArrayList* series; + LiveChartBoundingBox bounding_box; +}; + +struct _LiveChartLegendClass { + GObjectClass parent_class; + void (*draw) (LiveChartLegend* self, cairo_t* ctx, LiveChartConfig* config); +}; + +struct _LiveChartHorizontalLegend { + LiveChartLegend parent_instance; + LiveChartHorizontalLegendPrivate * priv; +}; + +struct _LiveChartHorizontalLegendClass { + LiveChartLegendClass parent_class; +}; + +struct _LiveChartNoopLegend { + LiveChartLegend parent_instance; + LiveChartNoopLegendPrivate * priv; +}; + +struct _LiveChartNoopLegendClass { + LiveChartLegendClass parent_class; +}; + +struct _LiveChartLine { + LiveChartSerieRenderer parent_instance; + LiveChartLinePrivate * priv; +}; + +struct _LiveChartLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartLineArea { + LiveChartLine parent_instance; + LiveChartLineAreaPrivate * priv; +}; + +struct _LiveChartLineAreaClass { + LiveChartLineClass parent_class; +}; + +struct _LiveChartMaxBoundLine { + LiveChartSerieRenderer parent_instance; + LiveChartMaxBoundLinePrivate * priv; +}; + +struct _LiveChartMaxBoundLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartMinBoundLine { + LiveChartSerieRenderer parent_instance; + LiveChartMinBoundLinePrivate * priv; +}; + +struct _LiveChartMinBoundLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartDash { + gdouble* dashes; + gint dashes_length1; + gdouble offset; +}; + +struct _LiveChartPath { + GObject parent_instance; + LiveChartPathPrivate * priv; + LiveChartDash* dash; +}; + +struct _LiveChartPathClass { + GObjectClass parent_class; +}; + +struct _LiveChartPoints { + GObject parent_instance; + LiveChartPointsPrivate * priv; +}; + +struct _LiveChartPointsClass { + GObjectClass parent_class; +}; + +struct _LiveChartRegionHandleResult { + LiveChartRegionHandleStatus status; + gdouble at_value; +}; + +struct _LiveChartRegion { + GTypeInstance parent_instance; + volatile int ref_count; + LiveChartRegionPrivate * priv; +}; + +struct _LiveChartRegionClass { + GTypeClass parent_class; + void (*finalize) (LiveChartRegion *self); +}; + +struct _LiveChartSerie { + GObject parent_instance; + LiveChartSeriePrivate * priv; +}; + +struct _LiveChartSerieClass { + GObjectClass parent_class; +}; + +struct _LiveChartSeries { + GObject parent_instance; + LiveChartSeriesPrivate * priv; +}; + +struct _LiveChartSeriesClass { + GObjectClass parent_class; +}; + +struct _LiveChartSmoothLine { + LiveChartSerieRenderer parent_instance; + LiveChartSmoothLinePrivate * priv; + LiveChartIntersections* intersections; +}; + +struct _LiveChartSmoothLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartSmoothLineArea { + LiveChartSmoothLine parent_instance; + LiveChartSmoothLineAreaPrivate * priv; +}; + +struct _LiveChartSmoothLineAreaClass { + LiveChartSmoothLineClass parent_class; +}; + +struct _LiveChartThresholdLine { + LiveChartSerieRenderer parent_instance; + LiveChartThresholdLinePrivate * priv; +}; + +struct _LiveChartThresholdLineClass { + LiveChartSerieRendererClass parent_class; +}; + +struct _LiveChartValues { + GeeLinkedList parent_instance; + LiveChartValuesPrivate * priv; +}; + +struct _LiveChartValuesClass { + GeeLinkedListClass parent_class; +}; + +struct _LiveChartStaticStaticChart { + GtkDrawingArea parent_instance; + LiveChartStaticStaticChartPrivate * priv; + LiveChartConfig* config; + LiveChartStaticStaticSeries* series; +}; + +struct _LiveChartStaticStaticChartClass { + GtkDrawingAreaClass parent_class; +}; + +struct _LiveChartStaticStaticSeries { + GObject parent_instance; + LiveChartStaticStaticSeriesPrivate * priv; +}; + +struct _LiveChartStaticStaticSeriesClass { + GObjectClass parent_class; +}; + +struct _LiveChartStaticStaticSerie { + GObject parent_instance; + LiveChartStaticStaticSeriePrivate * priv; +}; + +struct _LiveChartStaticStaticSerieClass { + GObjectClass parent_class; +}; + +struct _LiveChartStaticNamedValue { + gchar* name; + gdouble value; +}; + +struct _LiveChartStaticStaticValues { + GeeLinkedList parent_instance; + LiveChartStaticStaticValuesPrivate * priv; +}; + +struct _LiveChartStaticStaticValuesClass { + GeeLinkedListClass parent_class; +}; + +struct _LiveChartStaticStaticSerieRenderer { + GObject parent_instance; + LiveChartStaticStaticSerieRendererPrivate * priv; + LiveChartBoundingBox bounding_box; + LiveChartStaticStaticValues* values; +}; + +struct _LiveChartStaticStaticSerieRendererClass { + GObjectClass parent_class; + void (*draw) (LiveChartStaticStaticSerieRenderer* self, cairo_t* ctx, LiveChartConfig* config); +}; + +struct _LiveChartStaticStaticLine { + LiveChartStaticStaticSerieRenderer parent_instance; + LiveChartStaticStaticLinePrivate * priv; +}; + +struct _LiveChartStaticStaticLineClass { + LiveChartStaticStaticSerieRendererClass parent_class; +}; + +struct _LiveChartStaticStaticGrid { + GObject parent_instance; + LiveChartStaticStaticGridPrivate * priv; + LiveChartBoundingBox bounding_box; +}; + +struct _LiveChartStaticStaticGridClass { + GObjectClass parent_class; +}; + +struct _LiveChartStaticStaticPoints { + GObject parent_instance; + LiveChartStaticStaticPointsPrivate * priv; +}; + +struct _LiveChartStaticStaticPointsClass { + GObjectClass parent_class; +}; + +VALA_EXTERN gpointer live_chart_config_ref (gpointer instance); +VALA_EXTERN void live_chart_config_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_config (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_config (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_config (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_config (const GValue* value); +VALA_EXTERN GType live_chart_config_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartConfig, live_chart_config_unref) +VALA_EXTERN GType live_chart_bounding_box_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartBoundingBox* live_chart_bounding_box_dup (const LiveChartBoundingBox* self); +VALA_EXTERN void live_chart_bounding_box_free (LiveChartBoundingBox* self); +VALA_EXTERN GType live_chart_drawable_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartDrawable, g_object_unref) +VALA_EXTERN GType live_chart_area_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartArea, g_object_unref) +VALA_EXTERN GType live_chart_points_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartPoints, g_object_unref) +VALA_EXTERN LiveChartArea* live_chart_area_new (LiveChartPoints* points, + GdkRGBA* color, + gdouble alpha); +VALA_EXTERN LiveChartArea* live_chart_area_construct (GType object_type, + LiveChartPoints* points, + GdkRGBA* color, + gdouble alpha); +VALA_EXTERN gpointer live_chart_xaxis_ref (gpointer instance); +VALA_EXTERN void live_chart_xaxis_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_xaxis (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_xaxis (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_xaxis (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_xaxis (const GValue* value); +VALA_EXTERN GType live_chart_xaxis_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartXAxis, live_chart_xaxis_unref) +VALA_EXTERN gpointer live_chart_labels_ref (gpointer instance); +VALA_EXTERN void live_chart_labels_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_labels (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_labels (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_labels (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_labels (const GValue* value); +VALA_EXTERN GType live_chart_labels_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartLabels, live_chart_labels_unref) +VALA_EXTERN GType live_chart_path_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartPath, g_object_unref) +VALA_EXTERN LiveChartXAxis* live_chart_xaxis_new (void); +VALA_EXTERN LiveChartXAxis* live_chart_xaxis_construct (GType object_type); +VALA_EXTERN gdouble live_chart_xaxis_get_ratio (LiveChartXAxis* self); +VALA_EXTERN gfloat live_chart_xaxis_get_tick_interval (LiveChartXAxis* self); +VALA_EXTERN void live_chart_xaxis_set_tick_interval (LiveChartXAxis* self, + gfloat value); +VALA_EXTERN gfloat live_chart_xaxis_get_tick_length (LiveChartXAxis* self); +VALA_EXTERN void live_chart_xaxis_set_tick_length (LiveChartXAxis* self, + gfloat value); +VALA_EXTERN gboolean live_chart_xaxis_get_visible (LiveChartXAxis* self); +VALA_EXTERN void live_chart_xaxis_set_visible (LiveChartXAxis* self, + gboolean value); +VALA_EXTERN GType live_chart_ticks_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartTicks* live_chart_ticks_dup (const LiveChartTicks* self); +VALA_EXTERN void live_chart_ticks_free (LiveChartTicks* self); +VALA_EXTERN void live_chart_ticks_copy (const LiveChartTicks* self, + LiveChartTicks* dest); +VALA_EXTERN void live_chart_ticks_destroy (LiveChartTicks* self); +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (LiveChartTicks, live_chart_ticks_destroy) +VALA_EXTERN void live_chart_ticks_init (LiveChartTicks *self); +VALA_EXTERN gpointer live_chart_yaxis_ref (gpointer instance); +VALA_EXTERN void live_chart_yaxis_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_yaxis (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_yaxis (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_yaxis (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_yaxis (const GValue* value); +VALA_EXTERN GType live_chart_yaxis_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartYAxis, live_chart_yaxis_unref) +VALA_EXTERN LiveChartYAxis* live_chart_yaxis_new (const gchar* unit); +VALA_EXTERN LiveChartYAxis* live_chart_yaxis_construct (GType object_type, + const gchar* unit); +VALA_EXTERN gdouble live_chart_yaxis_get_ratio (LiveChartYAxis* self); +VALA_EXTERN GType live_chart_bounds_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartBounds, g_object_unref) +VALA_EXTERN LiveChartBounds* live_chart_yaxis_get_bounds (LiveChartYAxis* self); +VALA_EXTERN gboolean live_chart_yaxis_update_bounds (LiveChartYAxis* self, + gdouble value); +VALA_EXTERN void live_chart_yaxis_update (LiveChartYAxis* self, + gint area_height); +VALA_EXTERN gchar* live_chart_yaxis_get_max_displayed_value (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_get_ticks (LiveChartYAxis* self, + LiveChartTicks* result); +VALA_EXTERN gfloat live_chart_yaxis_get_ratio_threshold (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_set_ratio_threshold (LiveChartYAxis* self, + gfloat value); +VALA_EXTERN gfloat live_chart_yaxis_get_tick_interval (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_set_tick_interval (LiveChartYAxis* self, + gfloat value); +VALA_EXTERN gboolean live_chart_yaxis_get_visible (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_set_visible (LiveChartYAxis* self, + gboolean value); +VALA_EXTERN gfloat live_chart_yaxis_get_tick_length (LiveChartYAxis* self) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_yaxis_set_tick_length (LiveChartYAxis* self, + gfloat value) G_GNUC_DEPRECATED ; +VALA_EXTERN const gchar* live_chart_yaxis_get_unit (LiveChartYAxis* self); +VALA_EXTERN void live_chart_yaxis_set_unit (LiveChartYAxis* self, + const gchar* value); +VALA_EXTERN GType live_chart_background_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartBackground, g_object_unref) +VALA_EXTERN LiveChartBackground* live_chart_background_new (void); +VALA_EXTERN LiveChartBackground* live_chart_background_construct (GType object_type); +VALA_EXTERN void live_chart_background_get_color (LiveChartBackground* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_background_set_color (LiveChartBackground* self, + GdkRGBA * value); +VALA_EXTERN void live_chart_background_get_main_color (LiveChartBackground* self, + GdkRGBA * result) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_background_set_main_color (LiveChartBackground* self, + GdkRGBA * value) G_GNUC_DEPRECATED ; +VALA_EXTERN GType live_chart_serie_renderer_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSerieRenderer, g_object_unref) +VALA_EXTERN GType live_chart_values_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartValues, g_object_unref) +VALA_EXTERN GType live_chart_bar_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartBar, g_object_unref) +VALA_EXTERN LiveChartBar* live_chart_bar_new (LiveChartValues* values); +VALA_EXTERN LiveChartBar* live_chart_bar_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN GType live_chart_segment_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_coord_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartCoord* live_chart_coord_dup (const LiveChartCoord* self); +VALA_EXTERN void live_chart_coord_free (LiveChartCoord* self); +VALA_EXTERN LiveChartSegment* live_chart_segment_dup (const LiveChartSegment* self); +VALA_EXTERN void live_chart_segment_free (LiveChartSegment* self); +VALA_EXTERN GType live_chart_bezier_curve_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartBezierCurve* live_chart_bezier_curve_dup (const LiveChartBezierCurve* self); +VALA_EXTERN void live_chart_bezier_curve_free (LiveChartBezierCurve* self); +VALA_EXTERN GeeList* live_chart_find_intersections_between (LiveChartSegment* segment, + LiveChartBezierCurve* bezier); +VALA_EXTERN LiveChartBounds* live_chart_bounds_new (gdouble lower, + gdouble upper); +VALA_EXTERN LiveChartBounds* live_chart_bounds_construct (GType object_type, + gdouble lower, + gdouble upper); +VALA_EXTERN gboolean live_chart_bounds_has_lower (LiveChartBounds* self); +VALA_EXTERN gboolean live_chart_bounds_has_upper (LiveChartBounds* self); +VALA_EXTERN gboolean live_chart_bounds_update (LiveChartBounds* self, + gdouble value); +VALA_EXTERN gdouble live_chart_bounds_get_lower (LiveChartBounds* self); +VALA_EXTERN gdouble live_chart_bounds_get_upper (LiveChartBounds* self); +VALA_EXTERN GQuark live_chart_chart_error_quark (void); +GType live_chart_chart_error_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_chart_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartChart, g_object_unref) +VALA_EXTERN GType live_chart_series_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSeries, g_object_unref) +VALA_EXTERN LiveChartChart* live_chart_chart_new (LiveChartConfig* config); +VALA_EXTERN LiveChartChart* live_chart_chart_construct (GType object_type, + LiveChartConfig* config); +VALA_EXTERN GType live_chart_serie_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSerie, g_object_unref) +VALA_EXTERN void live_chart_chart_add_serie (LiveChartChart* self, + LiveChartSerie* serie); +VALA_EXTERN void live_chart_chart_add_value (LiveChartChart* self, + LiveChartSerie* serie, + gdouble value) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_chart_add_value_by_index (LiveChartChart* self, + gint serie_index, + gdouble value, + GError** error) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_chart_add_unaware_timestamp_collection (LiveChartChart* self, + LiveChartSerie* serie, + GeeCollection* collection, + gint timespan_between_value); +VALA_EXTERN void live_chart_chart_add_unaware_timestamp_collection_by_index (LiveChartChart* self, + gint serie_index, + GeeCollection* collection, + gint timespan_between_value, + GError** error); +VALA_EXTERN void live_chart_chart_to_png (LiveChartChart* self, + const gchar* filename, + GError** error); +VALA_EXTERN void live_chart_chart_refresh_every (LiveChartChart* self, + gint ms); +VALA_EXTERN GType live_chart_grid_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartGrid, g_object_unref) +VALA_EXTERN LiveChartGrid* live_chart_chart_get_grid (LiveChartChart* self); +VALA_EXTERN void live_chart_chart_set_grid (LiveChartChart* self, + LiveChartGrid* value); +VALA_EXTERN LiveChartBackground* live_chart_chart_get_background (LiveChartChart* self); +VALA_EXTERN void live_chart_chart_set_background (LiveChartChart* self, + LiveChartBackground* value); +VALA_EXTERN GType live_chart_legend_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartLegend, g_object_unref) +VALA_EXTERN LiveChartLegend* live_chart_chart_get_legend (LiveChartChart* self); +VALA_EXTERN void live_chart_chart_set_legend (LiveChartChart* self, + LiveChartLegend* value); +VALA_EXTERN GType live_chart_auto_padding_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_padding_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartPadding* live_chart_padding_dup (const LiveChartPadding* self); +VALA_EXTERN void live_chart_padding_free (LiveChartPadding* self); +VALA_EXTERN void live_chart_padding_init (LiveChartPadding *self); +VALA_EXTERN GType live_chart_boundary_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartBoundary* live_chart_boundary_dup (const LiveChartBoundary* self); +VALA_EXTERN void live_chart_boundary_free (LiveChartBoundary* self); +VALA_EXTERN GType live_chart_boundaries_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartBoundaries* live_chart_boundaries_dup (const LiveChartBoundaries* self); +VALA_EXTERN void live_chart_boundaries_free (LiveChartBoundaries* self); +VALA_EXTERN void live_chart_config_boundaries (LiveChartConfig* self, + LiveChartBoundaries* result); +VALA_EXTERN void live_chart_config_configure (LiveChartConfig* self, + cairo_t* ctx, + LiveChartLegend* legend); +VALA_EXTERN LiveChartConfig* live_chart_config_new (void); +VALA_EXTERN LiveChartConfig* live_chart_config_construct (GType object_type); +VALA_EXTERN gint live_chart_config_get_width (LiveChartConfig* self); +VALA_EXTERN void live_chart_config_set_width (LiveChartConfig* self, + gint value); +VALA_EXTERN gint live_chart_config_get_height (LiveChartConfig* self); +VALA_EXTERN void live_chart_config_set_height (LiveChartConfig* self, + gint value); +VALA_EXTERN void live_chart_drawable_draw (LiveChartDrawable* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_drawable_get_bounding_box (LiveChartDrawable* self, + LiveChartBoundingBox* result); +VALA_EXTERN gboolean live_chart_drawable_get_visible (LiveChartDrawable* self); +VALA_EXTERN void live_chart_drawable_set_visible (LiveChartDrawable* self, + gboolean value); +VALA_EXTERN GType live_chart_colorable_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartColorable, g_object_unref) +VALA_EXTERN void live_chart_colorable_get_main_color (LiveChartColorable* self, + GdkRGBA * result) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_colorable_set_main_color (LiveChartColorable* self, + GdkRGBA * value) G_GNUC_DEPRECATED ; +VALA_EXTERN gpointer live_chart_font_ref (gpointer instance); +VALA_EXTERN void live_chart_font_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_font (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_font (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_font (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_font (const GValue* value); +VALA_EXTERN GType live_chart_font_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartFont, live_chart_font_unref) +VALA_EXTERN LiveChartFont* live_chart_font_new (void); +VALA_EXTERN LiveChartFont* live_chart_font_construct (GType object_type); +VALA_EXTERN void live_chart_font_configure (LiveChartFont* self, + cairo_t* ctx); +VALA_EXTERN guint8 live_chart_font_get_size (LiveChartFont* self); +VALA_EXTERN void live_chart_font_set_size (LiveChartFont* self, + guint8 value); +VALA_EXTERN const gchar* live_chart_font_get_face (LiveChartFont* self); +VALA_EXTERN void live_chart_font_set_face (LiveChartFont* self, + const gchar* value); +VALA_EXTERN cairo_font_slant_t live_chart_font_get_slant (LiveChartFont* self); +VALA_EXTERN void live_chart_font_set_slant (LiveChartFont* self, + cairo_font_slant_t value); +VALA_EXTERN cairo_font_weight_t live_chart_font_get_weight (LiveChartFont* self); +VALA_EXTERN void live_chart_font_set_weight (LiveChartFont* self, + cairo_font_weight_t value); +VALA_EXTERN void live_chart_font_get_color (LiveChartFont* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_font_set_color (LiveChartFont* self, + GdkRGBA * value); +VALA_EXTERN GType live_chart_point_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_timestamped_value_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartTimestampedValue* live_chart_timestamped_value_dup (const LiveChartTimestampedValue* self); +VALA_EXTERN void live_chart_timestamped_value_free (LiveChartTimestampedValue* self); +VALA_EXTERN LiveChartPoint* live_chart_point_dup (const LiveChartPoint* self); +VALA_EXTERN void live_chart_point_free (LiveChartPoint* self); +VALA_EXTERN void live_chart_build_bezier_curve_from_points (LiveChartPoint* previous, + LiveChartPoint* target, + LiveChartBezierCurve* result); +VALA_EXTERN void live_chart_grid_restore (LiveChartGrid* self, + cairo_t* ctx); +VALA_EXTERN void live_chart_grid_render_abscissa (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_render_ordinate (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_render_grid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_render_vgrid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_render_hgrid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_update_bounding_box (LiveChartGrid* self, + LiveChartConfig* config); +VALA_EXTERN void live_chart_grid_debug (LiveChartGrid* self, + cairo_t* ctx); +VALA_EXTERN LiveChartGrid* live_chart_grid_new (void); +VALA_EXTERN LiveChartGrid* live_chart_grid_construct (GType object_type); +VALA_EXTERN void live_chart_grid_get_main_color (LiveChartGrid* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_grid_set_main_color (LiveChartGrid* self, + GdkRGBA * value); +VALA_EXTERN GType live_chart_intersections_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartIntersections, g_object_unref) +VALA_EXTERN void live_chart_intersections_close (LiveChartIntersections* self, + gdouble x, + gdouble exited_at); +VALA_EXTERN void live_chart_intersections_update (LiveChartIntersections* self, + gdouble x); +VALA_EXTERN gpointer live_chart_region_ref (gpointer instance); +VALA_EXTERN void live_chart_region_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_region (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_region (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_region (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_region (const GValue* value); +VALA_EXTERN GType live_chart_region_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartRegion, live_chart_region_unref) +VALA_EXTERN void live_chart_intersections_open (LiveChartIntersections* self, + LiveChartRegion* region, + gdouble x, + gdouble entered_at); +VALA_EXTERN void live_chart_intersections_open_without_entrypoint (LiveChartIntersections* self, + LiveChartRegion* region, + gdouble x); +VALA_EXTERN GType live_chart_intersection_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartIntersection, g_object_unref) +VALA_EXTERN void live_chart_intersections_foreach (LiveChartIntersections* self, + GeeForallFunc f, + gpointer f_target); +VALA_EXTERN gboolean live_chart_intersections_has_an_opened_intersection (LiveChartIntersections* self); +VALA_EXTERN LiveChartRegion* live_chart_intersections_get_current_region (LiveChartIntersections* self); +VALA_EXTERN gint live_chart_intersections_size (LiveChartIntersections* self); +VALA_EXTERN LiveChartIntersection* live_chart_intersections_get (LiveChartIntersections* self, + gint index); +VALA_EXTERN LiveChartIntersections* live_chart_intersections_new (void); +VALA_EXTERN LiveChartIntersections* live_chart_intersections_construct (GType object_type); +VALA_EXTERN LiveChartIntersection* live_chart_intersection_new (LiveChartRegion* region, + gdouble start_x, + gdouble entered_at); +VALA_EXTERN LiveChartIntersection* live_chart_intersection_construct (GType object_type, + LiveChartRegion* region, + gdouble start_x, + gdouble entered_at); +VALA_EXTERN LiveChartIntersection* live_chart_intersection_new_without_entry_point (LiveChartRegion* region, + gdouble start_x); +VALA_EXTERN LiveChartIntersection* live_chart_intersection_construct_without_entry_point (GType object_type, + LiveChartRegion* region, + gdouble start_x); +VALA_EXTERN void live_chart_intersection_update (LiveChartIntersection* self, + gdouble x); +VALA_EXTERN void live_chart_intersection_close (LiveChartIntersection* self, + gdouble x, + gdouble exited_at); +VALA_EXTERN gboolean live_chart_intersection_is_open (LiveChartIntersection* self); +VALA_EXTERN gboolean live_chart_intersection_is_closed (LiveChartIntersection* self); +VALA_EXTERN LiveChartRegion* live_chart_intersection_get_region (LiveChartIntersection* self); +VALA_EXTERN void live_chart_intersection_set_region (LiveChartIntersection* self, + LiveChartRegion* value); +VALA_EXTERN gdouble live_chart_intersection_get_start_x (LiveChartIntersection* self); +VALA_EXTERN gdouble live_chart_intersection_get_end_x (LiveChartIntersection* self); +VALA_EXTERN GType live_chart_intersector_get_type (void) G_GNUC_CONST ; +VALA_EXTERN void live_chart_intersector_intersect (LiveChartIntersector* self, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + gconstpointer path); +VALA_EXTERN gpointer live_chart_bezier_intersector_ref (gpointer instance); +VALA_EXTERN void live_chart_bezier_intersector_unref (gpointer instance); +VALA_EXTERN GParamSpec* live_chart_param_spec_bezier_intersector (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags); +VALA_EXTERN void live_chart_value_set_bezier_intersector (GValue* value, + gpointer v_object); +VALA_EXTERN void live_chart_value_take_bezier_intersector (GValue* value, + gpointer v_object); +VALA_EXTERN gpointer live_chart_value_get_bezier_intersector (const GValue* value); +VALA_EXTERN GType live_chart_bezier_intersector_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartBezierIntersector, live_chart_bezier_intersector_unref) +VALA_EXTERN LiveChartBezierIntersector* live_chart_bezier_intersector_new (LiveChartRegion* region, + LiveChartConfig* config); +VALA_EXTERN LiveChartBezierIntersector* live_chart_bezier_intersector_construct (GType object_type, + LiveChartRegion* region, + LiveChartConfig* config); +VALA_EXTERN LiveChartLabels* live_chart_labels_new (void); +VALA_EXTERN LiveChartLabels* live_chart_labels_construct (GType object_type); +VALA_EXTERN gboolean live_chart_labels_get_visible (LiveChartLabels* self); +VALA_EXTERN void live_chart_labels_set_visible (LiveChartLabels* self, + gboolean value); +VALA_EXTERN void live_chart_labels_get_extents (LiveChartLabels* self, + cairo_text_extents_t * result); +VALA_EXTERN void live_chart_labels_set_extents (LiveChartLabels* self, + cairo_text_extents_t * value); +VALA_EXTERN LiveChartFont* live_chart_labels_get_font (LiveChartLabels* self); +VALA_EXTERN void live_chart_labels_set_font (LiveChartLabels* self, + LiveChartFont* value); +VALA_EXTERN void live_chart_legend_add_legend (LiveChartLegend* self, + LiveChartSerie* serie); +VALA_EXTERN void live_chart_legend_draw (LiveChartLegend* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN LiveChartLegend* live_chart_legend_construct (GType object_type); +VALA_EXTERN void live_chart_legend_get_main_color (LiveChartLegend* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_legend_set_main_color (LiveChartLegend* self, + GdkRGBA * value); +VALA_EXTERN GType live_chart_horizontal_legend_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartHorizontalLegend, g_object_unref) +VALA_EXTERN void live_chart_horizontal_legend_debug (LiveChartHorizontalLegend* self, + cairo_t* ctx); +VALA_EXTERN LiveChartHorizontalLegend* live_chart_horizontal_legend_new (void); +VALA_EXTERN LiveChartHorizontalLegend* live_chart_horizontal_legend_construct (GType object_type); +VALA_EXTERN GType live_chart_noop_legend_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartNoopLegend, g_object_unref) +VALA_EXTERN LiveChartNoopLegend* live_chart_noop_legend_new (void); +VALA_EXTERN LiveChartNoopLegend* live_chart_noop_legend_construct (GType object_type); +VALA_EXTERN GType live_chart_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartLine, g_object_unref) +VALA_EXTERN GType live_chart_line_area_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartLineArea, g_object_unref) +VALA_EXTERN LiveChartLineArea* live_chart_line_area_new (LiveChartValues* values); +VALA_EXTERN LiveChartLineArea* live_chart_line_area_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN gdouble live_chart_line_area_get_area_alpha (LiveChartLineArea* self); +VALA_EXTERN void live_chart_line_area_set_area_alpha (LiveChartLineArea* self, + gdouble value); +VALA_EXTERN LiveChartLine* live_chart_line_new (LiveChartValues* values); +VALA_EXTERN LiveChartLine* live_chart_line_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN LiveChartPoints* live_chart_line_draw_line (LiveChartLine* self, + LiveChartPoints* points, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN GType live_chart_max_bound_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartMaxBoundLine, g_object_unref) +VALA_EXTERN LiveChartMaxBoundLine* live_chart_max_bound_line_new (void); +VALA_EXTERN LiveChartMaxBoundLine* live_chart_max_bound_line_construct (GType object_type); +VALA_EXTERN LiveChartMaxBoundLine* live_chart_max_bound_line_new_from_serie (LiveChartSerie* serie); +VALA_EXTERN LiveChartMaxBoundLine* live_chart_max_bound_line_construct_from_serie (GType object_type, + LiveChartSerie* serie); +VALA_EXTERN GType live_chart_min_bound_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartMinBoundLine, g_object_unref) +VALA_EXTERN LiveChartMinBoundLine* live_chart_min_bound_line_new (LiveChartValues* values); +VALA_EXTERN LiveChartMinBoundLine* live_chart_min_bound_line_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN LiveChartMinBoundLine* live_chart_min_bound_line_new_from_serie (LiveChartSerie* serie); +VALA_EXTERN LiveChartMinBoundLine* live_chart_min_bound_line_construct_from_serie (GType object_type, + LiveChartSerie* serie); +VALA_EXTERN GType live_chart_dash_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartDash* live_chart_dash_dup (const LiveChartDash* self); +VALA_EXTERN void live_chart_dash_free (LiveChartDash* self); +VALA_EXTERN void live_chart_dash_copy (const LiveChartDash* self, + LiveChartDash* dest); +VALA_EXTERN void live_chart_dash_destroy (LiveChartDash* self); +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (LiveChartDash, live_chart_dash_destroy) +VALA_EXTERN void live_chart_dash_init (LiveChartDash *self); +VALA_EXTERN LiveChartPath* live_chart_path_new (gdouble width, + GdkRGBA* color, + gboolean visible, + LiveChartDash* dash); +VALA_EXTERN LiveChartPath* live_chart_path_construct (GType object_type, + gdouble width, + GdkRGBA* color, + gboolean visible, + LiveChartDash* dash); +VALA_EXTERN void live_chart_path_configure (LiveChartPath* self, + cairo_t* ctx); +VALA_EXTERN gdouble live_chart_path_get_width (LiveChartPath* self); +VALA_EXTERN void live_chart_path_set_width (LiveChartPath* self, + gdouble value); +VALA_EXTERN void live_chart_path_get_color (LiveChartPath* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_path_set_color (LiveChartPath* self, + GdkRGBA * value); +VALA_EXTERN gboolean live_chart_path_get_visible (LiveChartPath* self); +VALA_EXTERN void live_chart_path_set_visible (LiveChartPath* self, + gboolean value); +VALA_EXTERN LiveChartPoints* live_chart_points_new (void); +VALA_EXTERN LiveChartPoints* live_chart_points_construct (GType object_type); +VALA_EXTERN void live_chart_points_add (LiveChartPoints* self, + LiveChartPoint* point); +VALA_EXTERN void live_chart_points_get (LiveChartPoints* self, + gint at, + LiveChartPoint* result); +VALA_EXTERN void live_chart_points_after (LiveChartPoints* self, + gint at, + LiveChartPoint* result); +VALA_EXTERN void live_chart_points_first (LiveChartPoints* self, + LiveChartPoint* result); +VALA_EXTERN void live_chart_points_last (LiveChartPoints* self, + LiveChartPoint* result); +VALA_EXTERN LiveChartPoints* live_chart_points_create (LiveChartValues* values, + LiveChartConfig* config); +VALA_EXTERN LiveChartBounds* live_chart_points_get_bounds (LiveChartPoints* self); +VALA_EXTERN void live_chart_points_set_bounds (LiveChartPoints* self, + LiveChartBounds* value); +VALA_EXTERN gint live_chart_points_get_size (LiveChartPoints* self); +VALA_EXTERN gdouble live_chart_points_get_realtime_delta (LiveChartPoints* self); +VALA_EXTERN void live_chart_points_set_realtime_delta (LiveChartPoints* self, + gdouble value); +VALA_EXTERN GType live_chart_region_handle_status_get_type (void) G_GNUC_CONST ; +VALA_EXTERN GType live_chart_region_handle_result_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartRegionHandleResult* live_chart_region_handle_result_dup (const LiveChartRegionHandleResult* self); +VALA_EXTERN void live_chart_region_handle_result_free (LiveChartRegionHandleResult* self); +VALA_EXTERN LiveChartRegion* live_chart_region_new (gdouble floor, + gdouble ceil); +VALA_EXTERN LiveChartRegion* live_chart_region_construct (GType object_type, + gdouble floor, + gdouble ceil); +VALA_EXTERN LiveChartRegion* live_chart_region_new_between (gdouble above, + gdouble below); +VALA_EXTERN LiveChartRegion* live_chart_region_construct_between (GType object_type, + gdouble above, + gdouble below); +VALA_EXTERN LiveChartRegion* live_chart_region_with_line_color (LiveChartRegion* self, + GdkRGBA* color); +VALA_EXTERN LiveChartRegion* live_chart_region_with_area_color (LiveChartRegion* self, + GdkRGBA* color); +VALA_EXTERN gboolean live_chart_region_has_at_least_one_point_within (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +VALA_EXTERN void live_chart_region_handle (LiveChartRegion* self, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + LiveChartGetIntersection get_intersection, + gpointer get_intersection_target); +VALA_EXTERN void live_chart_region_get_line_color (LiveChartRegion* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_region_set_line_color (LiveChartRegion* self, + GdkRGBA * value); +VALA_EXTERN void live_chart_region_get_area_color (LiveChartRegion* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_region_set_area_color (LiveChartRegion* self, + GdkRGBA * value); +VALA_EXTERN LiveChartSerie* live_chart_serie_new (const gchar* name, + LiveChartSerieRenderer* renderer); +VALA_EXTERN LiveChartSerie* live_chart_serie_construct (GType object_type, + const gchar* name, + LiveChartSerieRenderer* renderer); +VALA_EXTERN void live_chart_serie_add (LiveChartSerie* self, + gdouble value); +VALA_EXTERN void live_chart_serie_add_with_timestamp (LiveChartSerie* self, + gdouble value, + gint64 timestamp); +VALA_EXTERN void live_chart_serie_set_main_color (LiveChartSerie* self, + GdkRGBA* color) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_serie_get_main_color (LiveChartSerie* self, + GdkRGBA* result) G_GNUC_DEPRECATED ; +VALA_EXTERN LiveChartValues* live_chart_serie_get_values (LiveChartSerie* self); +VALA_EXTERN void live_chart_serie_clear (LiveChartSerie* self); +VALA_EXTERN const gchar* live_chart_serie_get_name (LiveChartSerie* self); +VALA_EXTERN void live_chart_serie_set_name (LiveChartSerie* self, + const gchar* value); +VALA_EXTERN LiveChartPath* live_chart_serie_get_line (LiveChartSerie* self); +VALA_EXTERN void live_chart_serie_set_line (LiveChartSerie* self, + LiveChartPath* value); +VALA_EXTERN LiveChartSerieRenderer* live_chart_serie_renderer_construct (GType object_type); +VALA_EXTERN LiveChartValues* live_chart_serie_renderer_get_values (LiveChartSerieRenderer* self); +VALA_EXTERN void live_chart_serie_renderer_draw (LiveChartSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_serie_renderer_debug (LiveChartSerieRenderer* self, + cairo_t* ctx); +VALA_EXTERN gboolean live_chart_serie_renderer_is_out_of_area (LiveChartSerieRenderer* self, + LiveChartPoint* point); +VALA_EXTERN void live_chart_serie_renderer_get_main_color (LiveChartSerieRenderer* self, + GdkRGBA * result) G_GNUC_DEPRECATED ; +VALA_EXTERN void live_chart_serie_renderer_set_main_color (LiveChartSerieRenderer* self, + GdkRGBA * value) G_GNUC_DEPRECATED ; +VALA_EXTERN LiveChartPath* live_chart_serie_renderer_get_line (LiveChartSerieRenderer* self); +VALA_EXTERN void live_chart_serie_renderer_set_line (LiveChartSerieRenderer* self, + LiveChartPath* value); +VALA_EXTERN LiveChartSeries* live_chart_series_new (LiveChartChart* chart); +VALA_EXTERN LiveChartSeries* live_chart_series_construct (GType object_type, + LiveChartChart* chart); +VALA_EXTERN LiveChartSerie* live_chart_series_register (LiveChartSeries* self, + LiveChartSerie* serie); +VALA_EXTERN LiveChartSerie* live_chart_series_get (LiveChartSeries* self, + gint index, + GError** error); +VALA_EXTERN LiveChartSerie* live_chart_series_get_by_name (LiveChartSeries* self, + const gchar* name, + GError** error); +VALA_EXTERN GeeIterator* live_chart_series_iterator (LiveChartSeries* self); +VALA_EXTERN GType live_chart_smooth_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSmoothLine, g_object_unref) +VALA_EXTERN GType live_chart_smooth_line_area_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartSmoothLineArea, g_object_unref) +VALA_EXTERN LiveChartSmoothLineArea* live_chart_smooth_line_area_new (LiveChartValues* values); +VALA_EXTERN LiveChartSmoothLineArea* live_chart_smooth_line_area_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN void live_chart_smooth_line_area_draw_regions_on_area (LiveChartSmoothLineArea* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN gdouble live_chart_smooth_line_area_get_area_alpha (LiveChartSmoothLineArea* self); +VALA_EXTERN void live_chart_smooth_line_area_set_area_alpha (LiveChartSmoothLineArea* self, + gdouble value); +VALA_EXTERN LiveChartSmoothLine* live_chart_smooth_line_new (LiveChartValues* values); +VALA_EXTERN LiveChartSmoothLine* live_chart_smooth_line_construct (GType object_type, + LiveChartValues* values); +VALA_EXTERN cairo_path_t* live_chart_smooth_line_draw_smooth_line (LiveChartSmoothLine* self, + LiveChartPoints* points, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_smooth_line_draw_regions_on_line (LiveChartSmoothLine* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN LiveChartRegion* live_chart_smooth_line_get_region (LiveChartSmoothLine* self); +VALA_EXTERN void live_chart_smooth_line_set_region (LiveChartSmoothLine* self, + LiveChartRegion* value); +VALA_EXTERN GType live_chart_threshold_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartThresholdLine, g_object_unref) +VALA_EXTERN LiveChartThresholdLine* live_chart_threshold_line_new (gdouble value); +VALA_EXTERN LiveChartThresholdLine* live_chart_threshold_line_construct (GType object_type, + gdouble value); +VALA_EXTERN gdouble live_chart_threshold_line_get_value (LiveChartThresholdLine* self); +VALA_EXTERN void live_chart_threshold_line_set_value (LiveChartThresholdLine* self, + gdouble value); +VALA_EXTERN gfloat live_chart_cap (gfloat value); +VALA_EXTERN gboolean live_chart_has_fractional_part (gfloat value); +VALA_EXTERN gchar* live_chart_format_for_y_axis (const gchar* unit, + gfloat value); +VALA_EXTERN GeeList* live_chart_golden_divisors (gfloat value); +VALA_EXTERN LiveChartValues* live_chart_values_new (gint buffer_size); +VALA_EXTERN LiveChartValues* live_chart_values_construct (GType object_type, + gint buffer_size); +VALA_EXTERN void live_chart_values_add (LiveChartValues* self, + LiveChartTimestampedValue* value); +VALA_EXTERN LiveChartBounds* live_chart_values_get_bounds (LiveChartValues* self); +VALA_EXTERN void live_chart_values_set_bounds (LiveChartValues* self, + LiveChartBounds* value); +VALA_EXTERN GType live_chart_static_static_chart_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticChart, g_object_unref) +VALA_EXTERN GType live_chart_static_static_series_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticSeries, g_object_unref) +VALA_EXTERN LiveChartStaticStaticChart* live_chart_static_static_chart_new (LiveChartConfig* config); +VALA_EXTERN LiveChartStaticStaticChart* live_chart_static_static_chart_construct (GType object_type, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_chart_set_categories (LiveChartStaticStaticChart* self, + GeeArrayList* categories); +VALA_EXTERN GType live_chart_static_static_serie_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticSerie, g_object_unref) +VALA_EXTERN void live_chart_static_static_chart_add_serie (LiveChartStaticStaticChart* self, + LiveChartStaticStaticSerie* serie); +VALA_EXTERN GType live_chart_static_static_grid_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticGrid, g_object_unref) +VALA_EXTERN LiveChartStaticStaticGrid* live_chart_static_static_chart_get_grid (LiveChartStaticStaticChart* self); +VALA_EXTERN void live_chart_static_static_chart_set_grid (LiveChartStaticStaticChart* self, + LiveChartStaticStaticGrid* value); +VALA_EXTERN LiveChartBackground* live_chart_static_static_chart_get_background (LiveChartStaticStaticChart* self); +VALA_EXTERN void live_chart_static_static_chart_set_background (LiveChartStaticStaticChart* self, + LiveChartBackground* value); +VALA_EXTERN LiveChartLegend* live_chart_static_static_chart_get_legend (LiveChartStaticStaticChart* self); +VALA_EXTERN void live_chart_static_static_chart_set_legend (LiveChartStaticStaticChart* self, + LiveChartLegend* value); +VALA_EXTERN LiveChartStaticStaticSeries* live_chart_static_static_series_new (LiveChartStaticStaticChart* chart); +VALA_EXTERN LiveChartStaticStaticSeries* live_chart_static_static_series_construct (GType object_type, + LiveChartStaticStaticChart* chart); +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_series_register (LiveChartStaticStaticSeries* self, + LiveChartStaticStaticSerie* serie); +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_series_get (LiveChartStaticStaticSeries* self, + gint index, + GError** error); +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_series_get_by_name (LiveChartStaticStaticSeries* self, + const gchar* name, + GError** error); +VALA_EXTERN GeeIterator* live_chart_static_static_series_iterator (LiveChartStaticStaticSeries* self); +VALA_EXTERN GType live_chart_static_static_serie_renderer_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticSerieRenderer, g_object_unref) +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_serie_new (const gchar* name, + LiveChartStaticStaticSerieRenderer* renderer); +VALA_EXTERN LiveChartStaticStaticSerie* live_chart_static_static_serie_construct (GType object_type, + const gchar* name, + LiveChartStaticStaticSerieRenderer* renderer); +VALA_EXTERN void live_chart_static_static_serie_add (LiveChartStaticStaticSerie* self, + const gchar* name, + gdouble value); +VALA_EXTERN GType live_chart_static_static_values_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticValues, g_object_unref) +VALA_EXTERN LiveChartStaticStaticValues* live_chart_static_static_serie_get_values (LiveChartStaticStaticSerie* self); +VALA_EXTERN void live_chart_static_static_serie_clear (LiveChartStaticStaticSerie* self); +VALA_EXTERN const gchar* live_chart_static_static_serie_get_name (LiveChartStaticStaticSerie* self); +VALA_EXTERN void live_chart_static_static_serie_set_name (LiveChartStaticStaticSerie* self, + const gchar* value); +VALA_EXTERN LiveChartPath* live_chart_static_static_serie_get_line (LiveChartStaticStaticSerie* self); +VALA_EXTERN void live_chart_static_static_serie_set_line (LiveChartStaticStaticSerie* self, + LiveChartPath* value); +VALA_EXTERN GType live_chart_static_named_value_get_type (void) G_GNUC_CONST ; +VALA_EXTERN LiveChartStaticNamedValue* live_chart_static_named_value_dup (const LiveChartStaticNamedValue* self); +VALA_EXTERN void live_chart_static_named_value_free (LiveChartStaticNamedValue* self); +VALA_EXTERN void live_chart_static_named_value_copy (const LiveChartStaticNamedValue* self, + LiveChartStaticNamedValue* dest); +VALA_EXTERN void live_chart_static_named_value_destroy (LiveChartStaticNamedValue* self); +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (LiveChartStaticNamedValue, live_chart_static_named_value_destroy) +VALA_EXTERN LiveChartStaticStaticValues* live_chart_static_static_values_new (void); +VALA_EXTERN LiveChartStaticStaticValues* live_chart_static_static_values_construct (GType object_type); +VALA_EXTERN void live_chart_static_static_values_add (LiveChartStaticStaticValues* self, + LiveChartStaticNamedValue* value); +VALA_EXTERN LiveChartBounds* live_chart_static_static_values_get_bounds (LiveChartStaticStaticValues* self); +VALA_EXTERN void live_chart_static_static_values_set_bounds (LiveChartStaticStaticValues* self, + LiveChartBounds* value); +VALA_EXTERN LiveChartStaticStaticSerieRenderer* live_chart_static_static_serie_renderer_construct (GType object_type); +VALA_EXTERN LiveChartStaticStaticValues* live_chart_static_static_serie_renderer_get_values (LiveChartStaticStaticSerieRenderer* self); +VALA_EXTERN void live_chart_static_static_serie_renderer_draw (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_serie_renderer_debug (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx); +VALA_EXTERN gboolean live_chart_static_static_serie_renderer_is_out_of_area (LiveChartStaticStaticSerieRenderer* self, + LiveChartPoint* point); +VALA_EXTERN LiveChartPath* live_chart_static_static_serie_renderer_get_line (LiveChartStaticStaticSerieRenderer* self); +VALA_EXTERN void live_chart_static_static_serie_renderer_set_line (LiveChartStaticStaticSerieRenderer* self, + LiveChartPath* value); +VALA_EXTERN GType live_chart_static_static_line_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticLine, g_object_unref) +VALA_EXTERN LiveChartStaticStaticLine* live_chart_static_static_line_new (LiveChartStaticStaticValues* values); +VALA_EXTERN LiveChartStaticStaticLine* live_chart_static_static_line_construct (GType object_type, + LiveChartStaticStaticValues* values); +VALA_EXTERN GType live_chart_static_static_points_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (LiveChartStaticStaticPoints, g_object_unref) +VALA_EXTERN void live_chart_static_static_line_draw_line (LiveChartStaticStaticLine* self, + LiveChartStaticStaticPoints* points, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_restore (LiveChartStaticStaticGrid* self, + cairo_t* ctx); +VALA_EXTERN void live_chart_static_static_grid_render_abscissa (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_render_ordinate (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_render_grid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_render_vgrid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_render_hgrid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_update_bounding_box (LiveChartStaticStaticGrid* self, + LiveChartConfig* config); +VALA_EXTERN void live_chart_static_static_grid_debug (LiveChartStaticStaticGrid* self, + cairo_t* ctx); +VALA_EXTERN LiveChartStaticStaticGrid* live_chart_static_static_grid_new (void); +VALA_EXTERN LiveChartStaticStaticGrid* live_chart_static_static_grid_construct (GType object_type); +VALA_EXTERN void live_chart_static_static_grid_get_main_color (LiveChartStaticStaticGrid* self, + GdkRGBA * result); +VALA_EXTERN void live_chart_static_static_grid_set_main_color (LiveChartStaticStaticGrid* self, + GdkRGBA * value); +VALA_EXTERN LiveChartStaticStaticPoints* live_chart_static_static_points_new (void); +VALA_EXTERN LiveChartStaticStaticPoints* live_chart_static_static_points_construct (GType object_type); +VALA_EXTERN void live_chart_static_static_points_add (LiveChartStaticStaticPoints* self, + LiveChartPoint* point); +VALA_EXTERN void live_chart_static_static_points_get (LiveChartStaticStaticPoints* self, + gint at, + LiveChartPoint* result); +VALA_EXTERN void live_chart_static_static_points_after (LiveChartStaticStaticPoints* self, + gint at, + LiveChartPoint* result); +VALA_EXTERN void live_chart_static_static_points_first (LiveChartStaticStaticPoints* self, + LiveChartPoint* result); +VALA_EXTERN void live_chart_static_static_points_last (LiveChartStaticStaticPoints* self, + LiveChartPoint* result); +VALA_EXTERN LiveChartStaticStaticPoints* live_chart_static_static_points_create (LiveChartStaticStaticValues* values, + LiveChartConfig* config); +VALA_EXTERN LiveChartBounds* live_chart_static_static_points_get_bounds (LiveChartStaticStaticPoints* self); +VALA_EXTERN void live_chart_static_static_points_set_bounds (LiveChartStaticStaticPoints* self, + LiveChartBounds* value); +VALA_EXTERN gint live_chart_static_static_points_get_size (LiveChartStaticStaticPoints* self); +VALA_EXTERN gdouble live_chart_static_static_points_get_realtime_delta (LiveChartStaticStaticPoints* self); +VALA_EXTERN void live_chart_static_static_points_set_realtime_delta (LiveChartStaticStaticPoints* self, + gdouble value); + +G_END_DECLS + +#endif diff --git a/iPDC/lib/livechart_static.vapi b/iPDC/lib/livechart_static.vapi new file mode 100644 index 0000000..317f026 --- /dev/null +++ b/iPDC/lib/livechart_static.vapi @@ -0,0 +1,507 @@ +/* livechart_static.vapi generated by valac 0.56.0, do not modify. */ + +namespace LiveChart { + namespace Static { + [CCode (cheader_filename = "livechart_static.h")] + public class StaticChart : Gtk.DrawingArea { + public LiveChart.Config config; + public LiveChart.Static.StaticSeries series; + public StaticChart (LiveChart.Config config = new LiveChart.Config ()); + public void add_serie (LiveChart.Static.StaticSerie serie); + public void set_categories (Gee.ArrayList categories); + public LiveChart.Background background { get; set; } + public LiveChart.Static.StaticGrid grid { get; set; } + public LiveChart.Legend legend { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class StaticGrid : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + public const int ABSCISSA_TIME_PADDING; + public StaticGrid (); + protected void debug (Cairo.Context ctx); + protected void render_abscissa (Cairo.Context ctx, LiveChart.Config config); + protected void render_grid (Cairo.Context ctx, LiveChart.Config config); + protected void render_hgrid (Cairo.Context ctx, LiveChart.Config config); + protected void render_ordinate (Cairo.Context ctx, LiveChart.Config config); + protected void render_vgrid (Cairo.Context ctx, LiveChart.Config config); + protected void restore (Cairo.Context ctx); + protected void update_bounding_box (LiveChart.Config config); + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class StaticLine : LiveChart.Static.StaticSerieRenderer { + public StaticLine (LiveChart.Static.StaticValues values = new LiveChart.Static.StaticValues ()); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + protected void draw_line (LiveChart.Static.StaticPoints points, Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart_static.h")] + public class StaticPoints : GLib.Object { + public StaticPoints (); + public void add (LiveChart.Point point); + public LiveChart.Point after (int at); + public static LiveChart.Static.StaticPoints create (LiveChart.Static.StaticValues values, LiveChart.Config config); + public LiveChart.Point first (); + public new LiveChart.Point @get (int at); + public LiveChart.Point last (); + public LiveChart.Bounds bounds { get; set construct; } + public double realtime_delta { get; set; } + public int size { get; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class StaticSerie : LiveChart.Colorable, LiveChart.Drawable, GLib.Object { + public StaticSerie (string name, LiveChart.Static.StaticSerieRenderer renderer = new LiveChart.Static.StaticLine (new LiveChart.Static.StaticValues ())); + public void add (string name, double value); + public void clear (); + public LiveChart.Static.StaticValues get_values (); + public LiveChart.Path line { get; set; } + public string name { get; set; } + public signal void value_added (double value); + } + [CCode (cheader_filename = "livechart_static.h")] + public abstract class StaticSerieRenderer : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + protected LiveChart.Static.StaticValues values; + protected StaticSerieRenderer (); + protected void debug (Cairo.Context ctx); + public abstract void draw (Cairo.Context ctx, LiveChart.Config config); + public LiveChart.Static.StaticValues get_values (); + protected bool is_out_of_area (LiveChart.Point point); + public LiveChart.Path line { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class StaticSeries : GLib.Object { + public StaticSeries (LiveChart.Static.StaticChart chart); + public new LiveChart.Static.StaticSerie @get (int index) throws LiveChart.ChartError; + public LiveChart.Static.StaticSerie get_by_name (string name) throws LiveChart.ChartError; + public Gee.Iterator iterator (); + public LiveChart.Static.StaticSerie register (LiveChart.Static.StaticSerie serie); + } + [CCode (cheader_filename = "livechart_static.h")] + public class StaticValues : Gee.LinkedList { + public StaticValues (); + public new void add (LiveChart.Static.NamedValue value); + public LiveChart.Bounds bounds { get; set construct; } + } + [CCode (cheader_filename = "livechart_static.h")] + public struct NamedValue { + public string name; + public double value; + } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Area : LiveChart.Drawable, GLib.Object { + public Area (LiveChart.Points points, Gdk.RGBA color, double alpha); + } + [CCode (cheader_filename = "livechart_static.h")] + public class Background : LiveChart.Drawable, GLib.Object { + public Background (); + public Gdk.RGBA color { get; set; } + [Version (deprecated = true, deprecated_since = "1.8.0", replacement = "Background.color")] + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Bar : LiveChart.SerieRenderer { + public Bar (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart_static.h")] + public class BezierIntersector : LiveChart.Intersector { + public BezierIntersector (LiveChart.Region region, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart_static.h")] + public class Bounds : GLib.Object { + public Bounds (double lower = double.NAN, double upper = double.NAN); + public bool has_lower (); + public bool has_upper (); + public bool update (double value); + public double lower { get; private set; } + public double upper { get; private set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Chart : Gtk.DrawingArea { + public LiveChart.Config config; + public LiveChart.Series series; + public Chart (LiveChart.Config config = new LiveChart.Config ()); + public void add_serie (LiveChart.Serie serie); + public void add_unaware_timestamp_collection (LiveChart.Serie serie, Gee.Collection collection, int timespan_between_value); + public void add_unaware_timestamp_collection_by_index (int serie_index, Gee.Collection collection, int timespan_between_value) throws LiveChart.ChartError; + [Version (deprecated = true, deprecated_since = "1.7.0", replacement = "Retrieve the Serie from Chart.series (or from the serie you created) and add the value using serie.add")] + public void add_value (LiveChart.Serie serie, double value); + [Version (deprecated = true, deprecated_since = "1.7.0", replacement = "Retrieve the Serie from Chart.series and add the value using serie.add")] + public void add_value_by_index (int serie_index, double value) throws LiveChart.ChartError; + public void refresh_every (int ms); + public void to_png (string filename) throws GLib.Error; + public LiveChart.Background background { get; set; } + public LiveChart.Grid grid { get; set; } + public LiveChart.Legend legend { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Config { + public LiveChart.Padding padding; + public LiveChart.XAxis x_axis; + public LiveChart.YAxis y_axis; + public Config (); + public LiveChart.Boundaries boundaries (); + public void configure (Cairo.Context ctx, LiveChart.Legend? legend); + public int height { get; set; } + public int width { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Font { + public Font (); + public void configure (Cairo.Context ctx); + public Gdk.RGBA color { get; set; } + public string face { get; set; } + public uint8 size { get; set; } + public Cairo.FontSlant slant { get; set; } + public Cairo.FontWeight weight { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Grid : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + public const int ABSCISSA_TIME_PADDING; + public Grid (); + protected void debug (Cairo.Context ctx); + protected void render_abscissa (Cairo.Context ctx, LiveChart.Config config); + protected void render_grid (Cairo.Context ctx, LiveChart.Config config); + protected void render_hgrid (Cairo.Context ctx, LiveChart.Config config); + protected void render_ordinate (Cairo.Context ctx, LiveChart.Config config); + protected void render_vgrid (Cairo.Context ctx, LiveChart.Config config); + protected void restore (Cairo.Context ctx); + protected void update_bounding_box (LiveChart.Config config); + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class HorizontalLegend : LiveChart.Legend { + public HorizontalLegend (); + protected void debug (Cairo.Context ctx); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart_static.h")] + public class Intersection : GLib.Object { + public double? entered_at; + public double? exited_at; + public Intersection (LiveChart.Region region, double start_x, double entered_at); + public void close (double x, double exited_at); + public bool is_closed (); + public bool is_open (); + public void update (double x); + public Intersection.without_entry_point (LiveChart.Region region, double start_x); + public double end_x { get; private set; } + public LiveChart.Region region { get; set construct; } + public double start_x { get; private set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Intersections : GLib.Object { + public Intersections (); + public void close (double x, double exited_at); + public void @foreach (Gee.ForallFunc f); + public new LiveChart.Intersection @get (int index); + public LiveChart.Region get_current_region (); + public bool has_an_opened_intersection (); + public void open (LiveChart.Region region, double x, double entered_at); + public void open_without_entrypoint (LiveChart.Region region, double x); + public int size (); + public void update (double x); + } + [CCode (cheader_filename = "livechart_static.h")] + public class Labels { + public Labels (); + public Cairo.TextExtents extents { get; set; } + public LiveChart.Font font { get; set; } + public bool visible { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public abstract class Legend : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + public LiveChart.Labels labels; + protected Gee.ArrayList series; + protected Legend (); + public void add_legend (LiveChart.Serie serie); + public abstract void draw (Cairo.Context ctx, LiveChart.Config config); + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Line : LiveChart.SerieRenderer { + public Line (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + protected LiveChart.Points draw_line (LiveChart.Points points, Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart_static.h")] + public class LineArea : LiveChart.Line { + public LineArea (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + public double area_alpha { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class MaxBoundLine : LiveChart.SerieRenderer { + public MaxBoundLine (); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + public MaxBoundLine.from_serie (LiveChart.Serie serie); + } + [CCode (cheader_filename = "livechart_static.h")] + public class MinBoundLine : LiveChart.SerieRenderer { + public MinBoundLine (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + public MinBoundLine.from_serie (LiveChart.Serie serie); + } + [CCode (cheader_filename = "livechart_static.h")] + public class NoopLegend : LiveChart.Legend { + public NoopLegend (); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + } + [CCode (cheader_filename = "livechart_static.h")] + public class Path : GLib.Object { + public LiveChart.Dash? dash; + public Path (double width = 0.5, Gdk.RGBA color = { 1.0, 1.0, 1.0, 1.0 }, bool visible = true, LiveChart.Dash? dash = null); + public void configure (Cairo.Context ctx); + public Gdk.RGBA color { get; set; } + public bool visible { get; set; } + public double width { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Points : GLib.Object { + public Points (); + public void add (LiveChart.Point point); + public LiveChart.Point after (int at); + public static LiveChart.Points create (LiveChart.Values values, LiveChart.Config config); + public LiveChart.Point first (); + public new LiveChart.Point @get (int at); + public LiveChart.Point last (); + public LiveChart.Bounds bounds { get; set construct; } + public double realtime_delta { get; set; } + public int size { get; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Region { + public Region (double floor, double ceil); + public Region.between (double above, double below); + public void handle (LiveChart.Intersections intersections, LiveChart.Point previous, LiveChart.Point current, LiveChart.GetIntersection get_intersection); + public bool has_at_least_one_point_within (LiveChart.Point previous, LiveChart.Point current); + public LiveChart.Region with_area_color (Gdk.RGBA color); + public LiveChart.Region with_line_color (Gdk.RGBA color); + public Gdk.RGBA area_color { get; set; } + public Gdk.RGBA line_color { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Serie : LiveChart.Colorable, LiveChart.Drawable, GLib.Object { + public Serie (string name, LiveChart.SerieRenderer renderer = new LiveChart.Line (new LiveChart.Values (1000))); + public void add (double value); + public void add_with_timestamp (double value, int64 timestamp); + public void clear (); + [Version (deprecated = true, deprecated_since = "1.7.1", replacement = "Serie.main_color property instead")] + public Gdk.RGBA get_main_color (); + public LiveChart.Values get_values (); + [Version (deprecated = true, deprecated_since = "1.7.1", replacement = "Serie.main_color property instead")] + public void set_main_color (Gdk.RGBA color); + public LiveChart.Path line { get; set; } + public string name { get; set; } + public signal void value_added (double value); + } + [CCode (cheader_filename = "livechart_static.h")] + public abstract class SerieRenderer : LiveChart.Drawable, GLib.Object { + protected LiveChart.BoundingBox bounding_box; + protected LiveChart.Values values; + protected SerieRenderer (); + protected void debug (Cairo.Context ctx); + public abstract void draw (Cairo.Context ctx, LiveChart.Config config); + public LiveChart.Values get_values (); + protected bool is_out_of_area (LiveChart.Point point); + public LiveChart.Path line { get; set; } + [Version (deprecated = true, deprecated_since = "1.8.0", replacement = "Serie.renderer.line.color")] + public Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Series : GLib.Object { + public Series (LiveChart.Chart chart); + public new LiveChart.Serie @get (int index) throws LiveChart.ChartError; + public LiveChart.Serie get_by_name (string name) throws LiveChart.ChartError; + public Gee.Iterator iterator (); + public LiveChart.Serie register (LiveChart.Serie serie); + } + [CCode (cheader_filename = "livechart_static.h")] + public class SmoothLine : LiveChart.SerieRenderer { + protected LiveChart.Intersections intersections; + public SmoothLine (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + protected void draw_regions_on_line (Cairo.Context ctx, LiveChart.Config config); + public Cairo.Path draw_smooth_line (LiveChart.Points points, Cairo.Context ctx, LiveChart.Config config); + public LiveChart.Region? region { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class SmoothLineArea : LiveChart.SmoothLine { + public SmoothLineArea (LiveChart.Values values = new LiveChart.Values (1000)); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + protected void draw_regions_on_area (Cairo.Context ctx, LiveChart.Config config); + public double area_alpha { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class ThresholdLine : LiveChart.SerieRenderer { + public ThresholdLine (double value); + public override void draw (Cairo.Context ctx, LiveChart.Config config); + public double value { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class Values : Gee.LinkedList { + public Values (int buffer_size = 1000); + public new void add (LiveChart.TimestampedValue value); + public LiveChart.Bounds bounds { get; set construct; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class XAxis { + public LiveChart.Path axis; + public LiveChart.Labels labels; + public LiveChart.Path lines; + public XAxis (); + public double get_ratio (); + public float tick_interval { get; set; } + public float tick_length { get; set; } + public bool visible { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public class YAxis { + public LiveChart.Path axis; + public double? fixed_max; + public LiveChart.Labels labels; + public LiveChart.Path lines; + [Version (deprecated = true, deprecated_since = "1.0.0b7", replacement = "ratio is always smart ;)")] + public bool smart_ratio; + public LiveChart.Ticks ticks; + public YAxis (string unit = ""); + public LiveChart.Bounds get_bounds (); + public string get_max_displayed_value (); + public double get_ratio (); + public LiveChart.Ticks get_ticks (); + public void update (int area_height); + public bool update_bounds (double value); + public float ratio_threshold { get; set; } + public float tick_interval { get; set; } + [Version (deprecated = true, deprecated_since = "1.0.0b7")] + public float tick_length { get; set; } + public string unit { get; set; } + public bool visible { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public interface Colorable : GLib.Object { + [Version (deprecated = true, deprecated_since = "1.8.0", replacement = "Serie.line.color")] + public abstract Gdk.RGBA main_color { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public interface Drawable : GLib.Object { + public abstract void draw (Cairo.Context ctx, LiveChart.Config config); + public abstract LiveChart.BoundingBox get_bounding_box (); + public abstract bool visible { get; set; } + } + [CCode (cheader_filename = "livechart_static.h")] + public interface Intersector { + public abstract void intersect (LiveChart.Intersections intersections, LiveChart.Point previous, LiveChart.Point current, T path); + } + [CCode (cheader_filename = "livechart_static.h")] + public struct BezierCurve { + public LiveChart.Coord c0; + public LiveChart.Coord c1; + public LiveChart.Coord c2; + public LiveChart.Coord c3; + } + [CCode (cheader_filename = "livechart_static.h")] + public struct Boundaries { + public LiveChart.Boundary x; + public LiveChart.Boundary y; + public int width; + public int height; + } + [CCode (cheader_filename = "livechart_static.h")] + public struct Boundary { + public int min; + public int max; + } + [CCode (cheader_filename = "livechart_static.h")] + public struct BoundingBox { + public double x; + public double y; + public double width; + public double height; + } + [CCode (cheader_filename = "livechart_static.h")] + public struct Coord { + public double x; + public double y; + } + [CCode (cheader_filename = "livechart_static.h")] + public struct Dash { + public double[]? dashes; + public double offset; + public Dash (); + } + [CCode (cheader_filename = "livechart_static.h")] + public struct Padding { + public LiveChart.AutoPadding smart; + public int top; + public int right; + public int bottom; + public int left; + public Padding (); + } + [CCode (cheader_filename = "livechart_static.h")] + public struct Point { + public double x; + public double y; + public double height; + public LiveChart.TimestampedValue data; + } + [CCode (cheader_filename = "livechart_static.h")] + public struct RegionHandleResult { + public LiveChart.RegionHandleStatus status; + public double at_value; + } + [CCode (cheader_filename = "livechart_static.h")] + public struct Segment { + public LiveChart.Coord from; + public LiveChart.Coord to; + } + [CCode (cheader_filename = "livechart_static.h")] + public struct Ticks { + public Gee.List values; + public Ticks (); + } + [CCode (cheader_filename = "livechart_static.h")] + public struct TimestampedValue { + public double timestamp; + public double value; + } + [CCode (cheader_filename = "livechart_static.h")] + [Flags] + public enum AutoPadding { + NONE, + TOP, + RIGHT, + BOTTOM, + LEFT + } + [CCode (cheader_filename = "livechart_static.h")] + public enum RegionHandleStatus { + ENTER, + EXIT, + WITHIN, + OUT + } + [CCode (cheader_filename = "livechart_static.h")] + public errordomain ChartError { + EXPORT_ERROR, + SERIE_NOT_FOUND + } + [CCode (cheader_filename = "livechart_static.h")] + public delegate LiveChart.Coord? GetIntersection (double at_value); + [CCode (cheader_filename = "livechart_static.h")] + public static LiveChart.BezierCurve build_bezier_curve_from_points (LiveChart.Point previous, LiveChart.Point target); + [CCode (cheader_filename = "livechart_static.h")] + public static float cap (float value); + [CCode (cheader_filename = "livechart_static.h")] + public static Gee.List find_intersections_between (LiveChart.Segment segment, LiveChart.BezierCurve bezier); + [CCode (cheader_filename = "livechart_static.h")] + public static string format_for_y_axis (string unit, float value); + [CCode (cheader_filename = "livechart_static.h")] + public static Gee.List golden_divisors (float value); + [CCode (cheader_filename = "livechart_static.h")] + public static bool has_fractional_part (float value); +} diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index 14be98a..d9277b2 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -5,6 +5,7 @@ #include "osm-gps-map.h" #include "Attack_detect.h" #include "connections.h" +#include "livechart.h" // #include "utility_tools.h" @@ -63,8 +64,6 @@ gboolean update_images(gpointer* pars){ df = df->dnext; } // } - - From 5886069a3db97cf36b4f6fc3d01f13d031386d89 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Thu, 20 Oct 2022 14:26:58 +0530 Subject: [PATCH 03/13] Basic model of line chart --- iPDC/Makefile | 4 +- iPDC/assets/utility_tools.ui | 29 ++-- iPDC/assets/utility_tools.ui~ | 302 ++++++++++++++++++++++++++++++++++ iPDC/inc/map_vis.h | 1 - iPDC/inc/utility_tools.h | 8 +- iPDC/src/map_vis.c | 75 +++++---- iPDC/src/utility_tools.c | 86 ++++++---- 7 files changed, 413 insertions(+), 92 deletions(-) create mode 100644 iPDC/assets/utility_tools.ui~ diff --git a/iPDC/Makefile b/iPDC/Makefile index 28810af..0f7a395 100755 --- a/iPDC/Makefile +++ b/iPDC/Makefile @@ -46,7 +46,7 @@ FILE6 = iPDC.desktop CC = gcc LIBS = -lpthread -LDLIBS=`pkg-config --cflags --libs gtk+-3.0 osmgpsmap-1.0 gee-0.8` +LDLIBS=`pkg-config --cflags --libs gtk+-3.0 osmgpsmap-1.0 gee-0.8` lib/liblivechart.so lib/liblivechart_static.a -Wl,--rpath=./lib CFLAGS=-g -I./inc -I./lib -fcommon `pkg-config --cflags --libs gtk+-3.0 osmgpsmap-1.0 gee-0.8` PROGRAM = iPDC @@ -57,7 +57,7 @@ CLEAN_OBJECTS = $(wildcard bin/*.o) $(PROGRAM) all: $(PROGRAM) $(PROGRAM): $(OBJECT_FILES) - $(CC) $(CFLAGS) $(OBJECT_FILES) -o $(PROGRAM) $(LDLIBS) + $(CC) $(CFLAGS) $(OBJECT_FILES) -o $(PROGRAM) $(LDLIBS) bin/%.o: src/%.c $(CC) $(CFLAGS) -c $< -o $@ diff --git a/iPDC/assets/utility_tools.ui b/iPDC/assets/utility_tools.ui index 3dba50e..ce69fd8 100644 --- a/iPDC/assets/utility_tools.ui +++ b/iPDC/assets/utility_tools.ui @@ -4,7 +4,7 @@ 800 - 600 + 700 False @@ -169,7 +169,7 @@ - + 100 80 @@ -271,22 +271,15 @@ - - - - - - - - - - - - - - - - + + 150 + True + False + + + 1 + 1 + diff --git a/iPDC/assets/utility_tools.ui~ b/iPDC/assets/utility_tools.ui~ new file mode 100644 index 0000000..3dba50e --- /dev/null +++ b/iPDC/assets/utility_tools.ui~ @@ -0,0 +1,302 @@ + + + + + + 800 + 600 + False + + + True + False + 10 + 10 + 3 + + + 800 + True + False + True + immediate + + + True + False + _File + True + + + True + False + + + gtk-new + True + False + True + True + + + + + gtk-open + True + False + True + True + + + + + gtk-save + True + False + True + True + + + + + gtk-save-as + True + False + True + True + + + + + True + False + + + + + gtk-quit + True + False + True + True + + + + + + + + + True + False + _Edit + True + + + True + False + + + gtk-cut + True + False + True + True + + + + + gtk-copy + True + False + True + True + + + + + gtk-paste + True + False + True + True + + + + + gtk-delete + True + False + True + True + + + + + + + + + True + False + _View + True + + + + + True + False + _Help + True + + + True + False + + + gtk-about + True + False + True + True + + + + + + + + + + + + 100 + 80 + True + True + False + 10 + 6 + + + + 80 + True + False + 35 + + + Voltage + True + True + True + + + 0 + 0 + + + + + Frequency + True + True + True + + + 0 + 1 + + + + + Attack Detection + True + True + True + + + 0 + 2 + + + + + True + False + 0 + + kmeans + simple + + + + 0 + 3 + + + + + True + False + 0 + + frequency only + frequency,voltage + voltage + + + + 0 + 4 + + + + + 0 + 0 + + + + + 600 + 500 + True + False + + + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + 30 + + + + + + diff --git a/iPDC/inc/map_vis.h b/iPDC/inc/map_vis.h index 90baf2b..ec05f5e 100644 --- a/iPDC/inc/map_vis.h +++ b/iPDC/inc/map_vis.h @@ -9,5 +9,4 @@ typedef struct{ } myParameters; - gboolean update_images(gpointer* pars); \ No newline at end of file diff --git a/iPDC/inc/utility_tools.h b/iPDC/inc/utility_tools.h index 5e49756..ba4e105 100644 --- a/iPDC/inc/utility_tools.h +++ b/iPDC/inc/utility_tools.h @@ -1,6 +1,7 @@ #include #include #include "osm-gps-map.h" +#include "livechart.h" /* Convenience macros for obtaining objects from UI file */ #define CH_GET_OBJECT(builder, name, type, data) \ @@ -24,14 +25,11 @@ struct _UtData GtkWidget *dimmension; OsmGpsMap *util_map; GtkContainer *map_layout; + GtkContainer *graph_layout; }; UtData *utdata; - -/* UI variables */ -int curr_measurement = 0; -int algorithm =0; -int dimmensions = 0; +LiveChartSerie *serie; diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index d9277b2..7e22a8b 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -6,13 +6,19 @@ #include "Attack_detect.h" #include "connections.h" #include "livechart.h" -// #include "utility_tools.h" +#include "utility_tools.h" +extern int curr_measurement; +extern int algorithm; +extern int dimmensions; + +// debug +int loops = 0; gboolean update_images(gpointer* pars){ int match=0,id; myParameters* parameters = (myParameters*) pars; - struct data_frame *df = TSB[0].first_data_frame; + struct data_frame *df = TSB[4].first_data_frame; struct Lower_Layer_Details *LLptr; if (df == NULL){ @@ -20,36 +26,38 @@ gboolean update_images(gpointer* pars){ } // if (curr_measurement==1) // { - while (df != NULL){ - id = to_intconvertor(df->idcode); - printf("id = %d\n",id); + int freq = to_intconvertor(df->dpmu[0]->freq)-200; + live_chart_serie_add(serie, freq); + loops++; + printf("loops: %d\n", loops); + // id = to_intconvertor(df->idcode); + // printf("id = %d\n",id); - LLptr = LLfirst; + // LLptr = LLfirst; - while(LLptr != NULL){ - printf("pmuid = %d\n",LLptr->pmuid); - if(LLptr->pmuid == id){ - match = 1; - break; - } - LLptr = LLptr->next; - } + // while(LLptr != NULL){ + // printf("pmuid = %d\n",LLptr->pmuid); + // if(LLptr->pmuid == id){ + // match = 1; + // break; + // } + // LLptr = LLptr->next; + // } - if(match == 1){ - float lat = LLptr->latitude; - float lon = LLptr->longitude; - float freq = to_intconvertor(df->dpmu[0]->freq)*0.001+50; - printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq); + // if(match == 1){ + float lat = 79.347312; + float lon = -69.439209; + // float freq = to_intconvertor(df->dpmu[0]->freq)*0.001+50; + printf("lat = %f, lon = %f, freq = %d\n",lat,lon,freq); // gboolean green =attack_detect(df,&START,&COUNT,&SUM_OF_FREQUENCY); - - if(parameters->g_last_image != 0){ - osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - } - if (freq > 50.300){ - parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_green_image); - }else{ - parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image); - } + // if(parameters->g_last_image != 0){ + // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); + // } + // if (freq > 50.300){ + // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_green_image); + // }else{ + // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image); + // } // if(parameters->g_last_image != 0){ // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); // } @@ -58,15 +66,10 @@ gboolean update_images(gpointer* pars){ // }else{ // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); // } - - - } - df = df->dnext; - } +// } // } - - gtk_widget_queue_draw(GTK_WIDGET(parameters->util_map)); return TRUE; -} \ No newline at end of file +} + diff --git a/iPDC/src/utility_tools.c b/iPDC/src/utility_tools.c index fce1144..f81cf78 100644 --- a/iPDC/src/utility_tools.c +++ b/iPDC/src/utility_tools.c @@ -1,15 +1,18 @@ -#include +#include #include "align_sort.h" #include "parser.h" #include "osm-gps-map.h" #include "map_vis.h" #include "utility_tools.h" +#include "livechart.h" #define UI_fILE "./assets/utility_tools.ui" #define RED_IMAGE "./assets/red.png" #define GREEN_IMAGE "./assets/green.png" - +int curr_measurement = 0; +int algorithm =0; +int dimmensions = 0; // void change_image(OsmGpsMap *map, float lat, float lon, OsmGpsMapImage *image) // { @@ -35,7 +38,6 @@ void on_frequency_clicked(GtkButton *but, gpointer udata) gtk_widget_set_sensitive(utdata->frequency, FALSE); gtk_widget_set_sensitive(utdata->attack_detection, TRUE); - // printf("Frequency\n"); } @@ -71,16 +73,14 @@ void utility_tools(GtkButton *but, gpointer udata) OsmGpsMapImage *g_last_image; // ------------------- GtkBuilder *builder; - GError *error = NULL; + GError *error = NULL; builder = gtk_builder_new(); - - - if(!gtk_builder_add_from_file(builder, UI_fILE, &error)) - { - g_warning("%s", error->message); - g_free(error); - } + if (!gtk_builder_add_from_file(builder, UI_fILE, &error)) + { + g_warning("%s", error->message); + g_free(error); + } utdata = g_slice_new(UtData); utdata->util_window = GTK_WIDGET(gtk_builder_get_object(builder, "util_window")); @@ -91,7 +91,8 @@ void utility_tools(GtkButton *but, gpointer udata) utdata->dimmension = GTK_WIDGET(gtk_builder_get_object(builder, "dimmension")); // utdata->util_map = GTK_WIDGET(gtk_builder_get_object(builder, "util_map")); utdata->map_layout = GTK_CONTAINER(gtk_builder_get_object(builder, "map_layout")); - + utdata->graph_layout = GTK_CONTAINER(gtk_builder_get_object(builder, "graph_layout")); + gtk_widget_set_sensitive(utdata->voltage, FALSE); gtk_widget_set_visible(utdata->algorithm, FALSE); gtk_widget_set_visible(utdata->dimmension, FALSE); @@ -100,35 +101,60 @@ void utility_tools(GtkButton *but, gpointer udata) g_signal_connect(utdata->frequency, "clicked", G_CALLBACK(on_frequency_clicked), NULL); g_signal_connect(utdata->voltage, "clicked", G_CALLBACK(on_voltage_clicked), NULL); + g_red_image = gdk_pixbuf_new_from_file_at_size(RED_IMAGE, 24, 24, NULL); + g_green_image = gdk_pixbuf_new_from_file_at_size(GREEN_IMAGE, 24, 24, NULL); - - - g_red_image = gdk_pixbuf_new_from_file_at_size (RED_IMAGE, 24,24,NULL); - g_green_image = gdk_pixbuf_new_from_file_at_size (GREEN_IMAGE, 24,24,NULL); - - - - utdata->util_map = g_object_new (OSM_TYPE_GPS_MAP, - "map-source", OSM_GPS_MAP_SOURCE_OPENSTREETMAP, - "tile-cache", "/tmp/", - NULL); - osm_gps_map_set_center_and_zoom (utdata->util_map, 15.4589, 75.0078, 10); + utdata->util_map = g_object_new(OSM_TYPE_GPS_MAP, + "map-source", OSM_GPS_MAP_SOURCE_OSMC_TRAILS, + "tile-cache", "/tmp/", + NULL); + osm_gps_map_set_center_and_zoom(utdata->util_map, 15.4589, 75.0078, 10); // TODO: add the points to window. - g_last_image = osm_gps_map_image_add(utdata->util_map,15.4589, 75.0078, g_red_image); - g_last_image = osm_gps_map_image_add(utdata->util_map,15.518597, 74.925584, g_green_image); - - + g_last_image = osm_gps_map_image_add(utdata->util_map, 15.4589, 75.0078, g_red_image); + g_last_image = osm_gps_map_image_add(utdata->util_map, 15.518597, 74.925584, g_green_image); myParameters parameters = {utdata->util_map, g_red_image, g_green_image, g_last_image}; - gpointer data = (gpointer) ¶meters; - guint pid = g_timeout_add(20, (GSourceFunc) update_images, data); + gpointer data = (gpointer)¶meters; + guint pid = g_timeout_add(20, (GSourceFunc)update_images, data); gtk_widget_set_size_request(GTK_WIDGET(utdata->util_map), 600, 500); gtk_container_add(utdata->map_layout, GTK_WIDGET(utdata->util_map)); + + // add live chart + serie = live_chart_serie_new("Hello", (LiveChartSerieRenderer*)live_chart_line_new (live_chart_values_new(10000))); + // live_chart set color to the serie + GdkRGBA color; + color.red = 1.0; + color.green = 0.0; + color.blue = 1.0; + color.alpha = 1.0; + + live_chart_path_set_color(live_chart_serie_get_line(serie), &color); + LiveChartConfig *config = live_chart_config_new(); + live_chart_yaxis_set_unit(config->y_axis, "mHz"); + live_chart_xaxis_set_tick_interval(config->x_axis, 20); + live_chart_xaxis_set_tick_length(config->x_axis, 100); + live_chart_yaxis_update_bounds(config->y_axis, 1); + live_chart_path_set_visible(config->x_axis->lines, FALSE); + + LiveChartChart *chart = live_chart_chart_new(config); + live_chart_chart_add_serie(chart, serie); + + // gtk_widget_set_hexpand(GTK_WIDGET(chart), TRUE); + // gtk_widget_set_vexpand(GTK_WIDGET(chart), TRUE); + gtk_widget_set_size_request(GTK_WIDGET(chart), 600, 150); + + gtk_container_add(utdata->graph_layout, GTK_WIDGET(chart)); + + + + g_signal_connect(utdata->util_window, "destroy", G_CALLBACK(on_window_destroy), GUINT_TO_POINTER(pid)); + // gtk_widget_set_vexpand(GTK_WIDGET(utdata->util_map), TRUE); + // gtk_widget_set_hexpand(GTK_WIDGET(utdata->util_map), TRUE); gtk_widget_show_all(utdata->util_window); gtk_widget_hide(utdata->algorithm); From e88e00937600d581695301d946fd633e3471cf58 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Tue, 25 Oct 2022 21:43:07 +0530 Subject: [PATCH 04/13] graph drawing(unrefractored) --- iPDC/inc/utility_tools.h | 5 +++ iPDC/src/map_vis.c | 87 +++++++++++++++++++++------------------- iPDC/src/utility_tools.c | 12 +++--- 3 files changed, 57 insertions(+), 47 deletions(-) diff --git a/iPDC/inc/utility_tools.h b/iPDC/inc/utility_tools.h index ba4e105..455bf27 100644 --- a/iPDC/inc/utility_tools.h +++ b/iPDC/inc/utility_tools.h @@ -31,6 +31,11 @@ struct _UtData UtData *utdata; LiveChartSerie *serie; +// global variables +int curr_measurement; +int algorithm; +int dimmension; + void utility_tools(GtkButton *but, gpointer udata); \ No newline at end of file diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index 7e22a8b..fa8d975 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -8,9 +8,6 @@ #include "livechart.h" #include "utility_tools.h" -extern int curr_measurement; -extern int algorithm; -extern int dimmensions; // debug int loops = 0; @@ -18,56 +15,64 @@ int loops = 0; gboolean update_images(gpointer* pars){ int match=0,id; myParameters* parameters = (myParameters*) pars; - struct data_frame *df = TSB[4].first_data_frame; + struct data_frame *df = TSB[0].first_data_frame; struct Lower_Layer_Details *LLptr; if (df == NULL){ return TRUE; } - // if (curr_measurement==1) - // { - int freq = to_intconvertor(df->dpmu[0]->freq)-200; + if (curr_measurement==0) + { + int n = df->num_pmu; + if (n==0) return TRUE; + int i = 0; + int freq; + while (i < n){ + freq = to_intconvertor(df->dpmu[i]->freq)-200; live_chart_serie_add(serie, freq); loops++; printf("loops: %d\n", loops); - // id = to_intconvertor(df->idcode); - // printf("id = %d\n",id); + id = to_intconvertor(TSB[0].idlist[i].idcode); + printf("id = %d\n",id); - // LLptr = LLfirst; + LLptr = LLfirst; + match = 0; + while(LLptr != NULL){ + printf("pmuid = %d\n",LLptr->pmuid); + if(LLptr->pmuid == id){ + match = 1; + break; + } + LLptr = LLptr->next; + } - // while(LLptr != NULL){ - // printf("pmuid = %d\n",LLptr->pmuid); - // if(LLptr->pmuid == id){ - // match = 1; - // break; - // } - // LLptr = LLptr->next; - // } - - // if(match == 1){ + if(match == 1){ float lat = 79.347312; float lon = -69.439209; - // float freq = to_intconvertor(df->dpmu[0]->freq)*0.001+50; - printf("lat = %f, lon = %f, freq = %d\n",lat,lon,freq); - // gboolean green =attack_detect(df,&START,&COUNT,&SUM_OF_FREQUENCY); - // if(parameters->g_last_image != 0){ - // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - // } - // if (freq > 50.300){ - // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_green_image); - // }else{ - // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image); - // } - // if(parameters->g_last_image != 0){ - // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - // } - // if (green){ - // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_green_image); - // }else{ - // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); - // } -// } - // } + float freq = to_intconvertor(df->dpmu[i]->freq)*0.001+50; + printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq); + gboolean green =attack_detect(df,&START,&COUNT,&SUM_OF_FREQUENCY); + if(parameters->g_last_image != 0){ + osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); + } + if (freq > 50.300){ + parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_green_image); + }else{ + parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image); + } + if(parameters->g_last_image != 0){ + // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); + } + if (green){ + parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_green_image); + }else{ + parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); + } + } + df = df->dnext; + i++; + } + } gtk_widget_queue_draw(GTK_WIDGET(parameters->util_map)); return TRUE; diff --git a/iPDC/src/utility_tools.c b/iPDC/src/utility_tools.c index f81cf78..bfd4db5 100644 --- a/iPDC/src/utility_tools.c +++ b/iPDC/src/utility_tools.c @@ -10,9 +10,6 @@ #define RED_IMAGE "./assets/red.png" #define GREEN_IMAGE "./assets/green.png" -int curr_measurement = 0; -int algorithm =0; -int dimmensions = 0; // void change_image(OsmGpsMap *map, float lat, float lon, OsmGpsMapImage *image) // { @@ -38,7 +35,7 @@ void on_frequency_clicked(GtkButton *but, gpointer udata) gtk_widget_set_sensitive(utdata->frequency, FALSE); gtk_widget_set_sensitive(utdata->attack_detection, TRUE); - // printf("Frequency\n"); + printf("Frequency\n"); } // on clicking the button attack_detection @@ -51,7 +48,7 @@ void on_attack_detection_clicked(GtkButton *but, gpointer udata) gtk_widget_show(utdata->algorithm); gtk_widget_show(utdata->dimmension); - // printf("Attack Detection\n"); + printf("Attack Detection\n"); } // on clicking the button voltage @@ -63,7 +60,7 @@ void on_voltage_clicked(GtkButton *but, gpointer udata) gtk_widget_set_sensitive(utdata->voltage, FALSE); gtk_widget_set_sensitive(utdata->frequency, TRUE); gtk_widget_set_sensitive(utdata->attack_detection, TRUE); - // printf("Voltage\n"); + printf("Voltage\n"); } void utility_tools(GtkButton *but, gpointer udata) @@ -114,6 +111,9 @@ void utility_tools(GtkButton *but, gpointer udata) g_last_image = osm_gps_map_image_add(utdata->util_map, 15.4589, 75.0078, g_red_image); g_last_image = osm_gps_map_image_add(utdata->util_map, 15.518597, 74.925584, g_green_image); + curr_measurement = 0; + algorithm = 0; + dimmension = 0; myParameters parameters = {utdata->util_map, g_red_image, g_green_image, g_last_image}; gpointer data = (gpointer)¶meters; guint pid = g_timeout_add(20, (GSourceFunc)update_images, data); From 593a3ec5a0d59c9a8e87e4ef2be6e79b9a2790bd Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Tue, 25 Oct 2022 21:48:11 +0530 Subject: [PATCH 05/13] graph drawing(unrefractored) --- iPDC/lib/liblivechart.so | Bin 0 -> 968640 bytes iPDC/lib/liblivechart.so.p/area.c | 409 ++++ iPDC/lib/liblivechart.so.p/axis.c | 1795 +++++++++++++++++ iPDC/lib/liblivechart.so.p/background.c | 559 +++++ iPDC/lib/liblivechart.so.p/bar.c | 329 +++ iPDC/lib/liblivechart.so.p/bezier.c | 534 +++++ iPDC/lib/liblivechart.so.p/bounds.c | 350 ++++ iPDC/lib/liblivechart.so.p/chart.c | 1103 ++++++++++ iPDC/lib/liblivechart.so.p/config.c | 1046 ++++++++++ iPDC/lib/liblivechart.so.p/drawable.c | 222 ++ iPDC/lib/liblivechart.so.p/font.c | 544 +++++ iPDC/lib/liblivechart.so.p/geometry.c | 213 ++ iPDC/lib/liblivechart.so.p/grid.c | 1286 ++++++++++++ iPDC/lib/liblivechart.so.p/intersections.c | 800 ++++++++ iPDC/lib/liblivechart.so.p/intersectors.c | 726 +++++++ iPDC/lib/liblivechart.so.p/labels.c | 485 +++++ iPDC/lib/liblivechart.so.p/legend.c | 1051 ++++++++++ .../liblivechart.so.p/liblivechart.so.symbols | 448 ++++ iPDC/lib/liblivechart.so.p/line.c | 375 ++++ iPDC/lib/liblivechart.so.p/line_area.c | 308 +++ iPDC/lib/liblivechart.so.p/max_bound_line.c | 249 +++ .../meson-generated_area.c.o | Bin 0 -> 45960 bytes .../meson-generated_axis.c.o | Bin 0 -> 94928 bytes .../meson-generated_background.c.o | Bin 0 -> 49744 bytes .../liblivechart.so.p/meson-generated_bar.c.o | Bin 0 -> 40360 bytes .../meson-generated_bezier.c.o | Bin 0 -> 25920 bytes .../meson-generated_bounds.c.o | Bin 0 -> 33768 bytes .../meson-generated_chart.c.o | Bin 0 -> 116264 bytes .../meson-generated_config.c.o | Bin 0 -> 69632 bytes .../meson-generated_drawable.c.o | Bin 0 -> 30872 bytes .../meson-generated_font.c.o | Bin 0 -> 44696 bytes .../meson-generated_geometry.c.o | Bin 0 -> 16704 bytes .../meson-generated_grid.c.o | Bin 0 -> 76296 bytes .../meson-generated_intersections.c.o | Bin 0 -> 59840 bytes .../meson-generated_intersectors.c.o | Bin 0 -> 61432 bytes .../meson-generated_labels.c.o | Bin 0 -> 41976 bytes .../meson-generated_legend.c.o | Bin 0 -> 75160 bytes .../meson-generated_line.c.o | Bin 0 -> 42080 bytes .../meson-generated_line_area.c.o | Bin 0 -> 42160 bytes .../meson-generated_max_bound_line.c.o | Bin 0 -> 37008 bytes .../meson-generated_min_bound_line.c.o | Bin 0 -> 37720 bytes .../meson-generated_path.c.o | Bin 0 -> 45152 bytes .../meson-generated_points.c.o | Bin 0 -> 59376 bytes .../meson-generated_region.c.o | Bin 0 -> 68856 bytes .../meson-generated_serie.c.o | Bin 0 -> 62784 bytes .../meson-generated_serie_renderer.c.o | Bin 0 -> 52968 bytes .../meson-generated_series.c.o | Bin 0 -> 47408 bytes .../meson-generated_smooth_line.c.o | Bin 0 -> 73952 bytes .../meson-generated_smooth_line_area.c.o | Bin 0 -> 59824 bytes .../meson-generated_static_static_chart.c.o | Bin 0 -> 97648 bytes .../meson-generated_static_static_grid.c.o | Bin 0 -> 76064 bytes .../meson-generated_static_static_line.c.o | Bin 0 -> 44872 bytes .../meson-generated_static_static_points.c.o | Bin 0 -> 61672 bytes .../meson-generated_static_static_serie.c.o | Bin 0 -> 61424 bytes ...generated_static_static_serie_renderer.c.o | Bin 0 -> 50464 bytes .../meson-generated_static_static_series.c.o | Bin 0 -> 44384 bytes .../meson-generated_static_static_values.c.o | Bin 0 -> 42736 bytes .../meson-generated_threshold_line.c.o | Bin 0 -> 40448 bytes .../meson-generated_utils.c.o | Bin 0 -> 18648 bytes .../meson-generated_values.c.o | Bin 0 -> 41536 bytes iPDC/lib/liblivechart.so.p/min_bound_line.c | 260 +++ iPDC/lib/liblivechart.so.p/path.c | 586 ++++++ iPDC/lib/liblivechart.so.p/points.c | 739 +++++++ iPDC/lib/liblivechart.so.p/region.c | 1158 +++++++++++ iPDC/lib/liblivechart.so.p/serie.c | 679 +++++++ iPDC/lib/liblivechart.so.p/serie_renderer.c | 549 +++++ iPDC/lib/liblivechart.so.p/series.c | 491 +++++ iPDC/lib/liblivechart.so.p/smooth_line.c | 887 ++++++++ iPDC/lib/liblivechart.so.p/smooth_line_area.c | 564 ++++++ .../liblivechart.so.p/static/static_chart.c | 672 ++++++ .../liblivechart.so.p/static/static_grid.c | 1270 ++++++++++++ .../liblivechart.so.p/static/static_line.c | 404 ++++ .../liblivechart.so.p/static/static_points.c | 821 ++++++++ .../liblivechart.so.p/static/static_serie.c | 619 ++++++ .../static/static_serie_renderer.c | 483 +++++ .../liblivechart.so.p/static/static_series.c | 415 ++++ .../liblivechart.so.p/static/static_values.c | 348 ++++ iPDC/lib/liblivechart.so.p/threshold_line.c | 303 +++ iPDC/lib/liblivechart.so.p/utils.c | 392 ++++ iPDC/lib/liblivechart.so.p/values.c | 341 ++++ iPDC/lib/liblivechart_static.a | Bin 0 -> 20652 bytes .../meson-generated_area.c.o | Bin 0 -> 45984 bytes .../meson-generated_axis.c.o | Bin 0 -> 94952 bytes .../meson-generated_background.c.o | Bin 0 -> 49760 bytes .../meson-generated_bar.c.o | Bin 0 -> 40376 bytes .../meson-generated_bezier.c.o | Bin 0 -> 25944 bytes .../meson-generated_bounds.c.o | Bin 0 -> 33784 bytes .../meson-generated_chart.c.o | Bin 0 -> 116280 bytes .../meson-generated_config.c.o | Bin 0 -> 69648 bytes .../meson-generated_drawable.c.o | Bin 0 -> 30888 bytes .../meson-generated_font.c.o | Bin 0 -> 44720 bytes .../meson-generated_geometry.c.o | Bin 0 -> 16728 bytes .../meson-generated_grid.c.o | Bin 0 -> 76320 bytes .../meson-generated_intersections.c.o | Bin 0 -> 59856 bytes .../meson-generated_intersectors.c.o | Bin 0 -> 61448 bytes .../meson-generated_labels.c.o | Bin 0 -> 42000 bytes .../meson-generated_legend.c.o | Bin 0 -> 75176 bytes .../meson-generated_line.c.o | Bin 0 -> 42096 bytes .../meson-generated_line_area.c.o | Bin 0 -> 42176 bytes .../meson-generated_max_bound_line.c.o | Bin 0 -> 37024 bytes .../meson-generated_min_bound_line.c.o | Bin 0 -> 37736 bytes .../meson-generated_path.c.o | Bin 0 -> 45168 bytes .../meson-generated_points.c.o | Bin 0 -> 59392 bytes .../meson-generated_region.c.o | Bin 0 -> 68872 bytes .../meson-generated_serie.c.o | Bin 0 -> 62808 bytes .../meson-generated_serie_renderer.c.o | Bin 0 -> 52984 bytes .../meson-generated_series.c.o | Bin 0 -> 47424 bytes .../meson-generated_smooth_line.c.o | Bin 0 -> 73968 bytes .../meson-generated_smooth_line_area.c.o | Bin 0 -> 59848 bytes .../meson-generated_static_static_chart.c.o | Bin 0 -> 97664 bytes .../meson-generated_static_static_grid.c.o | Bin 0 -> 76080 bytes .../meson-generated_static_static_line.c.o | Bin 0 -> 44896 bytes .../meson-generated_static_static_points.c.o | Bin 0 -> 61688 bytes .../meson-generated_static_static_serie.c.o | Bin 0 -> 61440 bytes ...generated_static_static_serie_renderer.c.o | Bin 0 -> 50488 bytes .../meson-generated_static_static_series.c.o | Bin 0 -> 44400 bytes .../meson-generated_static_static_values.c.o | Bin 0 -> 42752 bytes .../meson-generated_threshold_line.c.o | Bin 0 -> 40464 bytes .../meson-generated_utils.c.o | Bin 0 -> 18656 bytes .../meson-generated_values.c.o | Bin 0 -> 41560 bytes 120 files changed, 24813 insertions(+) create mode 100755 iPDC/lib/liblivechart.so create mode 100644 iPDC/lib/liblivechart.so.p/area.c create mode 100644 iPDC/lib/liblivechart.so.p/axis.c create mode 100644 iPDC/lib/liblivechart.so.p/background.c create mode 100644 iPDC/lib/liblivechart.so.p/bar.c create mode 100644 iPDC/lib/liblivechart.so.p/bezier.c create mode 100644 iPDC/lib/liblivechart.so.p/bounds.c create mode 100644 iPDC/lib/liblivechart.so.p/chart.c create mode 100644 iPDC/lib/liblivechart.so.p/config.c create mode 100644 iPDC/lib/liblivechart.so.p/drawable.c create mode 100644 iPDC/lib/liblivechart.so.p/font.c create mode 100644 iPDC/lib/liblivechart.so.p/geometry.c create mode 100644 iPDC/lib/liblivechart.so.p/grid.c create mode 100644 iPDC/lib/liblivechart.so.p/intersections.c create mode 100644 iPDC/lib/liblivechart.so.p/intersectors.c create mode 100644 iPDC/lib/liblivechart.so.p/labels.c create mode 100644 iPDC/lib/liblivechart.so.p/legend.c create mode 100644 iPDC/lib/liblivechart.so.p/liblivechart.so.symbols create mode 100644 iPDC/lib/liblivechart.so.p/line.c create mode 100644 iPDC/lib/liblivechart.so.p/line_area.c create mode 100644 iPDC/lib/liblivechart.so.p/max_bound_line.c create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_area.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_axis.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_background.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_bar.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_bezier.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_bounds.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_chart.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_config.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_drawable.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_font.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_geometry.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_grid.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_intersections.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_intersectors.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_labels.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_legend.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_line.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_line_area.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_max_bound_line.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_min_bound_line.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_path.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_points.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_region.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_serie.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_serie_renderer.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_series.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_smooth_line.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_smooth_line_area.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_static_static_chart.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_static_static_grid.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_static_static_line.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_static_static_points.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_static_static_serie.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_static_static_serie_renderer.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_static_static_series.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_static_static_values.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_threshold_line.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_utils.c.o create mode 100644 iPDC/lib/liblivechart.so.p/meson-generated_values.c.o create mode 100644 iPDC/lib/liblivechart.so.p/min_bound_line.c create mode 100644 iPDC/lib/liblivechart.so.p/path.c create mode 100644 iPDC/lib/liblivechart.so.p/points.c create mode 100644 iPDC/lib/liblivechart.so.p/region.c create mode 100644 iPDC/lib/liblivechart.so.p/serie.c create mode 100644 iPDC/lib/liblivechart.so.p/serie_renderer.c create mode 100644 iPDC/lib/liblivechart.so.p/series.c create mode 100644 iPDC/lib/liblivechart.so.p/smooth_line.c create mode 100644 iPDC/lib/liblivechart.so.p/smooth_line_area.c create mode 100644 iPDC/lib/liblivechart.so.p/static/static_chart.c create mode 100644 iPDC/lib/liblivechart.so.p/static/static_grid.c create mode 100644 iPDC/lib/liblivechart.so.p/static/static_line.c create mode 100644 iPDC/lib/liblivechart.so.p/static/static_points.c create mode 100644 iPDC/lib/liblivechart.so.p/static/static_serie.c create mode 100644 iPDC/lib/liblivechart.so.p/static/static_serie_renderer.c create mode 100644 iPDC/lib/liblivechart.so.p/static/static_series.c create mode 100644 iPDC/lib/liblivechart.so.p/static/static_values.c create mode 100644 iPDC/lib/liblivechart.so.p/threshold_line.c create mode 100644 iPDC/lib/liblivechart.so.p/utils.c create mode 100644 iPDC/lib/liblivechart.so.p/values.c create mode 100644 iPDC/lib/liblivechart_static.a create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_area.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_axis.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_background.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_bar.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_bezier.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_bounds.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_chart.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_config.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_drawable.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_font.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_geometry.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_grid.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_intersections.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_intersectors.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_labels.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_legend.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_line.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_line_area.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_max_bound_line.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_min_bound_line.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_path.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_points.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_region.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_serie.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_serie_renderer.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_series.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_smooth_line.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_smooth_line_area.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_chart.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_grid.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_line.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_points.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_serie.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_serie_renderer.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_series.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_values.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_threshold_line.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_utils.c.o create mode 100644 iPDC/lib/liblivechart_static.a.p/meson-generated_values.c.o diff --git a/iPDC/lib/liblivechart.so b/iPDC/lib/liblivechart.so new file mode 100755 index 0000000000000000000000000000000000000000..5d74094ffcee98fc638fc0354661463375080114 GIT binary patch literal 968640 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\iqqa}5DO_hCJh-ryA^RgG9 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%0AH7ITg^?IoFt4dqZDW_JO`u_kq5y>H~dU-3R)* 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�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 BYVQC5 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/area.c b/iPDC/lib/liblivechart.so.p/area.c new file mode 100644 index 0000000..0c0af32 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/area.c @@ -0,0 +1,409 @@ +/* area.c generated by valac 0.56.0, the Vala compiler + * generated from area.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_AREA_0_PROPERTY, + LIVE_CHART_AREA_VISIBLE_PROPERTY, + LIVE_CHART_AREA_NUM_PROPERTIES +}; +static GParamSpec* live_chart_area_properties[LIVE_CHART_AREA_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +struct _LiveChartAreaPrivate { + LiveChartPoints* points; + GdkRGBA color; + LiveChartBoundingBox bounding_box; + gdouble alpha; + gboolean _visible; +}; + +static gint LiveChartArea_private_offset; +static gpointer live_chart_area_parent_class = NULL; +static LiveChartDrawableIface * live_chart_area_live_chart_drawable_parent_iface = NULL; + +static void live_chart_area_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_area_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_area_finalize (GObject * obj); +static GType live_chart_area_get_type_once (void); +static void _vala_live_chart_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_area_get_instance_private (LiveChartArea* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartArea_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 17 "../src/area.vala" + return self ? g_object_ref (self) : NULL; +#line 61 "area.c" +} + +LiveChartArea* +live_chart_area_construct (GType object_type, + LiveChartPoints* points, + GdkRGBA* color, + gdouble alpha) +{ + LiveChartArea * self = NULL; + LiveChartPoints* _tmp0_; + GdkRGBA _tmp1_; +#line 16 "../src/area.vala" + g_return_val_if_fail (points != NULL, NULL); +#line 16 "../src/area.vala" + g_return_val_if_fail (color != NULL, NULL); +#line 16 "../src/area.vala" + self = (LiveChartArea*) g_object_new (object_type, NULL); +#line 17 "../src/area.vala" + _tmp0_ = _g_object_ref0 (points); +#line 17 "../src/area.vala" + _g_object_unref0 (self->priv->points); +#line 17 "../src/area.vala" + self->priv->points = _tmp0_; +#line 18 "../src/area.vala" + _tmp1_ = *color; +#line 18 "../src/area.vala" + self->priv->color = _tmp1_; +#line 19 "../src/area.vala" + self->priv->alpha = alpha; +#line 16 "../src/area.vala" + return self; +#line 93 "area.c" +} + +LiveChartArea* +live_chart_area_new (LiveChartPoints* points, + GdkRGBA* color, + gdouble alpha) +{ +#line 16 "../src/area.vala" + return live_chart_area_construct (LIVE_CHART_TYPE_AREA, points, color, alpha); +#line 103 "area.c" +} + +static void +live_chart_area_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartArea * self; + LiveChartPoints* _tmp0_; + gint _tmp1_; + gint _tmp2_; +#line 22 "../src/area.vala" + self = (LiveChartArea*) base; +#line 22 "../src/area.vala" + g_return_if_fail (ctx != NULL); +#line 22 "../src/area.vala" + g_return_if_fail (config != NULL); +#line 23 "../src/area.vala" + _tmp0_ = self->priv->points; +#line 23 "../src/area.vala" + _tmp1_ = live_chart_points_get_size (_tmp0_); +#line 23 "../src/area.vala" + _tmp2_ = _tmp1_; +#line 23 "../src/area.vala" + if (_tmp2_ > 0) { +#line 129 "area.c" + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp3_ = {0}; + LiveChartPoint first_point = {0}; + LiveChartPoints* _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint last_point = {0}; + LiveChartPoints* _tmp6_; + LiveChartPoint _tmp7_ = {0}; + GdkRGBA _tmp8_; + GdkRGBA _tmp9_; + GdkRGBA _tmp10_; + LiveChartPoint _tmp11_; + LiveChartPoint _tmp12_; + LiveChartPoint _tmp13_; + LiveChartBoundaries _tmp14_; + LiveChartBoundary _tmp15_; + LiveChartPoint _tmp16_; + LiveChartBoundaries _tmp17_; + LiveChartBoundary _tmp18_; + LiveChartPoint _tmp19_; + LiveChartPoint _tmp20_; +#line 24 "../src/area.vala" + live_chart_config_boundaries (config, &_tmp3_); +#line 24 "../src/area.vala" + boundaries = _tmp3_; +#line 25 "../src/area.vala" + _tmp4_ = self->priv->points; +#line 25 "../src/area.vala" + live_chart_points_first (_tmp4_, &_tmp5_); +#line 25 "../src/area.vala" + first_point = _tmp5_; +#line 26 "../src/area.vala" + _tmp6_ = self->priv->points; +#line 26 "../src/area.vala" + live_chart_points_last (_tmp6_, &_tmp7_); +#line 26 "../src/area.vala" + last_point = _tmp7_; +#line 28 "../src/area.vala" + _tmp8_ = self->priv->color; +#line 28 "../src/area.vala" + _tmp9_ = self->priv->color; +#line 28 "../src/area.vala" + _tmp10_ = self->priv->color; +#line 28 "../src/area.vala" + cairo_set_source_rgba (ctx, _tmp8_.red, _tmp9_.green, _tmp10_.blue, self->priv->alpha); +#line 29 "../src/area.vala" + _tmp11_ = last_point; +#line 29 "../src/area.vala" + _tmp12_ = last_point; +#line 29 "../src/area.vala" + cairo_line_to (ctx, _tmp11_.x, _tmp12_.y); +#line 30 "../src/area.vala" + _tmp13_ = last_point; +#line 30 "../src/area.vala" + _tmp14_ = boundaries; +#line 30 "../src/area.vala" + _tmp15_ = _tmp14_.y; +#line 30 "../src/area.vala" + cairo_line_to (ctx, _tmp13_.x, (gdouble) _tmp15_.max); +#line 31 "../src/area.vala" + _tmp16_ = first_point; +#line 31 "../src/area.vala" + _tmp17_ = boundaries; +#line 31 "../src/area.vala" + _tmp18_ = _tmp17_.y; +#line 31 "../src/area.vala" + cairo_line_to (ctx, _tmp16_.x, (gdouble) _tmp18_.max); +#line 32 "../src/area.vala" + _tmp19_ = first_point; +#line 32 "../src/area.vala" + _tmp20_ = first_point; +#line 32 "../src/area.vala" + cairo_line_to (ctx, _tmp19_.x, _tmp20_.y); +#line 33 "../src/area.vala" + cairo_close_path (ctx); +#line 205 "area.c" + } +} + +static void +live_chart_area_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartArea * self; + LiveChartBoundingBox _tmp0_; +#line 37 "../src/area.vala" + self = (LiveChartArea*) base; +#line 38 "../src/area.vala" + _tmp0_ = self->priv->bounding_box; +#line 38 "../src/area.vala" + *result = _tmp0_; +#line 38 "../src/area.vala" + return; +#line 223 "area.c" +} + +static gboolean +live_chart_area_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartArea* self; +#line 14 "../src/area.vala" + self = (LiveChartArea*) base; +#line 14 "../src/area.vala" + result = self->priv->_visible; +#line 14 "../src/area.vala" + return result; +#line 237 "area.c" +} + +static void +live_chart_area_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartArea* self; + gboolean old_value; +#line 14 "../src/area.vala" + self = (LiveChartArea*) base; +#line 14 "../src/area.vala" + old_value = live_chart_area_real_get_visible (base); +#line 14 "../src/area.vala" + if (old_value != value) { +#line 14 "../src/area.vala" + self->priv->_visible = value; +#line 14 "../src/area.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_area_properties[LIVE_CHART_AREA_VISIBLE_PROPERTY]); +#line 256 "area.c" + } +} + +static void +live_chart_area_class_init (LiveChartAreaClass * klass, + gpointer klass_data) +{ +#line 4 "../src/area.vala" + live_chart_area_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/area.vala" + g_type_class_adjust_private_offset (klass, &LiveChartArea_private_offset); +#line 4 "../src/area.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_area_get_property; +#line 4 "../src/area.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_area_set_property; +#line 4 "../src/area.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_area_finalize; +#line 4 "../src/area.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_AREA_VISIBLE_PROPERTY, live_chart_area_properties[LIVE_CHART_AREA_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 276 "area.c" +} + +static void +live_chart_area_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 4 "../src/area.vala" + live_chart_area_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 4 "../src/area.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_area_real_draw; +#line 4 "../src/area.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_area_real_get_bounding_box; +#line 4 "../src/area.vala" + iface->get_visible = live_chart_area_real_get_visible; +#line 4 "../src/area.vala" + iface->set_visible = live_chart_area_real_set_visible; +#line 293 "area.c" +} + +static void +live_chart_area_instance_init (LiveChartArea * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; +#line 4 "../src/area.vala" + self->priv = live_chart_area_get_instance_private (self); +#line 7 "../src/area.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 7 "../src/area.vala" + _tmp0_.x = (gdouble) 0; +#line 7 "../src/area.vala" + _tmp0_.y = (gdouble) 0; +#line 7 "../src/area.vala" + _tmp0_.width = (gdouble) 0; +#line 7 "../src/area.vala" + _tmp0_.height = (gdouble) 0; +#line 7 "../src/area.vala" + self->priv->bounding_box = _tmp0_; +#line 13 "../src/area.vala" + self->priv->alpha = 0.3; +#line 14 "../src/area.vala" + self->priv->_visible = TRUE; +#line 319 "area.c" +} + +static void +live_chart_area_finalize (GObject * obj) +{ + LiveChartArea * self; +#line 4 "../src/area.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_AREA, LiveChartArea); +#line 5 "../src/area.vala" + _g_object_unref0 (self->priv->points); +#line 4 "../src/area.vala" + G_OBJECT_CLASS (live_chart_area_parent_class)->finalize (obj); +#line 332 "area.c" +} + +static GType +live_chart_area_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartAreaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_area_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartArea), 0, (GInstanceInitFunc) live_chart_area_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_area_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_area_type_id; + live_chart_area_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartArea", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_area_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartArea_private_offset = g_type_add_instance_private (live_chart_area_type_id, sizeof (LiveChartAreaPrivate)); + return live_chart_area_type_id; +} + +GType +live_chart_area_get_type (void) +{ + static volatile gsize live_chart_area_type_id__once = 0; + if (g_once_init_enter (&live_chart_area_type_id__once)) { + GType live_chart_area_type_id; + live_chart_area_type_id = live_chart_area_get_type_once (); + g_once_init_leave (&live_chart_area_type_id__once, live_chart_area_type_id); + } + return live_chart_area_type_id__once; +} + +static void +_vala_live_chart_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_AREA, LiveChartArea); +#line 4 "../src/area.vala" + switch (property_id) { +#line 4 "../src/area.vala" + case LIVE_CHART_AREA_VISIBLE_PROPERTY: +#line 4 "../src/area.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 4 "../src/area.vala" + break; +#line 375 "area.c" + default: +#line 4 "../src/area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/area.vala" + break; +#line 381 "area.c" + } +} + +static void +_vala_live_chart_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_AREA, LiveChartArea); +#line 4 "../src/area.vala" + switch (property_id) { +#line 4 "../src/area.vala" + case LIVE_CHART_AREA_VISIBLE_PROPERTY: +#line 4 "../src/area.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 4 "../src/area.vala" + break; +#line 401 "area.c" + default: +#line 4 "../src/area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/area.vala" + break; +#line 407 "area.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/axis.c b/iPDC/lib/liblivechart.so.p/axis.c new file mode 100644 index 0000000..017e9a7 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/axis.c @@ -0,0 +1,1795 @@ +/* axis.c generated by valac 0.56.0, the Vala compiler + * generated from axis.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define _live_chart_labels_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_labels_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +typedef struct _LiveChartParamSpecXAxis LiveChartParamSpecXAxis; +#define _g_free0(var) (var = (g_free (var), NULL)) +typedef struct _LiveChartParamSpecYAxis LiveChartParamSpecYAxis; + +struct _LiveChartXAxisPrivate { + gfloat _tick_interval; + gfloat _tick_length; + gboolean _visible; +}; + +struct _LiveChartParamSpecXAxis { + GParamSpec parent_instance; +}; + +struct _LiveChartYAxisPrivate { + LiveChartBounds* bounds; + gdouble ratio; + gfloat _ratio_threshold; + gfloat _tick_interval; + gboolean _visible; + gfloat _tick_length; + gchar* _unit; +}; + +struct _LiveChartParamSpecYAxis { + GParamSpec parent_instance; +}; + +static gint LiveChartXAxis_private_offset; +static gpointer live_chart_xaxis_parent_class = NULL; +static gint LiveChartYAxis_private_offset; +static gpointer live_chart_yaxis_parent_class = NULL; + +static void live_chart_xaxis_finalize (LiveChartXAxis * obj); +static GType live_chart_xaxis_get_type_once (void); +static gfloat* _float_dup (gfloat* self); +static void __lambda5_ (LiveChartYAxis* self); +static void ___lambda5__g_object_notify (GObject* _sender, + GParamSpec* pspec, + gpointer self); +static void live_chart_yaxis_finalize (LiveChartYAxis * obj); +static GType live_chart_yaxis_get_type_once (void); + +static inline gpointer +live_chart_xaxis_get_instance_private (LiveChartXAxis* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartXAxis_private_offset); +} + +LiveChartXAxis* +live_chart_xaxis_construct (GType object_type) +{ + LiveChartXAxis* self = NULL; + LiveChartPath* _tmp0_; + GdkRGBA _tmp1_ = {0}; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_ = {0}; +#line 12 "../src/axis.vala" + self = (LiveChartXAxis*) g_type_create_instance (object_type); +#line 13 "../src/axis.vala" + _tmp0_ = self->axis; +#line 13 "../src/axis.vala" + _tmp1_.red = 0.5; +#line 13 "../src/axis.vala" + _tmp1_.green = 0.5; +#line 13 "../src/axis.vala" + _tmp1_.blue = 0.5; +#line 13 "../src/axis.vala" + _tmp1_.alpha = 0.5; +#line 13 "../src/axis.vala" + live_chart_path_set_color (_tmp0_, &_tmp1_); +#line 14 "../src/axis.vala" + _tmp2_ = self->lines; +#line 14 "../src/axis.vala" + _tmp3_.red = 0.5; +#line 14 "../src/axis.vala" + _tmp3_.green = 0.5; +#line 14 "../src/axis.vala" + _tmp3_.blue = 0.5; +#line 14 "../src/axis.vala" + _tmp3_.alpha = 0.2; +#line 14 "../src/axis.vala" + live_chart_path_set_color (_tmp2_, &_tmp3_); +#line 12 "../src/axis.vala" + return self; +#line 103 "axis.c" +} + +LiveChartXAxis* +live_chart_xaxis_new (void) +{ +#line 12 "../src/axis.vala" + return live_chart_xaxis_construct (LIVE_CHART_TYPE_XAXIS); +#line 111 "axis.c" +} + +gdouble +live_chart_xaxis_get_ratio (LiveChartXAxis* self) +{ + gfloat _tmp0_; + gfloat _tmp1_; + gdouble result; +#line 17 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 18 "../src/axis.vala" + _tmp0_ = self->priv->_tick_length; +#line 18 "../src/axis.vala" + _tmp1_ = self->priv->_tick_interval; +#line 18 "../src/axis.vala" + result = (gdouble) (_tmp0_ / _tmp1_); +#line 18 "../src/axis.vala" + return result; +#line 130 "axis.c" +} + +gfloat +live_chart_xaxis_get_tick_interval (LiveChartXAxis* self) +{ + gfloat result; +#line 5 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 5 "../src/axis.vala" + result = self->priv->_tick_interval; +#line 5 "../src/axis.vala" + return result; +#line 143 "axis.c" +} + +void +live_chart_xaxis_set_tick_interval (LiveChartXAxis* self, + gfloat value) +{ +#line 5 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 5 "../src/axis.vala" + self->priv->_tick_interval = value; +#line 154 "axis.c" +} + +gfloat +live_chart_xaxis_get_tick_length (LiveChartXAxis* self) +{ + gfloat result; +#line 6 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 6 "../src/axis.vala" + result = self->priv->_tick_length; +#line 6 "../src/axis.vala" + return result; +#line 167 "axis.c" +} + +void +live_chart_xaxis_set_tick_length (LiveChartXAxis* self, + gfloat value) +{ +#line 6 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/axis.vala" + self->priv->_tick_length = value; +#line 178 "axis.c" +} + +gboolean +live_chart_xaxis_get_visible (LiveChartXAxis* self) +{ + gboolean result; +#line 7 "../src/axis.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 7 "../src/axis.vala" + result = self->priv->_visible; +#line 7 "../src/axis.vala" + return result; +#line 191 "axis.c" +} + +void +live_chart_xaxis_set_visible (LiveChartXAxis* self, + gboolean value) +{ +#line 7 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/axis.vala" + self->priv->_visible = value; +#line 202 "axis.c" +} + +static void +live_chart_value_xaxis_init (GValue* value) +{ +#line 3 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 210 "axis.c" +} + +static void +live_chart_value_xaxis_free_value (GValue* value) +{ +#line 3 "../src/axis.vala" + if (value->data[0].v_pointer) { +#line 3 "../src/axis.vala" + live_chart_xaxis_unref (value->data[0].v_pointer); +#line 220 "axis.c" + } +} + +static void +live_chart_value_xaxis_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 3 "../src/axis.vala" + if (src_value->data[0].v_pointer) { +#line 3 "../src/axis.vala" + dest_value->data[0].v_pointer = live_chart_xaxis_ref (src_value->data[0].v_pointer); +#line 232 "axis.c" + } else { +#line 3 "../src/axis.vala" + dest_value->data[0].v_pointer = NULL; +#line 236 "axis.c" + } +} + +static gpointer +live_chart_value_xaxis_peek_pointer (const GValue* value) +{ +#line 3 "../src/axis.vala" + return value->data[0].v_pointer; +#line 245 "axis.c" +} + +static gchar* +live_chart_value_xaxis_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 3 "../src/axis.vala" + if (collect_values[0].v_pointer) { +#line 256 "axis.c" + LiveChartXAxis * object; + object = collect_values[0].v_pointer; +#line 3 "../src/axis.vala" + if (object->parent_instance.g_class == NULL) { +#line 3 "../src/axis.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 263 "axis.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 3 "../src/axis.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 267 "axis.c" + } +#line 3 "../src/axis.vala" + value->data[0].v_pointer = live_chart_xaxis_ref (object); +#line 271 "axis.c" + } else { +#line 3 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 275 "axis.c" + } +#line 3 "../src/axis.vala" + return NULL; +#line 279 "axis.c" +} + +static gchar* +live_chart_value_xaxis_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartXAxis ** object_p; + object_p = collect_values[0].v_pointer; +#line 3 "../src/axis.vala" + if (!object_p) { +#line 3 "../src/axis.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 294 "axis.c" + } +#line 3 "../src/axis.vala" + if (!value->data[0].v_pointer) { +#line 3 "../src/axis.vala" + *object_p = NULL; +#line 300 "axis.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 3 "../src/axis.vala" + *object_p = value->data[0].v_pointer; +#line 304 "axis.c" + } else { +#line 3 "../src/axis.vala" + *object_p = live_chart_xaxis_ref (value->data[0].v_pointer); +#line 308 "axis.c" + } +#line 3 "../src/axis.vala" + return NULL; +#line 312 "axis.c" +} + +GParamSpec* +live_chart_param_spec_xaxis (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecXAxis* spec; +#line 3 "../src/axis.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_XAXIS), NULL); +#line 3 "../src/axis.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 3 "../src/axis.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 3 "../src/axis.vala" + return G_PARAM_SPEC (spec); +#line 331 "axis.c" +} + +gpointer +live_chart_value_get_xaxis (const GValue* value) +{ +#line 3 "../src/axis.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_XAXIS), NULL); +#line 3 "../src/axis.vala" + return value->data[0].v_pointer; +#line 341 "axis.c" +} + +void +live_chart_value_set_xaxis (GValue* value, + gpointer v_object) +{ + LiveChartXAxis * old; +#line 3 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_XAXIS)); +#line 3 "../src/axis.vala" + old = value->data[0].v_pointer; +#line 3 "../src/axis.vala" + if (v_object) { +#line 3 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_XAXIS)); +#line 3 "../src/axis.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 3 "../src/axis.vala" + value->data[0].v_pointer = v_object; +#line 3 "../src/axis.vala" + live_chart_xaxis_ref (value->data[0].v_pointer); +#line 363 "axis.c" + } else { +#line 3 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 367 "axis.c" + } +#line 3 "../src/axis.vala" + if (old) { +#line 3 "../src/axis.vala" + live_chart_xaxis_unref (old); +#line 373 "axis.c" + } +} + +void +live_chart_value_take_xaxis (GValue* value, + gpointer v_object) +{ + LiveChartXAxis * old; +#line 3 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_XAXIS)); +#line 3 "../src/axis.vala" + old = value->data[0].v_pointer; +#line 3 "../src/axis.vala" + if (v_object) { +#line 3 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_XAXIS)); +#line 3 "../src/axis.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 3 "../src/axis.vala" + value->data[0].v_pointer = v_object; +#line 394 "axis.c" + } else { +#line 3 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 398 "axis.c" + } +#line 3 "../src/axis.vala" + if (old) { +#line 3 "../src/axis.vala" + live_chart_xaxis_unref (old); +#line 404 "axis.c" + } +} + +static void +live_chart_xaxis_class_init (LiveChartXAxisClass * klass, + gpointer klass_data) +{ +#line 3 "../src/axis.vala" + live_chart_xaxis_parent_class = g_type_class_peek_parent (klass); +#line 3 "../src/axis.vala" + ((LiveChartXAxisClass *) klass)->finalize = live_chart_xaxis_finalize; +#line 3 "../src/axis.vala" + g_type_class_adjust_private_offset (klass, &LiveChartXAxis_private_offset); +#line 418 "axis.c" +} + +static void +live_chart_xaxis_instance_init (LiveChartXAxis * self, + gpointer klass) +{ + LiveChartLabels* _tmp0_; + GdkRGBA _tmp1_ = {0}; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_ = {0}; + LiveChartPath* _tmp4_; +#line 3 "../src/axis.vala" + self->priv = live_chart_xaxis_get_instance_private (self); +#line 5 "../src/axis.vala" + self->priv->_tick_interval = (gfloat) 10; +#line 6 "../src/axis.vala" + self->priv->_tick_length = (gfloat) 60; +#line 7 "../src/axis.vala" + self->priv->_visible = TRUE; +#line 8 "../src/axis.vala" + _tmp0_ = live_chart_labels_new (); +#line 8 "../src/axis.vala" + self->labels = _tmp0_; +#line 9 "../src/axis.vala" + _tmp1_.red = 1.0; +#line 9 "../src/axis.vala" + _tmp1_.green = 1.0; +#line 9 "../src/axis.vala" + _tmp1_.blue = 1.0; +#line 9 "../src/axis.vala" + _tmp1_.alpha = 1.0; +#line 9 "../src/axis.vala" + _tmp2_ = live_chart_path_new (0.5, &_tmp1_, TRUE, NULL); +#line 9 "../src/axis.vala" + self->axis = _tmp2_; +#line 10 "../src/axis.vala" + _tmp3_.red = 1.0; +#line 10 "../src/axis.vala" + _tmp3_.green = 1.0; +#line 10 "../src/axis.vala" + _tmp3_.blue = 1.0; +#line 10 "../src/axis.vala" + _tmp3_.alpha = 1.0; +#line 10 "../src/axis.vala" + _tmp4_ = live_chart_path_new (0.5, &_tmp3_, TRUE, NULL); +#line 10 "../src/axis.vala" + self->lines = _tmp4_; +#line 3 "../src/axis.vala" + self->ref_count = 1; +#line 468 "axis.c" +} + +static void +live_chart_xaxis_finalize (LiveChartXAxis * obj) +{ + LiveChartXAxis * self; +#line 3 "../src/axis.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_XAXIS, LiveChartXAxis); +#line 3 "../src/axis.vala" + g_signal_handlers_destroy (self); +#line 8 "../src/axis.vala" + _live_chart_labels_unref0 (self->labels); +#line 9 "../src/axis.vala" + _g_object_unref0 (self->axis); +#line 10 "../src/axis.vala" + _g_object_unref0 (self->lines); +#line 485 "axis.c" +} + +static GType +live_chart_xaxis_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_xaxis_init, live_chart_value_xaxis_free_value, live_chart_value_xaxis_copy_value, live_chart_value_xaxis_peek_pointer, "p", live_chart_value_xaxis_collect_value, "p", live_chart_value_xaxis_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartXAxisClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_xaxis_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartXAxis), 0, (GInstanceInitFunc) live_chart_xaxis_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_xaxis_type_id; + live_chart_xaxis_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartXAxis", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartXAxis_private_offset = g_type_add_instance_private (live_chart_xaxis_type_id, sizeof (LiveChartXAxisPrivate)); + return live_chart_xaxis_type_id; +} + +GType +live_chart_xaxis_get_type (void) +{ + static volatile gsize live_chart_xaxis_type_id__once = 0; + if (g_once_init_enter (&live_chart_xaxis_type_id__once)) { + GType live_chart_xaxis_type_id; + live_chart_xaxis_type_id = live_chart_xaxis_get_type_once (); + g_once_init_leave (&live_chart_xaxis_type_id__once, live_chart_xaxis_type_id); + } + return live_chart_xaxis_type_id__once; +} + +gpointer +live_chart_xaxis_ref (gpointer instance) +{ + LiveChartXAxis * self; + self = instance; +#line 3 "../src/axis.vala" + g_atomic_int_inc (&self->ref_count); +#line 3 "../src/axis.vala" + return instance; +#line 521 "axis.c" +} + +void +live_chart_xaxis_unref (gpointer instance) +{ + LiveChartXAxis * self; + self = instance; +#line 3 "../src/axis.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 3 "../src/axis.vala" + LIVE_CHART_XAXIS_GET_CLASS (self)->finalize (self); +#line 3 "../src/axis.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 535 "axis.c" + } +} + +static gfloat* +_float_dup (gfloat* self) +{ + gfloat* dup; +#line 25 "../src/axis.vala" + dup = g_new0 (gfloat, 1); +#line 25 "../src/axis.vala" + memcpy (dup, self, sizeof (gfloat)); +#line 25 "../src/axis.vala" + return dup; +#line 549 "axis.c" +} + +void +live_chart_ticks_init (LiveChartTicks *self) +{ + GeeArrayList* _tmp0_; +#line 24 "../src/axis.vala" + memset (self, 0, sizeof (LiveChartTicks)); +#line 25 "../src/axis.vala" + _tmp0_ = gee_array_list_new (G_TYPE_FLOAT, (GBoxedCopyFunc) _float_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 25 "../src/axis.vala" + _g_object_unref0 ((*self).values); +#line 25 "../src/axis.vala" + (*self).values = (GeeList*) _tmp0_; +#line 564 "axis.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 22 "../src/axis.vala" + return self ? g_object_ref (self) : NULL; +#line 572 "axis.c" +} + +void +live_chart_ticks_copy (const LiveChartTicks* self, + LiveChartTicks* dest) +{ + GeeList* _tmp0_; + GeeList* _tmp1_; +#line 22 "../src/axis.vala" + _tmp0_ = (*self).values; +#line 22 "../src/axis.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 22 "../src/axis.vala" + _g_object_unref0 ((*dest).values); +#line 22 "../src/axis.vala" + (*dest).values = _tmp1_; +#line 589 "axis.c" +} + +void +live_chart_ticks_destroy (LiveChartTicks* self) +{ +#line 23 "../src/axis.vala" + _g_object_unref0 ((*self).values); +#line 597 "axis.c" +} + +LiveChartTicks* +live_chart_ticks_dup (const LiveChartTicks* self) +{ + LiveChartTicks* dup; +#line 22 "../src/axis.vala" + dup = g_new0 (LiveChartTicks, 1); +#line 22 "../src/axis.vala" + live_chart_ticks_copy (self, dup); +#line 22 "../src/axis.vala" + return dup; +#line 610 "axis.c" +} + +void +live_chart_ticks_free (LiveChartTicks* self) +{ +#line 22 "../src/axis.vala" + live_chart_ticks_destroy (self); +#line 22 "../src/axis.vala" + g_free (self); +#line 620 "axis.c" +} + +static GType +live_chart_ticks_get_type_once (void) +{ + GType live_chart_ticks_type_id; + live_chart_ticks_type_id = g_boxed_type_register_static ("LiveChartTicks", (GBoxedCopyFunc) live_chart_ticks_dup, (GBoxedFreeFunc) live_chart_ticks_free); + return live_chart_ticks_type_id; +} + +GType +live_chart_ticks_get_type (void) +{ + static volatile gsize live_chart_ticks_type_id__once = 0; + if (g_once_init_enter (&live_chart_ticks_type_id__once)) { + GType live_chart_ticks_type_id; + live_chart_ticks_type_id = live_chart_ticks_get_type_once (); + g_once_init_leave (&live_chart_ticks_type_id__once, live_chart_ticks_type_id); + } + return live_chart_ticks_type_id__once; +} + +static inline gpointer +live_chart_yaxis_get_instance_private (LiveChartYAxis* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartYAxis_private_offset); +} + +static void +__lambda5_ (LiveChartYAxis* self) +{ + LiveChartTicks _tmp0_ = {0}; +#line 57 "../src/axis.vala" + live_chart_yaxis_get_ticks (self, &_tmp0_); +#line 57 "../src/axis.vala" + live_chart_ticks_destroy (&self->ticks); +#line 57 "../src/axis.vala" + self->ticks = _tmp0_; +#line 659 "axis.c" +} + +static void +___lambda5__g_object_notify (GObject* _sender, + GParamSpec* pspec, + gpointer self) +{ +#line 56 "../src/axis.vala" + __lambda5_ ((LiveChartYAxis*) self); +#line 669 "axis.c" +} + +LiveChartYAxis* +live_chart_yaxis_construct (GType object_type, + const gchar* unit) +{ + LiveChartYAxis* self = NULL; + LiveChartTicks _tmp0_ = {0}; + LiveChartPath* _tmp1_; + GdkRGBA _tmp2_ = {0}; + LiveChartPath* _tmp3_; + GdkRGBA _tmp4_ = {0}; + LiveChartBounds* _tmp5_; +#line 51 "../src/axis.vala" + g_return_val_if_fail (unit != NULL, NULL); +#line 51 "../src/axis.vala" + self = (LiveChartYAxis*) g_type_create_instance (object_type); +#line 52 "../src/axis.vala" + live_chart_yaxis_set_unit (self, unit); +#line 53 "../src/axis.vala" + live_chart_yaxis_get_ticks (self, &_tmp0_); +#line 53 "../src/axis.vala" + live_chart_ticks_destroy (&self->ticks); +#line 53 "../src/axis.vala" + self->ticks = _tmp0_; +#line 54 "../src/axis.vala" + _tmp1_ = self->axis; +#line 54 "../src/axis.vala" + _tmp2_.red = 0.5; +#line 54 "../src/axis.vala" + _tmp2_.green = 0.5; +#line 54 "../src/axis.vala" + _tmp2_.blue = 0.5; +#line 54 "../src/axis.vala" + _tmp2_.alpha = 0.5; +#line 54 "../src/axis.vala" + live_chart_path_set_color (_tmp1_, &_tmp2_); +#line 55 "../src/axis.vala" + _tmp3_ = self->lines; +#line 55 "../src/axis.vala" + _tmp4_.red = 0.5; +#line 55 "../src/axis.vala" + _tmp4_.green = 0.5; +#line 55 "../src/axis.vala" + _tmp4_.blue = 0.5; +#line 55 "../src/axis.vala" + _tmp4_.alpha = 0.2; +#line 55 "../src/axis.vala" + live_chart_path_set_color (_tmp3_, &_tmp4_); +#line 56 "../src/axis.vala" + _tmp5_ = self->priv->bounds; +#line 56 "../src/axis.vala" + g_signal_connect ((GObject*) _tmp5_, "notify::upper", (GCallback) ___lambda5__g_object_notify, self); +#line 51 "../src/axis.vala" + return self; +#line 725 "axis.c" +} + +LiveChartYAxis* +live_chart_yaxis_new (const gchar* unit) +{ +#line 51 "../src/axis.vala" + return live_chart_yaxis_construct (LIVE_CHART_TYPE_YAXIS, unit); +#line 733 "axis.c" +} + +gdouble +live_chart_yaxis_get_ratio (LiveChartYAxis* self) +{ + gdouble result; +#line 61 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 62 "../src/axis.vala" + result = self->priv->ratio; +#line 62 "../src/axis.vala" + return result; +#line 746 "axis.c" +} + +LiveChartBounds* +live_chart_yaxis_get_bounds (LiveChartYAxis* self) +{ + LiveChartBounds* _tmp0_; + gdouble _tmp1_; + gdouble _tmp2_; + LiveChartBounds* _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + LiveChartBounds* _tmp6_; + LiveChartBounds* result; +#line 65 "../src/axis.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 66 "../src/axis.vala" + _tmp0_ = self->priv->bounds; +#line 66 "../src/axis.vala" + _tmp1_ = live_chart_bounds_get_lower (_tmp0_); +#line 66 "../src/axis.vala" + _tmp2_ = _tmp1_; +#line 66 "../src/axis.vala" + _tmp3_ = self->priv->bounds; +#line 66 "../src/axis.vala" + _tmp4_ = live_chart_bounds_get_upper (_tmp3_); +#line 66 "../src/axis.vala" + _tmp5_ = _tmp4_; +#line 66 "../src/axis.vala" + _tmp6_ = live_chart_bounds_new (_tmp2_, _tmp5_); +#line 66 "../src/axis.vala" + result = _tmp6_; +#line 66 "../src/axis.vala" + return result; +#line 780 "axis.c" +} + +gboolean +live_chart_yaxis_update_bounds (LiveChartYAxis* self, + gdouble value) +{ + LiveChartBounds* _tmp0_; + gboolean result; +#line 69 "../src/axis.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 70 "../src/axis.vala" + _tmp0_ = self->priv->bounds; +#line 70 "../src/axis.vala" + result = live_chart_bounds_update (_tmp0_, value); +#line 70 "../src/axis.vala" + return result; +#line 797 "axis.c" +} + +void +live_chart_yaxis_update (LiveChartYAxis* self, + gint area_height) +{ + gboolean _tmp0_ = FALSE; + LiveChartBounds* _tmp1_; + gdouble* _tmp7_; +#line 73 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 74 "../src/axis.vala" + _tmp1_ = self->priv->bounds; +#line 74 "../src/axis.vala" + if (live_chart_bounds_has_upper (_tmp1_)) { +#line 813 "axis.c" + gdouble* _tmp2_; +#line 74 "../src/axis.vala" + _tmp2_ = self->fixed_max; +#line 74 "../src/axis.vala" + _tmp0_ = _tmp2_ == NULL; +#line 819 "axis.c" + } else { +#line 74 "../src/axis.vala" + _tmp0_ = FALSE; +#line 823 "axis.c" + } +#line 74 "../src/axis.vala" + if (_tmp0_) { +#line 827 "axis.c" + LiveChartBounds* _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + gfloat _tmp6_; +#line 75 "../src/axis.vala" + _tmp3_ = self->priv->bounds; +#line 75 "../src/axis.vala" + _tmp4_ = live_chart_bounds_get_upper (_tmp3_); +#line 75 "../src/axis.vala" + _tmp5_ = _tmp4_; +#line 75 "../src/axis.vala" + _tmp6_ = self->priv->_ratio_threshold; +#line 75 "../src/axis.vala" + self->priv->ratio = ((gdouble) area_height) / (((gdouble) _tmp5_) * _tmp6_); +#line 842 "axis.c" + } +#line 78 "../src/axis.vala" + _tmp7_ = self->fixed_max; +#line 78 "../src/axis.vala" + if (_tmp7_ != NULL) { +#line 848 "axis.c" + gdouble* _tmp8_; +#line 79 "../src/axis.vala" + _tmp8_ = self->fixed_max; +#line 79 "../src/axis.vala" + self->priv->ratio = ((gdouble) area_height) / ((gdouble) (*_tmp8_)); +#line 854 "axis.c" + } +} + +gchar* +live_chart_yaxis_get_max_displayed_value (LiveChartYAxis* self) +{ + LiveChartTicks _tmp0_; + GeeList* _tmp1_; + gint _tmp2_; + gint _tmp3_; + const gchar* _tmp32_; + gchar* _tmp33_; + gchar* result; +#line 83 "../src/axis.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 84 "../src/axis.vala" + _tmp0_ = self->ticks; +#line 84 "../src/axis.vala" + _tmp1_ = _tmp0_.values; +#line 84 "../src/axis.vala" + _tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_); +#line 84 "../src/axis.vala" + _tmp3_ = _tmp2_; +#line 84 "../src/axis.vala" + if (_tmp3_ > 0) { +#line 880 "axis.c" + gchar* max_displayed_value = NULL; + const gchar* _tmp4_; + LiveChartTicks _tmp5_; + GeeList* _tmp6_; + gpointer _tmp7_; + gfloat* _tmp8_; + gchar* _tmp9_; + gchar* _tmp10_; +#line 85 "../src/axis.vala" + _tmp4_ = self->priv->_unit; +#line 85 "../src/axis.vala" + _tmp5_ = self->ticks; +#line 85 "../src/axis.vala" + _tmp6_ = _tmp5_.values; +#line 85 "../src/axis.vala" + _tmp7_ = gee_list_first (_tmp6_); +#line 85 "../src/axis.vala" + _tmp8_ = (gfloat*) _tmp7_; +#line 85 "../src/axis.vala" + _tmp9_ = live_chart_format_for_y_axis (_tmp4_, *_tmp8_); +#line 85 "../src/axis.vala" + _tmp10_ = _tmp9_; +#line 85 "../src/axis.vala" + _g_free0 (_tmp8_); +#line 85 "../src/axis.vala" + max_displayed_value = _tmp10_; +#line 907 "axis.c" + { + GeeList* _value_list = NULL; + LiveChartTicks _tmp11_; + GeeList* _tmp12_; + gint _value_size = 0; + GeeList* _tmp13_; + gint _tmp14_; + gint _tmp15_; + gint _value_index = 0; +#line 86 "../src/axis.vala" + _tmp11_ = self->ticks; +#line 86 "../src/axis.vala" + _tmp12_ = _tmp11_.values; +#line 86 "../src/axis.vala" + _value_list = _tmp12_; +#line 86 "../src/axis.vala" + _tmp13_ = _value_list; +#line 86 "../src/axis.vala" + _tmp14_ = gee_collection_get_size ((GeeCollection*) _tmp13_); +#line 86 "../src/axis.vala" + _tmp15_ = _tmp14_; +#line 86 "../src/axis.vala" + _value_size = _tmp15_; +#line 86 "../src/axis.vala" + _value_index = -1; +#line 86 "../src/axis.vala" + while (TRUE) { +#line 935 "axis.c" + gint _tmp16_; + gint _tmp17_; + gfloat value = 0.0F; + GeeList* _tmp18_; + gpointer _tmp19_; + gfloat* _tmp20_; + gfloat _tmp21_; + gchar* formatted_value = NULL; + const gchar* _tmp22_; + gchar* _tmp23_; + const gchar* _tmp24_; + gint _tmp25_; + gint _tmp26_; + const gchar* _tmp27_; + gint _tmp28_; + gint _tmp29_; +#line 86 "../src/axis.vala" + _value_index = _value_index + 1; +#line 86 "../src/axis.vala" + _tmp16_ = _value_index; +#line 86 "../src/axis.vala" + _tmp17_ = _value_size; +#line 86 "../src/axis.vala" + if (!(_tmp16_ < _tmp17_)) { +#line 86 "../src/axis.vala" + break; +#line 962 "axis.c" + } +#line 86 "../src/axis.vala" + _tmp18_ = _value_list; +#line 86 "../src/axis.vala" + _tmp19_ = gee_list_get (_tmp18_, _value_index); +#line 86 "../src/axis.vala" + _tmp20_ = (gfloat*) _tmp19_; +#line 86 "../src/axis.vala" + _tmp21_ = *_tmp20_; +#line 86 "../src/axis.vala" + _g_free0 (_tmp20_); +#line 86 "../src/axis.vala" + value = _tmp21_; +#line 87 "../src/axis.vala" + _tmp22_ = self->priv->_unit; +#line 87 "../src/axis.vala" + _tmp23_ = live_chart_format_for_y_axis (_tmp22_, value); +#line 87 "../src/axis.vala" + formatted_value = _tmp23_; +#line 88 "../src/axis.vala" + _tmp24_ = formatted_value; +#line 88 "../src/axis.vala" + _tmp25_ = strlen (_tmp24_); +#line 88 "../src/axis.vala" + _tmp26_ = _tmp25_; +#line 88 "../src/axis.vala" + _tmp27_ = max_displayed_value; +#line 88 "../src/axis.vala" + _tmp28_ = strlen (_tmp27_); +#line 88 "../src/axis.vala" + _tmp29_ = _tmp28_; +#line 88 "../src/axis.vala" + if (_tmp26_ >= _tmp29_) { +#line 996 "axis.c" + const gchar* _tmp30_; + gchar* _tmp31_; +#line 89 "../src/axis.vala" + _tmp30_ = formatted_value; +#line 89 "../src/axis.vala" + _tmp31_ = g_strdup (_tmp30_); +#line 89 "../src/axis.vala" + _g_free0 (max_displayed_value); +#line 89 "../src/axis.vala" + max_displayed_value = _tmp31_; +#line 1007 "axis.c" + } +#line 86 "../src/axis.vala" + _g_free0 (formatted_value); +#line 1011 "axis.c" + } + } +#line 92 "../src/axis.vala" + result = max_displayed_value; +#line 92 "../src/axis.vala" + return result; +#line 1018 "axis.c" + } +#line 95 "../src/axis.vala" + _tmp32_ = self->priv->_unit; +#line 95 "../src/axis.vala" + _tmp33_ = g_strdup (_tmp32_); +#line 95 "../src/axis.vala" + result = _tmp33_; +#line 95 "../src/axis.vala" + return result; +#line 1028 "axis.c" +} + +void +live_chart_yaxis_get_ticks (LiveChartYAxis* self, + LiveChartTicks* result) +{ + LiveChartTicks ticks = {0}; + gdouble* _tmp0_; + LiveChartBounds* _tmp6_; +#line 98 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 99 "../src/axis.vala" + live_chart_ticks_init (&ticks); +#line 100 "../src/axis.vala" + _tmp0_ = self->fixed_max; +#line 100 "../src/axis.vala" + if (_tmp0_ != NULL) { +#line 1046 "axis.c" + { + gfloat value = 0.0F; +#line 101 "../src/axis.vala" + value = 0.f; +#line 1051 "axis.c" + { + gboolean _tmp1_ = FALSE; +#line 101 "../src/axis.vala" + _tmp1_ = TRUE; +#line 101 "../src/axis.vala" + while (TRUE) { +#line 1058 "axis.c" + gdouble* _tmp3_; + LiveChartTicks _tmp4_; + GeeList* _tmp5_; +#line 101 "../src/axis.vala" + if (!_tmp1_) { +#line 1064 "axis.c" + gfloat _tmp2_; +#line 101 "../src/axis.vala" + _tmp2_ = self->priv->_tick_interval; +#line 101 "../src/axis.vala" + value += _tmp2_; +#line 1070 "axis.c" + } +#line 101 "../src/axis.vala" + _tmp1_ = FALSE; +#line 101 "../src/axis.vala" + _tmp3_ = self->fixed_max; +#line 101 "../src/axis.vala" + if (!(((gdouble) value) <= (*_tmp3_))) { +#line 101 "../src/axis.vala" + break; +#line 1080 "axis.c" + } +#line 102 "../src/axis.vala" + _tmp4_ = ticks; +#line 102 "../src/axis.vala" + _tmp5_ = _tmp4_.values; +#line 102 "../src/axis.vala" + gee_collection_add ((GeeCollection*) _tmp5_, &value); +#line 1088 "axis.c" + } + } + } +#line 105 "../src/axis.vala" + *result = ticks; +#line 105 "../src/axis.vala" + return; +#line 1096 "axis.c" + } +#line 107 "../src/axis.vala" + _tmp6_ = self->priv->bounds; +#line 107 "../src/axis.vala" + if (live_chart_bounds_has_upper (_tmp6_)) { +#line 1102 "axis.c" + gfloat upper = 0.0F; + LiveChartBounds* _tmp7_; + gdouble _tmp8_; + gdouble _tmp9_; + GeeList* divs = NULL; + GeeList* _tmp10_; + GeeList* _tmp11_; + gint _tmp12_; + gint _tmp13_; +#line 108 "../src/axis.vala" + _tmp7_ = self->priv->bounds; +#line 108 "../src/axis.vala" + _tmp8_ = live_chart_bounds_get_upper (_tmp7_); +#line 108 "../src/axis.vala" + _tmp9_ = _tmp8_; +#line 108 "../src/axis.vala" + upper = live_chart_cap ((gfloat) _tmp9_); +#line 109 "../src/axis.vala" + _tmp10_ = live_chart_golden_divisors (upper); +#line 109 "../src/axis.vala" + divs = _tmp10_; +#line 111 "../src/axis.vala" + _tmp11_ = divs; +#line 111 "../src/axis.vala" + _tmp12_ = gee_collection_get_size ((GeeCollection*) _tmp11_); +#line 111 "../src/axis.vala" + _tmp13_ = _tmp12_; +#line 111 "../src/axis.vala" + if (_tmp13_ > 0) { +#line 1132 "axis.c" + gfloat interval = 0.0F; + GeeList* _tmp14_; + gpointer _tmp15_; + gfloat* _tmp16_; + gfloat _tmp17_; + gdouble _tmp29_ = 0.0; + LiveChartBounds* _tmp30_; + gdouble _tmp31_; + gdouble _tmp32_; + gdouble limit = 0.0; +#line 112 "../src/axis.vala" + _tmp14_ = divs; +#line 112 "../src/axis.vala" + _tmp15_ = gee_list_get (_tmp14_, 0); +#line 112 "../src/axis.vala" + _tmp16_ = (gfloat*) _tmp15_; +#line 112 "../src/axis.vala" + _tmp17_ = upper / (*_tmp16_); +#line 112 "../src/axis.vala" + _g_free0 (_tmp16_); +#line 112 "../src/axis.vala" + interval = _tmp17_; +#line 1155 "axis.c" + { + GeeList* _div_list = NULL; + GeeList* _tmp18_; + gint _div_size = 0; + GeeList* _tmp19_; + gint _tmp20_; + gint _tmp21_; + gint _div_index = 0; +#line 113 "../src/axis.vala" + _tmp18_ = divs; +#line 113 "../src/axis.vala" + _div_list = _tmp18_; +#line 113 "../src/axis.vala" + _tmp19_ = _div_list; +#line 113 "../src/axis.vala" + _tmp20_ = gee_collection_get_size ((GeeCollection*) _tmp19_); +#line 113 "../src/axis.vala" + _tmp21_ = _tmp20_; +#line 113 "../src/axis.vala" + _div_size = _tmp21_; +#line 113 "../src/axis.vala" + _div_index = -1; +#line 113 "../src/axis.vala" + while (TRUE) { +#line 1180 "axis.c" + gint _tmp22_; + gint _tmp23_; + gfloat div = 0.0F; + GeeList* _tmp24_; + gpointer _tmp25_; + gfloat* _tmp26_; + gfloat _tmp27_; + gboolean _tmp28_ = FALSE; +#line 113 "../src/axis.vala" + _div_index = _div_index + 1; +#line 113 "../src/axis.vala" + _tmp22_ = _div_index; +#line 113 "../src/axis.vala" + _tmp23_ = _div_size; +#line 113 "../src/axis.vala" + if (!(_tmp22_ < _tmp23_)) { +#line 113 "../src/axis.vala" + break; +#line 1199 "axis.c" + } +#line 113 "../src/axis.vala" + _tmp24_ = _div_list; +#line 113 "../src/axis.vala" + _tmp25_ = gee_list_get (_tmp24_, _div_index); +#line 113 "../src/axis.vala" + _tmp26_ = (gfloat*) _tmp25_; +#line 113 "../src/axis.vala" + _tmp27_ = *_tmp26_; +#line 113 "../src/axis.vala" + _g_free0 (_tmp26_); +#line 113 "../src/axis.vala" + div = _tmp27_; +#line 114 "../src/axis.vala" + interval = upper / div; +#line 115 "../src/axis.vala" + if (div > 3.f) { +#line 115 "../src/axis.vala" + _tmp28_ = div < 7.f; +#line 1219 "axis.c" + } else { +#line 115 "../src/axis.vala" + _tmp28_ = FALSE; +#line 1223 "axis.c" + } +#line 115 "../src/axis.vala" + if (_tmp28_) { +#line 116 "../src/axis.vala" + break; +#line 1229 "axis.c" + } + } + } +#line 119 "../src/axis.vala" + _tmp30_ = self->priv->bounds; +#line 119 "../src/axis.vala" + _tmp31_ = live_chart_bounds_get_upper (_tmp30_); +#line 119 "../src/axis.vala" + _tmp32_ = _tmp31_; +#line 119 "../src/axis.vala" + if (_tmp32_ == ((gdouble) upper)) { +#line 119 "../src/axis.vala" + _tmp29_ = (gdouble) upper; +#line 1243 "axis.c" + } else { + LiveChartBounds* _tmp33_; + gdouble _tmp34_; + gdouble _tmp35_; +#line 119 "../src/axis.vala" + _tmp33_ = self->priv->bounds; +#line 119 "../src/axis.vala" + _tmp34_ = live_chart_bounds_get_upper (_tmp33_); +#line 119 "../src/axis.vala" + _tmp35_ = _tmp34_; +#line 119 "../src/axis.vala" + _tmp29_ = _tmp35_ + interval; +#line 1256 "axis.c" + } +#line 119 "../src/axis.vala" + limit = _tmp29_; +#line 1260 "axis.c" + { + gfloat value = 0.0F; +#line 120 "../src/axis.vala" + value = 0.f; +#line 1265 "axis.c" + { + gboolean _tmp36_ = FALSE; +#line 120 "../src/axis.vala" + _tmp36_ = TRUE; +#line 120 "../src/axis.vala" + while (TRUE) { +#line 1272 "axis.c" + LiveChartTicks _tmp37_; + GeeList* _tmp38_; +#line 120 "../src/axis.vala" + if (!_tmp36_) { +#line 120 "../src/axis.vala" + value += interval; +#line 1279 "axis.c" + } +#line 120 "../src/axis.vala" + _tmp36_ = FALSE; +#line 120 "../src/axis.vala" + if (!(((gdouble) value) <= limit)) { +#line 120 "../src/axis.vala" + break; +#line 1287 "axis.c" + } +#line 121 "../src/axis.vala" + _tmp37_ = ticks; +#line 121 "../src/axis.vala" + _tmp38_ = _tmp37_.values; +#line 121 "../src/axis.vala" + gee_collection_add ((GeeCollection*) _tmp38_, &value); +#line 1295 "axis.c" + } + } + } + } +#line 107 "../src/axis.vala" + _g_object_unref0 (divs); +#line 1302 "axis.c" + } +#line 126 "../src/axis.vala" + *result = ticks; +#line 126 "../src/axis.vala" + return; +#line 1308 "axis.c" +} + +gfloat +live_chart_yaxis_get_ratio_threshold (LiveChartYAxis* self) +{ + gfloat result; +#line 33 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 33 "../src/axis.vala" + result = self->priv->_ratio_threshold; +#line 33 "../src/axis.vala" + return result; +#line 1321 "axis.c" +} + +void +live_chart_yaxis_set_ratio_threshold (LiveChartYAxis* self, + gfloat value) +{ +#line 33 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 33 "../src/axis.vala" + self->priv->_ratio_threshold = value; +#line 1332 "axis.c" +} + +gfloat +live_chart_yaxis_get_tick_interval (LiveChartYAxis* self) +{ + gfloat result; +#line 34 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 34 "../src/axis.vala" + result = self->priv->_tick_interval; +#line 34 "../src/axis.vala" + return result; +#line 1345 "axis.c" +} + +void +live_chart_yaxis_set_tick_interval (LiveChartYAxis* self, + gfloat value) +{ +#line 34 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 34 "../src/axis.vala" + self->priv->_tick_interval = value; +#line 1356 "axis.c" +} + +gboolean +live_chart_yaxis_get_visible (LiveChartYAxis* self) +{ + gboolean result; +#line 35 "../src/axis.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 35 "../src/axis.vala" + result = self->priv->_visible; +#line 35 "../src/axis.vala" + return result; +#line 1369 "axis.c" +} + +void +live_chart_yaxis_set_visible (LiveChartYAxis* self, + gboolean value) +{ +#line 35 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 35 "../src/axis.vala" + self->priv->_visible = value; +#line 1380 "axis.c" +} + +gfloat +live_chart_yaxis_get_tick_length (LiveChartYAxis* self) +{ + gfloat result; +#line 42 "../src/axis.vala" + g_return_val_if_fail (self != NULL, 0.0F); +#line 42 "../src/axis.vala" + result = self->priv->_tick_length; +#line 42 "../src/axis.vala" + return result; +#line 1393 "axis.c" +} + +void +live_chart_yaxis_set_tick_length (LiveChartYAxis* self, + gfloat value) +{ +#line 42 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 42 "../src/axis.vala" + self->priv->_tick_length = value; +#line 1404 "axis.c" +} + +const gchar* +live_chart_yaxis_get_unit (LiveChartYAxis* self) +{ + const gchar* result; + const gchar* _tmp0_; +#line 43 "../src/axis.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 43 "../src/axis.vala" + _tmp0_ = self->priv->_unit; +#line 43 "../src/axis.vala" + result = _tmp0_; +#line 43 "../src/axis.vala" + return result; +#line 1420 "axis.c" +} + +void +live_chart_yaxis_set_unit (LiveChartYAxis* self, + const gchar* value) +{ + gchar* _tmp0_; +#line 43 "../src/axis.vala" + g_return_if_fail (self != NULL); +#line 43 "../src/axis.vala" + _tmp0_ = g_strdup (value); +#line 43 "../src/axis.vala" + _g_free0 (self->priv->_unit); +#line 43 "../src/axis.vala" + self->priv->_unit = _tmp0_; +#line 1436 "axis.c" +} + +static void +live_chart_value_yaxis_init (GValue* value) +{ +#line 29 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 1444 "axis.c" +} + +static void +live_chart_value_yaxis_free_value (GValue* value) +{ +#line 29 "../src/axis.vala" + if (value->data[0].v_pointer) { +#line 29 "../src/axis.vala" + live_chart_yaxis_unref (value->data[0].v_pointer); +#line 1454 "axis.c" + } +} + +static void +live_chart_value_yaxis_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 29 "../src/axis.vala" + if (src_value->data[0].v_pointer) { +#line 29 "../src/axis.vala" + dest_value->data[0].v_pointer = live_chart_yaxis_ref (src_value->data[0].v_pointer); +#line 1466 "axis.c" + } else { +#line 29 "../src/axis.vala" + dest_value->data[0].v_pointer = NULL; +#line 1470 "axis.c" + } +} + +static gpointer +live_chart_value_yaxis_peek_pointer (const GValue* value) +{ +#line 29 "../src/axis.vala" + return value->data[0].v_pointer; +#line 1479 "axis.c" +} + +static gchar* +live_chart_value_yaxis_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 29 "../src/axis.vala" + if (collect_values[0].v_pointer) { +#line 1490 "axis.c" + LiveChartYAxis * object; + object = collect_values[0].v_pointer; +#line 29 "../src/axis.vala" + if (object->parent_instance.g_class == NULL) { +#line 29 "../src/axis.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 1497 "axis.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 29 "../src/axis.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 1501 "axis.c" + } +#line 29 "../src/axis.vala" + value->data[0].v_pointer = live_chart_yaxis_ref (object); +#line 1505 "axis.c" + } else { +#line 29 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 1509 "axis.c" + } +#line 29 "../src/axis.vala" + return NULL; +#line 1513 "axis.c" +} + +static gchar* +live_chart_value_yaxis_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartYAxis ** object_p; + object_p = collect_values[0].v_pointer; +#line 29 "../src/axis.vala" + if (!object_p) { +#line 29 "../src/axis.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 1528 "axis.c" + } +#line 29 "../src/axis.vala" + if (!value->data[0].v_pointer) { +#line 29 "../src/axis.vala" + *object_p = NULL; +#line 1534 "axis.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 29 "../src/axis.vala" + *object_p = value->data[0].v_pointer; +#line 1538 "axis.c" + } else { +#line 29 "../src/axis.vala" + *object_p = live_chart_yaxis_ref (value->data[0].v_pointer); +#line 1542 "axis.c" + } +#line 29 "../src/axis.vala" + return NULL; +#line 1546 "axis.c" +} + +GParamSpec* +live_chart_param_spec_yaxis (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecYAxis* spec; +#line 29 "../src/axis.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_YAXIS), NULL); +#line 29 "../src/axis.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 29 "../src/axis.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 29 "../src/axis.vala" + return G_PARAM_SPEC (spec); +#line 1565 "axis.c" +} + +gpointer +live_chart_value_get_yaxis (const GValue* value) +{ +#line 29 "../src/axis.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_YAXIS), NULL); +#line 29 "../src/axis.vala" + return value->data[0].v_pointer; +#line 1575 "axis.c" +} + +void +live_chart_value_set_yaxis (GValue* value, + gpointer v_object) +{ + LiveChartYAxis * old; +#line 29 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_YAXIS)); +#line 29 "../src/axis.vala" + old = value->data[0].v_pointer; +#line 29 "../src/axis.vala" + if (v_object) { +#line 29 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_YAXIS)); +#line 29 "../src/axis.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 29 "../src/axis.vala" + value->data[0].v_pointer = v_object; +#line 29 "../src/axis.vala" + live_chart_yaxis_ref (value->data[0].v_pointer); +#line 1597 "axis.c" + } else { +#line 29 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 1601 "axis.c" + } +#line 29 "../src/axis.vala" + if (old) { +#line 29 "../src/axis.vala" + live_chart_yaxis_unref (old); +#line 1607 "axis.c" + } +} + +void +live_chart_value_take_yaxis (GValue* value, + gpointer v_object) +{ + LiveChartYAxis * old; +#line 29 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_YAXIS)); +#line 29 "../src/axis.vala" + old = value->data[0].v_pointer; +#line 29 "../src/axis.vala" + if (v_object) { +#line 29 "../src/axis.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_YAXIS)); +#line 29 "../src/axis.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 29 "../src/axis.vala" + value->data[0].v_pointer = v_object; +#line 1628 "axis.c" + } else { +#line 29 "../src/axis.vala" + value->data[0].v_pointer = NULL; +#line 1632 "axis.c" + } +#line 29 "../src/axis.vala" + if (old) { +#line 29 "../src/axis.vala" + live_chart_yaxis_unref (old); +#line 1638 "axis.c" + } +} + +static void +live_chart_yaxis_class_init (LiveChartYAxisClass * klass, + gpointer klass_data) +{ +#line 29 "../src/axis.vala" + live_chart_yaxis_parent_class = g_type_class_peek_parent (klass); +#line 29 "../src/axis.vala" + ((LiveChartYAxisClass *) klass)->finalize = live_chart_yaxis_finalize; +#line 29 "../src/axis.vala" + g_type_class_adjust_private_offset (klass, &LiveChartYAxis_private_offset); +#line 1652 "axis.c" +} + +static void +live_chart_yaxis_instance_init (LiveChartYAxis * self, + gpointer klass) +{ + LiveChartBounds* _tmp0_; + LiveChartLabels* _tmp1_; + GdkRGBA _tmp2_ = {0}; + LiveChartPath* _tmp3_; + GdkRGBA _tmp4_ = {0}; + LiveChartPath* _tmp5_; + gchar* _tmp6_; +#line 29 "../src/axis.vala" + self->priv = live_chart_yaxis_get_instance_private (self); +#line 30 "../src/axis.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 30 "../src/axis.vala" + self->priv->bounds = _tmp0_; +#line 31 "../src/axis.vala" + self->priv->ratio = (gdouble) 1; +#line 33 "../src/axis.vala" + self->priv->_ratio_threshold = 1.118f; +#line 34 "../src/axis.vala" + self->priv->_tick_interval = (gfloat) 60; +#line 35 "../src/axis.vala" + self->priv->_visible = TRUE; +#line 37 "../src/axis.vala" + _tmp1_ = live_chart_labels_new (); +#line 37 "../src/axis.vala" + self->labels = _tmp1_; +#line 38 "../src/axis.vala" + _tmp2_.red = 1.0; +#line 38 "../src/axis.vala" + _tmp2_.green = 1.0; +#line 38 "../src/axis.vala" + _tmp2_.blue = 1.0; +#line 38 "../src/axis.vala" + _tmp2_.alpha = 1.0; +#line 38 "../src/axis.vala" + _tmp3_ = live_chart_path_new (0.5, &_tmp2_, TRUE, NULL); +#line 38 "../src/axis.vala" + self->axis = _tmp3_; +#line 39 "../src/axis.vala" + _tmp4_.red = 1.0; +#line 39 "../src/axis.vala" + _tmp4_.green = 1.0; +#line 39 "../src/axis.vala" + _tmp4_.blue = 1.0; +#line 39 "../src/axis.vala" + _tmp4_.alpha = 1.0; +#line 39 "../src/axis.vala" + _tmp5_ = live_chart_path_new (0.5, &_tmp4_, TRUE, NULL); +#line 39 "../src/axis.vala" + self->lines = _tmp5_; +#line 42 "../src/axis.vala" + self->priv->_tick_length = (gfloat) 60; +#line 43 "../src/axis.vala" + _tmp6_ = g_strdup (""); +#line 43 "../src/axis.vala" + self->priv->_unit = _tmp6_; +#line 46 "../src/axis.vala" + self->smart_ratio = FALSE; +#line 29 "../src/axis.vala" + self->ref_count = 1; +#line 1718 "axis.c" +} + +static void +live_chart_yaxis_finalize (LiveChartYAxis * obj) +{ + LiveChartYAxis * self; +#line 29 "../src/axis.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_YAXIS, LiveChartYAxis); +#line 29 "../src/axis.vala" + g_signal_handlers_destroy (self); +#line 30 "../src/axis.vala" + _g_object_unref0 (self->priv->bounds); +#line 37 "../src/axis.vala" + _live_chart_labels_unref0 (self->labels); +#line 38 "../src/axis.vala" + _g_object_unref0 (self->axis); +#line 39 "../src/axis.vala" + _g_object_unref0 (self->lines); +#line 43 "../src/axis.vala" + _g_free0 (self->priv->_unit); +#line 48 "../src/axis.vala" + _g_free0 (self->fixed_max); +#line 49 "../src/axis.vala" + live_chart_ticks_destroy (&self->ticks); +#line 1743 "axis.c" +} + +static GType +live_chart_yaxis_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_yaxis_init, live_chart_value_yaxis_free_value, live_chart_value_yaxis_copy_value, live_chart_value_yaxis_peek_pointer, "p", live_chart_value_yaxis_collect_value, "p", live_chart_value_yaxis_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartYAxisClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_yaxis_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartYAxis), 0, (GInstanceInitFunc) live_chart_yaxis_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_yaxis_type_id; + live_chart_yaxis_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartYAxis", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartYAxis_private_offset = g_type_add_instance_private (live_chart_yaxis_type_id, sizeof (LiveChartYAxisPrivate)); + return live_chart_yaxis_type_id; +} + +GType +live_chart_yaxis_get_type (void) +{ + static volatile gsize live_chart_yaxis_type_id__once = 0; + if (g_once_init_enter (&live_chart_yaxis_type_id__once)) { + GType live_chart_yaxis_type_id; + live_chart_yaxis_type_id = live_chart_yaxis_get_type_once (); + g_once_init_leave (&live_chart_yaxis_type_id__once, live_chart_yaxis_type_id); + } + return live_chart_yaxis_type_id__once; +} + +gpointer +live_chart_yaxis_ref (gpointer instance) +{ + LiveChartYAxis * self; + self = instance; +#line 29 "../src/axis.vala" + g_atomic_int_inc (&self->ref_count); +#line 29 "../src/axis.vala" + return instance; +#line 1779 "axis.c" +} + +void +live_chart_yaxis_unref (gpointer instance) +{ + LiveChartYAxis * self; + self = instance; +#line 29 "../src/axis.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 29 "../src/axis.vala" + LIVE_CHART_YAXIS_GET_CLASS (self)->finalize (self); +#line 29 "../src/axis.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 1793 "axis.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/background.c b/iPDC/lib/liblivechart.so.p/background.c new file mode 100644 index 0000000..33adc30 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/background.c @@ -0,0 +1,559 @@ +/* background.c generated by valac 0.56.0, the Vala compiler + * generated from background.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_BACKGROUND_0_PROPERTY, + LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY, + LIVE_CHART_BACKGROUND_COLOR_PROPERTY, + LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY, + LIVE_CHART_BACKGROUND_NUM_PROPERTIES +}; +static GParamSpec* live_chart_background_properties[LIVE_CHART_BACKGROUND_NUM_PROPERTIES]; + +struct _LiveChartBackgroundPrivate { + LiveChartBoundingBox bounding_box; + gboolean _visible; + GdkRGBA _main_color; +}; + +static gint LiveChartBackground_private_offset; +static gpointer live_chart_background_parent_class = NULL; +static LiveChartDrawableIface * live_chart_background_live_chart_drawable_parent_iface = NULL; + +static void live_chart_background_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_background_update_bounding_box (LiveChartBackground* self, + LiveChartConfig* config); +static void live_chart_background_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_background_finalize (GObject * obj); +static GType live_chart_background_get_type_once (void); +static void _vala_live_chart_background_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_background_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_background_get_instance_private (LiveChartBackground* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartBackground_private_offset); +} + +static void +live_chart_background_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBackground * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 33 "../src/background.vala" + self = (LiveChartBackground*) base; +#line 33 "../src/background.vala" + g_return_if_fail (ctx != NULL); +#line 33 "../src/background.vala" + g_return_if_fail (config != NULL); +#line 34 "../src/background.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 34 "../src/background.vala" + _tmp1_ = _tmp0_; +#line 34 "../src/background.vala" + if (_tmp1_) { +#line 79 "background.c" + gint _tmp2_; + gint _tmp3_; + gint _tmp4_; + gint _tmp5_; + GdkRGBA _tmp6_ = {0}; + GdkRGBA _tmp7_; + GdkRGBA _tmp8_ = {0}; + GdkRGBA _tmp9_; + GdkRGBA _tmp10_ = {0}; + GdkRGBA _tmp11_; + GdkRGBA _tmp12_ = {0}; + GdkRGBA _tmp13_; +#line 35 "../src/background.vala" + live_chart_background_update_bounding_box (self, config); +#line 36 "../src/background.vala" + _tmp2_ = live_chart_config_get_width (config); +#line 36 "../src/background.vala" + _tmp3_ = _tmp2_; +#line 36 "../src/background.vala" + _tmp4_ = live_chart_config_get_height (config); +#line 36 "../src/background.vala" + _tmp5_ = _tmp4_; +#line 36 "../src/background.vala" + cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, (gdouble) _tmp3_, (gdouble) _tmp5_); +#line 37 "../src/background.vala" + live_chart_background_get_color (self, &_tmp6_); +#line 37 "../src/background.vala" + _tmp7_ = _tmp6_; +#line 37 "../src/background.vala" + live_chart_background_get_color (self, &_tmp8_); +#line 37 "../src/background.vala" + _tmp9_ = _tmp8_; +#line 37 "../src/background.vala" + live_chart_background_get_color (self, &_tmp10_); +#line 37 "../src/background.vala" + _tmp11_ = _tmp10_; +#line 37 "../src/background.vala" + live_chart_background_get_color (self, &_tmp12_); +#line 37 "../src/background.vala" + _tmp13_ = _tmp12_; +#line 37 "../src/background.vala" + cairo_set_source_rgba (ctx, _tmp7_.red, _tmp9_.green, _tmp11_.blue, _tmp13_.alpha); +#line 38 "../src/background.vala" + cairo_fill (ctx); +#line 124 "background.c" + } +} + +static void +live_chart_background_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartBackground * self; + LiveChartBoundingBox _tmp0_; +#line 42 "../src/background.vala" + self = (LiveChartBackground*) base; +#line 43 "../src/background.vala" + _tmp0_ = self->priv->bounding_box; +#line 43 "../src/background.vala" + *result = _tmp0_; +#line 43 "../src/background.vala" + return; +#line 142 "background.c" +} + +static void +live_chart_background_update_bounding_box (LiveChartBackground* self, + LiveChartConfig* config) +{ + gint _tmp0_; + gint _tmp1_; + gint _tmp2_; + gint _tmp3_; + LiveChartBoundingBox _tmp4_ = {0}; +#line 46 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/background.vala" + g_return_if_fail (config != NULL); +#line 47 "../src/background.vala" + _tmp0_ = live_chart_config_get_width (config); +#line 47 "../src/background.vala" + _tmp1_ = _tmp0_; +#line 47 "../src/background.vala" + _tmp2_ = live_chart_config_get_height (config); +#line 47 "../src/background.vala" + _tmp3_ = _tmp2_; +#line 47 "../src/background.vala" + memset (&_tmp4_, 0, sizeof (LiveChartBoundingBox)); +#line 47 "../src/background.vala" + _tmp4_.x = (gdouble) 0; +#line 47 "../src/background.vala" + _tmp4_.y = (gdouble) 0; +#line 47 "../src/background.vala" + _tmp4_.width = (gdouble) _tmp1_; +#line 47 "../src/background.vala" + _tmp4_.height = (gdouble) _tmp3_; +#line 47 "../src/background.vala" + self->priv->bounding_box = _tmp4_; +#line 178 "background.c" +} + +LiveChartBackground* +live_chart_background_construct (GType object_type) +{ + LiveChartBackground * self = NULL; +#line 4 "../src/background.vala" + self = (LiveChartBackground*) g_object_new (object_type, NULL); +#line 4 "../src/background.vala" + return self; +#line 189 "background.c" +} + +LiveChartBackground* +live_chart_background_new (void) +{ +#line 4 "../src/background.vala" + return live_chart_background_construct (LIVE_CHART_TYPE_BACKGROUND); +#line 197 "background.c" +} + +static gboolean +live_chart_background_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartBackground* self; +#line 12 "../src/background.vala" + self = (LiveChartBackground*) base; +#line 12 "../src/background.vala" + result = self->priv->_visible; +#line 12 "../src/background.vala" + return result; +#line 211 "background.c" +} + +static void +live_chart_background_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartBackground* self; + gboolean old_value; +#line 12 "../src/background.vala" + self = (LiveChartBackground*) base; +#line 12 "../src/background.vala" + old_value = live_chart_background_real_get_visible (base); +#line 12 "../src/background.vala" + if (old_value != value) { +#line 12 "../src/background.vala" + self->priv->_visible = value; +#line 12 "../src/background.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_background_properties[LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY]); +#line 230 "background.c" + } +} + +void +live_chart_background_get_color (LiveChartBackground* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 15 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/background.vala" + _tmp0_ = self->priv->_main_color; +#line 16 "../src/background.vala" + *result = _tmp0_; +#line 16 "../src/background.vala" + return; +#line 247 "background.c" +} + +void +live_chart_background_set_color (LiveChartBackground* self, + GdkRGBA * value) +{ + GdkRGBA _tmp0_; +#line 18 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 19 "../src/background.vala" + _tmp0_ = *value; +#line 19 "../src/background.vala" + live_chart_background_set_main_color (self, &_tmp0_); +#line 18 "../src/background.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_background_properties[LIVE_CHART_BACKGROUND_COLOR_PROPERTY]); +#line 263 "background.c" +} + +void +live_chart_background_get_main_color (LiveChartBackground* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 25 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 25 "../src/background.vala" + _tmp0_ = self->priv->_main_color; +#line 25 "../src/background.vala" + *result = _tmp0_; +#line 25 "../src/background.vala" + return; +#line 279 "background.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 25 "../src/background.vala" + if (s1 == s2) { +#line 25 "../src/background.vala" + return TRUE; +#line 290 "background.c" + } +#line 25 "../src/background.vala" + if (s1 == NULL) { +#line 25 "../src/background.vala" + return FALSE; +#line 296 "background.c" + } +#line 25 "../src/background.vala" + if (s2 == NULL) { +#line 25 "../src/background.vala" + return FALSE; +#line 302 "background.c" + } +#line 25 "../src/background.vala" + if (s1->red != s2->red) { +#line 25 "../src/background.vala" + return FALSE; +#line 308 "background.c" + } +#line 25 "../src/background.vala" + if (s1->green != s2->green) { +#line 25 "../src/background.vala" + return FALSE; +#line 314 "background.c" + } +#line 25 "../src/background.vala" + if (s1->blue != s2->blue) { +#line 25 "../src/background.vala" + return FALSE; +#line 320 "background.c" + } +#line 25 "../src/background.vala" + if (s1->alpha != s2->alpha) { +#line 25 "../src/background.vala" + return FALSE; +#line 326 "background.c" + } +#line 25 "../src/background.vala" + return TRUE; +#line 330 "background.c" +} + +void +live_chart_background_set_main_color (LiveChartBackground* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 25 "../src/background.vala" + g_return_if_fail (self != NULL); +#line 25 "../src/background.vala" + live_chart_background_get_main_color (self, &old_value); +#line 25 "../src/background.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 344 "background.c" + GdkRGBA _tmp0_; +#line 25 "../src/background.vala" + _tmp0_ = *value; +#line 25 "../src/background.vala" + self->priv->_main_color = _tmp0_; +#line 25 "../src/background.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_background_properties[LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY]); +#line 352 "background.c" + } +} + +static void +live_chart_background_class_init (LiveChartBackgroundClass * klass, + gpointer klass_data) +{ +#line 4 "../src/background.vala" + live_chart_background_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/background.vala" + g_type_class_adjust_private_offset (klass, &LiveChartBackground_private_offset); +#line 4 "../src/background.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_background_get_property; +#line 4 "../src/background.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_background_set_property; +#line 4 "../src/background.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_background_finalize; +#line 4 "../src/background.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY, live_chart_background_properties[LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/background.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BACKGROUND_COLOR_PROPERTY, live_chart_background_properties[LIVE_CHART_BACKGROUND_COLOR_PROPERTY] = g_param_spec_boxed ("color", "color", "color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/background.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY, live_chart_background_properties[LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_DEPRECATED)); +#line 376 "background.c" +} + +static void +live_chart_background_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 4 "../src/background.vala" + live_chart_background_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 4 "../src/background.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_background_real_draw; +#line 4 "../src/background.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_background_real_get_bounding_box; +#line 4 "../src/background.vala" + iface->get_visible = live_chart_background_real_get_visible; +#line 4 "../src/background.vala" + iface->set_visible = live_chart_background_real_set_visible; +#line 393 "background.c" +} + +static void +live_chart_background_instance_init (LiveChartBackground * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; + GdkRGBA _tmp1_ = {0}; +#line 4 "../src/background.vala" + self->priv = live_chart_background_get_instance_private (self); +#line 5 "../src/background.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 5 "../src/background.vala" + _tmp0_.x = (gdouble) 0; +#line 5 "../src/background.vala" + _tmp0_.y = (gdouble) 0; +#line 5 "../src/background.vala" + _tmp0_.width = (gdouble) 0; +#line 5 "../src/background.vala" + _tmp0_.height = (gdouble) 0; +#line 5 "../src/background.vala" + self->priv->bounding_box = _tmp0_; +#line 12 "../src/background.vala" + self->priv->_visible = TRUE; +#line 24 "../src/background.vala" + memset (&_tmp1_, 0, sizeof (GdkRGBA)); +#line 24 "../src/background.vala" + _tmp1_.red = 0.1; +#line 24 "../src/background.vala" + _tmp1_.green = 0.1; +#line 24 "../src/background.vala" + _tmp1_.blue = 0.1; +#line 24 "../src/background.vala" + _tmp1_.alpha = 1.0; +#line 24 "../src/background.vala" + self->priv->_main_color = _tmp1_; +#line 430 "background.c" +} + +static void +live_chart_background_finalize (GObject * obj) +{ + LiveChartBackground * self; +#line 4 "../src/background.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_BACKGROUND, LiveChartBackground); +#line 4 "../src/background.vala" + G_OBJECT_CLASS (live_chart_background_parent_class)->finalize (obj); +#line 441 "background.c" +} + +static GType +live_chart_background_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartBackgroundClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_background_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartBackground), 0, (GInstanceInitFunc) live_chart_background_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_background_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_background_type_id; + live_chart_background_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartBackground", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_background_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartBackground_private_offset = g_type_add_instance_private (live_chart_background_type_id, sizeof (LiveChartBackgroundPrivate)); + return live_chart_background_type_id; +} + +GType +live_chart_background_get_type (void) +{ + static volatile gsize live_chart_background_type_id__once = 0; + if (g_once_init_enter (&live_chart_background_type_id__once)) { + GType live_chart_background_type_id; + live_chart_background_type_id = live_chart_background_get_type_once (); + g_once_init_leave (&live_chart_background_type_id__once, live_chart_background_type_id); + } + return live_chart_background_type_id__once; +} + +static void +_vala_live_chart_background_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartBackground * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_BACKGROUND, LiveChartBackground); +#line 4 "../src/background.vala" + switch (property_id) { +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY: +#line 4 "../src/background.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 4 "../src/background.vala" + break; +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_COLOR_PROPERTY: +#line 486 "background.c" + { + GdkRGBA boxed; +#line 4 "../src/background.vala" + live_chart_background_get_color (self, &boxed); +#line 4 "../src/background.vala" + g_value_set_boxed (value, &boxed); +#line 493 "background.c" + } +#line 4 "../src/background.vala" + break; +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY: +#line 499 "background.c" + { + GdkRGBA boxed; +#line 4 "../src/background.vala" + live_chart_background_get_main_color (self, &boxed); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#line 505 "background.c" + g_value_set_boxed (value, &boxed); +G_GNUC_END_IGNORE_DEPRECATIONS + } +#line 4 "../src/background.vala" + break; +#line 511 "background.c" + default: +#line 4 "../src/background.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/background.vala" + break; +#line 517 "background.c" + } +} + +static void +_vala_live_chart_background_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartBackground * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_BACKGROUND, LiveChartBackground); +#line 4 "../src/background.vala" + switch (property_id) { +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_VISIBLE_PROPERTY: +#line 4 "../src/background.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 4 "../src/background.vala" + break; +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_COLOR_PROPERTY: +#line 4 "../src/background.vala" + live_chart_background_set_color (self, g_value_get_boxed (value)); +#line 4 "../src/background.vala" + break; +#line 4 "../src/background.vala" + case LIVE_CHART_BACKGROUND_MAIN_COLOR_PROPERTY: +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#line 546 "background.c" + live_chart_background_set_main_color (self, g_value_get_boxed (value)); +G_GNUC_END_IGNORE_DEPRECATIONS +#line 4 "../src/background.vala" + break; +#line 551 "background.c" + default: +#line 4 "../src/background.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/background.vala" + break; +#line 557 "background.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/bar.c b/iPDC/lib/liblivechart.so.p/bar.c new file mode 100644 index 0000000..80eadc1 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/bar.c @@ -0,0 +1,329 @@ +/* bar.c generated by valac 0.56.0, the Vala compiler + * generated from bar.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_BAR_0_PROPERTY, + LIVE_CHART_BAR_NUM_PROPERTIES +}; +static GParamSpec* live_chart_bar_properties[LIVE_CHART_BAR_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +static gpointer live_chart_bar_parent_class = NULL; + +static void live_chart_bar_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_bar_update_bounding_box (LiveChartBar* self, + LiveChartPoints* points, + LiveChartConfig* config); +static GType live_chart_bar_get_type_once (void); + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 7 "../src/bar.vala" + return self ? g_object_ref (self) : NULL; +#line 34 "bar.c" +} + +LiveChartBar* +live_chart_bar_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartBar * self = NULL; + LiveChartValues* _tmp0_; +#line 5 "../src/bar.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 6 "../src/bar.vala" + self = (LiveChartBar*) live_chart_serie_renderer_construct (object_type); +#line 7 "../src/bar.vala" + _tmp0_ = _g_object_ref0 (values); +#line 7 "../src/bar.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 7 "../src/bar.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 5 "../src/bar.vala" + return self; +#line 55 "bar.c" +} + +LiveChartBar* +live_chart_bar_new (LiveChartValues* values) +{ +#line 5 "../src/bar.vala" + return live_chart_bar_construct (LIVE_CHART_TYPE_BAR, values); +#line 63 "bar.c" +} + +static void +live_chart_bar_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBar * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 10 "../src/bar.vala" + self = (LiveChartBar*) base; +#line 10 "../src/bar.vala" + g_return_if_fail (ctx != NULL); +#line 10 "../src/bar.vala" + g_return_if_fail (config != NULL); +#line 11 "../src/bar.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 11 "../src/bar.vala" + _tmp1_ = _tmp0_; +#line 11 "../src/bar.vala" + if (_tmp1_) { +#line 86 "bar.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 12 "../src/bar.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 12 "../src/bar.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 12 "../src/bar.vala" + points = _tmp3_; +#line 13 "../src/bar.vala" + _tmp4_ = points; +#line 13 "../src/bar.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 13 "../src/bar.vala" + _tmp6_ = _tmp5_; +#line 13 "../src/bar.vala" + if (_tmp6_ > 0) { +#line 107 "bar.c" + LiveChartPath* _tmp7_; + LiveChartPath* _tmp8_; + LiveChartPoints* _tmp9_; +#line 14 "../src/bar.vala" + _tmp7_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 14 "../src/bar.vala" + _tmp8_ = _tmp7_; +#line 14 "../src/bar.vala" + live_chart_path_configure (_tmp8_, ctx); +#line 16 "../src/bar.vala" + _tmp9_ = points; +#line 16 "../src/bar.vala" + live_chart_bar_update_bounding_box (self, _tmp9_, config); +#line 17 "../src/bar.vala" + live_chart_serie_renderer_debug ((LiveChartSerieRenderer*) self, ctx); +#line 123 "bar.c" + { + gint pos = 0; +#line 19 "../src/bar.vala" + pos = 0; +#line 128 "bar.c" + { + gboolean _tmp10_ = FALSE; +#line 19 "../src/bar.vala" + _tmp10_ = TRUE; +#line 19 "../src/bar.vala" + while (TRUE) { +#line 135 "bar.c" + LiveChartPoints* _tmp12_; + gint _tmp13_; + gint _tmp14_; + LiveChartPoint current_point = {0}; + LiveChartPoints* _tmp15_; + LiveChartPoint _tmp16_ = {0}; + LiveChartPoint next_point = {0}; + LiveChartPoints* _tmp17_; + LiveChartPoint _tmp18_ = {0}; + LiveChartPoint _tmp19_; + LiveChartPadding _tmp20_; + gdouble bar_width = 0.0; + LiveChartPoint _tmp21_; + LiveChartPoint _tmp22_; + LiveChartPoint _tmp23_; + LiveChartPoint _tmp24_; + LiveChartPoint _tmp25_; +#line 19 "../src/bar.vala" + if (!_tmp10_) { +#line 155 "bar.c" + gint _tmp11_; +#line 19 "../src/bar.vala" + _tmp11_ = pos; +#line 19 "../src/bar.vala" + pos = _tmp11_ + 1; +#line 161 "bar.c" + } +#line 19 "../src/bar.vala" + _tmp10_ = FALSE; +#line 19 "../src/bar.vala" + _tmp12_ = points; +#line 19 "../src/bar.vala" + _tmp13_ = live_chart_points_get_size (_tmp12_); +#line 19 "../src/bar.vala" + _tmp14_ = _tmp13_; +#line 19 "../src/bar.vala" + if (!(pos <= (_tmp14_ - 1))) { +#line 19 "../src/bar.vala" + break; +#line 175 "bar.c" + } +#line 20 "../src/bar.vala" + _tmp15_ = points; +#line 20 "../src/bar.vala" + live_chart_points_get (_tmp15_, pos, &_tmp16_); +#line 20 "../src/bar.vala" + current_point = _tmp16_; +#line 21 "../src/bar.vala" + _tmp17_ = points; +#line 21 "../src/bar.vala" + live_chart_points_after (_tmp17_, pos, &_tmp18_); +#line 21 "../src/bar.vala" + next_point = _tmp18_; +#line 23 "../src/bar.vala" + _tmp19_ = current_point; +#line 23 "../src/bar.vala" + _tmp20_ = config->padding; +#line 23 "../src/bar.vala" + if (_tmp19_.x < ((gdouble) _tmp20_.left)) { +#line 24 "../src/bar.vala" + continue; +#line 197 "bar.c" + } +#line 26 "../src/bar.vala" + _tmp21_ = current_point; +#line 26 "../src/bar.vala" + _tmp22_ = next_point; +#line 26 "../src/bar.vala" + bar_width = (_tmp21_.x - _tmp22_.x) / 1.2; +#line 27 "../src/bar.vala" + _tmp23_ = next_point; +#line 27 "../src/bar.vala" + _tmp24_ = next_point; +#line 27 "../src/bar.vala" + _tmp25_ = next_point; +#line 27 "../src/bar.vala" + cairo_rectangle (ctx, _tmp23_.x, _tmp24_.y, bar_width, _tmp25_.height); +#line 213 "bar.c" + } + } + } +#line 30 "../src/bar.vala" + cairo_fill (ctx); +#line 219 "bar.c" + } +#line 11 "../src/bar.vala" + _g_object_unref0 (points); +#line 223 "bar.c" + } +} + +static void +live_chart_bar_update_bounding_box (LiveChartBar* self, + LiveChartPoints* points, + LiveChartConfig* config) +{ + LiveChartPoint _tmp0_ = {0}; + LiveChartBounds* _tmp1_; + LiveChartBounds* _tmp2_; + gdouble _tmp3_; + gdouble _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint _tmp6_ = {0}; + LiveChartBoundaries _tmp7_ = {0}; + LiveChartBoundary _tmp8_; + LiveChartBounds* _tmp9_; + LiveChartBounds* _tmp10_; + gdouble _tmp11_; + gdouble _tmp12_; + LiveChartBoundingBox _tmp13_ = {0}; +#line 35 "../src/bar.vala" + g_return_if_fail (self != NULL); +#line 35 "../src/bar.vala" + g_return_if_fail (points != NULL); +#line 35 "../src/bar.vala" + g_return_if_fail (config != NULL); +#line 36 "../src/bar.vala" + live_chart_points_first (points, &_tmp0_); +#line 36 "../src/bar.vala" + _tmp1_ = live_chart_points_get_bounds (points); +#line 36 "../src/bar.vala" + _tmp2_ = _tmp1_; +#line 36 "../src/bar.vala" + _tmp3_ = live_chart_bounds_get_lower (_tmp2_); +#line 36 "../src/bar.vala" + _tmp4_ = _tmp3_; +#line 36 "../src/bar.vala" + live_chart_points_last (points, &_tmp5_); +#line 36 "../src/bar.vala" + live_chart_points_first (points, &_tmp6_); +#line 36 "../src/bar.vala" + live_chart_config_boundaries (config, &_tmp7_); +#line 36 "../src/bar.vala" + _tmp8_ = _tmp7_.y; +#line 36 "../src/bar.vala" + _tmp9_ = live_chart_points_get_bounds (points); +#line 36 "../src/bar.vala" + _tmp10_ = _tmp9_; +#line 36 "../src/bar.vala" + _tmp11_ = live_chart_bounds_get_lower (_tmp10_); +#line 36 "../src/bar.vala" + _tmp12_ = _tmp11_; +#line 36 "../src/bar.vala" + memset (&_tmp13_, 0, sizeof (LiveChartBoundingBox)); +#line 36 "../src/bar.vala" + _tmp13_.x = _tmp0_.x; +#line 36 "../src/bar.vala" + _tmp13_.y = _tmp4_; +#line 36 "../src/bar.vala" + _tmp13_.width = _tmp5_.x - _tmp6_.x; +#line 36 "../src/bar.vala" + _tmp13_.height = _tmp8_.max - _tmp12_; +#line 36 "../src/bar.vala" + ((LiveChartSerieRenderer*) self)->bounding_box = _tmp13_; +#line 290 "bar.c" +} + +static void +live_chart_bar_class_init (LiveChartBarClass * klass, + gpointer klass_data) +{ +#line 4 "../src/bar.vala" + live_chart_bar_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/bar.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_bar_real_draw; +#line 301 "bar.c" +} + +static void +live_chart_bar_instance_init (LiveChartBar * self, + gpointer klass) +{ +} + +static GType +live_chart_bar_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartBarClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_bar_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartBar), 0, (GInstanceInitFunc) live_chart_bar_instance_init, NULL }; + GType live_chart_bar_type_id; + live_chart_bar_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartBar", &g_define_type_info, 0); + return live_chart_bar_type_id; +} + +GType +live_chart_bar_get_type (void) +{ + static volatile gsize live_chart_bar_type_id__once = 0; + if (g_once_init_enter (&live_chart_bar_type_id__once)) { + GType live_chart_bar_type_id; + live_chart_bar_type_id = live_chart_bar_get_type_once (); + g_once_init_leave (&live_chart_bar_type_id__once, live_chart_bar_type_id); + } + return live_chart_bar_type_id__once; +} + diff --git a/iPDC/lib/liblivechart.so.p/bezier.c b/iPDC/lib/liblivechart.so.p/bezier.c new file mode 100644 index 0000000..eeadb37 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/bezier.c @@ -0,0 +1,534 @@ +/* bezier.c generated by valac 0.56.0, the Vala compiler + * generated from bezier.vala, do not modify */ + +#include +#include +#include +#include "livechart.h" +#include +#include +#include + +#define LIVE_CHART_POLYNOMIAL_TOLERANCE 1e-6 + +#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +VALA_EXTERN GeeList* live_chart_get_cubic_roots (gdouble C3, + gdouble C2, + gdouble C1, + gdouble C0); +static gdouble* _double_dup (gdouble* self); + +GeeList* +live_chart_find_intersections_between (LiveChartSegment* segment, + LiveChartBezierCurve* bezier) +{ + gdouble ax = 0.0; + LiveChartBezierCurve _tmp0_; + LiveChartCoord _tmp1_; + LiveChartBezierCurve _tmp2_; + LiveChartCoord _tmp3_; + LiveChartBezierCurve _tmp4_; + LiveChartCoord _tmp5_; + LiveChartBezierCurve _tmp6_; + LiveChartCoord _tmp7_; + gdouble ay = 0.0; + LiveChartBezierCurve _tmp8_; + LiveChartCoord _tmp9_; + LiveChartBezierCurve _tmp10_; + LiveChartCoord _tmp11_; + LiveChartBezierCurve _tmp12_; + LiveChartCoord _tmp13_; + LiveChartBezierCurve _tmp14_; + LiveChartCoord _tmp15_; + gdouble bx = 0.0; + LiveChartBezierCurve _tmp16_; + LiveChartCoord _tmp17_; + LiveChartBezierCurve _tmp18_; + LiveChartCoord _tmp19_; + LiveChartBezierCurve _tmp20_; + LiveChartCoord _tmp21_; + gdouble by = 0.0; + LiveChartBezierCurve _tmp22_; + LiveChartCoord _tmp23_; + LiveChartBezierCurve _tmp24_; + LiveChartCoord _tmp25_; + LiveChartBezierCurve _tmp26_; + LiveChartCoord _tmp27_; + gdouble cx = 0.0; + LiveChartBezierCurve _tmp28_; + LiveChartCoord _tmp29_; + LiveChartBezierCurve _tmp30_; + LiveChartCoord _tmp31_; + gdouble cy = 0.0; + LiveChartBezierCurve _tmp32_; + LiveChartCoord _tmp33_; + LiveChartBezierCurve _tmp34_; + LiveChartCoord _tmp35_; + gdouble dx = 0.0; + LiveChartBezierCurve _tmp36_; + LiveChartCoord _tmp37_; + gdouble dy = 0.0; + LiveChartBezierCurve _tmp38_; + LiveChartCoord _tmp39_; + gdouble vx = 0.0; + LiveChartSegment _tmp40_; + LiveChartCoord _tmp41_; + LiveChartSegment _tmp42_; + LiveChartCoord _tmp43_; + gdouble vy = 0.0; + LiveChartSegment _tmp44_; + LiveChartCoord _tmp45_; + LiveChartSegment _tmp46_; + LiveChartCoord _tmp47_; + gdouble d = 0.0; + LiveChartSegment _tmp48_; + LiveChartCoord _tmp49_; + LiveChartSegment _tmp50_; + LiveChartCoord _tmp51_; + GeeList* roots = NULL; + GeeList* _tmp52_; + GeeArrayList* results = NULL; + GeeArrayList* _tmp53_; + GeeList* result; +#line 6 "../src/bezier.vala" + g_return_val_if_fail (segment != NULL, NULL); +#line 6 "../src/bezier.vala" + g_return_val_if_fail (bezier != NULL, NULL); +#line 8 "../src/bezier.vala" + _tmp0_ = *bezier; +#line 8 "../src/bezier.vala" + _tmp1_ = _tmp0_.c1; +#line 8 "../src/bezier.vala" + _tmp2_ = *bezier; +#line 8 "../src/bezier.vala" + _tmp3_ = _tmp2_.c2; +#line 8 "../src/bezier.vala" + _tmp4_ = *bezier; +#line 8 "../src/bezier.vala" + _tmp5_ = _tmp4_.c3; +#line 8 "../src/bezier.vala" + _tmp6_ = *bezier; +#line 8 "../src/bezier.vala" + _tmp7_ = _tmp6_.c0; +#line 8 "../src/bezier.vala" + ax = ((3 * (_tmp1_.x - _tmp3_.x)) + _tmp5_.x) - _tmp7_.x; +#line 9 "../src/bezier.vala" + _tmp8_ = *bezier; +#line 9 "../src/bezier.vala" + _tmp9_ = _tmp8_.c1; +#line 9 "../src/bezier.vala" + _tmp10_ = *bezier; +#line 9 "../src/bezier.vala" + _tmp11_ = _tmp10_.c2; +#line 9 "../src/bezier.vala" + _tmp12_ = *bezier; +#line 9 "../src/bezier.vala" + _tmp13_ = _tmp12_.c3; +#line 9 "../src/bezier.vala" + _tmp14_ = *bezier; +#line 9 "../src/bezier.vala" + _tmp15_ = _tmp14_.c0; +#line 9 "../src/bezier.vala" + ay = ((3 * (_tmp9_.y - _tmp11_.y)) + _tmp13_.y) - _tmp15_.y; +#line 11 "../src/bezier.vala" + _tmp16_ = *bezier; +#line 11 "../src/bezier.vala" + _tmp17_ = _tmp16_.c0; +#line 11 "../src/bezier.vala" + _tmp18_ = *bezier; +#line 11 "../src/bezier.vala" + _tmp19_ = _tmp18_.c1; +#line 11 "../src/bezier.vala" + _tmp20_ = *bezier; +#line 11 "../src/bezier.vala" + _tmp21_ = _tmp20_.c2; +#line 11 "../src/bezier.vala" + bx = 3 * ((_tmp17_.x - (2 * _tmp19_.x)) + _tmp21_.x); +#line 12 "../src/bezier.vala" + _tmp22_ = *bezier; +#line 12 "../src/bezier.vala" + _tmp23_ = _tmp22_.c0; +#line 12 "../src/bezier.vala" + _tmp24_ = *bezier; +#line 12 "../src/bezier.vala" + _tmp25_ = _tmp24_.c1; +#line 12 "../src/bezier.vala" + _tmp26_ = *bezier; +#line 12 "../src/bezier.vala" + _tmp27_ = _tmp26_.c2; +#line 12 "../src/bezier.vala" + by = 3 * ((_tmp23_.y - (2 * _tmp25_.y)) + _tmp27_.y); +#line 14 "../src/bezier.vala" + _tmp28_ = *bezier; +#line 14 "../src/bezier.vala" + _tmp29_ = _tmp28_.c1; +#line 14 "../src/bezier.vala" + _tmp30_ = *bezier; +#line 14 "../src/bezier.vala" + _tmp31_ = _tmp30_.c0; +#line 14 "../src/bezier.vala" + cx = 3 * (_tmp29_.x - _tmp31_.x); +#line 15 "../src/bezier.vala" + _tmp32_ = *bezier; +#line 15 "../src/bezier.vala" + _tmp33_ = _tmp32_.c1; +#line 15 "../src/bezier.vala" + _tmp34_ = *bezier; +#line 15 "../src/bezier.vala" + _tmp35_ = _tmp34_.c0; +#line 15 "../src/bezier.vala" + cy = 3 * (_tmp33_.y - _tmp35_.y); +#line 17 "../src/bezier.vala" + _tmp36_ = *bezier; +#line 17 "../src/bezier.vala" + _tmp37_ = _tmp36_.c0; +#line 17 "../src/bezier.vala" + dx = _tmp37_.x; +#line 18 "../src/bezier.vala" + _tmp38_ = *bezier; +#line 18 "../src/bezier.vala" + _tmp39_ = _tmp38_.c0; +#line 18 "../src/bezier.vala" + dy = _tmp39_.y; +#line 20 "../src/bezier.vala" + _tmp40_ = *segment; +#line 20 "../src/bezier.vala" + _tmp41_ = _tmp40_.to; +#line 20 "../src/bezier.vala" + _tmp42_ = *segment; +#line 20 "../src/bezier.vala" + _tmp43_ = _tmp42_.from; +#line 20 "../src/bezier.vala" + vx = _tmp41_.y - _tmp43_.y; +#line 21 "../src/bezier.vala" + _tmp44_ = *segment; +#line 21 "../src/bezier.vala" + _tmp45_ = _tmp44_.from; +#line 21 "../src/bezier.vala" + _tmp46_ = *segment; +#line 21 "../src/bezier.vala" + _tmp47_ = _tmp46_.to; +#line 21 "../src/bezier.vala" + vy = _tmp45_.x - _tmp47_.x; +#line 23 "../src/bezier.vala" + _tmp48_ = *segment; +#line 23 "../src/bezier.vala" + _tmp49_ = _tmp48_.from; +#line 23 "../src/bezier.vala" + _tmp50_ = *segment; +#line 23 "../src/bezier.vala" + _tmp51_ = _tmp50_.from; +#line 23 "../src/bezier.vala" + d = (_tmp49_.x * vx) + (_tmp51_.y * vy); +#line 25 "../src/bezier.vala" + _tmp52_ = live_chart_get_cubic_roots ((vx * ax) + (vy * ay), (vx * bx) + (vy * by), (vx * cx) + (vy * cy), ((vx * dx) + (vy * dy)) - d); +#line 25 "../src/bezier.vala" + roots = _tmp52_; +#line 32 "../src/bezier.vala" + _tmp53_ = gee_array_list_new (LIVE_CHART_TYPE_COORD, (GBoxedCopyFunc) live_chart_coord_dup, (GDestroyNotify) live_chart_coord_free, NULL, NULL, NULL); +#line 32 "../src/bezier.vala" + results = _tmp53_; +#line 234 "bezier.c" + { + gint i = 0; +#line 33 "../src/bezier.vala" + i = 0; +#line 239 "bezier.c" + { + gboolean _tmp54_ = FALSE; +#line 33 "../src/bezier.vala" + _tmp54_ = TRUE; +#line 33 "../src/bezier.vala" + while (TRUE) { +#line 246 "bezier.c" + GeeList* _tmp56_; + gint _tmp57_; + gint _tmp58_; + gdouble* root = NULL; + GeeList* _tmp59_; + gpointer _tmp60_; + gboolean _tmp61_ = FALSE; + gdouble* _tmp62_; + GeeArrayList* _tmp64_; + gdouble* _tmp65_; + gdouble* _tmp66_; + gdouble* _tmp67_; + gdouble* _tmp68_; + gdouble* _tmp69_; + gdouble* _tmp70_; + LiveChartCoord _tmp71_ = {0}; +#line 33 "../src/bezier.vala" + if (!_tmp54_) { +#line 265 "bezier.c" + gint _tmp55_; +#line 33 "../src/bezier.vala" + _tmp55_ = i; +#line 33 "../src/bezier.vala" + i = _tmp55_ + 1; +#line 271 "bezier.c" + } +#line 33 "../src/bezier.vala" + _tmp54_ = FALSE; +#line 33 "../src/bezier.vala" + _tmp56_ = roots; +#line 33 "../src/bezier.vala" + _tmp57_ = gee_collection_get_size ((GeeCollection*) _tmp56_); +#line 33 "../src/bezier.vala" + _tmp58_ = _tmp57_; +#line 33 "../src/bezier.vala" + if (!(i < _tmp58_)) { +#line 33 "../src/bezier.vala" + break; +#line 285 "bezier.c" + } +#line 34 "../src/bezier.vala" + _tmp59_ = roots; +#line 34 "../src/bezier.vala" + _tmp60_ = gee_list_get (_tmp59_, i); +#line 34 "../src/bezier.vala" + root = (gdouble*) _tmp60_; +#line 35 "../src/bezier.vala" + _tmp62_ = root; +#line 35 "../src/bezier.vala" + if (((gdouble) 0) > (*_tmp62_)) { +#line 35 "../src/bezier.vala" + _tmp61_ = TRUE; +#line 299 "bezier.c" + } else { + gdouble* _tmp63_; +#line 35 "../src/bezier.vala" + _tmp63_ = root; +#line 35 "../src/bezier.vala" + _tmp61_ = (*_tmp63_) > ((gdouble) 1); +#line 306 "bezier.c" + } +#line 35 "../src/bezier.vala" + if (_tmp61_) { +#line 35 "../src/bezier.vala" + _g_free0 (root); +#line 35 "../src/bezier.vala" + continue; +#line 314 "bezier.c" + } +#line 36 "../src/bezier.vala" + _tmp64_ = results; +#line 36 "../src/bezier.vala" + _tmp65_ = root; +#line 36 "../src/bezier.vala" + _tmp66_ = root; +#line 36 "../src/bezier.vala" + _tmp67_ = root; +#line 36 "../src/bezier.vala" + _tmp68_ = root; +#line 36 "../src/bezier.vala" + _tmp69_ = root; +#line 36 "../src/bezier.vala" + _tmp70_ = root; +#line 36 "../src/bezier.vala" + _tmp71_.x = (((((ax * (*_tmp65_)) + bx) * (*_tmp66_)) + cx) * (*_tmp67_)) + dx; +#line 36 "../src/bezier.vala" + _tmp71_.y = (((((ay * (*_tmp68_)) + by) * (*_tmp69_)) + cy) * (*_tmp70_)) + dy; +#line 36 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp64_, &_tmp71_); +#line 33 "../src/bezier.vala" + _g_free0 (root); +#line 338 "bezier.c" + } + } + } +#line 42 "../src/bezier.vala" + result = (GeeList*) results; +#line 42 "../src/bezier.vala" + _g_object_unref0 (roots); +#line 42 "../src/bezier.vala" + return result; +#line 348 "bezier.c" +} + +static gdouble* +_double_dup (gdouble* self) +{ + gdouble* dup; +#line 47 "../src/bezier.vala" + dup = g_new0 (gdouble, 1); +#line 47 "../src/bezier.vala" + memcpy (dup, self, sizeof (gdouble)); +#line 47 "../src/bezier.vala" + return dup; +#line 361 "bezier.c" +} + +GeeList* +live_chart_get_cubic_roots (gdouble C3, + gdouble C2, + gdouble C1, + gdouble C0) +{ + GeeArrayList* roots = NULL; + GeeArrayList* _tmp0_; + gdouble c3 = 0.0; + gdouble c2 = 0.0; + gdouble c1 = 0.0; + gdouble c0 = 0.0; + gdouble a = 0.0; + gdouble b = 0.0; + gdouble offset = 0.0; + gdouble discrim = 0.0; + gdouble halfB = 0.0; + gdouble tmp = 0.0; + gdouble root = 0.0; + GeeList* result; +#line 47 "../src/bezier.vala" + _tmp0_ = gee_array_list_new (G_TYPE_DOUBLE, (GBoxedCopyFunc) _double_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 47 "../src/bezier.vala" + roots = _tmp0_; +#line 50 "../src/bezier.vala" + c3 = C3; +#line 51 "../src/bezier.vala" + c2 = C2 / c3; +#line 52 "../src/bezier.vala" + c1 = C1 / c3; +#line 53 "../src/bezier.vala" + c0 = C0 / c3; +#line 55 "../src/bezier.vala" + a = ((3 * c1) - (c2 * c2)) / 3; +#line 56 "../src/bezier.vala" + b = (((((2 * c2) * c2) * c2) - ((9 * c1) * c2)) + (27 * c0)) / 27; +#line 57 "../src/bezier.vala" + offset = c2 / 3; +#line 58 "../src/bezier.vala" + discrim = ((b * b) / 4) + (((a * a) * a) / 27); +#line 59 "../src/bezier.vala" + halfB = b / 2; +#line 61 "../src/bezier.vala" + tmp = (gdouble) 0; +#line 62 "../src/bezier.vala" + root = (gdouble) 0; +#line 64 "../src/bezier.vala" + if (fabs (discrim) <= LIVE_CHART_POLYNOMIAL_TOLERANCE) { +#line 64 "../src/bezier.vala" + discrim = (gdouble) 0; +#line 414 "bezier.c" + } +#line 66 "../src/bezier.vala" + if (discrim > ((gdouble) 0)) { +#line 418 "bezier.c" + gdouble e = 0.0; + GeeArrayList* _tmp1_; + gdouble _tmp2_; +#line 67 "../src/bezier.vala" + e = sqrt (discrim); +#line 69 "../src/bezier.vala" + tmp = (-halfB) + e; +#line 70 "../src/bezier.vala" + if (tmp >= ((gdouble) 0)) { +#line 70 "../src/bezier.vala" + root = pow (tmp, (gdouble) (1 / 3)); +#line 430 "bezier.c" + } else { +#line 71 "../src/bezier.vala" + root = -pow (-tmp, (gdouble) (1 / 3)); +#line 434 "bezier.c" + } +#line 73 "../src/bezier.vala" + tmp = (-halfB) - e; +#line 74 "../src/bezier.vala" + if (tmp >= ((gdouble) 0)) { +#line 74 "../src/bezier.vala" + root += pow (tmp, (gdouble) (1 / 3)); +#line 442 "bezier.c" + } else { +#line 75 "../src/bezier.vala" + root -= pow (-tmp, (gdouble) (1 / 3)); +#line 446 "bezier.c" + } +#line 77 "../src/bezier.vala" + _tmp1_ = roots; +#line 77 "../src/bezier.vala" + _tmp2_ = root - offset; +#line 77 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp1_, &_tmp2_); +#line 454 "bezier.c" + } else { +#line 78 "../src/bezier.vala" + if (discrim < ((gdouble) 0)) { +#line 458 "bezier.c" + gdouble distance = 0.0; + gdouble angle = 0.0; + gdouble _cos = 0.0; + gdouble _sin = 0.0; + gdouble sqrt3 = 0.0; + GeeArrayList* _tmp3_; + gdouble _tmp4_; + GeeArrayList* _tmp5_; + gdouble _tmp6_; + GeeArrayList* _tmp7_; + gdouble _tmp8_; +#line 79 "../src/bezier.vala" + distance = sqrt ((-a) / 3); +#line 80 "../src/bezier.vala" + angle = atan2 (sqrt (-discrim), -halfB) / 3; +#line 81 "../src/bezier.vala" + _cos = cos (angle); +#line 82 "../src/bezier.vala" + _sin = sin (angle); +#line 83 "../src/bezier.vala" + sqrt3 = sqrt ((gdouble) 3); +#line 85 "../src/bezier.vala" + _tmp3_ = roots; +#line 85 "../src/bezier.vala" + _tmp4_ = ((2 * distance) * _cos) - offset; +#line 85 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp3_, &_tmp4_); +#line 86 "../src/bezier.vala" + _tmp5_ = roots; +#line 86 "../src/bezier.vala" + _tmp6_ = ((-distance) * (_cos + (sqrt3 * _sin))) - offset; +#line 86 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp5_, &_tmp6_); +#line 87 "../src/bezier.vala" + _tmp7_ = roots; +#line 87 "../src/bezier.vala" + _tmp8_ = ((-distance) * (_cos - (sqrt3 * _sin))) - offset; +#line 87 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, &_tmp8_); +#line 498 "bezier.c" + } else { + GeeArrayList* _tmp9_; + gdouble _tmp10_; + GeeArrayList* _tmp11_; + gdouble _tmp12_; +#line 89 "../src/bezier.vala" + if (halfB >= ((gdouble) 0)) { +#line 89 "../src/bezier.vala" + tmp = -pow (halfB, (gdouble) (1 / 3)); +#line 508 "bezier.c" + } else { +#line 90 "../src/bezier.vala" + tmp = pow (-halfB, (gdouble) (1 / 3)); +#line 512 "bezier.c" + } +#line 92 "../src/bezier.vala" + _tmp9_ = roots; +#line 92 "../src/bezier.vala" + _tmp10_ = (2 * tmp) - offset; +#line 92 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, &_tmp10_); +#line 94 "../src/bezier.vala" + _tmp11_ = roots; +#line 94 "../src/bezier.vala" + _tmp12_ = (-tmp) - offset; +#line 94 "../src/bezier.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp11_, &_tmp12_); +#line 526 "bezier.c" + } + } +#line 97 "../src/bezier.vala" + result = (GeeList*) roots; +#line 97 "../src/bezier.vala" + return result; +#line 533 "bezier.c" +} + diff --git a/iPDC/lib/liblivechart.so.p/bounds.c b/iPDC/lib/liblivechart.so.p/bounds.c new file mode 100644 index 0000000..d5490e7 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/bounds.c @@ -0,0 +1,350 @@ +/* bounds.c generated by valac 0.56.0, the Vala compiler + * generated from bounds.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include + +enum { + LIVE_CHART_BOUNDS_0_PROPERTY, + LIVE_CHART_BOUNDS_LOWER_PROPERTY, + LIVE_CHART_BOUNDS_UPPER_PROPERTY, + LIVE_CHART_BOUNDS_NUM_PROPERTIES +}; +static GParamSpec* live_chart_bounds_properties[LIVE_CHART_BOUNDS_NUM_PROPERTIES]; + +struct _LiveChartBoundsPrivate { + gdouble _lower; + gdouble _upper; +}; + +static gint LiveChartBounds_private_offset; +static gpointer live_chart_bounds_parent_class = NULL; + +static void live_chart_bounds_set_lower (LiveChartBounds* self, + gdouble value); +static void live_chart_bounds_set_upper (LiveChartBounds* self, + gdouble value); +static void live_chart_bounds_finalize (GObject * obj); +static GType live_chart_bounds_get_type_once (void); +static void _vala_live_chart_bounds_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_bounds_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_bounds_get_instance_private (LiveChartBounds* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartBounds_private_offset); +} + +LiveChartBounds* +live_chart_bounds_construct (GType object_type, + gdouble lower, + gdouble upper) +{ + LiveChartBounds * self = NULL; +#line 12 "../src/bounds.vala" + self = (LiveChartBounds*) g_object_new (object_type, NULL); +#line 13 "../src/bounds.vala" + live_chart_bounds_set_lower (self, lower); +#line 14 "../src/bounds.vala" + live_chart_bounds_set_upper (self, upper); +#line 12 "../src/bounds.vala" + return self; +#line 62 "bounds.c" +} + +LiveChartBounds* +live_chart_bounds_new (gdouble lower, + gdouble upper) +{ +#line 12 "../src/bounds.vala" + return live_chart_bounds_construct (LIVE_CHART_TYPE_BOUNDS, lower, upper); +#line 71 "bounds.c" +} + +gboolean +live_chart_bounds_has_lower (LiveChartBounds* self) +{ + gdouble _tmp0_; + gboolean result; +#line 17 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 18 "../src/bounds.vala" + _tmp0_ = self->priv->_lower; +#line 18 "../src/bounds.vala" + result = !isnan (_tmp0_); +#line 18 "../src/bounds.vala" + return result; +#line 87 "bounds.c" +} + +gboolean +live_chart_bounds_has_upper (LiveChartBounds* self) +{ + gdouble _tmp0_; + gboolean result; +#line 21 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 22 "../src/bounds.vala" + _tmp0_ = self->priv->_upper; +#line 22 "../src/bounds.vala" + result = !isnan (_tmp0_); +#line 22 "../src/bounds.vala" + return result; +#line 103 "bounds.c" +} + +gboolean +live_chart_bounds_update (LiveChartBounds* self, + gdouble value) +{ + gboolean updated = FALSE; + gdouble _tmp0_; + gdouble _tmp1_; + gboolean result; +#line 25 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 26 "../src/bounds.vala" + updated = FALSE; +#line 27 "../src/bounds.vala" + if (!live_chart_bounds_has_lower (self)) { +#line 28 "../src/bounds.vala" + live_chart_bounds_set_lower (self, value); +#line 29 "../src/bounds.vala" + updated = TRUE; +#line 124 "bounds.c" + } +#line 32 "../src/bounds.vala" + if (!live_chart_bounds_has_upper (self)) { +#line 33 "../src/bounds.vala" + live_chart_bounds_set_upper (self, value); +#line 34 "../src/bounds.vala" + updated = TRUE; +#line 132 "bounds.c" + } +#line 36 "../src/bounds.vala" + _tmp0_ = self->priv->_lower; +#line 36 "../src/bounds.vala" + if (value < _tmp0_) { +#line 37 "../src/bounds.vala" + live_chart_bounds_set_lower (self, value); +#line 38 "../src/bounds.vala" + updated = TRUE; +#line 142 "bounds.c" + } +#line 40 "../src/bounds.vala" + _tmp1_ = self->priv->_upper; +#line 40 "../src/bounds.vala" + if (value > _tmp1_) { +#line 41 "../src/bounds.vala" + live_chart_bounds_set_upper (self, value); +#line 42 "../src/bounds.vala" + updated = TRUE; +#line 152 "bounds.c" + } +#line 44 "../src/bounds.vala" + result = updated; +#line 44 "../src/bounds.vala" + return result; +#line 158 "bounds.c" +} + +gdouble +live_chart_bounds_get_lower (LiveChartBounds* self) +{ + gdouble result; +#line 6 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 6 "../src/bounds.vala" + result = self->priv->_lower; +#line 6 "../src/bounds.vala" + return result; +#line 171 "bounds.c" +} + +static void +live_chart_bounds_set_lower (LiveChartBounds* self, + gdouble value) +{ + gdouble old_value; +#line 6 "../src/bounds.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/bounds.vala" + old_value = live_chart_bounds_get_lower (self); +#line 6 "../src/bounds.vala" + if (old_value != value) { +#line 6 "../src/bounds.vala" + self->priv->_lower = value; +#line 6 "../src/bounds.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_bounds_properties[LIVE_CHART_BOUNDS_LOWER_PROPERTY]); +#line 189 "bounds.c" + } +} + +gdouble +live_chart_bounds_get_upper (LiveChartBounds* self) +{ + gdouble result; +#line 9 "../src/bounds.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 9 "../src/bounds.vala" + result = self->priv->_upper; +#line 9 "../src/bounds.vala" + return result; +#line 203 "bounds.c" +} + +static void +live_chart_bounds_set_upper (LiveChartBounds* self, + gdouble value) +{ + gdouble old_value; +#line 9 "../src/bounds.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/bounds.vala" + old_value = live_chart_bounds_get_upper (self); +#line 9 "../src/bounds.vala" + if (old_value != value) { +#line 9 "../src/bounds.vala" + self->priv->_upper = value; +#line 9 "../src/bounds.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_bounds_properties[LIVE_CHART_BOUNDS_UPPER_PROPERTY]); +#line 221 "bounds.c" + } +} + +static void +live_chart_bounds_class_init (LiveChartBoundsClass * klass, + gpointer klass_data) +{ +#line 3 "../src/bounds.vala" + live_chart_bounds_parent_class = g_type_class_peek_parent (klass); +#line 3 "../src/bounds.vala" + g_type_class_adjust_private_offset (klass, &LiveChartBounds_private_offset); +#line 3 "../src/bounds.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_bounds_get_property; +#line 3 "../src/bounds.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_bounds_set_property; +#line 3 "../src/bounds.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_bounds_finalize; +#line 3 "../src/bounds.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BOUNDS_LOWER_PROPERTY, live_chart_bounds_properties[LIVE_CHART_BOUNDS_LOWER_PROPERTY] = g_param_spec_double ("lower", "lower", "lower", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 3 "../src/bounds.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_BOUNDS_UPPER_PROPERTY, live_chart_bounds_properties[LIVE_CHART_BOUNDS_UPPER_PROPERTY] = g_param_spec_double ("upper", "upper", "upper", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 243 "bounds.c" +} + +static void +live_chart_bounds_instance_init (LiveChartBounds * self, + gpointer klass) +{ +#line 3 "../src/bounds.vala" + self->priv = live_chart_bounds_get_instance_private (self); +#line 252 "bounds.c" +} + +static void +live_chart_bounds_finalize (GObject * obj) +{ + LiveChartBounds * self; +#line 3 "../src/bounds.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_BOUNDS, LiveChartBounds); +#line 3 "../src/bounds.vala" + G_OBJECT_CLASS (live_chart_bounds_parent_class)->finalize (obj); +#line 263 "bounds.c" +} + +static GType +live_chart_bounds_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartBoundsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_bounds_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartBounds), 0, (GInstanceInitFunc) live_chart_bounds_instance_init, NULL }; + GType live_chart_bounds_type_id; + live_chart_bounds_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartBounds", &g_define_type_info, 0); + LiveChartBounds_private_offset = g_type_add_instance_private (live_chart_bounds_type_id, sizeof (LiveChartBoundsPrivate)); + return live_chart_bounds_type_id; +} + +GType +live_chart_bounds_get_type (void) +{ + static volatile gsize live_chart_bounds_type_id__once = 0; + if (g_once_init_enter (&live_chart_bounds_type_id__once)) { + GType live_chart_bounds_type_id; + live_chart_bounds_type_id = live_chart_bounds_get_type_once (); + g_once_init_leave (&live_chart_bounds_type_id__once, live_chart_bounds_type_id); + } + return live_chart_bounds_type_id__once; +} + +static void +_vala_live_chart_bounds_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartBounds * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_BOUNDS, LiveChartBounds); +#line 3 "../src/bounds.vala" + switch (property_id) { +#line 3 "../src/bounds.vala" + case LIVE_CHART_BOUNDS_LOWER_PROPERTY: +#line 3 "../src/bounds.vala" + g_value_set_double (value, live_chart_bounds_get_lower (self)); +#line 3 "../src/bounds.vala" + break; +#line 3 "../src/bounds.vala" + case LIVE_CHART_BOUNDS_UPPER_PROPERTY: +#line 3 "../src/bounds.vala" + g_value_set_double (value, live_chart_bounds_get_upper (self)); +#line 3 "../src/bounds.vala" + break; +#line 310 "bounds.c" + default: +#line 3 "../src/bounds.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 3 "../src/bounds.vala" + break; +#line 316 "bounds.c" + } +} + +static void +_vala_live_chart_bounds_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartBounds * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_BOUNDS, LiveChartBounds); +#line 3 "../src/bounds.vala" + switch (property_id) { +#line 3 "../src/bounds.vala" + case LIVE_CHART_BOUNDS_LOWER_PROPERTY: +#line 3 "../src/bounds.vala" + live_chart_bounds_set_lower (self, g_value_get_double (value)); +#line 3 "../src/bounds.vala" + break; +#line 3 "../src/bounds.vala" + case LIVE_CHART_BOUNDS_UPPER_PROPERTY: +#line 3 "../src/bounds.vala" + live_chart_bounds_set_upper (self, g_value_get_double (value)); +#line 3 "../src/bounds.vala" + break; +#line 342 "bounds.c" + default: +#line 3 "../src/bounds.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 3 "../src/bounds.vala" + break; +#line 348 "bounds.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/chart.c b/iPDC/lib/liblivechart.so.p/chart.c new file mode 100644 index 0000000..0f5c6c1 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/chart.c @@ -0,0 +1,1103 @@ +/* chart.c generated by valac 0.56.0, the Vala compiler + * generated from chart.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_CHART_0_PROPERTY, + LIVE_CHART_CHART_GRID_PROPERTY, + LIVE_CHART_CHART_BACKGROUND_PROPERTY, + LIVE_CHART_CHART_LEGEND_PROPERTY, + LIVE_CHART_CHART_NUM_PROPERTIES +}; +static GParamSpec* live_chart_chart_properties[LIVE_CHART_CHART_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_config_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_config_unref (var), NULL))) +#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) +typedef struct _Block1Data Block1Data; +#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) + +struct _LiveChartChartPrivate { + LiveChartGrid* _grid; + LiveChartBackground* _background; + LiveChartLegend* _legend; + guint source_timeout; +}; + +struct _Block1Data { + int _ref_count_; + LiveChartChart* self; + gint64 ts; + LiveChartValues* values; + gint timespan_between_value; +}; + +static gint LiveChartChart_private_offset; +static gpointer live_chart_chart_parent_class = NULL; + +static void __lambda9_ (LiveChartChart* self, + GtkAllocation* allocation); +static void ___lambda9__gtk_widget_size_allocate (GtkWidget* _sender, + GtkAllocation* allocation, + gpointer self); +static gboolean live_chart_chart_render (LiveChartChart* self, + GtkWidget* _, + cairo_t* ctx); +static gboolean _live_chart_chart_render_gtk_widget_draw (GtkWidget* _sender, + cairo_t* cr, + gpointer self); +static Block1Data* block1_data_ref (Block1Data* _data1_); +static void block1_data_unref (void * _userdata_); +static gboolean __lambda11_ (Block1Data* _data1_, + gdouble* value); +static gboolean ___lambda11__gee_forall_func (gpointer g, + gpointer self); +static gboolean __lambda10_ (LiveChartChart* self); +static gboolean ___lambda10__gsource_func (gpointer self); +static void live_chart_chart_finalize (GObject * obj); +static GType live_chart_chart_get_type_once (void); +static void _vala_live_chart_chart_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_chart_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +GQuark +live_chart_chart_error_quark (void) +{ + return g_quark_from_static_string ("live-chart-chart-error-quark"); +} + +static GType +live_chart_chart_error_get_type_once (void) +{ + static const GEnumValue values[] = {{LIVE_CHART_CHART_ERROR_EXPORT_ERROR, "LIVE_CHART_CHART_ERROR_EXPORT_ERROR", "export-error"}, {LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, "LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND", "serie-not-found"}, {0, NULL, NULL}}; + GType live_chart_chart_error_type_id; + live_chart_chart_error_type_id = g_enum_register_static ("LiveChartChartError", values); + return live_chart_chart_error_type_id; +} + +GType +live_chart_chart_error_get_type (void) +{ + static volatile gsize live_chart_chart_error_type_id__once = 0; + if (g_once_init_enter (&live_chart_chart_error_type_id__once)) { + GType live_chart_chart_error_type_id; + live_chart_chart_error_type_id = live_chart_chart_error_get_type_once (); + g_once_init_leave (&live_chart_chart_error_type_id__once, live_chart_chart_error_type_id); + } + return live_chart_chart_error_type_id__once; +} + +static inline gpointer +live_chart_chart_get_instance_private (LiveChartChart* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartChart_private_offset); +} + +static gpointer +_live_chart_config_ref0 (gpointer self) +{ +#line 22 "../src/chart.vala" + return self ? live_chart_config_ref (self) : NULL; +#line 118 "chart.c" +} + +static void +__lambda9_ (LiveChartChart* self, + GtkAllocation* allocation) +{ + LiveChartConfig* _tmp0_; + GtkAllocation _tmp1_; + LiveChartConfig* _tmp2_; + GtkAllocation _tmp3_; +#line 23 "../src/chart.vala" + g_return_if_fail (allocation != NULL); +#line 24 "../src/chart.vala" + _tmp0_ = self->config; +#line 24 "../src/chart.vala" + _tmp1_ = *allocation; +#line 24 "../src/chart.vala" + live_chart_config_set_height (_tmp0_, _tmp1_.height); +#line 25 "../src/chart.vala" + _tmp2_ = self->config; +#line 25 "../src/chart.vala" + _tmp3_ = *allocation; +#line 25 "../src/chart.vala" + live_chart_config_set_width (_tmp2_, _tmp3_.width); +#line 143 "chart.c" +} + +static void +___lambda9__gtk_widget_size_allocate (GtkWidget* _sender, + GtkAllocation* allocation, + gpointer self) +{ +#line 23 "../src/chart.vala" + __lambda9_ ((LiveChartChart*) self, allocation); +#line 153 "chart.c" +} + +static gboolean +_live_chart_chart_render_gtk_widget_draw (GtkWidget* _sender, + cairo_t* cr, + gpointer self) +{ + gboolean result; + result = live_chart_chart_render ((LiveChartChart*) self, _sender, cr); +#line 28 "../src/chart.vala" + return result; +#line 165 "chart.c" +} + +LiveChartChart* +live_chart_chart_construct (GType object_type, + LiveChartConfig* config) +{ + LiveChartChart * self = NULL; + LiveChartConfig* _tmp0_; + LiveChartSeries* _tmp1_; +#line 21 "../src/chart.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 21 "../src/chart.vala" + self = (LiveChartChart*) g_object_new (object_type, NULL); +#line 22 "../src/chart.vala" + _tmp0_ = _live_chart_config_ref0 (config); +#line 22 "../src/chart.vala" + _live_chart_config_unref0 (self->config); +#line 22 "../src/chart.vala" + self->config = _tmp0_; +#line 23 "../src/chart.vala" + g_signal_connect_object ((GtkWidget*) self, "size-allocate", (GCallback) ___lambda9__gtk_widget_size_allocate, self, 0); +#line 28 "../src/chart.vala" + g_signal_connect_object ((GtkWidget*) self, "draw", (GCallback) _live_chart_chart_render_gtk_widget_draw, self, 0); +#line 30 "../src/chart.vala" + live_chart_chart_refresh_every (self, 100); +#line 32 "../src/chart.vala" + _tmp1_ = live_chart_series_new (self); +#line 32 "../src/chart.vala" + _g_object_unref0 (self->series); +#line 32 "../src/chart.vala" + self->series = _tmp1_; +#line 21 "../src/chart.vala" + return self; +#line 199 "chart.c" +} + +LiveChartChart* +live_chart_chart_new (LiveChartConfig* config) +{ +#line 21 "../src/chart.vala" + return live_chart_chart_construct (LIVE_CHART_TYPE_CHART, config); +#line 207 "chart.c" +} + +void +live_chart_chart_add_serie (LiveChartChart* self, + LiveChartSerie* serie) +{ + LiveChartSeries* _tmp0_; + LiveChartSerie* _tmp1_; + LiveChartSerie* _tmp2_; +#line 35 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 35 "../src/chart.vala" + g_return_if_fail (serie != NULL); +#line 36 "../src/chart.vala" + _tmp0_ = self->series; +#line 36 "../src/chart.vala" + _tmp1_ = live_chart_series_register (_tmp0_, serie); +#line 36 "../src/chart.vala" + _tmp2_ = _tmp1_; +#line 36 "../src/chart.vala" + _g_object_unref0 (_tmp2_); +#line 229 "chart.c" +} + +void +live_chart_chart_add_value (LiveChartChart* self, + LiveChartSerie* serie, + gdouble value) +{ +#line 40 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 40 "../src/chart.vala" + g_return_if_fail (serie != NULL); +#line 41 "../src/chart.vala" + live_chart_serie_add (serie, value); +#line 243 "chart.c" +} + +static gpointer +_g_error_copy0 (gpointer self) +{ +#line 50 "../src/chart.vala" + return self ? g_error_copy (self) : NULL; +#line 251 "chart.c" +} + +void +live_chart_chart_add_value_by_index (LiveChartChart* self, + gint serie_index, + gdouble value, + GError** error) +{ + GError* _inner_error0_ = NULL; +#line 45 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 263 "chart.c" + { + LiveChartSerie* serie = NULL; + LiveChartSeries* _tmp0_; + LiveChartSerie* _tmp1_; + LiveChartSerie* _tmp2_; +#line 47 "../src/chart.vala" + _tmp0_ = self->series; +#line 47 "../src/chart.vala" + _tmp1_ = live_chart_series_get (_tmp0_, serie_index, &_inner_error0_); +#line 47 "../src/chart.vala" + serie = _tmp1_; +#line 47 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 47 "../src/chart.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 279 "chart.c" + goto __catch0_live_chart_chart_error; + } +#line 47 "../src/chart.vala" + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 47 "../src/chart.vala" + g_clear_error (&_inner_error0_); +#line 47 "../src/chart.vala" + return; +#line 288 "chart.c" + } +#line 48 "../src/chart.vala" + _tmp2_ = serie; +#line 48 "../src/chart.vala" + live_chart_chart_add_value (self, _tmp2_, value); +#line 46 "../src/chart.vala" + _g_object_unref0 (serie); +#line 296 "chart.c" + } + goto __finally0; + __catch0_live_chart_chart_error: + { + GError* e = NULL; + GError* _tmp3_; + GError* _tmp4_; +#line 46 "../src/chart.vala" + e = _inner_error0_; +#line 46 "../src/chart.vala" + _inner_error0_ = NULL; +#line 50 "../src/chart.vala" + _tmp3_ = e; +#line 50 "../src/chart.vala" + _tmp4_ = _g_error_copy0 (_tmp3_); +#line 50 "../src/chart.vala" + _inner_error0_ = _tmp4_; +#line 50 "../src/chart.vala" + _g_error_free0 (e); +#line 316 "chart.c" + goto __finally0; + } + __finally0: +#line 46 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 46 "../src/chart.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 46 "../src/chart.vala" + g_propagate_error (error, _inner_error0_); +#line 46 "../src/chart.vala" + return; +#line 328 "chart.c" + } else { +#line 46 "../src/chart.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 46 "../src/chart.vala" + g_clear_error (&_inner_error0_); +#line 46 "../src/chart.vala" + return; +#line 336 "chart.c" + } + } +} + +static Block1Data* +block1_data_ref (Block1Data* _data1_) +{ +#line 54 "../src/chart.vala" + g_atomic_int_inc (&_data1_->_ref_count_); +#line 54 "../src/chart.vala" + return _data1_; +#line 348 "chart.c" +} + +static void +block1_data_unref (void * _userdata_) +{ + Block1Data* _data1_; + _data1_ = (Block1Data*) _userdata_; +#line 54 "../src/chart.vala" + if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) { +#line 358 "chart.c" + LiveChartChart* self; +#line 54 "../src/chart.vala" + self = _data1_->self; +#line 54 "../src/chart.vala" + _g_object_unref0 (_data1_->values); +#line 54 "../src/chart.vala" + _g_object_unref0 (self); +#line 54 "../src/chart.vala" + g_slice_free (Block1Data, _data1_); +#line 368 "chart.c" + } +} + +static gboolean +__lambda11_ (Block1Data* _data1_, + gdouble* value) +{ + LiveChartChart* self; + LiveChartTimestampedValue _tmp0_ = {0}; + LiveChartConfig* _tmp1_; + LiveChartYAxis* _tmp2_; + gboolean result; +#line 57 "../src/chart.vala" + self = _data1_->self; +#line 58 "../src/chart.vala" + _data1_->ts += (gint64) _data1_->timespan_between_value; +#line 59 "../src/chart.vala" + _tmp0_.timestamp = (gdouble) _data1_->ts; +#line 59 "../src/chart.vala" + _tmp0_.value = *value; +#line 59 "../src/chart.vala" + live_chart_values_add (_data1_->values, &_tmp0_); +#line 60 "../src/chart.vala" + _tmp1_ = self->config; +#line 60 "../src/chart.vala" + _tmp2_ = _tmp1_->y_axis; +#line 60 "../src/chart.vala" + live_chart_yaxis_update_bounds (_tmp2_, *value); +#line 61 "../src/chart.vala" + result = TRUE; +#line 61 "../src/chart.vala" + _g_free0 (value); +#line 61 "../src/chart.vala" + return result; +#line 403 "chart.c" +} + +static gboolean +___lambda11__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = __lambda11_ (self, (gdouble*) g); +#line 57 "../src/chart.vala" + return result; +#line 414 "chart.c" +} + +void +live_chart_chart_add_unaware_timestamp_collection (LiveChartChart* self, + LiveChartSerie* serie, + GeeCollection* collection, + gint timespan_between_value) +{ + Block1Data* _data1_; + gint _tmp0_; + gint _tmp1_; + LiveChartValues* _tmp2_; +#line 54 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 54 "../src/chart.vala" + g_return_if_fail (serie != NULL); +#line 54 "../src/chart.vala" + g_return_if_fail (collection != NULL); +#line 54 "../src/chart.vala" + _data1_ = g_slice_new0 (Block1Data); +#line 54 "../src/chart.vala" + _data1_->_ref_count_ = 1; +#line 54 "../src/chart.vala" + _data1_->self = g_object_ref (self); +#line 54 "../src/chart.vala" + _data1_->timespan_between_value = timespan_between_value; +#line 55 "../src/chart.vala" + _tmp0_ = gee_collection_get_size (collection); +#line 55 "../src/chart.vala" + _tmp1_ = _tmp0_; +#line 55 "../src/chart.vala" + _data1_->ts = (g_get_real_time () / 1000) - (_tmp1_ * _data1_->timespan_between_value); +#line 56 "../src/chart.vala" + _tmp2_ = live_chart_serie_get_values (serie); +#line 56 "../src/chart.vala" + _data1_->values = _tmp2_; +#line 57 "../src/chart.vala" + gee_traversable_foreach ((GeeTraversable*) collection, ___lambda11__gee_forall_func, _data1_); +#line 54 "../src/chart.vala" + block1_data_unref (_data1_); +#line 54 "../src/chart.vala" + _data1_ = NULL; +#line 457 "chart.c" +} + +void +live_chart_chart_add_unaware_timestamp_collection_by_index (LiveChartChart* self, + gint serie_index, + GeeCollection* collection, + gint timespan_between_value, + GError** error) +{ + GError* _inner_error0_ = NULL; +#line 65 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 65 "../src/chart.vala" + g_return_if_fail (collection != NULL); +#line 472 "chart.c" + { + LiveChartSerie* serie = NULL; + LiveChartSeries* _tmp0_; + LiveChartSerie* _tmp1_; + LiveChartSerie* _tmp2_; +#line 67 "../src/chart.vala" + _tmp0_ = self->series; +#line 67 "../src/chart.vala" + _tmp1_ = live_chart_series_get (_tmp0_, serie_index, &_inner_error0_); +#line 67 "../src/chart.vala" + serie = _tmp1_; +#line 67 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 67 "../src/chart.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 488 "chart.c" + goto __catch0_live_chart_chart_error; + } +#line 67 "../src/chart.vala" + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 67 "../src/chart.vala" + g_clear_error (&_inner_error0_); +#line 67 "../src/chart.vala" + return; +#line 497 "chart.c" + } +#line 68 "../src/chart.vala" + _tmp2_ = serie; +#line 68 "../src/chart.vala" + live_chart_chart_add_unaware_timestamp_collection (self, _tmp2_, collection, timespan_between_value); +#line 66 "../src/chart.vala" + _g_object_unref0 (serie); +#line 505 "chart.c" + } + goto __finally0; + __catch0_live_chart_chart_error: + { + GError* e = NULL; + GError* _tmp3_; + GError* _tmp4_; +#line 66 "../src/chart.vala" + e = _inner_error0_; +#line 66 "../src/chart.vala" + _inner_error0_ = NULL; +#line 70 "../src/chart.vala" + _tmp3_ = e; +#line 70 "../src/chart.vala" + _tmp4_ = _g_error_copy0 (_tmp3_); +#line 70 "../src/chart.vala" + _inner_error0_ = _tmp4_; +#line 70 "../src/chart.vala" + _g_error_free0 (e); +#line 525 "chart.c" + goto __finally0; + } + __finally0: +#line 66 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 66 "../src/chart.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 66 "../src/chart.vala" + g_propagate_error (error, _inner_error0_); +#line 66 "../src/chart.vala" + return; +#line 537 "chart.c" + } else { +#line 66 "../src/chart.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 66 "../src/chart.vala" + g_clear_error (&_inner_error0_); +#line 66 "../src/chart.vala" + return; +#line 545 "chart.c" + } + } +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 75 "../src/chart.vala" + return self ? g_object_ref (self) : NULL; +#line 555 "chart.c" +} + +void +live_chart_chart_to_png (LiveChartChart* self, + const gchar* filename, + GError** error) +{ + GdkWindow* window = NULL; + GdkWindow* _tmp0_; + GdkWindow* _tmp1_; + GdkPixbuf* pixbuff = NULL; + GdkPixbuf* _tmp3_; + GdkPixbuf* _tmp4_; + GError* _inner_error0_ = NULL; +#line 74 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 74 "../src/chart.vala" + g_return_if_fail (filename != NULL); +#line 75 "../src/chart.vala" + _tmp0_ = gtk_widget_get_window ((GtkWidget*) self); +#line 75 "../src/chart.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 75 "../src/chart.vala" + window = _tmp1_; +#line 76 "../src/chart.vala" + if (window == NULL) { +#line 582 "chart.c" + GError* _tmp2_; +#line 77 "../src/chart.vala" + _tmp2_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_EXPORT_ERROR, "Chart is not realized yet"); +#line 77 "../src/chart.vala" + _inner_error0_ = _tmp2_; +#line 77 "../src/chart.vala" + g_propagate_error (error, _inner_error0_); +#line 77 "../src/chart.vala" + _g_object_unref0 (window); +#line 77 "../src/chart.vala" + return; +#line 594 "chart.c" + } +#line 79 "../src/chart.vala" + _tmp3_ = gdk_pixbuf_get_from_window (window, 0, 0, gdk_window_get_width (window), gdk_window_get_height (window)); +#line 79 "../src/chart.vala" + pixbuff = _tmp3_; +#line 80 "../src/chart.vala" + _tmp4_ = pixbuff; +#line 80 "../src/chart.vala" + if (_tmp4_ != NULL) { +#line 604 "chart.c" + GdkPixbuf* _tmp5_; +#line 81 "../src/chart.vala" + _tmp5_ = pixbuff; +#line 81 "../src/chart.vala" + gdk_pixbuf_save (_tmp5_, filename, "png", &_inner_error0_, NULL); +#line 81 "../src/chart.vala" + if (G_UNLIKELY (_inner_error0_ != NULL)) { +#line 81 "../src/chart.vala" + g_propagate_error (error, _inner_error0_); +#line 81 "../src/chart.vala" + _g_object_unref0 (pixbuff); +#line 81 "../src/chart.vala" + _g_object_unref0 (window); +#line 81 "../src/chart.vala" + return; +#line 620 "chart.c" + } + } +#line 74 "../src/chart.vala" + _g_object_unref0 (pixbuff); +#line 74 "../src/chart.vala" + _g_object_unref0 (window); +#line 627 "chart.c" +} + +static gboolean +__lambda10_ (LiveChartChart* self) +{ + gboolean result; +#line 90 "../src/chart.vala" + gtk_widget_queue_draw ((GtkWidget*) self); +#line 91 "../src/chart.vala" + result = TRUE; +#line 91 "../src/chart.vala" + return result; +#line 640 "chart.c" +} + +static gboolean +___lambda10__gsource_func (gpointer self) +{ + gboolean result; + result = __lambda10_ ((LiveChartChart*) self); +#line 89 "../src/chart.vala" + return result; +#line 650 "chart.c" +} + +void +live_chart_chart_refresh_every (LiveChartChart* self, + gint ms) +{ +#line 85 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 86 "../src/chart.vala" + if (self->priv->source_timeout != ((guint) 0)) { +#line 87 "../src/chart.vala" + g_source_remove (self->priv->source_timeout); +#line 663 "chart.c" + } +#line 89 "../src/chart.vala" + self->priv->source_timeout = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) ms, ___lambda10__gsource_func, g_object_ref (self), g_object_unref); +#line 667 "chart.c" +} + +static gboolean +live_chart_chart_render (LiveChartChart* self, + GtkWidget* _, + cairo_t* ctx) +{ + LiveChartConfig* _tmp0_; + LiveChartLegend* _tmp1_; + LiveChartBackground* _tmp2_; + LiveChartConfig* _tmp3_; + LiveChartGrid* _tmp4_; + LiveChartConfig* _tmp5_; + LiveChartLegend* _tmp6_; + LiveChartBoundaries boundaries = {0}; + LiveChartConfig* _tmp9_; + LiveChartBoundaries _tmp10_ = {0}; + gboolean result; +#line 95 "../src/chart.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 95 "../src/chart.vala" + g_return_val_if_fail (_ != NULL, FALSE); +#line 95 "../src/chart.vala" + g_return_val_if_fail (ctx != NULL, FALSE); +#line 97 "../src/chart.vala" + _tmp0_ = self->config; +#line 97 "../src/chart.vala" + _tmp1_ = self->priv->_legend; +#line 97 "../src/chart.vala" + live_chart_config_configure (_tmp0_, ctx, _tmp1_); +#line 99 "../src/chart.vala" + _tmp2_ = self->priv->_background; +#line 99 "../src/chart.vala" + _tmp3_ = self->config; +#line 99 "../src/chart.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp2_, ctx, _tmp3_); +#line 100 "../src/chart.vala" + _tmp4_ = self->priv->_grid; +#line 100 "../src/chart.vala" + _tmp5_ = self->config; +#line 100 "../src/chart.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp4_, ctx, _tmp5_); +#line 101 "../src/chart.vala" + _tmp6_ = self->priv->_legend; +#line 101 "../src/chart.vala" + if (_tmp6_ != NULL) { +#line 714 "chart.c" + LiveChartLegend* _tmp7_; + LiveChartConfig* _tmp8_; +#line 101 "../src/chart.vala" + _tmp7_ = self->priv->_legend; +#line 101 "../src/chart.vala" + _tmp8_ = self->config; +#line 101 "../src/chart.vala" + live_chart_legend_draw (_tmp7_, ctx, _tmp8_); +#line 723 "chart.c" + } +#line 103 "../src/chart.vala" + _tmp9_ = self->config; +#line 103 "../src/chart.vala" + live_chart_config_boundaries (_tmp9_, &_tmp10_); +#line 103 "../src/chart.vala" + boundaries = _tmp10_; +#line 731 "chart.c" + { + GeeIterator* _serie_it = NULL; + LiveChartSeries* _tmp11_; + GeeIterator* _tmp12_; +#line 104 "../src/chart.vala" + _tmp11_ = self->series; +#line 104 "../src/chart.vala" + _tmp12_ = live_chart_series_iterator (_tmp11_); +#line 104 "../src/chart.vala" + _serie_it = _tmp12_; +#line 104 "../src/chart.vala" + while (TRUE) { +#line 744 "chart.c" + GeeIterator* _tmp13_; + LiveChartDrawable* serie = NULL; + GeeIterator* _tmp14_; + gpointer _tmp15_; + LiveChartBoundaries _tmp16_; + LiveChartBoundary _tmp17_; + LiveChartBoundaries _tmp18_; + LiveChartBoundary _tmp19_; + LiveChartBoundaries _tmp20_; + LiveChartBoundary _tmp21_; + LiveChartBoundaries _tmp22_; + LiveChartBoundary _tmp23_; + LiveChartDrawable* _tmp24_; + LiveChartConfig* _tmp25_; +#line 104 "../src/chart.vala" + _tmp13_ = _serie_it; +#line 104 "../src/chart.vala" + if (!gee_iterator_next (_tmp13_)) { +#line 104 "../src/chart.vala" + break; +#line 765 "chart.c" + } +#line 104 "../src/chart.vala" + _tmp14_ = _serie_it; +#line 104 "../src/chart.vala" + _tmp15_ = gee_iterator_get (_tmp14_); +#line 104 "../src/chart.vala" + serie = (LiveChartDrawable*) ((LiveChartSerie*) _tmp15_); +#line 105 "../src/chart.vala" + _tmp16_ = boundaries; +#line 105 "../src/chart.vala" + _tmp17_ = _tmp16_.x; +#line 105 "../src/chart.vala" + _tmp18_ = boundaries; +#line 105 "../src/chart.vala" + _tmp19_ = _tmp18_.y; +#line 105 "../src/chart.vala" + _tmp20_ = boundaries; +#line 105 "../src/chart.vala" + _tmp21_ = _tmp20_.x; +#line 105 "../src/chart.vala" + _tmp22_ = boundaries; +#line 105 "../src/chart.vala" + _tmp23_ = _tmp22_.y; +#line 105 "../src/chart.vala" + cairo_rectangle (ctx, (gdouble) _tmp17_.min, (gdouble) _tmp19_.min, (gdouble) _tmp21_.max, (gdouble) _tmp23_.max); +#line 106 "../src/chart.vala" + cairo_clip (ctx); +#line 107 "../src/chart.vala" + _tmp24_ = serie; +#line 107 "../src/chart.vala" + _tmp25_ = self->config; +#line 107 "../src/chart.vala" + live_chart_drawable_draw (_tmp24_, ctx, _tmp25_); +#line 104 "../src/chart.vala" + _g_object_unref0 (serie); +#line 801 "chart.c" + } +#line 104 "../src/chart.vala" + _g_object_unref0 (_serie_it); +#line 805 "chart.c" + } +#line 110 "../src/chart.vala" + result = TRUE; +#line 110 "../src/chart.vala" + return result; +#line 811 "chart.c" +} + +LiveChartGrid* +live_chart_chart_get_grid (LiveChartChart* self) +{ + LiveChartGrid* result; + LiveChartGrid* _tmp0_; +#line 13 "../src/chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 13 "../src/chart.vala" + _tmp0_ = self->priv->_grid; +#line 13 "../src/chart.vala" + result = _tmp0_; +#line 13 "../src/chart.vala" + return result; +#line 827 "chart.c" +} + +void +live_chart_chart_set_grid (LiveChartChart* self, + LiveChartGrid* value) +{ + LiveChartGrid* old_value; +#line 13 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 13 "../src/chart.vala" + old_value = live_chart_chart_get_grid (self); +#line 13 "../src/chart.vala" + if (old_value != value) { +#line 841 "chart.c" + LiveChartGrid* _tmp0_; +#line 13 "../src/chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 13 "../src/chart.vala" + _g_object_unref0 (self->priv->_grid); +#line 13 "../src/chart.vala" + self->priv->_grid = _tmp0_; +#line 13 "../src/chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_chart_properties[LIVE_CHART_CHART_GRID_PROPERTY]); +#line 851 "chart.c" + } +} + +LiveChartBackground* +live_chart_chart_get_background (LiveChartChart* self) +{ + LiveChartBackground* result; + LiveChartBackground* _tmp0_; +#line 14 "../src/chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 14 "../src/chart.vala" + _tmp0_ = self->priv->_background; +#line 14 "../src/chart.vala" + result = _tmp0_; +#line 14 "../src/chart.vala" + return result; +#line 868 "chart.c" +} + +void +live_chart_chart_set_background (LiveChartChart* self, + LiveChartBackground* value) +{ + LiveChartBackground* old_value; +#line 14 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/chart.vala" + old_value = live_chart_chart_get_background (self); +#line 14 "../src/chart.vala" + if (old_value != value) { +#line 882 "chart.c" + LiveChartBackground* _tmp0_; +#line 14 "../src/chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 14 "../src/chart.vala" + _g_object_unref0 (self->priv->_background); +#line 14 "../src/chart.vala" + self->priv->_background = _tmp0_; +#line 14 "../src/chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_chart_properties[LIVE_CHART_CHART_BACKGROUND_PROPERTY]); +#line 892 "chart.c" + } +} + +LiveChartLegend* +live_chart_chart_get_legend (LiveChartChart* self) +{ + LiveChartLegend* result; + LiveChartLegend* _tmp0_; +#line 15 "../src/chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 15 "../src/chart.vala" + _tmp0_ = self->priv->_legend; +#line 15 "../src/chart.vala" + result = _tmp0_; +#line 15 "../src/chart.vala" + return result; +#line 909 "chart.c" +} + +void +live_chart_chart_set_legend (LiveChartChart* self, + LiveChartLegend* value) +{ + LiveChartLegend* old_value; +#line 15 "../src/chart.vala" + g_return_if_fail (self != NULL); +#line 15 "../src/chart.vala" + old_value = live_chart_chart_get_legend (self); +#line 15 "../src/chart.vala" + if (old_value != value) { +#line 923 "chart.c" + LiveChartLegend* _tmp0_; +#line 15 "../src/chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 15 "../src/chart.vala" + _g_object_unref0 (self->priv->_legend); +#line 15 "../src/chart.vala" + self->priv->_legend = _tmp0_; +#line 15 "../src/chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_chart_properties[LIVE_CHART_CHART_LEGEND_PROPERTY]); +#line 933 "chart.c" + } +} + +static void +live_chart_chart_class_init (LiveChartChartClass * klass, + gpointer klass_data) +{ +#line 11 "../src/chart.vala" + live_chart_chart_parent_class = g_type_class_peek_parent (klass); +#line 11 "../src/chart.vala" + g_type_class_adjust_private_offset (klass, &LiveChartChart_private_offset); +#line 11 "../src/chart.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_chart_get_property; +#line 11 "../src/chart.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_chart_set_property; +#line 11 "../src/chart.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_chart_finalize; +#line 11 "../src/chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_CHART_GRID_PROPERTY, live_chart_chart_properties[LIVE_CHART_CHART_GRID_PROPERTY] = g_param_spec_object ("grid", "grid", "grid", LIVE_CHART_TYPE_GRID, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 11 "../src/chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_CHART_BACKGROUND_PROPERTY, live_chart_chart_properties[LIVE_CHART_CHART_BACKGROUND_PROPERTY] = g_param_spec_object ("background", "background", "background", LIVE_CHART_TYPE_BACKGROUND, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 11 "../src/chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_CHART_LEGEND_PROPERTY, live_chart_chart_properties[LIVE_CHART_CHART_LEGEND_PROPERTY] = g_param_spec_object ("legend", "legend", "legend", LIVE_CHART_TYPE_LEGEND, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 957 "chart.c" +} + +static void +live_chart_chart_instance_init (LiveChartChart * self, + gpointer klass) +{ + LiveChartGrid* _tmp0_; + LiveChartBackground* _tmp1_; + LiveChartHorizontalLegend* _tmp2_; +#line 11 "../src/chart.vala" + self->priv = live_chart_chart_get_instance_private (self); +#line 13 "../src/chart.vala" + _tmp0_ = live_chart_grid_new (); +#line 13 "../src/chart.vala" + self->priv->_grid = _tmp0_; +#line 14 "../src/chart.vala" + _tmp1_ = live_chart_background_new (); +#line 14 "../src/chart.vala" + self->priv->_background = _tmp1_; +#line 15 "../src/chart.vala" + _tmp2_ = live_chart_horizontal_legend_new (); +#line 15 "../src/chart.vala" + self->priv->_legend = (LiveChartLegend*) _tmp2_; +#line 19 "../src/chart.vala" + self->priv->source_timeout = (guint) 0; +#line 983 "chart.c" +} + +static void +live_chart_chart_finalize (GObject * obj) +{ + LiveChartChart * self; +#line 11 "../src/chart.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_CHART, LiveChartChart); +#line 13 "../src/chart.vala" + _g_object_unref0 (self->priv->_grid); +#line 14 "../src/chart.vala" + _g_object_unref0 (self->priv->_background); +#line 15 "../src/chart.vala" + _g_object_unref0 (self->priv->_legend); +#line 16 "../src/chart.vala" + _live_chart_config_unref0 (self->config); +#line 17 "../src/chart.vala" + _g_object_unref0 (self->series); +#line 11 "../src/chart.vala" + G_OBJECT_CLASS (live_chart_chart_parent_class)->finalize (obj); +#line 1004 "chart.c" +} + +static GType +live_chart_chart_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartChartClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_chart_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartChart), 0, (GInstanceInitFunc) live_chart_chart_instance_init, NULL }; + GType live_chart_chart_type_id; + live_chart_chart_type_id = g_type_register_static (gtk_drawing_area_get_type (), "LiveChartChart", &g_define_type_info, 0); + LiveChartChart_private_offset = g_type_add_instance_private (live_chart_chart_type_id, sizeof (LiveChartChartPrivate)); + return live_chart_chart_type_id; +} + +GType +live_chart_chart_get_type (void) +{ + static volatile gsize live_chart_chart_type_id__once = 0; + if (g_once_init_enter (&live_chart_chart_type_id__once)) { + GType live_chart_chart_type_id; + live_chart_chart_type_id = live_chart_chart_get_type_once (); + g_once_init_leave (&live_chart_chart_type_id__once, live_chart_chart_type_id); + } + return live_chart_chart_type_id__once; +} + +static void +_vala_live_chart_chart_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartChart * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_CHART, LiveChartChart); +#line 11 "../src/chart.vala" + switch (property_id) { +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_GRID_PROPERTY: +#line 11 "../src/chart.vala" + g_value_set_object (value, live_chart_chart_get_grid (self)); +#line 11 "../src/chart.vala" + break; +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_BACKGROUND_PROPERTY: +#line 11 "../src/chart.vala" + g_value_set_object (value, live_chart_chart_get_background (self)); +#line 11 "../src/chart.vala" + break; +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_LEGEND_PROPERTY: +#line 11 "../src/chart.vala" + g_value_set_object (value, live_chart_chart_get_legend (self)); +#line 11 "../src/chart.vala" + break; +#line 1057 "chart.c" + default: +#line 11 "../src/chart.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 11 "../src/chart.vala" + break; +#line 1063 "chart.c" + } +} + +static void +_vala_live_chart_chart_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartChart * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_CHART, LiveChartChart); +#line 11 "../src/chart.vala" + switch (property_id) { +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_GRID_PROPERTY: +#line 11 "../src/chart.vala" + live_chart_chart_set_grid (self, g_value_get_object (value)); +#line 11 "../src/chart.vala" + break; +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_BACKGROUND_PROPERTY: +#line 11 "../src/chart.vala" + live_chart_chart_set_background (self, g_value_get_object (value)); +#line 11 "../src/chart.vala" + break; +#line 11 "../src/chart.vala" + case LIVE_CHART_CHART_LEGEND_PROPERTY: +#line 11 "../src/chart.vala" + live_chart_chart_set_legend (self, g_value_get_object (value)); +#line 11 "../src/chart.vala" + break; +#line 1095 "chart.c" + default: +#line 11 "../src/chart.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 11 "../src/chart.vala" + break; +#line 1101 "chart.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/config.c b/iPDC/lib/liblivechart.so.p/config.c new file mode 100644 index 0000000..c7dd09d --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/config.c @@ -0,0 +1,1046 @@ +/* config.c generated by valac 0.56.0, the Vala compiler + * generated from config.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include + +#define _live_chart_yaxis_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_yaxis_unref (var), NULL))) +#define _live_chart_xaxis_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_xaxis_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) +typedef struct _LiveChartParamSpecConfig LiveChartParamSpecConfig; + +struct _LiveChartConfigPrivate { + gint _width; + gint _height; +}; + +struct _LiveChartParamSpecConfig { + GParamSpec parent_instance; +}; + +static gint LiveChartConfig_private_offset; +static gpointer live_chart_config_parent_class = NULL; + +static void live_chart_config_configure_y_max_labels_extents (LiveChartConfig* self, + cairo_t* ctx); +static void live_chart_config_configure_x_max_labels_extents (LiveChartConfig* self, + cairo_t* ctx); +static void live_chart_config_finalize (LiveChartConfig * obj); +static GType live_chart_config_get_type_once (void); + +static GType +live_chart_auto_padding_get_type_once (void) +{ + static const GFlagsValue values[] = {{LIVE_CHART_AUTO_PADDING_NONE, "LIVE_CHART_AUTO_PADDING_NONE", "none"}, {LIVE_CHART_AUTO_PADDING_TOP, "LIVE_CHART_AUTO_PADDING_TOP", "top"}, {LIVE_CHART_AUTO_PADDING_RIGHT, "LIVE_CHART_AUTO_PADDING_RIGHT", "right"}, {LIVE_CHART_AUTO_PADDING_BOTTOM, "LIVE_CHART_AUTO_PADDING_BOTTOM", "bottom"}, {LIVE_CHART_AUTO_PADDING_LEFT, "LIVE_CHART_AUTO_PADDING_LEFT", "left"}, {0, NULL, NULL}}; + GType live_chart_auto_padding_type_id; + live_chart_auto_padding_type_id = g_flags_register_static ("LiveChartAutoPadding", values); + return live_chart_auto_padding_type_id; +} + +GType +live_chart_auto_padding_get_type (void) +{ + static volatile gsize live_chart_auto_padding_type_id__once = 0; + if (g_once_init_enter (&live_chart_auto_padding_type_id__once)) { + GType live_chart_auto_padding_type_id; + live_chart_auto_padding_type_id = live_chart_auto_padding_get_type_once (); + g_once_init_leave (&live_chart_auto_padding_type_id__once, live_chart_auto_padding_type_id); + } + return live_chart_auto_padding_type_id__once; +} + +void +live_chart_padding_init (LiveChartPadding *self) +{ +#line 21 "../src/config.vala" + memset (self, 0, sizeof (LiveChartPadding)); +#line 22 "../src/config.vala" + (*self).smart = ((LIVE_CHART_AUTO_PADDING_TOP | LIVE_CHART_AUTO_PADDING_RIGHT) | LIVE_CHART_AUTO_PADDING_BOTTOM) | LIVE_CHART_AUTO_PADDING_LEFT; +#line 23 "../src/config.vala" + (*self).top = 20; +#line 24 "../src/config.vala" + (*self).right = 20; +#line 25 "../src/config.vala" + (*self).bottom = 20; +#line 26 "../src/config.vala" + (*self).left = 20; +#line 73 "config.c" +} + +LiveChartPadding* +live_chart_padding_dup (const LiveChartPadding* self) +{ + LiveChartPadding* dup; +#line 14 "../src/config.vala" + dup = g_new0 (LiveChartPadding, 1); +#line 14 "../src/config.vala" + memcpy (dup, self, sizeof (LiveChartPadding)); +#line 14 "../src/config.vala" + return dup; +#line 86 "config.c" +} + +void +live_chart_padding_free (LiveChartPadding* self) +{ +#line 14 "../src/config.vala" + g_free (self); +#line 94 "config.c" +} + +static GType +live_chart_padding_get_type_once (void) +{ + GType live_chart_padding_type_id; + live_chart_padding_type_id = g_boxed_type_register_static ("LiveChartPadding", (GBoxedCopyFunc) live_chart_padding_dup, (GBoxedFreeFunc) live_chart_padding_free); + return live_chart_padding_type_id; +} + +GType +live_chart_padding_get_type (void) +{ + static volatile gsize live_chart_padding_type_id__once = 0; + if (g_once_init_enter (&live_chart_padding_type_id__once)) { + GType live_chart_padding_type_id; + live_chart_padding_type_id = live_chart_padding_get_type_once (); + g_once_init_leave (&live_chart_padding_type_id__once, live_chart_padding_type_id); + } + return live_chart_padding_type_id__once; +} + +LiveChartBoundary* +live_chart_boundary_dup (const LiveChartBoundary* self) +{ + LiveChartBoundary* dup; +#line 30 "../src/config.vala" + dup = g_new0 (LiveChartBoundary, 1); +#line 30 "../src/config.vala" + memcpy (dup, self, sizeof (LiveChartBoundary)); +#line 30 "../src/config.vala" + return dup; +#line 127 "config.c" +} + +void +live_chart_boundary_free (LiveChartBoundary* self) +{ +#line 30 "../src/config.vala" + g_free (self); +#line 135 "config.c" +} + +static GType +live_chart_boundary_get_type_once (void) +{ + GType live_chart_boundary_type_id; + live_chart_boundary_type_id = g_boxed_type_register_static ("LiveChartBoundary", (GBoxedCopyFunc) live_chart_boundary_dup, (GBoxedFreeFunc) live_chart_boundary_free); + return live_chart_boundary_type_id; +} + +GType +live_chart_boundary_get_type (void) +{ + static volatile gsize live_chart_boundary_type_id__once = 0; + if (g_once_init_enter (&live_chart_boundary_type_id__once)) { + GType live_chart_boundary_type_id; + live_chart_boundary_type_id = live_chart_boundary_get_type_once (); + g_once_init_leave (&live_chart_boundary_type_id__once, live_chart_boundary_type_id); + } + return live_chart_boundary_type_id__once; +} + +LiveChartBoundaries* +live_chart_boundaries_dup (const LiveChartBoundaries* self) +{ + LiveChartBoundaries* dup; +#line 35 "../src/config.vala" + dup = g_new0 (LiveChartBoundaries, 1); +#line 35 "../src/config.vala" + memcpy (dup, self, sizeof (LiveChartBoundaries)); +#line 35 "../src/config.vala" + return dup; +#line 168 "config.c" +} + +void +live_chart_boundaries_free (LiveChartBoundaries* self) +{ +#line 35 "../src/config.vala" + g_free (self); +#line 176 "config.c" +} + +static GType +live_chart_boundaries_get_type_once (void) +{ + GType live_chart_boundaries_type_id; + live_chart_boundaries_type_id = g_boxed_type_register_static ("LiveChartBoundaries", (GBoxedCopyFunc) live_chart_boundaries_dup, (GBoxedFreeFunc) live_chart_boundaries_free); + return live_chart_boundaries_type_id; +} + +GType +live_chart_boundaries_get_type (void) +{ + static volatile gsize live_chart_boundaries_type_id__once = 0; + if (g_once_init_enter (&live_chart_boundaries_type_id__once)) { + GType live_chart_boundaries_type_id; + live_chart_boundaries_type_id = live_chart_boundaries_get_type_once (); + g_once_init_leave (&live_chart_boundaries_type_id__once, live_chart_boundaries_type_id); + } + return live_chart_boundaries_type_id__once; +} + +static inline gpointer +live_chart_config_get_instance_private (LiveChartConfig* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartConfig_private_offset); +} + +void +live_chart_config_boundaries (LiveChartConfig* self, + LiveChartBoundaries* result) +{ + LiveChartPadding _tmp0_; + gint _tmp1_; + LiveChartPadding _tmp2_; + LiveChartBoundary _tmp3_ = {0}; + LiveChartPadding _tmp4_; + gint _tmp5_; + LiveChartPadding _tmp6_; + LiveChartBoundary _tmp7_ = {0}; + gint _tmp8_; + LiveChartPadding _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + LiveChartPadding _tmp12_; + LiveChartPadding _tmp13_; + LiveChartBoundaries _tmp14_ = {0}; +#line 59 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 60 "../src/config.vala" + _tmp0_ = self->padding; +#line 60 "../src/config.vala" + _tmp1_ = self->priv->_width; +#line 60 "../src/config.vala" + _tmp2_ = self->padding; +#line 60 "../src/config.vala" + _tmp3_.min = _tmp0_.left; +#line 60 "../src/config.vala" + _tmp3_.max = _tmp1_ - _tmp2_.right; +#line 60 "../src/config.vala" + _tmp4_ = self->padding; +#line 60 "../src/config.vala" + _tmp5_ = self->priv->_height; +#line 60 "../src/config.vala" + _tmp6_ = self->padding; +#line 60 "../src/config.vala" + _tmp7_.min = _tmp4_.top; +#line 60 "../src/config.vala" + _tmp7_.max = _tmp5_ - _tmp6_.bottom; +#line 60 "../src/config.vala" + _tmp8_ = self->priv->_width; +#line 60 "../src/config.vala" + _tmp9_ = self->padding; +#line 60 "../src/config.vala" + _tmp10_ = self->padding; +#line 60 "../src/config.vala" + _tmp11_ = self->priv->_height; +#line 60 "../src/config.vala" + _tmp12_ = self->padding; +#line 60 "../src/config.vala" + _tmp13_ = self->padding; +#line 60 "../src/config.vala" + memset (&_tmp14_, 0, sizeof (LiveChartBoundaries)); +#line 60 "../src/config.vala" + _tmp14_.x = _tmp3_; +#line 60 "../src/config.vala" + _tmp14_.y = _tmp7_; +#line 60 "../src/config.vala" + _tmp14_.width = (_tmp8_ - _tmp9_.right) - _tmp10_.left; +#line 60 "../src/config.vala" + _tmp14_.height = (_tmp11_ - _tmp12_.bottom) - _tmp13_.top; +#line 60 "../src/config.vala" + *result = _tmp14_; +#line 60 "../src/config.vala" + return; +#line 272 "config.c" +} + +void +live_chart_config_configure (LiveChartConfig* self, + cairo_t* ctx, + LiveChartLegend* legend) +{ + LiveChartPadding _tmp0_; + LiveChartPadding _tmp5_; + LiveChartPadding _tmp10_; + LiveChartPadding _tmp15_; + gboolean _tmp16_ = FALSE; + LiveChartYAxis* _tmp20_; + LiveChartBoundaries _tmp21_ = {0}; +#line 68 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 68 "../src/config.vala" + g_return_if_fail (ctx != NULL); +#line 69 "../src/config.vala" + live_chart_config_configure_y_max_labels_extents (self, ctx); +#line 70 "../src/config.vala" + live_chart_config_configure_x_max_labels_extents (self, ctx); +#line 72 "../src/config.vala" + _tmp0_ = self->padding; +#line 72 "../src/config.vala" + if ((_tmp0_.smart & LIVE_CHART_AUTO_PADDING_RIGHT) == LIVE_CHART_AUTO_PADDING_RIGHT) { +#line 299 "config.c" + LiveChartXAxis* _tmp1_; + LiveChartLabels* _tmp2_; + cairo_text_extents_t _tmp3_ = {0}; + cairo_text_extents_t _tmp4_; +#line 72 "../src/config.vala" + _tmp1_ = self->x_axis; +#line 72 "../src/config.vala" + _tmp2_ = _tmp1_->labels; +#line 72 "../src/config.vala" + live_chart_labels_get_extents (_tmp2_, &_tmp3_); +#line 72 "../src/config.vala" + _tmp4_ = _tmp3_; +#line 72 "../src/config.vala" + self->padding.right = 10 + (((gint) _tmp4_.width) / 2); +#line 314 "config.c" + } +#line 73 "../src/config.vala" + _tmp5_ = self->padding; +#line 73 "../src/config.vala" + if ((_tmp5_.smart & LIVE_CHART_AUTO_PADDING_LEFT) == LIVE_CHART_AUTO_PADDING_LEFT) { +#line 320 "config.c" + LiveChartYAxis* _tmp6_; + LiveChartLabels* _tmp7_; + cairo_text_extents_t _tmp8_ = {0}; + cairo_text_extents_t _tmp9_; +#line 73 "../src/config.vala" + _tmp6_ = self->y_axis; +#line 73 "../src/config.vala" + _tmp7_ = _tmp6_->labels; +#line 73 "../src/config.vala" + live_chart_labels_get_extents (_tmp7_, &_tmp8_); +#line 73 "../src/config.vala" + _tmp9_ = _tmp8_; +#line 73 "../src/config.vala" + self->padding.left = (gint) _tmp9_.width; +#line 335 "config.c" + } +#line 74 "../src/config.vala" + _tmp10_ = self->padding; +#line 74 "../src/config.vala" + if ((_tmp10_.smart & LIVE_CHART_AUTO_PADDING_BOTTOM) == LIVE_CHART_AUTO_PADDING_BOTTOM) { +#line 341 "config.c" + LiveChartXAxis* _tmp11_; + LiveChartLabels* _tmp12_; + cairo_text_extents_t _tmp13_ = {0}; + cairo_text_extents_t _tmp14_; +#line 74 "../src/config.vala" + _tmp11_ = self->x_axis; +#line 74 "../src/config.vala" + _tmp12_ = _tmp11_->labels; +#line 74 "../src/config.vala" + live_chart_labels_get_extents (_tmp12_, &_tmp13_); +#line 74 "../src/config.vala" + _tmp14_ = _tmp13_; +#line 74 "../src/config.vala" + self->padding.bottom = 15 + ((gint) _tmp14_.height); +#line 356 "config.c" + } +#line 75 "../src/config.vala" + _tmp15_ = self->padding; +#line 75 "../src/config.vala" + if ((_tmp15_.smart & LIVE_CHART_AUTO_PADDING_TOP) == LIVE_CHART_AUTO_PADDING_TOP) { +#line 75 "../src/config.vala" + self->padding.top = 10; +#line 364 "config.c" + } +#line 77 "../src/config.vala" + if (legend != NULL) { +#line 368 "config.c" + LiveChartPadding _tmp17_; +#line 77 "../src/config.vala" + _tmp17_ = self->padding; +#line 77 "../src/config.vala" + _tmp16_ = (_tmp17_.smart & LIVE_CHART_AUTO_PADDING_BOTTOM) == LIVE_CHART_AUTO_PADDING_BOTTOM; +#line 374 "config.c" + } else { +#line 77 "../src/config.vala" + _tmp16_ = FALSE; +#line 378 "config.c" + } +#line 77 "../src/config.vala" + if (_tmp16_) { +#line 382 "config.c" + LiveChartPadding _tmp18_; + LiveChartBoundingBox _tmp19_ = {0}; +#line 77 "../src/config.vala" + _tmp18_ = self->padding; +#line 77 "../src/config.vala" + live_chart_drawable_get_bounding_box ((LiveChartDrawable*) legend, &_tmp19_); +#line 77 "../src/config.vala" + self->padding.bottom = (_tmp18_.bottom + ((gint) _tmp19_.height)) + 5; +#line 391 "config.c" + } +#line 79 "../src/config.vala" + _tmp20_ = self->y_axis; +#line 79 "../src/config.vala" + live_chart_config_boundaries (self, &_tmp21_); +#line 79 "../src/config.vala" + live_chart_yaxis_update (_tmp20_, _tmp21_.height); +#line 399 "config.c" +} + +static void +live_chart_config_configure_y_max_labels_extents (LiveChartConfig* self, + cairo_t* ctx) +{ + cairo_text_extents_t extents = {0}; + gboolean _tmp0_ = FALSE; + LiveChartYAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; + LiveChartYAxis* _tmp29_; + LiveChartLabels* _tmp30_; + cairo_text_extents_t _tmp31_; +#line 82 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 82 "../src/config.vala" + g_return_if_fail (ctx != NULL); +#line 84 "../src/config.vala" + _tmp1_ = self->y_axis; +#line 84 "../src/config.vala" + _tmp2_ = live_chart_yaxis_get_visible (_tmp1_); +#line 84 "../src/config.vala" + _tmp3_ = _tmp2_; +#line 84 "../src/config.vala" + if (_tmp3_) { +#line 426 "config.c" + LiveChartYAxis* _tmp4_; + LiveChartLabels* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 84 "../src/config.vala" + _tmp4_ = self->y_axis; +#line 84 "../src/config.vala" + _tmp5_ = _tmp4_->labels; +#line 84 "../src/config.vala" + _tmp6_ = live_chart_labels_get_visible (_tmp5_); +#line 84 "../src/config.vala" + _tmp7_ = _tmp6_; +#line 84 "../src/config.vala" + _tmp0_ = _tmp7_; +#line 441 "config.c" + } else { +#line 84 "../src/config.vala" + _tmp0_ = FALSE; +#line 445 "config.c" + } +#line 84 "../src/config.vala" + if (_tmp0_) { +#line 449 "config.c" + LiveChartYAxis* _tmp8_; + LiveChartLabels* _tmp9_; + LiveChartFont* _tmp10_; + LiveChartFont* _tmp11_; + const gchar* _tmp12_ = NULL; + LiveChartYAxis* _tmp13_; + const gchar* _tmp14_; + const gchar* _tmp15_; + gint _tmp16_; + gint _tmp17_; + gchar* spaces = NULL; + gchar* _tmp21_; + LiveChartYAxis* _tmp22_; + gchar* _tmp23_; + gchar* _tmp24_; + const gchar* _tmp25_; + gchar* _tmp26_; + gchar* _tmp27_; + cairo_text_extents_t _tmp28_ = {0}; +#line 85 "../src/config.vala" + _tmp8_ = self->y_axis; +#line 85 "../src/config.vala" + _tmp9_ = _tmp8_->labels; +#line 85 "../src/config.vala" + _tmp10_ = live_chart_labels_get_font (_tmp9_); +#line 85 "../src/config.vala" + _tmp11_ = _tmp10_; +#line 85 "../src/config.vala" + live_chart_font_configure (_tmp11_, ctx); +#line 87 "../src/config.vala" + _tmp13_ = self->y_axis; +#line 87 "../src/config.vala" + _tmp14_ = live_chart_yaxis_get_unit (_tmp13_); +#line 87 "../src/config.vala" + _tmp15_ = _tmp14_; +#line 87 "../src/config.vala" + _tmp16_ = strlen (_tmp15_); +#line 87 "../src/config.vala" + _tmp17_ = _tmp16_; +#line 87 "../src/config.vala" + if (_tmp17_ == 0) { +#line 87 "../src/config.vala" + _tmp12_ = "__"; +#line 493 "config.c" + } else { + LiveChartYAxis* _tmp18_; + const gchar* _tmp19_; + const gchar* _tmp20_; +#line 87 "../src/config.vala" + _tmp18_ = self->y_axis; +#line 87 "../src/config.vala" + _tmp19_ = live_chart_yaxis_get_unit (_tmp18_); +#line 87 "../src/config.vala" + _tmp20_ = _tmp19_; +#line 87 "../src/config.vala" + _tmp12_ = _tmp20_; +#line 506 "config.c" + } +#line 87 "../src/config.vala" + _tmp21_ = g_strdup (_tmp12_); +#line 87 "../src/config.vala" + spaces = _tmp21_; +#line 88 "../src/config.vala" + _tmp22_ = self->y_axis; +#line 88 "../src/config.vala" + _tmp23_ = live_chart_yaxis_get_max_displayed_value (_tmp22_); +#line 88 "../src/config.vala" + _tmp24_ = _tmp23_; +#line 88 "../src/config.vala" + _tmp25_ = spaces; +#line 88 "../src/config.vala" + _tmp26_ = g_strconcat (_tmp24_, _tmp25_, NULL); +#line 88 "../src/config.vala" + _tmp27_ = _tmp26_; +#line 88 "../src/config.vala" + cairo_text_extents (ctx, _tmp27_, &_tmp28_); +#line 88 "../src/config.vala" + extents = _tmp28_; +#line 88 "../src/config.vala" + _g_free0 (_tmp27_); +#line 88 "../src/config.vala" + _g_free0 (_tmp24_); +#line 84 "../src/config.vala" + _g_free0 (spaces); +#line 534 "config.c" + } else { +#line 90 "../src/config.vala" + memset (&extents, 0, sizeof (cairo_text_extents_t)); +#line 91 "../src/config.vala" + extents.height = 0.0; +#line 92 "../src/config.vala" + extents.width = 0.0; +#line 93 "../src/config.vala" + extents.x_advance = 0.0; +#line 94 "../src/config.vala" + extents.x_bearing = 0.0; +#line 95 "../src/config.vala" + extents.y_advance = 0.0; +#line 96 "../src/config.vala" + extents.y_bearing = 0.0; +#line 550 "config.c" + } +#line 99 "../src/config.vala" + _tmp29_ = self->y_axis; +#line 99 "../src/config.vala" + _tmp30_ = _tmp29_->labels; +#line 99 "../src/config.vala" + _tmp31_ = extents; +#line 99 "../src/config.vala" + live_chart_labels_set_extents (_tmp30_, &_tmp31_); +#line 560 "config.c" +} + +static void +live_chart_config_configure_x_max_labels_extents (LiveChartConfig* self, + cairo_t* ctx) +{ + cairo_text_extents_t extents = {0}; + gboolean _tmp0_ = FALSE; + LiveChartXAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; + LiveChartXAxis* _tmp15_; + LiveChartLabels* _tmp16_; + cairo_text_extents_t _tmp17_; +#line 102 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 102 "../src/config.vala" + g_return_if_fail (ctx != NULL); +#line 104 "../src/config.vala" + _tmp1_ = self->x_axis; +#line 104 "../src/config.vala" + _tmp2_ = live_chart_xaxis_get_visible (_tmp1_); +#line 104 "../src/config.vala" + _tmp3_ = _tmp2_; +#line 104 "../src/config.vala" + if (_tmp3_) { +#line 587 "config.c" + LiveChartXAxis* _tmp4_; + LiveChartLabels* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 104 "../src/config.vala" + _tmp4_ = self->x_axis; +#line 104 "../src/config.vala" + _tmp5_ = _tmp4_->labels; +#line 104 "../src/config.vala" + _tmp6_ = live_chart_labels_get_visible (_tmp5_); +#line 104 "../src/config.vala" + _tmp7_ = _tmp6_; +#line 104 "../src/config.vala" + _tmp0_ = _tmp7_; +#line 602 "config.c" + } else { +#line 104 "../src/config.vala" + _tmp0_ = FALSE; +#line 606 "config.c" + } +#line 104 "../src/config.vala" + if (_tmp0_) { +#line 610 "config.c" + LiveChartXAxis* _tmp8_; + LiveChartLabels* _tmp9_; + LiveChartFont* _tmp10_; + LiveChartFont* _tmp11_; + gchar* time_format = NULL; + gchar* _tmp12_; + const gchar* _tmp13_; + cairo_text_extents_t _tmp14_ = {0}; +#line 105 "../src/config.vala" + _tmp8_ = self->x_axis; +#line 105 "../src/config.vala" + _tmp9_ = _tmp8_->labels; +#line 105 "../src/config.vala" + _tmp10_ = live_chart_labels_get_font (_tmp9_); +#line 105 "../src/config.vala" + _tmp11_ = _tmp10_; +#line 105 "../src/config.vala" + live_chart_font_configure (_tmp11_, ctx); +#line 106 "../src/config.vala" + _tmp12_ = g_strdup ("00:00:00"); +#line 106 "../src/config.vala" + time_format = _tmp12_; +#line 107 "../src/config.vala" + _tmp13_ = time_format; +#line 107 "../src/config.vala" + cairo_text_extents (ctx, _tmp13_, &_tmp14_); +#line 107 "../src/config.vala" + extents = _tmp14_; +#line 104 "../src/config.vala" + _g_free0 (time_format); +#line 641 "config.c" + } else { +#line 109 "../src/config.vala" + memset (&extents, 0, sizeof (cairo_text_extents_t)); +#line 110 "../src/config.vala" + extents.height = 0.0; +#line 111 "../src/config.vala" + extents.width = 0.0; +#line 112 "../src/config.vala" + extents.x_advance = 0.0; +#line 113 "../src/config.vala" + extents.x_bearing = 0.0; +#line 114 "../src/config.vala" + extents.y_advance = 0.0; +#line 115 "../src/config.vala" + extents.y_bearing = 0.0; +#line 657 "config.c" + } +#line 118 "../src/config.vala" + _tmp15_ = self->x_axis; +#line 118 "../src/config.vala" + _tmp16_ = _tmp15_->labels; +#line 118 "../src/config.vala" + _tmp17_ = extents; +#line 118 "../src/config.vala" + live_chart_labels_set_extents (_tmp16_, &_tmp17_); +#line 667 "config.c" +} + +LiveChartConfig* +live_chart_config_construct (GType object_type) +{ + LiveChartConfig* self = NULL; +#line 42 "../src/config.vala" + self = (LiveChartConfig*) g_type_create_instance (object_type); +#line 42 "../src/config.vala" + return self; +#line 678 "config.c" +} + +LiveChartConfig* +live_chart_config_new (void) +{ +#line 42 "../src/config.vala" + return live_chart_config_construct (LIVE_CHART_TYPE_CONFIG); +#line 686 "config.c" +} + +gint +live_chart_config_get_width (LiveChartConfig* self) +{ + gint result; +#line 45 "../src/config.vala" + g_return_val_if_fail (self != NULL, 0); +#line 45 "../src/config.vala" + result = self->priv->_width; +#line 45 "../src/config.vala" + return result; +#line 699 "config.c" +} + +void +live_chart_config_set_width (LiveChartConfig* self, + gint value) +{ +#line 45 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/config.vala" + self->priv->_width = value; +#line 710 "config.c" +} + +gint +live_chart_config_get_height (LiveChartConfig* self) +{ + gint result; +#line 49 "../src/config.vala" + g_return_val_if_fail (self != NULL, 0); +#line 49 "../src/config.vala" + result = self->priv->_height; +#line 49 "../src/config.vala" + return result; +#line 723 "config.c" +} + +void +live_chart_config_set_height (LiveChartConfig* self, + gint value) +{ +#line 49 "../src/config.vala" + g_return_if_fail (self != NULL); +#line 49 "../src/config.vala" + self->priv->_height = value; +#line 734 "config.c" +} + +static void +live_chart_value_config_init (GValue* value) +{ +#line 42 "../src/config.vala" + value->data[0].v_pointer = NULL; +#line 742 "config.c" +} + +static void +live_chart_value_config_free_value (GValue* value) +{ +#line 42 "../src/config.vala" + if (value->data[0].v_pointer) { +#line 42 "../src/config.vala" + live_chart_config_unref (value->data[0].v_pointer); +#line 752 "config.c" + } +} + +static void +live_chart_value_config_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 42 "../src/config.vala" + if (src_value->data[0].v_pointer) { +#line 42 "../src/config.vala" + dest_value->data[0].v_pointer = live_chart_config_ref (src_value->data[0].v_pointer); +#line 764 "config.c" + } else { +#line 42 "../src/config.vala" + dest_value->data[0].v_pointer = NULL; +#line 768 "config.c" + } +} + +static gpointer +live_chart_value_config_peek_pointer (const GValue* value) +{ +#line 42 "../src/config.vala" + return value->data[0].v_pointer; +#line 777 "config.c" +} + +static gchar* +live_chart_value_config_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 42 "../src/config.vala" + if (collect_values[0].v_pointer) { +#line 788 "config.c" + LiveChartConfig * object; + object = collect_values[0].v_pointer; +#line 42 "../src/config.vala" + if (object->parent_instance.g_class == NULL) { +#line 42 "../src/config.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 795 "config.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 42 "../src/config.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 799 "config.c" + } +#line 42 "../src/config.vala" + value->data[0].v_pointer = live_chart_config_ref (object); +#line 803 "config.c" + } else { +#line 42 "../src/config.vala" + value->data[0].v_pointer = NULL; +#line 807 "config.c" + } +#line 42 "../src/config.vala" + return NULL; +#line 811 "config.c" +} + +static gchar* +live_chart_value_config_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartConfig ** object_p; + object_p = collect_values[0].v_pointer; +#line 42 "../src/config.vala" + if (!object_p) { +#line 42 "../src/config.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 826 "config.c" + } +#line 42 "../src/config.vala" + if (!value->data[0].v_pointer) { +#line 42 "../src/config.vala" + *object_p = NULL; +#line 832 "config.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 42 "../src/config.vala" + *object_p = value->data[0].v_pointer; +#line 836 "config.c" + } else { +#line 42 "../src/config.vala" + *object_p = live_chart_config_ref (value->data[0].v_pointer); +#line 840 "config.c" + } +#line 42 "../src/config.vala" + return NULL; +#line 844 "config.c" +} + +GParamSpec* +live_chart_param_spec_config (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecConfig* spec; +#line 42 "../src/config.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_CONFIG), NULL); +#line 42 "../src/config.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 42 "../src/config.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 42 "../src/config.vala" + return G_PARAM_SPEC (spec); +#line 863 "config.c" +} + +gpointer +live_chart_value_get_config (const GValue* value) +{ +#line 42 "../src/config.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_CONFIG), NULL); +#line 42 "../src/config.vala" + return value->data[0].v_pointer; +#line 873 "config.c" +} + +void +live_chart_value_set_config (GValue* value, + gpointer v_object) +{ + LiveChartConfig * old; +#line 42 "../src/config.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_CONFIG)); +#line 42 "../src/config.vala" + old = value->data[0].v_pointer; +#line 42 "../src/config.vala" + if (v_object) { +#line 42 "../src/config.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_CONFIG)); +#line 42 "../src/config.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 42 "../src/config.vala" + value->data[0].v_pointer = v_object; +#line 42 "../src/config.vala" + live_chart_config_ref (value->data[0].v_pointer); +#line 895 "config.c" + } else { +#line 42 "../src/config.vala" + value->data[0].v_pointer = NULL; +#line 899 "config.c" + } +#line 42 "../src/config.vala" + if (old) { +#line 42 "../src/config.vala" + live_chart_config_unref (old); +#line 905 "config.c" + } +} + +void +live_chart_value_take_config (GValue* value, + gpointer v_object) +{ + LiveChartConfig * old; +#line 42 "../src/config.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_CONFIG)); +#line 42 "../src/config.vala" + old = value->data[0].v_pointer; +#line 42 "../src/config.vala" + if (v_object) { +#line 42 "../src/config.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_CONFIG)); +#line 42 "../src/config.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 42 "../src/config.vala" + value->data[0].v_pointer = v_object; +#line 926 "config.c" + } else { +#line 42 "../src/config.vala" + value->data[0].v_pointer = NULL; +#line 930 "config.c" + } +#line 42 "../src/config.vala" + if (old) { +#line 42 "../src/config.vala" + live_chart_config_unref (old); +#line 936 "config.c" + } +} + +static void +live_chart_config_class_init (LiveChartConfigClass * klass, + gpointer klass_data) +{ +#line 42 "../src/config.vala" + live_chart_config_parent_class = g_type_class_peek_parent (klass); +#line 42 "../src/config.vala" + ((LiveChartConfigClass *) klass)->finalize = live_chart_config_finalize; +#line 42 "../src/config.vala" + g_type_class_adjust_private_offset (klass, &LiveChartConfig_private_offset); +#line 950 "config.c" +} + +static void +live_chart_config_instance_init (LiveChartConfig * self, + gpointer klass) +{ + LiveChartYAxis* _tmp0_; + LiveChartXAxis* _tmp1_; +#line 42 "../src/config.vala" + self->priv = live_chart_config_get_instance_private (self); +#line 44 "../src/config.vala" + self->priv->_width = 0; +#line 48 "../src/config.vala" + self->priv->_height = 0; +#line 52 "../src/config.vala" + live_chart_padding_init (&self->padding); +#line 54 "../src/config.vala" + _tmp0_ = live_chart_yaxis_new (""); +#line 54 "../src/config.vala" + self->y_axis = _tmp0_; +#line 55 "../src/config.vala" + _tmp1_ = live_chart_xaxis_new (); +#line 55 "../src/config.vala" + self->x_axis = _tmp1_; +#line 42 "../src/config.vala" + self->ref_count = 1; +#line 977 "config.c" +} + +static void +live_chart_config_finalize (LiveChartConfig * obj) +{ + LiveChartConfig * self; +#line 42 "../src/config.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_CONFIG, LiveChartConfig); +#line 42 "../src/config.vala" + g_signal_handlers_destroy (self); +#line 54 "../src/config.vala" + _live_chart_yaxis_unref0 (self->y_axis); +#line 55 "../src/config.vala" + _live_chart_xaxis_unref0 (self->x_axis); +#line 57 "../src/config.vala" + _g_object_unref0 (self->categories); +#line 994 "config.c" +} + +static GType +live_chart_config_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_config_init, live_chart_value_config_free_value, live_chart_value_config_copy_value, live_chart_value_config_peek_pointer, "p", live_chart_value_config_collect_value, "p", live_chart_value_config_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartConfigClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_config_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartConfig), 0, (GInstanceInitFunc) live_chart_config_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_config_type_id; + live_chart_config_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartConfig", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartConfig_private_offset = g_type_add_instance_private (live_chart_config_type_id, sizeof (LiveChartConfigPrivate)); + return live_chart_config_type_id; +} + +GType +live_chart_config_get_type (void) +{ + static volatile gsize live_chart_config_type_id__once = 0; + if (g_once_init_enter (&live_chart_config_type_id__once)) { + GType live_chart_config_type_id; + live_chart_config_type_id = live_chart_config_get_type_once (); + g_once_init_leave (&live_chart_config_type_id__once, live_chart_config_type_id); + } + return live_chart_config_type_id__once; +} + +gpointer +live_chart_config_ref (gpointer instance) +{ + LiveChartConfig * self; + self = instance; +#line 42 "../src/config.vala" + g_atomic_int_inc (&self->ref_count); +#line 42 "../src/config.vala" + return instance; +#line 1030 "config.c" +} + +void +live_chart_config_unref (gpointer instance) +{ + LiveChartConfig * self; + self = instance; +#line 42 "../src/config.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 42 "../src/config.vala" + LIVE_CHART_CONFIG_GET_CLASS (self)->finalize (self); +#line 42 "../src/config.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 1044 "config.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/drawable.c b/iPDC/lib/liblivechart.so.p/drawable.c new file mode 100644 index 0000000..e705227 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/drawable.c @@ -0,0 +1,222 @@ +/* drawable.c generated by valac 0.56.0, the Vala compiler + * generated from drawable.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include + +static GType live_chart_drawable_get_type_once (void); +static GType live_chart_colorable_get_type_once (void); + +LiveChartBoundingBox* +live_chart_bounding_box_dup (const LiveChartBoundingBox* self) +{ + LiveChartBoundingBox* dup; +#line 4 "../src/drawable.vala" + dup = g_new0 (LiveChartBoundingBox, 1); +#line 4 "../src/drawable.vala" + memcpy (dup, self, sizeof (LiveChartBoundingBox)); +#line 4 "../src/drawable.vala" + return dup; +#line 23 "drawable.c" +} + +void +live_chart_bounding_box_free (LiveChartBoundingBox* self) +{ +#line 4 "../src/drawable.vala" + g_free (self); +#line 31 "drawable.c" +} + +static GType +live_chart_bounding_box_get_type_once (void) +{ + GType live_chart_bounding_box_type_id; + live_chart_bounding_box_type_id = g_boxed_type_register_static ("LiveChartBoundingBox", (GBoxedCopyFunc) live_chart_bounding_box_dup, (GBoxedFreeFunc) live_chart_bounding_box_free); + return live_chart_bounding_box_type_id; +} + +GType +live_chart_bounding_box_get_type (void) +{ + static volatile gsize live_chart_bounding_box_type_id__once = 0; + if (g_once_init_enter (&live_chart_bounding_box_type_id__once)) { + GType live_chart_bounding_box_type_id; + live_chart_bounding_box_type_id = live_chart_bounding_box_get_type_once (); + g_once_init_leave (&live_chart_bounding_box_type_id__once, live_chart_bounding_box_type_id); + } + return live_chart_bounding_box_type_id__once; +} + +void +live_chart_drawable_draw (LiveChartDrawable* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartDrawableIface* _iface_; +#line 13 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 13 "../src/drawable.vala" + _iface_ = LIVE_CHART_DRAWABLE_GET_INTERFACE (self); +#line 13 "../src/drawable.vala" + if (_iface_->draw) { +#line 13 "../src/drawable.vala" + _iface_->draw (self, ctx, config); +#line 68 "drawable.c" + } +} + +void +live_chart_drawable_get_bounding_box (LiveChartDrawable* self, + LiveChartBoundingBox* result) +{ + LiveChartDrawableIface* _iface_; +#line 15 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 15 "../src/drawable.vala" + _iface_ = LIVE_CHART_DRAWABLE_GET_INTERFACE (self); +#line 15 "../src/drawable.vala" + if (_iface_->get_bounding_box) { +#line 15 "../src/drawable.vala" + _iface_->get_bounding_box (self, result); +#line 85 "drawable.c" + } +} + +gboolean +live_chart_drawable_get_visible (LiveChartDrawable* self) +{ + LiveChartDrawableIface* _iface_; +#line 11 "../src/drawable.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 11 "../src/drawable.vala" + _iface_ = LIVE_CHART_DRAWABLE_GET_INTERFACE (self); +#line 11 "../src/drawable.vala" + if (_iface_->get_visible) { +#line 11 "../src/drawable.vala" + return _iface_->get_visible (self); +#line 101 "drawable.c" + } +#line 11 "../src/drawable.vala" + return FALSE; +#line 105 "drawable.c" +} + +void +live_chart_drawable_set_visible (LiveChartDrawable* self, + gboolean value) +{ + LiveChartDrawableIface* _iface_; +#line 11 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 11 "../src/drawable.vala" + _iface_ = LIVE_CHART_DRAWABLE_GET_INTERFACE (self); +#line 11 "../src/drawable.vala" + if (_iface_->set_visible) { +#line 11 "../src/drawable.vala" + _iface_->set_visible (self, value); +#line 121 "drawable.c" + } +} + +static void +live_chart_drawable_default_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 10 "../src/drawable.vala" + g_object_interface_install_property (iface, g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 131 "drawable.c" +} + +static GType +live_chart_drawable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartDrawableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_drawable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType live_chart_drawable_type_id; + live_chart_drawable_type_id = g_type_register_static (G_TYPE_INTERFACE, "LiveChartDrawable", &g_define_type_info, 0); + g_type_interface_add_prerequisite (live_chart_drawable_type_id, G_TYPE_OBJECT); + return live_chart_drawable_type_id; +} + +GType +live_chart_drawable_get_type (void) +{ + static volatile gsize live_chart_drawable_type_id__once = 0; + if (g_once_init_enter (&live_chart_drawable_type_id__once)) { + GType live_chart_drawable_type_id; + live_chart_drawable_type_id = live_chart_drawable_get_type_once (); + g_once_init_leave (&live_chart_drawable_type_id__once, live_chart_drawable_type_id); + } + return live_chart_drawable_type_id__once; +} + +void +live_chart_colorable_get_main_color (LiveChartColorable* self, + GdkRGBA * result) +{ + LiveChartColorableIface* _iface_; +#line 22 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/drawable.vala" + _iface_ = LIVE_CHART_COLORABLE_GET_INTERFACE (self); +#line 22 "../src/drawable.vala" + if (_iface_->get_main_color) { +#line 22 "../src/drawable.vala" + _iface_->get_main_color (self, result); +#line 169 "drawable.c" + } +#line 22 "../src/drawable.vala" + return; +#line 173 "drawable.c" +} + +void +live_chart_colorable_set_main_color (LiveChartColorable* self, + GdkRGBA * value) +{ + LiveChartColorableIface* _iface_; +#line 22 "../src/drawable.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/drawable.vala" + _iface_ = LIVE_CHART_COLORABLE_GET_INTERFACE (self); +#line 22 "../src/drawable.vala" + if (_iface_->set_main_color) { +#line 22 "../src/drawable.vala" + _iface_->set_main_color (self, value); +#line 189 "drawable.c" + } +} + +static void +live_chart_colorable_default_init (LiveChartColorableIface * iface, + gpointer iface_data) +{ +#line 20 "../src/drawable.vala" + g_object_interface_install_property (iface, g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_DEPRECATED)); +#line 199 "drawable.c" +} + +static GType +live_chart_colorable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartColorableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_colorable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType live_chart_colorable_type_id; + live_chart_colorable_type_id = g_type_register_static (G_TYPE_INTERFACE, "LiveChartColorable", &g_define_type_info, 0); + g_type_interface_add_prerequisite (live_chart_colorable_type_id, G_TYPE_OBJECT); + return live_chart_colorable_type_id; +} + +GType +live_chart_colorable_get_type (void) +{ + static volatile gsize live_chart_colorable_type_id__once = 0; + if (g_once_init_enter (&live_chart_colorable_type_id__once)) { + GType live_chart_colorable_type_id; + live_chart_colorable_type_id = live_chart_colorable_get_type_once (); + g_once_init_leave (&live_chart_colorable_type_id__once, live_chart_colorable_type_id); + } + return live_chart_colorable_type_id__once; +} + diff --git a/iPDC/lib/liblivechart.so.p/font.c b/iPDC/lib/liblivechart.so.p/font.c new file mode 100644 index 0000000..d1a0ebd --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/font.c @@ -0,0 +1,544 @@ +/* font.c generated by valac 0.56.0, the Vala compiler + * generated from font.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#define _g_free0(var) (var = (g_free (var), NULL)) +typedef struct _LiveChartParamSpecFont LiveChartParamSpecFont; + +struct _LiveChartFontPrivate { + guint8 _size; + gchar* _face; + cairo_font_slant_t _slant; + cairo_font_weight_t _weight; + GdkRGBA _color; +}; + +struct _LiveChartParamSpecFont { + GParamSpec parent_instance; +}; + +static gint LiveChartFont_private_offset; +static gpointer live_chart_font_parent_class = NULL; + +static void live_chart_font_finalize (LiveChartFont * obj); +static GType live_chart_font_get_type_once (void); + +static inline gpointer +live_chart_font_get_instance_private (LiveChartFont* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartFont_private_offset); +} + +LiveChartFont* +live_chart_font_construct (GType object_type) +{ + LiveChartFont* self = NULL; + GdkRGBA _tmp0_ = {0}; +#line 12 "../src/font.vala" + self = (LiveChartFont*) g_type_create_instance (object_type); +#line 13 "../src/font.vala" + live_chart_font_set_size (self, (guint8) 10); +#line 14 "../src/font.vala" + live_chart_font_set_face (self, "Sans serif"); +#line 15 "../src/font.vala" + live_chart_font_set_slant (self, CAIRO_FONT_SLANT_NORMAL); +#line 16 "../src/font.vala" + live_chart_font_set_weight (self, CAIRO_FONT_WEIGHT_NORMAL); +#line 17 "../src/font.vala" + _tmp0_.red = 0.4; +#line 17 "../src/font.vala" + _tmp0_.green = 0.4; +#line 17 "../src/font.vala" + _tmp0_.blue = 0.4; +#line 17 "../src/font.vala" + _tmp0_.alpha = 1.0; +#line 17 "../src/font.vala" + live_chart_font_set_color (self, &_tmp0_); +#line 12 "../src/font.vala" + return self; +#line 69 "font.c" +} + +LiveChartFont* +live_chart_font_new (void) +{ +#line 12 "../src/font.vala" + return live_chart_font_construct (LIVE_CHART_TYPE_FONT); +#line 77 "font.c" +} + +void +live_chart_font_configure (LiveChartFont* self, + cairo_t* ctx) +{ + const gchar* _tmp0_; + cairo_font_slant_t _tmp1_; + cairo_font_weight_t _tmp2_; + guint8 _tmp3_; + GdkRGBA _tmp4_; + GdkRGBA _tmp5_; + GdkRGBA _tmp6_; + GdkRGBA _tmp7_; +#line 20 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 20 "../src/font.vala" + g_return_if_fail (ctx != NULL); +#line 21 "../src/font.vala" + _tmp0_ = self->priv->_face; +#line 21 "../src/font.vala" + _tmp1_ = self->priv->_slant; +#line 21 "../src/font.vala" + _tmp2_ = self->priv->_weight; +#line 21 "../src/font.vala" + cairo_select_font_face (ctx, _tmp0_, _tmp1_, _tmp2_); +#line 22 "../src/font.vala" + _tmp3_ = self->priv->_size; +#line 22 "../src/font.vala" + cairo_set_font_size (ctx, (gdouble) _tmp3_); +#line 23 "../src/font.vala" + _tmp4_ = self->priv->_color; +#line 23 "../src/font.vala" + _tmp5_ = self->priv->_color; +#line 23 "../src/font.vala" + _tmp6_ = self->priv->_color; +#line 23 "../src/font.vala" + _tmp7_ = self->priv->_color; +#line 23 "../src/font.vala" + cairo_set_source_rgba (ctx, _tmp4_.red, _tmp5_.green, _tmp6_.blue, _tmp7_.alpha); +#line 118 "font.c" +} + +guint8 +live_chart_font_get_size (LiveChartFont* self) +{ + guint8 result; +#line 6 "../src/font.vala" + g_return_val_if_fail (self != NULL, 0U); +#line 6 "../src/font.vala" + result = self->priv->_size; +#line 6 "../src/font.vala" + return result; +#line 131 "font.c" +} + +void +live_chart_font_set_size (LiveChartFont* self, + guint8 value) +{ +#line 6 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/font.vala" + self->priv->_size = value; +#line 142 "font.c" +} + +const gchar* +live_chart_font_get_face (LiveChartFont* self) +{ + const gchar* result; + const gchar* _tmp0_; +#line 7 "../src/font.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 7 "../src/font.vala" + _tmp0_ = self->priv->_face; +#line 7 "../src/font.vala" + result = _tmp0_; +#line 7 "../src/font.vala" + return result; +#line 158 "font.c" +} + +void +live_chart_font_set_face (LiveChartFont* self, + const gchar* value) +{ + gchar* _tmp0_; +#line 7 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/font.vala" + _tmp0_ = g_strdup (value); +#line 7 "../src/font.vala" + _g_free0 (self->priv->_face); +#line 7 "../src/font.vala" + self->priv->_face = _tmp0_; +#line 174 "font.c" +} + +cairo_font_slant_t +live_chart_font_get_slant (LiveChartFont* self) +{ + cairo_font_slant_t result; +#line 8 "../src/font.vala" + g_return_val_if_fail (self != NULL, 0); +#line 8 "../src/font.vala" + result = self->priv->_slant; +#line 8 "../src/font.vala" + return result; +#line 187 "font.c" +} + +void +live_chart_font_set_slant (LiveChartFont* self, + cairo_font_slant_t value) +{ +#line 8 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 8 "../src/font.vala" + self->priv->_slant = value; +#line 198 "font.c" +} + +cairo_font_weight_t +live_chart_font_get_weight (LiveChartFont* self) +{ + cairo_font_weight_t result; +#line 9 "../src/font.vala" + g_return_val_if_fail (self != NULL, 0); +#line 9 "../src/font.vala" + result = self->priv->_weight; +#line 9 "../src/font.vala" + return result; +#line 211 "font.c" +} + +void +live_chart_font_set_weight (LiveChartFont* self, + cairo_font_weight_t value) +{ +#line 9 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/font.vala" + self->priv->_weight = value; +#line 222 "font.c" +} + +void +live_chart_font_get_color (LiveChartFont* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 10 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/font.vala" + _tmp0_ = self->priv->_color; +#line 10 "../src/font.vala" + *result = _tmp0_; +#line 10 "../src/font.vala" + return; +#line 238 "font.c" +} + +void +live_chart_font_set_color (LiveChartFont* self, + GdkRGBA * value) +{ + GdkRGBA _tmp0_; +#line 10 "../src/font.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/font.vala" + _tmp0_ = *value; +#line 10 "../src/font.vala" + self->priv->_color = _tmp0_; +#line 252 "font.c" +} + +static void +live_chart_value_font_init (GValue* value) +{ +#line 5 "../src/font.vala" + value->data[0].v_pointer = NULL; +#line 260 "font.c" +} + +static void +live_chart_value_font_free_value (GValue* value) +{ +#line 5 "../src/font.vala" + if (value->data[0].v_pointer) { +#line 5 "../src/font.vala" + live_chart_font_unref (value->data[0].v_pointer); +#line 270 "font.c" + } +} + +static void +live_chart_value_font_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 5 "../src/font.vala" + if (src_value->data[0].v_pointer) { +#line 5 "../src/font.vala" + dest_value->data[0].v_pointer = live_chart_font_ref (src_value->data[0].v_pointer); +#line 282 "font.c" + } else { +#line 5 "../src/font.vala" + dest_value->data[0].v_pointer = NULL; +#line 286 "font.c" + } +} + +static gpointer +live_chart_value_font_peek_pointer (const GValue* value) +{ +#line 5 "../src/font.vala" + return value->data[0].v_pointer; +#line 295 "font.c" +} + +static gchar* +live_chart_value_font_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 5 "../src/font.vala" + if (collect_values[0].v_pointer) { +#line 306 "font.c" + LiveChartFont * object; + object = collect_values[0].v_pointer; +#line 5 "../src/font.vala" + if (object->parent_instance.g_class == NULL) { +#line 5 "../src/font.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 313 "font.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 5 "../src/font.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 317 "font.c" + } +#line 5 "../src/font.vala" + value->data[0].v_pointer = live_chart_font_ref (object); +#line 321 "font.c" + } else { +#line 5 "../src/font.vala" + value->data[0].v_pointer = NULL; +#line 325 "font.c" + } +#line 5 "../src/font.vala" + return NULL; +#line 329 "font.c" +} + +static gchar* +live_chart_value_font_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartFont ** object_p; + object_p = collect_values[0].v_pointer; +#line 5 "../src/font.vala" + if (!object_p) { +#line 5 "../src/font.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 344 "font.c" + } +#line 5 "../src/font.vala" + if (!value->data[0].v_pointer) { +#line 5 "../src/font.vala" + *object_p = NULL; +#line 350 "font.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 5 "../src/font.vala" + *object_p = value->data[0].v_pointer; +#line 354 "font.c" + } else { +#line 5 "../src/font.vala" + *object_p = live_chart_font_ref (value->data[0].v_pointer); +#line 358 "font.c" + } +#line 5 "../src/font.vala" + return NULL; +#line 362 "font.c" +} + +GParamSpec* +live_chart_param_spec_font (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecFont* spec; +#line 5 "../src/font.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_FONT), NULL); +#line 5 "../src/font.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 5 "../src/font.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 5 "../src/font.vala" + return G_PARAM_SPEC (spec); +#line 381 "font.c" +} + +gpointer +live_chart_value_get_font (const GValue* value) +{ +#line 5 "../src/font.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_FONT), NULL); +#line 5 "../src/font.vala" + return value->data[0].v_pointer; +#line 391 "font.c" +} + +void +live_chart_value_set_font (GValue* value, + gpointer v_object) +{ + LiveChartFont * old; +#line 5 "../src/font.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_FONT)); +#line 5 "../src/font.vala" + old = value->data[0].v_pointer; +#line 5 "../src/font.vala" + if (v_object) { +#line 5 "../src/font.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_FONT)); +#line 5 "../src/font.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 5 "../src/font.vala" + value->data[0].v_pointer = v_object; +#line 5 "../src/font.vala" + live_chart_font_ref (value->data[0].v_pointer); +#line 413 "font.c" + } else { +#line 5 "../src/font.vala" + value->data[0].v_pointer = NULL; +#line 417 "font.c" + } +#line 5 "../src/font.vala" + if (old) { +#line 5 "../src/font.vala" + live_chart_font_unref (old); +#line 423 "font.c" + } +} + +void +live_chart_value_take_font (GValue* value, + gpointer v_object) +{ + LiveChartFont * old; +#line 5 "../src/font.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_FONT)); +#line 5 "../src/font.vala" + old = value->data[0].v_pointer; +#line 5 "../src/font.vala" + if (v_object) { +#line 5 "../src/font.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_FONT)); +#line 5 "../src/font.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 5 "../src/font.vala" + value->data[0].v_pointer = v_object; +#line 444 "font.c" + } else { +#line 5 "../src/font.vala" + value->data[0].v_pointer = NULL; +#line 448 "font.c" + } +#line 5 "../src/font.vala" + if (old) { +#line 5 "../src/font.vala" + live_chart_font_unref (old); +#line 454 "font.c" + } +} + +static void +live_chart_font_class_init (LiveChartFontClass * klass, + gpointer klass_data) +{ +#line 5 "../src/font.vala" + live_chart_font_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/font.vala" + ((LiveChartFontClass *) klass)->finalize = live_chart_font_finalize; +#line 5 "../src/font.vala" + g_type_class_adjust_private_offset (klass, &LiveChartFont_private_offset); +#line 468 "font.c" +} + +static void +live_chart_font_instance_init (LiveChartFont * self, + gpointer klass) +{ +#line 5 "../src/font.vala" + self->priv = live_chart_font_get_instance_private (self); +#line 5 "../src/font.vala" + self->ref_count = 1; +#line 479 "font.c" +} + +static void +live_chart_font_finalize (LiveChartFont * obj) +{ + LiveChartFont * self; +#line 5 "../src/font.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_FONT, LiveChartFont); +#line 5 "../src/font.vala" + g_signal_handlers_destroy (self); +#line 7 "../src/font.vala" + _g_free0 (self->priv->_face); +#line 492 "font.c" +} + +static GType +live_chart_font_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_font_init, live_chart_value_font_free_value, live_chart_value_font_copy_value, live_chart_value_font_peek_pointer, "p", live_chart_value_font_collect_value, "p", live_chart_value_font_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartFontClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_font_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartFont), 0, (GInstanceInitFunc) live_chart_font_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_font_type_id; + live_chart_font_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartFont", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartFont_private_offset = g_type_add_instance_private (live_chart_font_type_id, sizeof (LiveChartFontPrivate)); + return live_chart_font_type_id; +} + +GType +live_chart_font_get_type (void) +{ + static volatile gsize live_chart_font_type_id__once = 0; + if (g_once_init_enter (&live_chart_font_type_id__once)) { + GType live_chart_font_type_id; + live_chart_font_type_id = live_chart_font_get_type_once (); + g_once_init_leave (&live_chart_font_type_id__once, live_chart_font_type_id); + } + return live_chart_font_type_id__once; +} + +gpointer +live_chart_font_ref (gpointer instance) +{ + LiveChartFont * self; + self = instance; +#line 5 "../src/font.vala" + g_atomic_int_inc (&self->ref_count); +#line 5 "../src/font.vala" + return instance; +#line 528 "font.c" +} + +void +live_chart_font_unref (gpointer instance) +{ + LiveChartFont * self; + self = instance; +#line 5 "../src/font.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 5 "../src/font.vala" + LIVE_CHART_FONT_GET_CLASS (self)->finalize (self); +#line 5 "../src/font.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 542 "font.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/geometry.c b/iPDC/lib/liblivechart.so.p/geometry.c new file mode 100644 index 0000000..4ab93a5 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/geometry.c @@ -0,0 +1,213 @@ +/* geometry.c generated by valac 0.56.0, the Vala compiler + * generated from geometry.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include + +LiveChartCoord* +live_chart_coord_dup (const LiveChartCoord* self) +{ + LiveChartCoord* dup; +#line 2 "../src/geometry.vala" + dup = g_new0 (LiveChartCoord, 1); +#line 2 "../src/geometry.vala" + memcpy (dup, self, sizeof (LiveChartCoord)); +#line 2 "../src/geometry.vala" + return dup; +#line 21 "geometry.c" +} + +void +live_chart_coord_free (LiveChartCoord* self) +{ +#line 2 "../src/geometry.vala" + g_free (self); +#line 29 "geometry.c" +} + +static GType +live_chart_coord_get_type_once (void) +{ + GType live_chart_coord_type_id; + live_chart_coord_type_id = g_boxed_type_register_static ("LiveChartCoord", (GBoxedCopyFunc) live_chart_coord_dup, (GBoxedFreeFunc) live_chart_coord_free); + return live_chart_coord_type_id; +} + +GType +live_chart_coord_get_type (void) +{ + static volatile gsize live_chart_coord_type_id__once = 0; + if (g_once_init_enter (&live_chart_coord_type_id__once)) { + GType live_chart_coord_type_id; + live_chart_coord_type_id = live_chart_coord_get_type_once (); + g_once_init_leave (&live_chart_coord_type_id__once, live_chart_coord_type_id); + } + return live_chart_coord_type_id__once; +} + +LiveChartSegment* +live_chart_segment_dup (const LiveChartSegment* self) +{ + LiveChartSegment* dup; +#line 7 "../src/geometry.vala" + dup = g_new0 (LiveChartSegment, 1); +#line 7 "../src/geometry.vala" + memcpy (dup, self, sizeof (LiveChartSegment)); +#line 7 "../src/geometry.vala" + return dup; +#line 62 "geometry.c" +} + +void +live_chart_segment_free (LiveChartSegment* self) +{ +#line 7 "../src/geometry.vala" + g_free (self); +#line 70 "geometry.c" +} + +static GType +live_chart_segment_get_type_once (void) +{ + GType live_chart_segment_type_id; + live_chart_segment_type_id = g_boxed_type_register_static ("LiveChartSegment", (GBoxedCopyFunc) live_chart_segment_dup, (GBoxedFreeFunc) live_chart_segment_free); + return live_chart_segment_type_id; +} + +GType +live_chart_segment_get_type (void) +{ + static volatile gsize live_chart_segment_type_id__once = 0; + if (g_once_init_enter (&live_chart_segment_type_id__once)) { + GType live_chart_segment_type_id; + live_chart_segment_type_id = live_chart_segment_get_type_once (); + g_once_init_leave (&live_chart_segment_type_id__once, live_chart_segment_type_id); + } + return live_chart_segment_type_id__once; +} + +LiveChartBezierCurve* +live_chart_bezier_curve_dup (const LiveChartBezierCurve* self) +{ + LiveChartBezierCurve* dup; +#line 11 "../src/geometry.vala" + dup = g_new0 (LiveChartBezierCurve, 1); +#line 11 "../src/geometry.vala" + memcpy (dup, self, sizeof (LiveChartBezierCurve)); +#line 11 "../src/geometry.vala" + return dup; +#line 103 "geometry.c" +} + +void +live_chart_bezier_curve_free (LiveChartBezierCurve* self) +{ +#line 11 "../src/geometry.vala" + g_free (self); +#line 111 "geometry.c" +} + +static GType +live_chart_bezier_curve_get_type_once (void) +{ + GType live_chart_bezier_curve_type_id; + live_chart_bezier_curve_type_id = g_boxed_type_register_static ("LiveChartBezierCurve", (GBoxedCopyFunc) live_chart_bezier_curve_dup, (GBoxedFreeFunc) live_chart_bezier_curve_free); + return live_chart_bezier_curve_type_id; +} + +GType +live_chart_bezier_curve_get_type (void) +{ + static volatile gsize live_chart_bezier_curve_type_id__once = 0; + if (g_once_init_enter (&live_chart_bezier_curve_type_id__once)) { + GType live_chart_bezier_curve_type_id; + live_chart_bezier_curve_type_id = live_chart_bezier_curve_get_type_once (); + g_once_init_leave (&live_chart_bezier_curve_type_id__once, live_chart_bezier_curve_type_id); + } + return live_chart_bezier_curve_type_id__once; +} + +void +live_chart_build_bezier_curve_from_points (LiveChartPoint* previous, + LiveChartPoint* target, + LiveChartBezierCurve* result) +{ + gdouble pressure = 0.0; + LiveChartPoint _tmp0_; + LiveChartPoint _tmp1_; + LiveChartBezierCurve bezier = {0}; + LiveChartPoint _tmp2_; + LiveChartPoint _tmp3_; + LiveChartCoord _tmp4_ = {0}; + LiveChartPoint _tmp5_; + LiveChartPoint _tmp6_; + LiveChartCoord _tmp7_ = {0}; + LiveChartPoint _tmp8_; + LiveChartPoint _tmp9_; + LiveChartCoord _tmp10_ = {0}; + LiveChartPoint _tmp11_; + LiveChartPoint _tmp12_; + LiveChartCoord _tmp13_ = {0}; + LiveChartBezierCurve _tmp14_ = {0}; +#line 18 "../src/geometry.vala" + g_return_if_fail (previous != NULL); +#line 18 "../src/geometry.vala" + g_return_if_fail (target != NULL); +#line 19 "../src/geometry.vala" + _tmp0_ = *target; +#line 19 "../src/geometry.vala" + _tmp1_ = *previous; +#line 19 "../src/geometry.vala" + pressure = (_tmp0_.x - _tmp1_.x) / 2.0; +#line 20 "../src/geometry.vala" + _tmp2_ = *previous; +#line 20 "../src/geometry.vala" + _tmp3_ = *previous; +#line 20 "../src/geometry.vala" + _tmp4_.x = _tmp2_.x; +#line 20 "../src/geometry.vala" + _tmp4_.y = _tmp3_.y; +#line 20 "../src/geometry.vala" + _tmp5_ = *previous; +#line 20 "../src/geometry.vala" + _tmp6_ = *previous; +#line 20 "../src/geometry.vala" + _tmp7_.x = _tmp5_.x + pressure; +#line 20 "../src/geometry.vala" + _tmp7_.y = _tmp6_.y; +#line 20 "../src/geometry.vala" + _tmp8_ = *target; +#line 20 "../src/geometry.vala" + _tmp9_ = *target; +#line 20 "../src/geometry.vala" + _tmp10_.x = _tmp8_.x - pressure; +#line 20 "../src/geometry.vala" + _tmp10_.y = _tmp9_.y; +#line 20 "../src/geometry.vala" + _tmp11_ = *target; +#line 20 "../src/geometry.vala" + _tmp12_ = *target; +#line 20 "../src/geometry.vala" + _tmp13_.x = _tmp11_.x; +#line 20 "../src/geometry.vala" + _tmp13_.y = _tmp12_.y; +#line 20 "../src/geometry.vala" + _tmp14_.c0 = _tmp4_; +#line 20 "../src/geometry.vala" + _tmp14_.c1 = _tmp7_; +#line 20 "../src/geometry.vala" + _tmp14_.c2 = _tmp10_; +#line 20 "../src/geometry.vala" + _tmp14_.c3 = _tmp13_; +#line 20 "../src/geometry.vala" + bezier = _tmp14_; +#line 39 "../src/geometry.vala" + *result = bezier; +#line 39 "../src/geometry.vala" + return; +#line 212 "geometry.c" +} + diff --git a/iPDC/lib/liblivechart.so.p/grid.c b/iPDC/lib/liblivechart.so.p/grid.c new file mode 100644 index 0000000..7f58124 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/grid.c @@ -0,0 +1,1286 @@ +/* grid.c generated by valac 0.56.0, the Vala compiler + * generated from grid.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_GRID_0_PROPERTY, + LIVE_CHART_GRID_VISIBLE_PROPERTY, + LIVE_CHART_GRID_MAIN_COLOR_PROPERTY, + LIVE_CHART_GRID_NUM_PROPERTIES +}; +static GParamSpec* live_chart_grid_properties[LIVE_CHART_GRID_NUM_PROPERTIES]; +#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL))) +#define _g_time_zone_unref0(var) ((var == NULL) ? NULL : (var = (g_time_zone_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartGridPrivate { + gboolean _visible; + GdkRGBA _main_color; +}; + +static gint LiveChartGrid_private_offset; +static gpointer live_chart_grid_parent_class = NULL; +static LiveChartDrawableIface * live_chart_grid_live_chart_drawable_parent_iface = NULL; + +static void live_chart_grid_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_grid_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_grid_finalize (GObject * obj); +static GType live_chart_grid_get_type_once (void); +static void _vala_live_chart_grid_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_grid_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_grid_get_instance_private (LiveChartGrid* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartGrid_private_offset); +} + +static void +live_chart_grid_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartGrid * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 24 "../src/grid.vala" + self = (LiveChartGrid*) base; +#line 24 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 24 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 25 "../src/grid.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 25 "../src/grid.vala" + _tmp1_ = _tmp0_; +#line 25 "../src/grid.vala" + if (_tmp1_) { +#line 26 "../src/grid.vala" + live_chart_grid_render_abscissa (self, ctx, config); +#line 27 "../src/grid.vala" + live_chart_grid_render_ordinate (self, ctx, config); +#line 28 "../src/grid.vala" + live_chart_grid_render_grid (self, ctx, config); +#line 29 "../src/grid.vala" + live_chart_grid_update_bounding_box (self, config); +#line 30 "../src/grid.vala" + live_chart_grid_debug (self, ctx); +#line 90 "grid.c" + } +} + +static void +live_chart_grid_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartGrid * self; + LiveChartBoundingBox _tmp0_; +#line 34 "../src/grid.vala" + self = (LiveChartGrid*) base; +#line 35 "../src/grid.vala" + _tmp0_ = self->bounding_box; +#line 35 "../src/grid.vala" + *result = _tmp0_; +#line 35 "../src/grid.vala" + return; +#line 108 "grid.c" +} + +void +live_chart_grid_restore (LiveChartGrid* self, + cairo_t* ctx) +{ + GdkRGBA _tmp0_; + GdkRGBA _tmp1_; + GdkRGBA _tmp2_; + GdkRGBA _tmp3_; +#line 38 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 38 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 39 "../src/grid.vala" + _tmp0_ = self->priv->_main_color; +#line 39 "../src/grid.vala" + _tmp1_ = self->priv->_main_color; +#line 39 "../src/grid.vala" + _tmp2_ = self->priv->_main_color; +#line 39 "../src/grid.vala" + _tmp3_ = self->priv->_main_color; +#line 39 "../src/grid.vala" + cairo_set_source_rgba (ctx, _tmp0_.red, _tmp1_.green, _tmp2_.blue, _tmp3_.alpha); +#line 40 "../src/grid.vala" + cairo_set_line_width (ctx, 0.5); +#line 41 "../src/grid.vala" + cairo_set_dash (ctx, NULL, (gint) 0, 0.0); +#line 137 "grid.c" +} + +void +live_chart_grid_render_abscissa (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gboolean _tmp0_ = FALSE; + LiveChartXAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; +#line 44 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 44 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 44 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 45 "../src/grid.vala" + _tmp1_ = config->x_axis; +#line 45 "../src/grid.vala" + _tmp2_ = live_chart_xaxis_get_visible (_tmp1_); +#line 45 "../src/grid.vala" + _tmp3_ = _tmp2_; +#line 45 "../src/grid.vala" + if (_tmp3_) { +#line 163 "grid.c" + LiveChartXAxis* _tmp4_; + LiveChartPath* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 45 "../src/grid.vala" + _tmp4_ = config->x_axis; +#line 45 "../src/grid.vala" + _tmp5_ = _tmp4_->axis; +#line 45 "../src/grid.vala" + _tmp6_ = live_chart_path_get_visible (_tmp5_); +#line 45 "../src/grid.vala" + _tmp7_ = _tmp6_; +#line 45 "../src/grid.vala" + _tmp0_ = _tmp7_; +#line 178 "grid.c" + } else { +#line 45 "../src/grid.vala" + _tmp0_ = FALSE; +#line 182 "grid.c" + } +#line 45 "../src/grid.vala" + if (_tmp0_) { +#line 186 "grid.c" + LiveChartXAxis* _tmp8_; + LiveChartPath* _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + gint _tmp12_; + LiveChartPadding _tmp13_; + gint _tmp14_; + gint _tmp15_; + LiveChartPadding _tmp16_; + gint _tmp17_; + gint _tmp18_; + LiveChartPadding _tmp19_; +#line 46 "../src/grid.vala" + _tmp8_ = config->x_axis; +#line 46 "../src/grid.vala" + _tmp9_ = _tmp8_->axis; +#line 46 "../src/grid.vala" + live_chart_path_configure (_tmp9_, ctx); +#line 47 "../src/grid.vala" + _tmp10_ = config->padding; +#line 47 "../src/grid.vala" + _tmp11_ = live_chart_config_get_height (config); +#line 47 "../src/grid.vala" + _tmp12_ = _tmp11_; +#line 47 "../src/grid.vala" + _tmp13_ = config->padding; +#line 47 "../src/grid.vala" + cairo_move_to (ctx, _tmp10_.left + 0.5, (_tmp12_ - _tmp13_.bottom) + 0.5); +#line 48 "../src/grid.vala" + _tmp14_ = live_chart_config_get_width (config); +#line 48 "../src/grid.vala" + _tmp15_ = _tmp14_; +#line 48 "../src/grid.vala" + _tmp16_ = config->padding; +#line 48 "../src/grid.vala" + _tmp17_ = live_chart_config_get_height (config); +#line 48 "../src/grid.vala" + _tmp18_ = _tmp17_; +#line 48 "../src/grid.vala" + _tmp19_ = config->padding; +#line 48 "../src/grid.vala" + cairo_line_to (ctx, (_tmp15_ - _tmp16_.right) + 0.5, (_tmp18_ - _tmp19_.bottom) + 0.5); +#line 49 "../src/grid.vala" + cairo_stroke (ctx); +#line 50 "../src/grid.vala" + live_chart_grid_restore (self, ctx); +#line 233 "grid.c" + } +} + +void +live_chart_grid_render_ordinate (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gboolean _tmp0_ = FALSE; + LiveChartYAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; +#line 54 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 54 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 54 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 55 "../src/grid.vala" + _tmp1_ = config->y_axis; +#line 55 "../src/grid.vala" + _tmp2_ = live_chart_yaxis_get_visible (_tmp1_); +#line 55 "../src/grid.vala" + _tmp3_ = _tmp2_; +#line 55 "../src/grid.vala" + if (_tmp3_) { +#line 260 "grid.c" + LiveChartYAxis* _tmp4_; + LiveChartPath* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 55 "../src/grid.vala" + _tmp4_ = config->y_axis; +#line 55 "../src/grid.vala" + _tmp5_ = _tmp4_->axis; +#line 55 "../src/grid.vala" + _tmp6_ = live_chart_path_get_visible (_tmp5_); +#line 55 "../src/grid.vala" + _tmp7_ = _tmp6_; +#line 55 "../src/grid.vala" + _tmp0_ = _tmp7_; +#line 275 "grid.c" + } else { +#line 55 "../src/grid.vala" + _tmp0_ = FALSE; +#line 279 "grid.c" + } +#line 55 "../src/grid.vala" + if (_tmp0_) { +#line 283 "grid.c" + LiveChartYAxis* _tmp8_; + LiveChartPath* _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + gint _tmp12_; + LiveChartPadding _tmp13_; + LiveChartPadding _tmp14_; + LiveChartPadding _tmp15_; +#line 56 "../src/grid.vala" + _tmp8_ = config->y_axis; +#line 56 "../src/grid.vala" + _tmp9_ = _tmp8_->axis; +#line 56 "../src/grid.vala" + live_chart_path_configure (_tmp9_, ctx); +#line 57 "../src/grid.vala" + _tmp10_ = config->padding; +#line 57 "../src/grid.vala" + _tmp11_ = live_chart_config_get_height (config); +#line 57 "../src/grid.vala" + _tmp12_ = _tmp11_; +#line 57 "../src/grid.vala" + _tmp13_ = config->padding; +#line 57 "../src/grid.vala" + cairo_move_to (ctx, _tmp10_.left + 0.5, (_tmp12_ - _tmp13_.bottom) + 0.5); +#line 58 "../src/grid.vala" + _tmp14_ = config->padding; +#line 58 "../src/grid.vala" + _tmp15_ = config->padding; +#line 58 "../src/grid.vala" + cairo_line_to (ctx, _tmp14_.left + 0.5, _tmp15_.top + 0.5); +#line 59 "../src/grid.vala" + cairo_stroke (ctx); +#line 60 "../src/grid.vala" + live_chart_grid_restore (self, ctx); +#line 318 "grid.c" + } +} + +void +live_chart_grid_render_grid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 64 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 64 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 64 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 65 "../src/grid.vala" + live_chart_grid_render_hgrid (self, ctx, config); +#line 66 "../src/grid.vala" + live_chart_grid_render_vgrid (self, ctx, config); +#line 337 "grid.c" +} + +void +live_chart_grid_render_vgrid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gint64 time = 0LL; + GTimeZone* _tmp0_; + GTimeZone* _tmp1_; + GDateTime* _tmp2_; + GDateTime* _tmp3_; + gint64 _tmp4_; +#line 69 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 69 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 69 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 70 "../src/grid.vala" + _tmp0_ = g_time_zone_new_local (); +#line 70 "../src/grid.vala" + _tmp1_ = _tmp0_; +#line 70 "../src/grid.vala" + _tmp2_ = g_date_time_new_now (_tmp1_); +#line 70 "../src/grid.vala" + _tmp3_ = _tmp2_; +#line 70 "../src/grid.vala" + _tmp4_ = g_date_time_to_unix (_tmp3_); +#line 70 "../src/grid.vala" + _g_date_time_unref0 (_tmp3_); +#line 70 "../src/grid.vala" + _g_time_zone_unref0 (_tmp1_); +#line 70 "../src/grid.vala" + time = _tmp4_; +#line 373 "grid.c" + { + gdouble i = 0.0; + gint _tmp5_; + gint _tmp6_; + LiveChartPadding _tmp7_; +#line 71 "../src/grid.vala" + _tmp5_ = live_chart_config_get_width (config); +#line 71 "../src/grid.vala" + _tmp6_ = _tmp5_; +#line 71 "../src/grid.vala" + _tmp7_ = config->padding; +#line 71 "../src/grid.vala" + i = (gdouble) (_tmp6_ - _tmp7_.right); +#line 387 "grid.c" + { + gboolean _tmp8_ = FALSE; +#line 71 "../src/grid.vala" + _tmp8_ = TRUE; +#line 71 "../src/grid.vala" + while (TRUE) { +#line 394 "grid.c" + LiveChartPadding _tmp12_; + LiveChartXAxis* _tmp13_; + LiveChartPath* _tmp14_; + gboolean _tmp15_; + gboolean _tmp16_; + gboolean _tmp23_ = FALSE; + LiveChartXAxis* _tmp24_; + gboolean _tmp25_; + gboolean _tmp26_; + LiveChartXAxis* _tmp50_; + gfloat _tmp51_; + gfloat _tmp52_; +#line 71 "../src/grid.vala" + if (!_tmp8_) { +#line 409 "grid.c" + LiveChartXAxis* _tmp9_; + gfloat _tmp10_; + gfloat _tmp11_; +#line 71 "../src/grid.vala" + _tmp9_ = config->x_axis; +#line 71 "../src/grid.vala" + _tmp10_ = live_chart_xaxis_get_tick_length (_tmp9_); +#line 71 "../src/grid.vala" + _tmp11_ = _tmp10_; +#line 71 "../src/grid.vala" + i -= (gdouble) _tmp11_; +#line 421 "grid.c" + } +#line 71 "../src/grid.vala" + _tmp8_ = FALSE; +#line 71 "../src/grid.vala" + _tmp12_ = config->padding; +#line 71 "../src/grid.vala" + if (!(i > ((gdouble) _tmp12_.left))) { +#line 71 "../src/grid.vala" + break; +#line 431 "grid.c" + } +#line 72 "../src/grid.vala" + _tmp13_ = config->x_axis; +#line 72 "../src/grid.vala" + _tmp14_ = _tmp13_->lines; +#line 72 "../src/grid.vala" + _tmp15_ = live_chart_path_get_visible (_tmp14_); +#line 72 "../src/grid.vala" + _tmp16_ = _tmp15_; +#line 72 "../src/grid.vala" + if (_tmp16_) { +#line 443 "grid.c" + LiveChartXAxis* _tmp17_; + LiveChartPath* _tmp18_; + gint _tmp19_; + gint _tmp20_; + LiveChartPadding _tmp21_; + LiveChartPadding _tmp22_; +#line 73 "../src/grid.vala" + _tmp17_ = config->x_axis; +#line 73 "../src/grid.vala" + _tmp18_ = _tmp17_->lines; +#line 73 "../src/grid.vala" + live_chart_path_configure (_tmp18_, ctx); +#line 74 "../src/grid.vala" + _tmp19_ = live_chart_config_get_height (config); +#line 74 "../src/grid.vala" + _tmp20_ = _tmp19_; +#line 74 "../src/grid.vala" + _tmp21_ = config->padding; +#line 74 "../src/grid.vala" + cairo_move_to (ctx, ((gint) i) + 0.5, (0.5 + _tmp20_) - _tmp21_.bottom); +#line 75 "../src/grid.vala" + _tmp22_ = config->padding; +#line 75 "../src/grid.vala" + cairo_line_to (ctx, ((gint) i) + 0.5, 0.5 + _tmp22_.top); +#line 76 "../src/grid.vala" + cairo_stroke (ctx); +#line 77 "../src/grid.vala" + live_chart_grid_restore (self, ctx); +#line 472 "grid.c" + } +#line 81 "../src/grid.vala" + _tmp24_ = config->x_axis; +#line 81 "../src/grid.vala" + _tmp25_ = live_chart_xaxis_get_visible (_tmp24_); +#line 81 "../src/grid.vala" + _tmp26_ = _tmp25_; +#line 81 "../src/grid.vala" + if (_tmp26_) { +#line 482 "grid.c" + LiveChartXAxis* _tmp27_; + LiveChartLabels* _tmp28_; + gboolean _tmp29_; + gboolean _tmp30_; +#line 81 "../src/grid.vala" + _tmp27_ = config->x_axis; +#line 81 "../src/grid.vala" + _tmp28_ = _tmp27_->labels; +#line 81 "../src/grid.vala" + _tmp29_ = live_chart_labels_get_visible (_tmp28_); +#line 81 "../src/grid.vala" + _tmp30_ = _tmp29_; +#line 81 "../src/grid.vala" + _tmp23_ = _tmp30_; +#line 497 "grid.c" + } else { +#line 81 "../src/grid.vala" + _tmp23_ = FALSE; +#line 501 "grid.c" + } +#line 81 "../src/grid.vala" + if (_tmp23_) { +#line 505 "grid.c" + LiveChartXAxis* _tmp31_; + LiveChartLabels* _tmp32_; + LiveChartFont* _tmp33_; + LiveChartFont* _tmp34_; + gchar* text = NULL; + GDateTime* _tmp35_; + GDateTime* _tmp36_; + gchar* _tmp37_; + gchar* _tmp38_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp39_; + cairo_text_extents_t _tmp40_ = {0}; + cairo_text_extents_t _tmp41_; + gint _tmp42_; + gint _tmp43_; + LiveChartPadding _tmp44_; + LiveChartXAxis* _tmp45_; + LiveChartLabels* _tmp46_; + cairo_text_extents_t _tmp47_ = {0}; + cairo_text_extents_t _tmp48_; + const gchar* _tmp49_; +#line 82 "../src/grid.vala" + _tmp31_ = config->x_axis; +#line 82 "../src/grid.vala" + _tmp32_ = _tmp31_->labels; +#line 82 "../src/grid.vala" + _tmp33_ = live_chart_labels_get_font (_tmp32_); +#line 82 "../src/grid.vala" + _tmp34_ = _tmp33_; +#line 82 "../src/grid.vala" + live_chart_font_configure (_tmp34_, ctx); +#line 83 "../src/grid.vala" + _tmp35_ = g_date_time_new_from_unix_local (time); +#line 83 "../src/grid.vala" + _tmp36_ = _tmp35_; +#line 83 "../src/grid.vala" + _tmp37_ = g_date_time_format (_tmp36_, "%H:%M:%S"); +#line 83 "../src/grid.vala" + _tmp38_ = _tmp37_; +#line 83 "../src/grid.vala" + _g_date_time_unref0 (_tmp36_); +#line 83 "../src/grid.vala" + text = _tmp38_; +#line 85 "../src/grid.vala" + _tmp39_ = text; +#line 85 "../src/grid.vala" + cairo_text_extents (ctx, _tmp39_, &_tmp40_); +#line 85 "../src/grid.vala" + extents = _tmp40_; +#line 87 "../src/grid.vala" + _tmp41_ = extents; +#line 87 "../src/grid.vala" + _tmp42_ = live_chart_config_get_height (config); +#line 87 "../src/grid.vala" + _tmp43_ = _tmp42_; +#line 87 "../src/grid.vala" + _tmp44_ = config->padding; +#line 87 "../src/grid.vala" + _tmp45_ = config->x_axis; +#line 87 "../src/grid.vala" + _tmp46_ = _tmp45_->labels; +#line 87 "../src/grid.vala" + live_chart_labels_get_extents (_tmp46_, &_tmp47_); +#line 87 "../src/grid.vala" + _tmp48_ = _tmp47_; +#line 87 "../src/grid.vala" + cairo_move_to (ctx, (i + 0.5) - (_tmp41_.width / 2), (((0.5 + _tmp43_) - _tmp44_.bottom) + _tmp48_.height) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 88 "../src/grid.vala" + _tmp49_ = text; +#line 88 "../src/grid.vala" + cairo_show_text (ctx, _tmp49_); +#line 89 "../src/grid.vala" + cairo_stroke (ctx); +#line 81 "../src/grid.vala" + _g_free0 (text); +#line 581 "grid.c" + } +#line 91 "../src/grid.vala" + _tmp50_ = config->x_axis; +#line 91 "../src/grid.vala" + _tmp51_ = live_chart_xaxis_get_tick_interval (_tmp50_); +#line 91 "../src/grid.vala" + _tmp52_ = _tmp51_; +#line 91 "../src/grid.vala" + time -= (gint64) ((gint) _tmp52_); +#line 591 "grid.c" + } + } + } +} + +void +live_chart_grid_render_hgrid (LiveChartGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; +#line 95 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 95 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 95 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 97 "../src/grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 97 "../src/grid.vala" + boundaries = _tmp0_; +#line 614 "grid.c" + { + GeeList* _position_list = NULL; + LiveChartYAxis* _tmp1_; + LiveChartTicks _tmp2_; + GeeList* _tmp3_; + gint _position_size = 0; + GeeList* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gint _position_index = 0; +#line 98 "../src/grid.vala" + _tmp1_ = config->y_axis; +#line 98 "../src/grid.vala" + _tmp2_ = _tmp1_->ticks; +#line 98 "../src/grid.vala" + _tmp3_ = _tmp2_.values; +#line 98 "../src/grid.vala" + _position_list = _tmp3_; +#line 98 "../src/grid.vala" + _tmp4_ = _position_list; +#line 98 "../src/grid.vala" + _tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_); +#line 98 "../src/grid.vala" + _tmp6_ = _tmp5_; +#line 98 "../src/grid.vala" + _position_size = _tmp6_; +#line 98 "../src/grid.vala" + _position_index = -1; +#line 98 "../src/grid.vala" + while (TRUE) { +#line 645 "grid.c" + gint _tmp7_; + gint _tmp8_; + gfloat position = 0.0F; + GeeList* _tmp9_; + gpointer _tmp10_; + gfloat* _tmp11_; + gfloat _tmp12_; + gdouble y = 0.0; + LiveChartBoundaries _tmp13_; + LiveChartBoundaries _tmp14_; + LiveChartBoundary _tmp15_; + LiveChartYAxis* _tmp16_; + LiveChartBoundaries _tmp17_; + LiveChartBoundary _tmp18_; + LiveChartYAxis* _tmp19_; + LiveChartPath* _tmp20_; + gboolean _tmp21_; + gboolean _tmp22_; + gboolean _tmp29_ = FALSE; + LiveChartYAxis* _tmp30_; + gboolean _tmp31_; + gboolean _tmp32_; +#line 98 "../src/grid.vala" + _position_index = _position_index + 1; +#line 98 "../src/grid.vala" + _tmp7_ = _position_index; +#line 98 "../src/grid.vala" + _tmp8_ = _position_size; +#line 98 "../src/grid.vala" + if (!(_tmp7_ < _tmp8_)) { +#line 98 "../src/grid.vala" + break; +#line 678 "grid.c" + } +#line 98 "../src/grid.vala" + _tmp9_ = _position_list; +#line 98 "../src/grid.vala" + _tmp10_ = gee_list_get (_tmp9_, _position_index); +#line 98 "../src/grid.vala" + _tmp11_ = (gfloat*) _tmp10_; +#line 98 "../src/grid.vala" + _tmp12_ = *_tmp11_; +#line 98 "../src/grid.vala" + _g_free0 (_tmp11_); +#line 98 "../src/grid.vala" + position = _tmp12_; +#line 100 "../src/grid.vala" + _tmp13_ = boundaries; +#line 100 "../src/grid.vala" + _tmp14_ = boundaries; +#line 100 "../src/grid.vala" + _tmp15_ = _tmp14_.y; +#line 100 "../src/grid.vala" + _tmp16_ = config->y_axis; +#line 100 "../src/grid.vala" + y = (_tmp13_.height + _tmp15_.min) - (position * live_chart_yaxis_get_ratio (_tmp16_)); +#line 101 "../src/grid.vala" + _tmp17_ = boundaries; +#line 101 "../src/grid.vala" + _tmp18_ = _tmp17_.y; +#line 101 "../src/grid.vala" + if (y < ((gdouble) _tmp18_.min)) { +#line 102 "../src/grid.vala" + break; +#line 710 "grid.c" + } +#line 104 "../src/grid.vala" + _tmp19_ = config->y_axis; +#line 104 "../src/grid.vala" + _tmp20_ = _tmp19_->lines; +#line 104 "../src/grid.vala" + _tmp21_ = live_chart_path_get_visible (_tmp20_); +#line 104 "../src/grid.vala" + _tmp22_ = _tmp21_; +#line 104 "../src/grid.vala" + if (_tmp22_) { +#line 722 "grid.c" + LiveChartYAxis* _tmp23_; + LiveChartPath* _tmp24_; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartBoundaries _tmp27_; + LiveChartBoundary _tmp28_; +#line 105 "../src/grid.vala" + _tmp23_ = config->y_axis; +#line 105 "../src/grid.vala" + _tmp24_ = _tmp23_->lines; +#line 105 "../src/grid.vala" + live_chart_path_configure (_tmp24_, ctx); +#line 106 "../src/grid.vala" + _tmp25_ = boundaries; +#line 106 "../src/grid.vala" + _tmp26_ = _tmp25_.x; +#line 106 "../src/grid.vala" + cairo_move_to (ctx, 0.5 + _tmp26_.max, ((gint) y) + 0.5); +#line 107 "../src/grid.vala" + _tmp27_ = boundaries; +#line 107 "../src/grid.vala" + _tmp28_ = _tmp27_.x; +#line 107 "../src/grid.vala" + cairo_line_to (ctx, _tmp28_.min + 0.5, ((gint) y) + 0.5); +#line 108 "../src/grid.vala" + cairo_stroke (ctx); +#line 109 "../src/grid.vala" + live_chart_grid_restore (self, ctx); +#line 751 "grid.c" + } +#line 113 "../src/grid.vala" + _tmp30_ = config->y_axis; +#line 113 "../src/grid.vala" + _tmp31_ = live_chart_yaxis_get_visible (_tmp30_); +#line 113 "../src/grid.vala" + _tmp32_ = _tmp31_; +#line 113 "../src/grid.vala" + if (_tmp32_) { +#line 761 "grid.c" + LiveChartYAxis* _tmp33_; + LiveChartLabels* _tmp34_; + gboolean _tmp35_; + gboolean _tmp36_; +#line 113 "../src/grid.vala" + _tmp33_ = config->y_axis; +#line 113 "../src/grid.vala" + _tmp34_ = _tmp33_->labels; +#line 113 "../src/grid.vala" + _tmp35_ = live_chart_labels_get_visible (_tmp34_); +#line 113 "../src/grid.vala" + _tmp36_ = _tmp35_; +#line 113 "../src/grid.vala" + _tmp29_ = _tmp36_; +#line 776 "grid.c" + } else { +#line 113 "../src/grid.vala" + _tmp29_ = FALSE; +#line 780 "grid.c" + } +#line 113 "../src/grid.vala" + if (_tmp29_) { +#line 784 "grid.c" + LiveChartYAxis* _tmp37_; + LiveChartLabels* _tmp38_; + LiveChartFont* _tmp39_; + LiveChartFont* _tmp40_; + gchar* value = NULL; + LiveChartYAxis* _tmp41_; + const gchar* _tmp42_; + const gchar* _tmp43_; + gchar* _tmp44_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp45_; + cairo_text_extents_t _tmp46_ = {0}; + LiveChartBoundaries _tmp47_; + LiveChartBoundary _tmp48_; + cairo_text_extents_t _tmp49_; + cairo_text_extents_t _tmp50_; + const gchar* _tmp51_; +#line 114 "../src/grid.vala" + _tmp37_ = config->y_axis; +#line 114 "../src/grid.vala" + _tmp38_ = _tmp37_->labels; +#line 114 "../src/grid.vala" + _tmp39_ = live_chart_labels_get_font (_tmp38_); +#line 114 "../src/grid.vala" + _tmp40_ = _tmp39_; +#line 114 "../src/grid.vala" + live_chart_font_configure (_tmp40_, ctx); +#line 115 "../src/grid.vala" + _tmp41_ = config->y_axis; +#line 115 "../src/grid.vala" + _tmp42_ = live_chart_yaxis_get_unit (_tmp41_); +#line 115 "../src/grid.vala" + _tmp43_ = _tmp42_; +#line 115 "../src/grid.vala" + _tmp44_ = live_chart_format_for_y_axis (_tmp43_, position); +#line 115 "../src/grid.vala" + value = _tmp44_; +#line 118 "../src/grid.vala" + _tmp45_ = value; +#line 118 "../src/grid.vala" + cairo_text_extents (ctx, _tmp45_, &_tmp46_); +#line 118 "../src/grid.vala" + extents = _tmp46_; +#line 119 "../src/grid.vala" + _tmp47_ = boundaries; +#line 119 "../src/grid.vala" + _tmp48_ = _tmp47_.x; +#line 119 "../src/grid.vala" + _tmp49_ = extents; +#line 119 "../src/grid.vala" + _tmp50_ = extents; +#line 119 "../src/grid.vala" + cairo_move_to (ctx, (_tmp48_.min - _tmp49_.width) - 5, (y + (_tmp50_.height / 2)) + 0.5); +#line 120 "../src/grid.vala" + _tmp51_ = value; +#line 120 "../src/grid.vala" + cairo_show_text (ctx, _tmp51_); +#line 121 "../src/grid.vala" + cairo_stroke (ctx); +#line 113 "../src/grid.vala" + _g_free0 (value); +#line 846 "grid.c" + } + } + } +} + +void +live_chart_grid_update_bounding_box (LiveChartGrid* self, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartBoundaries _tmp3_; + LiveChartBoundary _tmp4_; + LiveChartBoundaries _tmp5_; + LiveChartBoundary _tmp6_; + LiveChartBoundaries _tmp7_; + LiveChartBoundary _tmp8_; + LiveChartBoundaries _tmp9_; + LiveChartBoundary _tmp10_; + LiveChartBoundaries _tmp11_; + LiveChartBoundary _tmp12_; + LiveChartBoundingBox _tmp13_ = {0}; +#line 126 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 126 "../src/grid.vala" + g_return_if_fail (config != NULL); +#line 127 "../src/grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 127 "../src/grid.vala" + boundaries = _tmp0_; +#line 128 "../src/grid.vala" + _tmp1_ = boundaries; +#line 128 "../src/grid.vala" + _tmp2_ = _tmp1_.x; +#line 128 "../src/grid.vala" + _tmp3_ = boundaries; +#line 128 "../src/grid.vala" + _tmp4_ = _tmp3_.y; +#line 128 "../src/grid.vala" + _tmp5_ = boundaries; +#line 128 "../src/grid.vala" + _tmp6_ = _tmp5_.x; +#line 128 "../src/grid.vala" + _tmp7_ = boundaries; +#line 128 "../src/grid.vala" + _tmp8_ = _tmp7_.x; +#line 128 "../src/grid.vala" + _tmp9_ = boundaries; +#line 128 "../src/grid.vala" + _tmp10_ = _tmp9_.y; +#line 128 "../src/grid.vala" + _tmp11_ = boundaries; +#line 128 "../src/grid.vala" + _tmp12_ = _tmp11_.y; +#line 128 "../src/grid.vala" + memset (&_tmp13_, 0, sizeof (LiveChartBoundingBox)); +#line 128 "../src/grid.vala" + _tmp13_.x = (gdouble) _tmp2_.min; +#line 128 "../src/grid.vala" + _tmp13_.y = (gdouble) _tmp4_.min; +#line 128 "../src/grid.vala" + _tmp13_.width = (gdouble) (_tmp6_.max - _tmp8_.min); +#line 128 "../src/grid.vala" + _tmp13_.height = (gdouble) ((_tmp10_.max - _tmp12_.min) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 128 "../src/grid.vala" + self->bounding_box = _tmp13_; +#line 915 "grid.c" +} + +void +live_chart_grid_debug (LiveChartGrid* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 136 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 136 "../src/grid.vala" + g_return_if_fail (ctx != NULL); +#line 137 "../src/grid.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 137 "../src/grid.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 137 "../src/grid.vala" + debug = _tmp1_; +#line 138 "../src/grid.vala" + _tmp2_ = debug; +#line 138 "../src/grid.vala" + if (_tmp2_ != NULL) { +#line 940 "grid.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 139 "../src/grid.vala" + _tmp3_ = self->bounding_box; +#line 139 "../src/grid.vala" + _tmp4_ = self->bounding_box; +#line 139 "../src/grid.vala" + _tmp5_ = self->bounding_box; +#line 139 "../src/grid.vala" + _tmp6_ = self->bounding_box; +#line 139 "../src/grid.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 140 "../src/grid.vala" + cairo_stroke (ctx); +#line 957 "grid.c" + } +#line 136 "../src/grid.vala" + _g_free0 (debug); +#line 961 "grid.c" +} + +LiveChartGrid* +live_chart_grid_construct (GType object_type) +{ + LiveChartGrid * self = NULL; +#line 5 "../src/grid.vala" + self = (LiveChartGrid*) g_object_new (object_type, NULL); +#line 5 "../src/grid.vala" + return self; +#line 972 "grid.c" +} + +LiveChartGrid* +live_chart_grid_new (void) +{ +#line 5 "../src/grid.vala" + return live_chart_grid_construct (LIVE_CHART_TYPE_GRID); +#line 980 "grid.c" +} + +static gboolean +live_chart_grid_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartGrid* self; +#line 14 "../src/grid.vala" + self = (LiveChartGrid*) base; +#line 14 "../src/grid.vala" + result = self->priv->_visible; +#line 14 "../src/grid.vala" + return result; +#line 994 "grid.c" +} + +static void +live_chart_grid_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartGrid* self; + gboolean old_value; +#line 14 "../src/grid.vala" + self = (LiveChartGrid*) base; +#line 14 "../src/grid.vala" + old_value = live_chart_grid_real_get_visible (base); +#line 14 "../src/grid.vala" + if (old_value != value) { +#line 14 "../src/grid.vala" + self->priv->_visible = value; +#line 14 "../src/grid.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_grid_properties[LIVE_CHART_GRID_VISIBLE_PROPERTY]); +#line 1013 "grid.c" + } +} + +void +live_chart_grid_get_main_color (LiveChartGrid* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 16 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/grid.vala" + _tmp0_ = self->priv->_main_color; +#line 16 "../src/grid.vala" + *result = _tmp0_; +#line 16 "../src/grid.vala" + return; +#line 1030 "grid.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 16 "../src/grid.vala" + if (s1 == s2) { +#line 16 "../src/grid.vala" + return TRUE; +#line 1041 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1 == NULL) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1047 "grid.c" + } +#line 16 "../src/grid.vala" + if (s2 == NULL) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1053 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1->red != s2->red) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1059 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1->green != s2->green) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1065 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1->blue != s2->blue) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1071 "grid.c" + } +#line 16 "../src/grid.vala" + if (s1->alpha != s2->alpha) { +#line 16 "../src/grid.vala" + return FALSE; +#line 1077 "grid.c" + } +#line 16 "../src/grid.vala" + return TRUE; +#line 1081 "grid.c" +} + +void +live_chart_grid_set_main_color (LiveChartGrid* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 16 "../src/grid.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/grid.vala" + live_chart_grid_get_main_color (self, &old_value); +#line 16 "../src/grid.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 1095 "grid.c" + GdkRGBA _tmp0_; +#line 16 "../src/grid.vala" + _tmp0_ = *value; +#line 16 "../src/grid.vala" + self->priv->_main_color = _tmp0_; +#line 16 "../src/grid.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_grid_properties[LIVE_CHART_GRID_MAIN_COLOR_PROPERTY]); +#line 1103 "grid.c" + } +} + +static void +live_chart_grid_class_init (LiveChartGridClass * klass, + gpointer klass_data) +{ +#line 5 "../src/grid.vala" + live_chart_grid_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/grid.vala" + g_type_class_adjust_private_offset (klass, &LiveChartGrid_private_offset); +#line 5 "../src/grid.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_grid_get_property; +#line 5 "../src/grid.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_grid_set_property; +#line 5 "../src/grid.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_grid_finalize; +#line 5 "../src/grid.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_GRID_VISIBLE_PROPERTY, live_chart_grid_properties[LIVE_CHART_GRID_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 5 "../src/grid.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_GRID_MAIN_COLOR_PROPERTY, live_chart_grid_properties[LIVE_CHART_GRID_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 1125 "grid.c" +} + +static void +live_chart_grid_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 5 "../src/grid.vala" + live_chart_grid_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 5 "../src/grid.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_grid_real_draw; +#line 5 "../src/grid.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_grid_real_get_bounding_box; +#line 5 "../src/grid.vala" + iface->get_visible = live_chart_grid_real_get_visible; +#line 5 "../src/grid.vala" + iface->set_visible = live_chart_grid_real_set_visible; +#line 1142 "grid.c" +} + +static void +live_chart_grid_instance_init (LiveChartGrid * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; + GdkRGBA _tmp1_ = {0}; +#line 5 "../src/grid.vala" + self->priv = live_chart_grid_get_instance_private (self); +#line 7 "../src/grid.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 7 "../src/grid.vala" + _tmp0_.x = (gdouble) 0; +#line 7 "../src/grid.vala" + _tmp0_.y = (gdouble) 0; +#line 7 "../src/grid.vala" + _tmp0_.width = (gdouble) 0; +#line 7 "../src/grid.vala" + _tmp0_.height = (gdouble) 0; +#line 7 "../src/grid.vala" + self->bounding_box = _tmp0_; +#line 14 "../src/grid.vala" + self->priv->_visible = TRUE; +#line 15 "../src/grid.vala" + memset (&_tmp1_, 0, sizeof (GdkRGBA)); +#line 15 "../src/grid.vala" + _tmp1_.red = 0.4; +#line 15 "../src/grid.vala" + _tmp1_.green = 0.4; +#line 15 "../src/grid.vala" + _tmp1_.blue = 0.4; +#line 15 "../src/grid.vala" + _tmp1_.alpha = 1.0; +#line 15 "../src/grid.vala" + self->priv->_main_color = _tmp1_; +#line 1179 "grid.c" +} + +static void +live_chart_grid_finalize (GObject * obj) +{ + LiveChartGrid * self; +#line 5 "../src/grid.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_GRID, LiveChartGrid); +#line 5 "../src/grid.vala" + G_OBJECT_CLASS (live_chart_grid_parent_class)->finalize (obj); +#line 1190 "grid.c" +} + +static GType +live_chart_grid_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartGridClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_grid_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartGrid), 0, (GInstanceInitFunc) live_chart_grid_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_grid_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_grid_type_id; + live_chart_grid_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartGrid", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_grid_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartGrid_private_offset = g_type_add_instance_private (live_chart_grid_type_id, sizeof (LiveChartGridPrivate)); + return live_chart_grid_type_id; +} + +GType +live_chart_grid_get_type (void) +{ + static volatile gsize live_chart_grid_type_id__once = 0; + if (g_once_init_enter (&live_chart_grid_type_id__once)) { + GType live_chart_grid_type_id; + live_chart_grid_type_id = live_chart_grid_get_type_once (); + g_once_init_leave (&live_chart_grid_type_id__once, live_chart_grid_type_id); + } + return live_chart_grid_type_id__once; +} + +static void +_vala_live_chart_grid_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartGrid * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_GRID, LiveChartGrid); +#line 5 "../src/grid.vala" + switch (property_id) { +#line 5 "../src/grid.vala" + case LIVE_CHART_GRID_VISIBLE_PROPERTY: +#line 5 "../src/grid.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 5 "../src/grid.vala" + break; +#line 5 "../src/grid.vala" + case LIVE_CHART_GRID_MAIN_COLOR_PROPERTY: +#line 1235 "grid.c" + { + GdkRGBA boxed; +#line 5 "../src/grid.vala" + live_chart_grid_get_main_color (self, &boxed); +#line 5 "../src/grid.vala" + g_value_set_boxed (value, &boxed); +#line 1242 "grid.c" + } +#line 5 "../src/grid.vala" + break; +#line 1246 "grid.c" + default: +#line 5 "../src/grid.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/grid.vala" + break; +#line 1252 "grid.c" + } +} + +static void +_vala_live_chart_grid_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartGrid * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_GRID, LiveChartGrid); +#line 5 "../src/grid.vala" + switch (property_id) { +#line 5 "../src/grid.vala" + case LIVE_CHART_GRID_VISIBLE_PROPERTY: +#line 5 "../src/grid.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 5 "../src/grid.vala" + break; +#line 5 "../src/grid.vala" + case LIVE_CHART_GRID_MAIN_COLOR_PROPERTY: +#line 5 "../src/grid.vala" + live_chart_grid_set_main_color (self, g_value_get_boxed (value)); +#line 5 "../src/grid.vala" + break; +#line 1278 "grid.c" + default: +#line 5 "../src/grid.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/grid.vala" + break; +#line 1284 "grid.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/intersections.c b/iPDC/lib/liblivechart.so.p/intersections.c new file mode 100644 index 0000000..08628ca --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/intersections.c @@ -0,0 +1,800 @@ +/* intersections.c generated by valac 0.56.0, the Vala compiler + * generated from intersections.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_INTERSECTIONS_0_PROPERTY, + LIVE_CHART_INTERSECTIONS_NUM_PROPERTIES +}; +static GParamSpec* live_chart_intersections_properties[LIVE_CHART_INTERSECTIONS_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +enum { + LIVE_CHART_INTERSECTION_0_PROPERTY, + LIVE_CHART_INTERSECTION_REGION_PROPERTY, + LIVE_CHART_INTERSECTION_START_X_PROPERTY, + LIVE_CHART_INTERSECTION_END_X_PROPERTY, + LIVE_CHART_INTERSECTION_NUM_PROPERTIES +}; +static GParamSpec* live_chart_intersection_properties[LIVE_CHART_INTERSECTION_NUM_PROPERTIES]; +#define _live_chart_region_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_region_unref (var), NULL))) +#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) + +struct _LiveChartIntersectionsPrivate { + GeeList* intersections; +}; + +struct _LiveChartIntersectionPrivate { + LiveChartRegion* _region; + gdouble _start_x; + gdouble _end_x; +}; + +static gint LiveChartIntersections_private_offset; +static gpointer live_chart_intersections_parent_class = NULL; +static gint LiveChartIntersection_private_offset; +static gpointer live_chart_intersection_parent_class = NULL; + +static void live_chart_intersections_finalize (GObject * obj); +static GType live_chart_intersections_get_type_once (void); +static void live_chart_intersection_set_start_x (LiveChartIntersection* self, + gdouble value); +static void live_chart_intersection_set_end_x (LiveChartIntersection* self, + gdouble value); +static gdouble* _double_dup (gdouble* self); +static void live_chart_intersection_finalize (GObject * obj); +static GType live_chart_intersection_get_type_once (void); +static void _vala_live_chart_intersection_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_intersection_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_intersections_get_instance_private (LiveChartIntersections* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartIntersections_private_offset); +} + +void +live_chart_intersections_close (LiveChartIntersections* self, + gdouble x, + gdouble exited_at) +{ + GeeList* _tmp0_; + gpointer _tmp1_; + LiveChartIntersection* _tmp2_; +#line 5 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 6 "../src/intersections.vala" + _tmp1_ = gee_list_last (_tmp0_); +#line 6 "../src/intersections.vala" + _tmp2_ = (LiveChartIntersection*) _tmp1_; +#line 6 "../src/intersections.vala" + live_chart_intersection_close (_tmp2_, x, exited_at); +#line 6 "../src/intersections.vala" + _g_object_unref0 (_tmp2_); +#line 89 "intersections.c" +} + +void +live_chart_intersections_update (LiveChartIntersections* self, + gdouble x) +{ + GeeList* _tmp0_; + gpointer _tmp1_; + LiveChartIntersection* _tmp2_; +#line 9 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 10 "../src/intersections.vala" + _tmp1_ = gee_list_last (_tmp0_); +#line 10 "../src/intersections.vala" + _tmp2_ = (LiveChartIntersection*) _tmp1_; +#line 10 "../src/intersections.vala" + live_chart_intersection_update (_tmp2_, x); +#line 10 "../src/intersections.vala" + _g_object_unref0 (_tmp2_); +#line 111 "intersections.c" +} + +void +live_chart_intersections_open (LiveChartIntersections* self, + LiveChartRegion* region, + gdouble x, + gdouble entered_at) +{ + LiveChartIntersection* intersection = NULL; + LiveChartIntersection* _tmp0_; + GeeList* _tmp1_; +#line 13 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 13 "../src/intersections.vala" + g_return_if_fail (region != NULL); +#line 14 "../src/intersections.vala" + _tmp0_ = live_chart_intersection_new (region, x, entered_at); +#line 14 "../src/intersections.vala" + intersection = _tmp0_; +#line 15 "../src/intersections.vala" + _tmp1_ = self->priv->intersections; +#line 15 "../src/intersections.vala" + gee_collection_add ((GeeCollection*) _tmp1_, intersection); +#line 13 "../src/intersections.vala" + _g_object_unref0 (intersection); +#line 137 "intersections.c" +} + +void +live_chart_intersections_open_without_entrypoint (LiveChartIntersections* self, + LiveChartRegion* region, + gdouble x) +{ + LiveChartIntersection* intersection = NULL; + LiveChartIntersection* _tmp0_; + GeeList* _tmp1_; +#line 18 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 18 "../src/intersections.vala" + g_return_if_fail (region != NULL); +#line 19 "../src/intersections.vala" + _tmp0_ = live_chart_intersection_new_without_entry_point (region, x); +#line 19 "../src/intersections.vala" + intersection = _tmp0_; +#line 20 "../src/intersections.vala" + _tmp1_ = self->priv->intersections; +#line 20 "../src/intersections.vala" + gee_collection_add ((GeeCollection*) _tmp1_, intersection); +#line 18 "../src/intersections.vala" + _g_object_unref0 (intersection); +#line 162 "intersections.c" +} + +void +live_chart_intersections_foreach (LiveChartIntersections* self, + GeeForallFunc f, + gpointer f_target) +{ + GeeList* _tmp0_; +#line 23 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 24 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 24 "../src/intersections.vala" + gee_traversable_foreach ((GeeTraversable*) _tmp0_, f, f_target); +#line 177 "intersections.c" +} + +gboolean +live_chart_intersections_has_an_opened_intersection (LiveChartIntersections* self) +{ + gboolean _tmp0_ = FALSE; + GeeList* _tmp1_; + gint _tmp2_; + gint _tmp3_; + gboolean result; +#line 27 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 28 "../src/intersections.vala" + _tmp1_ = self->priv->intersections; +#line 28 "../src/intersections.vala" + _tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_); +#line 28 "../src/intersections.vala" + _tmp3_ = _tmp2_; +#line 28 "../src/intersections.vala" + if (_tmp3_ > 0) { +#line 198 "intersections.c" + GeeList* _tmp4_; + gpointer _tmp5_; + LiveChartIntersection* _tmp6_; +#line 28 "../src/intersections.vala" + _tmp4_ = self->priv->intersections; +#line 28 "../src/intersections.vala" + _tmp5_ = gee_list_last (_tmp4_); +#line 28 "../src/intersections.vala" + _tmp6_ = (LiveChartIntersection*) _tmp5_; +#line 28 "../src/intersections.vala" + _tmp0_ = live_chart_intersection_is_open (_tmp6_); +#line 28 "../src/intersections.vala" + _g_object_unref0 (_tmp6_); +#line 212 "intersections.c" + } else { +#line 28 "../src/intersections.vala" + _tmp0_ = FALSE; +#line 216 "intersections.c" + } +#line 28 "../src/intersections.vala" + result = _tmp0_; +#line 28 "../src/intersections.vala" + return result; +#line 222 "intersections.c" +} + +static gpointer +_live_chart_region_ref0 (gpointer self) +{ +#line 31 "../src/intersections.vala" + return self ? live_chart_region_ref (self) : NULL; +#line 230 "intersections.c" +} + +LiveChartRegion* +live_chart_intersections_get_current_region (LiveChartIntersections* self) +{ + GeeList* _tmp0_; + gpointer _tmp1_; + LiveChartIntersection* _tmp2_; + LiveChartRegion* _tmp3_; + LiveChartRegion* _tmp4_; + LiveChartRegion* _tmp5_; + LiveChartRegion* _tmp6_; + LiveChartRegion* result; +#line 30 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 31 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 31 "../src/intersections.vala" + _tmp1_ = gee_list_last (_tmp0_); +#line 31 "../src/intersections.vala" + _tmp2_ = (LiveChartIntersection*) _tmp1_; +#line 31 "../src/intersections.vala" + _tmp3_ = live_chart_intersection_get_region (_tmp2_); +#line 31 "../src/intersections.vala" + _tmp4_ = _tmp3_; +#line 31 "../src/intersections.vala" + _tmp5_ = _live_chart_region_ref0 (_tmp4_); +#line 31 "../src/intersections.vala" + _tmp6_ = _tmp5_; +#line 31 "../src/intersections.vala" + _g_object_unref0 (_tmp2_); +#line 31 "../src/intersections.vala" + result = _tmp6_; +#line 31 "../src/intersections.vala" + return result; +#line 266 "intersections.c" +} + +gint +live_chart_intersections_size (LiveChartIntersections* self) +{ + GeeList* _tmp0_; + gint _tmp1_; + gint _tmp2_; + gint result; +#line 34 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, 0); +#line 35 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 35 "../src/intersections.vala" + _tmp1_ = gee_collection_get_size ((GeeCollection*) _tmp0_); +#line 35 "../src/intersections.vala" + _tmp2_ = _tmp1_; +#line 35 "../src/intersections.vala" + result = _tmp2_; +#line 35 "../src/intersections.vala" + return result; +#line 288 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersections_get (LiveChartIntersections* self, + gint index) +{ + GeeList* _tmp0_; + gpointer _tmp1_; + LiveChartIntersection* result; +#line 38 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 39 "../src/intersections.vala" + _tmp0_ = self->priv->intersections; +#line 39 "../src/intersections.vala" + _tmp1_ = gee_list_get (_tmp0_, index); +#line 39 "../src/intersections.vala" + result = (LiveChartIntersection*) _tmp1_; +#line 39 "../src/intersections.vala" + return result; +#line 308 "intersections.c" +} + +LiveChartIntersections* +live_chart_intersections_construct (GType object_type) +{ + LiveChartIntersections * self = NULL; +#line 2 "../src/intersections.vala" + self = (LiveChartIntersections*) g_object_new (object_type, NULL); +#line 2 "../src/intersections.vala" + return self; +#line 319 "intersections.c" +} + +LiveChartIntersections* +live_chart_intersections_new (void) +{ +#line 2 "../src/intersections.vala" + return live_chart_intersections_construct (LIVE_CHART_TYPE_INTERSECTIONS); +#line 327 "intersections.c" +} + +static void +live_chart_intersections_class_init (LiveChartIntersectionsClass * klass, + gpointer klass_data) +{ +#line 2 "../src/intersections.vala" + live_chart_intersections_parent_class = g_type_class_peek_parent (klass); +#line 2 "../src/intersections.vala" + g_type_class_adjust_private_offset (klass, &LiveChartIntersections_private_offset); +#line 2 "../src/intersections.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_intersections_finalize; +#line 340 "intersections.c" +} + +static void +live_chart_intersections_instance_init (LiveChartIntersections * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 2 "../src/intersections.vala" + self->priv = live_chart_intersections_get_instance_private (self); +#line 3 "../src/intersections.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_TYPE_INTERSECTION, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL); +#line 3 "../src/intersections.vala" + self->priv->intersections = (GeeList*) _tmp0_; +#line 354 "intersections.c" +} + +static void +live_chart_intersections_finalize (GObject * obj) +{ + LiveChartIntersections * self; +#line 2 "../src/intersections.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_INTERSECTIONS, LiveChartIntersections); +#line 3 "../src/intersections.vala" + _g_object_unref0 (self->priv->intersections); +#line 2 "../src/intersections.vala" + G_OBJECT_CLASS (live_chart_intersections_parent_class)->finalize (obj); +#line 367 "intersections.c" +} + +static GType +live_chart_intersections_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartIntersectionsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_intersections_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartIntersections), 0, (GInstanceInitFunc) live_chart_intersections_instance_init, NULL }; + GType live_chart_intersections_type_id; + live_chart_intersections_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartIntersections", &g_define_type_info, 0); + LiveChartIntersections_private_offset = g_type_add_instance_private (live_chart_intersections_type_id, sizeof (LiveChartIntersectionsPrivate)); + return live_chart_intersections_type_id; +} + +GType +live_chart_intersections_get_type (void) +{ + static volatile gsize live_chart_intersections_type_id__once = 0; + if (g_once_init_enter (&live_chart_intersections_type_id__once)) { + GType live_chart_intersections_type_id; + live_chart_intersections_type_id = live_chart_intersections_get_type_once (); + g_once_init_leave (&live_chart_intersections_type_id__once, live_chart_intersections_type_id); + } + return live_chart_intersections_type_id__once; +} + +static inline gpointer +live_chart_intersection_get_instance_private (LiveChartIntersection* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartIntersection_private_offset); +} + +static gdouble* +_double_dup (gdouble* self) +{ + gdouble* dup; +#line 54 "../src/intersections.vala" + dup = g_new0 (gdouble, 1); +#line 54 "../src/intersections.vala" + memcpy (dup, self, sizeof (gdouble)); +#line 54 "../src/intersections.vala" + return dup; +#line 408 "intersections.c" +} + +static gpointer +__double_dup0 (gpointer self) +{ +#line 54 "../src/intersections.vala" + return self ? _double_dup (self) : NULL; +#line 416 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersection_construct (GType object_type, + LiveChartRegion* region, + gdouble start_x, + gdouble entered_at) +{ + LiveChartIntersection * self = NULL; + gdouble* _tmp0_; +#line 50 "../src/intersections.vala" + g_return_val_if_fail (region != NULL, NULL); +#line 50 "../src/intersections.vala" + self = (LiveChartIntersection*) g_object_new (object_type, NULL); +#line 51 "../src/intersections.vala" + live_chart_intersection_set_region (self, region); +#line 52 "../src/intersections.vala" + live_chart_intersection_set_start_x (self, start_x); +#line 53 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, start_x); +#line 54 "../src/intersections.vala" + _tmp0_ = __double_dup0 (&entered_at); +#line 54 "../src/intersections.vala" + _g_free0 (self->entered_at); +#line 54 "../src/intersections.vala" + self->entered_at = _tmp0_; +#line 50 "../src/intersections.vala" + return self; +#line 445 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersection_new (LiveChartRegion* region, + gdouble start_x, + gdouble entered_at) +{ +#line 50 "../src/intersections.vala" + return live_chart_intersection_construct (LIVE_CHART_TYPE_INTERSECTION, region, start_x, entered_at); +#line 455 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersection_construct_without_entry_point (GType object_type, + LiveChartRegion* region, + gdouble start_x) +{ + LiveChartIntersection * self = NULL; +#line 56 "../src/intersections.vala" + g_return_val_if_fail (region != NULL, NULL); +#line 56 "../src/intersections.vala" + self = (LiveChartIntersection*) g_object_new (object_type, NULL); +#line 57 "../src/intersections.vala" + live_chart_intersection_set_region (self, region); +#line 58 "../src/intersections.vala" + live_chart_intersection_set_start_x (self, start_x); +#line 59 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, start_x); +#line 56 "../src/intersections.vala" + return self; +#line 476 "intersections.c" +} + +LiveChartIntersection* +live_chart_intersection_new_without_entry_point (LiveChartRegion* region, + gdouble start_x) +{ +#line 56 "../src/intersections.vala" + return live_chart_intersection_construct_without_entry_point (LIVE_CHART_TYPE_INTERSECTION, region, start_x); +#line 485 "intersections.c" +} + +void +live_chart_intersection_update (LiveChartIntersection* self, + gdouble x) +{ +#line 62 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 63 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, x); +#line 496 "intersections.c" +} + +void +live_chart_intersection_close (LiveChartIntersection* self, + gdouble x, + gdouble exited_at) +{ + gdouble* _tmp0_; +#line 66 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 67 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, x); +#line 68 "../src/intersections.vala" + _tmp0_ = __double_dup0 (&exited_at); +#line 68 "../src/intersections.vala" + _g_free0 (self->exited_at); +#line 68 "../src/intersections.vala" + self->exited_at = _tmp0_; +#line 515 "intersections.c" +} + +gboolean +live_chart_intersection_is_open (LiveChartIntersection* self) +{ + gdouble* _tmp0_; + gboolean result; +#line 71 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 72 "../src/intersections.vala" + _tmp0_ = self->exited_at; +#line 72 "../src/intersections.vala" + result = _tmp0_ == NULL; +#line 72 "../src/intersections.vala" + return result; +#line 531 "intersections.c" +} + +gboolean +live_chart_intersection_is_closed (LiveChartIntersection* self) +{ + gdouble* _tmp0_; + gboolean result; +#line 75 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 76 "../src/intersections.vala" + _tmp0_ = self->exited_at; +#line 76 "../src/intersections.vala" + result = _tmp0_ != NULL; +#line 76 "../src/intersections.vala" + return result; +#line 547 "intersections.c" +} + +LiveChartRegion* +live_chart_intersection_get_region (LiveChartIntersection* self) +{ + LiveChartRegion* result; + LiveChartRegion* _tmp0_; +#line 44 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 44 "../src/intersections.vala" + _tmp0_ = self->priv->_region; +#line 44 "../src/intersections.vala" + result = _tmp0_; +#line 44 "../src/intersections.vala" + return result; +#line 563 "intersections.c" +} + +void +live_chart_intersection_set_region (LiveChartIntersection* self, + LiveChartRegion* value) +{ + LiveChartRegion* old_value; +#line 44 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 44 "../src/intersections.vala" + old_value = live_chart_intersection_get_region (self); +#line 44 "../src/intersections.vala" + if (old_value != value) { +#line 577 "intersections.c" + LiveChartRegion* _tmp0_; +#line 44 "../src/intersections.vala" + _tmp0_ = _live_chart_region_ref0 (value); +#line 44 "../src/intersections.vala" + _live_chart_region_unref0 (self->priv->_region); +#line 44 "../src/intersections.vala" + self->priv->_region = _tmp0_; +#line 44 "../src/intersections.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_REGION_PROPERTY]); +#line 587 "intersections.c" + } +} + +gdouble +live_chart_intersection_get_start_x (LiveChartIntersection* self) +{ + gdouble result; +#line 45 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 45 "../src/intersections.vala" + result = self->priv->_start_x; +#line 45 "../src/intersections.vala" + return result; +#line 601 "intersections.c" +} + +static void +live_chart_intersection_set_start_x (LiveChartIntersection* self, + gdouble value) +{ + gdouble old_value; +#line 45 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/intersections.vala" + old_value = live_chart_intersection_get_start_x (self); +#line 45 "../src/intersections.vala" + if (old_value != value) { +#line 45 "../src/intersections.vala" + self->priv->_start_x = value; +#line 45 "../src/intersections.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_START_X_PROPERTY]); +#line 619 "intersections.c" + } +} + +gdouble +live_chart_intersection_get_end_x (LiveChartIntersection* self) +{ + gdouble result; +#line 46 "../src/intersections.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 46 "../src/intersections.vala" + result = self->priv->_end_x; +#line 46 "../src/intersections.vala" + return result; +#line 633 "intersections.c" +} + +static void +live_chart_intersection_set_end_x (LiveChartIntersection* self, + gdouble value) +{ + gdouble old_value; +#line 46 "../src/intersections.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/intersections.vala" + old_value = live_chart_intersection_get_end_x (self); +#line 46 "../src/intersections.vala" + if (old_value != value) { +#line 46 "../src/intersections.vala" + self->priv->_end_x = value; +#line 46 "../src/intersections.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_END_X_PROPERTY]); +#line 651 "intersections.c" + } +} + +static void +live_chart_intersection_class_init (LiveChartIntersectionClass * klass, + gpointer klass_data) +{ +#line 43 "../src/intersections.vala" + live_chart_intersection_parent_class = g_type_class_peek_parent (klass); +#line 43 "../src/intersections.vala" + g_type_class_adjust_private_offset (klass, &LiveChartIntersection_private_offset); +#line 43 "../src/intersections.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_intersection_get_property; +#line 43 "../src/intersections.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_intersection_set_property; +#line 43 "../src/intersections.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_intersection_finalize; +#line 43 "../src/intersections.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_INTERSECTION_REGION_PROPERTY, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_REGION_PROPERTY] = live_chart_param_spec_region ("region", "region", "region", LIVE_CHART_TYPE_REGION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 43 "../src/intersections.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_INTERSECTION_START_X_PROPERTY, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_START_X_PROPERTY] = g_param_spec_double ("start-x", "start-x", "start-x", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 43 "../src/intersections.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_INTERSECTION_END_X_PROPERTY, live_chart_intersection_properties[LIVE_CHART_INTERSECTION_END_X_PROPERTY] = g_param_spec_double ("end-x", "end-x", "end-x", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 675 "intersections.c" +} + +static void +live_chart_intersection_instance_init (LiveChartIntersection * self, + gpointer klass) +{ +#line 43 "../src/intersections.vala" + self->priv = live_chart_intersection_get_instance_private (self); +#line 684 "intersections.c" +} + +static void +live_chart_intersection_finalize (GObject * obj) +{ + LiveChartIntersection * self; +#line 43 "../src/intersections.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersection); +#line 44 "../src/intersections.vala" + _live_chart_region_unref0 (self->priv->_region); +#line 47 "../src/intersections.vala" + _g_free0 (self->entered_at); +#line 48 "../src/intersections.vala" + _g_free0 (self->exited_at); +#line 43 "../src/intersections.vala" + G_OBJECT_CLASS (live_chart_intersection_parent_class)->finalize (obj); +#line 701 "intersections.c" +} + +static GType +live_chart_intersection_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartIntersectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_intersection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartIntersection), 0, (GInstanceInitFunc) live_chart_intersection_instance_init, NULL }; + GType live_chart_intersection_type_id; + live_chart_intersection_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartIntersection", &g_define_type_info, 0); + LiveChartIntersection_private_offset = g_type_add_instance_private (live_chart_intersection_type_id, sizeof (LiveChartIntersectionPrivate)); + return live_chart_intersection_type_id; +} + +GType +live_chart_intersection_get_type (void) +{ + static volatile gsize live_chart_intersection_type_id__once = 0; + if (g_once_init_enter (&live_chart_intersection_type_id__once)) { + GType live_chart_intersection_type_id; + live_chart_intersection_type_id = live_chart_intersection_get_type_once (); + g_once_init_leave (&live_chart_intersection_type_id__once, live_chart_intersection_type_id); + } + return live_chart_intersection_type_id__once; +} + +static void +_vala_live_chart_intersection_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartIntersection * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersection); +#line 43 "../src/intersections.vala" + switch (property_id) { +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_REGION_PROPERTY: +#line 43 "../src/intersections.vala" + live_chart_value_set_region (value, live_chart_intersection_get_region (self)); +#line 43 "../src/intersections.vala" + break; +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_START_X_PROPERTY: +#line 43 "../src/intersections.vala" + g_value_set_double (value, live_chart_intersection_get_start_x (self)); +#line 43 "../src/intersections.vala" + break; +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_END_X_PROPERTY: +#line 43 "../src/intersections.vala" + g_value_set_double (value, live_chart_intersection_get_end_x (self)); +#line 43 "../src/intersections.vala" + break; +#line 754 "intersections.c" + default: +#line 43 "../src/intersections.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 43 "../src/intersections.vala" + break; +#line 760 "intersections.c" + } +} + +static void +_vala_live_chart_intersection_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartIntersection * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_INTERSECTION, LiveChartIntersection); +#line 43 "../src/intersections.vala" + switch (property_id) { +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_REGION_PROPERTY: +#line 43 "../src/intersections.vala" + live_chart_intersection_set_region (self, live_chart_value_get_region (value)); +#line 43 "../src/intersections.vala" + break; +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_START_X_PROPERTY: +#line 43 "../src/intersections.vala" + live_chart_intersection_set_start_x (self, g_value_get_double (value)); +#line 43 "../src/intersections.vala" + break; +#line 43 "../src/intersections.vala" + case LIVE_CHART_INTERSECTION_END_X_PROPERTY: +#line 43 "../src/intersections.vala" + live_chart_intersection_set_end_x (self, g_value_get_double (value)); +#line 43 "../src/intersections.vala" + break; +#line 792 "intersections.c" + default: +#line 43 "../src/intersections.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 43 "../src/intersections.vala" + break; +#line 798 "intersections.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/intersectors.c b/iPDC/lib/liblivechart.so.p/intersectors.c new file mode 100644 index 0000000..fe57464 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/intersectors.c @@ -0,0 +1,726 @@ +/* intersectors.c generated by valac 0.56.0, the Vala compiler + * generated from intersectors.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include + +#define _live_chart_region_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_region_unref (var), NULL))) +#define _live_chart_config_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_config_unref (var), NULL))) +#define _live_chart_bezier_curve_free0(var) ((var == NULL) ? NULL : (var = (live_chart_bezier_curve_free (var), NULL))) +typedef struct _Block2Data Block2Data; +#define _live_chart_bezier_intersector_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_bezier_intersector_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +typedef struct _LiveChartParamSpecBezierIntersector LiveChartParamSpecBezierIntersector; + +struct _LiveChartBezierIntersectorPrivate { + LiveChartRegion* region; + LiveChartConfig* config; +}; + +struct _Block2Data { + int _ref_count_; + LiveChartBezierIntersector* self; + LiveChartBezierCurve* path; +}; + +struct _LiveChartParamSpecBezierIntersector { + GParamSpec parent_instance; +}; + +static gint LiveChartBezierIntersector_private_offset; +static gpointer live_chart_bezier_intersector_parent_class = NULL; +static LiveChartIntersectorIface * live_chart_bezier_intersector_live_chart_intersector_parent_iface = NULL; + +static GType live_chart_intersector_get_type_once (void); +static void live_chart_bezier_intersector_real_intersect (LiveChartIntersector* base, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + LiveChartBezierCurve* path); +static Block2Data* block2_data_ref (Block2Data* _data2_); +static void block2_data_unref (void * _userdata_); +static LiveChartCoord* __lambda12_ (Block2Data* _data2_, + gdouble value); +static LiveChartCoord* live_chart_bezier_intersector_intersect_at (LiveChartBezierIntersector* self, + LiveChartConfig* config, + LiveChartBezierCurve* curve, + gdouble at_value); +static LiveChartCoord* ___lambda12__live_chart_get_intersection (gdouble at_value, + gpointer self); +static void live_chart_bezier_intersector_create_intersection_segment_at (LiveChartBezierIntersector* self, + LiveChartConfig* config, + gdouble at_y, + LiveChartSegment* result); +static void live_chart_bezier_intersector_finalize (LiveChartBezierIntersector * obj); +static GType live_chart_bezier_intersector_get_type_once (void); + +void +live_chart_intersector_intersect (LiveChartIntersector* self, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + gconstpointer path) +{ + LiveChartIntersectorIface* _iface_; +#line 3 "../src/intersectors.vala" + g_return_if_fail (self != NULL); +#line 3 "../src/intersectors.vala" + _iface_ = LIVE_CHART_INTERSECTOR_GET_INTERFACE (self); +#line 3 "../src/intersectors.vala" + if (_iface_->intersect) { +#line 3 "../src/intersectors.vala" + _iface_->intersect (self, intersections, previous, current, path); +#line 79 "intersectors.c" + } +} + +static void +live_chart_intersector_default_init (LiveChartIntersectorIface * iface, + gpointer iface_data) +{ +} + +static GType +live_chart_intersector_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartIntersectorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_intersector_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType live_chart_intersector_type_id; + live_chart_intersector_type_id = g_type_register_static (G_TYPE_INTERFACE, "LiveChartIntersector", &g_define_type_info, 0); + return live_chart_intersector_type_id; +} + +GType +live_chart_intersector_get_type (void) +{ + static volatile gsize live_chart_intersector_type_id__once = 0; + if (g_once_init_enter (&live_chart_intersector_type_id__once)) { + GType live_chart_intersector_type_id; + live_chart_intersector_type_id = live_chart_intersector_get_type_once (); + g_once_init_leave (&live_chart_intersector_type_id__once, live_chart_intersector_type_id); + } + return live_chart_intersector_type_id__once; +} + +static inline gpointer +live_chart_bezier_intersector_get_instance_private (LiveChartBezierIntersector* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartBezierIntersector_private_offset); +} + +static gpointer +_live_chart_region_ref0 (gpointer self) +{ +#line 11 "../src/intersectors.vala" + return self ? live_chart_region_ref (self) : NULL; +#line 121 "intersectors.c" +} + +static gpointer +_live_chart_config_ref0 (gpointer self) +{ +#line 12 "../src/intersectors.vala" + return self ? live_chart_config_ref (self) : NULL; +#line 129 "intersectors.c" +} + +LiveChartBezierIntersector* +live_chart_bezier_intersector_construct (GType object_type, + LiveChartRegion* region, + LiveChartConfig* config) +{ + LiveChartBezierIntersector* self = NULL; + LiveChartRegion* _tmp0_; + LiveChartConfig* _tmp1_; +#line 10 "../src/intersectors.vala" + g_return_val_if_fail (region != NULL, NULL); +#line 10 "../src/intersectors.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 10 "../src/intersectors.vala" + self = (LiveChartBezierIntersector*) g_type_create_instance (object_type); +#line 11 "../src/intersectors.vala" + _tmp0_ = _live_chart_region_ref0 (region); +#line 11 "../src/intersectors.vala" + _live_chart_region_unref0 (self->priv->region); +#line 11 "../src/intersectors.vala" + self->priv->region = _tmp0_; +#line 12 "../src/intersectors.vala" + _tmp1_ = _live_chart_config_ref0 (config); +#line 12 "../src/intersectors.vala" + _live_chart_config_unref0 (self->priv->config); +#line 12 "../src/intersectors.vala" + self->priv->config = _tmp1_; +#line 10 "../src/intersectors.vala" + return self; +#line 160 "intersectors.c" +} + +LiveChartBezierIntersector* +live_chart_bezier_intersector_new (LiveChartRegion* region, + LiveChartConfig* config) +{ +#line 10 "../src/intersectors.vala" + return live_chart_bezier_intersector_construct (LIVE_CHART_TYPE_BEZIER_INTERSECTOR, region, config); +#line 169 "intersectors.c" +} + +static gpointer +_live_chart_bezier_curve_dup0 (gpointer self) +{ +#line 15 "../src/intersectors.vala" + return self ? live_chart_bezier_curve_dup (self) : NULL; +#line 177 "intersectors.c" +} + +static Block2Data* +block2_data_ref (Block2Data* _data2_) +{ +#line 15 "../src/intersectors.vala" + g_atomic_int_inc (&_data2_->_ref_count_); +#line 15 "../src/intersectors.vala" + return _data2_; +#line 187 "intersectors.c" +} + +static void +block2_data_unref (void * _userdata_) +{ + Block2Data* _data2_; + _data2_ = (Block2Data*) _userdata_; +#line 15 "../src/intersectors.vala" + if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) { +#line 197 "intersectors.c" + LiveChartBezierIntersector* self; +#line 15 "../src/intersectors.vala" + self = _data2_->self; +#line 15 "../src/intersectors.vala" + _live_chart_bezier_curve_free0 (_data2_->path); +#line 15 "../src/intersectors.vala" + _live_chart_bezier_intersector_unref0 (self); +#line 15 "../src/intersectors.vala" + g_slice_free (Block2Data, _data2_); +#line 207 "intersectors.c" + } +} + +static LiveChartCoord* +__lambda12_ (Block2Data* _data2_, + gdouble value) +{ + LiveChartBezierIntersector* self; + LiveChartConfig* _tmp0_; + LiveChartBezierCurve _tmp1_; + LiveChartCoord* _tmp2_; + LiveChartCoord* result; +#line 16 "../src/intersectors.vala" + self = _data2_->self; +#line 17 "../src/intersectors.vala" + _tmp0_ = self->priv->config; +#line 17 "../src/intersectors.vala" + _tmp1_ = *_data2_->path; +#line 17 "../src/intersectors.vala" + _tmp2_ = live_chart_bezier_intersector_intersect_at (self, _tmp0_, &_tmp1_, value); +#line 17 "../src/intersectors.vala" + result = _tmp2_; +#line 17 "../src/intersectors.vala" + return result; +#line 232 "intersectors.c" +} + +static LiveChartCoord* +___lambda12__live_chart_get_intersection (gdouble at_value, + gpointer self) +{ + LiveChartCoord* result; + result = __lambda12_ (self, at_value); +#line 16 "../src/intersectors.vala" + return result; +#line 243 "intersectors.c" +} + +static void +live_chart_bezier_intersector_real_intersect (LiveChartIntersector* base, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + LiveChartBezierCurve* path) +{ + LiveChartBezierIntersector * self; + Block2Data* _data2_; + LiveChartBezierCurve* _tmp0_; + LiveChartRegion* _tmp1_; + LiveChartPoint _tmp2_; + LiveChartPoint _tmp3_; +#line 15 "../src/intersectors.vala" + self = (LiveChartBezierIntersector*) base; +#line 15 "../src/intersectors.vala" + g_return_if_fail (intersections != NULL); +#line 15 "../src/intersectors.vala" + g_return_if_fail (previous != NULL); +#line 15 "../src/intersectors.vala" + g_return_if_fail (current != NULL); +#line 15 "../src/intersectors.vala" + _data2_ = g_slice_new0 (Block2Data); +#line 15 "../src/intersectors.vala" + _data2_->_ref_count_ = 1; +#line 15 "../src/intersectors.vala" + _data2_->self = live_chart_bezier_intersector_ref (self); +#line 15 "../src/intersectors.vala" + _tmp0_ = _live_chart_bezier_curve_dup0 (path); +#line 15 "../src/intersectors.vala" + _live_chart_bezier_curve_free0 (_data2_->path); +#line 15 "../src/intersectors.vala" + _data2_->path = _tmp0_; +#line 16 "../src/intersectors.vala" + _tmp1_ = self->priv->region; +#line 16 "../src/intersectors.vala" + _tmp2_ = *previous; +#line 16 "../src/intersectors.vala" + _tmp3_ = *current; +#line 16 "../src/intersectors.vala" + live_chart_region_handle (_tmp1_, intersections, &_tmp2_, &_tmp3_, ___lambda12__live_chart_get_intersection, _data2_); +#line 15 "../src/intersectors.vala" + block2_data_unref (_data2_); +#line 15 "../src/intersectors.vala" + _data2_ = NULL; +#line 291 "intersectors.c" +} + +static LiveChartCoord* +live_chart_bezier_intersector_intersect_at (LiveChartBezierIntersector* self, + LiveChartConfig* config, + LiveChartBezierCurve* curve, + gdouble at_value) +{ + LiveChartSegment intersection_segment = {0}; + LiveChartSegment _tmp0_ = {0}; + GeeList* intersections = NULL; + LiveChartSegment _tmp1_; + LiveChartBezierCurve _tmp2_; + GeeList* _tmp3_; + GeeList* _tmp4_; + gint _tmp5_; + gint _tmp6_; + LiveChartCoord* result; +#line 21 "../src/intersectors.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 21 "../src/intersectors.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 21 "../src/intersectors.vala" + g_return_val_if_fail (curve != NULL, NULL); +#line 22 "../src/intersectors.vala" + live_chart_bezier_intersector_create_intersection_segment_at (self, config, at_value, &_tmp0_); +#line 22 "../src/intersectors.vala" + intersection_segment = _tmp0_; +#line 23 "../src/intersectors.vala" + _tmp1_ = intersection_segment; +#line 23 "../src/intersectors.vala" + _tmp2_ = *curve; +#line 23 "../src/intersectors.vala" + _tmp3_ = live_chart_find_intersections_between (&_tmp1_, &_tmp2_); +#line 23 "../src/intersectors.vala" + intersections = _tmp3_; +#line 24 "../src/intersectors.vala" + _tmp4_ = intersections; +#line 24 "../src/intersectors.vala" + _tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_); +#line 24 "../src/intersectors.vala" + _tmp6_ = _tmp5_; +#line 24 "../src/intersectors.vala" + if (_tmp6_ > 0) { +#line 336 "intersectors.c" + GeeList* _tmp7_; + gpointer _tmp8_; +#line 25 "../src/intersectors.vala" + _tmp7_ = intersections; +#line 25 "../src/intersectors.vala" + _tmp8_ = gee_list_first (_tmp7_); +#line 25 "../src/intersectors.vala" + result = (LiveChartCoord*) _tmp8_; +#line 25 "../src/intersectors.vala" + _g_object_unref0 (intersections); +#line 25 "../src/intersectors.vala" + return result; +#line 349 "intersectors.c" + } +#line 27 "../src/intersectors.vala" + result = NULL; +#line 27 "../src/intersectors.vala" + _g_object_unref0 (intersections); +#line 27 "../src/intersectors.vala" + return result; +#line 357 "intersectors.c" +} + +static void +live_chart_bezier_intersector_create_intersection_segment_at (LiveChartBezierIntersector* self, + LiveChartConfig* config, + gdouble at_y, + LiveChartSegment* result) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + gdouble y = 0.0; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartYAxis* _tmp3_; + LiveChartBoundaries _tmp4_; + LiveChartBoundary _tmp5_; + LiveChartCoord _tmp6_ = {0}; + LiveChartBoundaries _tmp7_; + LiveChartBoundary _tmp8_; + LiveChartCoord _tmp9_ = {0}; + LiveChartSegment _tmp10_ = {0}; +#line 30 "../src/intersectors.vala" + g_return_if_fail (self != NULL); +#line 30 "../src/intersectors.vala" + g_return_if_fail (config != NULL); +#line 31 "../src/intersectors.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 31 "../src/intersectors.vala" + boundaries = _tmp0_; +#line 32 "../src/intersectors.vala" + _tmp1_ = boundaries; +#line 32 "../src/intersectors.vala" + _tmp2_ = _tmp1_.y; +#line 32 "../src/intersectors.vala" + _tmp3_ = config->y_axis; +#line 32 "../src/intersectors.vala" + y = _tmp2_.max - (at_y * live_chart_yaxis_get_ratio (_tmp3_)); +#line 33 "../src/intersectors.vala" + _tmp4_ = boundaries; +#line 33 "../src/intersectors.vala" + _tmp5_ = _tmp4_.x; +#line 33 "../src/intersectors.vala" + _tmp6_.x = (gdouble) _tmp5_.min; +#line 33 "../src/intersectors.vala" + _tmp6_.y = y; +#line 33 "../src/intersectors.vala" + _tmp7_ = boundaries; +#line 33 "../src/intersectors.vala" + _tmp8_ = _tmp7_.x; +#line 33 "../src/intersectors.vala" + _tmp9_.x = (gdouble) _tmp8_.max; +#line 33 "../src/intersectors.vala" + _tmp9_.y = y; +#line 33 "../src/intersectors.vala" + _tmp10_.from = _tmp6_; +#line 33 "../src/intersectors.vala" + _tmp10_.to = _tmp9_; +#line 33 "../src/intersectors.vala" + *result = _tmp10_; +#line 33 "../src/intersectors.vala" + return; +#line 419 "intersectors.c" +} + +static void +live_chart_value_bezier_intersector_init (GValue* value) +{ +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = NULL; +#line 427 "intersectors.c" +} + +static void +live_chart_value_bezier_intersector_free_value (GValue* value) +{ +#line 6 "../src/intersectors.vala" + if (value->data[0].v_pointer) { +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_unref (value->data[0].v_pointer); +#line 437 "intersectors.c" + } +} + +static void +live_chart_value_bezier_intersector_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 6 "../src/intersectors.vala" + if (src_value->data[0].v_pointer) { +#line 6 "../src/intersectors.vala" + dest_value->data[0].v_pointer = live_chart_bezier_intersector_ref (src_value->data[0].v_pointer); +#line 449 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + dest_value->data[0].v_pointer = NULL; +#line 453 "intersectors.c" + } +} + +static gpointer +live_chart_value_bezier_intersector_peek_pointer (const GValue* value) +{ +#line 6 "../src/intersectors.vala" + return value->data[0].v_pointer; +#line 462 "intersectors.c" +} + +static gchar* +live_chart_value_bezier_intersector_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 6 "../src/intersectors.vala" + if (collect_values[0].v_pointer) { +#line 473 "intersectors.c" + LiveChartBezierIntersector * object; + object = collect_values[0].v_pointer; +#line 6 "../src/intersectors.vala" + if (object->parent_instance.g_class == NULL) { +#line 6 "../src/intersectors.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 480 "intersectors.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 6 "../src/intersectors.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 484 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = live_chart_bezier_intersector_ref (object); +#line 488 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = NULL; +#line 492 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + return NULL; +#line 496 "intersectors.c" +} + +static gchar* +live_chart_value_bezier_intersector_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartBezierIntersector ** object_p; + object_p = collect_values[0].v_pointer; +#line 6 "../src/intersectors.vala" + if (!object_p) { +#line 6 "../src/intersectors.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 511 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + if (!value->data[0].v_pointer) { +#line 6 "../src/intersectors.vala" + *object_p = NULL; +#line 517 "intersectors.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 6 "../src/intersectors.vala" + *object_p = value->data[0].v_pointer; +#line 521 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + *object_p = live_chart_bezier_intersector_ref (value->data[0].v_pointer); +#line 525 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + return NULL; +#line 529 "intersectors.c" +} + +GParamSpec* +live_chart_param_spec_bezier_intersector (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecBezierIntersector* spec; +#line 6 "../src/intersectors.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_BEZIER_INTERSECTOR), NULL); +#line 6 "../src/intersectors.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 6 "../src/intersectors.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 6 "../src/intersectors.vala" + return G_PARAM_SPEC (spec); +#line 548 "intersectors.c" +} + +gpointer +live_chart_value_get_bezier_intersector (const GValue* value) +{ +#line 6 "../src/intersectors.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_BEZIER_INTERSECTOR), NULL); +#line 6 "../src/intersectors.vala" + return value->data[0].v_pointer; +#line 558 "intersectors.c" +} + +void +live_chart_value_set_bezier_intersector (GValue* value, + gpointer v_object) +{ + LiveChartBezierIntersector * old; +#line 6 "../src/intersectors.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_BEZIER_INTERSECTOR)); +#line 6 "../src/intersectors.vala" + old = value->data[0].v_pointer; +#line 6 "../src/intersectors.vala" + if (v_object) { +#line 6 "../src/intersectors.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_BEZIER_INTERSECTOR)); +#line 6 "../src/intersectors.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = v_object; +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_ref (value->data[0].v_pointer); +#line 580 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = NULL; +#line 584 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + if (old) { +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_unref (old); +#line 590 "intersectors.c" + } +} + +void +live_chart_value_take_bezier_intersector (GValue* value, + gpointer v_object) +{ + LiveChartBezierIntersector * old; +#line 6 "../src/intersectors.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_BEZIER_INTERSECTOR)); +#line 6 "../src/intersectors.vala" + old = value->data[0].v_pointer; +#line 6 "../src/intersectors.vala" + if (v_object) { +#line 6 "../src/intersectors.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_BEZIER_INTERSECTOR)); +#line 6 "../src/intersectors.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = v_object; +#line 611 "intersectors.c" + } else { +#line 6 "../src/intersectors.vala" + value->data[0].v_pointer = NULL; +#line 615 "intersectors.c" + } +#line 6 "../src/intersectors.vala" + if (old) { +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_unref (old); +#line 621 "intersectors.c" + } +} + +static void +live_chart_bezier_intersector_class_init (LiveChartBezierIntersectorClass * klass, + gpointer klass_data) +{ +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/intersectors.vala" + ((LiveChartBezierIntersectorClass *) klass)->finalize = live_chart_bezier_intersector_finalize; +#line 6 "../src/intersectors.vala" + g_type_class_adjust_private_offset (klass, &LiveChartBezierIntersector_private_offset); +#line 635 "intersectors.c" +} + +static void +live_chart_bezier_intersector_live_chart_intersector_interface_init (LiveChartIntersectorIface * iface, + gpointer iface_data) +{ +#line 6 "../src/intersectors.vala" + live_chart_bezier_intersector_live_chart_intersector_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/intersectors.vala" + iface->intersect = (void (*) (LiveChartIntersector*, LiveChartIntersections*, LiveChartPoint*, LiveChartPoint*, gconstpointer)) live_chart_bezier_intersector_real_intersect; +#line 646 "intersectors.c" +} + +static void +live_chart_bezier_intersector_instance_init (LiveChartBezierIntersector * self, + gpointer klass) +{ +#line 6 "../src/intersectors.vala" + self->priv = live_chart_bezier_intersector_get_instance_private (self); +#line 6 "../src/intersectors.vala" + self->ref_count = 1; +#line 657 "intersectors.c" +} + +static void +live_chart_bezier_intersector_finalize (LiveChartBezierIntersector * obj) +{ + LiveChartBezierIntersector * self; +#line 6 "../src/intersectors.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_BEZIER_INTERSECTOR, LiveChartBezierIntersector); +#line 6 "../src/intersectors.vala" + g_signal_handlers_destroy (self); +#line 7 "../src/intersectors.vala" + _live_chart_region_unref0 (self->priv->region); +#line 8 "../src/intersectors.vala" + _live_chart_config_unref0 (self->priv->config); +#line 672 "intersectors.c" +} + +static GType +live_chart_bezier_intersector_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_bezier_intersector_init, live_chart_value_bezier_intersector_free_value, live_chart_value_bezier_intersector_copy_value, live_chart_value_bezier_intersector_peek_pointer, "p", live_chart_value_bezier_intersector_collect_value, "p", live_chart_value_bezier_intersector_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartBezierIntersectorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_bezier_intersector_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartBezierIntersector), 0, (GInstanceInitFunc) live_chart_bezier_intersector_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + static const GInterfaceInfo live_chart_intersector_info = { (GInterfaceInitFunc) live_chart_bezier_intersector_live_chart_intersector_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_bezier_intersector_type_id; + live_chart_bezier_intersector_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartBezierIntersector", &g_define_type_info, &g_define_type_fundamental_info, 0); + g_type_add_interface_static (live_chart_bezier_intersector_type_id, LIVE_CHART_TYPE_INTERSECTOR, &live_chart_intersector_info); + LiveChartBezierIntersector_private_offset = g_type_add_instance_private (live_chart_bezier_intersector_type_id, sizeof (LiveChartBezierIntersectorPrivate)); + return live_chart_bezier_intersector_type_id; +} + +GType +live_chart_bezier_intersector_get_type (void) +{ + static volatile gsize live_chart_bezier_intersector_type_id__once = 0; + if (g_once_init_enter (&live_chart_bezier_intersector_type_id__once)) { + GType live_chart_bezier_intersector_type_id; + live_chart_bezier_intersector_type_id = live_chart_bezier_intersector_get_type_once (); + g_once_init_leave (&live_chart_bezier_intersector_type_id__once, live_chart_bezier_intersector_type_id); + } + return live_chart_bezier_intersector_type_id__once; +} + +gpointer +live_chart_bezier_intersector_ref (gpointer instance) +{ + LiveChartBezierIntersector * self; + self = instance; +#line 6 "../src/intersectors.vala" + g_atomic_int_inc (&self->ref_count); +#line 6 "../src/intersectors.vala" + return instance; +#line 710 "intersectors.c" +} + +void +live_chart_bezier_intersector_unref (gpointer instance) +{ + LiveChartBezierIntersector * self; + self = instance; +#line 6 "../src/intersectors.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 6 "../src/intersectors.vala" + LIVE_CHART_BEZIER_INTERSECTOR_GET_CLASS (self)->finalize (self); +#line 6 "../src/intersectors.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 724 "intersectors.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/labels.c b/iPDC/lib/liblivechart.so.p/labels.c new file mode 100644 index 0000000..0c4fea8 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/labels.c @@ -0,0 +1,485 @@ +/* labels.c generated by valac 0.56.0, the Vala compiler + * generated from labels.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include + +#define _live_chart_font_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_font_unref (var), NULL))) +typedef struct _LiveChartParamSpecLabels LiveChartParamSpecLabels; + +struct _LiveChartLabelsPrivate { + gboolean _visible; + cairo_text_extents_t _extents; + LiveChartFont* _font; +}; + +struct _LiveChartParamSpecLabels { + GParamSpec parent_instance; +}; + +static gint LiveChartLabels_private_offset; +static gpointer live_chart_labels_parent_class = NULL; + +static void live_chart_labels_finalize (LiveChartLabels * obj); +static GType live_chart_labels_get_type_once (void); + +static inline gpointer +live_chart_labels_get_instance_private (LiveChartLabels* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartLabels_private_offset); +} + +LiveChartLabels* +live_chart_labels_construct (GType object_type) +{ + LiveChartLabels* self = NULL; + cairo_text_extents_t _tmp0_ = {0}; + LiveChartFont* _tmp1_; + LiveChartFont* _tmp2_; + cairo_text_extents_t _tmp3_; + cairo_text_extents_t _tmp4_; + cairo_text_extents_t _tmp5_; + cairo_text_extents_t _tmp6_; + cairo_text_extents_t _tmp7_; + cairo_text_extents_t _tmp8_; +#line 11 "../src/labels.vala" + self = (LiveChartLabels*) g_type_create_instance (object_type); +#line 13 "../src/labels.vala" + live_chart_labels_set_visible (self, TRUE); +#line 14 "../src/labels.vala" + memset (&_tmp0_, 0, sizeof (cairo_text_extents_t)); +#line 14 "../src/labels.vala" + live_chart_labels_set_extents (self, &_tmp0_); +#line 15 "../src/labels.vala" + _tmp1_ = live_chart_font_new (); +#line 15 "../src/labels.vala" + _tmp2_ = _tmp1_; +#line 15 "../src/labels.vala" + live_chart_labels_set_font (self, _tmp2_); +#line 15 "../src/labels.vala" + _live_chart_font_unref0 (_tmp2_); +#line 17 "../src/labels.vala" + _tmp3_ = self->priv->_extents; +#line 17 "../src/labels.vala" + _tmp3_.height = 0.0; +#line 18 "../src/labels.vala" + _tmp4_ = self->priv->_extents; +#line 18 "../src/labels.vala" + _tmp4_.width = 0.0; +#line 19 "../src/labels.vala" + _tmp5_ = self->priv->_extents; +#line 19 "../src/labels.vala" + _tmp5_.x_advance = 0.0; +#line 20 "../src/labels.vala" + _tmp6_ = self->priv->_extents; +#line 20 "../src/labels.vala" + _tmp6_.x_bearing = 0.0; +#line 21 "../src/labels.vala" + _tmp7_ = self->priv->_extents; +#line 21 "../src/labels.vala" + _tmp7_.y_advance = 0.0; +#line 22 "../src/labels.vala" + _tmp8_ = self->priv->_extents; +#line 22 "../src/labels.vala" + _tmp8_.y_bearing = 0.0; +#line 11 "../src/labels.vala" + return self; +#line 91 "labels.c" +} + +LiveChartLabels* +live_chart_labels_new (void) +{ +#line 11 "../src/labels.vala" + return live_chart_labels_construct (LIVE_CHART_TYPE_LABELS); +#line 99 "labels.c" +} + +gboolean +live_chart_labels_get_visible (LiveChartLabels* self) +{ + gboolean result; +#line 7 "../src/labels.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 7 "../src/labels.vala" + result = self->priv->_visible; +#line 7 "../src/labels.vala" + return result; +#line 112 "labels.c" +} + +void +live_chart_labels_set_visible (LiveChartLabels* self, + gboolean value) +{ +#line 7 "../src/labels.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/labels.vala" + self->priv->_visible = value; +#line 123 "labels.c" +} + +void +live_chart_labels_get_extents (LiveChartLabels* self, + cairo_text_extents_t * result) +{ + cairo_text_extents_t _tmp0_; +#line 8 "../src/labels.vala" + g_return_if_fail (self != NULL); +#line 8 "../src/labels.vala" + _tmp0_ = self->priv->_extents; +#line 8 "../src/labels.vala" + *result = _tmp0_; +#line 8 "../src/labels.vala" + return; +#line 139 "labels.c" +} + +void +live_chart_labels_set_extents (LiveChartLabels* self, + cairo_text_extents_t * value) +{ + cairo_text_extents_t _tmp0_; +#line 8 "../src/labels.vala" + g_return_if_fail (self != NULL); +#line 8 "../src/labels.vala" + _tmp0_ = *value; +#line 8 "../src/labels.vala" + self->priv->_extents = _tmp0_; +#line 153 "labels.c" +} + +LiveChartFont* +live_chart_labels_get_font (LiveChartLabels* self) +{ + LiveChartFont* result; + LiveChartFont* _tmp0_; +#line 9 "../src/labels.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 9 "../src/labels.vala" + _tmp0_ = self->priv->_font; +#line 9 "../src/labels.vala" + result = _tmp0_; +#line 9 "../src/labels.vala" + return result; +#line 169 "labels.c" +} + +static gpointer +_live_chart_font_ref0 (gpointer self) +{ +#line 9 "../src/labels.vala" + return self ? live_chart_font_ref (self) : NULL; +#line 177 "labels.c" +} + +void +live_chart_labels_set_font (LiveChartLabels* self, + LiveChartFont* value) +{ + LiveChartFont* _tmp0_; +#line 9 "../src/labels.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/labels.vala" + _tmp0_ = _live_chart_font_ref0 (value); +#line 9 "../src/labels.vala" + _live_chart_font_unref0 (self->priv->_font); +#line 9 "../src/labels.vala" + self->priv->_font = _tmp0_; +#line 193 "labels.c" +} + +static void +live_chart_value_labels_init (GValue* value) +{ +#line 5 "../src/labels.vala" + value->data[0].v_pointer = NULL; +#line 201 "labels.c" +} + +static void +live_chart_value_labels_free_value (GValue* value) +{ +#line 5 "../src/labels.vala" + if (value->data[0].v_pointer) { +#line 5 "../src/labels.vala" + live_chart_labels_unref (value->data[0].v_pointer); +#line 211 "labels.c" + } +} + +static void +live_chart_value_labels_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 5 "../src/labels.vala" + if (src_value->data[0].v_pointer) { +#line 5 "../src/labels.vala" + dest_value->data[0].v_pointer = live_chart_labels_ref (src_value->data[0].v_pointer); +#line 223 "labels.c" + } else { +#line 5 "../src/labels.vala" + dest_value->data[0].v_pointer = NULL; +#line 227 "labels.c" + } +} + +static gpointer +live_chart_value_labels_peek_pointer (const GValue* value) +{ +#line 5 "../src/labels.vala" + return value->data[0].v_pointer; +#line 236 "labels.c" +} + +static gchar* +live_chart_value_labels_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 5 "../src/labels.vala" + if (collect_values[0].v_pointer) { +#line 247 "labels.c" + LiveChartLabels * object; + object = collect_values[0].v_pointer; +#line 5 "../src/labels.vala" + if (object->parent_instance.g_class == NULL) { +#line 5 "../src/labels.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 254 "labels.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 5 "../src/labels.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 258 "labels.c" + } +#line 5 "../src/labels.vala" + value->data[0].v_pointer = live_chart_labels_ref (object); +#line 262 "labels.c" + } else { +#line 5 "../src/labels.vala" + value->data[0].v_pointer = NULL; +#line 266 "labels.c" + } +#line 5 "../src/labels.vala" + return NULL; +#line 270 "labels.c" +} + +static gchar* +live_chart_value_labels_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartLabels ** object_p; + object_p = collect_values[0].v_pointer; +#line 5 "../src/labels.vala" + if (!object_p) { +#line 5 "../src/labels.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 285 "labels.c" + } +#line 5 "../src/labels.vala" + if (!value->data[0].v_pointer) { +#line 5 "../src/labels.vala" + *object_p = NULL; +#line 291 "labels.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 5 "../src/labels.vala" + *object_p = value->data[0].v_pointer; +#line 295 "labels.c" + } else { +#line 5 "../src/labels.vala" + *object_p = live_chart_labels_ref (value->data[0].v_pointer); +#line 299 "labels.c" + } +#line 5 "../src/labels.vala" + return NULL; +#line 303 "labels.c" +} + +GParamSpec* +live_chart_param_spec_labels (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecLabels* spec; +#line 5 "../src/labels.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_LABELS), NULL); +#line 5 "../src/labels.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 5 "../src/labels.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 5 "../src/labels.vala" + return G_PARAM_SPEC (spec); +#line 322 "labels.c" +} + +gpointer +live_chart_value_get_labels (const GValue* value) +{ +#line 5 "../src/labels.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_LABELS), NULL); +#line 5 "../src/labels.vala" + return value->data[0].v_pointer; +#line 332 "labels.c" +} + +void +live_chart_value_set_labels (GValue* value, + gpointer v_object) +{ + LiveChartLabels * old; +#line 5 "../src/labels.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_LABELS)); +#line 5 "../src/labels.vala" + old = value->data[0].v_pointer; +#line 5 "../src/labels.vala" + if (v_object) { +#line 5 "../src/labels.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_LABELS)); +#line 5 "../src/labels.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 5 "../src/labels.vala" + value->data[0].v_pointer = v_object; +#line 5 "../src/labels.vala" + live_chart_labels_ref (value->data[0].v_pointer); +#line 354 "labels.c" + } else { +#line 5 "../src/labels.vala" + value->data[0].v_pointer = NULL; +#line 358 "labels.c" + } +#line 5 "../src/labels.vala" + if (old) { +#line 5 "../src/labels.vala" + live_chart_labels_unref (old); +#line 364 "labels.c" + } +} + +void +live_chart_value_take_labels (GValue* value, + gpointer v_object) +{ + LiveChartLabels * old; +#line 5 "../src/labels.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_LABELS)); +#line 5 "../src/labels.vala" + old = value->data[0].v_pointer; +#line 5 "../src/labels.vala" + if (v_object) { +#line 5 "../src/labels.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_LABELS)); +#line 5 "../src/labels.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 5 "../src/labels.vala" + value->data[0].v_pointer = v_object; +#line 385 "labels.c" + } else { +#line 5 "../src/labels.vala" + value->data[0].v_pointer = NULL; +#line 389 "labels.c" + } +#line 5 "../src/labels.vala" + if (old) { +#line 5 "../src/labels.vala" + live_chart_labels_unref (old); +#line 395 "labels.c" + } +} + +static void +live_chart_labels_class_init (LiveChartLabelsClass * klass, + gpointer klass_data) +{ +#line 5 "../src/labels.vala" + live_chart_labels_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/labels.vala" + ((LiveChartLabelsClass *) klass)->finalize = live_chart_labels_finalize; +#line 5 "../src/labels.vala" + g_type_class_adjust_private_offset (klass, &LiveChartLabels_private_offset); +#line 409 "labels.c" +} + +static void +live_chart_labels_instance_init (LiveChartLabels * self, + gpointer klass) +{ +#line 5 "../src/labels.vala" + self->priv = live_chart_labels_get_instance_private (self); +#line 5 "../src/labels.vala" + self->ref_count = 1; +#line 420 "labels.c" +} + +static void +live_chart_labels_finalize (LiveChartLabels * obj) +{ + LiveChartLabels * self; +#line 5 "../src/labels.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_LABELS, LiveChartLabels); +#line 5 "../src/labels.vala" + g_signal_handlers_destroy (self); +#line 9 "../src/labels.vala" + _live_chart_font_unref0 (self->priv->_font); +#line 433 "labels.c" +} + +static GType +live_chart_labels_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_labels_init, live_chart_value_labels_free_value, live_chart_value_labels_copy_value, live_chart_value_labels_peek_pointer, "p", live_chart_value_labels_collect_value, "p", live_chart_value_labels_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartLabelsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_labels_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartLabels), 0, (GInstanceInitFunc) live_chart_labels_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_labels_type_id; + live_chart_labels_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartLabels", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartLabels_private_offset = g_type_add_instance_private (live_chart_labels_type_id, sizeof (LiveChartLabelsPrivate)); + return live_chart_labels_type_id; +} + +GType +live_chart_labels_get_type (void) +{ + static volatile gsize live_chart_labels_type_id__once = 0; + if (g_once_init_enter (&live_chart_labels_type_id__once)) { + GType live_chart_labels_type_id; + live_chart_labels_type_id = live_chart_labels_get_type_once (); + g_once_init_leave (&live_chart_labels_type_id__once, live_chart_labels_type_id); + } + return live_chart_labels_type_id__once; +} + +gpointer +live_chart_labels_ref (gpointer instance) +{ + LiveChartLabels * self; + self = instance; +#line 5 "../src/labels.vala" + g_atomic_int_inc (&self->ref_count); +#line 5 "../src/labels.vala" + return instance; +#line 469 "labels.c" +} + +void +live_chart_labels_unref (gpointer instance) +{ + LiveChartLabels * self; + self = instance; +#line 5 "../src/labels.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 5 "../src/labels.vala" + LIVE_CHART_LABELS_GET_CLASS (self)->finalize (self); +#line 5 "../src/labels.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 483 "labels.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/legend.c b/iPDC/lib/liblivechart.so.p/legend.c new file mode 100644 index 0000000..2c60cd4 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/legend.c @@ -0,0 +1,1051 @@ +/* legend.c generated by valac 0.56.0, the Vala compiler + * generated from legend.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_WIDTH 15 +#define LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_HEIGHT 10 + +enum { + LIVE_CHART_LEGEND_0_PROPERTY, + LIVE_CHART_LEGEND_VISIBLE_PROPERTY, + LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY, + LIVE_CHART_LEGEND_NUM_PROPERTIES +}; +static GParamSpec* live_chart_legend_properties[LIVE_CHART_LEGEND_NUM_PROPERTIES]; +#define _live_chart_labels_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_labels_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +enum { + LIVE_CHART_HORIZONTAL_LEGEND_0_PROPERTY, + LIVE_CHART_HORIZONTAL_LEGEND_NUM_PROPERTIES +}; +static GParamSpec* live_chart_horizontal_legend_properties[LIVE_CHART_HORIZONTAL_LEGEND_NUM_PROPERTIES]; +#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL))) +typedef struct _Block3Data Block3Data; +typedef struct _Block4Data Block4Data; +#define _g_free0(var) (var = (g_free (var), NULL)) +enum { + LIVE_CHART_NOOP_LEGEND_0_PROPERTY, + LIVE_CHART_NOOP_LEGEND_NUM_PROPERTIES +}; +static GParamSpec* live_chart_noop_legend_properties[LIVE_CHART_NOOP_LEGEND_NUM_PROPERTIES]; + +struct _LiveChartLegendPrivate { + gboolean _visible; + GdkRGBA _main_color; +}; + +struct _Block3Data { + int _ref_count_; + LiveChartHorizontalLegend* self; + cairo_t* ctx; +}; + +struct _Block4Data { + int _ref_count_; + Block3Data * _data3_; + gint y_padding; + LiveChartBoundaries boundaries; + gint pos; +}; + +static gint LiveChartLegend_private_offset; +static gpointer live_chart_legend_parent_class = NULL; +static LiveChartDrawableIface * live_chart_legend_live_chart_drawable_parent_iface = NULL; +static gpointer live_chart_horizontal_legend_parent_class = NULL; +static gpointer live_chart_noop_legend_parent_class = NULL; + +static void live_chart_legend_real_draw (LiveChartLegend* self, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_legend_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_legend_finalize (GObject * obj); +static GType live_chart_legend_get_type_once (void); +static void _vala_live_chart_legend_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_legend_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static void live_chart_horizontal_legend_real_draw (LiveChartLegend* base, + cairo_t* ctx, + LiveChartConfig* config); +static Block3Data* block3_data_ref (Block3Data* _data3_); +static void block3_data_unref (void * _userdata_); +static Block4Data* block4_data_ref (Block4Data* _data4_); +static void block4_data_unref (void * _userdata_); +static gint live_chart_horizontal_legend_get_y_padding (LiveChartHorizontalLegend* self, + LiveChartConfig* config); +static gboolean ___lambda6_ (Block4Data* _data4_, + LiveChartSerie* serie); +static void live_chart_horizontal_legend_name_extents (LiveChartHorizontalLegend* self, + const gchar* name, + cairo_t* ctx, + cairo_text_extents_t* result); +static gboolean ____lambda6__gee_forall_func (gpointer g, + gpointer self); +static void live_chart_horizontal_legend_update_bounding_box (LiveChartHorizontalLegend* self, + LiveChartConfig* config, + gint width); +static GType live_chart_horizontal_legend_get_type_once (void); +static void live_chart_noop_legend_real_draw (LiveChartLegend* base, + cairo_t* ctx, + LiveChartConfig* config); +static GType live_chart_noop_legend_get_type_once (void); + +static inline gpointer +live_chart_legend_get_instance_private (LiveChartLegend* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartLegend_private_offset); +} + +void +live_chart_legend_add_legend (LiveChartLegend* self, + LiveChartSerie* serie) +{ + GeeArrayList* _tmp0_; +#line 25 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 25 "../src/legend.vala" + g_return_if_fail (serie != NULL); +#line 26 "../src/legend.vala" + _tmp0_ = self->series; +#line 26 "../src/legend.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, serie); +#line 130 "legend.c" +} + +static void +live_chart_legend_real_draw (LiveChartLegend* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 29 "../src/legend.vala" + g_critical ("Type `%s' does not implement abstract method `live_chart_legend_draw'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 29 "../src/legend.vala" + return; +#line 142 "legend.c" +} + +void +live_chart_legend_draw (LiveChartLegend* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartLegendClass* _klass_; +#line 29 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 29 "../src/legend.vala" + _klass_ = LIVE_CHART_LEGEND_GET_CLASS (self); +#line 29 "../src/legend.vala" + if (_klass_->draw) { +#line 29 "../src/legend.vala" + _klass_->draw (self, ctx, config); +#line 159 "legend.c" + } +} + +static void +live_chart_legend_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartLegend * self; + LiveChartBoundingBox _tmp0_; +#line 30 "../src/legend.vala" + self = (LiveChartLegend*) base; +#line 31 "../src/legend.vala" + _tmp0_ = self->bounding_box; +#line 31 "../src/legend.vala" + *result = _tmp0_; +#line 31 "../src/legend.vala" + return; +#line 177 "legend.c" +} + +LiveChartLegend* +live_chart_legend_construct (GType object_type) +{ + LiveChartLegend * self = NULL; +#line 5 "../src/legend.vala" + self = (LiveChartLegend*) g_object_new (object_type, NULL); +#line 5 "../src/legend.vala" + return self; +#line 188 "legend.c" +} + +static gboolean +live_chart_legend_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartLegend* self; +#line 7 "../src/legend.vala" + self = (LiveChartLegend*) base; +#line 7 "../src/legend.vala" + result = self->priv->_visible; +#line 7 "../src/legend.vala" + return result; +#line 202 "legend.c" +} + +static void +live_chart_legend_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartLegend* self; + gboolean old_value; +#line 7 "../src/legend.vala" + self = (LiveChartLegend*) base; +#line 7 "../src/legend.vala" + old_value = live_chart_legend_real_get_visible (base); +#line 7 "../src/legend.vala" + if (old_value != value) { +#line 7 "../src/legend.vala" + self->priv->_visible = value; +#line 7 "../src/legend.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_legend_properties[LIVE_CHART_LEGEND_VISIBLE_PROPERTY]); +#line 221 "legend.c" + } +} + +void +live_chart_legend_get_main_color (LiveChartLegend* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 18 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 18 "../src/legend.vala" + _tmp0_ = self->priv->_main_color; +#line 18 "../src/legend.vala" + *result = _tmp0_; +#line 18 "../src/legend.vala" + return; +#line 238 "legend.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 18 "../src/legend.vala" + if (s1 == s2) { +#line 18 "../src/legend.vala" + return TRUE; +#line 249 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1 == NULL) { +#line 18 "../src/legend.vala" + return FALSE; +#line 255 "legend.c" + } +#line 18 "../src/legend.vala" + if (s2 == NULL) { +#line 18 "../src/legend.vala" + return FALSE; +#line 261 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1->red != s2->red) { +#line 18 "../src/legend.vala" + return FALSE; +#line 267 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1->green != s2->green) { +#line 18 "../src/legend.vala" + return FALSE; +#line 273 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1->blue != s2->blue) { +#line 18 "../src/legend.vala" + return FALSE; +#line 279 "legend.c" + } +#line 18 "../src/legend.vala" + if (s1->alpha != s2->alpha) { +#line 18 "../src/legend.vala" + return FALSE; +#line 285 "legend.c" + } +#line 18 "../src/legend.vala" + return TRUE; +#line 289 "legend.c" +} + +void +live_chart_legend_set_main_color (LiveChartLegend* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 18 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 18 "../src/legend.vala" + live_chart_legend_get_main_color (self, &old_value); +#line 18 "../src/legend.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 303 "legend.c" + GdkRGBA _tmp0_; +#line 18 "../src/legend.vala" + _tmp0_ = *value; +#line 18 "../src/legend.vala" + self->priv->_main_color = _tmp0_; +#line 18 "../src/legend.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_legend_properties[LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY]); +#line 311 "legend.c" + } +} + +static void +live_chart_legend_class_init (LiveChartLegendClass * klass, + gpointer klass_data) +{ +#line 5 "../src/legend.vala" + live_chart_legend_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/legend.vala" + g_type_class_adjust_private_offset (klass, &LiveChartLegend_private_offset); +#line 5 "../src/legend.vala" + ((LiveChartLegendClass *) klass)->draw = (void (*) (LiveChartLegend*, cairo_t*, LiveChartConfig*)) live_chart_legend_real_draw; +#line 5 "../src/legend.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_legend_get_property; +#line 5 "../src/legend.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_legend_set_property; +#line 5 "../src/legend.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_legend_finalize; +#line 5 "../src/legend.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_LEGEND_VISIBLE_PROPERTY, live_chart_legend_properties[LIVE_CHART_LEGEND_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 5 "../src/legend.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY, live_chart_legend_properties[LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 335 "legend.c" +} + +static void +live_chart_legend_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 5 "../src/legend.vala" + live_chart_legend_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 5 "../src/legend.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_legend_draw; +#line 5 "../src/legend.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_legend_real_get_bounding_box; +#line 5 "../src/legend.vala" + iface->get_visible = live_chart_legend_real_get_visible; +#line 5 "../src/legend.vala" + iface->set_visible = live_chart_legend_real_set_visible; +#line 352 "legend.c" +} + +static void +live_chart_legend_instance_init (LiveChartLegend * self, + gpointer klass) +{ + LiveChartLabels* _tmp0_; + GeeArrayList* _tmp1_; + LiveChartBoundingBox _tmp2_ = {0}; + GdkRGBA _tmp3_ = {0}; +#line 5 "../src/legend.vala" + self->priv = live_chart_legend_get_instance_private (self); +#line 7 "../src/legend.vala" + self->priv->_visible = TRUE; +#line 8 "../src/legend.vala" + _tmp0_ = live_chart_labels_new (); +#line 8 "../src/legend.vala" + self->labels = _tmp0_; +#line 10 "../src/legend.vala" + _tmp1_ = gee_array_list_new (LIVE_CHART_TYPE_SERIE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL); +#line 10 "../src/legend.vala" + self->series = _tmp1_; +#line 11 "../src/legend.vala" + memset (&_tmp2_, 0, sizeof (LiveChartBoundingBox)); +#line 11 "../src/legend.vala" + _tmp2_.x = (gdouble) 0; +#line 11 "../src/legend.vala" + _tmp2_.y = (gdouble) 0; +#line 11 "../src/legend.vala" + _tmp2_.width = (gdouble) 0; +#line 11 "../src/legend.vala" + _tmp2_.height = (gdouble) 0; +#line 11 "../src/legend.vala" + self->bounding_box = _tmp2_; +#line 17 "../src/legend.vala" + memset (&_tmp3_, 0, sizeof (GdkRGBA)); +#line 17 "../src/legend.vala" + _tmp3_.red = 1.0; +#line 17 "../src/legend.vala" + _tmp3_.green = 1.0; +#line 17 "../src/legend.vala" + _tmp3_.blue = 1.0; +#line 17 "../src/legend.vala" + _tmp3_.alpha = 1.0; +#line 17 "../src/legend.vala" + self->priv->_main_color = _tmp3_; +#line 399 "legend.c" +} + +static void +live_chart_legend_finalize (GObject * obj) +{ + LiveChartLegend * self; +#line 5 "../src/legend.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_LEGEND, LiveChartLegend); +#line 8 "../src/legend.vala" + _live_chart_labels_unref0 (self->labels); +#line 10 "../src/legend.vala" + _g_object_unref0 (self->series); +#line 5 "../src/legend.vala" + G_OBJECT_CLASS (live_chart_legend_parent_class)->finalize (obj); +#line 414 "legend.c" +} + +static GType +live_chart_legend_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartLegendClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_legend_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartLegend), 0, (GInstanceInitFunc) live_chart_legend_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_legend_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_legend_type_id; + live_chart_legend_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartLegend", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (live_chart_legend_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartLegend_private_offset = g_type_add_instance_private (live_chart_legend_type_id, sizeof (LiveChartLegendPrivate)); + return live_chart_legend_type_id; +} + +GType +live_chart_legend_get_type (void) +{ + static volatile gsize live_chart_legend_type_id__once = 0; + if (g_once_init_enter (&live_chart_legend_type_id__once)) { + GType live_chart_legend_type_id; + live_chart_legend_type_id = live_chart_legend_get_type_once (); + g_once_init_leave (&live_chart_legend_type_id__once, live_chart_legend_type_id); + } + return live_chart_legend_type_id__once; +} + +static void +_vala_live_chart_legend_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartLegend * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_LEGEND, LiveChartLegend); +#line 5 "../src/legend.vala" + switch (property_id) { +#line 5 "../src/legend.vala" + case LIVE_CHART_LEGEND_VISIBLE_PROPERTY: +#line 5 "../src/legend.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 5 "../src/legend.vala" + break; +#line 5 "../src/legend.vala" + case LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY: +#line 459 "legend.c" + { + GdkRGBA boxed; +#line 5 "../src/legend.vala" + live_chart_legend_get_main_color (self, &boxed); +#line 5 "../src/legend.vala" + g_value_set_boxed (value, &boxed); +#line 466 "legend.c" + } +#line 5 "../src/legend.vala" + break; +#line 470 "legend.c" + default: +#line 5 "../src/legend.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/legend.vala" + break; +#line 476 "legend.c" + } +} + +static void +_vala_live_chart_legend_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartLegend * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_LEGEND, LiveChartLegend); +#line 5 "../src/legend.vala" + switch (property_id) { +#line 5 "../src/legend.vala" + case LIVE_CHART_LEGEND_VISIBLE_PROPERTY: +#line 5 "../src/legend.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 5 "../src/legend.vala" + break; +#line 5 "../src/legend.vala" + case LIVE_CHART_LEGEND_MAIN_COLOR_PROPERTY: +#line 5 "../src/legend.vala" + live_chart_legend_set_main_color (self, g_value_get_boxed (value)); +#line 5 "../src/legend.vala" + break; +#line 502 "legend.c" + default: +#line 5 "../src/legend.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/legend.vala" + break; +#line 508 "legend.c" + } +} + +static gpointer +_cairo_reference0 (gpointer self) +{ +#line 40 "../src/legend.vala" + return self ? cairo_reference (self) : NULL; +#line 517 "legend.c" +} + +static Block3Data* +block3_data_ref (Block3Data* _data3_) +{ +#line 40 "../src/legend.vala" + g_atomic_int_inc (&_data3_->_ref_count_); +#line 40 "../src/legend.vala" + return _data3_; +#line 527 "legend.c" +} + +static void +block3_data_unref (void * _userdata_) +{ + Block3Data* _data3_; + _data3_ = (Block3Data*) _userdata_; +#line 40 "../src/legend.vala" + if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) { +#line 537 "legend.c" + LiveChartHorizontalLegend* self; +#line 40 "../src/legend.vala" + self = _data3_->self; +#line 40 "../src/legend.vala" + _cairo_destroy0 (_data3_->ctx); +#line 40 "../src/legend.vala" + _g_object_unref0 (self); +#line 40 "../src/legend.vala" + g_slice_free (Block3Data, _data3_); +#line 547 "legend.c" + } +} + +static Block4Data* +block4_data_ref (Block4Data* _data4_) +{ +#line 41 "../src/legend.vala" + g_atomic_int_inc (&_data4_->_ref_count_); +#line 41 "../src/legend.vala" + return _data4_; +#line 558 "legend.c" +} + +static void +block4_data_unref (void * _userdata_) +{ + Block4Data* _data4_; + _data4_ = (Block4Data*) _userdata_; +#line 41 "../src/legend.vala" + if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) { +#line 568 "legend.c" + LiveChartHorizontalLegend* self; +#line 41 "../src/legend.vala" + self = _data4_->_data3_->self; +#line 41 "../src/legend.vala" + block3_data_unref (_data4_->_data3_); +#line 41 "../src/legend.vala" + _data4_->_data3_ = NULL; +#line 41 "../src/legend.vala" + g_slice_free (Block4Data, _data4_); +#line 578 "legend.c" + } +} + +static gboolean +___lambda6_ (Block4Data* _data4_, + LiveChartSerie* serie) +{ + Block3Data* _data3_; + LiveChartHorizontalLegend* self; + GdkRGBA _tmp0_ = {0}; + GdkRGBA _tmp1_; + GdkRGBA _tmp2_ = {0}; + GdkRGBA _tmp3_; + GdkRGBA _tmp4_ = {0}; + GdkRGBA _tmp5_; + LiveChartBoundaries _tmp6_; + LiveChartBoundary _tmp7_; + LiveChartBoundaries _tmp8_; + LiveChartBoundary _tmp9_; + LiveChartLabels* _tmp10_; + LiveChartFont* _tmp11_; + LiveChartFont* _tmp12_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp13_; + const gchar* _tmp14_; + cairo_text_extents_t _tmp15_ = {0}; + LiveChartBoundaries _tmp16_; + LiveChartBoundary _tmp17_; + LiveChartBoundaries _tmp18_; + LiveChartBoundary _tmp19_; + cairo_text_extents_t _tmp20_; + cairo_text_extents_t _tmp21_; + const gchar* _tmp22_; + const gchar* _tmp23_; + cairo_text_extents_t _tmp24_; + gboolean result; +#line 46 "../src/legend.vala" + _data3_ = _data4_->_data3_; +#line 46 "../src/legend.vala" + self = _data3_->self; +#line 46 "../src/legend.vala" + g_return_val_if_fail (serie != NULL, FALSE); +#line 47 "../src/legend.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) serie, &_tmp0_); +#line 47 "../src/legend.vala" + _tmp1_ = _tmp0_; +#line 47 "../src/legend.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) serie, &_tmp2_); +#line 47 "../src/legend.vala" + _tmp3_ = _tmp2_; +#line 47 "../src/legend.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) serie, &_tmp4_); +#line 47 "../src/legend.vala" + _tmp5_ = _tmp4_; +#line 47 "../src/legend.vala" + cairo_set_source_rgba (_data3_->ctx, _tmp1_.red, _tmp3_.green, _tmp5_.blue, (gdouble) 1); +#line 48 "../src/legend.vala" + _tmp6_ = _data4_->boundaries; +#line 48 "../src/legend.vala" + _tmp7_ = _tmp6_.x; +#line 48 "../src/legend.vala" + _tmp8_ = _data4_->boundaries; +#line 48 "../src/legend.vala" + _tmp9_ = _tmp8_.y; +#line 48 "../src/legend.vala" + cairo_rectangle (_data3_->ctx, (gdouble) (_tmp7_.min + _data4_->pos), (gdouble) (_tmp9_.max + _data4_->y_padding), (gdouble) LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_WIDTH, (gdouble) LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_HEIGHT); +#line 49 "../src/legend.vala" + cairo_fill (_data3_->ctx); +#line 51 "../src/legend.vala" + _tmp10_ = ((LiveChartLegend*) self)->labels; +#line 51 "../src/legend.vala" + _tmp11_ = live_chart_labels_get_font (_tmp10_); +#line 51 "../src/legend.vala" + _tmp12_ = _tmp11_; +#line 51 "../src/legend.vala" + live_chart_font_configure (_tmp12_, _data3_->ctx); +#line 52 "../src/legend.vala" + _tmp13_ = live_chart_serie_get_name (serie); +#line 52 "../src/legend.vala" + _tmp14_ = _tmp13_; +#line 52 "../src/legend.vala" + live_chart_horizontal_legend_name_extents (self, _tmp14_, _data3_->ctx, &_tmp15_); +#line 52 "../src/legend.vala" + extents = _tmp15_; +#line 53 "../src/legend.vala" + _tmp16_ = _data4_->boundaries; +#line 53 "../src/legend.vala" + _tmp17_ = _tmp16_.x; +#line 53 "../src/legend.vala" + _tmp18_ = _data4_->boundaries; +#line 53 "../src/legend.vala" + _tmp19_ = _tmp18_.y; +#line 53 "../src/legend.vala" + _tmp20_ = extents; +#line 53 "../src/legend.vala" + _tmp21_ = extents; +#line 53 "../src/legend.vala" + cairo_move_to (_data3_->ctx, (gdouble) (((_tmp17_.min + _data4_->pos) + LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_WIDTH) + 3), ((_tmp19_.max + _data4_->y_padding) + _tmp20_.height) + ((LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_HEIGHT - _tmp21_.height) / 2)); +#line 54 "../src/legend.vala" + _tmp22_ = live_chart_serie_get_name (serie); +#line 54 "../src/legend.vala" + _tmp23_ = _tmp22_; +#line 54 "../src/legend.vala" + cairo_show_text (_data3_->ctx, _tmp23_); +#line 56 "../src/legend.vala" + _tmp24_ = extents; +#line 56 "../src/legend.vala" + _data4_->pos += (LIVE_CHART_HORIZONTAL_LEGEND_COLOR_BLOCK_WIDTH + ((gint) _tmp24_.width)) + 20; +#line 58 "../src/legend.vala" + result = TRUE; +#line 58 "../src/legend.vala" + _g_object_unref0 (serie); +#line 58 "../src/legend.vala" + return result; +#line 693 "legend.c" +} + +static gboolean +____lambda6__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = ___lambda6_ (self, (LiveChartSerie*) g); +#line 46 "../src/legend.vala" + return result; +#line 704 "legend.c" +} + +static void +live_chart_horizontal_legend_real_draw (LiveChartLegend* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartHorizontalLegend * self; + Block3Data* _data3_; + cairo_t* _tmp0_; + gboolean _tmp1_; + gboolean _tmp2_; +#line 40 "../src/legend.vala" + self = (LiveChartHorizontalLegend*) base; +#line 40 "../src/legend.vala" + g_return_if_fail (ctx != NULL); +#line 40 "../src/legend.vala" + g_return_if_fail (config != NULL); +#line 40 "../src/legend.vala" + _data3_ = g_slice_new0 (Block3Data); +#line 40 "../src/legend.vala" + _data3_->_ref_count_ = 1; +#line 40 "../src/legend.vala" + _data3_->self = g_object_ref (self); +#line 40 "../src/legend.vala" + _tmp0_ = _cairo_reference0 (ctx); +#line 40 "../src/legend.vala" + _cairo_destroy0 (_data3_->ctx); +#line 40 "../src/legend.vala" + _data3_->ctx = _tmp0_; +#line 41 "../src/legend.vala" + _tmp1_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 41 "../src/legend.vala" + _tmp2_ = _tmp1_; +#line 41 "../src/legend.vala" + if (_tmp2_) { +#line 741 "legend.c" + Block4Data* _data4_; + LiveChartBoundaries _tmp3_ = {0}; + GeeArrayList* _tmp4_; +#line 41 "../src/legend.vala" + _data4_ = g_slice_new0 (Block4Data); +#line 41 "../src/legend.vala" + _data4_->_ref_count_ = 1; +#line 41 "../src/legend.vala" + _data4_->_data3_ = block3_data_ref (_data3_); +#line 43 "../src/legend.vala" + _data4_->y_padding = live_chart_horizontal_legend_get_y_padding (self, config); +#line 44 "../src/legend.vala" + live_chart_config_boundaries (config, &_tmp3_); +#line 44 "../src/legend.vala" + _data4_->boundaries = _tmp3_; +#line 45 "../src/legend.vala" + _data4_->pos = 0; +#line 46 "../src/legend.vala" + _tmp4_ = ((LiveChartLegend*) self)->series; +#line 46 "../src/legend.vala" + gee_abstract_collection_foreach ((GeeAbstractCollection*) _tmp4_, ____lambda6__gee_forall_func, _data4_); +#line 60 "../src/legend.vala" + cairo_stroke (_data3_->ctx); +#line 61 "../src/legend.vala" + live_chart_horizontal_legend_update_bounding_box (self, config, _data4_->pos); +#line 62 "../src/legend.vala" + live_chart_horizontal_legend_debug (self, _data3_->ctx); +#line 41 "../src/legend.vala" + block4_data_unref (_data4_); +#line 41 "../src/legend.vala" + _data4_ = NULL; +#line 773 "legend.c" + } +#line 40 "../src/legend.vala" + block3_data_unref (_data3_); +#line 40 "../src/legend.vala" + _data3_ = NULL; +#line 779 "legend.c" +} + +static gint +live_chart_horizontal_legend_get_y_padding (LiveChartHorizontalLegend* self, + LiveChartConfig* config) +{ + LiveChartXAxis* _tmp0_; + LiveChartLabels* _tmp1_; + cairo_text_extents_t _tmp2_ = {0}; + cairo_text_extents_t _tmp3_; + gint result; +#line 66 "../src/legend.vala" + g_return_val_if_fail (self != NULL, 0); +#line 66 "../src/legend.vala" + g_return_val_if_fail (config != NULL, 0); +#line 67 "../src/legend.vala" + _tmp0_ = config->x_axis; +#line 67 "../src/legend.vala" + _tmp1_ = _tmp0_->labels; +#line 67 "../src/legend.vala" + live_chart_labels_get_extents (_tmp1_, &_tmp2_); +#line 67 "../src/legend.vala" + _tmp3_ = _tmp2_; +#line 67 "../src/legend.vala" + result = (gint) ((LIVE_CHART_GRID_ABSCISSA_TIME_PADDING * 2) + _tmp3_.height); +#line 67 "../src/legend.vala" + return result; +#line 807 "legend.c" +} + +static void +live_chart_horizontal_legend_name_extents (LiveChartHorizontalLegend* self, + const gchar* name, + cairo_t* ctx, + cairo_text_extents_t* result) +{ + cairo_text_extents_t name_extents = {0}; + cairo_text_extents_t _tmp0_ = {0}; +#line 70 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 70 "../src/legend.vala" + g_return_if_fail (name != NULL); +#line 70 "../src/legend.vala" + g_return_if_fail (ctx != NULL); +#line 72 "../src/legend.vala" + cairo_text_extents (ctx, name, &_tmp0_); +#line 72 "../src/legend.vala" + name_extents = _tmp0_; +#line 74 "../src/legend.vala" + *result = name_extents; +#line 74 "../src/legend.vala" + return; +#line 832 "legend.c" +} + +static void +live_chart_horizontal_legend_update_bounding_box (LiveChartHorizontalLegend* self, + LiveChartConfig* config, + gint width) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartBoundaries _tmp3_; + LiveChartBoundary _tmp4_; + LiveChartBoundingBox _tmp5_ = {0}; +#line 77 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 77 "../src/legend.vala" + g_return_if_fail (config != NULL); +#line 78 "../src/legend.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 78 "../src/legend.vala" + boundaries = _tmp0_; +#line 79 "../src/legend.vala" + _tmp1_ = boundaries; +#line 79 "../src/legend.vala" + _tmp2_ = _tmp1_.x; +#line 79 "../src/legend.vala" + _tmp3_ = boundaries; +#line 79 "../src/legend.vala" + _tmp4_ = _tmp3_.y; +#line 79 "../src/legend.vala" + memset (&_tmp5_, 0, sizeof (LiveChartBoundingBox)); +#line 79 "../src/legend.vala" + _tmp5_.x = (gdouble) _tmp2_.min; +#line 79 "../src/legend.vala" + _tmp5_.y = (gdouble) (_tmp4_.max + live_chart_horizontal_legend_get_y_padding (self, config)); +#line 79 "../src/legend.vala" + _tmp5_.width = (gdouble) width; +#line 79 "../src/legend.vala" + _tmp5_.height = (gdouble) 10; +#line 79 "../src/legend.vala" + ((LiveChartLegend*) self)->bounding_box = _tmp5_; +#line 875 "legend.c" +} + +void +live_chart_horizontal_legend_debug (LiveChartHorizontalLegend* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 87 "../src/legend.vala" + g_return_if_fail (self != NULL); +#line 87 "../src/legend.vala" + g_return_if_fail (ctx != NULL); +#line 88 "../src/legend.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 88 "../src/legend.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 88 "../src/legend.vala" + debug = _tmp1_; +#line 89 "../src/legend.vala" + _tmp2_ = debug; +#line 89 "../src/legend.vala" + if (_tmp2_ != NULL) { +#line 900 "legend.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 90 "../src/legend.vala" + _tmp3_ = ((LiveChartLegend*) self)->bounding_box; +#line 90 "../src/legend.vala" + _tmp4_ = ((LiveChartLegend*) self)->bounding_box; +#line 90 "../src/legend.vala" + _tmp5_ = ((LiveChartLegend*) self)->bounding_box; +#line 90 "../src/legend.vala" + _tmp6_ = ((LiveChartLegend*) self)->bounding_box; +#line 90 "../src/legend.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 91 "../src/legend.vala" + cairo_stroke (ctx); +#line 917 "legend.c" + } +#line 87 "../src/legend.vala" + _g_free0 (debug); +#line 921 "legend.c" +} + +LiveChartHorizontalLegend* +live_chart_horizontal_legend_construct (GType object_type) +{ + LiveChartHorizontalLegend * self = NULL; +#line 35 "../src/legend.vala" + self = (LiveChartHorizontalLegend*) live_chart_legend_construct (object_type); +#line 35 "../src/legend.vala" + return self; +#line 932 "legend.c" +} + +LiveChartHorizontalLegend* +live_chart_horizontal_legend_new (void) +{ +#line 35 "../src/legend.vala" + return live_chart_horizontal_legend_construct (LIVE_CHART_TYPE_HORIZONTAL_LEGEND); +#line 940 "legend.c" +} + +static void +live_chart_horizontal_legend_class_init (LiveChartHorizontalLegendClass * klass, + gpointer klass_data) +{ +#line 35 "../src/legend.vala" + live_chart_horizontal_legend_parent_class = g_type_class_peek_parent (klass); +#line 35 "../src/legend.vala" + ((LiveChartLegendClass *) klass)->draw = (void (*) (LiveChartLegend*, cairo_t*, LiveChartConfig*)) live_chart_horizontal_legend_real_draw; +#line 951 "legend.c" +} + +static void +live_chart_horizontal_legend_instance_init (LiveChartHorizontalLegend * self, + gpointer klass) +{ +} + +static GType +live_chart_horizontal_legend_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartHorizontalLegendClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_horizontal_legend_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartHorizontalLegend), 0, (GInstanceInitFunc) live_chart_horizontal_legend_instance_init, NULL }; + GType live_chart_horizontal_legend_type_id; + live_chart_horizontal_legend_type_id = g_type_register_static (LIVE_CHART_TYPE_LEGEND, "LiveChartHorizontalLegend", &g_define_type_info, 0); + return live_chart_horizontal_legend_type_id; +} + +GType +live_chart_horizontal_legend_get_type (void) +{ + static volatile gsize live_chart_horizontal_legend_type_id__once = 0; + if (g_once_init_enter (&live_chart_horizontal_legend_type_id__once)) { + GType live_chart_horizontal_legend_type_id; + live_chart_horizontal_legend_type_id = live_chart_horizontal_legend_get_type_once (); + g_once_init_leave (&live_chart_horizontal_legend_type_id__once, live_chart_horizontal_legend_type_id); + } + return live_chart_horizontal_legend_type_id__once; +} + +static void +live_chart_noop_legend_real_draw (LiveChartLegend* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartNoopLegend * self; +#line 97 "../src/legend.vala" + self = (LiveChartNoopLegend*) base; +#line 97 "../src/legend.vala" + g_return_if_fail (ctx != NULL); +#line 97 "../src/legend.vala" + g_return_if_fail (config != NULL); +#line 993 "legend.c" +} + +LiveChartNoopLegend* +live_chart_noop_legend_construct (GType object_type) +{ + LiveChartNoopLegend * self = NULL; +#line 96 "../src/legend.vala" + self = (LiveChartNoopLegend*) live_chart_legend_construct (object_type); +#line 96 "../src/legend.vala" + return self; +#line 1004 "legend.c" +} + +LiveChartNoopLegend* +live_chart_noop_legend_new (void) +{ +#line 96 "../src/legend.vala" + return live_chart_noop_legend_construct (LIVE_CHART_TYPE_NOOP_LEGEND); +#line 1012 "legend.c" +} + +static void +live_chart_noop_legend_class_init (LiveChartNoopLegendClass * klass, + gpointer klass_data) +{ +#line 96 "../src/legend.vala" + live_chart_noop_legend_parent_class = g_type_class_peek_parent (klass); +#line 96 "../src/legend.vala" + ((LiveChartLegendClass *) klass)->draw = (void (*) (LiveChartLegend*, cairo_t*, LiveChartConfig*)) live_chart_noop_legend_real_draw; +#line 1023 "legend.c" +} + +static void +live_chart_noop_legend_instance_init (LiveChartNoopLegend * self, + gpointer klass) +{ +} + +static GType +live_chart_noop_legend_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartNoopLegendClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_noop_legend_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartNoopLegend), 0, (GInstanceInitFunc) live_chart_noop_legend_instance_init, NULL }; + GType live_chart_noop_legend_type_id; + live_chart_noop_legend_type_id = g_type_register_static (LIVE_CHART_TYPE_LEGEND, "LiveChartNoopLegend", &g_define_type_info, 0); + return live_chart_noop_legend_type_id; +} + +GType +live_chart_noop_legend_get_type (void) +{ + static volatile gsize live_chart_noop_legend_type_id__once = 0; + if (g_once_init_enter (&live_chart_noop_legend_type_id__once)) { + GType live_chart_noop_legend_type_id; + live_chart_noop_legend_type_id = live_chart_noop_legend_get_type_once (); + g_once_init_leave (&live_chart_noop_legend_type_id__once, live_chart_noop_legend_type_id); + } + return live_chart_noop_legend_type_id__once; +} + diff --git a/iPDC/lib/liblivechart.so.p/liblivechart.so.symbols b/iPDC/lib/liblivechart.so.p/liblivechart.so.symbols new file mode 100644 index 0000000..290acb8 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/liblivechart.so.symbols @@ -0,0 +1,448 @@ + 0x000000000000000e (SONAME) Library soname: [liblivechart.so] +live_chart_area_construct T +live_chart_area_get_type T +live_chart_area_new T +live_chart_auto_padding_get_type T +live_chart_background_construct T +live_chart_background_get_color T +live_chart_background_get_main_color T +live_chart_background_get_type T +live_chart_background_new T +live_chart_background_set_color T +live_chart_background_set_main_color T +live_chart_bar_construct T +live_chart_bar_get_type T +live_chart_bar_new T +live_chart_bezier_curve_dup T +live_chart_bezier_curve_free T +live_chart_bezier_curve_get_type T +live_chart_bezier_intersector_construct T +live_chart_bezier_intersector_get_type T +live_chart_bezier_intersector_new T +live_chart_bezier_intersector_ref T +live_chart_bezier_intersector_unref T +live_chart_boundaries_dup T +live_chart_boundaries_free T +live_chart_boundaries_get_type T +live_chart_boundary_dup T +live_chart_boundary_free T +live_chart_boundary_get_type T +live_chart_bounding_box_dup T +live_chart_bounding_box_free T +live_chart_bounding_box_get_type T +live_chart_bounds_construct T +live_chart_bounds_get_lower T +live_chart_bounds_get_type T +live_chart_bounds_get_upper T +live_chart_bounds_has_lower T +live_chart_bounds_has_upper T +live_chart_bounds_new T +live_chart_bounds_update T +live_chart_build_bezier_curve_from_points T +live_chart_cap T +live_chart_chart_add_serie T +live_chart_chart_add_unaware_timestamp_collection T +live_chart_chart_add_unaware_timestamp_collection_by_index T +live_chart_chart_add_value T +live_chart_chart_add_value_by_index T +live_chart_chart_construct T +live_chart_chart_error_get_type T +live_chart_chart_error_quark T +live_chart_chart_get_background T +live_chart_chart_get_grid T +live_chart_chart_get_legend T +live_chart_chart_get_type T +live_chart_chart_new T +live_chart_chart_refresh_every T +live_chart_chart_set_background T +live_chart_chart_set_grid T +live_chart_chart_set_legend T +live_chart_chart_to_png T +live_chart_colorable_get_main_color T +live_chart_colorable_get_type T +live_chart_colorable_set_main_color T +live_chart_config_boundaries T +live_chart_config_configure T +live_chart_config_construct T +live_chart_config_get_height T +live_chart_config_get_type T +live_chart_config_get_width T +live_chart_config_new T +live_chart_config_ref T +live_chart_config_set_height T +live_chart_config_set_width T +live_chart_config_unref T +live_chart_coord_dup T +live_chart_coord_free T +live_chart_coord_get_type T +live_chart_dash_copy T +live_chart_dash_destroy T +live_chart_dash_dup T +live_chart_dash_free T +live_chart_dash_get_type T +live_chart_dash_init T +live_chart_drawable_draw T +live_chart_drawable_get_bounding_box T +live_chart_drawable_get_type T +live_chart_drawable_get_visible T +live_chart_drawable_set_visible T +live_chart_find_intersections_between T +live_chart_font_configure T +live_chart_font_construct T +live_chart_font_get_color T +live_chart_font_get_face T +live_chart_font_get_size T +live_chart_font_get_slant T +live_chart_font_get_type T +live_chart_font_get_weight T +live_chart_font_new T +live_chart_font_ref T +live_chart_font_set_color T +live_chart_font_set_face T +live_chart_font_set_size T +live_chart_font_set_slant T +live_chart_font_set_weight T +live_chart_font_unref T +live_chart_format_for_y_axis T +live_chart_get_cubic_roots T +live_chart_golden_divisors T +live_chart_grid_construct T +live_chart_grid_debug T +live_chart_grid_get_main_color T +live_chart_grid_get_type T +live_chart_grid_new T +live_chart_grid_render_abscissa T +live_chart_grid_render_grid T +live_chart_grid_render_hgrid T +live_chart_grid_render_ordinate T +live_chart_grid_render_vgrid T +live_chart_grid_restore T +live_chart_grid_set_main_color T +live_chart_grid_update_bounding_box T +live_chart_has_fractional_part T +live_chart_horizontal_legend_construct T +live_chart_horizontal_legend_debug T +live_chart_horizontal_legend_get_type T +live_chart_horizontal_legend_new T +live_chart_intersection_close T +live_chart_intersection_construct T +live_chart_intersection_construct_without_entry_point T +live_chart_intersection_get_end_x T +live_chart_intersection_get_region T +live_chart_intersection_get_start_x T +live_chart_intersection_get_type T +live_chart_intersection_is_closed T +live_chart_intersection_is_open T +live_chart_intersection_new T +live_chart_intersection_new_without_entry_point T +live_chart_intersections_close T +live_chart_intersections_construct T +live_chart_intersection_set_region T +live_chart_intersections_foreach T +live_chart_intersections_get T +live_chart_intersections_get_current_region T +live_chart_intersections_get_type T +live_chart_intersections_has_an_opened_intersection T +live_chart_intersections_new T +live_chart_intersections_open T +live_chart_intersections_open_without_entrypoint T +live_chart_intersections_size T +live_chart_intersections_update T +live_chart_intersection_update T +live_chart_intersector_get_type T +live_chart_intersector_intersect T +live_chart_labels_construct T +live_chart_labels_get_extents T +live_chart_labels_get_font T +live_chart_labels_get_type T +live_chart_labels_get_visible T +live_chart_labels_new T +live_chart_labels_ref T +live_chart_labels_set_extents T +live_chart_labels_set_font T +live_chart_labels_set_visible T +live_chart_labels_unref T +live_chart_legend_add_legend T +live_chart_legend_construct T +live_chart_legend_draw T +live_chart_legend_get_main_color T +live_chart_legend_get_type T +live_chart_legend_set_main_color T +live_chart_line_area_construct T +live_chart_line_area_get_area_alpha T +live_chart_line_area_get_type T +live_chart_line_area_new T +live_chart_line_area_set_area_alpha T +live_chart_line_construct T +live_chart_line_draw_line T +live_chart_line_get_type T +live_chart_line_new T +live_chart_max_bound_line_construct T +live_chart_max_bound_line_construct_from_serie T +live_chart_max_bound_line_get_type T +live_chart_max_bound_line_new T +live_chart_max_bound_line_new_from_serie T +live_chart_min_bound_line_construct T +live_chart_min_bound_line_construct_from_serie T +live_chart_min_bound_line_get_type T +live_chart_min_bound_line_new T +live_chart_min_bound_line_new_from_serie T +live_chart_noop_legend_construct T +live_chart_noop_legend_get_type T +live_chart_noop_legend_new T +live_chart_num_of_digits T +live_chart_padding_dup T +live_chart_padding_free T +live_chart_padding_get_type T +live_chart_padding_init T +live_chart_param_spec_bezier_intersector T +live_chart_param_spec_config T +live_chart_param_spec_font T +live_chart_param_spec_labels T +live_chart_param_spec_region T +live_chart_param_spec_xaxis T +live_chart_param_spec_yaxis T +live_chart_path_configure T +live_chart_path_construct T +live_chart_path_get_color T +live_chart_path_get_type T +live_chart_path_get_visible T +live_chart_path_get_width T +live_chart_path_new T +live_chart_path_set_color T +live_chart_path_set_visible T +live_chart_path_set_width T +live_chart_point_dup T +live_chart_point_free T +live_chart_point_get_type T +live_chart_points_add T +live_chart_points_after T +live_chart_points_construct T +live_chart_points_create T +live_chart_points_first T +live_chart_points_get T +live_chart_points_get_bounds T +live_chart_points_get_realtime_delta T +live_chart_points_get_size T +live_chart_points_get_type T +live_chart_points_last T +live_chart_points_new T +live_chart_points_set_bounds T +live_chart_points_set_realtime_delta T +live_chart_region_construct T +live_chart_region_construct_between T +live_chart_region_get_area_color T +live_chart_region_get_line_color T +live_chart_region_get_type T +live_chart_region_handle T +live_chart_region_handle_result_dup T +live_chart_region_handle_result_free T +live_chart_region_handle_result_get_type T +live_chart_region_handle_status_get_type T +live_chart_region_has_at_least_one_point_within T +live_chart_region_new T +live_chart_region_new_between T +live_chart_region_ref T +live_chart_region_set_area_color T +live_chart_region_set_line_color T +live_chart_region_unref T +live_chart_region_with_area_color T +live_chart_region_with_line_color T +live_chart_segment_dup T +live_chart_segment_free T +live_chart_segment_get_type T +live_chart_serie_add T +live_chart_serie_add_with_timestamp T +live_chart_serie_clear T +live_chart_serie_construct T +live_chart_serie_get_line T +live_chart_serie_get_main_color T +live_chart_serie_get_name T +live_chart_serie_get_type T +live_chart_serie_get_values T +live_chart_serie_new T +live_chart_serie_renderer_construct T +live_chart_serie_renderer_debug T +live_chart_serie_renderer_draw T +live_chart_serie_renderer_get_line T +live_chart_serie_renderer_get_main_color T +live_chart_serie_renderer_get_type T +live_chart_serie_renderer_get_values T +live_chart_serie_renderer_is_out_of_area T +live_chart_serie_renderer_set_line T +live_chart_serie_renderer_set_main_color T +live_chart_series_construct T +live_chart_serie_set_line T +live_chart_serie_set_main_color T +live_chart_serie_set_name T +live_chart_series_get T +live_chart_series_get_by_name T +live_chart_series_get_type T +live_chart_series_iterator T +live_chart_series_new T +live_chart_series_register T +live_chart_smooth_line_area_construct T +live_chart_smooth_line_area_draw_regions_on_area T +live_chart_smooth_line_area_get_area_alpha T +live_chart_smooth_line_area_get_type T +live_chart_smooth_line_area_new T +live_chart_smooth_line_area_set_area_alpha T +live_chart_smooth_line_construct T +live_chart_smooth_line_draw_regions_on_line T +live_chart_smooth_line_draw_smooth_line T +live_chart_smooth_line_get_region T +live_chart_smooth_line_get_type T +live_chart_smooth_line_new T +live_chart_smooth_line_set_region T +live_chart_static_named_value_copy T +live_chart_static_named_value_destroy T +live_chart_static_named_value_dup T +live_chart_static_named_value_free T +live_chart_static_named_value_get_type T +live_chart_static_static_chart_add_serie T +live_chart_static_static_chart_construct T +live_chart_static_static_chart_get_background T +live_chart_static_static_chart_get_grid T +live_chart_static_static_chart_get_legend T +live_chart_static_static_chart_get_type T +live_chart_static_static_chart_new T +live_chart_static_static_chart_set_background T +live_chart_static_static_chart_set_categories T +live_chart_static_static_chart_set_grid T +live_chart_static_static_chart_set_legend T +live_chart_static_static_grid_construct T +live_chart_static_static_grid_debug T +live_chart_static_static_grid_get_main_color T +live_chart_static_static_grid_get_type T +live_chart_static_static_grid_new T +live_chart_static_static_grid_render_abscissa T +live_chart_static_static_grid_render_grid T +live_chart_static_static_grid_render_hgrid T +live_chart_static_static_grid_render_ordinate T +live_chart_static_static_grid_render_vgrid T +live_chart_static_static_grid_restore T +live_chart_static_static_grid_set_main_color T +live_chart_static_static_grid_update_bounding_box T +live_chart_static_static_line_construct T +live_chart_static_static_line_draw_line T +live_chart_static_static_line_get_type T +live_chart_static_static_line_new T +live_chart_static_static_points_add T +live_chart_static_static_points_after T +live_chart_static_static_points_construct T +live_chart_static_static_points_create T +live_chart_static_static_points_first T +live_chart_static_static_points_get T +live_chart_static_static_points_get_bounds T +live_chart_static_static_points_get_realtime_delta T +live_chart_static_static_points_get_size T +live_chart_static_static_points_get_type T +live_chart_static_static_points_last T +live_chart_static_static_points_new T +live_chart_static_static_points_set_bounds T +live_chart_static_static_points_set_realtime_delta T +live_chart_static_static_serie_add T +live_chart_static_static_serie_clear T +live_chart_static_static_serie_construct T +live_chart_static_static_serie_get_line T +live_chart_static_static_serie_get_name T +live_chart_static_static_serie_get_type T +live_chart_static_static_serie_get_values T +live_chart_static_static_serie_new T +live_chart_static_static_serie_renderer_construct T +live_chart_static_static_serie_renderer_debug T +live_chart_static_static_serie_renderer_draw T +live_chart_static_static_serie_renderer_get_line T +live_chart_static_static_serie_renderer_get_type T +live_chart_static_static_serie_renderer_get_values T +live_chart_static_static_serie_renderer_is_out_of_area T +live_chart_static_static_serie_renderer_set_line T +live_chart_static_static_series_construct T +live_chart_static_static_serie_set_line T +live_chart_static_static_serie_set_name T +live_chart_static_static_series_get T +live_chart_static_static_series_get_by_name T +live_chart_static_static_series_get_type T +live_chart_static_static_series_iterator T +live_chart_static_static_series_new T +live_chart_static_static_series_register T +live_chart_static_static_values_add T +live_chart_static_static_values_construct T +live_chart_static_static_values_get_bounds T +live_chart_static_static_values_get_type T +live_chart_static_static_values_new T +live_chart_static_static_values_set_bounds T +live_chart_threshold_line_construct T +live_chart_threshold_line_get_type T +live_chart_threshold_line_get_value T +live_chart_threshold_line_new T +live_chart_threshold_line_set_value T +live_chart_ticks_copy T +live_chart_ticks_destroy T +live_chart_ticks_dup T +live_chart_ticks_free T +live_chart_ticks_get_type T +live_chart_ticks_init T +live_chart_timestamped_value_dup T +live_chart_timestamped_value_free T +live_chart_timestamped_value_get_type T +live_chart_value_get_bezier_intersector T +live_chart_value_get_config T +live_chart_value_get_font T +live_chart_value_get_labels T +live_chart_value_get_region T +live_chart_value_get_xaxis T +live_chart_value_get_yaxis T +live_chart_values_add T +live_chart_values_construct T +live_chart_value_set_bezier_intersector T +live_chart_value_set_config T +live_chart_value_set_font T +live_chart_value_set_labels T +live_chart_value_set_region T +live_chart_value_set_xaxis T +live_chart_value_set_yaxis T +live_chart_values_get_bounds T +live_chart_values_get_type T +live_chart_values_new T +live_chart_values_set_bounds T +live_chart_value_take_bezier_intersector T +live_chart_value_take_config T +live_chart_value_take_font T +live_chart_value_take_labels T +live_chart_value_take_region T +live_chart_value_take_xaxis T +live_chart_value_take_yaxis T +live_chart_xaxis_construct T +live_chart_xaxis_get_ratio T +live_chart_xaxis_get_tick_interval T +live_chart_xaxis_get_tick_length T +live_chart_xaxis_get_type T +live_chart_xaxis_get_visible T +live_chart_xaxis_new T +live_chart_xaxis_ref T +live_chart_xaxis_set_tick_interval T +live_chart_xaxis_set_tick_length T +live_chart_xaxis_set_visible T +live_chart_xaxis_unref T +live_chart_yaxis_construct T +live_chart_yaxis_get_bounds T +live_chart_yaxis_get_max_displayed_value T +live_chart_yaxis_get_ratio T +live_chart_yaxis_get_ratio_threshold T +live_chart_yaxis_get_tick_interval T +live_chart_yaxis_get_tick_length T +live_chart_yaxis_get_ticks T +live_chart_yaxis_get_type T +live_chart_yaxis_get_unit T +live_chart_yaxis_get_visible T +live_chart_yaxis_new T +live_chart_yaxis_ref T +live_chart_yaxis_set_ratio_threshold T +live_chart_yaxis_set_tick_interval T +live_chart_yaxis_set_tick_length T +live_chart_yaxis_set_unit T +live_chart_yaxis_set_visible T +live_chart_yaxis_unref T +live_chart_yaxis_update T +live_chart_yaxis_update_bounds T diff --git a/iPDC/lib/liblivechart.so.p/line.c b/iPDC/lib/liblivechart.so.p/line.c new file mode 100644 index 0000000..7cfa2e5 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/line.c @@ -0,0 +1,375 @@ +/* line.c generated by valac 0.56.0, the Vala compiler + * generated from line.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_LINE_0_PROPERTY, + LIVE_CHART_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_line_properties[LIVE_CHART_LINE_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +static gpointer live_chart_line_parent_class = NULL; + +static void live_chart_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_line_update_bounding_box (LiveChartLine* self, + LiveChartPoints* points, + LiveChartConfig* config); +static GType live_chart_line_get_type_once (void); + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 8 "../src/line.vala" + return self ? g_object_ref (self) : NULL; +#line 34 "line.c" +} + +LiveChartLine* +live_chart_line_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartLine * self = NULL; + LiveChartValues* _tmp0_; +#line 6 "../src/line.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 7 "../src/line.vala" + self = (LiveChartLine*) live_chart_serie_renderer_construct (object_type); +#line 8 "../src/line.vala" + _tmp0_ = _g_object_ref0 (values); +#line 8 "../src/line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 8 "../src/line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 6 "../src/line.vala" + return self; +#line 55 "line.c" +} + +LiveChartLine* +live_chart_line_new (LiveChartValues* values) +{ +#line 6 "../src/line.vala" + return live_chart_line_construct (LIVE_CHART_TYPE_LINE, values); +#line 63 "line.c" +} + +static void +live_chart_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 11 "../src/line.vala" + self = (LiveChartLine*) base; +#line 11 "../src/line.vala" + g_return_if_fail (ctx != NULL); +#line 11 "../src/line.vala" + g_return_if_fail (config != NULL); +#line 12 "../src/line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 12 "../src/line.vala" + _tmp1_ = _tmp0_; +#line 12 "../src/line.vala" + if (_tmp1_) { +#line 86 "line.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 13 "../src/line.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 13 "../src/line.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 13 "../src/line.vala" + points = _tmp3_; +#line 14 "../src/line.vala" + _tmp4_ = points; +#line 14 "../src/line.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 14 "../src/line.vala" + _tmp6_ = _tmp5_; +#line 14 "../src/line.vala" + if (_tmp6_ > 0) { +#line 107 "line.c" + LiveChartPoints* _tmp7_; + LiveChartPoints* _tmp8_; + LiveChartPoints* _tmp9_; +#line 15 "../src/line.vala" + _tmp7_ = points; +#line 15 "../src/line.vala" + _tmp8_ = live_chart_line_draw_line (self, _tmp7_, ctx, config); +#line 15 "../src/line.vala" + _tmp9_ = _tmp8_; +#line 15 "../src/line.vala" + _g_object_unref0 (_tmp9_); +#line 16 "../src/line.vala" + cairo_stroke (ctx); +#line 121 "line.c" + } +#line 12 "../src/line.vala" + _g_object_unref0 (points); +#line 125 "line.c" + } +} + +LiveChartPoints* +live_chart_line_draw_line (LiveChartLine* self, + LiveChartPoints* points, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartPath* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPoint first_point = {0}; + LiveChartPoint _tmp2_ = {0}; + LiveChartPath* _tmp3_; + LiveChartPath* _tmp4_; + LiveChartPoint _tmp5_; + LiveChartPoint _tmp6_; + LiveChartPoints* _tmp18_; + LiveChartPoints* result; +#line 21 "../src/line.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 21 "../src/line.vala" + g_return_val_if_fail (points != NULL, NULL); +#line 21 "../src/line.vala" + g_return_val_if_fail (ctx != NULL, NULL); +#line 21 "../src/line.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 22 "../src/line.vala" + _tmp0_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 22 "../src/line.vala" + _tmp1_ = _tmp0_; +#line 22 "../src/line.vala" + live_chart_path_configure (_tmp1_, ctx); +#line 24 "../src/line.vala" + live_chart_points_first (points, &_tmp2_); +#line 24 "../src/line.vala" + first_point = _tmp2_; +#line 26 "../src/line.vala" + live_chart_line_update_bounding_box (self, points, config); +#line 27 "../src/line.vala" + live_chart_serie_renderer_debug ((LiveChartSerieRenderer*) self, ctx); +#line 29 "../src/line.vala" + _tmp3_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 29 "../src/line.vala" + _tmp4_ = _tmp3_; +#line 29 "../src/line.vala" + live_chart_path_configure (_tmp4_, ctx); +#line 31 "../src/line.vala" + _tmp5_ = first_point; +#line 31 "../src/line.vala" + _tmp6_ = first_point; +#line 31 "../src/line.vala" + cairo_move_to (ctx, _tmp5_.x, _tmp6_.y); +#line 179 "line.c" + { + gint pos = 0; +#line 32 "../src/line.vala" + pos = 0; +#line 184 "line.c" + { + gboolean _tmp7_ = FALSE; +#line 32 "../src/line.vala" + _tmp7_ = TRUE; +#line 32 "../src/line.vala" + while (TRUE) { +#line 191 "line.c" + gint _tmp9_; + gint _tmp10_; + LiveChartPoint current_point = {0}; + LiveChartPoint _tmp11_ = {0}; + LiveChartPoint next_point = {0}; + LiveChartPoint _tmp12_ = {0}; + LiveChartPoint _tmp13_; + LiveChartPoint _tmp16_; + LiveChartPoint _tmp17_; +#line 32 "../src/line.vala" + if (!_tmp7_) { +#line 203 "line.c" + gint _tmp8_; +#line 32 "../src/line.vala" + _tmp8_ = pos; +#line 32 "../src/line.vala" + pos = _tmp8_ + 1; +#line 209 "line.c" + } +#line 32 "../src/line.vala" + _tmp7_ = FALSE; +#line 32 "../src/line.vala" + _tmp9_ = live_chart_points_get_size (points); +#line 32 "../src/line.vala" + _tmp10_ = _tmp9_; +#line 32 "../src/line.vala" + if (!(pos < (_tmp10_ - 1))) { +#line 32 "../src/line.vala" + break; +#line 221 "line.c" + } +#line 33 "../src/line.vala" + live_chart_points_get (points, pos, &_tmp11_); +#line 33 "../src/line.vala" + current_point = _tmp11_; +#line 34 "../src/line.vala" + live_chart_points_after (points, pos, &_tmp12_); +#line 34 "../src/line.vala" + next_point = _tmp12_; +#line 35 "../src/line.vala" + _tmp13_ = current_point; +#line 35 "../src/line.vala" + if (live_chart_serie_renderer_is_out_of_area ((LiveChartSerieRenderer*) self, &_tmp13_)) { +#line 235 "line.c" + LiveChartPoint _tmp14_; + LiveChartPoint _tmp15_; +#line 36 "../src/line.vala" + _tmp14_ = current_point; +#line 36 "../src/line.vala" + _tmp15_ = current_point; +#line 36 "../src/line.vala" + cairo_move_to (ctx, _tmp14_.x, _tmp15_.y); +#line 37 "../src/line.vala" + continue; +#line 246 "line.c" + } +#line 40 "../src/line.vala" + _tmp16_ = next_point; +#line 40 "../src/line.vala" + _tmp17_ = next_point; +#line 40 "../src/line.vala" + cairo_line_to (ctx, _tmp16_.x, _tmp17_.y); +#line 254 "line.c" + } + } + } +#line 43 "../src/line.vala" + _tmp18_ = _g_object_ref0 (points); +#line 43 "../src/line.vala" + result = _tmp18_; +#line 43 "../src/line.vala" + return result; +#line 264 "line.c" +} + +static void +live_chart_line_update_bounding_box (LiveChartLine* self, + LiveChartPoints* points, + LiveChartConfig* config) +{ + LiveChartPoint _tmp0_ = {0}; + LiveChartBounds* _tmp1_; + LiveChartBounds* _tmp2_; + gdouble _tmp3_; + gdouble _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint _tmp6_ = {0}; + LiveChartBounds* _tmp7_; + LiveChartBounds* _tmp8_; + gdouble _tmp9_; + gdouble _tmp10_; + LiveChartBounds* _tmp11_; + LiveChartBounds* _tmp12_; + gdouble _tmp13_; + gdouble _tmp14_; + LiveChartBoundingBox _tmp15_ = {0}; +#line 46 "../src/line.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/line.vala" + g_return_if_fail (points != NULL); +#line 46 "../src/line.vala" + g_return_if_fail (config != NULL); +#line 47 "../src/line.vala" + live_chart_points_first (points, &_tmp0_); +#line 47 "../src/line.vala" + _tmp1_ = live_chart_points_get_bounds (points); +#line 47 "../src/line.vala" + _tmp2_ = _tmp1_; +#line 47 "../src/line.vala" + _tmp3_ = live_chart_bounds_get_lower (_tmp2_); +#line 47 "../src/line.vala" + _tmp4_ = _tmp3_; +#line 47 "../src/line.vala" + live_chart_points_last (points, &_tmp5_); +#line 47 "../src/line.vala" + live_chart_points_first (points, &_tmp6_); +#line 47 "../src/line.vala" + _tmp7_ = live_chart_points_get_bounds (points); +#line 47 "../src/line.vala" + _tmp8_ = _tmp7_; +#line 47 "../src/line.vala" + _tmp9_ = live_chart_bounds_get_upper (_tmp8_); +#line 47 "../src/line.vala" + _tmp10_ = _tmp9_; +#line 47 "../src/line.vala" + _tmp11_ = live_chart_points_get_bounds (points); +#line 47 "../src/line.vala" + _tmp12_ = _tmp11_; +#line 47 "../src/line.vala" + _tmp13_ = live_chart_bounds_get_lower (_tmp12_); +#line 47 "../src/line.vala" + _tmp14_ = _tmp13_; +#line 47 "../src/line.vala" + memset (&_tmp15_, 0, sizeof (LiveChartBoundingBox)); +#line 47 "../src/line.vala" + _tmp15_.x = _tmp0_.x; +#line 47 "../src/line.vala" + _tmp15_.y = _tmp4_; +#line 47 "../src/line.vala" + _tmp15_.width = _tmp5_.x - _tmp6_.x; +#line 47 "../src/line.vala" + _tmp15_.height = _tmp10_ - _tmp14_; +#line 47 "../src/line.vala" + ((LiveChartSerieRenderer*) self)->bounding_box = _tmp15_; +#line 336 "line.c" +} + +static void +live_chart_line_class_init (LiveChartLineClass * klass, + gpointer klass_data) +{ +#line 4 "../src/line.vala" + live_chart_line_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_line_real_draw; +#line 347 "line.c" +} + +static void +live_chart_line_instance_init (LiveChartLine * self, + gpointer klass) +{ +} + +static GType +live_chart_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartLine), 0, (GInstanceInitFunc) live_chart_line_instance_init, NULL }; + GType live_chart_line_type_id; + live_chart_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartLine", &g_define_type_info, 0); + return live_chart_line_type_id; +} + +GType +live_chart_line_get_type (void) +{ + static volatile gsize live_chart_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_line_type_id__once)) { + GType live_chart_line_type_id; + live_chart_line_type_id = live_chart_line_get_type_once (); + g_once_init_leave (&live_chart_line_type_id__once, live_chart_line_type_id); + } + return live_chart_line_type_id__once; +} + diff --git a/iPDC/lib/liblivechart.so.p/line_area.c b/iPDC/lib/liblivechart.so.p/line_area.c new file mode 100644 index 0000000..4bf389e --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/line_area.c @@ -0,0 +1,308 @@ +/* line_area.c generated by valac 0.56.0, the Vala compiler + * generated from line_area.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_LINE_AREA_0_PROPERTY, + LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY, + LIVE_CHART_LINE_AREA_NUM_PROPERTIES +}; +static GParamSpec* live_chart_line_area_properties[LIVE_CHART_LINE_AREA_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +struct _LiveChartLineAreaPrivate { + gdouble _area_alpha; +}; + +static gint LiveChartLineArea_private_offset; +static gpointer live_chart_line_area_parent_class = NULL; + +static void live_chart_line_area_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_line_area_finalize (GObject * obj); +static GType live_chart_line_area_get_type_once (void); +static void _vala_live_chart_line_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_line_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); + +static inline gpointer +live_chart_line_area_get_instance_private (LiveChartLineArea* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartLineArea_private_offset); +} + +LiveChartLineArea* +live_chart_line_area_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartLineArea * self = NULL; +#line 8 "../src/line_area.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 9 "../src/line_area.vala" + self = (LiveChartLineArea*) live_chart_line_construct (object_type, values); +#line 8 "../src/line_area.vala" + return self; +#line 58 "line_area.c" +} + +LiveChartLineArea* +live_chart_line_area_new (LiveChartValues* values) +{ +#line 8 "../src/line_area.vala" + return live_chart_line_area_construct (LIVE_CHART_TYPE_LINE_AREA, values); +#line 66 "line_area.c" +} + +static void +live_chart_line_area_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartLineArea * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 12 "../src/line_area.vala" + self = (LiveChartLineArea*) base; +#line 12 "../src/line_area.vala" + g_return_if_fail (ctx != NULL); +#line 12 "../src/line_area.vala" + g_return_if_fail (config != NULL); +#line 13 "../src/line_area.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 13 "../src/line_area.vala" + _tmp1_ = _tmp0_; +#line 13 "../src/line_area.vala" + if (_tmp1_) { +#line 89 "line_area.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 14 "../src/line_area.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 14 "../src/line_area.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 14 "../src/line_area.vala" + points = _tmp3_; +#line 15 "../src/line_area.vala" + _tmp4_ = points; +#line 15 "../src/line_area.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 15 "../src/line_area.vala" + _tmp6_ = _tmp5_; +#line 15 "../src/line_area.vala" + if (_tmp6_ > 0) { +#line 110 "line_area.c" + LiveChartPoints* _tmp7_; + LiveChartPoints* _tmp8_; + LiveChartPoints* _tmp9_; + LiveChartArea* area = NULL; + LiveChartPoints* _tmp10_; + GdkRGBA _tmp11_ = {0}; + GdkRGBA _tmp12_; + gdouble _tmp13_; + LiveChartArea* _tmp14_; + LiveChartArea* _tmp15_; +#line 16 "../src/line_area.vala" + _tmp7_ = points; +#line 16 "../src/line_area.vala" + _tmp8_ = live_chart_line_draw_line ((LiveChartLine*) self, _tmp7_, ctx, config); +#line 16 "../src/line_area.vala" + _tmp9_ = _tmp8_; +#line 16 "../src/line_area.vala" + _g_object_unref0 (_tmp9_); +#line 17 "../src/line_area.vala" + cairo_stroke_preserve (ctx); +#line 19 "../src/line_area.vala" + _tmp10_ = points; +#line 19 "../src/line_area.vala" + live_chart_serie_renderer_get_main_color ((LiveChartSerieRenderer*) self, &_tmp11_); +#line 19 "../src/line_area.vala" + _tmp12_ = _tmp11_; +#line 19 "../src/line_area.vala" + _tmp13_ = self->priv->_area_alpha; +#line 19 "../src/line_area.vala" + _tmp14_ = live_chart_area_new (_tmp10_, &_tmp12_, _tmp13_); +#line 19 "../src/line_area.vala" + area = _tmp14_; +#line 20 "../src/line_area.vala" + _tmp15_ = area; +#line 20 "../src/line_area.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp15_, ctx, config); +#line 21 "../src/line_area.vala" + cairo_fill (ctx); +#line 15 "../src/line_area.vala" + _g_object_unref0 (area); +#line 151 "line_area.c" + } +#line 24 "../src/line_area.vala" + cairo_stroke (ctx); +#line 13 "../src/line_area.vala" + _g_object_unref0 (points); +#line 157 "line_area.c" + } +} + +gdouble +live_chart_line_area_get_area_alpha (LiveChartLineArea* self) +{ + gdouble result; +#line 6 "../src/line_area.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 6 "../src/line_area.vala" + result = self->priv->_area_alpha; +#line 6 "../src/line_area.vala" + return result; +#line 171 "line_area.c" +} + +void +live_chart_line_area_set_area_alpha (LiveChartLineArea* self, + gdouble value) +{ + gdouble old_value; +#line 6 "../src/line_area.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/line_area.vala" + old_value = live_chart_line_area_get_area_alpha (self); +#line 6 "../src/line_area.vala" + if (old_value != value) { +#line 6 "../src/line_area.vala" + self->priv->_area_alpha = value; +#line 6 "../src/line_area.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_line_area_properties[LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY]); +#line 189 "line_area.c" + } +} + +static void +live_chart_line_area_class_init (LiveChartLineAreaClass * klass, + gpointer klass_data) +{ +#line 4 "../src/line_area.vala" + live_chart_line_area_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/line_area.vala" + g_type_class_adjust_private_offset (klass, &LiveChartLineArea_private_offset); +#line 4 "../src/line_area.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_line_area_real_draw; +#line 4 "../src/line_area.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_line_area_get_property; +#line 4 "../src/line_area.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_line_area_set_property; +#line 4 "../src/line_area.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_line_area_finalize; +#line 4 "../src/line_area.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY, live_chart_line_area_properties[LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY] = g_param_spec_double ("area-alpha", "area-alpha", "area-alpha", -G_MAXDOUBLE, G_MAXDOUBLE, 0.1, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 211 "line_area.c" +} + +static void +live_chart_line_area_instance_init (LiveChartLineArea * self, + gpointer klass) +{ +#line 4 "../src/line_area.vala" + self->priv = live_chart_line_area_get_instance_private (self); +#line 6 "../src/line_area.vala" + self->priv->_area_alpha = 0.1; +#line 222 "line_area.c" +} + +static void +live_chart_line_area_finalize (GObject * obj) +{ + LiveChartLineArea * self; +#line 4 "../src/line_area.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_LINE_AREA, LiveChartLineArea); +#line 4 "../src/line_area.vala" + G_OBJECT_CLASS (live_chart_line_area_parent_class)->finalize (obj); +#line 233 "line_area.c" +} + +static GType +live_chart_line_area_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartLineAreaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_line_area_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartLineArea), 0, (GInstanceInitFunc) live_chart_line_area_instance_init, NULL }; + GType live_chart_line_area_type_id; + live_chart_line_area_type_id = g_type_register_static (LIVE_CHART_TYPE_LINE, "LiveChartLineArea", &g_define_type_info, 0); + LiveChartLineArea_private_offset = g_type_add_instance_private (live_chart_line_area_type_id, sizeof (LiveChartLineAreaPrivate)); + return live_chart_line_area_type_id; +} + +GType +live_chart_line_area_get_type (void) +{ + static volatile gsize live_chart_line_area_type_id__once = 0; + if (g_once_init_enter (&live_chart_line_area_type_id__once)) { + GType live_chart_line_area_type_id; + live_chart_line_area_type_id = live_chart_line_area_get_type_once (); + g_once_init_leave (&live_chart_line_area_type_id__once, live_chart_line_area_type_id); + } + return live_chart_line_area_type_id__once; +} + +static void +_vala_live_chart_line_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartLineArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_LINE_AREA, LiveChartLineArea); +#line 4 "../src/line_area.vala" + switch (property_id) { +#line 4 "../src/line_area.vala" + case LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY: +#line 4 "../src/line_area.vala" + g_value_set_double (value, live_chart_line_area_get_area_alpha (self)); +#line 4 "../src/line_area.vala" + break; +#line 274 "line_area.c" + default: +#line 4 "../src/line_area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/line_area.vala" + break; +#line 280 "line_area.c" + } +} + +static void +_vala_live_chart_line_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartLineArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_LINE_AREA, LiveChartLineArea); +#line 4 "../src/line_area.vala" + switch (property_id) { +#line 4 "../src/line_area.vala" + case LIVE_CHART_LINE_AREA_AREA_ALPHA_PROPERTY: +#line 4 "../src/line_area.vala" + live_chart_line_area_set_area_alpha (self, g_value_get_double (value)); +#line 4 "../src/line_area.vala" + break; +#line 300 "line_area.c" + default: +#line 4 "../src/line_area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/line_area.vala" + break; +#line 306 "line_area.c" + } +} + diff --git a/iPDC/lib/liblivechart.so.p/max_bound_line.c b/iPDC/lib/liblivechart.so.p/max_bound_line.c new file mode 100644 index 0000000..4437437 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/max_bound_line.c @@ -0,0 +1,249 @@ +/* max_bound_line.c generated by valac 0.56.0, the Vala compiler + * generated from max_bound_line.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_MAX_BOUND_LINE_0_PROPERTY, + LIVE_CHART_MAX_BOUND_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_max_bound_line_properties[LIVE_CHART_MAX_BOUND_LINE_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +static gpointer live_chart_max_bound_line_parent_class = NULL; + +static void live_chart_max_bound_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static GType live_chart_max_bound_line_get_type_once (void); + +LiveChartMaxBoundLine* +live_chart_max_bound_line_construct (GType object_type) +{ + LiveChartMaxBoundLine * self = NULL; + LiveChartValues* _tmp0_; +#line 8 "../src/max_bound_line.vala" + self = (LiveChartMaxBoundLine*) live_chart_serie_renderer_construct (object_type); +#line 9 "../src/max_bound_line.vala" + _tmp0_ = live_chart_values_new (1000); +#line 9 "../src/max_bound_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 9 "../src/max_bound_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 7 "../src/max_bound_line.vala" + return self; +#line 42 "max_bound_line.c" +} + +LiveChartMaxBoundLine* +live_chart_max_bound_line_new (void) +{ +#line 7 "../src/max_bound_line.vala" + return live_chart_max_bound_line_construct (LIVE_CHART_TYPE_MAX_BOUND_LINE); +#line 50 "max_bound_line.c" +} + +LiveChartMaxBoundLine* +live_chart_max_bound_line_construct_from_serie (GType object_type, + LiveChartSerie* serie) +{ + LiveChartMaxBoundLine * self = NULL; + LiveChartValues* _tmp0_; +#line 12 "../src/max_bound_line.vala" + g_return_val_if_fail (serie != NULL, NULL); +#line 12 "../src/max_bound_line.vala" + self = (LiveChartMaxBoundLine*) live_chart_serie_renderer_construct (object_type); +#line 13 "../src/max_bound_line.vala" + _tmp0_ = live_chart_serie_get_values (serie); +#line 13 "../src/max_bound_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 13 "../src/max_bound_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 12 "../src/max_bound_line.vala" + return self; +#line 71 "max_bound_line.c" +} + +LiveChartMaxBoundLine* +live_chart_max_bound_line_new_from_serie (LiveChartSerie* serie) +{ +#line 12 "../src/max_bound_line.vala" + return live_chart_max_bound_line_construct_from_serie (LIVE_CHART_TYPE_MAX_BOUND_LINE, serie); +#line 79 "max_bound_line.c" +} + +static void +live_chart_max_bound_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartMaxBoundLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 16 "../src/max_bound_line.vala" + self = (LiveChartMaxBoundLine*) base; +#line 16 "../src/max_bound_line.vala" + g_return_if_fail (ctx != NULL); +#line 16 "../src/max_bound_line.vala" + g_return_if_fail (config != NULL); +#line 17 "../src/max_bound_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 17 "../src/max_bound_line.vala" + _tmp1_ = _tmp0_; +#line 17 "../src/max_bound_line.vala" + if (_tmp1_) { +#line 102 "max_bound_line.c" + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp2_ = {0}; + gdouble _tmp3_ = 0.0; + LiveChartValues* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gdouble y = 0.0; + LiveChartPath* _tmp19_; + LiveChartPath* _tmp20_; + LiveChartBoundaries _tmp21_; + LiveChartBoundary _tmp22_; + LiveChartBoundaries _tmp23_; + LiveChartBoundary _tmp24_; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartBoundaries _tmp27_; + LiveChartBoundary _tmp28_; +#line 18 "../src/max_bound_line.vala" + live_chart_config_boundaries (config, &_tmp2_); +#line 18 "../src/max_bound_line.vala" + boundaries = _tmp2_; +#line 19 "../src/max_bound_line.vala" + _tmp4_ = ((LiveChartSerieRenderer*) self)->values; +#line 19 "../src/max_bound_line.vala" + _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_); +#line 19 "../src/max_bound_line.vala" + _tmp6_ = _tmp5_; +#line 19 "../src/max_bound_line.vala" + if (_tmp6_ == 0) { +#line 132 "max_bound_line.c" + LiveChartYAxis* _tmp7_; + LiveChartBounds* _tmp8_; + LiveChartBounds* _tmp9_; + gdouble _tmp10_; + gdouble _tmp11_; + LiveChartYAxis* _tmp12_; +#line 19 "../src/max_bound_line.vala" + _tmp7_ = config->y_axis; +#line 19 "../src/max_bound_line.vala" + _tmp8_ = live_chart_yaxis_get_bounds (_tmp7_); +#line 19 "../src/max_bound_line.vala" + _tmp9_ = _tmp8_; +#line 19 "../src/max_bound_line.vala" + _tmp10_ = live_chart_bounds_get_upper (_tmp9_); +#line 19 "../src/max_bound_line.vala" + _tmp11_ = _tmp10_; +#line 19 "../src/max_bound_line.vala" + _tmp12_ = config->y_axis; +#line 19 "../src/max_bound_line.vala" + _tmp3_ = _tmp11_ * live_chart_yaxis_get_ratio (_tmp12_); +#line 19 "../src/max_bound_line.vala" + _g_object_unref0 (_tmp9_); +#line 155 "max_bound_line.c" + } else { + LiveChartValues* _tmp13_; + LiveChartBounds* _tmp14_; + LiveChartBounds* _tmp15_; + gdouble _tmp16_; + gdouble _tmp17_; + LiveChartYAxis* _tmp18_; +#line 19 "../src/max_bound_line.vala" + _tmp13_ = ((LiveChartSerieRenderer*) self)->values; +#line 19 "../src/max_bound_line.vala" + _tmp14_ = live_chart_values_get_bounds (_tmp13_); +#line 19 "../src/max_bound_line.vala" + _tmp15_ = _tmp14_; +#line 19 "../src/max_bound_line.vala" + _tmp16_ = live_chart_bounds_get_upper (_tmp15_); +#line 19 "../src/max_bound_line.vala" + _tmp17_ = _tmp16_; +#line 19 "../src/max_bound_line.vala" + _tmp18_ = config->y_axis; +#line 19 "../src/max_bound_line.vala" + _tmp3_ = _tmp17_ * live_chart_yaxis_get_ratio (_tmp18_); +#line 177 "max_bound_line.c" + } +#line 19 "../src/max_bound_line.vala" + y = _tmp3_; +#line 20 "../src/max_bound_line.vala" + _tmp19_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 20 "../src/max_bound_line.vala" + _tmp20_ = _tmp19_; +#line 20 "../src/max_bound_line.vala" + live_chart_path_configure (_tmp20_, ctx); +#line 21 "../src/max_bound_line.vala" + _tmp21_ = boundaries; +#line 21 "../src/max_bound_line.vala" + _tmp22_ = _tmp21_.x; +#line 21 "../src/max_bound_line.vala" + _tmp23_ = boundaries; +#line 21 "../src/max_bound_line.vala" + _tmp24_ = _tmp23_.y; +#line 21 "../src/max_bound_line.vala" + cairo_move_to (ctx, (gdouble) _tmp22_.min, _tmp24_.max - y); +#line 22 "../src/max_bound_line.vala" + _tmp25_ = boundaries; +#line 22 "../src/max_bound_line.vala" + _tmp26_ = _tmp25_.x; +#line 22 "../src/max_bound_line.vala" + _tmp27_ = boundaries; +#line 22 "../src/max_bound_line.vala" + _tmp28_ = _tmp27_.y; +#line 22 "../src/max_bound_line.vala" + cairo_line_to (ctx, (gdouble) _tmp26_.max, _tmp28_.max - y); +#line 23 "../src/max_bound_line.vala" + cairo_stroke (ctx); +#line 209 "max_bound_line.c" + } +} + +static void +live_chart_max_bound_line_class_init (LiveChartMaxBoundLineClass * klass, + gpointer klass_data) +{ +#line 5 "../src/max_bound_line.vala" + live_chart_max_bound_line_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/max_bound_line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_max_bound_line_real_draw; +#line 221 "max_bound_line.c" +} + +static void +live_chart_max_bound_line_instance_init (LiveChartMaxBoundLine * self, + gpointer klass) +{ +} + +static GType +live_chart_max_bound_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartMaxBoundLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_max_bound_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartMaxBoundLine), 0, (GInstanceInitFunc) live_chart_max_bound_line_instance_init, NULL }; + GType live_chart_max_bound_line_type_id; + live_chart_max_bound_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartMaxBoundLine", &g_define_type_info, 0); + return live_chart_max_bound_line_type_id; +} + +GType +live_chart_max_bound_line_get_type (void) +{ + static volatile gsize live_chart_max_bound_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_max_bound_line_type_id__once)) { + GType live_chart_max_bound_line_type_id; + live_chart_max_bound_line_type_id = live_chart_max_bound_line_get_type_once (); + g_once_init_leave (&live_chart_max_bound_line_type_id__once, live_chart_max_bound_line_type_id); + } + return live_chart_max_bound_line_type_id__once; +} + diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_area.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_area.c.o new file mode 100644 index 0000000000000000000000000000000000000000..62729ca58383e166366150094ac9e800ce37e5a0 GIT binary patch literal 45960 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 M7cvr0Wh(!F0GLGh2LJ#7 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_bar.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_bar.c.o new file mode 100644 index 0000000000000000000000000000000000000000..e512c9697318cdf73588b984da04a6e41de91165 GIT binary patch literal 40360 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

{B3)dVG6^f1^IR0D01VEJu-$7)kJ^zOz~J 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 KQqGQK{r?L{3cz^) literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_bezier.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_bezier.c.o new file mode 100644 index 0000000000000000000000000000000000000000..343ac1eb13cc41f3ee9db1b09be28d6cf19f18c8 GIT binary patch literal 25920 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 N#Q%R2s?;;}|348uC=mbv literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_bounds.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_bounds.c.o new file mode 100644 index 0000000000000000000000000000000000000000..8d5e4e80dc426157ecdc54957d9d21a441f03443 GIT binary patch literal 33768 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%0Dfz%jfaW_O@N@_XKtY*7-97wLY)k_O4ue6cl87 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 Uc)Uqh|32OzzU@$&gs%U80ZF6h)c^nh literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_chart.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_chart.c.o new file mode 100644 index 0000000000000000000000000000000000000000..fdefbd7a252a1404678b1e0f6990c770b217b6f4 GIT binary patch literal 116264 zcmdqK33#1VwLkoh=}FTxX_BVtkoI&)d)m?wCdaHsK#Y?TC6;!_8T5IojNP^}5^?u*~ z`OfoXzkBU*?X}llYwfl7oA;J@)hf$04gE8X%MBmWsfKartA1)JCzl$NjETnYbEdx5 zlo)(5afeH(iNRy1=y~c`+%L7>u7y?2Vs&I#@i~n%L`<#JIKi*(FE4 zI`LB|i$C-dKZ)qc#O|X5le}zca`(~ns3U~yZ`>n<3E*j`dfs^B4OBXfN~aTp!?4&Z zxbJN`+nShPz+I>#PfgBYDrJIOirxH?lIf%F~R2n#KNAAE$lty1o zn3QVNia(zi{5GM}HP$c&BT|BA^QBRkTI%5| zL?QISsnWe+#{ZBSyyHUEsq{BOv6CYei=X;Rt01fD5k*7%PdF|Q;<(%^AUG}$;E3s|TTb|e zXqrnCr|9qma#8B3#NZD&B~*~+Oo+d0`}5~!zb!I1=i<^;=n@=&QSdA@5vOXt5u)kE z2h4b#6bO=v4#(nWsaOb8j~CD6j6-8o>zu1)1&WE=`LiUs5kpO*59n%hhd-KQZy10c$#n!ae%>MBwUW2YLEpE zfdefth_WO>(h~uqnAa*d^&5NNZ_ItjA=2dBb{h>cNS*;=29P1XBY-7~-9vl-KD`!F zQ~!tbB7{ys+lZo5+9t90>YyqlQH+&*dY56+Go*27ah#$yF#6MYo_>UM-k*MSI_L4+ zU9XurA3U1#Z%4rj&6EcQil7{|M)4voY6Q^qqReBZMNIxTU!vT`;8S0Xp&T<i`WG5x?FnhEsZAbN|+?V(2S&^TyA^LD@V^Ha^@YS zB}UVJ_)Jc&A(BCwD#G#rFN~xIPoO;hScg7ObrXB3v*$yr|5*G4cOS4NO_dT-N{gLP5Fj_X`VfAHjB{AFg1#NgwJN1pvt z!!Pc?=SdLec;ZjLP7Iz%Jbrdm;_*LUk(i5WG|{Iq={cW`zl@2W%dnbwe<^#s3*%+5 zt_ZX}&Ar}{eJcwBwl5|_-~9{p^|APAO7q2fP*g)o?-{J#S2Y;_$Aoo;#T4Fi zZVLaH=Hj0z)(>KEAj7%DR5=yogC($z2%>PFcedRwuD$wSf5}o!!Z*iyK@hXJrK4R9OKn9$jG@(Srdmm9#eL}OZkG1mofM?G~h!dJ`R-)K0o-KM~E1Dm!Nwl zzCDhf594_l&l4;~b8g#Bgp;J_p+F?5d>D);Z0=b_4r z__K%_8yt86sGT~u(fu}{ehOMRwzsqhWXlVH;3Xz6+cPRY`1s!V3m`43Top^~9Zv<4 z&>nY;Zz6O8d*s1#XoQgEbnD9piBAR}+sf+Ui@p5#&?Y>B%ZTlg-KA)bdq1{2;YaKI z=rw+HlOOHX(OuljTim~1?EtS`j}by|vBrFOV-FG95oIy5>BR6s9v#-tap^}Mx*sk!Qa?1n6IA1l4-p@r1BL<;YwvE!_z*D% zN)taN20ui+gwn(&NF;Vj9NYaop^2Z5=W=A86dd`Xm%`xgQH)q-G<=C55L2Rr1E2sdjgs~n!Pd_*h-{{kjldu zjFXT=((b6#43|BKvWNV#By%D0cE?64dlY4l`(;m{ERuFF9;xg}ls)B_JMR5POC1p2?YaV(;z?1bQ0K@x9zL?<25{*vmKrdI5PSu@SiW=V)>hXxW|<`w{-W zgTLdU4T8$|RMK7{(ctb}!E!541Z^^Q7jepm04b^!T z&){ZNs}|b&aO3CNn%v6EfHtsN;M3+5f0xEjraKVBJRdvt_#bK1+#BXxkbv@-fqW0v z4d|p}w8BWAs}i(n$W4d_;Z%R|`g;SYvncDvw@w-DQ3Pd5AsH3={{+$~b7W-FY}Tat zbW|9$ej`wzp&lRK0=Kx-Izaz`M~ zIl0HPhG4Cq6e4P_cD?rQ5EA>`M+Lu9N4%=hxMO@Sse9Q~56in0ZOQ(3c)ib(fQR>* z4XLstzu;B_Hn_jQz1R>8i#4KQlm>tF6_PF*#s7`=v4#F$Z6EfK*Z#gCrsA%bA+VK4 zT)8=bf9Fi$HJ22i9c1smkNG@<~KSh2ulTB##<|X!thFZtxy^7 zkVSxCVgHbY^1PD{0m22B3ls993G?AzI+VPV&2$8zl`i>BC-bHz{2(zL+VU9grEd{|)M8+g4lnYla~FA+ z6aiLDsl#}lf(vyp{vT)?LK0ngt1`j+c&2M0kvD&IJW;M8@YwAmiUFqR9C7iu_+kMw$fg*VTDl+k%!&&3$PV zw)OS(^ewn{pt*0eQH9KM%HtqTIYx6=S5HfGy0fP{I{mU}O;c5s(bCi1-r3=S{hc?o zEl|bUjMl#9>y7@lu694at*^7qgBC7a)Zf>#h*4O0U2|8npw`~m)fO%3za-k#*^Nl+ zCDDQIwynKwE$Oz_DC2kuvZJw*{_~JK*BGgMOY=a-ru0aqTY9>>&{S{`)IfLh79TMl zbF{NR+TD|m_O&&4VOXuvZEb0zx4Xkgc>`!kZ}s9GeVwhw#^#pI9eq6m-K|DfTSprn zVLBSUeLcNxed%p9QVfv>*V&Dscec`yC>)5k_w+?)l=RPt_OwUS+j`rgb4vQ>pcp?< zuPV7Vo+?k2)ih8@&)ZY5F?f9YTmN3wfW+dZb_cRKPjF(9rkqhr~3w4(r=RA+}fJr*8fgEXfe=s zuKd)-ZK=-g*0!xu@J+&D_)-4@-OblG_qCZf~B z#6S8sEWfXyK{wmxvk2>BRupRPVUzoRXkVm6c_!|L~+BcJLAIe6&&QvJV| zPxTes69yypAISFxG9*GK>p$bSo@~ee!LRg9%D(q1!*C5VLfMy6z}7ZJ^zZl6bj&cO zMA$5u5*bBlD;&48J8fLJ0&$%~+XQM6KWEiTjhJ1%-Pk$zn*7 z78c#ZN!*JhEi3#CB{_klE5_47w`7-2xX_E&as0w(bb>pN>s}Uden(9RI)xN>&gwE5 z3v(%<(8Bz1iy4b@2`z~)&h>iASdvS_mGq^#^S$!RCVCiTTr`o8l`p+<)j!&12 zOUB(mNs&NON6xRk8k@%7jcn&W1eZ%2*G~R4r5r|({U`$aRs@Da4zz4KF=1FGjs?uM zMwLvY3mZJ2xufPru$jq3Eo0RD(U;Q3W;*nOG3va`S`>%xGHcw&&@9I@=N4^5g~BTlNNbt%??jwi%UqBfM_d65nTC$!EXt)m zBZfm2ovSIhAHfxh;kfP5v!;I;X=BiW;d~9Tu@?b_?;;`;;6hm?ML$J~^qn=w#cJUm zvgVFq+6gc(i!#t1)#iF*9xwO`;ttKLLl{qWX}YtQnXM>^LV$435k}$^cxg6fe;dTz+#^Kc*UdG{h0ox##%>e9>@75u{8chi0 z>@(-mniJrI=G<14DXd4pvrv@VvlnqDd~V<9IN}Pp#eEE`I-)9m$eeo@@=B4dQa)_X zeGn-uG9o#L%*Zi7=oMXl+RWsJRLQ%|x&Psp{Ja_YomcXUX3ip(LxSGFm~(ARcp(+w zh7&oLI+6R3Bn@BgOnM*nAW*3@=>k-yp`z0=XHprUT!AW_Ni~3q1d2P8-UcWt&?;xr z9iUN6pro|9SfJGcEfr{uGiej*Ef=W9ne-T-QZ=l5&AEpOSwfGIEzNP<2n|PyXSid( z3qV1m1X9RG+_5hsPa&J-jx|7Qh3ptNm!yY6HrpK=L!Lr*oa8BF^W3p(khk1$?ghbw zgp=$%l1c)^g1|mIkEE33d^8Ar$<7-9HqH$QvTsLVbHGc|p=q7K%OhukV;)8>8UgAY zMmf|Jne5o_qjo+Giex`S?NDGi#BI(Kh-Uwa5;>5Z6y^K?iDS7l42E+J=XaDwQfDTm zaa$zbYz8T2IK;P(i)=1OgpihpmRo?FvPkZLP5jJS^SaR_NH}_Z78U2{)~sndx@}Ck zj@~fti|C9C+&J!W9ldD`NdQjWp53jZH_IrB>d?_M_+#B;Dq%J5ZgU>k1Z5F$D8kC- z_?w9=MPM$oV;R-OuaqU&4*a%?6dQNQrv5;7!x;C(^p)s`S9fCEcfNx-ukLZ*%cH4O z!1wcr$0CyRTpnSTE5Hx3XzdmW@H_)i0sb?OCL|`nj~Q4jz)!MBZY~$#r+GxuQUU&p z>04nq%g_Vkmv_~;gJ?!1ZvF%2Uy#AWQ$&$c`48GZ*EI^hGOqxw0R&zJnPz4+AYNky zS*8q1ps^-*Eo-bG$IK(Fa;3q7ug=?`8`)D(Yi8zRAxO0=&0JbP3TiZSS^Y@fdNcO~ z3d%w)c)OXq3y>_-f@{p&6riY-Y&CN~21piaL7PCbPzyTD+*gn%a-?9hnd87IQ7ZL% z%p9th5U9@_P13qfpaFACCQ7bXLpaKGU@8_o&cl)T6Z0-W3rwHff*odru#yILnmNP( z3fg7n&`N@4ZAFRfn-SO?@RH$0#-$zN3uh0NA=Cn8cs5R&NlubmDZ0X?-NGu|`FcBHbj^hE3e^2o|Bo$J+XtD86 zyaRDyZ5ZR9%%s(=fUmPG6+R#T6a$JO3U8Y5PSjz8gDGvv~rlq;b;!CI2^-aHiu+}VhkLL1Ruxo zJPzr$jA0aTIG)2o4kvI}#Nk8^CviBL!zmmVb2ybllA~A`98TwO28S~_oW)@YhqF1P zTVq%`9Ez<)R~8L}=h2|cJ%$PwaD1WRka5YgRy3*Lr^x2`#1G_^fO;ICG=Fvyaj{1) z)2WlMo$9@G2UT8$|eXOSHu z=JAwE7|4)fmolI%_sQ>`^X+i!d*=LCIAL(k>2Sh(=a^%IY&rRTbMkb8aLMEambnQ@ zOpAYrON0=`H%(8YIp+DI;#1D%V&Nr9D z(1F5vw-xE}x_fu1yFH=q21DK5ZWVT7bOox(TV~y;o2)Co--;}RgIF+mAk^fcP?Mhu zHTj^$Y*GM`QT%Bui%f$eh>YTgBp#La9=66@=#T6(7Vq{%R}_EN8hsN+e}R-dY>mAH zB}H=-e@x&<> zBOL{r3J--^d^ptNXF^o?tmLV29~PQKNpO5l=pQ4&@p*}>QU0qyY7W03keb6U+W8k^ zN22EN-|TU}04G!l<-R10teEwP(6~_z=3OQIK%dDIEB>J!Iq41NKSP80acD3<(c}Tb zKb2`JAcTKvXOWy%!}>4DQPX)+O{ePk-6b#k9lv5nYR79T{w~z&eGzD6Zw(X-DoE$VX~Z{gc;)mB@B$zKzCyWQtSz< zp7IoX<~l5k)WnUGHkT_@21|aaQCVI*+ljOl>XFAnsLTzaGB1S6e92QIKhMdV3c;mN zSr9^HVF;B)0$rd`xxM6Cbk0q+u}q%;dR~<>by79`L&_W`<%Qdu&~tV`UTRXyQAc=-@yha;uh)Ay)D$i+d~~( z9qQm6PQhuvgOro`G9;Pq;Jqc|(4<)<`14(sS)fGND*_t z)Qc*Dy>HGA-CbSrlTPG{iF!O=4|VrcsJmmK?v4vIPG;n3f${|UhGG?xbKi7)75y!V zM{`<{@r(emoK^^wZwsIn(z60Bm)4$jSnVnac*0>-t_`AnbJhTPrrb5fzjY$BC+VU5 zcW5ZDgobiDG?d?khH@q}l-~!2@&`eSZM|0|E<^dF05X(63802@RvS<`rasPpqeoi7M=zA)7JqEP3HL!B>CoeP>vU1pz{ zqQeJfUxLonQjfcldp%TEg;1#sp^^xpk_@4;I)us^g^KF#LnWU=2fq8D_`_2lLBdKb zUE`YKL3h-vQ)p{}-(Gh-ZK4)7cW*P^;}+1?jnnUN3u&jt@%OruXv4(u_qm0%o8kCA zw~)3W9N+I2lTFX@_q)YpATQk9w$1o}TR`?Dr+?5bBI}0ZA94%HI^+1A?nJUtIR0U` z=%kL{ONq%$uUbmRUDaY?~i%Ifv z{3C8L2`P>rbc;!XaQvfgF)cxkf6Of=KIQnw-C|-J!}$!t34F3syv#I-W($aZw?Llb z$KjiKPQ@J(bc+1n<{J6maEd5*2vcSehl|C*RQyiUehvI54uj$W)1-~=a5}2e+e|xw zd{z1()1*zr@Y0;3oKULf=S}-MzveeglZ?*4Uz2lPRsTDteb}%6E7K$s_N~;Cv4zs6(>P zd4Xc&z+%VN)D4rbLUZB}t3k|pRcB3`5*^T4Tz1;j0yrCfeh)HVIv_m>o z64uW7G7?1mPP@m7ya0&h^t1!kXm-E~bgwnNYldguOk2P3bhw?=M00vju1>pldL9x) zzfJp&6}b$MH1%Dp=wVb=(D$s#*P&shnWpu}lHqnfIQuHy&f;kiJF?qrC)3W$0HE3# zZAWiJJ4&rgyK}*Q-44&`v<`FX$8|$>)9!I187M6X9dIVp_zm6b6zxEkX!~jRIb%vu zO0@m7k2s@fmqaNzM>;4_g+Lz_C?Q-it9Nef`MyID?tjAWcjp3Zln&7)LrZb zF<9bGyd7CeC`=n=&Au9-us~-NEO3AVnkna13W&50(Z!)LId@Ww+Lptb=mX~C0Dv}r z90pfZ$T=-c68((*KEL+Q&EJk#Tb2E#{S2~Yr9{`7X2HyGS3-^G2GjntU+%A_dDW0| zjM(s_HKiIS*ud@;Ir^J%)#zuI zVKqt4+a}gPSR@3vdhAb-Q#ZZ6!gOc_|NQQV4nc*WZ+vBTX5fU=4J*Wg4E0| zhAI@ag`ph^>SpNQ71TRs05m+Splca&EGEg!KBjN3g3?TqA_WaFG(|zz7g!fzS`>66 z=Oq-heQYvHXNS_}&D`dC1>KteR}AzT1?|eGGtNy4x-FlG-m9S9oVQgu{H8C6?FZ!o zbX^$x7!vq^Bsy#N)0(Wa-aVddJY>nY~-+s!?hf)<8VEP z8#ug*L%LdF7;ooLu2{W;<0%fW;jo#*jU2Xc*verWhwU78aJY%XP7dG6;bsoIINZV^ z8BT`L!(lIn*K*j$VLyjy4hJ~Aj>GFY+{)oL4(S4+Vcf{!O&o6L@MaEg5y@P#)wF5V zi1I0Uk7>@F_dj17s;v*1_6t~9Y!{S#)0}@9nqs>kQ8Lw)RfpV>}KSwq3VwQ}vvS{Us4O5b5<^KwKV#Ac=TVn`wb^E8}8FT)l07Wp&o==Ui z^qjpQpkrn)8e0lkQ)D=ck?#sa6!L}9tnxXF zkg%M_xZIwF`GwTsam?y6CrufRWPy53Ru_8&>NiKPK*4Fkoe*e;nbnT|o)>7RnRO$elLFmlX6*xX zN}zX{S@#1vEzll;&f=zzVcc$JeHB@T$jxRv_qgr1==IfV`h%A6w@cr zSIwNMfbJ6LaWiKHpo0Q^O`t;pecjBt3VDYGIwsH&fu1&Vwj%GSK;IPTxIoVUPvo5t z=vg!83xJ*%=sN-zkBJ9m&}}Z0V);fw`R_RfD!`z z4wMH}C(s|woF4*OFVIbn%9vl|2x~_I|9l z=UjY`SLf2anKV;*-06n!6b$b+jxB{Csmvt~|3lCKeC z3#Ttag6w!=U$PLAVoiSaawuql9)$_8f($IK_wQET zS9 zhCr(0nF6Vk{#ae~b=}n_n3hGcadzYjUjKP^ke2y&kd_7Z8FepKm_%Z6D>4I+jA50Pb?pqAC*g;_ z=t5mE5ldQ;N4EC^lRfkAc6CzoyBAIkvXJwH9Qmk>Mm33j%V~u)i z91T^oMtaUMpb{YNyGx$em_}n)SrPjZJ*2k-=hWS&{p^YIj@XGO_klwSTcD{RZ8~ zq>+29{Eq`t13qBop9Z9x{A$UAXar-%Ucrui#5(3RdC)2(8Ko!b=$!8%OZ)=nw1P{O zz%rxbE(L}nz0Bzo&I2G9_01XinE>R46mw>T6oV$n)6=79fX5$=?Z@~539|1G@z)3J z$urP~uJ*m?I=|W;JF?TOHW;dQyFIBmQ0*tv-m9yX#(rT%j(OEy2+i7y*2LFn)&!GZ zS`$bPX>R`2^zZ3L>S9yuNDRV83Koa@o@!5asBg)eX7fsp3KX?j@~C;4ZgU5Vl`xLI zl+%bdL8TFeF{kVG`HD^5%j)^Vj4s5PmIbkoTam{-#6Dq7pcajsbWg7lyWir&Do0TH zq(DldJs{8+$-_pCl(p{cPcxs<9YkWEwjyT%7Q+a+T$|8=UjCUa>Pcq)MR`^;&@Na2=>VktYa7Lc@bjm^SHLCrQ#gCfpG zo7GXSYImPGyCvN2N6a|`;go}B?A_s%C(PL0I>jNq?98Nqbd=LW0ci_|G@wI5*ddYa zkdSi<5Qwic_I@jeqzf~oVpqctdrQI5?G+sG$IF^dYQY9?(a z`Nzw~oHFI(NG+z6m^u42m7useCxe(%0kOO#$cRi&_Z#Ni%r7EciL-h6-vrWf$Y##x zd5Ws;7G~4p@w*cw7LB_#lnT2O7iZpWWmEF`r7$V!tt_lL{Bpi!O*nz%)s)Qd;7+3C zg4?X@jg-Xicu_r7Jnr(VkT+8vzqj=avQ%D?JBpG%;pI`oHiPsQC}st@aVkG&)fg%% z7+jZ`M{kdQhpO>wq>RQ4Di?dojg^8b0=&SuC{pkB@z zcl1F@C&G#EK}31m>yDk6o{QIv{)IEp^F|7j~Dg=CLh6i$w%GbT}?8cHUGEojBgIC<@qL>k?u z82-@$7?u%ur=p-j@dj35_NnQu6G_fzJ5RFkj|X8r;9VZCNKliCmr$Na?_O|$e{ zD&TET?a^3JLd=gKQx*N5HJS$Fz)Y8IFe5hWJyzxfN@9-_4}0nrCYQXNl2cIxe?=n_ zOh(I#jhTRrd9g8+xrs{6M@0Jfw~`c-uIDeYb7qKm5J^CkICFPYoTd~!7X2ZDd2 zRQiVr(k^kCRGamFdjj?M3>EOPo_0efPu71^^2QkmZa^WXg4By$nK6|lgIj^*Wkf<0 zg82Wo6=CT?z_b@L@(Ay_RHlRSnIZ+5A`D6?nO8Ssdfv>@1gxc0Ue~jzjRlEOo4j&d zJ$AjrsNF`%wD+-j_acn(k&L_pluoGG6f>Olkgc<*sqpF8y+H=C4OTOUX1D zHqlB-XMTJ1&nP*N^2+Gn>w;1yyJK7~M2f6j`ri&5Q!^S_#IkKR72tnWA=r0k6cf2B zDVf+^CWJZ{M#wzD6LvM_-$U5Qz!DjG1C&H{Wx�mo&HEYmVoF>l9>J*`J_vrm+<7 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_config.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_config.c.o new file mode 100644 index 0000000000000000000000000000000000000000..91a156f2d740637d0f6be9ef92c3f95a6ef37dbc GIT binary patch literal 69632 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 U>N*P|x=X(=WHc?~@kHtWH>)x2N&o-= literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_drawable.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_drawable.c.o new file mode 100644 index 0000000000000000000000000000000000000000..5534c362134a3c9109c98b63b7de8fd227233531 GIT binary patch literal 30872 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_font.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_font.c.o new file mode 100644 index 0000000000000000000000000000000000000000..1e4b54c605fbebeaf8345e9784c723f8e372705d GIT binary patch literal 44696 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_chart.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_chart.c.o new file mode 100644 index 0000000000000000000000000000000000000000..074f0ec727f411d95026367e80dfeede9ffb78eb GIT binary patch literal 116280 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�mo&HEYmVoF>l9>J*`J_vrm+<7 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_config.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_config.c.o new file mode 100644 index 0000000000000000000000000000000000000000..b0cff04ca827b93d4f3ed51d32541c1d70480922 GIT binary patch literal 69648 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_drawable.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_drawable.c.o new file mode 100644 index 0000000000000000000000000000000000000000..be475919e18a58b394a63e32cdd4f426b77bea01 GIT binary patch literal 30888 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_font.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_font.c.o new file mode 100644 index 0000000000000000000000000000000000000000..38244c505928b51c29bb08b17502bb0114eaa5d5 GIT binary patch literal 44720 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_grid.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_grid.c.o new file mode 100644 index 0000000000000000000000000000000000000000..82857ca010549077987db4c1c7dfdab4ca51080e GIT binary patch literal 76320 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%0DP&4A6m#E2b_KW6#E%^a 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_intersectors.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_intersectors.c.o new file mode 100644 index 0000000000000000000000000000000000000000..8e48d611aae71351c5b82673f747bcf1164e46b1 GIT binary patch literal 61448 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 P_Z=`P4oX74YW@EoEfu*7 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_labels.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_labels.c.o new file mode 100644 index 0000000000000000000000000000000000000000..007904149ffc0a08c2d476b44c34e50befa60847 GIT binary patch literal 42000 zcmd6Q3w%}8mG?RKL*pJrwqE)dvLZ^;m>jV3+v||+qrlr(rX~(JGT5GR$?!GID_M2~h z^PByHbI$(nwbx#2?X}n5XWxBqwuCFo1Fq{xa-9pDL{3o0Idp&GxtJb{opDaC(-7(V zO{8zrss12>k)}hD{_v@Yd+5p+|1fgmU$C?;a{cjpfMulb+19^)@=0@~KV@1z()NXq z&fOn5aN`C*sq%pvcO)L~Nj&aOJU*Ow+?#lOS|0mv#3mwr2aXcMKH?qer`vO=mS1!m zwY9GZu;&ad*SYO(6oTtS`reWn!f~r9rCZ;Pw@~hGb2F_aszkOwiv>=6Jg_4Y5$phE zsa+#nq`x>T(jN&$`d4H{`fl5gZ2Rs%NZcd2faU>u$e@P_tto;!`H{XGj}UtIQMj!c z`MdomM~=GDP_Xhzj87OAr-+5m*!hH-3*oKbXPiao-MMfR#zZ)%#Ce8AKC$o_7a4Rh zp+4hcLhp{iO&Ak2DB~K#Vg<4A8Lu*EE1^E)E<*3#05@Sw)dyp|d~2ld%3HwZY~AHM zAb(Fn{qXKcU&F)9Cj78CL{dL3-wSn~ws`D^{6UMyA>eUXcmN@HNyE|R$gI&c3gSWI zSp8R?`k_B$*w>6lCPq?Z`*CoCO-Cc!Hyw3)r$ufvW3KN9{?p6Pqfb%wr}60+I92#4 zI#<8b7yh_E{BfcY;0CU?=~Q3uN5Jru)0^kB8I<9%3>wBiu@grv26Qakan$U6iFC(; zc;)?sX&kbBrFPcpm;HQZ-S-)gsWL> zNd$gNA|EIYA?1#wK>}{T#r?&h2($*aKoKCrE$y&a@h|}AMN=6vr~@%OxlW|N0qnRm zbZi8aoQO!v7ALFKggoeP&<~pq_w~L39()k}r9XTy((iy|BX4-u=t=oLGztF4qTX}h z`7l0Z zTRt{}n25Cf4TpVe9TsbmoC93E2+VV|ulGF+mVG#QS#PjE1*UwFPI&jd?2BTleyq;W zQJ?pkXmtQB<{Vo9?l=t|LeR0J3{_1C?%-Bg$Hw~AgnvK!TVUWQC`LiSQNXoPyXA+< z`ogbpu>JvXIh1VYzbQgr5#gm1^iuF1kP*7Pf72@v7oZCpz!<$pOZq?@=@oR!@Tuo2 zky60^257k^cR)e1o1>Y5Cm0u^0!vLMKH>DH9S9!>j?S^!Kmg;wi7W}9A{19m$4&!L zu-y}uf_>rR{o&)_PJfe{Xl-b`IAo2N?Z?re2f?8Gp%m`n!y*>OnZqR3Azv)0j$$1_ zu@3oS8FxwecVGArbOeYs#rKgxr?U^o;+m93BE|(6Dcd*gcShduD`*ek{ev6n4U*{h%HF zD1sf7F-Z|UjzJAv+j!aknm!sfcpts~zoL)U{eSjRf!#;{Z+(&l;|5{^&sY)$`pkL| z!`f|Q>d;1}^D&ElYq?NzWEjA1`bm5fz$myBUGNl4cIeZ|wem0;TG0>O$9GW}J?Q(1 zxP{NMD1lLf^M3*m1q9>yKe@RqZt6gZnMGt;dSS3}E^&l}c&?a~H@=-PQj(YF+3%&N z;JsAX;}mM9QC!*KvId6lc)!>%1&xM1O{3ndoghEysCmu7K!I`7nzD>=680NT>6ZaZ zFr05_V6r*4?+=~W?zo60mKgr}Oi}JbiT?D{6C+>9+Wr@JZ@W+ z@w~3iwvKqLJ8w;AcOH=R#`5ADyJC5(oEZZlVZv3JkQy{q+dG>Y<87TCRCU#~o*8*v zrm@BzBZ<=z#ahv}o@irUzTrd2?7Yf~OTy98NJ(vdw0>nxI9geA-5$%!XU65V z)yt#87o=g9GiT>58z|2={WYB(aUA&U zMwK{aglLMOOUmnGO90LY4a35Mlpu^>XG(-1BFM-}!IBI&6>p~Etg*cWQF|GI1h-&e z?(J9-AZ{5cbTh@D8&l}lFQzsPUPI4Qo{+-SvrhXmJQs$z#VlNGc|VilVTA-_{l*81 zvV6wF=4PSf#CX`etN=tl^So#rDruh29*6wR^O8{)08K^;sc4{cMqP|h$bwo%{@Ab4 zI;IPXy&N_kl4tPuSn?aVu#Ksi(A3E|Q%nWe@leib!%(Ub zl^p?xcU}Q>oP4^@q${@OIGgBtIbE-$>-lt@osOlBOE=ft0_NtKTZ*{_%`Mg3hM8N) z+|tZ#xVfd9+X!>ZFt<$C@%BKAY1mrY4tFN@oXOnf&b$M}&)N!?@mQQYyz?1&9*)n$ zyNCC{GiSC0?*@MgamBmcnJ+^bZo@jE^x|Pz9+(0%=}SkTam;h+h(7{kp36qyPPBOr zj|lrT}5oP!KR*MlkbFP{x{#GG(k;b}(~1xWr<|!`?SSjrX$GLv54E zw=+AuY#eu{xdc>59C4cJM(hKBcgIN)f&3|~Lo zA5_DyPR9xc-;nMPu;Cj=jQ8LuIVBZRF_&$fx#(1dTDhjk$p&&TUlNE=Kz&v@9w=0ITx zwm+CW4%(qG6v=q~VR)u6l<|{nbOO%2nT_5VG9_MVXJJq)mkB zl*UQsqbVbB65`xHn4B4HnR`smjJC|jOwNq9%x{^T8Eu*W$K>*jduHxU@t()lu^Dpc zk=cRF&%+49mOi6Lf<%)_S9}`>o6$9muEXh?PS+81&7dnx6_7^K)%4~ldd{Y64qZpn zbqrlkqbu&nfaU2rj;`p5ATwQ0r|TJXok-V7bTu9_nV!$2>lC_9rRy}hVuv`+47%DA z>sf@%qU&tyT0qZ*#-XytkA4|ylXH!_GaC&@R?IF4xG(>=Skds#xqR}EfgQ!*+?-L~ zaPT1VikxgOi(J>_a=ek%Adm5ioYCHd4}dU>d0a95G{_N;temkPdZDS6>t$eg<=i+g z?N3m|(Jp6%J88L8%guQuaHC)Cp96N&uLkUk1R zfY4AZb~6scGyDUO%S)E(6S!NK{|L}fv3?ZasatF-f_56 zkGSb)g<$1lhP#_{COjj7_%Wi z(}%MNq0#?3Y6Bv4!DWx*ZG!ySwAvqibQEfHmk>C#;7$t%DcJ5s7{`5p>Y1`x!C?sf z%rC=W6rk)8#BjE8yiSnTn*iN69a~JhB#o9XB;%NC1H*z4i_J>Yh<#CT_!$BPo&|<1 z$a{gYsO17FV|Zg)Hi}(?Fin&w5tsF)Q3thS8O>T&+4{6>B)?^ldKtUi;n>vUSVlUN zUWp5aS#IK;z*ublHJ_B4AcLOvv(qrpzK=y%cLtm@fHeHU;aJ1X5aw2m52!{i7MU8x z&aVWU8$1W!XT%Mr#0hYUD&f}7fe&=Eiq7gLy%8O&bq(^H4!ObDKi&Pu}N zo}Y=Y3SUPOd!QI`p80d+^EAC{Q!>b7nld#5qmn6YQNcWl>)c;4Q zPfh;7&3ysT!~n@-8Z+J?^K~J8(M?6tz|I<~30dR=uzl1ZV0tTGfqb4-*oYc zsngt`xoe=gC9tXEc;9sA7^9m$cqCy#s=UjuOmPAjxVxT&%4Gdr?gH*G%HHqJGM%x? zG<>^Xx7u&`q}09LU4+jdCDq;G=1X0g7sz?=ebl78_{rUM2sSLJMwdGSSC8J#r?*i4 z3x70q(pjxcPZ5uA3!2#}DqVUrY1z+}RY?cdj7& z&zEcsWfw>`LfM7xG&AIiDZ9v>g%g3d^ZQ$9^e%Q!N50?;q)M_cI^M?+^zu=HQ7%pk zk{;m)cUL_ucZl&QcY(2q5h~lAjSIiP&Uz}%ap%)p)J`MRXel)T>oj)^^1-m+;m9}( z+5gUNFwb|p!$3&p@qSlCuV_0XCVQgLG+1V`zh8(A;t(|XlU!Wv_s`E+3F;s3Ph)sY zI?g#*;C+zf1*b8wyKDGp5#WP`M&njz7M8xvB+i9CZP=%Mdp^?|X$}_{*;kpWuSnG* zzv>tKs;@9@t8*@vdN27MF~O&P(5HThLJykqbS(WYlQ?(yv>*Gl-z{XFjZja_#witM z5o3|3XgMgJF=C88ZcVH}j7HCRCkwe!zwN=nFKM>lY6;MqX7=#B*y@~#rQR-VRnler z;O_dmUtyPsY2wSx%xCUFe;R4NG#72)?R=R14cuL6u%e>|-KkSCZh1QoUq>yv({oHm9p(HCw$av2 zraYhgz}tC(%V%=_6z9(pn=<_@&L83YY|ii4Z1@#$en006Ie&ulb2z_yi*r8e;Z95n z81zzv@Ghgy#B7-8%;ZsTml$?`(Zg5F@Mb2WN2%ctu zbOc~#TwrAbXsVzB;6n!BFxfLKkR**+5Kmaia}&f7n@A^VAXbjBOJFZ&s*|36LAnRi zL?$(BGaXszer}wII%8Z#&UxcpkS}XGDKrY{D{>Z$!}hZw6FO&d;M~b10YW)Bu9umf zPKr(rVa3s7+!@4SjO$k9AadGdU^NHi8=KseX(-nRL61cH$xZZ;Tvyx&6l64Szj z6!(J3!_p_GROA=~VOKat6v|gqfJ23l5;0qzfx@Y&LmDCTwnU zA?R&7M>lq+r4W`S^O&-b>^e0E?0OzdVADXEbkPMRNAA-L9o;AJ{s!iD@{`+5<~`H& z4|>ex(G@w^KW7QOF-kK1tmHyl)!C!mX_-0c-lPeW5YB=zU%*}jF|`of9Qt$4bdacM ztat$Q9|}KrtV<5T*?HuYFc9a{1H6?jARpwR@wstmg@rk$4)_(aSY(+He8M=&*$bhy z#eNBpCTx2Rb@LJ!F(DaqsQo#lU^;lj0NQiyBBQxsa-MJdq*~X3l;_)Z#FW?IDg-A- z2yu{TjYLm)u|GBRL3p?d>=6Xox8T`z-T%nUz#GPG_zw@0V5t7rQox-Q7)cR}W&yew z$&eofXLy<8T^|aMbfL(WxFj&r2R4zo21R=4dfviL&?Q(w4`VcQoix8)Z=xGa+a7fP zFfX(wnDd+9*vC==!PC9wz*09D2wfIBKeR2F9@-vE+ZPPH724(mQry%Bf+JHycLdY+ z1hWE5vx6hQhmRxSksfjqSkhw=Q0_#^oB%wgdA&PQyrAnHa^j)8pv^RI&z5b39Ci-Q z10dk--g1)Ki$i;XX;5d|3L^N>Id47@+_5E8$P}rmq4$Dg4TF!I6{h@_Eujm24p5%9 z4YsVH@jzgHHgVeS=B*`8r#AbPX;cHKQ}F>PgJbc*u-@qgirlNH%JI!wx^0GLw|gPV zKg;|1=99rJtQ!x`!rMN$1X2sJWq1mvdJnrS=ub9>&O?gScrYCm2_Wl0YABn82&M+6 zW(P-O9n-?o?lx>;g13M3KGNeQcV968qrIo0$>6r2hs=zzUUN^DKvAx@2im~0N-7IZ z!P~arWV*3PuJ=pOGeBU#``Ts_6)<8x*1Mlu`@r3{5U9p_cWe$l5Ddnl_Hbn5{lVP< z_(XcXZSx*uK~M<*52YFD{n-ti;|BAgN8`baw}3d^yLt14!3#op!Sr}=V&H=8;OS(h z2ZGoSL8D$@V8uG{!aIOI=>2xn9@AVrI0i@pf&6Uvq!1pq1v8|f3El&NgTWD~%NfYV z`}L*^sTA~I06^-F;7GigDsaQbQcw}sdo-|O5!4HKuWkyx2e6w8O6C~{JPBjsWbjPr zmo(E8&jvzy*cAcq`Axe;kCzzzHaTN;78`;0(${*MWSvb;5jC^vf~$`tRT>%e6v?+X^hgMs(RY4hPI}-uU=BS;#)g6B1*W>i!HLfYrvw(}1Sew$wglaa=Isln zz7OOpf~h7@U_W^jR8rz3S!(Kv;H1hRe8`y=x-97ShOP(>`#yE}lh=XU82>!vT{tf| z>?43vy+;8KhW3~tcwulF$`R)rKAWibOK)GmgXx4%c{R1hn%43Gs#e&%>T#AuYf5TM zmPaqGt*9?qS{ZiQJ3CtP@B~X+M^C)5qX~|Nb+pBuWn~vdOIB3WMe8an%EGnIvU)f* zR^Hy&(&O}WHyM^rl+aQ<&*m&!+Sn5-Z|i_VZr8-h;gp+0=gihn6*;R_S+XozUQtz2 z>B|vbQBzq_T2UXZs;;jnUzuokWqn0uJ&;vYN5i$X)wR*34RtFWb0CUN&_&m9V-6m* z14=ryR*p@8z!jH}c1G;pj^@U7a1N`ny`p1HCy0Fsp0jh7Rj|qxpfQQOF}ga|*xlCA zg6yg<3Rgud!{zm8vT&7XYwE6#u4(UV1UsQ!h-+_0Pg_d|oa;klT5?}n-B4K;tqqqp z)YgUV0x)h_1>p77wJV(#J_ZN`rh{rwg?i|p#JRMA=en#y>(Ck+-dWw=+r1jqz@vO* z6>~_gzM{l*yni-rE%l%2OR%*xm2&n%e3W zE732aC6$%cmxjx1Y3eJMhs&bX4fRgcXgbgo9kHvq&!BIU9N-Jhjqygu9D{4>?AmBE zt__y}->ORJ64S#iJ>bxeoGUbb?mLXt&nW2f>V_(^E_gYPtwi5(_t<9!2bMNT4^imf2dP@O3Mf zFRg~b7_F?Rx(F2RMMsuE(j9AzV`wlj!me6Ui6&cVbcd$9V?Dj?aR+P9p9fprEsb5k zB(|)l)fJ1ajV6Xc!f{J0OX})?v+0kHXcq|64kulEoX)E|V%>B!)aJ@Y zqWII+?6i$p{%}4vRBfOGQ;c=jBE9ccw&`# zH#Rr>y#|JBTMyj`Wt|e}qwTTA^|3*$XPvHlE*@Q zv=m&kJ{(#F=w+Ro#f!fsA*4+u? zY=eL37{;DCUY(d!%PP$IYv<~==6Gw8AAsA%x@`k;_zgptEorEa!05xtf1u(#%%bE| z)I$rBdMHv|N3%N*HA~q`Ypbi4MZ@(a%bey|56=y@2o*f#U@)yJSw2)il|$66tE2Ho z@O#jURtVx^W)&p<8f|Lq!3mm2bQw%#73CGM#1RXl2l7M{y)TsaZII#bADGD6KcMI8^diKxN@@jlDQzahJl1 z6qaBET^sEw&SmLAlVw9qO?7QO_KW#y0>%qJ(h8_N55IIlBV-Yb5LsZuxIHEm*#aL$}9?`cc*n?@HgqO4aU#5+_Pi z7281k!%U7G!_gPdj_OcOq1ay)!gpWRVV84Z}d4)xJ1?%Fy z9kKIUVld;kH9@wqyQ%g34T~2QELxCP(2`fMrlz74u8ln#JDOU%J3BgidkT6xu5RmS zE{Nld*aL;IdTCl)(AC`;hqY*DcL8`CPUBL5z0fMf_$``(HBD=*yxl7t_R&Q|ZGV1U z4X;9p*OS&*TT3e{XZ*7)4CAE~rlm3t&u0B%dO2wgWR_sCEHNwXI`~3|ErF@Qa*+EG zVv}&8@h&rH*~Ii-BO}y|TKwt{3?_e}RECRW<1Mg?!fsrQfju#t%(s9_mcno=DXn*K z1Viw(9LG!{ID15S9*kOpOrlYdv%z}p@+EP9t}b_?HQmfo?aeIa9;{t9_Fw`p&J|pmJmGg8pD#qNoc^(N8^If z0i7V8ns~2CHfS5ZxLZQ|a|ynz)X8f&zn#$3++sS=s)KR6HoUB%vZU6$pIK$gVG1i* z2476Wu7FouoXmVzG_&H;%4%30`f+;&Z%`!0gFh06(vC->m=!`^2+KGcw_NBP>%{s9nlanQacV zV?|X3uDdHPOJ3ZDVauq#&S_cQ*$FQe9fLSD&SN<89baKuLq+LzlU^7_`0&LIu&}SI zSXRY;X3U2#SZ4MRLi6G}NL&66k=2(de0X_H{Yr_xU5-yi%a7*XE)3)y@im}2Zs|0( zM_U^^n%iUDJut>`%GhYPMPUs08blllt!8{!?Uup*mD$NkxDcpT4a+9~TZWe3@OT(x zRAGF9cUoL{TI^9R+I_$k3BJwFT?7G{_M--nhU+h_uDvMQPz5dsK_7PkO?dRX1Xmyl zuQ4G;-urx?S&>i#mw9${0FT5CGYo@p1^;b|CcP6_??AQTa##nKS2HppH2eH2K zcy6QU0(8p`$hNL7fbFn#o%jqYNz(%y4@%>$uszp|bS8MxQ@k640ExXW*3;A2LMlKk zg*{&+AW3k9A_;8Nl%A89->@16LNBlX3+68ArTpBPjNoU^knp2zIOz(XtwX)42K-EZ zKVp0+$$^t?l-z4-9d|>PJ7L7I&<^;F9M56VSuD8Ihvy}kSvLhrGg2FX0I)pxPe-BP zPA8ngTpro(d1rb=g!Na!e@t{lN@%JK4=mq`g^=i2mXrs=e*N84>Ns=~%r7sd@;oTp z&*k63yOf8wdx71ijXZ$g!!k&8M9!vpFd>Ke_L1Yz89kv1T7W&;qpax`|GHfeEB$+ciQEFHGcgOJSaY& zRBjxe^yl(>lgfAa^((o2x?O%{qWyL*zuYbluoECQNJ3MjIKTg7kRlkv+^MS2qfws> z;xQH1!Z8M5nhF0Ams2`&j{qL9_{)($tm9EM!KXw*o4SDSWsxRw(Y1^pQuxh`pHMjZ z4)V$3z7jqUGG4^E91ngJaFlZ|1~^D^D0e?RBcB>Y|0BSWzJreEz&Gw7kLf7feaHk-9pm^_QA~NP-$urluz_ieLHYfFqnuqVr~J$U zj(5a&FpmC*>2b#QDja`>6zLBsK0gE;Gm;l^``bdx8C&ENy z3GR~_kMcPz8Y6(00FLdR;C98YRuj%f13L64Oji@0LUR)4*&O%?ewCmn05113pH&PL z^Br$qQtd>6XTGVI0QkvsSSeNFnXghQ6#3)KnVg;gd9p!c84q&0_jSMrQiESH{daim z(>w+&Qz1VXeFosj{}DFiW8D0#A?QEH^gn0+m!t5P4ME>E1b#j9Sq^tha-{hyj6ci$ zPO%TlQ6H4Endxc%2K*4@2h;0ArvDG7r}-M_hk>5R=Mt8m=3l_i1bi?)i@}Eu@T*WL&+arM2+hUtSULp#6-+-LCkRM1H^Y6y5cGF4{o8cp5x$)YaRd{_-@)Yh z;Sl)oA@EcP0fX_GI0Syq5cnlS;H^X8*9?ItUN`>cq-G zHE}0We&35fE*qRkJ_58#{Y^g$W9#@EoK_K$n-c<2+@pa*c}=Zr>EzQOy5MG_Rasem zh$7Ks$dgrra~woBt38z4Zjbc9k0b^%GujQrk(#^2Y|C38@eXy|M(@K~Txp{q>9@`7 z4;Z4$Dyx^mrg3$7d0iNO#t!#3qtLuni?%M3A=u+EAK8oR(5Xp(6wrAAO9bPJ)~7~E z)l8{5Y&oD3`i3#D*krIzhzC@&Pkl&Z1I`R36%4Vp!HQW8s%r_*@JByoJxO@Xd^)9q?64 z6b(B>4NnYCN0l33ZKna|A>X# ze)1g)KO6W7|Mx9?v4yYU_ig0A#KLw- zF8mjKzlGcFzBvT`8^*Ofzf<@H*chZgEBs;uJE{D>f%4dLj<#^yK3x`W%XtmsB2PQ> zzuBTc4=~a9kcHd)JvJ=LV~^i47LGazpFGB;-MhHmvlQNr1dz_Q_}Jqm%s9rdV)!ro z*IM)?7QWTOmsot*aw41G0jfLCo-e%!; zyALS-((c0w-^1-bVezrseb>V6cF*GXJ(RQD()V1(Mc)*TZ()T?yR{Y{yWK7ex5wAD ziccByzfs}B{|<|f%^!a*2@}e1`|ax%ZpWFAEZnxkTn-e-$F~1c#>Ea||4NOs{a0Fi zY&o}CxZUon7H-@Bmx{mG|3ihp!tMUi;$ycvnzzPKFWdf;7#F?7{xcOW{1;h#Z2mC| zx9xnhg-4)m8NXk$_~Vp|a$$N{;X?no#is)31a~v38r8S$nPcHgE&3@IexZd&EWFUd z+b#Se3%`zWvDCTrRkL4$!4=`5a(_!sT;-trm{`_!0N}Ef$WDd_J(l!fpC{ zEF9_Oa|51!={;Zy)8LKWpYUmre~~)|e*cCNhV|+Ej5qnbLU62uN%pnH4hH3)KYk=>c=|`M<#Qk1Bjl z&;U;={30A=kPeue&*$4L|Jw?0<#oyX3O~Z~|4HE9WOHK6SEo?XQTbl`d3%5Ig z^%H$P?nm=mm{n$9{|(#WB85-paa61DG}d>e!rx^1S1J5Ixqn*}UeDtz zuJC@&U$5{k&flqU^SiZ<^Ps{nV!ie#JeB3#r||8p?*WC&czZ+P-{XEfqHz5ER7|qo z!R$2n{}T7tDMkM)_LCHj2SUGu@lgu@DeE;+;cKu_NccG^CgCG?I7i_pxF44(d>+eJ zukgR}#M`9sHXc8{3cru_-KOvsZg+>mzs&dp3g65V`yPeA#&+1J@OO>+&OwFC`_Een ze}wz%J%#^_$ID5Dllmy4Yju>Xuyc!=#YS>w#NP~kT)`|}l!KX`|!THzs%OIIj- z3)}N5g`dakiVX^%%JST#@b9qw@$+9yqVG4k-M>@#zp~%%RrtFcm!4DjFL)fu{+{s1 z&+jqG{+{6726m1sK0oGm|E%yatZypYPxwsZemO_s__;NvVugozT$C&Pq#<`I6+WEx zs#Ewz&aYE=8{4Nx;VW4$sVDN^&h2hh^cOQelh+GEFY#)j!k4nXB?^}~wp`&QJio70 zxWu=Z!vB%|=L-sNWc!;RXiNBx-i5cwq@%D$-JjV#a8ivKva!*dG1kL~=D!hgs8 z^-l`_12zQdkiv_3yuYRJW6b~O3a7sr1$=(3@O<{qqY7Wd@$I(?{~AdHe|}2gce0($ z--$`svzh%iliLxyy~_0C6~2Vy#&m^u@_3)G@V_#BvBK+kzF4mCH+h|QnZiF{KWtHW z8@C%*_%YV&dWFlp_$7ru#p{jx6kfsO>v4sT<97c^;ooBV!wNr}{rP=`=dm3=QuwXX zUtBKzayI*Omclo){F4-ZlKEbs@ZU3^GKG)lcyXb^*Rj9VDEwa5>k@^_e%}=eAIbf@ zTH(WaT$rC-PWb0E?)MHw-^%enuJEt2Ub1g5cKaUFZB_Jdv47sAa6E^H=~jhD7{5c| zjcosW6fXO@4=DV7w!=dTU&Z=9s_*9UdsLczQU!Sjw`%?%jZw06#hk~m-VUm1OA>f zrWB6Tg5NHAxdY8K`2Q~3KTF}0*?&$`_|4qErz<>{{p3uAkK*^Be1+e|c%i~K@VJ(B zrO1CR_xm}Delgoc<|U!WKWc-iT+zSJ?N%y$2e(_R@O_+Lq44S4zfpy6V?USAp+ug4 zXE|?B^!Kwpzo_ubSuLE5G8%UI68Q}{E6+<92xGuVH=rSMFa|GNr* zk=qqJiM}Pwf4`#tJ6>-bQ1}7%!=EVp2*U_TtAaIw!6h2OyX z7BP4ix?kUjHmq_*Uk7vBHg3j}qCd%eWdC0DTEKDsO~psP?{Zx6>1O_aw&?Rf{#EcFlYD+E{9j~+M{+&1TOJZ} z%4J;WpXd2{nnjPUBj2-uADpHn^rF`V3jc`XXPLzZ?JVE>S*z%!->+4888!szdc{XR zZ@ov+3!iT)d^V3e@l%oiWA@``6@U4h_l+U={ENaHczm5w_yNZMs`$(I7{+k_h&=5) z?xrdHVxCM&72ePD<8sEaf3ZpVKGr1`jwU$9@pi4^b0hP)ThVXiIP(of{|@W(zQSK% z{>K#``JRV-UZ?fVVZRex^qs44(f3@&Mc=*LzhxGV&@yBQX{F*L`fgYB@_EW#ieB`6 zL*WzH4zkaR@?g8Wd0zN;MKArE!sA2q6}>VU7rl0{USlmBp}ovMU-1#W>J6cuEKf-pNq41sDuB;=3&oUnGVMPyrW`NRV3V(&|*~GZ` zkDSxEM$wC$eF_&j?@_qO`LM!8&ZiiccFkYbol zB7Zu^8?oDNju%;si#&4fWrm`^!kE)pq;T2CDOdPA?1vXA{<7b_TG5M~-3s5#<9Vav zBjW-0r;!zntfUJMG~T~hR7 zA6A3-oGHX`=jqCS&y^yf!Erhr{#S7UK4TL6YLoTPEed`oPm2C56j5vmYw_ex`p_;ooHZCklU@aoP73KYX6?Unu&6jDNs5b{|88ksV1()?(rJ|ShXS>2> zeS53IW&ONI;j(UjMd9*Za9rW?z9Zv6L7F{qS6n4O`I~T%F!NIRP z!x!y255GEC2)}&T73+>~WWKRh_>q775%>R=lm}eU)lwC=V$SQo3&(EhQ%``W6!>54 zBj#a6qq(2Lzyb-Ehgg@FH|CG1LmuaS#JM}+$)vHefDnN1y8YRJBTrpFm+SMg#pfdJ z3osWRkSDvVz)l|5|D!6jG^Ptht}tUo3!nuS-ON9I=2w7pQK zF(NNAmH6g!(6n7pGMM}|Urw%%^5arj%ijl>=7}|nxM7Lwh+)#SHvl$R`&+sF!|a&Y zJ}$9!`*$->t>*)apa9Yb{Jv{)iS|W~-B5tfy8exoriPrCF}Z>D_YP72@@i9KhE(Lc zv@3T!ry$QZ={Bx!WB9CTaUFy2qiUErw{ZPDD6^B;Pq1IX1M<}MALjb;D`I z2J62S{6cXHGsgbIEg`8d!)ma$v8|#yygJT3s2n7G4MSV%`uJL>V;4Zq!OQUKIJc|7 WtnG)}ZG+W6!VBMH#3gaj_5UxNj#Z!l literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_legend.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_legend.c.o new file mode 100644 index 0000000000000000000000000000000000000000..067901273ae4e2a9c100123cb6f4bb16a70b0c6e GIT binary patch literal 75176 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 DJ)v8m literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_min_bound_line.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_min_bound_line.c.o new file mode 100644 index 0000000000000000000000000000000000000000..cfd33b7ebd9f2f53c0e16d3f1e52ebe10a3769be GIT binary patch literal 37736 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�# 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_path.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_path.c.o new file mode 100644 index 0000000000000000000000000000000000000000..c2e1ed591422991538f4587ef2ae0b4d238401bf GIT binary patch literal 45168 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_region.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_region.c.o new file mode 100644 index 0000000000000000000000000000000000000000..372a2e7860bd8447db289ef74fa21873e0a18e8f GIT binary patch literal 68872 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 z zC{d?8)29INoDjUrcAU{E9*m#PuqZ)9m6M%`BbODOX+^t{gRnFs`nS+eoTmK%*2OL?{|`&mY0n{=4(DMF573E zHandZ_h;CQGEe8LH*?SYZ#O_R7eF!GxqOXkgRIvun7c4_zp+;_qI zE{$D2hk}~KM(0-<6^QD~>%9Y`l>Sb#4FMqU!9{9Yim)~CEb zko6kHhvE5^z{u+%FB1ufaWws$l+ZAsFpSSn>AwZ*GpYQP{%=55$fOEV`u`15*(NnB zrGE;vroJW>N$KAmQel&tozj09=#*Vnfxv3^qoYMarkjiJZ zZVQY&3o6V+@krQ|^o1#*a!48Si&FZp0CMr)?SYXsNR9+Vo}ZrLg;0A#p6YemhvX)e zW>TzM$m{lN$Yb3yylzJz#kzI%vazACZkb*;q+;E=n>^Mn$Llr`@}@c-hJdkne>Z0h zls1W6JF(r(!3Jq^zG^3a=;oXW^?T#sbXq=~TsoPSi%}59)|Q@<5ncQ>0Hy;8rP;O=Mv@=d&0CQrxwW?^S};PP-rOTs%1*wh8Y$aC_R*2-3;q zd=+yZ0g(C$G#lkQ-ft1x1qx<>Nr;U*98xYN@y_wEb$NdlIy9Z(tm%3|&bUyQ78hF` zwUjPvy7(=t%M}?|z~E~${8rXwUDy6TzP`KP;<{Yf{o7Exp}(r@1fOO@rr#2~T-}YV z-4i48Vff#x0FCU7@ST~8AmGGraxgkWCg<54lq}mMp3A^aqOVCD zqD0svewTxe$u)@=C^60?Ud+HQe5y&jl!J!NH;Lbqm1jBLaHzpU&Lm{FsXcdN{isK` zf^3X+y3cxe)Z0Kv4Y6-ldLTU)V9?BQvN8fjev|4Jpju2r%*qPnpa9v1N%jq=O@m^Y zSk`pO*^jM)dy**or|B32ocI|vQe%ef$0?EROvL(5+mX`qaS(-CK=+(rx4WRpK^<_= zIhhMR%1xzn8l6LQPN#DhI%m+iE1fgx+>OpzbT;nqPWL%)g|kC8yTAWPP#Q?STOoL#7vl(-}>0!v8M%hv&6R!5gNYI|8{| zA(H~PG?0Z>ggofkvxy@ox*PT;C#Oq0lr@1H=s}5bj)$)C(61f_mbVrdo%R}5izg5T zbDoD=YA%7yQ6Iv+>Bs}Udu2+keKN5#bsRbc`e$N)mX3C%!=MAY<46=o`(a-C;`E$y zU_%oFr#C?nkH*B+2xIr`;?$P&&h*j{y3Nm{sXrxmA%>Fz$J+{3dlO*jpG*uFq|+>u zD(rJ*FzshZNyFkm%+dm=m4qa60off42|CW;D-kSAp;jH-u>|aaB?n;coCJw3LkNz* zPA`WgDoi;89}40U5wp1|{jk$e=mjZ5u@_NjQA!B4Ml%jV=I4^7@a}9p!4cRw1FD+} zF9#g=+?27#=*H6L$1O;O`}l=7kRVw2PAE)ppOi@y_d9OgNa?;QXCfDO$M%gx+&_i7 zad*cqlOABw!5#TVvMxUJ5+fKe|D7=Jk}?JFK@FnHNXa#xUgCH-%94MM`hED#zI2bm zxJD(8x+CbxYR6t9-J33PaChw4II3agGUqKCL%@O1q#WlNC>A%Q9|ol?*k>V|#))7~ z5Ie@;j%c4)tl5F2F?J~=8!?Hk1U2-dBE~GZIQ6*@6;zh00onftTBB5?^#CUm z6{EJ?ZaOhG=1qJJ>@4ZUnzy^7*)!zOMAdw6h(i(@V|q%Z@Wep=_g+og>7{P4DVXcYSY=v8bxA3i))?C!sy5DdWPUIj-YtVCN@7 zJl>`5Rm?cS9Yc?AJMyW9NiKD+Fdk8SWWfuDcuO|D2V&HY!cHb~r78#cRkr$7HUc5( zJ}9xu!HHE4Jz`p3cU_>|-B*krnZ2hH=YyW_CQe@N(Gz=2O?-Xu>;x0HNt#W(O-#Zj{Jb*Z7nBLN3q6}~EmRzDHojV7 zLK5%}rPiIcS~N@}7iwrDoJ>>&{yENN3A*0n>sk);Y0~ww;M4?NW5Kf$bX_88)^(}K z&bn49U6(0ctA(C*T?Q3*qHBT+o0P829dt!5r0Y<41pxP?>%;_IaiJ2Az|MSl>qxpz z3{FYVby9G0g07P#&AOf?va_yJm9Ep2u4fB9>sksGpG?=N(zURIuE>RS9qeSHDx_;D zLDzT;kA`&z(lr#EmY{2TaB70CT_nxAb`{xK*G#2rH>GQq(6g@RLdBivnh?XMDP2$R zpeu4AU57cDs0wxGquG;=vjI8`qzf0fr<2Bz2l%s=LOC*dLJ<9 zv65~#>2ZNcxbo!g*lW_`14DVLx{j)y7~t;k*m_D&lJu@CsrxGjK|0YJH)SD7@iZ&I zUEjegiAO}zo35htY)S7i={b@FlZ#U0Bg_3SJ>A8|VX3`f(dY9?4izLlMz&uHB z+UWPZxJL^f0|4BCbNkJEbR%C%0N%)^yAMW zGnk5MTps9U*dAX8?-V%4!M#TCcsR_`tQToE88=)hwO?n_S4n#NdY_3%bDJ=^_N3Bm z6KQT;Z%K0*OS5V%=4kf86!i^bIzR}sZW76m_oVk@J5p|6vPO&=z6&}Lu4=TtfH{URQLoqLDCdq})> zUz%z9hU>02>EF*VeZeM9ALjJ&4fIIm{(+}T+pjk1S2%q$r(fm1;2@`8qgMg$j$NGo zBh&9RQ=w97Of;#n`QvC&IbPwL zz|ISYip?LNY;1nlMq~5+^uPc%+Guq9IX^Mvo8%Kc4EY|;ev;FBH&XXn34G%wG=d>U zf(>#qv0fwCy`2m8hA-H?O0fHsVBbv??0ZVE@1IaGs0G~dO&mJp7|l0 z@E&#bvO#HbU|BCu2|u^HMW0FT)g` z3T4uWUB)>X!Y$O>P!Is(agu6-_k&!Xax~~@q6GG$+%rdHlQv&A?O3N6OQrIJ|_@KnJ2U()TOWo`ecZfJW<=B#0-toQS@Px$!WuTfTzyw2Om&^G#Mfc7C>opvB{21 zRMOaN6xrQatfz_2GrI?db?cGgo-yDI6gwN%)kd?6A-u;xWP-$b&{;WS`-r>2Y*^2@ zJ^}JRC&yF7q&m(7x`9`?6FGP(IH!Z(;Cl};2YVikF*(oC5d!b%CPRH^`5KVd#YpSP zM^hoLF@lIS#_Ke;S|_w;+gZjphRHd;r6~;TtaJU!DMoCMIyfAg?jI~<9rhQ<7VKOF zrtsjE{vQDh1Ogv+%ft)z!SEk$&Vc++e*^<(1he45mbmaKJ}9}Ek%A{^!u$aQxQ07g z>dNTU8AchT8kJ4QV)VF7C-50_fqvcQOsot)FW{KZoshzv5b#Dn;*2Eu+K~V zqZbS<@>1tI!IVJiA~?IDJUFK`dmda;Qx|z-iad7*l(^Unw1gI?1ig?u^Ia%)z)Rnq z;(7u1acAxXfP?M>8{Z}1m(IR?Z}fv+dT>OKf3g}ceTx_P%OtNyXa}$!=-#<;vzPi8 zuP2=E^m=Ue(mzi%9d+hTg#2`O`^L~BLf&(Ng9B17-Mw++=FlgU@xG8=E2RHGQj~m* zd(Fmoy=*i=vo{7W``{Ez&BKCl=cT%v0*fYw&Lu7Xe)X$JlG>aa9F{|L&0ad(_wa(j zAvs<~Xsnn1?q)6;aBmIFO?@?W9T$G>(-q!Lh1Yu-!2V9E{pqXkpxW<94d$BK<<3pL z1Ler=5j;D`>l)hZ_1o;7vD@<&d0ntX4W5E|Iq)_ZZr=66cv<8P$IEW7A717fN_g{_ z5`=yGa%gnPwsYfz%(bn~Ax%+e^jNA}<3jX*I+k z4T*bV8i)tub+ea?m)+g~yv#MkC_-pARg(@{K`IqplDd!08g%~}sBzP4KvlBJHEdR} z#SqjFY{7S)f0t(LGo(lGyc{nTPhRL%ugey^OCv1wDyr$;9^CBp{4wzD<-W3Ex0kis z%ltWbV0exfdd^FG)$4kJM>=;6-RODGdMWPu;3N!_094Q=)lCm=@4)g$ah3;|<&T-= zA!M1!EHj1W+BnOMRJUsA4 z-x0oFAikoxFXpN8g&-tnr-t@nW44t9TLptdK{mR{%R#5QcetVE&=)Dv$)zt}b@D)m zSn7&F2LYEn(9b~EEb@log#(?N1P3~Xmy4CT5?%rKF}G%AT$X*GS{80fy3utaOJbwz zOqSOZWVz{6%aWu6_@`vqo?_eO%`5*eee^?-oDdlXkQjUG01jbTYhW`K zxDGN*iT7X#I}z(Ir84VR_j{@P@&V}SKC$jy4@MCe>oddp zL#gi;KvrM(Vc?E=MU>|aAyK_SbU}&n#{EU=W*|l|=zf144dZ|j^FHo(K*yS1Z{+7CE6-*Cq1bWZi1dOS=X0I1g!f0;#!_737 zQbhyY8`2JVT~U|QfW~v*TRYc`w41$20Hkh*hgGkSUUt?}~RX`wK>BIrJ|_Fdos;Xr-kcI0;eP9EODkPYWhv)2dN zP%ZbTZ8p*I_*#yR6BbOxLD}>6k!RC)1GfxQQ&;5Q4NaDf^>@c)52~(bGlU7GdSQeP z#FM+v8wfxbFg7-&K89OgqxQ3D`;0)}_+JwUWqGy}QQkMA3~{doQM^I>yfMvQ5N8+x zcXKGTr~tq&ufcDdf)G%Dy8;x;+~)eP8ydlBKJ-k8a>)KPEi=UA&<@eGaq}bSV1w@z$+f~^2zO|X+h zUDZi{t#5V@m@}iYsd{!@J!}B6zIrz703o|D)U?zut6T*?Os`xStFK<$9N(Rw(B4X- zw6ShYWpgzMO&c@JE-IK4n_XC3P~L0%{totBu9t z7P+Xru&CTN$c&2l7df#xCA2?3};SZJ(wD@3hV2d$#h_Zk_#fmv7*TAa&&j3 z7>LnbGffHWhu&Oa9kYnl0T1I^60NGCp%H?nrM{`IwjMU*pg7TSQ5Kn5Q8qtf+Xtd( zRw3Z!C1n>mwY-0a?}}11M>&MjoMkJ@=FBK?mac4RTMy*;0_3uP^D!hi!QHRBwmC9&;ikQwzl^o1NMwXoZfwRe^Yl+NmFCmV~ATKb$a%Y%7+>=9N?wlLw()LbsE|9ny|v zlM*9Yf@f#q_9#U~WIPk+^UKQ$i|6PH=U+5$MhP_eSW#i|1h|SQw4i^ zG{crJ+zdK#Y+{qdof9xz?K%sJ(4H3=ML{~#dL68G;sp54*fJKIDUm0>L#VA>4Lx`D zs@2ffT>&Nq{@j!c=3@sG@7!h<70jOxwNUp>r-Vjo{8%4@-lB3PY+oiYhs zTLqi%G)t@OD3=Oi-iAZ@b2j*Mmh>wWcuDr5@pUM~RtSLxab}{WzOHITCuRZFV@s=> zuc)rBH}p_Icbwc_**ek4BELs~4%KfK<#ns7p>JHZx_a3H(^q0ErrYvL*doVwKgu6l zU0uB*20LfKU=wFy;v{PCjYMLvfndRw)zNxn+{TtFXhx>%u7~kU?kkrq^P>!$V+O5S z>e;F9#l2zHR6BkklA-J2Su$^4fiTCgqM_FsG@aUI4K1juux}jDndLRFsmPC&rwm)hipWu-c}rJ@5Wx@qwWQy5%C+Tc{LzEz1(dz4rDXRwf5O zZZ2Z&Wip34uY?(ZOjU53A!x?Mg)^ZUqZ?y5M*DrS88JFm0Aa-B#<6A-DccUFJDyzt z{SjD{2XjlmnI*-=FowYvPch%@{+!4Z^L+E$7rN6QQk=bGcBSS1vdLh3B7oJ>MdU(pmN>m^BO4 zgf<+jfH_<}?rddGaV%1tw{Vky==SYE4vr68m9Xg)O#4v*h~thj@}P%L2Q5u82~jh* zrFfFAtz>37Oy6r`t7rfl7wc?;EF8{ab<2`hlQ@O8>5N-AwpZfRh$GENW|J}zSQo@; ztZr^;tdG^z#A+(*R>rQVY^;YZubj%I4bX2VQy1Es8OO^C=S0DZ6=g8#vP@fEQWBe2 zP<&CWq!i}u7@PCs1~!v1oS~fsO-P>7%1W?Xgt!sbI26D{H#Q&ULO8*~k#;;3n1Rn` zGeJLkHdqtG$pREI-4*x~W=|C}%gsEH=8NN}AWz)ijvk|CMIxm!>k)=EnE_8%Fu9M< zKOit|l`vZ7SCp2Plwn`ULm@p}N#qEq+7<4*hff4B0R z57VRIc9eEedSquW&xzExtXe=b-&&Y5)x+>2v;H}=@F~%ZE6{;rBv9zb+dT|Tu!Cj6 z4Co&UW|lk6GM9F+KkD>(Cb2WOT85cu;p`$Nvn@Z|9a~6h$-V$4_}-ocdOBoVB{Evc%yZl%+-yrHp~RzA>3 z6JQ!+Rgw@^3G+;8Qzm?BW7XgaYK8XV7{nQM#}-F+Jw57My@hm2_>4(QNwr`Uh!5}t zj)6uF(*{;mufp)MtRs^h=(JFj5wyJ!37&WI6_OpaOV=v!a5B8Crmp=S6&w0=weE26Sn5w+M5% zM!X`o5U#$w|rinqZomSk8y~Z z8*%4A;~Mr{jN1OI!-YW0F8+i77cb_^iky**hxFOdqG?Ds&zB~UEEYH%!G5h3MFnMM z$;HZ>2UEU+Ik3qr#se&oK{p>C$INQ)jG_{F-m+|Do4W~2*w6$Il`{S=;uX?(_u+RO zcI4u!v%U6XI>wo_d_Y53!Xiduh+7Y}U_o3rrEc6Gv&^6^4~sapuUxr$d8Ho`vx`a! zU;&~?9uiF5)bmY%S%$C5!e}HCUp8ibGm0w8X2e@fq4jjpVGdAOT!@dwg%{&fW!$V0 zSX(cjpWLD?t6}B>lOA8dnYj3R^7V7vO}BPwLj$ZFButSL{e=&kv{@?bj0=5HbK^Q1 z2^{m>T_{V(FyhS_2K0dPeu&;! zbesdT=M(1vGz+$5no&k?OiBw&u`A@66+ckTt0*cjbZ|3WTZ0&h-Ew!Ff7aCg-4({5>vA#U{&5XrFO&;r^TcP_xms#%-mvD$yc zf!X=km9Vin^xqi7&HREfuQG4-SmWcoDrfBShE>&LE2}D(Rj;b691D*awXky11O?Yr zkD+2?m$uZw)*+`%c!Fx3yu7iH?Tl?{YDCe-)>c)Gg-4;-lu2Vi$CkBYYU^9Zjvqg^ z4tBI}Symk<>_Ait#mB(&RU#>u>&SCyU2~J+CL}%syh)bDtBNFV$AWbYiRHk^HA`F8 zuTMm4n^%mP2!hrwTjBW1i-Nu%^bPb0mGDLc|IPq-si}DxOn&l~!yK}1DYS>0x>`tJ zch`iVe}j+mFsulMSL$8;8}42k8WCx#s;q~nQoNG2~Ofsc&wQ|D~> zk6$dqQ#yX1-HsT22Mt%)T7Ztg`Z6c5Hajq&Yg%YKe0~kT_%^$8!Igdl66uzGZE$90 zY7G!@9{p$r?&%jRk{{eo1XzAC{KtcS79;s<;^nV0*$(~KM)DWL^LKLoG`vdw>UjQx zoS&@z7dW4OT2#RDSH#PI#QF5QDd8V1BZ7gDH;{i0M8C_D{LjS8pUe65t1!tA7Wm~C zpQQX%oR8nl`}$SI`S0X>`VFAZ|9PMPgD1!j1IrgUpMJL~<)d3%_rW0XKpOsF-~8^| zrdip=r!o6qIu88?-ln-d;L}9;6MNbdz^1t^PP39}XpaP&W@nscJJXz~t{*TBZQWt> zxzp%{zB|M;w1J4w1ULD%JI?vnp$+`}jedS#ZXn6ZPv!h%Fhvvr8w_=(pesSv(*_4eK{*)<>F6L0v0Y5BN@j&91pqTy=#6GgSY+>g}b0tulyiz z4d4N@e<;zesdBxJN#?Llhp=r^EI4@E_&GpJw49^w~g%^v9WAeja)j z<7aa0Qr`*XN&pXl{D-++4<>Goa|z>NrWd@H@g0QG5b`vBuVWXDop1^6?JpFPabn{7uN=N-o1VfxEVw$mN_gmRXq8i3vA z;Kq^IPB$?fwr4!%5T4?MDHU&bm~^dn&Dl;J^Eu2wzGT4F^;@k45{|u4$HR3x|6!l& zWOXD4#PxfVc=lG12j{i=z%e5SG?spf=7vD@vn2G-CBa`$f`7pL4{*iP`HFvbp)+|# z0gm$EUwXuY!_Fy5LcbshzA_1pf7}lF%N8Y~@Anut`=moZXsUO9nS{@4Opomz4~fGM z87~=OaN*w@;tcEk7Sl_6Je%=%6rV+mA7MVj4Lhfv@r4lAc)VgR&UU~%v*)*&zJeR# zbxi*R<7b0^@DM(4GG4qViLS03BDo;9$$YcN_+>R*9LKUBk>RC z@mieuK&oSQ=d0M}n;u%QY08^0(O$eXD?$8zSG__vFVgZROh{gUzv_|Ya#K-Ku@b)l z687UeVQ-f8)%(9>-&x7hcHV?>{xWyo_-WQXEU)tNci#B3I;k#UeVA9ZJ8F?Yg{#ON zNz@0sr$m&rzWDpwxb#yjO(t9SldSuR*8K$Qe!O*WS;{ihR9hvA7yewuyeYNxO~|B= zi3mwr-uloZ8JC2Y_Q{BnzQ#!q$o{0rx7}HB^(`w}Mx10z&ke(@+$VX_c7j)8vRK~1 zaLhNc#hm#4YTg8RU!mVo=XKVMae)-R!sC`TP8BmIqE8d@#zS7GA3|7$@3e0a!J$0< z3WoH<*O>4pM{UG>Jsray1%CHbwR{DAq}Pdo6W<2Wr}roP&@hpn-X6)PRC9_-X21*5 zlG(H8N8seo7v+kfW?HIUg){>ugY4!UEFzCk-?`E~g3RXfty z-{^PD#rKmPQT^+cq~B6@EUMlucO=lC%XFkb7S{JP9SJ_|n=BI&ww?)ZF;DcBw^ey! z8U6+!X+FNiw`;UM_DWjDe5sK%JK2W;RspN?uwLDDPH;jK^P6iEx%{&TcuB%BULH-#O)GK_8KJ^0{ULM7GCIsiiH^uO9G3i)-Byd8?!zn~BqJN#57A*1t`z5GR3^6%=Hhy95S{n(Om6usjQON<+n{Gx?A zCmNweM}GwXA0NlV|BpT~2QQ1k8j9IkM{u65(=ympi+rWznBw(chbd{xOUGT#H_wQ}MC&d<#E=*9#EOxA4h~j{*$W9z@RR z7Jit@gaht`b2=ayh9z|b3r5$IV!iCTNBz#g(Avo}Y zZAbV|vT)n}wTz3LBL8O;K9K7(JLenzw){6KdXfKjg$tkWFpd|S&z~$D*H%UTKD@qz z*|z*ujBEKsC*iYS(Jujc@pwkz!sn$VeDY!a1P`s( zT!r7jdM#vJ+jEtoUv1brS14TgT$6;)R}{V2=j#d=KHp8kXTPFf!ty+$aN+Y(5!fkpltMht?@*U*3h?_mq__DOTDWcJOD){)AO4GR-Hz^2_=DVz_E~)F{^2)@ zUgH1v3Ku?aCgGFT1FaBm*Gnh`yO1he_?*r-+QF9R!k(s}*6R|5f5dt%XI%5yqUc4h zZ3-7YUrEB}enl^OJ)&^o^HdT(AM<-wtyfy_M19XiMd0YkxYlc|q8GiUDO~u>PQs^B z(J!G|;qS~TT==X_!sk2uo>=Sk1BGA3dOgax*6RgDFM9n^;lk%HN%(Z*7xf~K=+#%@ z!e6}{LQcCn&E_{+B{IgD$0u2J;D=kp5R z$@1KmgwF(iACLSmhW|1i)mXSaPyVBYUt-a}&$!5cEotL8pD6qW#=G*1SFCrj#b=C# zUuxm`7H-#Dkp!=1T+7p-@P}ERbqarm@oO#qwwyOxxNV`?fdtk)eDAA9^g zXyJCfnS%{Kl+&*FbjEePxeD)!50P+8w)oifUS{ETz2C9$S|~62{#fz9hV}iK!lm9{ zS$ynzk6F0gzCKiZe#-n|7eP9La7LAce-7h1PR3cd9k&-+xZTe*Texk9?^?KR|Hl{? zdBpEeDSR~B|F;$&+YZ5@MlY1#uD962ZTrUdKozsTJ^{sGO#n)!jZHm7KCFI<0yYU z{1^GBTX=(oM=U-VCqlnU;R7KLj~kNUH(UJe^~pz)(C@eC&jG$t?=O?k|G}cS{jxNd z#G?3KZSmn{3HUO_^l!OrAAbDx@nXiqhK-LeVw~Cg_y)#t4IB^Qe;wobgvRmv7%x>g zet(I_B6IQi$ok=}7LKIyJ>y=5%Xf?I7LIXpnA37aIgyWi2YQ6_1()wYk11Tf13j*A z`3{r>hdi-^w8szvjAOm>eJFl!jEAQ0YvD*Q-;IhNy8tG0VJy$fGxT=>ra&71vN|68 zSWoy_2BI@R_W3w>JLb>w0R>i%^~y1dZ?N9U0>Tw-iwELZuh8K=9)d4sL1r1)$G^{l zEL3n)Ou{;|UegUsvT%+)_Se_ddejeBR zWra&SxUgukfe48~z_E zd^;z3eVv9yinnPK_(ZnPI)&r!Ven{E_`56*{{8|Fk-sa~`z?jv%J}^X ze~H`OPZYj@?SQ}6u=%gz{^Iuvf1myGXNCWSdu~zqAs$C|C_IbPcPc!M-`m}z z@I2P{#|q!f@%(dzzsmER=M+Ae$H$`zU&QI-3g2Vg?ReaOh#f|9Jme@`-fNzr@T2UP z`3nCHr!P|YBkY%$!avJ=suez+;|+g5V#nt}j;m`GzJ~2{gTl|^e&9xhA7?v!S>a0= zpTYHreWbrCR(N+Vf3d=)AFEOLx7fdp3YY%vYK2edaqxPD@8$mFiwc+i@M{W}{_shK zKg04oqi~)MIL|4(jqUuR!q4S6d`015_T%dc-^ud7t?+l4|N9D;@$5r|`+rTF+qd|u zfXDGPg?Hh2%U1YjxSbAA_$cnzMkst2$JIoI%X`7;3O~&DDN^{G+|OL3@N-ZRIBFFB z2s@@p;W=!VO$z@nu6LWlA7Z_}qHyWQzoqcIxS#xi!bh+jo>F)h_WL1)zsUN&s_+SH z|6>YY#{T+;!o{9lxjz=ai=6!xE_#hr_}wi3*$Rh0aYn~%h2!s_@R+agr+HqtMB#U` zU+NXUfc=8MW5Pq^FJwNSSNMG9gTHUG>96BBm+w`CkIWwClvktT<<}JpT}|gtiu1w`&M(jFB)js07r@P!;FD;0h^&odhpzJu|#3di5|;c>OXx3J%@ zQFxf`dA-8rd0@N3hq0VrRQTDP-l_0Hw%gYfF5i)STjAGpoZqkTQQS@+Rd^}K?JpGm z4UV@zD!e<};V%kr=k`b)A=ppai^uVRzaPXy@DldpAcdE*Uq&eW62`|U{2bN`e}`!E zujTlkrtk=lN7EHPf#r-Sd_U`Xfx>^w@qeMhCmJ!Fg$n-@+oww5JGtL(Q20KU=SGEx zxn10;@G(3Od{p6|@N>%33YT?&mlXank5fk#{uImqcZHX6JfyK7FnbF8mvOeY!WXb! zLlmCF{oZ(m|Agl)(-r=GP8TcudA9#03jZp{`4WZq<@T~l;r&?7D-|yCv?^TYEniZ& z$oWl$|B>~Te6ic@9Jh}u`aV3KKCSSdbNn1t`1NducNG2v>-9Hp-znS= ziJbX7Zgy9AD$h@bDEvI`=f^Aj9BxO`6&~g1recM^&+@EOcp9g#Rrqq&=SGFk=Js-@ z!UG&9yA{5U<@u4qXEFUTg@2pv@R7oQ%l%1+^%i?dT=iD?R<3slTPA z>&5bl-M+!;@d{^goOueL$MGQVmxRwR7{6K3-@xr|kHY`T?QXxqo4Nn|gTlYadi`DD zTiKr394{izac-yZ2jA%sJj(sUT!p{QadN4`ALH~!g@1+le@Wpozqwc8i`XAeDm<6_ z&p#-96+0lv>}B{tq(GvFOJG>0v|eJfY~n#_jhxMZbyZ4=ehgar^qSMUPFol-u=R6}{+{%6f>u zMDDJPi@#*QrHP7O{616Rr|~>oen%jDvfeLt_&d|zr08exy!|1){`Gncp1z2l)}Y6&oVCdk$vV~Q}lg!e1F@bM-k<_ zqg3t}#ctx4UJ9Se{rpgc%RXBZ75)mh_ZbRr=lRt_g|FsuO@8NsdZC>1J(c{PMa%g) z#Yg1)qQXVaZz^2myq|HY_ot^r<#0T%=-YXo|D3`v<@WrF;v?UWeW2*Y&RuxECVI*5 z)3O;CdF1=F5sH2?$JG>tKaLFHn62=^$PkVq#b3UQt5WnLXOqHfxF5b!@saQDZdCNb z=W7bz&T(>=;v@U3J)-Dk9Q>uih5w5RmvQh-g-bj7E8}Pu>^gVxyr>t)srY3x_iqCj z7r)59XcH8@$XTH9EzG}E;UZ^D;UZ@p<09u0=F_C;D>=Q+qQ`b5``c|-^dje-3Kx6c zt8kI?A%%;a`xzHG!z|}BivDxFF7cd2k8;ZXb8jhnk@I7Pi#@w?{~`VoIR_|Qr^WBGuWG5H7de+G{CO-0hxBtI=O&(SY*O?h|8|A@^EZXx%H#eX zg^%O*)voX_aQ|>n;bPCj3KzS*!MNB>_Idq_g`*!AvR)y+ioT!aaip)pf5y+xBN-Pv zKh5d$75y3fd{wOQaXgQVDL%7#JYB8m$FhIL4`HUzbJZ%2bc8|dWnY~3K#zlQMmYb4CCV8P24V~SUCFk7H)@g z6d#EJ@uFt?0#`zgM`}^KFHT zJwH*n*fWd!GpSeX*^hCtXFl6=u!W;NkMR6pqT(a=oT+fJ=j94-V)>dCf7wsEP0@=z zZ&SF~^KONUJ%6llvFDQt7kmCr;bPCD3Kx6I?@YBl<#(oHPlxTSETg^QhEXI$(o`@z3!;b`Ype!g(| z_qJkZ@ox`>OFR!zxQvez6)xlBOofl-b~In%!+D&oQurjE4>u|N>-;>jMd1}3KQ}3S z9ky^21K{eD28};N>^tzP!bSe~6fXOKqzrQC@cqm4J^4Mg*mEz(|0qSjoaxVDT`Zg+h(QC89MXwtbp3CFb*A)NJ++KdD=z}c(0YzWO^uJZ~2Y8E}59hc}eP~qRX*w}{FfM)+eMc!=>Yb)=sW+-{(RY!;hw^-^igA(WINrdqUeODm>lHrTGxRqr zKJs@(?pE~jcaHX2^w<eqZr-{$#J zAB7+1adQykVjuZCR8tkb@QEs1{y>qu=NCTmcU@`}z1aCmh2O+>-paV}IbhUrb}D+| z)2{F@^0@zm;xm@{ysYRi;5d29qDO!6bjJCcg`>abGM}!w=0@x+{u-cg@z@JJ#g}I^<1-XK zm+{#Om*0uZRk*ZY(c9OH`IISo`Mu#{g@2vtD-|w(AFW2=4>0`-g+IplYK1?^c#Fb+ z&G>qSzs&eXh0E{8uTi+{N8GA#`Ca+v74BhUf&A^{NCZm3csA`+ZDcs@t-ODvy4BX@HWPuR`?x^|61X9 zG5%YHf0yx>6#fw7uPFTIj2}_>LB{{A@aGx-8{-%@3=tA$95EZuSGe@gOB8;9)0-47 zgIlQ27`F=yz>7`!z z{v@1|DF4#1N#`qEz9U+qaQU8Ulfvb@vRw+7=c0Cn%XfE&6)xZPIXur2`Q0v|(v|Ay1>H|XUm%+BP$^y^>35vNP7)rbXNZXu0M>KaA5t&O4ol2U|7G%3Ac3Yyxd&> zo7amO_GJ~BcR@yHFDV;sNeKU`v!^3wh~ zs~hX;yB*Jtb88oK?E{yo@L!k5*EFh$P=P)C0J@3G69^|Gm84*wdARMY{2|X!9*vXI Ioi6|X0DPi)VE_OC literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_serie.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_serie.c.o new file mode 100644 index 0000000000000000000000000000000000000000..eaf2849e8d9f851f7344765800fa5b487aa3b5ad GIT binary patch literal 62808 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 z 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

O8?p0Dtc+%Jw% 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_serie_renderer.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_serie_renderer.c.o new file mode 100644 index 0000000000000000000000000000000000000000..a5f68879d08be57c14022106e4d9001afa6f91c9 GIT binary patch literal 52984 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 bsFwmJd6@q2v2JhW_wF$TB#z_ahn4@|K<(D^ literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_series.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_series.c.o new file mode 100644 index 0000000000000000000000000000000000000000..baa758002fa428f7db88f3bddd3ed8c2400b0ae3 GIT binary patch literal 47424 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 Kb8*gE|NjTg&4gh9 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_smooth_line.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_smooth_line.c.o new file mode 100644 index 0000000000000000000000000000000000000000..6ac4002615758b62ac057fd4f3fc5429d52ebd57 GIT binary patch literal 73968 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_chart.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_chart.c.o new file mode 100644 index 0000000000000000000000000000000000000000..d83bc9d1442ff6e4fd19c769d4c792a67a627b89 GIT binary patch literal 97664 zcmd?S34C2uwLgB&J?EykP1~eNhcszvLX$R~(t%P66v%X&8=8p>9T2=tliM^j6B%d= zEmNrw3ex&SK`RgSp{S_9Q$Z9hIFv!LP6&!x6|^c(865g>;Qw7~?S0NZr@55(fA9T1 zzt87)Kc9Q~D%C_FDjt zB}Uth?{9k<*rTJ*CRCk9{^x@EUqSv8``b)Vgz-y9ZT%5N2&O8iP2|>or@jI8jb&bfBf$!6+@PhqlqJNZX_ge z)EX)E+CQcwSdzc}3j{+oe1#;0Iv6WNM!_j0K^3?E^UXIQAmN^5x9{-qEN%)5QaXp> zBjwAO5;c>WJKD4izeMPG1=CK9em8OJwC9Q7t!JuArM@w;9UChf2~gEI3f1A7%2%5# zt@bid;*s*z21_Tv(rPLc5Meg;lWO+kNJXx1CPsh6n3FTUP0gh4lz!Q}=Q(R+?pycA zZ;w(BaL=78=f^0g>YB~aB6N+Y$^PVD3~I zwxfXc5My?vEw3P1nUtx>0q&Fz9f_ZyYzC*-y?i%pS7P+ho!s=#5Ae_J+wjww*zcB< zB0EuAemHStUpeH@)g0NE@Nb*^Tk0T{VVi$Dpl|nbEpKzQUh0yHJW33`%@T{G1o8eh zOZ+E{Ok)2&Zaa_eeK%42Jq&4Bc4Bnj0mj}gKeti^$irF1SaF*JrD7;`M}QVIV&C0D zM}9ON&X$G_WWVp;lgQjJWaLMa;cRKha3db3QhOhzA8R;qaw89)RL>JqkNoI*INMnD zPy>%riCb^yfx2HHf3`rCl5jgI2Xd1>B}Q*2T|yeE36P{t(6#4?O?-Slq4fKX36K1v zm3nmFal!J>D3=6*S9}6Q3x!WeHvUnC_Z=R|g-p1ztbKN?LApssu+ac=zBa2M{-&qt0|ouF2GPC_a9d6*kd4=|+&kRA}9M`(o6^eP}v zWZ8-R(>$y{c*khK+n0>?pTJZ(EF(|2|0AN=r`aD%G~2akO8*)b4Y*K#gK9ak6&6l; z%##CmDo^vV|7G!H|DPAn_`jSap6sxAz}89P$sR*Ir_`R7#NLSJRKa1R&a zaJFuEkfqTde}$}zX7PW6e&m0dKKvn%{{xBrmj>6yGM)0(un76}8~~=2y#+ zN0T6jU6X*f+mshvYZj8esl2q}LG}KUS4<`-(DK1EnI5e5joj#f$y7OfOX4F=D&tua zoyQwrKH}s;dVEnHZy73pnb}{4Qku6o6d;&UFAgaUt@T$=KEf=(?bWL%7JN|Q_tS!x zqxwrQi#sf0<3(;V7o^0Lt_`# ze%!+}I#pN&@SNl8$ocSQqi=?aXkB|tH-XGq0_yd|=*ZXMZ9SYAt-s&Uv?qd^_T1h* zUw4Ktrt6L!xZ1-pTqDCJzwc%Z*1{hpEd?!4OMm+<5)dhQ`YfL~b(VKY7I4Lqx*xyC z_s73J8vg-kW8k6+uNxAhUjvfmY9Kjq(Hv`OYTh6JK~vqWlRyzeHG>H24l!)$S4fAy zN_p5t63OiSdf|bParvJVBjl#-HHi@-J4uXhl|_m1t+M=ICq@$R7@zi@p8k&Z;qLyv z!lLsE8`|pXtd9P^t=(N7IMjV*YKh90vN{LbcUVKIo~>RwN~gN|2fI^49%?8B(1ViR zUB~cF@4joWyVKgz-m$%Fuz#el)9OierSMbNeMPEjTl?T}%P_d=kSimsfx-TP)Zp+g zZbezy(xJhQr9+%c{Ukf6VA&PzJ?&P>&^aZY=M;AL0qX87EEy`K>qz0&{=vf2ONLG_ z?B7~AylWs;IKO0QKCoZN9ZP{F8#xGB_XS!;lYuP;W0$} zcFGT>hLgSk#~^Zw`rA7@lPv8qioTut2O;y+V7kJIX-Q~Uor<*9x{ ziB9I?ZPfqYDNpq)%{{qp!n}?8-?IEha<~2qpYk+$hZ-y^YS}SLUPTvnQ0Yd0x~J+p z%gT%KRGt?bN4T@xXm{VRwRjEgbxJloYodscyKveT{N&kW;T3Apj1fk0eUfX*^qUA3 zVMtJAc^_mH*CMD@(?3Hf*Faq`tqdqhE}ua`a=CBf`^DeZi0DEtyE^8+N+g7x0=jo8 zq{)Rc%CZSj5Wzezh^5)YmfSDP_G-#lo=wda{EF;FUj9`xJq|L?nn}z`p0lTPAy1y` z%O&HSDOVCIW}v#Ve&?0gHtkL%yLaJow$Qk|;8TRTAD7H8;o@9}i{(>6Q zE;X)X<}Yx68gg3M;}*o=|4*R%af>FLOKX9`o>ZSTZt?g=WQwUG^9!aTNfkMhvPqG% zCYAd|R!@>5E(yyeR@@7bdXCZxcLRWlgx-o9;ffiG6&DQx!_z(^#+T&n1wyJDKmU`s z=jz5U;Nl8cm`MpS%iVz=mjpg5N?kBvm3;yjz_{?0_(2xF#`v1e*FwIQ^Yz+!lxMfJ zcS5!EIgpq&j=C$e&VB%cigU@el> z{6ys^Lw?4|PfUKs%g+S)$&{ao@-s<((77&2)ul+IOI^wXY2pEU0jawH@3j~F91SV> zHZCmNyh;5T&^4Crq`?V?$#e*CO>{K|R7@4T-CmH3eCHxrVcu^qC;^5CU2NjLcB~Q* zYDEWs${x>zRL(o?1&w~r2klsom-F*>)+a>)xZnru1y>`jfHE-Q#Kd#m*i7UQ!somB zw^2rc%H90WB8i%cN-Ny_F9XUJsM^hc5>TE%aX0^2K!pOWb@Ok9j7kNn6`IQgx=^4M z01;idRTRzc^#;7@xJtI1~p3Iv-;{;O7#-fwE zkfxZ;j847^kYaXXG@AylVs=t=@<)-Tn4KbNirJj# zj|3rvT^JKyfioTG1dO{~(lS5EmnN^pj&raY!^ zcTc2&&e%PZ`t-&Qth@}2fQz#%U#d=;DI@O?VVRLH62e7$xF zmBpug9$l}+XQvpe$@e-`AH;51lOHd76!$#36O+GNhyLaPJ^A}N)RhYOVGik7Oj4fB zAy#cL~ zL7Q`lojn1N4BDK{cJ{A9q)>8p+Sv<`CWAI7C6El-oGv^23Z#im$=Pma?FUpY<@)U` zDwhyw(4Ih+yGfuCd*T74ZB$J-%yJN!JjTtD`^Oi434E}8vU9GrW5ksZxZchpWl+#w zJBvmY=FZURS z04^j*D>q}}X=NZ>FbfyvKn&&7oXF%Y6O~#Al$#aZ9Pv@cWbkzyU&T8a&-WAfn#tFR ze4WHsa^%nkzKS89!uL6R&E@M>w*V%kMjjv=5q0)RU z;_K;roy*r^zLxNH9$)A4)%1)OGKP$;Wi2+YOZdLba?ipI>+Q7ssXs#|zMuXtIbDz* z-_KYyZ$Iu?xb8I?n|JAa>QK&+x3%Qcz`GCXY=XUE{?~wDD>!lHDi;LMYtW(9nIECw z!ogIhHS_FDawl9#IfsD^0nTMW`M!BK&d&w`WsvzRF`K=lu zT9UUUVt*1SmW5o?%?qc{5)nlH?xHV%oS4S^^^w>g0kLl9Z;WK`p~ag(n;MKR{$a5s?Zmk7VBt;nR8ngLN>HJBaGU z80HT}Vx$kt6wg6dn2h{SMKWoI&x6UxzfbN9rDdOvOx)qO>@yKwFNvAY z|7>K!ZnS=-yTf7?#vqYNm{}_oa#lk@{z8YZv zwE+9C2iX6U!Tz5O_Wu%K|E~e|PXyTiPk|KsZv@!?TY&w)1=+u@~GF5a$0o22*XOTE|GFdl`av6Rnsn&G}W|s3e;3a!!XIy@ZpHkvb{yW)Gb?` zf1MM%IY+l_Z=hv21X{K)(6V=_mI;?PN(;mv%D+jVS&}yD@Srag=w^qb463dB9X7S9 zb+P?>I`RQb>m50g-~sX@q}Wda zjd>x^n4fC#fZ?A>H%%pmf97P8omS2IxumG>Jf^x+ReWPf8LCnh|IvvZ^eTQeQ1NSl zieC>%@lQ_XhcRWS>i(>xDD3}5+F7isyQ$ZilO}BG`Yg(90*R(JbUDLu$ za?R={3#8ODOCY75*)H26)p1jV=4!>tXh|t5=a#R|pXbIt?y*uDU}Zsom4yLT7D<|F z`C>O`GYpqvWl4aQvH&Yf1zM?Cxw+)uH7kYraW@v5uBB2FU?mY?r8dCIg+fxz+v{Am zlXP6jeWtZ;FdrIw+1SBcc6mXT%N~N z3l0dRgn3ZP6)J(i#Jt5E(>5(S|$`R-(r7C3S zo_75y`de~enAM4dZwpYG)d_?0i~wpNeMg|xLhU;)PrKy;9d&ss*ACHv`L}|3mfYt2 z|8Qg5X6mN=A<&dR2Ac9ppee5gn(|tpDX$w%`IE54zTThZUYhb30i-E^6+kuRgg~k( z|0$4a${PYHWB!ITQ}IVuI2Dv&ba(*)A$@}81cb>++Q7e-?P`C7({0+lZgRK6rod0C+HrGd(q1u9>z zDi=0aL|J`Gl^p(M-fmRRa)2R=#(wUxvNpgS*KW0)!kn5dsKiW zk6KRVzyGwq192W9Hs_B<$DK6`u_c1`N2k#uYJPj)F6)-)R9d<*{?_PpT50k9yQBHE zVB-7RqSI+L!}kZG(`gyP_Xnf1$*1T0_e5utgFJtGYM1pd(W&HLGXA~MJo0Y%{`Tl} z^3M4FebJfZqwxLvqj@yN^ZgysnKbM2{hiU-G$r!=2ck1+PMY6|ZSoIBXVav>_(Rdz zWWV|TL($n}PWk?>=xnlleE+Y}*<_^n{_f~(vLJl_;pl7{f_(px=xowczW-=+HmQx} zzJlv?-iOIwW!oe(j#pj-dyWrZ-+G~IE_eTL3yu751VvOhge9|-ugfIBlz*A+tbzVX zz#xCbwrQbzvK&?JUAA*G(pB#JY?~GlC+B923PP!p58BSde#xh7o1D(KF3G7;RsOrS z^O|4&H?~bK?As~Nc>;Z`D86btD?mfFWoE>txtnvFx|1$!Ud}nM#n2*+lb?wExbhQ| zpKSRll%I0>(Sddl;W%IZqKI>Y&&*j7o9210BEXW$eQv~=f^@|?9`z%SE^Y1$BhCd# zcN4H7E(H=@iUzpT2qfF*&Z9dDV7X`E!ttkq)w4g0G5~?S9e09VKmQ@zi|H)*U?lcS zKx|_R4n-zV99KafiWF58d9F#p#;) zlh)peJNAMe#EnDycyhT8cOw6Sa(n7~k;q+F&}EM0@WRs9K;83zSgxb=xItKt`CQ4sc(m3rWn~ zOBbr&{VMKc2V~aA?SsI8IzD_g^*azMmR_Fq87GMXs`M}IN5?F!^8VWS5Ryd`XRWvG z7ekqa=~=Se@`KWuy9>2HrEo4C$URH6~*RiDZ<$G+@sQc>k+InG%qp}0NUvF{kO zyvlu^xoLU+@0$r#>7e7>gGyPOXU{L4hbl`+1lQW9wfqAB2aiu{%jCf( zz$OlM$bQ;s7f<-mnHV3E@{XAYu;fh$aOvbvBc-WuYnOG}J10Mi`_95GxKHvu?K>cv zy_ta*;3WWPXCTiOsDmRctqSU7XrqF1NQk$vyVMS`*5ae z;)2rg#pVc}y{I%F2x)U<&gQlf)#f=J(q`g+PS-@@KacpIvyJatng2Q64A3?fHcu~O z;9D2;;!xk5?F__(sX09iRV%2Mp=%Y?$IzD*G%)cY$nb=ME@#M%ut??%vV5}@G|VE& zQ_u)QvlO&r>i4Ky6m%7*B^0!0@_r29CIwy1G&d^fy4-K0+-3#s&85x4Z3?;}mxMl` zpnaUSQ-$AVFDY$@xFz>$JaW(*7LQ2ue5mz_2cVB zd~N1y3twCL+Q!%QeBHp;jeOn2*Ngc|=M^mL624x_*LU(Y$=A(%ZRhJ2zIO1nldmbh zZsltiU$^nKo3EGgbvs{s_}a@?a$_v3pRWUay_~Oud>!KJFkeUbdIev1@O39&ckz`D z#97u=eBI60J$${Iuh)oWF4}23G-_n>D7wYAU;qCxHWaPfZRc|+9iw`Sp0*cFTA&<= zMA3vu>}o(5=SZ3u5u+#2v{STV~#m}>EtiL*5p~Pg>;t~6!)NTx&15v7L+m( zV%Q5;I$uTt+n&P8(m&wdH%5h3^WOwwDYbF6Q+Szu6jq1ZQP^YWe{?+10u9(aUECzl zkUe1{${Y}Ar=2+q&>aHp66kJ$t`z8Afvyth{;b~i0jqGgKo3jW9)S)EbhSWF2y~4= zM+Lgp&Rm81o)hSLJ98bNV*=e^XKn^`T%dQ^nInK+5$Gm?PT(wrW!-FN-i9R0X6P0> z^WOl)1bVlf`9(n40v)h3p8=#!jK0Ut`VF8$Nqe6?^KXDk1-iqYIc*s_Tc8ixGgksy zEzrM8TDd?Uk+g(B_u5(Y$k`;&eRdX!bE80?wzIY(ZL>fR*jZNr+9uGyOWJ@y57}Ao zMcPh*zG!DX2I{Q=M&0zGDDO7MD?97&NGlcSB|9sB z1r1iF`5QZHHK5f3{npM}52#$A|FE;J1e6fyRY)FClR$s5vpxZ6qd+GF+APo;cGkC% zwoRZnC2c?;CzACWr0ot^0(7rHrIFl2fbJJ)VI=nfKo1MFIFkDmpu++!i{z3HJ|WPGNbX;ec2uC%k=!XO zY51{})LR&!1F{^Z(j3X9krNZBEt30r zq-6`VA(HbQKzRaP63PDophAI?kqLCdtW==Q0xfftwW}_D0p`rGb}jjISi#+j*~9%M z>|Q2WG3P&!Nlq@w(WJiuW{butmOBNRGM9Tf>CSS0flO`@rI7Uz8nl$c`j3!ggak=z z70YcRB-tWCQk9mQBIL~;lI|>bGMsMrN=hM%B-tM=qLlX%k_?j|*?n<8K}fPsf|Mgv zUjfW3XEIfikb`i8<$j+MXstz7ixVvOW!z?x^d;kGAy0=cm|}p;BpW6vv@Yfpm7I?h zu7!-3WD%au)(K>}B;g>ppc!x`888#MUFRn2rN|%U zbZ5B~Wpy9YslWA7=?*8lCgbu$ojMMKU#g@#%cV%K`?^jo@lxr|aw%r(PQfj=y2?wX zJIkdguDevHwtJ~`XSo#1b?bHNHC`&+SuRC=-R(N{LtZM~SuVwX-BF$TB`=lkESI9e z?#FfN^Ij_5Az>OW-_WUl^-}51aw&rC{z|7#gZU9@(4FN{+}O2o%k4eGOQk!@rAW9t zN2gxorP7_{Qf%2h54V{kUJBolm&>Ega%mauzJv0R`IMTyJeGS6rI0C=6xvQiw-b_V zsE>5KGK%hJC=c0EBM&>*?)QM?#*l3_Qdzb6BKck>3S?u)%oDC}Dl#%vvcpCR3X0%V zwN53w%&C^US>wn$O9}GcEO(d^$n_&btuo(=+e|XmlJNk`;lq@Xh8tOJNf6e*pc7v6 z68zRt0f!PSm)7&{cW|3Y)?6siNk)e*7)6vqmR(XPnq-ds=}5^WQ$JR+nej~IVLk`F z%yfs5l8wtdahpl=fRG7V7?aFy%1D!fWEA^!4A#Rt<1RgtCh@{kSgIc9Qa?%CVDGUw*JPCYe+Qs$n| z)6Z&0pbHo(S5P@a2?bR!)Z{34{j_uJgCL3Sz=f}JL|lchgo)EGaH!sybQYUJMtm67 zwPsRD3cF~S;vy8CP_UbiaW!)WLiF=JSP(SDj@7K7Z*k*@QMH_M}H- zt78QAi@TheXZwt9bEce6j4Hu)7yeKai515qvDZ8zYa^L!(F1B=6b}~uQ)f&R*G6Ld zS8I`77!cXIfXM11`BR8x5lekQWDNn4H7b!w&ZbBv86c$^7ezAZNTpJZ=ExLks#cBR z`R@lShH!5zxfckfD;Gy%-}g9uhq>WVd`V#3&i0kuz#Yp$m*QHx^!gy?Lc8?6K}?Ii=wrYz6B~;cII-^n z67mb3oEOod3R>iptVFLhNl2x*&0g`dAf?;vIj?9+dBsU5wgAt$38l>r>!X6&9Tu}{ z(iVp;QnsRdz@E1X<&0K5Z7)s$!yJ|uf7OZI=FvUuOnIJWCaL8yXI>RJRJ!xHlY0Wj zM~#TDIdc+7TdivOmc9HCsK7m^IjH!X&KEtJN1W+2i@_k%rTE+S8Q(;jgpTa|aUjVP zoLw+`00b2_s=|a^=NuIZ)O(TZpj8J zC%i;l9(RR`>zD17PobRAC;wre@j?(YE3)Db8spOB=)O)Dnkd{0=t3sjrD@0|OX!l_ zbji}Vr1kCyU2dccshmqn=#u`pzoI+p9hXG!694XZ=<*A?9HPv3QkHWm3rW)@(MaIV z&Kmb&G>YxQ$yP(}-Or?j-2=$SbG&20Z%3KwQ>o~9hXDErwrCRhQDN-qQ?3hOr&58O z8zYklJ>h(KR$FK(PQHybp=-)~!W>1Ca{}V#yJa|ckI%$!MP^XK`IO@@)jfmIIX6Tm zttS*eP((z9R>|+C^b(pc-=>`IAmDOZe^@2Qr_hWrsxzn>;!%EV?;b)^4Gx!++Vi60 z2=%m=#!NCuPb^w4z169Lh|gU+k#b70E5_&0la42-7(epJoO5gECB{v-0BGi!*_!|S zbn>|h2}|UKM!|4K0l6Hh1X27w5NyQxJ9KM?j%AzubGtIVrejQ^q`** zejtM@5kXutK8GG$waY=AZj3IRxGp+jCgHgu>|;xr7b7zWwM?g}9{;C3DM2WHwu{+g z-gAHG*zX`b#~cLpF2}xJqZ|tJhb~IO)v@VR(Vdj_V{9SyqScaKr+mj~OX`B${Ja08iGB8RTp#@l7}9G)jD(N)q>G;-B1{ zb19L@aw5?X#*4q2v0yu(4U~acaR`#MobfWo`Y4TBr=*t&w1;9j7k@cpAr-!Z&|7^1 z`y>32>eqB`>FJ9|`G}rF&sC}xTIg|hix9>uM?UTgH&Xh%KwI&lUa!bZWNgf zh5v_}Gj|O9gaSLGobdlZPXD5WkmGXiZJ-R?(7DKE^+o7PAK4It?j3Tf@JJn@`XcAE z_8ffp8ixBL=diLL{G7l8kt#Av&cS;HzC2Pvisl@=`t{8ui4d=~Azm+xoX56L^SUm?YyJNi zuLu$1LFWkdrvBWiZtO#A&={7@`H{Tmf%PW>1U2N7uYYyc3nCem6=LF&0Er63WO-tx z(MTW8P#)pO{v!uBV{lPPbUAuuMZ`9FY9S;(_Mw|~MJppS$v*o$F}X7%F)9~1xJ|mD z!0QItK_n7KK%%OD%Vm~R5Lrn&1Max+Y%Nw*_@AW3{CQaY+J`QPD}DQ?U8nSg)$L7t zH7RQ3U^$brBkV6}F+?KlG3kn&$ZWFbXf$VbWijh9{Tr{|FRDBH&{ewL-`EXw4^mw3 zar;cEx5;wJQ(Q=#KI0MihR67un!q!5LKqhU-?7gl>!UgSuFdWoSes2nv(}m-E>hI2 z?dpcvf8L%d6t*E)a6%Pg?_z;fK-Csg?yuNvemhSn=vGr9ZuJtYfU4zI z-)>VT{qbAfgUsCO+daOxneW$(NUQJA;8=V~t7UhaYIsalV;}mxroP)=YxeaXJ5K(B zZuK>`Qc|J*x3OE@rN}aWH`=EO1>I^Y#I2rh6;QR@>K>aH3##BIkFPBW)#@IPFQ(e3 z8Ie}^Yj7;StP&#Uyg<{q{^UpH&OUVXLd%*)fb&8%wcI&)eD|WH_0uzWYv$mw-HY&U zFzaW_dDcDn+-^4B&M{s)IR{TD_!m3|oP*cyk@R1(b~p!bQt+=-{sRhrk>%(dyhFh+ zsr0)Q{A)$;UIqVVI=Kji!i)6Zs$-qQCdl(*XPvzP9;KO@-Yuu(RB#YN%}gw^r&Bz@Ie0+e z#X9|f%+yPC`W=#9rql12^rbreZb@Gz>00ZT>*RYSd4*>8T7l27r-_tqx*9EHgGK^p zB`>iGNW;#cwttf@^!cRxU}o98PHW#cYt-Z*%6O!Pyf{n_(%(<=>KrCqz^6`=)Xf4u zt-x*E*#n^Icee0DIOeC+Dxf-hOuXy}?QcqUG&!^6(<%h@5r+L-x@$(s0 zM@#|2&u3Mt@DsF+YBYX?<{F#>K~E`&D<;{GbVv+N4rd6E0GzVxMzRNmxS(#~PZ6cc9^(#b{TJttJU%V6N<{xmr!))CT)J z+bp4-P5Y4KKCf8@8RjCp)N&@%LHNid+?Gp(CtWfsNgE;?Ou zWKs?sMCJlTg{lN*l5x4VGdVL;h}g)2Ct!SiySEt$wQPwRmvo((#&c0{FzjA zBHh&H((R;N6k9VBu@x?#c`oOs;#nvjGkMPD)_|2M0m4A!2)FrCH)hjln3t(#_60LF zyHxiYW@H*?G%B6$+UI9x7P+;#enV#j%Sy?-Vk!914k zERz`8MeUtU&8*E`Ig^@rnkUoDvx{PsJV#nGNyLB=b!|F69P9 zAuHX01)i|L^8A@1tcBsK&5H5nFZ46G@_K&pnJm5~Tx*79mHFLUG`==>QjxtKoxaqo zJF0}Y3?j9b2N}>ky+Y(hGCsrSMjC5!vof3*l+u}6z9*MlHN`HOoSW&)DVRe9vk?zD zODRbVL1&CKXvW#|z~VX6tohLRb7v^kUo*qzfu&UBycwa9c0RXXY3Za)YWxKOy#S*8 zOc1V6I>A}BN>r+jRa#;;wu(is%mOK7b*9}0zT=)QuwqG(E5WiwvzWL>Xp`|VUtejU z*_&5SHd*c)lRuW_elhEhIo4#9CNv!*wr%@wlPA#+&0vC0e zi?{lJ>xIODA@7?QAwbYXhzvrQlny$*}#-C-1|Kr&1RtekgY5S#Y2 zSBVdUyzd=iEhB1MQ2f4e4jfYHaSHD^TU#LnZ)|8mXsT+eWHenzAe57)*HMkB8=>WOF;e%*}N zeO$ZyC4wUJXW+F&d^1(hCuJtaU1!H5T-lBGg(QIS&Y!P-jS;umv8{wDcHX$!lSwg( zoGg=@Z6%afuGUh?h|JAF-U#HAiThm5Ym9>2s5T=~oD-c%ch|G1+`YoB2+-BMPUF0> z`_NHUR1S=&xpMg&3q&}KDIR)QKF(!8O}p?Y|TolZu-lyKd~$yy*efp z+(n{f0{YI$xGOpy*s0O1SYdQLBzhn2evLca0+WSW#@~0BaUYG|CmM4XVm^@0eSC>J z^g|?2mK+|CL6S)@$l`x;xT3i?Nc<90=eg|xTP0ZP3u>eA2F=qCEPUPF}uXpsrgePl_l zR7T1U2AD>ykbu}PaCI`CWmz~Gu>&lDjExY$`|hHSpiFp;>DG)FGj?(>d~lC+!f-Sz zBT|wR9e@2WiO6_oYmjSc#Q>=kr6pPCrbK~alKS6 zW9w!owvp60;=H~)T;KIl-<^)C@0YvZPJK{e>Jd~3ohmRY6lxE86+WG=!pC%lkNnpw zBu&vRlnQ^03Q1neoDc1eT^KFH5E_P3%m<(7X7w`{(AR9}aAbK-^gXa{bBCdpInnRf zuL4mF6tbFhF%=CM`B6be1zNF@gbyRX2@_pO0;yv7~xk?(0A8uH$fkJrj~Yy+Xr?N$9f{exCb z^}6Kx+LqeN+Pd1-P06)*)BmPqV`WQKTXVeHO4g0_-u)VSM}JRu*S2A+qrH2uKRKA{ zK-FCkQcbe15#RXwcwMr#VQnK2wT;Pmb8};JvZ1k+#L*D1Y9-P&t>C;?F&*Xud282h zvbKy25BK+heov}>D3ugZ)l^Z7YWuo}*Fr*;C-0`_#+v4MOG~n{qS@*iY~PYp67_Oa zw6!)?HP$!P#arWkx$4HMw)%KOYcgJ6QCr8Hv^KU?C7LR#lPw!+o8o38HZ-=?RVOR! z8mrd%6xKF2*ZWXwZ7X`8n7}*u`91pPzXy1K4S;^)KQ6#OBp7mTY9HR_|J%XFik;m< zO{zcJJ1-j<8cxz5FC_i{XRxkFcJ_~Kf$aUxs`UOpL6;?+fU-a(+Iy2j1F4QAc2v-7 z*3RK=-5uNeQcw|6g^G=}Ey=oymR73%o_MNJa&ZL4cdw$|3i8`~hU zjZL+rC!z)&J>3H=hPsMP@n%S%YF$lpV_QS@sm2cLFm%f6sQQZLb!Zp{$f}j3tIeK* zC2Ja)@hbff3r*A{vxh3`n&TDKo09dYnG~(Fy|=wf>(0pJ1-^VFg}zf`9ZV#*rFsTf=(9eXX;$rPv%LPtmpVzZS`^;q9;uoz&6%$0c+# zFqqn!8pJC@DP?$D68{K-K4PkD|A&0>R5aAqGY38jaKakt8%*JEMXuz(L+MI(whyTMu?`lr zD$&^3f~kZ$O2$~@`gk+$U`;!>$7v#IAx*<9VB`^1!4UCHa~0-~+A7G+w;60|toGsl zUaOCU!4_u7szaxu-iqedBw0_)Kh@Qwtx!2)wxNHxd+RPzFY9t@FKUs#tBbE~rO7G| zRtc#i7ogt!b%4FE?AtQu8c_Vc$K>Evm-Q!$2P<-PeShYikm%$;#%6 zsyO}YOc(xVqx}kuRWP%@duXJ+$HHvE|6Bv>t0yQFAKPqzwY4z+E!4z@8nW~D$+Y8CFQFrn9BT3ZX)pU^6sSxuX0is%}FvBL8an$4C?^_7ivzJfs5@rG)&d<*@p zO*{QB4(xG1&DYdi7#Q*eJh5!_Z_&BlEL_*VCDr3i2x@jjXAKQ0)1s_8Nuz?glGS^- zf23m@c>p`Rd%K5sp+Y^AvP$q6URy!Ki0ThmmWoPf7^7uIPF6Hj#an1pL(N7~Jba+z zT`+PMcOIq@DCdUS>Y8|KG7+zXVQOrwYpsR01dT>jB3`u)7E3E`lV;B{2Qg+#{OJ&C zz!OEpTvZ(n|0Mj2hE{a+R{Yb>2)rlVZJ3YhYO88n$=4wN;iUG6_Q3qqUd;Xz4ZT6J z_MY`y3zOmvHKV%|jV-Oowg${DP!@8&H0w3+H7W=Dx8n~r{H~$_tpBK}h5q=+>o%`9 z6Zm_iE1}-)J$3vqM|!fBQNU9WJ8x=0c;zZZg?14GEgggXJw4UkzjwB_D*ss3}xsa(bLi?Y$qAXlYGpPK6;`T7Av*W*L8MH;RA1g0#wlGHYof5 zs*~(X?LY@%S{&@(C3Zxn8L@=Y@~z!{Vo|9ltH}eYN6$9GsAxMwzRFN9{@}^l)}0z` zAMDt+i~g9YuM0L;cMw`#$)2QT{wojQy0>)qU|i97X5WO=)v6iZ&Nh5)PkR>zg)+~rJQR68_UW~>)zn~6sb+0z ziYIwUuCJ(Tizh28VTdrfnue#U4$}aJ&M+nmn#GK<)c{u%1KDU3Rs~SR;QvzvmIifW z`S`4|S|PomQ5|o=)X~I-oLvUAt2%W>H|87iObYoj(l^xIg&7Thp9RiRsfsP=;`WYV z(o0S8EyjtLMV!ik_F-7YK5vM7mO0tjP`4?(0D*?Wc?&tvSbEWlVXe|7UNsneVIida zG+nhZ=&LHo7+}o9%_4`kt?5*%=`yd7Qy+>5RX z_%vc#I<>X*428#!c8D!Cl3C;fT7nqT+NI}S*yS&tJPPsp%6N4(x#GNTha1@oC)exi zR;;!RR}#}$^Cnm>u-ehziw^G|h6k$c7dxt$-BW|`AeVbR7{92kqAuA|Tho9g3S3#8 ze|c9x$<>6M|e)$K#ZDz#!{xL<3T4wqmO9~y@H zsBH_aYxVH*Du>?HV;Y4X(Rzv1yrHoHex2?hzq~)^X~RzrrnrHg!J$9jQW>;$c%%P4OTkMt)?SPOP|^*UIF1poMV5ni`7kI zQ@pv=^xH@UdF3Tbo}>{FFc%}{(%x|X;W~l=J%p-sJFZCT5K_psB6CsK3MZRPhp}pJ zX{&9F8zLV$x-J6Sq(oCT=C$U=O%^Yqk|P6HBVbkZ9~Se(RLD{6ohSH7-dW0LJ+XvtQKnS^yg7F_Aa zj{Kz~`2@yaGA6|icS&H5mKr*u5;8ePW8qhl^IF@0H5{AUt^FM%Lu$19YH2P2VZK`X z`+J5FSn;GBTm;ZWHaOV6%bZ<3`PS7otg|TQK>?$aL|czgPOaH)nYLt2+=G!ztPKt) zw|Rc5n%Km3GdilmZzU``)Ya2g#4JWQXyG|WG7l!V>`D$$Ac}hy>#G*(Xw}7)@tRsp zMjWg%!$M6J4d{8JyP=55`icfbESnH7pvlD0(w3&$2JNNwV*+Nk+ETs=n+ig;o6C){ zd?o5y6{>^B-84MN;`ZicUQt-ReW~95KDb%%b0qqT*hzCgVl7^`g}wb?!`m8anky=O zF(Sf%&`f;=)=lAAaYJou0>fH`(VwkjSLl}c9R6!~0ZApkc9#2A^?jg`h1DG^Ho2+`8lD!PgjR*)+m-;9e+FAq% zd_;A8ZEXW$73}eQkz@(NHpda9HhmA8ym`iN#vjB|$Q~1SQWnY9wk^rwc0|jq_MKRH z8!CjAB0>NZq)ZO?4lGMrLmllXn(XT7-jdW~Ixt0%X*EX2SUQ7sg!=zi6`)7Vy<@w- zeClWqEYXyG^*ur{qwFBz%kBAq-&(5iW;+gaOVL z=wub6fTHhN4N7cHPe8nefoPk$`w&*(6|{=q@FGKpT6OldWaRuFt!TsI$?O0cwGHqC zF!mb}k3ih9E4dYRofHQV9ksZk=B1EA4w-CeVAF%+;R6yLPxf!!ilKU{o}tm~uR*B} z%*|eq$%uB1HObdB!@KsTcTbTku)VPXb0@E4O$L-brSZXzq*tP@qM@2&+%(qK#W$&l z=t)DJqiB9dP&(~OP*lAME8%L)i+(r?jBVV6_;I|NLUkC&nEt61YB`CZYaNYr#=~#t z5VgmVTB(~s!s>Ws8-l=|_636!UP)O8hQpawO+#B@)$+3nmoG0{QMRmbN$>DTU+O&k znKNP`9RO*ie%{X2tCp- z>)5^ore+w?j{diB@+ojk&8Xl(QifmL^yuXSiKOA(P z<79^Om5zf5zJ|c@UPo43mRRJIN~lQBDI|&Zjt)eQyJ<(rnDg~UR5e2O+ycYG(EN<0 zXKh1MTdNYL-ZhcE65ckE&>3c*y7pZZ)K-pobsQ!LOHJwr!;TvRC$QaVF5WP2!(pSS zL$bGhXglU;a{Rq@vUql$Iy8BqWWzdAw_ss}U5G}kxV>>ugU!ws@j`qdNtl4Gty;_J zfO4`4T=cI+^aX*-j=}B$4)A!?TCum0Y+SoGNdq(q6H)Gu4ZIrPK}x!W!rw7#T?Rrus(w zA>&&l-Tz5*-GDBVU7L90T7wTU__DRJe3fDMY8%MW#FioXcjRR80QKZAF=(ryjKSjo|&t_y}{{DBenyR`%m z+TF$xN=&M}gGrudOM=EMFlZTVJNnxQyfeNLyR4W%ksjK$mF*);0$2lVw^XRl+yC`D zVhk^hsL5EfXn9OqXr80XwuE<*5NP1VoH#|a&1H_ED2Zn%RsZqmfcHz| z9LsFPX4`wPZ^AlcI=JT6Dz+8X1|cfsjYaLl`{aG4k~xGFVSs%?ZW09^Sc)t!ktDWH z)-}+90*}X_r%MIRc`{iUuY+sljjyT-jy?MbZ$!%w?w~U*m}@BH?iJ#(NWmTHH@y*Q z^ey>RY6lulQk(*sh^dYAz-PvqV0jYyC5t}Zy7iZ>vKOJXBjd^q|Ke8@fgGs~p zB#ALpi=9@*l*c={WxN&d2}}ZrYL~~uiuLcpQXd;3UTHeW0o{UPL#sWkoE*~qYR;WK z{+fRbkAn7VJR&qfgISu|X%OkCs|18Xo~P*vcmy!K>T4S)HVhH3z_Lq6R$(X9mbt+W z)Rp!DX@`BQrPtU>m$_d#&PB3rYaureM9d>Yyy=R`G`XdJr2YodR9mSlW1!^o98-50lL6J%5gbrqL>@_^9c~y&O{lzpJ`tdlfH8=t!&Mn6~ zpkfphX`#3Y$?c3J=t`KYskwGN=2jec8QPZeS9y>HO$r|C)#R*%N15!3N)?m{>%O+O z1}DJ${+39cKdtfR*=l352%A~1#f$5ZMyL=6m!zQ7;BcWAxz&akwgF~Wtf_1$%UbXh zVkXaj2#Sbp6;Hvm2gGqc-E(ja22z9At1}2H-IAY?L2-rxeNYcQsF$vixDiCZ5~A1c zB0|d)UL(orKo&=H{7J~P`*2h-NGUh=HgK*0k$>L92EuGU_PVjl2a7HCn;bT^yWbU# zdMfWWH0)&MqBL1t)wU+=4G~SXy`kj>)$Qrgv+}OsuEGjaRzV$Cy9$Ua4C3I3v8%u_ zabM|V*OL_XOh^sw3`kcmps<=Fe^)ECGMo*yIBAFJy}3jD9mBK+mMF3xWOTni)z<>A zv!WUkd%RT+j2O#5KBuXUpitA$_q<=!)hy;;_i%9ar6)0jHlerJLGJ7x^7iV8?KrLH z)nZ$DR*Cq=Q*9wMwAJe=p%!sW64$CE&Wqp(WUoJAnwmt1&$K(Ej~<}`jW}(9Qw2fS zR77r?A)NH{rcdagiddl=g74nBhL#oL_Ii`=vlgT_`j{t zh@edxa`n8C8(7J*ORV;)E4#4=Wroy6ChPq(bc#_q%oQHGIK(Go*&6P~VK2BPw4hWG zXzkxtV*0~Uga)=gAIN)_h|iI`Ou=zFcwlUoP^g7>OMK%Y=QGDPG%a-O#269A<~^S+ zkUe`cy?lToi9y`m@8@sD#;dGhNQ|_pL?;CiC*DxeEYZ@{=r3^ZADvT+!1g}GUA5a! z2kB%*D2HuiA*YPH_^s+BG_}e*d5hqERYI$Sb}yissT6gKuZLO%$@}c0s01C@fTNqj z!762!uri_pWa>Z$k7chaxTw_@oyt=yGqAvuJ~meyG5?)ptT-a4W=duLp+tP9#!%6E zY_svvN(yOK&{75A8SML#lAjHCQiWo9zmJBVL?2K$21kPYJ*tV@_9qCS)Im-64eT0x(-f3;%1Q+ z8c|(ZZW;k2K2zvVMLik`qV{^5H zQ%}LB96zRxNdU zKi-^1*dfv5D7(C`Nh-z>e|Oo!&_R zKi*j^?-bUS9(saC0mZ&GEdszhj+I*ltKG-ovg#~x6S^CQq zak!h<55%Ex)(elPs6(A(!rN(Uo6nN)o-^6WWIF{wwd<`{jaWZo(osgd5~Cw<+DlKs z>NHNsEs(&9-@rH?f@p0)PjS489+L4*f#(<)OCQ;g7m*-XP(#(zen{}~lolMcQTv?~ zuF~83o&a0g@YD?*u1oK4i?O4CK85(L9zG2$%SW}5r@T!Zy5Ly^)j(q2CW1d}Ch+tD zPlTtiSbE|WTLU)_2OCqV_~i&dRl__5TUbjmGc4&<(3y1Ec(kak!F#O8YjbO34Gwqc zO?uWT4h6t(8M3zXqK?g^e+*RhyFMJ}cbWwI^-9Rc>qBvRo6+m2aJo_KyMK7n_nX!EGEeW|dGa*PmX~x30RTK7hlie2 z2Z@PoAKb1aMmE&zC3e&~{O>79aHo%Ko9CX=94|frAE)98)i}1*&W;o@mT!qL$GT}IhlP9i_*DN4%?9HM1# z>`QiU<-O(Pj`qPm31xVZd@)Q(JY`bN!A0Ld(cv7NuO-EzITcHO&p@b&g@w`BhG|$w zsS#elIX*6)O5i){`HmGf(5}*oN_s=k>P2zXvB0R1v3X3!bMj{8&Dnz&ncEb$oqoRh%ArZN=K#>pO}WCh1@|qBWu; z+R@UBan-4C0DK;T$3^^6%QiZ&gD4Sl*h8}q##-hnGeAZh8?2+ zH(+7WWR5TmtZTD4-+aVGJ1&Nq^J+lwMfo$Q;FiORI2Xgu+_6CD+?C$$>*13MUEYQe z`dLX^&UeasR{|T}v2yj$J8yuUqIR~ox*hfMSO{%nnd?=4s62U58||ujGCHX*#jueg zhNo3o9s9$U;&4GBw6Y4NNQ&s7ImobNrI!)VVzfEFmi;MXV6r9~Pe6MsPC1r? z&Q#i6A^lk6Mao+?;He67&Wz_f*?r}{k>f=AnF>80s-q9+*3d>Y8#?ohFCWsSFf5*~ zCbcBlZ_ zho|V_eo~=|o}PZht7w3kGo=d58orM?z|8#=j;ry70_2FsrC{$;qP5)=UZEk#;%RQA z$%alS1LMu5)Ni~AXfzzpPLtz?^HWJ^o3({s>48Gk6?EDg(+EO0DtKx@f*bF{yp^j*I4Kkiq4jf8=Cr|rZ-UIep0}WkOP86L?=^W|p z-K8FOg1QbtkzkkA3(khR0>APm9#>j%!Jb=_+l1&nlW z&>C6KITC1xt;GhDoX22O=N%}dmqB#npouOk%fvvSgZBvKK+%9SK41hTC?Ur=s@0Ys zJr=26?Bj<{)KFBLsKRYHlBr=kwW&oGk@4R$QW^B~meDh5m2>m6n7 zWdlpel67~eAL_Wl;j#{E>9+pf)YA5j_Rdsqcl%OwE!3`e2vn{}E#XW{w~XMi;J2Ug z)I3;aWlJfSaAYkV85$(6m*SLta@EQu*cBVuxumOaWGOw{vIM8{m*TWu&j{A3oK*oQ zXW!C|CpiOIJOXr+E=iqM2^5roPXOi9!sc@z1)|)#W#q~$gIM^NUHwazgL}RUCUy;P zUvdVLx;nR~O<3BQ!ic8LEJ&YZq#NFqN-bGdwmO8=6o=DM9NwOmVmk^Gr}!luf@L6G z@s#APz$@@*S~x$6N~}%UHhvm>2)|uq1^I?IO9(?jAebMz9qPeIqMKgWu=Xy=h)0}o z`g2ehre9PylA;@a>W*$YdisYj*6CKxjM5#>&!sx)MmiUF+@pl)?#GeiUSecu7!RBe zFQKjEK7iY{EWzpkkH_I&I*$UdRHSpe$9v~??9ucyOP$+!oybi}as9)1wT6&J|9VA+ zw-0s@mEr9}bO=~(5pjX%fqRJD;}Q4Xwws7$c)MCn&|(6)Pa4@ocN@~UvAwBYqK*k= zE8aN9jIo&Lhz3D8l3jI9VQJeIoZ}i%PrNKye)b5%%NHmNy*!m(!AfsYrB|oo2^o52 z?P0>{KXl>00|IPc*=*T6v+aV3<6;N!ZrEAC(U(5_UhRs>+3$)}P0DCP2H+?SZ(!#S zy$aWgtMm>({SryG_o{ZU;ghZJstnE_#L^BAN}g`&Nz?$8kNp(*4OEg4|4@n|0OD&|9(QJ zJ5!>XKmFGnn}`pc9%=H*A5!HX3#32nrGHta^WTPe%Rm`dk=gwphh$FqgUV&rkvU`UsTNT>Ud2wm&dH^)kM5s#N?B2;()(uT%!EQ{hYTOCNsUGJX%>8!_tD@5KMQ!fTjy9yt1_f3X)p zU1{tPowW+q{~2%`unlX%V*>a5I%oX;317%B|i?^bwC=MxHlOyTJ*f>_R{pRqdf$ zLs+7tgl42%2>w-54XkBtPJ`c-2LHY^_y>W{f#eeCPx|OTC;3U5{KwPa$ux|`XI>io znl$)zz!N|F(a-eJ|lwY=QS>I4}o>ch%Pm#4wskp_QX8vM7?;D4V6p8-QO7XPJb@Re!s9cl2p(%`R6gC9+UKa>XlP#XMq z)8LP%!Mo72vE(p44ZbuD{@gV9nl$+OH2Cle(+F#+#i_YQHBJ(~#ST^Y9ObEKVhPr# zUsHXGytHrR9Z6HidD6Zw(s;>|_craa}l`a(%Fu)7U|!DH@c9nm7rhmKAzdggheTxTrB)HY#KTY*t zfB(zdDnX%q9dAC>UZJ=;4O$=^8p1iwLw)|9VQ5XWpkz_x)Y?+ze z2neS=8e}v^Wha@aP57}BoZU?YF97UO)O zSAmd9TSO!t;vz^j*eO2i6jMJ1T@ssdF#Qy{{pT^$W>hWIF=(@XB|7<`IJiNC;z{&~ z^+|8fk}a!~(2CX;|8>9yv7mGmNBX?r7|*sKav3^K7-Bp@jvK%AkfM&@e4bvYjU?|)UuhfYSLB~3Jr!G2-P_Mi<6Z3?o`MUat8(gR z(bycCPuK?%#(oWv&Juo(Ep6>2I{ysqSg-2$t0>&X^OvT z3QzQx8TnU+^6R*hj(vvn>;H8p{Bna%w?Uu&kyrD1$iUNInQHuJ4Ez!U|9t~be{`qw z|5M@Vhx(D~rcX?*!!`aAC6{RmAC_lnDF69F###}=YdROCp+j*J`Vf7yz28fNpG+C? z(R^zDDZXLi4=Mgj6rO$-;;ZFwW+?wfTpE897{Y5hb!q7I8u--){aXyY*{)ew@6#vD z|GW_X1;zgv3Qy!r{u@I1lT6jJDDFWYO<&VVrJ-|eD1WyUw{8yMHJ$gTq4Qed%4pHX<-k6O>43*q(N z%S#3wQ%@EtLm#GdW(a=?Wx%IW;izkiq9{m!GA3c{%M6L`7{{xzh~qpc~Uxko==1Sok7QJ?;8fb5#_a< z-!$+|20lw|jp%k=NtNO=GYx)j8vG)K54UTDk)PV7)W$kH4gNxdj@hn@4ZPW|q=Bb7 zT(`I1pilN>AHMY2l?J~z4Sv5tzX9bn{r4F8P5r+!4gQk`9kX4J7{uKuP5(B^5phJ44?cU}PelgPMb4?ojjRyTokx$qAV4D1o z82R66^|z?<`Ow}ChF zUuodYdF>VhZ|47^f!}P@`%D`AiwaNrK>hx4eChLQ2>&@jTYn4Tf1vO=YCoRj(~hrh z?*#_ll;=eT-jwH627Ze{=T-w>ZQ$=R@Miw|4SbD}|1kq^=KsEduQl>($AH?k*}zYm z3ILxlev!h5<+(b9|C|)JDns}mDEuac56d%8rPK0?>d@yVXzfNHjo0TL)Utq29283y zzN+bz@$-RMT_B07dl_G9L?4YmL4ypRX8G~(SCVnXhvowM==@J9##4g!@JFW!;<6Ba1~G-tPWkcj ze^l9pJt6#)szLih_}|cA#pi(hcyuB~g19S$-=OOKXb3-Fb>IUb{A)FW_(BNZsSX}J z9>V`v`SH($@OLS}|2%~MgKF=eLildg@eXx3K3dL`m9k6?;qOyQR~W+2rA0PAi$nM| z$soB zFI04jLiu}6m+}oEe5o=RT_OAd<>w8B@H3SC+8M&XPt{B3wdkYy`7GVwb0CaY?fOs% zf1@k;9}nR_uk_)G5dH-h;0->^#3!2U#RR`jw9(>ZZ8!IoEO3`9VhtHLiq11yHp&)H&U<)pM@d( zWy-!S3*iqa`>-m6ze&}*CWPOw{L#t~ex|a+i4gwBvxT3=5I$Kc`1K+DlS&US4dI*B z{L&f1|8G|NUvrH8kN z@I%U89SY$Gl)v)P5dLX3?mij9zhBvz$3pnliNfbIA^cC3oR5X@KP0CWpO-`U52*R* zKSOwJm&U2_s^xZ(qBAvwzg+dp%n-g;@jowwe_i#<$`D@jQx(EzD0w!8@Eg@QeP;-N zLd~Z-POkaCU(JKpg!1PoyM1d2-=**$4B_9W{G3mO@KIIoLm~Xt!~j0u2;p}s`FuZw zZ&CDr5yHo#&>{k3#sbt9kat5PqVP|4h|Cn*TSHeV!A-_o;DR62dQ9EA`Sj zO!{a#+p7isVF+JXB6z*8q4UpH{@CwB`SrfhUqbkDW#?_x&zjDa%3e$i;R_Z@y)#1i zxSAJE58*$o=F24^{0Ed@w?2elp#0BELik&yT5C%P|2wrl+7`n9LBV|?{7tGKheP-; zD!YAU2wz_#6<-^|-#t(8?+W2BUm*BfLipA~!M`Vjzh}JQKN!MS&Jp~_Limhw!9N(n zPgnZ(l@R_`#phEY{MBka{wRc>R4nvg4BHT5PpH8yCQ`DprU_42!Ey0=jISzv2Se;;onsHe0d1JK+Ur|L-_X;3ZFNG z@CC{bJP^Xar$+MAIotoQv^$Ttx!V6YzRgpJl9^+O95SRrrbFSVG$2KZLnmBQ&Oxbb zxa!c3%eXqVtFk z;Da|N%JF}G->Woykm^+fzDDOSP2p2+2<1tJ ze^WI0J@6m2zPE*cnHbV{fUi|~I>Rp}h4hcZdupBS1y55yOoMM}8S?Rd(D7+kJopf# zU!nd#65dARXe>NM{rpAv?OGRJp({Sq;g!mS^2~-ms{QJG_#5iai{WFm&sh#XqJ7J1 z_~@$Pxa;8;bpE&reqR0dbNC#s<2&H(bUx_!(;fdY>OcFDK9}Ni1fE^<;R$#}jjz-2 zXLbJgZ+HWh=Xdx-tzTIcKbJFE>v(Q>6YUQRz_X}7Ukjh5c$R=CYag2czodDp68s0v z!`0y1nuK<|3I3Y;b6xln_2)+LnYs>h2mA+(qdVbOYu&mJ{(SRLo_6rY+UGw4Pplr& zcZZ*n_lJL?{xb|-RP*F`c!7kF|10pnX&lXlH`aK37rsLET?OA6vX6ZXPgflLxeNEJ za%!&=NIyyQtv`?9^bf1Q<bThoxwFnD&wa}@j+t?%RE zKP82HCc=N!eETZAxY}_B+~;F+;U_fjErfrP9FDsZK3nD72>0h6zJfolc02^1uX*@1 z{CUkMzr&x<{Fc}E@#0mE|MPK+!F}9Ha3A+(_(oj^YYI=P8scytysO5MKTqQEGNN%v z-xKMlXuiN;vK^cw&p-AHeTS3jR6V<=F#wd47PqJpYC_ zt`_nyRWRJUzS}gfCc<6*y71jvXPd**YlM8;!Ut>J@#j)}+(tTo>4)@N)b9R0cBgNq zbmNfT@tFd5eBOjRJ}cmk&tACWa~$sYT!6RJx|u`Q&s=`T=Nh=%iA(Ki>?# zID43{+Q9#!ag+kDru|Z1_*unaF#J!QZ;XT2D;|#fcX%1id-LFq+q-bb?L)ZZwhul= zkB`GIY5#Kp?&IdrzRd07<6Z;zam&HGh3dv?z}=1yz}=s_!rh;0!V}Yw-u-6*eCJIe{d@4Np2y&h+YY$nb`b8k<<$F@E~l^mTnqR0p9=6z(dH|D zs{!9vJ$OU7%Xt^v<@D#TTppLR8`A%rGvq%2?)Du4cbq4}f6_i-27GeukpJ6omwz?f z<^L4!^6!M#SN}f(udQ}E3t!tXlqaU^2ab>HTLAu>%3m7(ZN-pJ75Fs8p$^>jZ3cIJ z+rVAl6nKK>pT6(~wL*CY!yTV-aMyPVd~&mp&wRLluVy)Xfv%r?1b2P?IW@=G_1%y3 zuJ2E9m-9Ec*V8=Lh4MQ8?YD%-Mc|vXj#PlVoVDOCXJfd_*$Uo8Z@55a$f8NmXd`|8AEz%Fr^^ou3xtoUgpM&45eMlCa zuQ-2~vmo5%EDd)#tHL`Zh2z$P`+d4(c*&>$@mpJXKJ}9>aF_E5xXU>N?sATYzpZs= zD%|J8^WiJAgmSKgx6}F826$tAPGdXVpKPR`o0NweOJI;-wklrcRSqmItX8v6y}ki;BRPOdIs)& z)gSO3Ixo$q_n+O4u5ShS1G*kt1Mc^A>cbo8dRz;*`)3>YhTNfEo!~#-7W_%L&)Y}9 zAJO{$0=#_Pkk2%@_qT7ty$^gBe%Fm5pLOt)s_!oNYuaZXh7Zy_b_(8A>*+=KBwbg} zrFG2hb$x|Uo@?OmYd$OsFQ@B2RpIkhue;!X(fn{fJVoab55jNLc|=F}KJ7ER!i(v= zpa=YS?W_C3Q*wm*4uFqPKY0e;Rr{{t@TSUVG`zR=V-w(yYWz%s@6`N11%6I(o(X?U z^_>Ubmn+n3A^f!Z!&3Oe>OU*tleAx23;#{~(hcyYI__rp@9KYF!aq}g`v!hm{c|ro zrg3)&ezWrV9zL*Mh{H+vXwCoU;B&4I>3@a)s`>2_{E*ruhvs{aqp^8HKKbC?vIH*# ze@NF?i^7}fc%|WIwZE?b|4ZeNe--#Zjk_A~&WiIb@cfNJKK0=nRL&;wof_{g;G;Eu zy$Khc29+GRQY?t6EqL>gOAsEd=lPA*RO`a|ELnm zGX;K|=B1hN-M5DH^WX;p$KHlNt^Ly{@X@N5Kd0unP1gHUUm?A}LU=d)Uz%qQz@JG7 z1v&GrHx1*Q*gcKfIOpOV_|(NebzU!y9Y-mWAK0cK7FiT%MAe zf0`hD5w&9rc%u4qD|iQuuQu?i8ZYhP^)&7}!E0*%OojWpQcrk6J?;lTp#J|9youK3 zN$}w+{}lKr#bGA=oXS5BURUWC!h7nv@lyCn?YmaOd#k5z_C6A1fdHD11p`@Qg1RiT~*O&bumjPQA|llHz$4 zyqfYU44+#!pW{ee68lUBk;Lu#}n|1nt#r~zt+6>3w(~okv~V^ z{@haglbqT&*{{_&DggKAl}o~h-X7vm8NNjOMxQr3f6uo~klyd(+yhV6e&%8LE1Ji; z!x!oC1o-!*Lpi6yZ`ZzeKKww|kp4Y*DSd9~V|Z(g-yQH8n)iGj={P)~cKI3U)2fBz z{t3_L&r4Md&pV%aI&MMuba_em%NnOQz}+sb;Kj0p<8^?S);ur(?l_NtJI*h`C#c`f zgcsC#!6NuWYOghL_lM1Jx8p9j+wmxT^{t`4=it3n&MX@Dj{l|RA$>vkXKLTl@Q^wd zs|wGieqIm$iC)kG?*7vbK1BP6F7UQmH@m^7X}wE_cU7E+!rf2C!@Xa66aJg}?IL)R z;`1)t-zW7CcwWV49lV6*?Tzq8I#2uz?(c`%4sWad*e>{=l|lpTgAZ1D4#USMhxEtc zziC}KMOU2v1z)1`<%{se8oyaoF89MaI)BLpAEo}BA3j<0%Qf&Bw}>zEsG+H~b%pe>%Le+G`NJjM`-={HWUfS@_r4!*R#KN2tACf?roN zr2jj7koxCq@Yl62%z@WdIp2ck)jabK{1=@ct$^RJ{lgmg{uZH}AHo|p5B>>!?;XLv zfY-Kq|c^# z!sV}+5Ihh3Ud>uX$;gXhzDtPEe86!O0jUZiF4+VH%I!F|2c z^}12xqA}91Q~GA`{aP39g7?-w(BHr1{Clb2`g_hUyT)%vQd@>roRP*5kxc6<7;IlREroacQf6jz|s_R|z;3c(x zUI<^V{mD}Jdd&kX;m6fK*TTxHk2yM6my7yAFNNWVeXA1=ZFsr596&QqPwMdhClUPbLv2%eG@j$0Jo zqImGq@D++%1^58Pp$hylc@6m88mG6wS0{(#)`vIJb+9Jz(m6x=7VsZc&Q|a>igO!y zc3l^34@SQqu?FZkgdFDxYXRSMf;qkvym2n#ZFQ9pT47_aZ zkp2aD6OG5o@Lt(M`f2bETE}09zgsb+pAWCAIQxBF_s>?^cWp*`e~;Uj@D9a7{@=j= z)O@}dzA`#c{B{VwNBg($;V-NIoP@8EpNH4eel?5c8`ta4CgHdR;1|^oOTnk>dQKvI zpXS@Ta9<~B4j-m*(H1@-A(W>Jd|9sGPr#4qdfHI<8pVG+JX!n0SK+SLJotS&uipZ% zl_!*E8~p5T!FR#G(6~4Z|GTb>`nsdrWuwlU&LjPX79oFsA*|D%Q2Q204A0wFD|spS zB#pa7_#?^T1$E(7H19Qs`+M%%!aveD?E-&H`-CCzGTI-GhtJpJsqm`m=YBqKyx7rF zQ$+E959zPce&%ENgIZ^Iz&mNaItX8&a{dgjt+@RT|4PTrt9@u*m2-#Mu^9Yz&9{}{ zALI`0ax*+d^LbPF7WMP{;Qk)8N8#^iz3v4sp?>u=yprb0=isx|&tHKrObX?n3*W7A zx(xog=Dqdsl#oqqD}0*b^G~?HXV&k_IsOH;-u;5~NeSTqITcr@Z>D+XTKG+MLi+OX zOKRVma9=-a1n;W&-wl6G`FDVKY#EN*9iE`|WgvWl`twNm5zRjn;X5@hX2FkZo?i^V zUU7UMUSI3T7I=Qm|KGwls~wNQcSa2nznzCS)VRy4dbqtRX&-ns+~3z(2L6@azo-VU zt~lHV@2>eX8Qw?Zt{ps!;_w)JK+RCEH26BL%fsN)bA|MNAKvvHeMj)=NMBF;s0Hv_ zG=Hvwf1&ke6MShx$p3428`bMO_%5wqr{R+|pZIekF8>cYf4@rmR(lVv7ycZ*eW~_i zHz0jw#qCzOKj(A@e5}qdTEm;``aoy6KWEtoURL$|EBv-{A#P*gr`7JS!i(hz>ED3+ zdi8R62klQjg8!(vZHE`sIQ8#wI-YYhj=n?s<+{$WNAtSV@6q@@2Ct=c|15mC`okso zjXG|AwZHQptK$}jf1vfW65RWo+VH5Hp89pJ8Scev|25bpXu3tz4BzXVTJ`Dem?+(mHbzXpDr_E%fr&DB45!bepM z@jL=g)ckx7{+iNXg3r*rmtWVn9A}rmB;0YU0(ZUYz}-)p!QD^Vz}-($;77Hu>I*Nb z@i-XXLhFP-@8f#C?elA-Z(kt9^EG&(3c=rkS1A?TpWku*j@w40cYMBvzn>8DIS5~% zesvVStb9m+27X5QT!Oni`PIK%PM4=7-0kJ>OLqEn&DV91-tQB)fe+C9*&cpL^HL{x ze$9ue@E5hd^o0BOL(l+MTNNGj5|Q$Ozq?^!GycOZPs zwZZ*+SI&P#?%>ZMea(i!C&ObpkDdxox-O)D6JDlr@D*_P^9^wK^BwTkit_=uKR0;< z-dg9^XW;((YM0>anuc=vJks%5QYm;z?aST1MjHu(g40d`Lu*LxFO{K zAlz|Fg*$HP@YC8K42OGuco9A@DIE7T_;fv92wxqN$5z9))(lU40$-)`%CF!TvxW2r z;afGXPr?gopZ^=&`?}m3$8N7?num+PXK1`sfIH5$;Er<=e1!681)ryN@L{;~?*VuI zPr>u*y!cu8ABz7ZxbuGk$G}e(5BaBFLHinncy6_;pzUIUJ z@P~7U3XFx%P`%!O_ih=U*bX11ec(QLV~wL<;puAMe45u?-)=e&EeC&E*QxG@|DyVK zgx{fgrU(2d^^*bcS|vighQqJX`aS{vwc6_)_-9!|K6~I(O9l7)QLb-aU2n;n6rQ(F zP<%?j{dw_P@Z=)l^)2Dot5ZJ$FB5h6_-#Z|#@*%L7id>EJe~?)sq0ru;n}o5{1o0( zaXSh>r1r|H{^I%`*SudAzDxU!2Jl5XFM9}HRpYKNe3{m-zrkP8dO8KZRqM;g@Mm;g zcNhE%?LW@Lzf(WFO5@M<-J$VN5ne(0G=UdQj%C~)g8x(P{-``lJXO~Czw#PK1CV~P z#{0AIXSENW4EOhV%!B*y8mxd{rS;`wxy$oUmFF9zzfd&P>j?ZqwbwcL2zhp`CywWz z+OOu7`?!0xe=CRdjzcZD)!dd(0o1v=^dX%aF5gX;hQv1eg=O^ zec~H=blm6?UT5{g{h2&!_n9isDdgk$7twj4+oiCsdz6*CUMICK+=}$BS2Os93ZbBF z;XZCxxa-wh?s_GtUQZ(Z674tqxk#7u29@(=q<1;zz#ac(aL4~cxXbyO+~xG&`}{hS zNAVw~@*G7zjzhi{Ax@6}C|x%$B6q#EMhW7#YDn*T)rUL&cfx(#_Hfs$tK9XP6;&dB z>y7m3njg|LrH_*4S2@Qby~{ZT?)cA#JO2K=Nsf=p`C+ExX7qoRb4wpf;;|6a3A+xxa-wk?)WFDUR{y?MlE=~Go_D`PR*WC z{MbmOcR829U7q!D&%@i`o`(;@JrAFTUwcC+PpoCQcbxC65*}X-ACwq80e)ZZ;Qqc1 z=hI5p?URtcXzh^xKDgVZGu-k2i`?-)82u2xrDyUe&eL;daO^qc)4gi&SK-BUKJpgw zsh2CHUybx#b-uj?o~UuR2i{Zb)QL=feLQPT|FKhya-64W z9WM(%S2v`q0q?2vg2wQ*%Ku*YNR^`#{BG@M`ogzrJsS#tO8LJ4|47$&X29z!|Hbg` z+GlO!udH|dcRW2F3&9=#1h~g(4YOgPzHhKI;Eo?

    >-9R^*F~4WU9WX;*J~@>_1Xt_y}p;bUY%91Gf4mX zO`$z5W=bE`YkBlv{8sqxaGy7R7mXL!t314NQb<=-9vv>qVx016iuAr7-Wq;gv5?Qh z$R}ClPeXeDU5(*z=l>$y<(~<6{1?L=|Fv+(`4hS0oS<@UNBTuMLcR88N*{%$kkX$; z`UZ+yfmY#ljDKmk=kpukZFSyylRP?Hl=b0|ZLB5I`?wFmyK6tz4eoe83BN<-|Et`` z)%Gto3F)2B9Jr7BF5K<)5!~&y9q#dR5bpK*6x{9mt2`=yp7_73)n3K!2?2Dwq(x80 zZ{_8#uP#r<>LI=B+Y){v$}oOwi+qB{V%?D5`Dhu=xE`oej*OS+G&|<N zHF;Q%E5S$VaU%RpJ+2O4p~sq5GRhO>e^9RF_OfSFJhe<-c3o=fAR3%siQak$6P6YylE9{_() z{xtk?`B3;%a<{YNHd;Og>0g#V51%fd1fM5=6~0*h8vGyf+3=6#?sqQdR{7gVzgxZ( zen|cv{DgcB{G5C}{7?Btcy8@;w!jO?zl4{Re+{o7-wm%W-w$snKMZdv{{h}keiEJ{ zKMVKoVO@YfrS!kUhsd*N9Jsy4$aBJ9mgj>{mwVoIK5xp4ApN`Y67Y5MvhZ#4itt17 zD)962>hM41wc$B*9$FV(NZwQ)-Kk4uL^46~j4ZP!!M(n8hI<|y20yIFv*6x`tcQEw zbr9}-UB+<;eUV_SN_w~#qxUZu=2KV*hk#Jvso(uQ&@Q>lX{(l7S_eVV6L{CTm{Qgm_ditQ= z{ZqQc@B62P`|kcJEwxul_5P_(^^aA5ETw-+ta_L9^jP(@zTrW}v(b;$<3GiG8Cb-l-Ba2>(#MX0v^|j zKaTQLx4ZnTUq2QZCtOYueu(yM(d&^c)>#!yM*0Lij^5V1Qv71aLqc8li$(E^+KBOs z_Gyes^vd}<{*&JLMHs&^?fr4P((!BR`0Gbzye#AR(Xn~_E?3AidPUi8(f_en>nQU~ zHy%IQ*U_Tn{d$HMx&GnN|4tk27q3+Q)4fBketi_beDQxQe^k9I9shM5KYCr}8`DmS zKS_(yuhQ!a`+&-XX*mloyX6-xJ4;l&-jlSw=L=6KF6H` z-TC;wUlR8#z5dI!;RR*?kM{HH*Z&`{|M|o4`pV(%^8bFF?>Fo9mlNoRA|Fx0W53SN zM*GHG@qZk@#q|0FC)B;;XFe1EANc^8) z@AkXWvE#{Noweak&J#U~Wz3gV;`e-g^fZbXC6CSDnsFEN-x&*!{&!z36o2AMua6B3 O<-h0`>OSay@P7a$xWO*~ literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_grid.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_grid.c.o new file mode 100644 index 0000000000000000000000000000000000000000..c727cbe96be5e3d454a49019a7ad6f3d0c22a779 GIT binary patch literal 76080 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 F{tpLWr!W8j literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_points.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_points.c.o new file mode 100644 index 0000000000000000000000000000000000000000..24f9eed335c57c36a04e98cf334ead825cef2cc7 GIT binary patch literal 61688 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 jE|1wtL@KcVTDmwBxV%Xnt?RrLZ literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_serie.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_serie.c.o new file mode 100644 index 0000000000000000000000000000000000000000..e7840c220b9bc5ac46e0f7fc6c83fd65f1bd6309 GIT binary patch literal 61440 zcmcJ&34B%M@i%_XUBV54tRM*}ggtCw6;VMGk_!ohBxX@?>E)8#gh)s*3*v%O&_YU8 zs9HBv`l=P}MqQ~ZS`}@pwQAM6{m{DLQnl79RjdD*d1lUi?vQKzy?y`Z^T|2q`9AZ^ zGtbOC^DO6_oAbjJ3w*BY$l*H2Iq{UBjwBP+RWB3=8yXk{Wq$u08{-D#9PWe6i4j}pa!993+!ls=DvMZ7=an{U1Wl7p1JwJ5i2Yf)y|g?qckBmnV3zzc}> z6=hOI$dd}yA1v#s&creaS}+>x>He5Sc?cwd5>Q>wV`V*mA~c~u5vUF1>V6v3_Bas2 zJyfx2{nJi&zNf5S)%Jc1kUicv*?ejkH>f9k0F>4f{$SJk51g*?lqE_arJxW?o(3Ew zeoAzgAn|gLcn?Ut`;&~U@UF(Pt%0!xWP|X*>3hNO`$PbE_i&MGYj`*0?f)brGrS8MaG>lW zauv{f+*LNMf6?h01myu`@7WiA5!zL*H|{m zXr?Q8sM)8H*|DDPvEQy7a_sjflQ3~h9e_0SHWrRN9=)C1`e1^&teX0AsH*=>C0^we z9#C1}F`lvxqEZs%s1~<5)MK7TV(=W&@F5EA49TtLm0*w zAc=Wj#yF4oibhRLL+0SpUV|ZQon#=-5e`x@5r<)sa33lfyjKLqAeLFSb+CuVS=+XI zWCQ4A3v~GnhuUs8mE9L6HwD}6<@Dps6N-gV>G0>-?n+2s={ZYJcqgQH0^KgK>2A2+ zWi=6!0M(-lJWV4DxdB8e=){l)%`e#iG*ACmHeU|ygG#%1>h_T=C;^6!B(2;}K} zFQoT^K#zkk&=$9BD>$AfFF4-T6LLLydvjYcz;3JI+kok}d+Ich`bBW2?;1m90mm1u zX6%PF=+J8h=n`Yf|2r2xni$6Q2EIwL_Mp|wKD`fnqmc`WV|**h-C7jt34gjZ{At2u zB_BI(PxqS^HMC~mf!kofH{{2L-=tyQFsXmDr#cj`-WFzC{sgO&qE$BYvSQy-5M$!2VKGOm--ys7JT=nAScPR}OtPSlTJHQO zl-i2p$b58O>RJ1WLTHD?lKI$&j5c~621@9f-Y^C+2MU_PG>Wno1oDP0Vh<6(o3O_L z(VSOCChVm5#J;$-dYX}7-#5=BN|~9odp(G~ndJ{3u?CUCc_s6Iw8il22AX})_bDnqqg(Mf%?=@r| z&QJpB@B8LFVb;LS6prLDB{Jy=dsioOVcE(zpyaaM_ zR!3XfrZlv-ws$zKEp0JpZA)j%idMKrTf1XZqK%EQMyH}>ZLDNvw4cKuEPwpi&hbD-*IpFS3IatMP@;&b%e!D*k%soR&aRH`hOSu`tMA_rjPOst+8lFlA;9nQ6B3j=Saq* zkMf=WWqGWhobkV?|69v%Nyaz{o}UE&Z{dRljuUj;5b~LfCz@~LjU3S|xpSQC5XJZG zP(Q?`1cEJXUCy|b2nj*kGL6V_F+Fk zC}2Uy4=x1AWETxN(z~yw`*C*)5S&P53qxFc&U26xcv-Sj3NsPNdCLQ)WqOQLre|U+ zsFIW!nLd~Rn)}&#UWF+~<)Lf_KRW9;pvewUa}9J%)(HrOET}o-8L!03!D}Ep&<&@l zfpg%T`2#q)OX1`Mwqp7kNi+Bl%y|n>NJN$N8ul6)1*oR zL$88Vu1SRhLw^RTe3M!b7}^MGEikEa!*iNREi$PYCbc*)^mZsW$D}F)Lq~%8i&z~y z+zGo;SQL+h%^lDf2)*kG+Y}i35)@|9n*&4NffNh7GB6aKK9gBp>rVI*Sz%#fRWu+F z454OB%_+h3*=Tr^>St2SDilnwhCFU}S}?s4QrzwVLF&Evrrf|_`i~%w+nr_dxZT;o z^j|~X948P1-NPN2f2cout>=CPc4C`98>56F`>CC{+n>D`#11?Pr_8^=$)%GCC+IJx z%s#u!vnDYL`{jTk0e2A403|S>b3UC#>%#*6PqBi}KvkL3fzrj36TqGj7zekRixH%g z$r+D1#{zf+N`cy;TqjVE*iOJUBSyT&LCU2h-Z=s6Q-KztLk$_unr=JfOb-q0_G4c= z3}s*2AA=X&o|%T^bh|F?GsvUcvjz+m^z5u_1wAM07P&olzziW+KQJt}=cSV_huncR zLS?x)5V#yA)30(b28AU<`AL!n3(jOlA zGq|V7QhxA+O1g;kOG8P}c0AwQh@-uG#1nvi++;?HA40Hcm zvS9|{_t1SN-QSD%zAU=G5AQ=cbbmk545Rx8=>BlJ-%IyL(EY=7Kb-D=NB1L0#EeG| zKMDG^QANfdhEv}+IZuw?06DovuNf6%zZSVOGj19SIfm-yY_hsZ?8?TB5Ep64nhvSJ zY&c~ufD?_MP8Bs@}Q_PEH7ywmpSWZqmvlpA=AEEwI;2d{&Wf3o3EElBZe}5HF~d{VDmSA9 zQbmSmyPJXK%1o-m?T?d(YLn`A2b2NjQf|V-6FY&D^pKgg!3|;UhH#^sfqk1(o7@Zx zk}x^D0Vp!>hm%Vu@^p%yL>-8LMgseg21T%F$hL;&ZOs0MWIIP7qy8Y2i;=-4j+k@; zsL%isW=_EDc!ijB0>~{e2yQd6@h02UFcZ>4(508c4TZ^|X>j(rLmC01sc8T+Y2?Yt z_NDKDO(SxjL*2~|p+TZap>sbvqep-W>D-^rX>=YyXETXPr~3>#n~^Px?z8EfL+3$s z9!%%M=sbkZxpdB>GmdmHjivM9bUuR4!|6PN&iQm6N#{{?9!=*lbRJ9RadgJf5!{Q; zX7W3c?kCY1Cz-GUqw^Fx7aAQ78an7P$f1rj_|j}t9Niyw;rP99ZzAuIv2MEK%;Ma0oNuVn_icOgJ1eff8n97&4I(xyB@iP4T%W00*l0zcPsvz}f?Mh?u!2j&BCW zl>K~JB1vdbC(ug2ZZrOO>QLb*NMOxBlim9g4{p* zLhpNwpYi3M0tsgPtZ&!|V4QE%mfKnIc_N?7#)Y675^!2>$RC;sDI;L2Kl_e2pZ@;* zF~FyQ`TS(c@jyrdLRSUBo893j2&3xUYXYG=JVrYLL%xbLx;BtI0T`Lkl6zfXz)her z6Iybw5A?&?Opy^_r%9EX)K5*S%*^a^Time^B}x$Vjd)fhn3Fp-82Z|iU|P_YV0tib zCQ87Z`uWDCK@y0;a%i6bsxNQ@o=~d+R7n7v6DY+KvLzqP8#B683L0Q+K|KIQnR(-U zp<5wE(&vr$W#M{nV}@_9^bG(#;d#6m(!EuRd=5+dmrQ(bL8Fc z%f25{#vFMM_%aKjx*~4wjBzueI^)ZEBYdGQNR3_xlJ=)AH~K7Rq`Bp4N0}72a#cV^RoP*qakHNf5Q?Ws=ThAKkNhV9sp&tTj=CJ~$tecq-QWwo3n?SbjlLns(HY&~uGq)BuyW%cR6!Ul#len2?|pweo!Kn0_#ewh+HNArBDt^2dCk8b}#t z`x5%_%ca-~B@{yyY9AKJ<@Bg*;xK=Q+M9dxd9F-s}F*`yS6X z{F#rTK~1^8`Nw|)&7Q-u1bmYYO1aFuSNx&TkZCAi^_%vX)N4lZytkAW^v#+El$N8U z_>P?~Nam?<=hCSK=6P-ul1^X_^xXgs0fB{(&OFDX!8<2_jSH-TTUwo9%qI>`;6k{~ z#HepLVlQ+8S3x>}K{D_uo-kYmFaQTI3Is4_1hBVczK-SSbRzUuC-4Pk{}~ITBL~py z0*!b=dk3)ffg|yRHVL3@1NT9$>BeqGzeS+)?=mfNhTvrQWVGIqSgiv~WDsP?AY@?X zs|YaPq5XcS_&P&yDt@(;cewoUbR>+IH(bXJ#94wy$7kUrT%!e}K1tvZ7y!*PY$l8x z2oLh(1p?(@D^!}37Yt@kggnat!x10)OeR{R2(xgF;efFnCu_5BAXa^n2OB17!R&T~ z;?^K0!I*$;Vlp)74#91V9Ugo*^6uZ9^;<+}a~yZ3=`PQxT@qoq#%lD5PgnlMg?Tg>tMD0v10Uq|K|#5JvG`DmMlTj}9O}au1ju?026> zLUfpP0zZeXIU?>CM3mGxAUD_#6Q6hmNOP3L{XUq!d8BJovvJcf2O^uxeH$ z*|x(!@DIc;wbv_8Oz4EVqzyPD?C^#Fk-pyxDOHL)Vn$OHq*fAec#SDFau_g+^Nx#3 zrDj1%XUH_#Ix}8$l{;_|7NHY0-zDCHqx`aO81uBFK0kCHr59Bji#{B=&i}lRh;Ajp%;3 zp%csF3ua%4IE@xG5|BK(F9fr%M0_yL_z23Zc8A=B5NUu^jk{m@%;>F@?58jnhea3f zV7UVE8*iMEW&Pfgl16QL@25;e%C8WPw=3_1lQ)3*QOx>%FDV) z^9?LPh&l#QX6F_gI{^F9tNCA zHb-RLVq|ee)(cG9=bMLt#J~OEc|`9QSwB9HWQA2N%Ie>K<@pm>MrRz~JPQgTq8#4< z+;Z@5-+jLGtxZA|NF$6&c6n)|!pqKgoQcT)Q_~l@s;l_w?zjOeph`b;a~}dUK7M-g zK^&sv`$GD;n}VdEP$~&Y({$OvLV8cQ}p}3Vp9v^nEvk{_ESm(iryzHmT$Mj4H$GPKN4cx34(e@xS2C zGM=)OD*CI-j>U!l=oLQ3EBq5EOqTwmTVcF#B_*G9=U{)rHj`J~>y>Tt%044y?{!bZ zxeG{1W$$yBB$O3Dgne1BZ2Cy9_g8KNr$kcr*KTD(*-O28Pvbu5?pP#cFLf*N9xO-o zUgjQY%2va)6y{YV`1u}#WnSgC2!r$8Fa{D~u)#eR1B`Eb9qDhQJDgQQ$xSXTDty}; zouiPI{|whfayiEHjl1Iu;eUq5pEz`S94Oi4@rMNg9R6th8@#n1vy(@$rlRfwBaUh9 z3ioIn8N`blU0UUU9&t9}oDQYp9_9>rnK7CVk9TsAD|M{JW_04}I{51D_(-Zq`^>2(#03`)Hx?HThdgD+aG5VU}hM;G2?w?C`Y_29rPr4 zUnHQ2?*Ds+kzl1se#pt*Byc7n-xq}WF1~ShG(x*gdtO+C{S@tL(l0K-xr#S__+R2- zX}1|a{4Y~yz#-XG{|YVM(axmGho!D9UR_Unbv;~Sx>=bi`Uv+cGu-+grG-DJ(&RqI zNz?200~6ir5Tjl<#>v4-NSnXL$&VbTdqUL1SZW&h>#_tPev>G~ZHYqMo*+aFm}nso zBOxX@IamqE;W!tG0JLEW33o@o@gl%Q#V9~r;}_3Bd!ojTfR{|cQrI(%BDO1y|CnVe zGTE1Ml9hVd;j}}ty_y_y2-K=2MvNpL<>a7LY+p&vdJ6pM%lem6#oEH=1^EwQmbo9fsf75uJ$5Mx( zXp4oY0R>JD3Q2ZvLZ!+vop0P7hZjgAnn=yS#Yo*;ZkR4N#c7C^;whkiJlq}Ec*QHG zo9V(*Q+&xB4g)4xS!KAf5vmhaa02_7aplA|J2Yc(OU)$P)N5W*Bmtfj0o+o0!w0o+ zEXj6ULJ66Qx%lJ^BtNdkc=<}W4?5+rIpiDY_|uO`J2rT9T6xYKh`as*01k(nK!%ex zGK4h2!wgLt(!jnTC#eYRrp&T(eK0Kv5irtkcp{RT#mP#V;^h7#Cm5~GN=7KL}4tB>=xh!f{5Z)df zm*$6IEoU65U=Rs2G6Q&yOfAnDn6?T88e9k>8-Ydwi!3+0Us3M4#Og3ZKhVek>toj~ z&q3L8M*_d8P&f}YP@Xd@4+R|RH6HkfkZxGOJuWS6WS~3;Gy)Al>~OCc0F2Kw%{T(3 zH@t@@=8HN;z$<+q8Z5S;CTAoQfgYhQDr*Zq3hEu%PbvoUVa21NHKAih=EXf=Orb-X zCv0Sn(LIDP&D>@^?nqMQc+xWXS^?dpIL-tkAl5W7&LG%}bdyBmMs%C|(>!mSZ+JUr0I&+V-g4XwN1und2D@6rJcmM>8AGhmT=4WctJ^kL@k%Y>bkV;m-$u zy!N3xJVjw!xVK{(SR)8)w=W>mb=@!12jT@|8vMb{2nrFsmHal$=Z^4Yz|@tv@X1Jp z81AUSZZI6s^St#LH4`DrqDLx=yMmpZ_>F zn7S$G{&Pma7aZeX@kub#@dezj;26Bz11DcfVZaY%e1Tw!f7H@h!4aWup!NCdHzG+& zSBkG7o9McNt+Ge&ks}PuAon<3B3u0d?{VQw3N_W!PGZ{!KPqlbFlx$pnoG3e9Z|p z%?fP{9)5u2+i||B9|RnY0{Wq72HfWaQ#S_FK!#6%cQ8FPH<+<8=({dd2sGH7&^+Sy zh2tCVhE63`7YZw6FgDJ>)Z61OLhbqdpPk1w0vU=JuLczfypeH=|7tfhcP3Oj*s~u3}$RXa*(Hgs4(aQfk}p2-F%kdT8p)BY&H;gnaV$MNq;{7kIoCtHMIoOQ-EX2 zC&3`_8UUDY5xhtPmrsKI@ZuYl9UP1|pgFvdSpF@(&{CAD|GOmBC+j__JYA&%zy1Jw z^6m8HhfV{tp|M_DFRdVYXbiL>G=5>`>$V{J&g(4_YsEV-wZ$s&6hjQ$PQ8>p|4?jltlX)MR&KFc(@17i_R=i2ngx zih+8X{~zau76l9M3HrK1OM~OVUwyxj%VoMN`QJq0O8rk@ z#{7GN>0QC0Zw3dyX|jK3vNQa9Fni!V&^Plo28S3W-s$fug0iXpU!4n5hIaag`9@&} zc2h#xDgFlE7&mwvl=3YyO7m|k3Ql?unlnBp^hB@_{w6~UQ=5bC;u*mBZD6r9n6ii% zEQPb5x=Nrc7=%Ph%F^KEilBdcFg0{?(CrRILca*6z75s;{2R^>eU+D2* z02weB$^&k};Q$7fQZj(OoK8Wc3Wk0GXBTf>--RxBi$H$pCaCXMRLhg+99l~$(EANT zKQi>c8Jq!^|3w|o2lC;&6xaO@9~#kzJ{9FBh9f0q#Wi)2+PdPp@)GY7t|<>kD#|Ov zk?NYN>TpfnGAGj9+Oi@NS<|^D)&L*9ee0)W^eGsA&xGH}!G~q|ot#x!aeZA?q`J7Y zw7ha*q^5jfS)GF)FL__Z^})R@c4l7!Sl@y*H@0`HPXya|?w%w4}JQE>cnx1~WzG z7ndxqueNh5tLh>(;f3`T#Wj%y!sB1%3%8nPTFnI`FLKypR?JhZc=87vfOX|$_?c9uq} zDl3-RAastJaBXd*yfRW>8@4>7*7}(AMEu&c(^&&wPJ)LzYa`w8ZQJZw&cZr0p(UWF z7VMLvmW3s)(az5Dww5k3-Wt$Hl6q?Cqt%6xiYoXEpBS!)EGe#CZ1?Ei!UuamX({Ni zwtQh_aYft&b}NW`4S$Xcj$%4PqyeP^(|~eYTjQ}o;Fhj9x9VuuN-<}$Ff+fZuC8i{ z_vNjzfr$vxyNZ{D<2*~Foh!j0h5}7=QcXET4a-aGs;WQ_mCGU!AS=leYwgY%@AkIR zBV-%WJlG9BLhdpRbs}A>*G!8@KWSJQYgol9Xoy0Xv5dI}S{rvm>i8{SL?_aTUEhu& z5O%TWmt#i-&h&9Cd{~U1|8}6mc)IRx>xeah|FpIPim|JrrEOKLk%N}kFUzWG>mu0w z7F5+&mO5)1yH~G1%jsO%-qDrc-G%#X76%&e z1Z*Q{X?nzJWHtLfe9Mj98Hc4N2+tUypbn_j^Y4Z1gpr#1%1B8?xVRF-iWl9SNK032 zb*IzX(7xs@qpH3fd`U6%&XTGMh-2O;xv;W6zhwGR`O~Kt&M2IgKV@}ScUx>;bF2;I zYk*|5qhaN|b#rDH- z(&BY3ozj6iy4!dN@bYV|n3K?3rHn@@=4d8QVh3*_|Lb)~6b1`xDKeUol^qGcR0kiT z4xiBP%9lVysj9CdZd~&cidGnTLjK4EyI9^|%CRib(xB?@|vd9wXKXu{KzIp^rqYj;fh|ktk;iRpq zG9I)r5IPIz!(1R?T!zjKldx{;n0?IK%#R|N&-fFjC>%1p9|?fh_RUnVBi7m7YI^3( zNM9|I`9-810|HyUWJ$E6b0tLiSch%rld9?~N+a_ts$kM1O1JYd5RoE_=U2d_17`wO zaJ8aIZ^4FUBQ1>)BS=HErK3I41>V*X>+0@ki?lRFnxZYOku#$mZ5S!NI8j>xy{N`% zjCDbF96qTm9IkM9Vz;lD`Idx+Yu#le1FC z%y7)y4k9rGX$jXx>2{;MNeE3u?LN2!W;(?S!F(nPl((&IZ-7|d-d2W#iA`Bvxu6Q1 z0p~X*H2ZNDRg`DhFp1;Yyaj9H-+XF3i}hSxawIsY;ld z#K#y|iGVdaVJzv2bfBKVR@P#|WE*#BL>bmb*0hshtZ~y0>1G-!p*ZfA_O!}2LTPw@ z{X$#Ay>+lAS&KAB*T6&|wt7tj)@|TYmJsuKZ8aa4Rx&&&Kg)d${Zv^ghky5jDxb{UamiPih^sSoDzV=**&qNTIdyn<5QX(G@^ z6Rm73cu9n#2`TsmX6J?#U3+JDM~uf)^J_$A;%qggx89Rr zOz5Pztn^Gp>x#BWGdM^iOptMojRRQkzanI1#{+M|L=ZIO`9J*R&RSfW7+;LUR>K_M zYB1~$z^WKEWA%%QLn3qBsxUCs*4Ed+P-0E-PAaacq%KlrwprlEm{xVleio~4Ei4<_ z6Sd8w5(Mz72<$cB_!QsNfl-0CUc9(TlL*JGsuQMP5n7keoB7}^o=5(|)uLOvV zR@vUw(sULL8r);dfC}b9b*O^!EX>V!*Nw^nUbCWf( z*ecW&L|}`Q9D91ey%bj5( zbxC<`ElvbsDOR2su*xebX3|6!$NTs&W;c-f0frK;xUwozR#mkab{^tk0;M!7bQ<+> z^<{zpb?k^~J}K(`jYtEko!B*uK>lEm!q|ctSifp@KFoVOm>X zgZ7cV8Hs^bTfO-psGPTRaVyhHnVH^v*!6@x=15aV41N_3eGg`NmMFaiVX4d*%d?Da zezOy2<`KyWBqVthv=A1w)flS{<4sGf1I!kSMWVb}jhpox*kI+2KZs@tO*>E6w<)s6 z9kh-DD)%;lz$A9k<45oxXFvlJFm}~ovtNeoMU>H z=P}i+9ALI4&IW$y4HRalNtQHA?e3E>cGp!^oBe|LOc@@?RKYyCkMVe#bhiZEmEm)M z`byZ#gn2AZ3TYd|iLdm*pH{cv^FZ8ZrIB?(F`5&&v!Jb%GR(A?X; zqHvXg&X&Ko&S^${aq0LogShLILPWzs&vxO;aNS8&HH#Cx!t!vKrq)*DjEJHI1S8zw zAPv#(su{E6HZbPlGX@}OL?3~Lcj95?5bsBc5kK->)qocD`q>&@eDUN+cKEDGxS2WH z4{D`e9rL9rMicn7i72FdOSXB{pcY@Y@Wh}U2e6E{!mu8%%an#zk&zW=@rxRsi`gnA zb$btd*d+MKIAH>xuu9@iXPMLlEopbWXM5{88r2)S*O+dN9kmVSiC(v+^+X@`q=7>B5X^Qvjct0==5SM5MCHK9G@CH|T z&flvG&_cot>&-M|B6Fu1Rx7Y&P%aUf_MF*M=#EA^%V}vvgrUN$hVysX`pc61=xgM4p3;#dBb{#SAwPqT-zb-UTWxhkg&+(Ksn? zXfT_O-t^|gs`AoEq_nCYX9o5@TnX$Um6yOYz;1-N2=4y0gMr#&>$*T!@Yn(#0mYiz zA^5|f4<_z&(+SPsJ&KhFhR}mxZ2>=OUX5>C^)>e4de$q1L$ndLN261r ziOtZIPT;aOHidXhUD4gr+W6fG`? z@B0rCVEJ<@4%T&NO9q9Y)1e#|F-Cvh#hXdF6Ls{o8sONjCRW%k#&duU`4=(0=zBQh8x%eP(#U5N zecI(X`(2u}SHZtrD$J$$f;N13@e_#-E% zhesKwH~@J?pkKr%F(2yxfUjmejX&}G5%akkaMxjF0w(-_&3HA_;kTuD{DJW`CJDbL zXpXlD4|wHSO_b@k_%k`wZ+=lQ4)C4de0AOn&dO9dej33O!NJfau+Qsb6yVvQ zi3OY?UwSW2Lf@DKKZE%+!xazt;RyU65xv#Bi|H%4AIS&me_;Fywim@&;P=lYd~(2q zz40#s9NRUO{h!8s;M0(V{wGQBYm?v)CBgrc1m6!h%F_k@iwDgy;MyO)@I?GI#7XY(q@Ut1_V>o;#w7SJli-gf!9P!eXMv0NR_`RhvAuhs93C_m zfom<}6XA*n%|YOLP7*%9NP<6_1V4}j$KN~cP0m3{@L5T4{9(M__$*6;cO=1okOaRb z3I3ZTIR4y!Z}PmB1phJ#epvtB`AkWIFHV9tC&4dBg6~X%-epKOV3@Ey-3P6e9e=>i49xRti$XRh=oKjQKLhP|v%Ke1|C{o?KKW2vUGjNg;q)1O z?Wx80@Z*K1d*2rpPM;RPKRSLp=R2`QQCHX>XnIu~6=#+3GI(za^LEUw$I*T0*xM?# zig#<n~d-k|V= zPkJTrLo@8prw{#(J%NjPfNE*W(=f&v2otn*pYWpv379<1i!7|Dnh%e9s}?M%4cA5J z)p7i|`P&~Bdi?=I0=GIIv+eg05>(;^YWk*xv-CTLR-59{7af)xMsd`wSiC$YWgFcbB@B+q9w)iZu_^h(QlHjjc{HrW^{$|nJ{o=hOIPNRsf%>%Dl?MB-cpzR4f1*$G zUn&iLf`#WZy|il~D#rh1>E^v2ct@QtvU0PXr9x zB={+eiyuZH4-fP2D2&~gLR#oMEPB-c7$k<{Dy!aQkQVx#ihdSRJI?D#=np7*oa^AR zmK_-NV7F_Fg`W(0Qt$N^ZjXb{TDU!bc#m<>|75Hbj?XQ6+kfOIc99-qq0~EppYw`7 zS0NKPW;2fRp8|hEf4qgCYT-*PKFGfU{_rrrPHyaS8l;8KX%?UFS@x-pg+HM`ED8NY zi{73OoND2=|Fl`S?LW6$_hZ?fp47T#>(Ym?wVVqE<82T%r&s}z2jft?!^eh1_CSo~K4CiZ&H!fm^JY2mhA z24)(Ds2|%dH5T4t@o%(ndmY_v;ip^ln=KsssK|Mxg=1e49RK?x9w^Tu_!InI3tw&F zf3Wa23qNS#wp|8h0TCR?-^NEXuI(~S;bNC#6fSl-!QyY*Mc(_tWg6BY??26fdprb} z_mHX$?BVi0(;9`#`%EFmaX7@WM-C1H^oG!60MF@Xa8J2LUJm1X!O_Ne3^f-| z9!`37A^ju);X0k~5yyJ3V+BZi1>eVZTCC__$uWS;YlQyNJcHxdhlk(~vH~zB<01G# zjtdfx1>eB)%T7b?(SJC?0P7U~L%L?DhdU!|S4~;YReyZ^M7|+At0*A;`IK-q!D0~a+ zf2_hKE=^MSR^~rl;ePhFqZEE4_m_DJe~R%Eh1YUFEm!!77^vZ>R`>_Zr$ymcvR>L1 z{wa@t-3s5z_L6;0(c79MOugS%^z+&7n-zW=`_)AX?`Hj9s_^aX&sQn@Irfw56@Kj~ zBhSwi-pu@esqm}WE_W#W4;+8)Rrnq3{|_ttDfYuB6yDByds^X@JW#x#@V8k1uPOX7 z_QSUnUXpLx`+>qUI4=ED;k6uRzEC*+^I|;AKUI(SiyV&6>3)+hcBhE}K*JQiJKxYv zQTWYlFWFBPK0Q1SSfJ>o|JEsd0P7jwcg92b{15wilfq@)+o|wtf~NfU6)y5@Q}`zK z^J^8pi|z7rg$tkGD*QF(Bm3AQ{}RUkqUayw_Wn)be_;E5qVPLpUd8c1_+QU{n62>7 z*q`$i{sHT!P~q~tWUj(r;q)Sf-^_j``{W`|fa93Fw=ehto^W+3J`b~;8x{Vik;abO z6n;&`tVm-`KcrMF7U*Qk1pHwS+8T0v`!Z(jL?QK=~T%IRyQ24J|&WjZO zHOG^y6+Vvja{cD(Pxz7oiD}Y3;rs%H>B`&OrNgsbC~~N zg&)iFp9d7ahV}e}!awGAJ*V)aIQ>5ge~In*p2D~Bxb`oFf6j5iVLeHEXL7x13O|SA z%wYEG4lXkg`U!dqu;&JB^h0A>U8ihZ?{&us%w~aS)-mdV?Y}dUC zKb`A+QsE;x&cCGaLXKDODE#*vhd)*L6-@8)I3s$<<@sB>!VB3h!xS#h8wwPj&Hdt7 zg%8d*dRVCNVXQa&jsXvmNBGP0EWv-w_FARr>o~5Ssqou4zHL(YOWZFmQFz%nBgZug zzd7IFH!J*~Y{%Ob{u1{WS(l6aGJleBUhrp_{zb({=1XrWd@RS|e=7W!90$Hp_+Po- zrE#2=dWCJTt!bkIbBZu=v&g;2dc?v&syx}uK;e)wfja7Iv`|~7)xA6EfUEzP= zczcw>-(dQA3crK6)tgX zi^8S<{zTytPi|89hwN{^QTSVKcX7YQ|M7{3@R9yCPvP=>bg{xE{^R#9HlJpWKk^(+_~ZA# zcyuXxKl}4Wh2wWdcx+SnYVI$~xE~Au=}afzp9+NZUU&Q>MSNL9ztFI{h4ffAB6n-)HuLBCdoc;Dgg|FcL^{K)e zIL>^b@EbUu%cr=apF4RTp2G7Q!ME_ZHbCLea=gk`_{lt<$yN9RJRcaYaCuHYM&V1i zA5B#FO>D1e3ZKciJZ}~GPvQCMTt#2W_L{HoJ*=NHh5wuFRjKewwr`!nWxwoXh1c`C zb-BV!4uJaUr1@pN;;rFxMf2i;aIL>TS_)wPf zCkj87oBQz z81o;@vcC;e_(YzEj8ynP*#E~X{3Gs1Qxsmo{c)zkTUh@`EBr+EpW_vd-^t<; zR(K8bS*-A3tOt2+F717l$FG%|p5x3~g_rPp`2vL>88Gr(s_>=kC)X?dL)QO|3crN? zVYkBHV){E3el?F@4=H>U$JIY6T;!MM`=SSt{{uyTG0!vQ`JT|<%Ju$7(Vxw6DOL8R zKrNHuZzJn@h{8plu?iP?)8Q3ZV3M`S)QX6K8feUVTGT=?OLSp0OKbrJd63udl6Fa7PfnbqF=^x zZczA4?iUv;{30Glb|_rld;Yn?zu|s*x5D?ZpFgT_(etwkm-Wl*3K#umD^AM@`SdO2vk0rR&yF&31{%aI|Iot7kg*UUF zw<`Qrp0`}3@V{`p+NJPCtj{|X{x$3WVTFtQPb*yX_L{<_T^}f1{NxLTi=Twp-$ifY zCx7bslDuh|M8%j1Z&PwE}d{A(5c zF7}7z3SY$iJ*MzuS)LAsAJ6N@4GQ1D>o0lVN91{w`R`ElYuRsquJCtwp1eol^Vomx zSNNl>=ie**80Pb$!X*y8t#Ik@|5A85$0Z-PTiP|7*K3&ym*^!~i##7F{9X2|e=9tf{l6c_KWVQ#=NhbV*>4=9@HC#+O;>mx z`{!(hf5>_+QTPImd*j&7BF`j_Z<7^%8~5uO3NPdJ#TC$9?*DEwvibBF7Z_WqsQHALa3 zvcFALxV-nUK;hT1T^cmb$$-^=6lDf~vB4}75TXL%g|T;c!Vc8%hCM4npi z+=U9ikNvh<;R~@K9Oo$fUat2Fg|FlO@@s`3&HeN-h0kF7zNYXc?0=srJi>mM&f}7_ zYXQfZu?qiWq>+D~!hgW>)GB;8>#Q211q^D2e!W`Dk0;m@(3J*V&Lb?^_-%g$M%waXsx$@DL$gNAje~&7rhNp_%Qa{k&KI+@;kG06n%jGGi=dgXe(oT zRa!W*mibkK;&Tz}p+n(ka(gx^KJt7;_CcjxLwUdJ7RBcrB!J^i#YcYc_>YQyD#yFO zTJ$nkLOyROdYAR~k)p3gVmRcx6OnT(kAuN{%BJs(kpCK!bkZ3YdTG~ig~wQLV;C2E z$#eR}ieCKi6op^OaWAU)$oE<66ut1-tneFo9&&}kCvY6NR`Hkbx$e;PtpDFBJY%#& z$FmB*g5&C685cdscVr(c`U%Yc8-)x1jFAoxU^N_Vy~+eeh$Z(TNVBq%Xt^$F3Tgod;X-N z7kOS$_-a%j9PcY!{zF8i5m?H7k^vLxcJ)!bRsy`S~x;a zaDUva_=w)FRCvr!Y@DAeKJt6+dlbF2YoEf!j?XJx>U~S$(yosfmv$9#yZ)`{Z{dBI zuPu5cZ3-Cq2Xp)uJBq)JRk+A`q{5|LVTFtQ^$Hh%iz!^@6Q?sSej>lK|9wR-^=?zR z)O)?crQTmDT>Sigg^Ql|F)n(hK>$?uwxa)=QK$2fMUQ%x{~wUTbbej1Bzbcc}n49M;b-^Rq{7z2KQ22gM&sMnn z-oY^nAI|=KoWkcaK40NgjEf(MoGpwmQuOCDUa4^Tp1nrlzhwGT6)wLw8ddmSrf*WX z{2sw7g}=`9vi=tNKW4mJ(f^0>vlSj>BcHGEbjHP=!hZ)*W!m-YUBh0A`0C|Bf^ z{gZrFy5O?UQ>1X&Uusmi>}y@1aM@40QQ@+WCw`6D_$T{>Zz_7(7Y(o<3BBwCk5Rbn ztCuNUo;x^&ooB7?imrfbSBJT-l)H{tYqYQn{}*#1{WIpm6`h?;Rvjj z_!MzE%KNF3&F&{j2e&tIsafP9=4RzZ<|^-x;$uQA8#1u>|N6!;&gSG?$N8zMS2A?{ zlOY3n>hgQJyzGlh`Fy$I>vXsxPj*W$SIQSC#`zwFxxsl0mRDr3fot-&n2UGL_wLNi z(QxTae|xVp`OD3Pem@Ltr1f_qU|J_wWDD2-RRN~rho(INvU;mO|9Vqq+kA6H`(fR> z{uO{}o><}np3ps{6r*WzzN0ZLALe?eVZu5zEzYBQlYjT?rjV3J`EiM%<;VGu=7}Y{ zx&B$IV`$n7fVQ{#_jCOlFcS`}e<1wn`Y#6zd5WBHOUEr`=DLH|8w`80iX1y3qqp*5 zR16%`ljvW{?*^LQ%CGID;*P5Rkoteip^7b9tkznzN`1Ee)>?b5bN5{&8h`Ko@jD+l z=j`uZd+oK?UVH7e_c`ZgQ>1LU&vhL+T<0_=krLE#jy{yQFQnT-XN)u2sV(V!qojA^ z(d|J5OB(l=Y>yl*ardA5%l9*n|Cn;OzOx!Ab~Tl34@}BOqTa~S*?UW#i0q~!Pek_f z^#ETF^7SxXw?}qS-6g$GPyvJXMs^>`%%Vz zTT6PMZZ65}*ejg(LL2sil>17y*TVnE?vmc$L+vJe>&AUfd<3BTJm`tYK9+PhlsMW{ zGJOO!G#;cPPui-;LS>a~-FVcAXOOCx@7qCYToUappgjPz2b`WsC07{*_de>~J^nD( zN>xzVxATGFfs*Zog&_N3xIc^%ZvOPsPa*vtq~C+-(MVUaee)GiP06;s z@i59$#_8?AaQn)GMBV!o$XE2~eyi@@jnE@K*mrP6J*+$m?}Wde00&5>y3Qy+v7&9=*ddOXWY=gbqTCwWw=HhkKwsi)jOE1Xw4@3swi z+4>+}oXpE!MR~VhMGZ+PX)`G03QI{lAbsPpWVZsm%Obl6(z}l(+Y9hMi)=rnp-Xh7 z2LV28k-Z1$qcCXcv=Rq)1S+fD3{63eHD~6(1pl9b|NC&%KI$2&$+wcG<*c(rKP7CY zx@7A+bzrc&z;JE_W8F2#fffhaTL(#70v2^^$@Wmm_PS6>FW6h}x%*1Cmt;YDG^9Z( z=YmoS!)T+>)|Gq3Uo~gWd?fRRy_rAT+Z%acd*p$V?dRG97l#=QaTzp)qqjS~kq@>< zKCn!7>pQ@BOm8A|8}mqwFjDKhcLS6MDn2$Z<7LFV73awY?Tk`gOCQRgo&>A%mtvY2*x8O@aiuffnpmEQ=KKfj{-Fm^$eQF3+OO; zyd(fIOVnNRc)@fbPT@H2O~NLAqOcI!3BO&_uw zM;S+UkRE?{7EZ$ApL&lO3>-v%W(4cn4UvJsti} zwF0fQv~s{|GHb;nFj@gE{(r0$)F~g`vG(S0-l^g8+Ojf)YA#q83$LEkJtf@K8S4&r zbjHJNYuB~M*2X&G;rfQ|cvpR6JiIm*Z|!UfuWoN!AB#4&)_29D-SPT(TcdZ0b+yH! zU9pa)SXZno+SFBl{uHM%zQL=itn{o%bZJRZRZVnRWJztYv#zrZY7j}*w{^EQw8xzG zwvHG{S_U;O#fqw_9zJ6&Ra}X)uB&rhtSf#2(H9iV?CxruX{6#yv^zZYxOu262U8fb~dqrkc+ z)-5%f>tM^H29ryE!Sb<&o|b+X47UEZ?r3LEJlfeDt?!C?TKi({_d3&(W3csigZ_>! z|K90_Roh;RWzy}Aq}1mpNYUy5CMjuUj;5N1xp69q(gBgb{*%1kOdMDrS*0?*_Y z0h%2ef_c*eK^O^uTFG z0GG;{m&3`egOd~3j_I2v&EVfL=M6j|5i6SN3Qf#=5TJC(GxDTP8vPUiV-Uzno$?R3 zPsRJxsp(XKNlZ(_jF1y}6fOa5&=MbH<=p3eVA)Pl* zMEZ-307IAgKSh2+P(^8F?kB>}aLuO@Q|WvWoj20?%XB`M&ZpA(L}P9)U0ieVnTy|C z0_GAlmlSguVlE+bNi~E<%bTrylI@MDme3@v?!I~DE7B);KJ#dhXoz=;WAbqysInZ%~xNGKEHg4elIYk&@|ijf=Ksm*}U@Cv2xazk4og^|CL{zEs_ z=-O0zqdRqnP-dk+;D&zTQ9jI+rrchWk~+WXPTeQvLg_zoLvMKH?sGFcjA>GZH@Q zF%4amNewY6W)%u%EQ365cUmx`4pQ9i^k5c_*sv)#ESRww^0?jECXd^l6U?{`@)kIO zRiJy*-(&qb>pk~*3&;2>~g4luk;gtC#oLo8?7lQU;$~jVc0q zm%U`hH{C6Ok-}^*=_h0$U&#t4n$5F-9Ug@f@w^$14aR+D?DAuMpnJ#3cr@=OxF^q3 zlJU$`uvv088PDZlA9Lb&IcR(#lk@u=lq}06UPwdfMw`R|N`y_~NoBai$PA^- zOg9JX$TE%0e0bU>VRA)gg_}Absx!sTbhB`naH_`5qDjl-)wx-(0-+g?nO||U`XFV- zW9Di%Yb~V0hO)`cx(8BbJZ8pB%8bX%7B}l(kY_wk<{CFMXQ<;8nsS|PCYCEPsV;XY z&I^?$)#Ik;0%aXH;n8VJfRgl(mATmsVeN)+i<^nv#;L6?jU||OyMQ9|N;tW6B15O4 zLDYc)C=<9IX;1`~xnnV$unqLIX&cc@(n~6=Ko}Ah*Du zFdG|hvP}&>NRPyEFa>UC1O!ckvo6k^3lK#e0n8+)lAYtrSd+%%;e{C)0Tfo$a`08X?o^e4=%pLH7klhdE4l0iBM{JvN4cyb9509L*AMR&&#hRRvQ_|2oIoM~;$b3qeK|gXTC9+J;G)jy% zT{2>Z&kaL2QN{nGE^z`_dtj@GIqIw_^MNthe0bE&zEC}+$mU1w^bJM(<dnmm~vU&ASEwVw^wf8DD4*qzvO{eWRygNt1fcH|{N99A?Jd z`Hv^_`NrfIgwL!|A%DmR#HM7bKWA%#&rpB(UC7F3KG)C4fD~q%Npw_;dwduW5~y<2 z&4JKXkI~LR?ynP!z7-h#K4cl!GU}E<`W>J#<61_2J1_(%szM{cttPe1q`qTPC0t*d zJ84I<1VP{U?}`KqM$HU{e(OmvD`-nFJ2>WFC;@XC;+y=Ea0+1m1iJ8q3Jst(0@#wk za6BPLGQZr36EZUF4$7UBKOO*T{;b@|zEB)eBzW!=Up7XuoXYp5{$aRy@{8j>D$hbYE&1QmpaZg1pUAK}qhzi# zDbbQse8Z&3)cvfP;SH* z`l`odxi9Sy=wC$c3U3s`lH5{XXejie5&4WHm90opS($I_LKN9hu1r!{d6LR1SY?K? z(w7FyJu!?keQD?%*)Xbn+1OMujQEsMAPOnhtYvfG$}9$iT&W%PCB=K({J;6f0jU{K zADj?{d(!8K+}nJipF+w=bGt7WIXcJ1JJ&gP_{c*9OxAyy6dT?5Oe)>v?J_Cpum8?} z7?_Zt5STemZnhhK1`zJSSA3zI9J1*@By9TCB%6LM$)*qbj>7_@jT6Zo;Z7e9N#d53 z`+_fY2BeH22biHry~sSdT&bIXHc(n}UE_{#6HcRZqyEr$Jx;6r)Dz6N-cPFF#y9wB zDDomMcZWOq?qt3ny7L|pz9qST@rOd-c#KSMCt2(}{(}01#s1Zwi=HNIDBtyuZ-%@= zmi{Am;Yi>@t=^IQcYmnR<9WoNiE%F1@V-BF802Cv*7{aLhw zX6pNsf67;&+yX8a^v&A_l$N$qe5c$1h}p<-$36u2G{L*$$b>m@9Jz;(lldIvyL4Ir z@tAu6lHlZ_eF5~>0W6+*#G}DGCxFcl{1I-);h;bVO&pxSCrFJh+Hk~NCy)i{0D82* zLwG{p5_UVn+DCTIc;qtr z>0x~yOiZZG+(2*?rgljMhI-6jvL8l-PWNH?z+;e}LluuXoQ*|Z76K!EdL&3|<&O}i zB?6VBCZx{}4jC~@aLUA_6ZkeP|0f~)2?0b&r1a6jA(%MBD?rc5vGb0 zClVajzeeUVl9?Kq`Av7&Kd=OyXl-PcI5?6G-*^1PcT(=Ld{LXU;%CV=rRLzKQ4x~j z4XM*Hnp_bax(acW*!>tzT;`Bz%{s|520=c;5tWHMJUwU!Wt&sN@q(ogA^!Q1%%M5OwQL1-nOZJxpp`BnVF`3)& z8(%Imn1>Y9k<{d&HFO>TwMG6cA4}Z_YCY0f8VW}zyUbU1MU>`SiZiJ<1vZHHghpf#+Twp z{=U9S90Lv{vAC}fcfu%%wfXv%fx|%HhJIunHI`+)LCJcflJ%SJa&#Y_tT!oHcmA)* zIt69jZh9MU;rOPxIPT8dKwi?#Rqp6V08O~kxlH2#1s#_P>D6uul7gD3BqWgwsLAov zN|p#TL~xDSFGLR*(J*6!er%C>?N;o9~365t8>pq zEAp&xm0N`L{=R#Rm3`Tzpv2c#Xe252Bx&}T{Z^P2yUjRPf!M^m#61gnp{mHlW_e{> z`Oe*$dK?Qf%Z=haD4xpBc26^9E1dv_PxG-he{SNv>0f!(Un4AX-LuVzFf2y9OK|*3 z&yIB|Gy!Q~s5;KKp;SWaUSF?awxr1u+#JK96?QmY=0Y^R&vJ6GTC&C=E)vOc4&S&t zQ(*F=whZy)BCe?-NGm0WO0qw>U`-0g`@+1=V;%+Ou=N2tdA}UzdC;3ley|KZl&`Ob zhPnU4$wnouCixM?YQDZE=VU7U2Kh7Q3U13B?#{bC_HPJ#!{E=tz$6a~dnb?hJ&Tpg z@e96jcTNQT8u6ZGbGvbqNk3OwLgu$)lVSL~Yz)`X{7m}yRG+`^&P~*7^MFyJ*G#7% zMx8R>$-#=IVzsx65YKw1HU`GAsr2?5WApniIRW0FaPC-$bC|zx?0LB4`TGuV`um)Jkkdcl{KJ=!j8mbWgp44NIbP+fsbkM*40io}?=g>Ga9Z^60H;L{ z4^kRznJp13p+?VeaTA)|XcE$RmYrS%3-!VNE?-3o-hKiOTTZHr)(#oPr@B4%^x? zJ&G7L?nEaC>!3le~go>O>>$#X`1spV3O#3(;UR8IdhyGtYo1BhyNTCe&9VE zCz=a1Dm_ocIENk<;v@hN%q5FaDml`)tKFR&rGUG55zZR^z8lTpaZjTT#aWp|bx$9P z+oj;kO|p<2qSya!5vO-=au#7V?))SXVOpfa-AQV7=Qpy>fimcnViyl{{27bVP6;kd zD;>T7sQmc=90xanOeZZbgfziXh9(VZp!?@pNgr6m5Y8tau;3l;`ZLnf3{w{hq;efp z9_ttyL=Jg=Q!BDaBP8t)QP4XpXOq%u+U4+H!TQ5EqOzv8t4YBCeNZosY{33a-RSShnoEfjZZj< zR5X$F4ZCZT3LH`@NtZX=$O3UPw9}cwys0;iWu7nk0yQXoO-+PrpCIRMbg7qnN6BygF>5|gUiCXMvbVR zc_bqlzShl2q#GU+*st?FRf2Al`~PHS!@Xrxd?A^}0z1pjSZHS?cgv#wvMz*SK;DM7 zeawauAm*^&s1gjX|9}uR2(<6RJp{V{4NoNCf*uI|!_9cucKLrleC~K(Cb)Ux#wQ~k zVz@wepnjA94su=noxq;?2}$A(IvP9%o~SHEW6*uI-J>3uf%YbK1UOs&8^m(6=R2;P?V= zN<5gF5;`T|54!#*oijpTfnpQ=g-3!}m>UmH#LFHy`BDmy2=0O@{>PlUIY8+1|9sOC zBp@!nNyCF_dxEJ)wh*@$oHOPT&3|nQ#eH*g2t4S74R{lPTykg%3VCNRcxP}ZR#XR1 zJ>haE6*%IA&X@~qhWP(;(-CaoP~Sw5-Z#PUyVMQO4W@>EK^1*+$(_XVmK4ZF7Ady` z)8Kx1s4f_S|EVtogTD_BeZe;+$NUTW@j7>S(07n3yVDKrz{-677cL2%LA>HAzDb4` zDhivJ?VFwx90A-8HDe*9^8d_Td>#pT`z3pVnOlOXTk446o9<#G{B@Uv3W6D1g26+< zAy{HdaJ0E#Q(Z&+u^Xx@q}ngLM6{ZT)dRaNMyFT!NEtr=`x`@xu_P!y16vym9toxc z;Jd{r56k;gLOE1hN($<1BtR)!C_BY)`;ISEhvF^tKff__M)2f4L0>$$7!>6Tg@aR| zu6hOK$R1G)ja~(?40239!3p+$amxd;JniRAP5>o$dlT5y1yf8%*P+H}Oa$V=AnGcmE_hN|(BB94bxzRj2}R-NM<9XE z|JKDJ*7NUy&AJ$=y)8lC9p3tQRMw!S_dbBd!it12VWsTWBFb9C2dV@UDW8ows9T2LERCL zHkxLM9#_?rmert$6)Pg;(WMnDR~A94v?3a*s;a1pE~%{saf&M%&Wkn19V#1bW^FjA zdltv2-;gcs?11<6dm7`F^F70TGlTt;1vdHop zR7#{=dcl-fA8l^$tmhss?P%_FdOEt>S~_A)@KQX$WPzmNs>ssXs_N2;a=RI4SJaj* zi<+#6odK4#tQ7E?imFvk3w;a_>v9^U1@Hz(OSHYS1%zo@Q&qgA$TsVB_3_pyzF?2m z19bGBJpr)cgzAz;fu)v1zm`U-qV&DP8tMXLWul3s@(rDx?Xmg}CmLV7ZdNo&-tx1G z!1AL-RmHU{fvZzYN;Wpn+U1UJYpzFIrnlG0pa(I&qU(&!!VCA!@anr=b5*2hS+t_O zY?TdGR#nukLaU7ym6cVT9a#p7N*Kk`&h~cDLt7`bq@lg1s{tBmR0E%AG&}WR+K%-> zMs-aQxQ?h?B2}dk=(2Jc=AgJ)QK+jjQdI-pButDswxKPxw}a^X9fs+L#?EyYIF0pf zU7b)_BUoDteb+I#4@ayqgJ;wU;!d=sy{!QphUw}SW1jt&18Z&R z2KV8J5qZ9&vc9RQtpm*~7AtG(SQBf)fh6PI8i%Ojl@+z+HAPFxz?GDiMQls-WTekM z_!|~9p4n(T3FmxvQB`?qd9mGtON+{vM#{>d=ST!}qU;N*YpN723Q@gk<&p|;R?)K3 z@)gedXpb3wp2H|ALql0*gaxi$vF@JsxPxSK=S1Vq1ySmD94z%yPD@i~57y_QW%UiQ_HOE( zxls@RhGnc{y)~^Pa~b6udA$a~`#{6P%_agm~$NOVcj(iOFpPVrKluaYcF0vGPa^3tW? z3sCXV=B`-GL1zbJo#we{Q+>RiGfmgw7k4npT6X=J)=*x%QY@h~Qtcc&Gnq+fc@a28 z@M0W;m?)>exk&VG8THbN@^Xj)AZUnk2V0qjakQkUd>K|CbGrmk%Su6d@S)E6ZB1Y? zwnag>1?{vQu=(aN;UFMXYHn-kMOCf|2RaRC-s;g_OBFT2@4O%i)ZgE$v1tv=H$ZYKJ4Jdfp!Okb>-YHN^ za^=ku*LJVPFH5`N!_rRZJrkmr71c#4^nw@#VoMyL9HDx?SH$k9UmJ7q>r^M&1`|;? zc$SWqcE$%G^-KvYql$bX%F=Uo*-IV9ifScBNMMnst5XLl}5D93@0WY1z_Wz z$|=%G%&7J8&b4igPD5uLZpgiz1ol+};cr3-gY5$hRVX%1n%re7s#uB>6Rwl$ zB!Zv)cC z;LKC!5}x>%z`QSZaW<@XF(w1RETJfph{75KBIR{WJ!{uqU{_dEQ4w8PRK6+-v1~cT zan(?yt2gN&W33YoVIX!_;(Ku~kfl{2gr0*Q?c|JXW)vD)il9iOxotzNDY~{kVR>Gs znLP?`DZLh44lLagJw-7JF3V(}q@Vc)yT@7xV|-P=Hi|nPo=HkiCswmgv;*9(Rnvg} z#@S%Pes8`4BgUN;G8c}X2HOGN&>-hD*iz_jyprg>ac8E*ge&$8P1_z2zS7Dy3ZLPx z#a#y;+vHn{%WK0+XP+FNJ-c8|!L0C%weg;g*r_csSRb@CLbATAvGvpq3+B(5KQBC^ zB|M|KvUDk&>$@-LXl(83?C9+2p3&2Bep^S=j5vm=-H-|DXk0S`mN;=(s&;nGz|jV= zyJVoPw@NlFry--U*-9Jd?+qp6PKdb)yt#Ke@XI1F*Di$^4;Jj+h_-u=yoilu)&sQD z*8MskD4~#h@Jl z{ni3h>1`H5yips8dT~-hH?nQub)8X`2{&x7Yr;s3Afp@~wbb2 zZ;z#?1Gj2gz`;UaCnS(1MJa7E4OaQ+AaSoe{LoJ9BDcs6d90_{PM4=-x>>@}hJ@``A6Wf82xV4o58 z*^*+hC9ukf@ZL3rQ`}IBARO*ROCjKlKjSB5=(&P;0eTc*+^w07V$BdZMVn&ai(v&! zPZe;p+FEIO5g=}$RZH{?b>e*J`NK|FJSan^Wkrjz+9`7d0(unl-`^~Zn zM-zt75$CHkjFWrLJP4p6=*6!z78C1wyG>+k8Ana30E{EGypCc-AWwxdUA zoasAO#*(tyswIh`Zo7eM`-hT5PHQZnwU(B{14DSGaSp^HR#pTa^3~wlhz1c4RTHmU z(~!L)Ymv26BZPJ>o$wP)u=TnW_kq07*q)kK7FDlsqO^Za8`ENWkuz&yd#$>(xZHtX zp=xV}hX}~SEUm3Y=V$I&!PvI8FU`1X^GTZ15Y`?(+3MXoI%A9tyZ|LK+vEs8=Y^fErws(u+f88pub z6K(-?Rsp*=Nm@3(#oksI9VbTMsXfr&Xjz-N-n%RA7 zZEsdZmcwR|c}z#qi&^M_6fQun7=vY!kPmL=}D--)4_y`&I9ah$s z)s$L8l{&^QT!NdCwtgw3v3;Blui)|D%F=3lwhKSrR$dCt@U&!xYP8{ksChh(0c*l2 z>@H98N#q{D48O?3s3gDdSyfR_yi>w*TEH&=;f!)=70vzZ(HnI@=SCZ0R|%Hu`r!o! zDY9mD@Mq=ViDNr>d9-Kw<-3CVf_0z$b90T(%+}7ev6=Oa^-Zz0ZS^z3U$nsLz8l!B zkIf)vGaGu^+M5PX`1!&(Nxy{W%FAj`d-lw> zj>h($rdWdT7$SV$Is;bR$)sHFSe^}S@ovLSNIV93Gf)=y6Ui$DjgwA-61-rKI4KAE zrn#Z#!V8npmiU?(b3yi&rZp-f7Mn4vU;%b-QicN&Aw{9dza7~41#z_O&nVIak!k@v zv;c*eB^e~p*>)r7-C$$}z6!DKcGz~u8`y{Ju5U4f-Hr7fu=^op@JbF2Z)gbMjZrMz zkv0)&>x^~uti`Ij?41<0U! zy#n!8STi&MDeR}fPA--td2mEh6Jf6mLC8kmNf11!gDDxShUj7GqHum~1B}le-tL(( zdtncyXHR7WUz9YjUg8IF_y#3x5aDOWd+~KldM^{M@=m&YVU^=<$a2S}4+-sn*Fxd* z82S$v^VL;RM%LxNrNdHcfq?TCV4mjm*0+;{KiE2i#fj;uafUO zmk6-@PR^%K2E6=;m;V6g6CW?X+sl82^BeH$<*)McKjD1($VBq}Pm=s$$U6>Sk%fc4 zgpvHnR=@8qVnJ;zWSYrHC^V)Cl)swu>+F1Ag(t&i&ZiHLq`dD;FaK7~|5Z}?2Pi)b z*j~=3Z?dF3$Os=Ocsvd<%|LoKKN8?LFD2FSj8}dlzdcJ|uSp%g+r51A!y}H9S`Zp(gElj2EaQ8z~jt6$o5Hd64dh@#{a~) ze9-vx0DKM%fWJNf{`Ud!e-D5MQ;Z(&1O4G4UwJMDyg$9wGX1;2507)q#kqU{`fm?_ zKRN*Z(g6712Ea36ocAYZ{s8#m0q|7=;GF~D>j6jm+0R3X<}%R5_XePUbO8Lt0q_q8 zz;j^W_t#$hNwog(!U6EA0r0K?@XH6lzc~PY*8uo$2fzo6{V{kR%ulHE=F;F^&)4s* z4Z0Hh)%3v@vgo`mXIV6Vp{G)~pqFK~wBVQx7~Wigm6}zrtkL>gs=?bN@RE_)(~!a^ zf3d4~zp6KEb-NAbl#e95(S4ZX~js1YA$54IDm zXD6%+opgR%Ec;$u|s|n4UX&uM&IjrJGIZ#1{@G&2MY*`z?d5L%nzCsZ?*S z4wfIPk2{A<#teM>6;=E3PPG4bpM^xfvz)ZMDvy3Vk;TV=71*DKSdx>ep@b+}zk9V@ zb7BD7l1GcnDwe>5qKf6qt0Og0^Ie9+?_OEeeCB|#sy7OvMtVd4vtD?$s_=%fW@lb` zmxlyK5@;z^^|`OZo0peCq3Q+sfhv|s#eTSv=oZ?SgFl4gJ@61Rlv&97V{K16b{XEM zl@%9;{jl`&_Sw2Qe#Y>7GW>@>pGC(e#*rS&-plKSD+jn!>?fQg)!TR83=c{mCP2VUmEf5ES_aQs;X z!Ev3B2VU^kp9FuNacP&}uWFq2^R~su*0XGV37>6P865C?B6JA;3G>Ni9NF1?&QkOb zU_m%=9gYVkQ6(&f^Jk0C0>DN75Uf}6@apApoulx@%zr%NTApS_FZ|aj{9@*_aR5G7 zTlhkdOZYrv;r94FYVpVR%6J(9>ry;WPP@I+EPN5<3IExQi{6gI!f@a^91p?exkItV z=M=~nKId8ZVhg`~0Q|cH;14s7^`c+B7XIV$~@`J;dZ-EB;Y_j*m2AB0q`QmWn4c&rQzq)6#hKpbqWvgJlJXRx8t9k7H;e3M;31D=QkE! z0d-2dUa{~>3;(NypK0NrT6n&N^PlTFMn6TvfCvt)x3d}7`e{bGwQZ{v^kd%N1^Z#|!?Rs=|MblM)=O6uyu3 zA5*x?dcI5HH!}Vcg}=!Y75&+5s7Lg(knQA`ivB?!=ua#BL#BUO;T_EXu)^Qsb`9fp zNWEJ)JzU{;v;1QezL&?#c!iVF;513$-{O9muJBB@A6d_eJQ-}yCoB5ndEPoz;ooQb zk#|0X&tBHUxr+WHwyQ>kO$If05;v_gF-pPgwrD75$0~Bmd77Ud49u zpu+bu{+PmZ#u+}pR`^qFC(kN;I_vF4g}=#u;Gn`~zvIsezlz)SuEK+1BhNn+ev7O> zF}Q?7^z&U#n?KW)z^`CDPti|hzUGf(CFuV;-0)qb=wwQz{uYnZGKKf>{CJMS ztJywV75+5a;d+HX!~JrZ!gsKo*DCyKo-giD_*ty~pDO%(o-ZCz_#Br1X@&PNf7v$^ zJzv54e^1db%QOA)Z-sx#{gTf9K=`EK4IE|sJsUhk&duzXE>-v|hRnHI;Wx4U+^q1|c>TXi;WA(1`#N|?yPoNdQ0ISu>F6aaGCEvRd^-yAIf@?_CC$?<6MQm!So9i{sGUArz?Ce_e(_K9c(8n z6pnxL439GvF6-E{75+!&f3Cup^7w63_z||NHiiF<=Vg4~2oKQ%zVC_028I8C^}JQ# z7qkDpM&bL|u5MQNd%1=`zPE&j)H{vG>AebXW`FgF!Y8o*e@fwB<~URKONIX-wu8fp z{-4}0|4{e@_A@@VJK+;y{mZ_n;EUM59jE9Y;C`8@@K*K%vi~W34zm7bpHpzr&)JHP z)EiT{$Qf7omB|2IH!N0@H4o-b}Rfe9xsn8{6p5~^9rBM zdibNlpWt}lJ%z7g{{L3^0hT|V$APr>8MdFX3KzRFe@r-GpJRBOo~-E2Uv-1MUxi=I z`aDzN?;78R-=Odj?6)sd_*Ay@9SZ*w+uQdQzK7#9c|Ia~zLLlFFBQE!&wEwj zpK?DQQutWbkBl?nKZ)`86#ePkt`8M{nDz6C!hg!+#mD7@{}Q&7kitLUe#ubyMQs0~ zSK+h9n2$47(YLU_lIJ@@KY{B#S<$C+{1Z`lZJw#1TH)_=xN!i&QtUkv7O9RxX5#=!bP4H3crH= z(kg|I;dG0_yI5~M3jdY#uflKVc%x6@4NQN%!do~_xJ}`H*29k#F716-;nLox6dqKPbmCEo_Bty zaQF)&bo@!-`1kklIHK^^IQ?&huVeZX*zZdJrm%mXrSRK$y?naDr?dZDq405G631Dk zaM4?f!bNXA3KzX?Rd^})SD(U9WPs2A1Qn*&lh_XF5k61tnd)q`L7lJHm6@y zxU~1r3YYf&L*dfi0NaK1%WpWY&Qf?S`;+4}&i!(t!iE1Lg@1|tb*aMt$^O4q;hBs# zDtsr~NtePe;PH5g!dLM4y;9+#x0@6$dfTONY1hvbE_U*m!o^OWRk+y6L51&U{k*I2 zCf5Ha3g61~X`Cc9|gYhDTf1Uk8iNgPz z$8U|oXY;(UTH!6+zp^hV?On+8MX#dY&vt)QhU3Ku`{j>7T#S3EvexcIA7mRI`s#xRjPqZED(+vh}u-@|r3N8!cHr%2(K zbKF&~@K4x2zoKwy?|BNB_FkayJJ_x+SNMaR-mdTf#{)Mi`~#x~=XQlJWd1)^_)d=B zZe)8AeJ+^U;4}Tzyj*}Gr0Q;qt3YYI08Wlc^{lG;E zm$>cg3SZCu{QC;u!~OEO!qeHWzM}A3nEt53FXVV>EVo1S+P!wzc5VZ;Pfi|e)eBCEBsZScYdVsn^^weDg0&jhi@xYHsrts(3ZZ1~1kM;arg@2d*=feu0%kBCV<2de6blHD-MbXPX z?>h?L#OsAm6fW~}I>#fTpLb1nImapdc-Gr=#zh{{o4h|FeDH6J;;};UIl^+Bqwsgw zAIbZM!e?)o*f?KR^~&$JT%q`g9&S{)=wX+_MGw0bE_&FfaM8mHjEf$Q@HmzIMUh|h zAn&^gE_z5|{~@^OAy?tQ;`y_kFI$ZFa+b94Wjf&4z zY=>P6e~rh>7R6@<>)~2O-^X_NeT84f{eGX~BfpdL8%3YVdVkTP=c$6^m*?=JPxs2%61;xBTBcw7pf>zFQsanZm0F3?GeUhE{I@a63HRwzF5et3hT7d~AIpT+a+ z7KN{3{Obz;0guNU85jBG{qwsO{e|q$A5!@9>}Q`+xRifh@t61E-&XV@|Hld+&32f{ zag*rZ<#{WYagkqs7f7Bj3BBm;RK-Wedzr#lvwg~Qb>VY48&}M#7xOl=KkTq@gl^^W zvPtomez`;8!+3tVTk(tBqcKCxYe+^!+457EOY zp1;x=7yVz)an}Sz{|U=8N8zIXB85x4WdBm?m41<{;HUFEvPQ`xzbCdu@fUeyd%jLP=S&Cld?@{tV*FU3>8c z4tahncK8eSdoLC8@bMgf_AxH<$nTHsQuM-Kp7Th1=dizhUeU|A{gc9_zy4~~ zi@Y{-f2D`9*AmY)ig_N%4ioH%obo$_`HYJ^B4BFF8pObe7&L<{@WBT zdj5vO#h!0dxb)*s6fXLCfN_)u+g8Z>d0Ej{vmW2H=y9CN?>+uY(Tn`U@_+~q(OVA3 zSF&CdJ#aYV6e#-Fc^~97g$w_3g^Pa9Rk-M9t-@uzU!w4fIWFpD+=VvqR7CCBspv%> zo@S`MVWKoA9ac4dYZ!T;dFt*AL8^Jh5wn;^A(vXd7~i1qYQ{Gz{40!aQMi0x^fiTlmFcfk_=Sx3DSR8_*DL&L z#&1@*d>3@9!tY@EI~0Bw<3CWieE)N|!XIY(dlmj93^x{-)4ND z!arjCw+i?1y!@=f(;0t3;W>=IqVP$Kzpn7PjK8VyQyG6-;rP3)c)VvW-ngq_{2vPc zGUFdBT)yX#?}O32Sp`HHW_rYIyinodhgU0H{QPEx%lvh#!e!pvt8kh34=P;Z6LOG{ zCvr+080PURxWu>eyFG$SyxpYe#s6QXa9P*fu5ek$J*IG3KgxHMQm?FA#eWDc>*#z0 ztaiydy+q-%&(NxH*;lzj;j-^^r^01l&MD}=U@iP5JGjQX%(YeSx?=711#$e76b1CR zg9;kDyPblrPLrTqye)t`KnvjSdDpi?K9*|2UsHo0eS|;F#P{_L4PCMIN!jox5aBP4 zBFjV(`Z+T$0&+-cgz+zhI|cZ|_3+bKP67OATC4zm3LgHJAN&v(=!*0H%3jiRU>GyGM15rtKM^{AKfzOJcv&q>im?9c1(;|AwEN60^7< z%8#a~A33@bB*OO zz!#}suD1f-U-_JKO@Xcf^e^S_8KC@St4;YS=Hi{DoLn)Uk$aB_ZhpAhP9^R&?URr- z1pcdG=G?Q|lnI-QcNYB#@H*TePhEchYD1yNuP%>qPJjKE^?)fa@6lra;Zjb@^EOVu zbz{jJ8}aNo_h94T$c6ut;J+@P3Yh95K;U=i*U-f|Cb)0|BBulqG-(s|c>y9!Vf1F$;@JA1}$vBH2t{SgeQzQ6klX zRjVypthQQf`?I#SN>wPfV(W&xt=7_NE!MW8wUt(_|Cu>6_uV%n#{YIdaPK|eGiT16 zIdkUBIq%+^&7sOA9^1C$u&uMLcuG*qI{KaXeIeZzS`)1CRzvx~pUMX|9oykYu)OI| z`Hs-Ba{JJQkNzX=#Q#w4*1x7BMfuiE$E;W?Y`AHd76+_XWUJyJfYtg*os)P`+({Y)S&a@;TVS!T@n~3N;)nAE*gneuD7SP_FX;dL?L*X=0cz^3g3 z{a2I^+^_*yHJ9)3P0b@XbY$*+Fs(h1z;M@4oPU;fk$xc4Ln02-WVwu`N zT}{QnvqcX~L^6^4=g!@MM*@&RgU&U$w*Df${2GvgSy9eAbAY`|SNHB{xB`%SU7bD< zdH|3IpmF=*3jZ69G?&lHre2EqjRJODsCxEs6l~z(a%$U83h8pgqQN?NTMwW>4Sh`H zpR=2<^H2%o{5eak!4d~a-B{hhZ5MFG2e+*f5q4}NiOJod>0AyizPxI?p} z8V9zmfzmtZJg}{q?(sZ8{0(nNehS906YJedwb?u9GO(?U3ZN(h+dAkTku&H%?V7Jc z0mnqZa&JIMq4t{+`ezRy(5<1JaNP;l1cQh4y@1~fSLnwZs4J*DongIge}4v-gx(G9 ze|sSgp{<*CT4`4-G4%mg$E2whZ|6e>)VIxa?f>_|LskOSp|KlFnF~g1Y|S8cRkf_i!41aFlQT>l~a?j3fVCljSVv6!0%N1)@zJfh2fk z?hl!Kj`OcjQ94dDFl!uz5^$9gW_m{GnlWgRF0~=yBQ=CE^)+KIrew{W#2G0Fyg>?> z{aKpbA7Vc=09I^VT+xHb+{_hpTfW0oww-aWexrRYMJq>4G|r zQR7%U5Fec6PD`7yu}E?dMS>B#px|a5iXmD!Z>A{ZnF1TqvJ=ovX6zOkmiv^>-z1_X1LuN20K;YkOZT+8ZyCcsE@6*62_*8$O?-e7JFA7!{OQF{g$r-wv`zV%%wwC9`>ZDV>M+t&}LnWn(S6Sp986`azqgOg_!oGjnhFny<_8GH|O z{)8taqVglAWLz!W12b}-20RPWR(fET2ZA?JcOXCge!w|VKn?SmoZ0F3Ku*B&9e|5( z6qK07{puSJiLqEu9^4oKsK(?elNSJzg0&DZa%xTp08{PA=^b!S%ty``MQt&OnJFg2 zw;1w$s9PTjIL?nMPg!X1g9LzZqB9Zz37rFUPN#E_&V_Wo{A8rL)JTz1>ir_}8-d+3 zs?y%zWqyWh9+j9u=P%NE6P?ee^M!Oii_WKvLavrg7u#Gs=HfLMpSk$WCCOYym`lK1 zlFenLxulrOD03NYE~&QVL)DUzkKSp|KpQrR>+Ko4LHvxX;Y4c9N$q|V?n#rWy(2fl zJtsE%KY&pd;DR^UGY&!CDcAtR>TC9lKLV1BNMQ6`cHmP;VR38p_v~b1#FRJNGe&{c zGUa`CU}Y>#81h)y43o#gX8KdNK;9zD_aancx@Cel6NkM?VR^=d=WzjavoyDYZ|0Hl*BvBhi2qepvpxgB+NKUsKQvL;bbh~lX1VJy!xJA$}W_(v}FC8^c2sVul$?avS zq_OO)pdy@M#-MMv*%77PY)1eCS~$_!I3h3I59N-6lv_yW%W*ovqwr)rUk=9x->#2l0OT?+cdMJDljCaSd1Bz{l&Ewy}|B47G>86zBTnsKK+9|);= ztQ6CVjJv(#A%j|!xhOjuO3;1QBQsY5PQxuHE7?xo2`Oxrm6c+f2AWi=O=6hgmX&5_ zqJ-(pWZ%r)!eo0^wVhlC{7kWP?Q|SUoT|6eX=*WftL*d<5UiLnn{|Pmz88v_F`Ko< zPQMXSX3SbFM~0_7@h!hX_&(aC|CYoQeU1L3kRw*x4NDYV5-qdqpNt#%rYB$$)G0Tk&!fs=<$ zG-POy5w&j_Xven?X;2&&4GmpG^Ezg~E!oysVgv$u(0n|^(E~}#7X}(15~fea?0AKk zw0y|THwtdkQ4uEF)G!Ou**KzV;D*MM-#DV|Oi$`%5G9b=Bp44N?h)lDB#F)==xnC^ zWV#UtmmS%!KU6pfs7v z*so@y;>ewk%lFuC{Xfy7^%@_*x@C9y!6l=*h?nm)D zZ}H_k0a?bO$!m`U-o5qEFv> zcvpcZ)SVC8>ciIiP#oVhI8k4WFUb1?+|xW0oUkpB%2UgPtHz)^HS^4b9b?8r2KVQL z;=F7~nF_H0F`8H~Z6@3kqr8c8&xLz52y5c}(Jw*;oLEQ^KX+Gd!Q=~pj5JlA`%_Qg zX-H8Ub06@e(==yN4|>u{kcCO@^-L^=YK#NV{h2504cO{24m|fEPv*&xXLOqTuqSgo zq>N5;AMvCg0!a#uyty^O-%90ka!>OF&PtQY7bR4_IHB^>JrhR8D?h`Nl?ExU{7g?q zHl%_^%(G02O)9r`dIeMv9|XDQPd*O-YJ5&^hBxq4r~XW@yYX3GcjL3Y6U(rEZbWp_ zH-$-FZqyri#bMIob&bf}R`2-AxS(y`jB`;?X3`#fQ22ob)c-Qwy_mZ}$XB zGei}4c*Y?|Yj&)=$IAV-hsLMRNctU1BJ~MN)2i?la!NRZh7>-ZYF4*}>)>wokcUD1*7r zdjtC%$`=x9c+op8>Z;+d_JSvY5)jamJ?0;9Ph9P>1)Lkc7Sgxp0Ei% zl*qRaGqCN(knPbUuGPGQB33xYwYEh8HVld01XFzAHQIFD#_Vg}A$aWn@D zobZ>74}pV+P8hOUzKf-9f!?1(0b205XM6@GPZ=0))W-! z`$<_?*znz)oQVthr?D*Fkc<{=W&*)7|H!uxr}7uW%7n|j=^2O6Cz8ivyx~9bK46+X z28#R~xszH>d^Z`lr)DF17;flfO60zjGyz+@1oOHU_Or8o&f{Ea3b@MR-cYG?3OTE=IMbtE7K=N$HDqWCir|2{$lXYKIN(z^j+(l5zB z8as}XxLRa&JnyIA>SEzQ!4+$8y^r#)!91MSJ?P*}_hqGcM(+{!Tm);;GSN=@EoK}B4)GJ0O!iR8_Z)^(fy%ndCNsoaIBqr<%iew2I9OF+YQWC`H_gZa$wZoJ6ycG;)W`fk@M zD%@iS(dT=l@EWJ^MNZ**C`^rBV^b%C-Ay+6T8CAg!|DQu)lOkmXV>68 z5EH9q#`58$LVZ+de@xEVlx}yJB!SsdsY1Kl$Wu;jDHZ`t(@N|t9Mzy^$}P3i zkR8;B4}n-?fk|AERyO`hfEfARJSzh$$wk5^X?)`y94D{~ws*e?62PJt`t8YOD1>*{ z1DBcfQ)i%UdUxH+>8DS_G4I`V*Jb3ky@!%(U~dUlnYD_ghnZ0--iU*Z#rdE9bQpH;pMEUTj=B_Y2UduqI>)myPdHjykM>+j^0LQ&| z*OQ$7J?9_e^kL3F#OXh9`UOt^k<*V~wg4+Pm41+Hn7+b9|K#**oc>qPG~{yD%7>Xo z$nBgyMx)rfYbU4w&Ga{M`aiHyg+lM)^hcb&Ycq&Iy^Fe`-koJ-VDC}y4!C>wx2z_6 zcP?a_-W(_~y?cy%^Xgfq9UpLd$86KPqReY(5O{ZqT-Q<@=iMdk_zI`L%yRBzdXalq z3JwIY7S6wpJ6ziR)x-`z1q2#od;IbA@AZ-{K@VAkrIF zL3%sc%0RuqKg;TN>+K~(;IMb!3z3Eg#~MyNQddwo34Y#4y^>;SrxB}YwTj-56h=-$>YCxyb)8e!vSJKQ9r}e>vm6gQ z^d1Osj4%u58Lz*}Bu^_h#o13RX1C57J)K208qEYIaicN4j2QLu3@ZaGITfq43v5)D z9H;P&y}LrhunQ&_b+%axG1tyZC;`Ka4tqCAY3J1&g|;E3 z(yutAWC3s{xcpHhl^-IQ0{fitBGB~l6NBS6h zI#Fdzqb6mNAd^$iV8OE-IZ_r+4j{X1+pfsMn=zB2#B7jtEb=fI{FrlgO3GwkMHWa7 zERZh85etCnZBE+7eESkHzY47iPQ4vvetrmd)uc_a;4Ez0kfWcGSz3kS=(1O%mDbur$@<*WN}KbzskK{U(Hw7$zzo*w0Ue$)%2tgR3}BK%Ltwr%^P z)X{jsArAlHW)j8tZbqNy-eXVlq)kRjau#$l!Xic?6V!_}4|^h4`q?MiTOod=3fhez z?*g66%Xzwk4bkJP^xIalBbqnQ_9t)k+y9v7^Z2KDFMQvh4!>mDG5-|2?1hsjslexj zG9I5l$vb`3e19--7SMXUwOf!RDdx{h@=VS2rv!HSJ?|3~$n+<{jW5YFCDWgccU%0) zc=-}?@}9L6D@*q7+x$MIe`y6;<^z%jNMNZydCQi)e$QUYdfEysEvDM;-W=FM&~E`M zBIwr5fitPTSdu3%6Ye}9Od1H21w8zoSYVDn#WQ`ZKly!A@~E|RLEv%!$iGnOt2T@L zP$Z9vq{RHmZ~FZ${!u^kj|}YfkJ;Fc{xMtplUw{rtNcE!bg4fDF9DPE z+=|tE>Oc*6v)7-t4rM@wfu&SC5_|8lmnOZLbRVi~AWQe|yX;o~$b0;0F+7jD2gC~c)Ast)QAnmG@@PDp1nB zq@K4n8H;lDE9#Ux^e)d*w41r!A8vxmW`otlK-QB3nPez0d+tFyN%P);xuf^`Q?BqQ zdFEt7M^gS9o>(E|CwsrP>3zQ^um>wodOyi?QWo6>GQoV){O3Sf&r&MzfoEr-|CERQ zvpv(Z{P|$y$*q2S*}T2}q_?2_Dt{6wC}|ZG_XY~!?2GyRa7hB2$*=T#cY!gS=ePSk zW5Lgqg)6J!e`rOhGF(zyQD0F~RB4rkYl>=%mWNjYP*hwQa)6rJiWNomA*-@tMJQZS zUQ}Dp=TL2Jb!|Abs-_wsN?2v3%fdygD(b>@l@+C-TC1tMIckMtojr5sgsrmrjXlvN z9g)^PH?N|G`f8}Uw6vnCEL>b&Uthi4Y7Nsfkm0WA`fvw5iPvF;sd!08q_58^D~|L< zm$Y|9I@&LZE`bLpLD>4$HKFj5%A&IHl8P#5PisFs8#jNR)!g3K)7=+!ngjAyR+LoK zhpVdVE0(Ob!j%q^5H4GRkCs|x74W2G zq^l`f(bXQ4##Ap0RY4CesmERkRY~hjiFM(Yj_wH5jS8*kYU#H6yZYK&yQ0nTU@D4) z-Ak&d4V5(1)>TwjLB;q8s=FP~OQjV+P+wiU+G_3ThN974=rMlo6CQVM4R>_6LXmos z20F9~G*%I+4bwBTYfV>_MxlA#8>_lw?JXOv=Kjvkjnw1V;c=x^RIMlilL!~pmNhH~ zK2}*xq&L!OtU(kJC$Fjw*VPo2fDvL7-Hd8OMWx~Ds>;=Fu%@T~x~vh>)j^nYs@_G_S2xHsBjefGnmVR%+G978!H zU_exLg*-h+2z#@Rpc08e1UhMK^>0s zI8IVgq{|3OimFONm6gyv&^t67#J1|{Yq23NTCB2e_449s7_8ySimGMSx-gDtH%(C` zTEl818gT86_VstfEHm)KF>7PkbcoZ?W1O7T zy}m2jYwV|$MxP8tddS>mtM%SzgcOQ~^o3m3$@V|9WrlMxK#&Lw<;=dG`< zp*{suBv)aTm4L*Jk*2j)M|W3ikWNFnnI%Q_G=msbmWNik{a$f!#$DSD40#SEVg!~ zDM+TfAPfct_5@06ZS3yuh(@}MvmqB-A8G7}3NsiTK-ot=8tO9h1NaAU*?_ml!cce} zP)DQT2>W^%@#1sHJ0y$4mOiisSEXh)SW*OT3OtROr#WsIY*LWsxH#~X4)bQ1dj(xQ4qPxZ@Z|A{ z%G44rFRCh~+9YZyt$@aWw;R?sGgD)`agzd*g~{0M>`Oz%4P~xwfqA5*y>$@bc`^)z zV76_jFLxD5a0+0$=yxd4g1H(k3C4u0Y30>*6eO{WapkP6t%g`FR9{qg_N~UAERs&fVG|jeGZM+x*aqco6Ml)sf_HDg zRT>+L(O8Bkt3B2ZE^T8&7kb?0VS5H=^l*D~mH%M2;X5`~7=qZ&K5!IWt+BSbKyN%H%`0ID(J-9BNT-Cnk6V8b7}tjC z>R@z+8|p$hSWSs?}i#C8{Xq zsmaPhXfGOdx>gJr z>;^)y23XBdh~3)`@1vREV(voV9uGa27u79usw;*C7p@^-^z}A%_RMib3@T!ysIH*~ zSBzkr9mBkX<}}xYuHc~-f`<~VQ^aOMTQfJnxQJOj9Lu__#jIJ)YPAkSG+HT`z{wd! ziBUQAjMag0d)Q3W95|bpOlCe>>qVL`>Ic7vgB^o99s#ucbopMI^U3NBypX6b3+F74`N;Hewhh4#;K7sMh#e&TR!nFpSZ$RB-%ag}cBtS{pbr zcJmcCD_S?b$bkpGrI-+Vf>Gj%9SYGLjnl_zVXFx=(Av!_&A7Fg%>jzLAX;%;sbfGi zzRRi_f+cfL3(lQeFt1=vFuya_-xWQpH43v-dlMuhy-jUrZCJE0f8l~)erqtlrKX|; z&XK;2T}^Gh-Cf=Nefj-e>!FA8$>sM!CIoFwYx7}_jloi`yEh+~su0Xd23k*>WW)Lp zGMZXkY2$94#XMO;UwjmjSxVoPhQJM!K%i4<@yd~wgvL~O@#2oqk9VRbMj38UIEzik z9lPT?oIRnV!r_icXJd0@F8FaV2ii?Ab4`y~rqi(L>FbF$x$NyYxo9GgO$=8sU)kMS z8C@6cFl+dAVOh3FeK_o3v|`w1q;gGvanq=%T2f6j&LWc3*~Ecqv>_BODh78{R03hC z)7sxl@_%cx$2#)#B^|^mpMtKr1g8Fw)22 zNb6|arNYGsL}Q>TYA;xLX>SBfv9$;mejM^*0K)#42Nh2=>|y%ay5Wsv^kJ~lB@az& zF5^Lsf57D~?ahVD>S#qZxLVBg?rOLMUl4XwgA<2gi(_%Ind6V^T5&LO=DgZ)b2QO) zE6EurG%+2hfi^ctg<=lI2T;`XnZ3!8dP0O$3^owrtu^W^v#8@BQFPH4g}1VMIqIXa z*%57l=_}kEg&`a@E5ml&E^{@+nPzd1p-#5cz;D3n&P}(Hq6M>`2BOGx0WSzsT+wQJ zEX;u(3W@gYm>zoQ+E7_TWl=5fpP=h??F@?2U1gR-R8dqGGMxq+XE2e+85((tE309x zI^1vS!hnU-5atlCRafAmbk_rTu3u9wsiM);x1&I#_rf6E~%_8s&@sWFr2{ACU~9r4xTV}1||-^gjq})$BW70%7)rv zhzf8M00IQ*STNKsm=bvZF|JnZr-~}r5{KQ&^T3t6G#-L|?fN>IB`NTb)uqdzjqd@8 zaC|!P6@*5xKO5=5*Xpre-dv3D+hV|x7=_YeicYY0Ft4JAX$NfnJXj@(@Zb8ZEp?n29J zVB71nt95OUcbIJq$8)p)aAsTzDVzIyFuLlBwSZA1de*q-kaVsc=J%0U*2B^3iLi~gv*bGqj2#8y1d{nM14}~gaF^b#7 zt<>8tNl|mOzX}%T=py0g2;Sa5u3)HsWp(Yca6=W0WtedBcN>{iczBv=C1F&@wPqZ< z4668V8Fed*YHHB@#RPD>-MwaoVGX}Z4A;*XtH_v>0NDyVV;82>IcA*e*mgL^&X9nC z7J`oKz-gBzS6AFGyRy7TYc^-A8kWoUEbP@npwt3CAB7WqwQKjMHnap*-KFS1BAu`q z0Q={-KR@_xoTza);c=pZ2KH&C(W-*?=BSCRq!ZEh_x(Oh7=Qh|^^iYzaX+Q!&R_(dWWpz&;58(AhzfQpEO?4(KVtkux&`mF z&|zOvYuOvp?TMpC1a`usSoriQJ%I{WdK|MTHT_CY$>^j8AmF?+sU&|pB*ghm@%#%o zpPoaNe9w=G0C``^`Se_?cBUI@wfm_PJW$J z{tC{&C?P-M=j8t^su%m*)`AWL(lh(aJd5EFO}7J=}X-^~xi{zhYd{@~|}J<-@I)ff3Evo#=pe$^5pn*NF$#@#>s|(7C#??_~ndGVgC4` zAjJ1GE^?MLjsp`9;e)Tipgc$Dxka`e$iIy7AFyJ`CIH9R7?8e{ak3@AUu3*F84_@i zjlk6l_1P9ZGD&zjo#9Dg!hPlqF~CIsnC*4ZGdW$n2~_bMuX*M?4)C4Vykj*8j&GbE ze|X7*4Tht2B_8DyT<=ObnL(tze1pe(I@EW!L)Q^X}q;lI3^aqB(pBn;ycL>}I z19`A^jT{2c9Re>H0$(r$UOWW8Y6!d?aMVvDT=9@sv~C!J{^23;gUn|$kJEO;&N?~- zeLA?F!Spj@2)uF#ym<)x%R}Jb8Up{x5cr`X@IMcMd%=|q)~+!_;Kzl6!>t)y4;)lN zlurv6_ey5)A9RQ1YBt!+uGnzIpKDuy7v=>E6MoG2Ki%Dub$-FA&XT`iLHu@p{C1vu zy(Xc#J3{A2UCajaXYQ}LH@b!)baqKT7u&>j-|-vV1#^dO1jgFV(+vf4;=gnZ|GXpo zUN76;sDoM97pTam6!+w`_+FTd?EEj#T3&*vX@LB1? z^Idqi3omft_z6rrP#!m*J6!l|$P@k;XXAnNbKt+=uQ4w2*CP=eZz=pz16!ZC_+VRw z&uC-}2VU?45rSjfj0axk!+*gsKE?wt_};zXKVV$sk^Xu>;SX_t{nEuJ=;Cu&(ccYu zc>G1-!so*w_|!w(i3eu8`~3wM?rs-;&lL}(UkLxDU1NF4i}-0Syx4`GUZI8`?*>17yG$g;UBa8-0R{Kgf>WjJ?FyF=L>E=Ms4(bx(iR? z4GU~94v|stACIvLM?K*&nQ=^?0sn>nJQt38Rf2cA@UvX_HpbC5-S+ck7Y=W~JAAHp z@j1tZ?{nc(T==stywHUobK&lKPvQLrY?m7^VO;B{#zpUL?*Gr@L*_}T_bz+|91f9R@EopinaL(TC})JX>}nN0 zo#kJx@E>ubzo76xATu~R%*Ek)s$vzY6>Tj9^~d~?6TzrpkLL4`lS?Rr_^ohb%*OW~KZ{2wZODI2uxJ4%0D!}>Je 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 MaC~Gg&RLiLUphM}p#T5? literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_values.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_static_static_values.c.o new file mode 100644 index 0000000000000000000000000000000000000000..4844a6e3cef9796f4f188859ae03da73e1c21234 GIT binary patch literal 42752 zcmd6Q33yf2wf{Ny~zT5Q!v)hbS{T3^MXirT6;RJ0B_Rn+<_w0)1(s&B2m);f3JMPhvY-v9gl=Yw<3 z`t7yXUVH7e*B^&_EC!SgVm-<>J?`HCf!$d z>8_p;elm%?bXWI)2eDqC1|P)YfgZg-_Vw3a$BloO7Od#z`a?}+Q?gCb-9clQXPz)k z3D#wv#uts5-51ZW?LQq%y0`4Fv8%tauQ%_2KPx@%lqfceYVc8tCcBAyXijF5Z+Zj7pAI zr55yE0(IE|PP^T1hW*eC7q8#p^o;e*{kVVk)T3B{5&7}2ux=Nx-`+pxR^;3q*-^H+ zU_SMY2Z7vPwz(R-9PAU>Rko>qH&hb-M;=5IJT8uw$oC@f?d1x^UCr|0YqyAc#uuST z%frDtuZ)0*r^+_H_Vvpkc|Z67xgYyL+2%8pgJK7QO73@h#`{L-)f}e9KOKou{32Q2b(WQrR*UIBEpTw_Lwj=o;({E+cV?kQGNM)v=@8fzll zSLPfWK(acFD(bXBo=MB?E$td3rh2+@oWch`GUQ{uHK&h>IQ_|qnW`IfMpof$}%Ux%!kZ<3Zwbn^cP;eFA+9^PdTMTaZ{ zYwzCF^CZNR2g^1s-f0;>t9T2;)d93YL-7@>v?x zk;eoc(*NQo!&{US{;QRR+DRY4%0k`$KdvmAp|_)=b#<(`rJ=LCw!5LbwXw2cWvuCx zhPIxV(-mu59v*XixU#;Y!dZ=wPc7@{X>aOsR9=!`GIu$vIy+XyI=k0OnfdwCx;h)D zb(vE55;ao0^5N1TeB-+ojBi>HZfys!wJAKlD~#u!@bZq%@KNKtjtX}y4|lI!6$?)o z-!%c)%vCb?a&3e9MH{h#Q7T(5RCctXsi~J-aj3ui&9Uw%neXEL5lyv7?jE>Dp=$4L*FXq6rsfY_9zU~7A~4`w7GnC>Ry z#qcFf8HQF&C-Lb415!$U?gf|95Cl3a}Jp^xn9`Z7nt*fW zkS?io8AO*fx(s$553QQ=C6qQAv^8zO4Ur18=^UwB+)3zrL|o-gDu$G-8E`VD&K=Zo zHryNQ4(c2@4(^%Q5WE3;M2It9?M^xu(xyQ&BR_H{Z31MlK~i_Pq1%8mPL+Cxn_>hp z=XLI+`{JDUx}g_+&IjD|!N$u-z3bgc??GA?G8n;SsmCUT)`L_Md_vNQPAre8f}{~y zkeNI=wJ>Q!7%1w^sU=Ax@_@=E&PdXT1we&~T9`DV7VI{WsB)4yov4$Dnn~26q!Fc% zZ$43#Nh59ms(`C?qdVybkdTGy8D$GnlY$|v4zVW(2k!)esR2Z>vZ3JMXCaN1O$`oy z8z@$GP%s0#6)T$-9Gnd8z{(DxG*&h!C+*<5nd*CS0X0b#1=0TyDz2O zY!koqGV7pxZz-J8TH)lH6ZLa!*6^iJkJMpF?)M?lIC(;6Vwoe8ymmF)AA|ZVpn0#5>1BxAoo^KC}Z# z)_kduGCee?$3u6{gq+UmffzW1{;eF%ZGyQfd9D|lUBfi>z}q%s@gSmp~fK7N|F-pYCQ%1B!ZM`dMy9Dp1rL)0^CkN}#AWrpJh) z-k9F(X50X26fDwLxam8ADxeZN+;q%WMpUOe@D@;|ny4Ok&;yXRgsbrQ}Oru!Lg@3)Z0n~glEg2iJxBJtE>@|lwC zq@bX4kwj;pu7@Oy?Vy{7jA_?ka=bt!9S@~>7hy71o|37A?LZI1{_z{QF+C$lVI?Co zF!(P66UN%U`bW_8gJg3aV9qqM0fcqWjbB34B|DqL1cJ`6kIHfS< zWY0gM3q+f_n%4|>gjS5+Bq#x=Ot>BZ)A_>LHv~ez0m^u8_O`%4^g^a?42(G!gypiF zQ>X3$#^Kn6VK;kw;1EolDBI0}bc_N_{UnffHDtSdCa!U^e@fIA;=F~ZYl*rwka8<< zZYS!tz>tT4+CkL62hv^xY9~=Ui1R_Ben!+TqHZT@H&J&G^&(Ms61A78pA)r@sJn>T zPt@H+eNNO)q7Ff{cAR^NFk_tK+#5*w6ch{5I^@1U+Sfp35OsebD{BZ?%w>};$xnjK z0!Wv(hz`$51e(Vjod}#WW*z{haVBQ(351pbMLN9{$o)Pv08=jqMji!4g}J28quYVe zG|o;p`}cwGf&|L;THpw5V8>KtZy@Jb%;g>p3rOenKw2G86Wya>Iq19*NNERZI#uNl zft2q8HJ_+ADXoC0w@rPg*t2x#kc}pU&@#qH< zfvb*w3IO;AhRF_jp#yMBc1`gzr+~?s8t8@hLQxaBIj)}aB`})i$OvSod5@AbygXBIOD;Ks!%I-Sg{3gdv2UEpTF z42eVp1EW(Rr!nIE>}kQ!T%gE^(}TkvMx3Y_!QmsI(CM5nIWVpmIK_&ygJ=2q<^)G! zOGpU=0!OceH24R@+IsMI4}+7@aSMR1IiaGChh4}!AHXyWJtoERu7}%{HIRYh6#$)veKii67J!ujfJQCsyOc`R?!ts4;DlY(%67mA zyaK>9?6xMw@otA(!;RgCv4`Q-`x)r!U5h95=#=LH`xCO@$?>o$y|>^t4gHwG{{lMY zWjLWfF_sLs9=4|U6^Jn&ma~4$bU;A@gr}TMfzWq=GH#LcJ$qEj*&G--Gs_>9a_*bh z42&R(eIdsQ07|1HhhXoGqtITkIrQB?8p1Dt7+Ua+K{%y($e$1~n@YHyWA0`-CQs^b1H&-E z%Ld%+E(|rIE(xTKM955dO{5_9NYJeE<_Wud3$jyMZg2ofIKxjfB^nYJxZrD$O5(3` z(>5TRIhmO?O=odlVuTHCOiDxOZsam@;wLkCHhYdoVc|L5Nr)K1sf&UGU&bt`vTK%q zq}vApGfVzN(pZnL+_XRraGD9XQNggMr;sIwW13a_)hU^{gr9@3S<4%X87;C`hLE7r zHl$?YhQ%4khc{$d;=4ZR^X1&1G!#SDrO1cwzx`%djJ#T zy5;;l=|~i@2VoRLvW!02J)u#f!7r1+Mzr)m72Ny5zHSUz&B$O(hNLqF{yW1y8FB>j zo0Dl}?ovx*bn&vVk>_SI2xpEr@Vj|@RLC$7e|;z}jJJs}X9DDK<^n{=XMA6pfvqJD={l+xUH>Y&j#9cFp>#dcJpuckuj^=~>zMyDUFTrcybPC|6bU%4 zql@EiyEqrR7*d&T?oPPGgU&?eal~2;!kXnKBP$rnfT4U=XEbLv4B51^8Q6Lj zXo5NCVyc&%s8cP1aJbv{NI@ZYI0lutPDWgcYx-hfYl|}$GyEM-cw9smkT3`aj(Hu+ z&UU=N&!IM@M)ba57vQX)a}H;UpS2XS!uk;O`@E9erG>}?$DsFOB}}PrNmeP|-L}!s z`c^gGgGDIo+jA*vwd3LVcO+(gQu05>H}19|Sei0Cc@h=P`G0c)_I+_o?`bnQfhOZH zYYya!TSywqX=bs;dA%31NkR+s{AW3n8J;FPSy=2OsBq+{Jpg5PA1ERD*1El?WdTmdC^0HW|ihve8w=Xd`dywHt`O zx)9U6ty?yb_#YYZ*u#jvb`(w#ysbN#zRu8rtp&!4Cqmx16&*9*FqXmuW2v!D)-<@E zk9v4lxLCLx(Cf|NZZm#=uAO$jpY|x^CRNX!i4htC5oxxTosxZYo!Es^&l9UT$Dk67gHb5$KCdGzksOUw@ojp6}{sf^mX7RGu9Shi(?!xW?zVu9LMpEyDb;S z8{%IW!F%YH3z~XXIbPWjlHL1*^vV+?f1aPe+|PePv1B+FQ{5@-m5$TubDNUfDGRwI zBB!#VG_bh&={S6XQH+h;X=Z|o)o|RPQx1L=nCN(eN5M?gOLtPogb;$Q3vcj()MJCk zq?Tvlrg3m60jUVU;BV5$WHSSdEdyp-3;_tKA8tuk}P`weU?hrQ< zEI!g#JoOk#8kOXpkeWIssXPn#K_z5A!Y>DaxaLPP3@SlxFa^pi$UWawYqU-*&$5%l zP|TPCQVz5NmNO=?9IDSz`HpY4F^X3n<68&Jg?6y*IoGIZ^68{` z;7K8B%$$a0U+?*l^X1OdTAz__q&;?-D1Tn|@`WWuG5C?}#SbV_&Rf9UVwF!+{A)=0qBy95VzY;T?41-cM$$ zskf5}Qzoye8_bb8qCyk%-kBvd=sNV%0w#J>VVM?8@s@^;3#Q%~3>*xmhqeTV-x(lZ_btiNDp{r2Mu{#$j~A0(G3TKflz)hC6sRxo^?)|X&CR_aPVP+yy84u5S;u- zFeNY{E9fqo`EW4#kC0_aF!>}WkmM#WfwLFNhjUVQFbJ3A1_^p;?|%|=%GH}~Pt zRi>DCFF1(FC_FhZJ~NoIv71!6!!-sP=k2-RU@(J3jKj;ra0(3s$)#-r?g~Iv~WpzZM3$cyd+ZNl-9uma|_!V zn!B84cvx*stSO3*&_z3A&8=PCu}*#@&WRev;E>RmPQwrSAyP6tzD}+x?;Y%ktNj?<;CT7(aNg2@`Xz=N7bT8Wwf|z@#07& z=w4n~3bpHut?XDGbDCqZXv4Cu?#_nB?r392TU)HLyS1Y|ici#`dQNF9R@B;u(}=Z*F6RoMtU@je#hHg2 zo#kwj<(;vZ)7a4ty7V++A%{P-*N)Fc(({UByVfSZdKHm{b=ZQDO0nQ6<^jsp(dBI& z4c%n^^7iE&PEUJRYjb<737%W*cG_cWAT6$!Usq~?=2acQ73+*E7Hfj$YwKu+vw3*Y zSPE9USlw^dxUpl^T3=moiArdm@<QQP9>mEeEnCDFo~(t2!Qr?k4EvtcE9S}7U9YM{!hXl-?2F}OGSqb;Z= zQdknLs;oel@!Jy|ddX6BrD$PAMb)X160mOETE)J@IMHQoJ)O(IDrAdjyU{ngY;AN^ z*Q!{f$>#fy&qWT>3XR^-))w_2S0&4m!N`@0#W76foM>}f>#``9Efa)=;6_d z^2$ZFpt7pkx@dhRG$RBl6To_FDDvyWJ(Zu!HJ0y^-USwJZ;U~#=;~?fc6y*I%$gbP zcA6VjHAlN+D_2F^W9LE+U*n3x+B)da*x%ZrHDl1I9gP_8z=d(i*Kuw;1UeH}dUqqz z&Q3$Sb6+&gA|2B5QMAfJXoC``8C9G++t;TYx&t=H%&61W(cT<3r-c4bLji@;!a4}2 z{kcsM7E~Me9ciqx$dX>;2sl@F+_5RRn=s@%nWVPH&{Aehpl-1$7F!Wr)zBG(IMrW+ zVJW5?L3@Ef^3&A-8FOG)H@%{+VObjleJTZ>NH{zXbWIe|+TPk7ZHqO)5K&r=-4noa zz|0`jpEBH!u|ka?1ICMZKq;=Mss&$fZtCbkRqT{P7@dm2ed{98qQc@u_0`VmC^jhC zbzw&*I1>+n@#qADad}}yw7jyq9s*x1W(6cMWlOAaMU)KM*nophTPwJ9sqrZ_w9*8C z2lvYI;zjhtebfw1CPGJ>8oC=8rRL%B!Kw#^%!P#z3rZXw3CV+djhwv%mEx+(%1Cit zc@>P>WUj+4-pg3Xz132Ml!%rUR+boLVzGEIBb9jM@+T`L2uUr`dRi4@n@KmyKu8epjW=9fBD;Nx-J%yTN_eHZc$=>qX_ z1!kEmTWQjO1At#;bQ6D;fCZQ#Ut(}oF-Gv_=t?v0Opmsk$#Fw>V~b>hkc97{v^T>v zu0Q>aam@_Vk2hq7#gUp)>>!=7?w-!}XzTLm@`l#7=(!D@?XB(2@yT&D8neCz4M_uf zO?hbRGuG=YziRx~i(^;=;V#CKJ*HqyG1RSHkI?(9B zUR+v)tBzurhMG9K8m6(JZnU%(O$?e)_=DgB6Oa1hI++W`*Gh{EYjMUwl_`SNN6k`e zTs4t8UL7-6sjsfCs;PrG*q@>lpiO7+ouk&grbK7st6eg(MLU)+$A`3_TafOu)-n?i zl0}gkM?fd)i%j%4S*H}se2*rVe&00C)rQkhn(NCVf`-F>>xBNvZzY+DNxvEJ5y8Wn zffj-O*lUd;@u`vJMQHYta_FgbRnR)pSh)Brgr>%cKsgWRPPDzXafNZQ!-q|=0ktm= z)`vHuJqk6^LIuiTlMIIlUJx4gQ%7|sn{Yug)JIy>4sdb;v@+Rtrm zZ_4Y&$xRm|Li;qX$b&f14Xd(_&OBT|!R${G&_7xv85X;c(74>99S{~<13tzBy^#wb zHM^M_`OQ=kfnHt=Qx;el`CdjYOJ{OiiEuomQ4pqx$depv)@qir6eWxk#}`ntdiGbT zPH9C)b46@*tc})ttE2JxF)#aJ!vgz>A3{q@a0|EO?pHNXBIz2RuLY${HHiZJARj^y}v<#ZMtEHo} z+w31$wJof`74%YC4)z-I?B3$fF<_2s;;>npPzlW5N>a12=Leyedf zVa&AjmC8bItb#6Uj2T}s`YtA}Yv-i7t@3xvUz$ygtQ=zC5?EtFo5fpJJDuHWZ2S9z zBd&U3bB#j?#TVMkib80CP73e4`pGol7J*+zcrVI?^n_6n8v<6UO)%eWgE-$BJJ;b6 z(Krot_hqmTM|ZFmj&-h%HBHA=vALV!-_7*zX8Cus{ku8--CX}}o_{yrzdOc3KQVFn zu>MYy_Ga=J%f9HIHIdT#iozP+gizx|FRi#3W+#QE5o&(eJ?dq`S5#32iy(h-u!MK} zD6&MV7NVj3IN(QsWw>8RJ1N#CNZhG$hc#jkhV0dTm#`cjVlKQ8tzH*~T?gkJ6B@-2 zsG*?<*#0veDRGe>cWdnVVhbACc~I)FOi_+@L@ev}(ov|YvW~=fLP5<6J!Ha#6;*{0 zG3{lUC};11#D`}|Rb5Z@nuPL;D(Y*B?5>2qQeFwW-mqWByR%H-cH6M9pH}Y#>RqMNY1V)q8DuX{AH^h1^TcJa854 zV#Iy#)UrqfHtBH!L!Cfm(0-U*3#?#dadjPRM1O;wNJ_s9R`uCU(fc~ucpn<}J!ye! zkEE7G>&h3ylDG)Qro`cW{jW?N8>$#uNvz_F-w4fmXL5$R9$$ zGhk=F2iJ2Z449cUZD{gm;|KXL&-5MbX$=a#Qdiy#vjn1@|j+L=#4UG*= zv6Zb2)1W&ygG+RQnANd7BV^jLp4PUeZ_n7j5>CSRIGkxcU7e`*G+6FL=g!W9pCo$L zwI@gtowgD)2;~`41O*lrAzjyu*EQpg0wd|-8_L)$okjE z^Z%36&GVps{yY5q@;JG9mQ>O!DSsI99%mltfv3RmD(R7nJuk=gWt_!4OR+5B2~_*( z7jn9JwpY>{sSK>cc20jRA^(GhAq?0qPXD`|4mt!rjm!9ed8XJrmYwOPeSTP5bO@~R zb)=Vm9jDgLA2`WRFX3mJdTWO;@#>A2mcWl+B|awSTp1JTpS+uBW9lIZG_7ipPLSVq%RpbhOfKe zit@uui=6)i8u?$~D#$~{=xg}8=04^h$Jczu!_05m8q$sd8s$u9#pN0DGUh)^@#EWY z$bW=+d@TMX{{@WSWu8299MhH{{~pF~V8sPTpF=r?=IOQgivaj4JK{qb7d`Odd0c~0747y_Py zFUcK#c)pj!)9wO2Goc1@$YaTS02iNj;Y*OWf+ zLcq~Jr?dY*#`SLNga16{zY*+>hrCDdW5#pX|E0e8Rz1qUpZVprh(GlqAD(;cRsSRV zz)$Q0KeZ2hRUi0fz){cFz^-^KrHk{6KKP&L1Ans*{BM2WxzL|`Yp+>-;H7=w&3)h( z^nqXB2mbRu@Q3=qAMFD_Z2E~ax^McR9q$I<6A%^hTPJPO*jqJvk<_nL^DGGens+#J z-^<%?=Ecb>tbOV6f&4lBu26C1D@!e@f)nLMdH(G9?JT{n_nBt)TS%i>Oqz|LZ@0~j zTFEBNzp^uaxQ!B)DeW4@CN|%XY^~T#P*xs3%~6d=BYaWiL7RN zxaDvy?JV-kUO!y86=?nT{>|L{TTew*5$pg~EnHX|sf*G>bRgs#9*_NIsbWo#p&wtd z5qhvGirdQga8Sz%^9z12hD&sT_$E#>JT}|=6N8q1%gi1MJ|ow!WZViPcGTQ{?!}VF z$|UOaZKV5F=}#E`0Nv+v4OV8Z8UGB0#%TDaXNYBgNI#0Dt?28SkiqXy=6M@Si(c)4 zGPEV}VISYD`oUBw%fuV|k-LP1-gmVuW!NNE6%OCz@^z5l1~srBd*u@KvqTK{@wlGZ zw}@JMsmzWY7;4?eqslZPn85P_n7)`7KK}_HEyiPkh2yJzf?v`HevgG8W%2K}aCnQ) zm-C5*hb{cSEZi=45YG!IL;6^Yf2f6zvG6eCI8DPToajH1ajfrn3$L^Iams{iaXh;E zz|XVfpbbU-ZGG_HW%1)0M))7-gZ~+ef0D)jy5g62l<2dewEuIo#ZMpeqHoRGcB2n< z5kAJ^pUv}Hv=6S;L{C}si#@MkJr*&)#+O=ha1APQ)>t^MX$0SF;rSMRn}tuea9n5M zfqJ4(h@AHr#|ySQeB8hse^U6HjQ`z|GZQe8gCA+fL*$_C@EEFaku#QY)W?<+weVSx zCi3y4q*VcAf!gc;HuC@zD4yec-t6!vpolH?l>4{BS8AVh2pe z#N%^IP65!u53lf<1M6F8;i-&^p5i~V6h4l!J2idar&;nRSn@CJga1m4-yV;y>VtoW z#c#)r=PcZAueU7RZm+*sxZQt)yrGBoDYEpRY2n2dUfKtK2IFW?EUFIv<8ijan+SHg z6@CTdn=SbzfJr+(XyJB!pS5tizWXdZV#zsZ;r2K*4?jm z3n3YQ1jn%x57`%&atY;c=>viM!h>lN|D@cjxj@lh@V9f2+i@1s#mGTDD_HTx3ZKgQ zi+_on5La6E+XU}IVQ@6l#h2fLK?RO>y7+h@>)EAn`W{<+e_iCC!sTAB_`gC!!Eq&B zeEIj_4;II(Uq;2?c$F@`{P)?R{;2SVECLQHTs|oB zmBOpI+<{y_vBNG7^s+7xymK%KI7;#37u)feuJAM24s#TKF~_fBg`dDqhrhGnA?4D? zaUl*V9QR@ISg!Cpv6I2^Q-%MP`5#gEml?#rTj9@f`~FVhVYZK~BSg60Kzdx;dilL z;qOX#2>%SWL!rXwa=a^5_*Aw-rNW<=T9rVg6CDwEBqoJC|*@K{(ghUn+pF8+u?nM<9DU-_(b97F?~Sc zpAoxrNa6p%ao}r(pUm|d&+$g=3?Df#$4rHb9wiFLkFnuVt?--JpU+UZ^xqWp!fzyX99f4-y+ogXSNzAYzum9!LySMJ@JT2Tjy($hE9?2b!q>5% z$a+@v`5XJ~*NT58$HO%C7vV2re;BFo8`ut$6yD1E%v1O~?EevkkLLQ;D!hsPq(R|x zxPNshd=ldqC|uSdTNJ*F>vfaDC$JsvRQP0`&^@g1o7s-^mGOAIEnxoNEB;j+Pd-ri zCmf#-Dtv%U0NEbWE_rM>_)wKO1iy>%F$(_~vGLyoitG6jmwT+@_gMcjh3E6Qf4;&` z;&{GM;YBR}a)tkj_4$Fqdl;Y3{wwwRg#D*j;Xh-2DisbNAv4EPg_!}$-e{aP@3|9u~Q~0Ya=PQNd2fgt~;r0~! zyv^f>JbxhgZEWW;ihl#gw>*W9;(oV4;oG^tmn!^9Zr?hE@8$VMgTmLcAGa%f0GE57 z!s|G0T(0mZxqYuz_%AqK{Y2rJJkCC#@c-ud(qjsr#{9oi_+@PW*A;#i+ut%T9&= zj?{53RQOh`2pr#6_$MrXo5HVR{cl(JEcSERR}uS&A3mk{FX8rmRpEECU%jjF5XXl< zEBtP5_b(NG6vw5Pc|Ilj%;Em^y277i|9?l}gSoyRD*R>k!%r2yhxI(5@K;#Qe=GcH z?!R9u{4O3xJ#HV-zku-+g@3{IO;>m_<2ef7!FCv_aG4*EQTXHBz7rJwPqssz!cXJ4 zJxk#qbNo3*;fq+$6BT|A_s@vJH?kcTDf~f>t0yZQ{~jG4rz(6i%RfWm&vSb;D*PPp5A1eGWJg!}*@HE!{ z#|r;7+viq=H?#lTq43MuKKCg6Ic~3CDtsRAcm0RLcQgKk!fUy{&nWy1Zub`yUdHx( zRpDXwhd(I%HumRt6@E3B`;o#YvfqBD@GrPu|5f4hIL^=?M~Kg(1~A`nZU-cB$h?W| zIa=YZY@hK8?`C|8!p~%Xn4$1#?1%FdUdVoXyu$C`I99CiOty2m!XM;vs}vr?&Im`n z!uN38I9=g8*$-P3et_eDx5B%*eJ@b>Yb@t`3QyyC&JPs+INSdQg&)uIf2Qy~JkR;1 z!f#`{J*DuExL>@aaQPi^pTgw_%l}lkKi;st#eb5x9di}Fg6(j$!egw@Y=!@b@gjvE z$9`U|@P&+v--$lejJGNN(->c;@FvDDS9m+)*C>1q<7e6mlxcGUM!o|%u`~midR~0UP`@X`(Zx1S*{$Qiye5LSPxxRyV+>mw`za63QDBEqK!o{!VDqQ@k zMB(CBH3}EMI!oc=SM3THzdB#x;#c2OxcJqz3Kze+P2u8K_bXid>IsDxaol@B;rKVD z@HnXOn|Yq|wZac^JRHRBFYVIF@<%9K{9&TP#UJJ={1C_O5`~ZCI9a1`@rMS5|A6&r zSNLQeXUFrrQuJ@+el$bj!#N(FsBo#*Vuee+PFMIvJg&7U{Bw?XD;54Y>%UIno4LI% zSGeeNjlxBrTNR$l^R9ap{xOehyA&>VenH`-tk1g&AIg66XN7O)e*LAwWj|pM%aeA= zWs6=l4|zU$n!-nMd^=0wbE#W6=PJB_$FEBm$8gG`O^z!S|4rP! z*DHQj-}$NHf0pC+PQ}mFavoCr5#BeD@mB11BIBPa{-==vjwEge;orb^9;I;ea1ij% zS9k@>X;ip8mwBneH*i1Nsc`&@V|YBG@M`9NMdA4V5+0u_{5#wT9?O$@{e%1U2!+pJ z{pTt?gYhDTf5`2ArovNsJUv_Cce8(Artk>2?@tweE9?0Sg-_*%e@WpP9LMDMAF1ys z)^i-k55dQ=`~?cX&{)%PPE+{X9Itv5{zIKNNmB>z~4LPW1VL$DI+3i{0dR)=3J#m;1|ng?k+L z$`xL~_LS#wq+EG#c)8*iJIHfGqL0|&GQ}@;xJKb(2N?%Mj@aP=<`;bivmKsNa>Nd= zDqQUFfx^WOe^dBgQ~(Z_+f&Mw-*0jm7d->)SK}>y?CKMZ6!^O>7LI;3o&CR9$thqt zH449$+hv)O)5&tW6n`@J-%Se7W&|8^d~WnLrgD9@8MD*js5ug#K=CXo03FIN2PctZJa z3K#p_tZ=czPKApdv~aY~$;bf5@k)-w{|bdm{6AgEk$KKa#V_xzU7+wkazFj9k|WShoVyghj^_{eDLF4uwVY=azu5T=h3D~L^1hOD4a@n5;ukqb;>(9{i2djD`hP6r z((bLq<}6VBBIhK9FX8@svXaAMoF>IDa=H}0j{Rn%!o{DrDqQ@T-PhEML%Ath)?rdF z(dQ_>K|7$SPG|aPg39EJax z@zo0dZ^qA4xLJGvcA>)MIc;fAv1c~>?e`RanDHMdd%s65;UZ8M^S7#|);^Bn~mw3Bf;a@VnOW`tp?Nhjnj}H5z z=qcm4%!34%`9Oi<>8kU29juXXWAA-AUILx$BIzHRN~WpC!vTpE%B627d@Hzq5k~ zlZvVrx@qNRxWu39r3CZxKQ~2{2C^DV}K4lS; zETD(nB8-2!$;roW8{(fK%7?Ef#PZ?Og78g!_;d!-@QKQN|I;fZH`W3l7QrtN{GS|Q zkb+Gp@6%tUU&i^9kpDr2sD&x1nGvEegvO5Xv?Bo2`ssh742i@R!+ME6t@;*VC z;twnO7@&Kz-^pSsT9_5$%6Lol5t018_{d2ER%#Zq`Nwof(0Mj~Q&RQ=2 zpZ(~63Gnt-ei@g)gY#qgxTT@XzZx(sU)Qq=9TSdsdHzaNTvyR~J0$d$fBIs|@jK<% zl25KX`^f)g73H5m7ym5z4BX)Uhf>p-$oa#<$XBtS!0*Bh z%GCMGIR6fnp!2^8d3$TW&u^p>_OZg)e)toDTiKZN^BO!mjy$)I%PZ`PIzNUP m$w1;XDNX_m=;~9}~-`J}2Gi{Qm=>fCsk# literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_threshold_line.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_threshold_line.c.o new file mode 100644 index 0000000000000000000000000000000000000000..630fb3d58dee7963eddf2c9a002f4d9efd6134e2 GIT binary patch literal 40464 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_utils.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_utils.c.o new file mode 100644 index 0000000000000000000000000000000000000000..0025f08555e475ef05ae8d7587d364dda7decfff GIT binary patch literal 18656 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 BQ;+}v literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_values.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_values.c.o new file mode 100644 index 0000000000000000000000000000000000000000..b3b1aa8475ffde9a76aceca4cf0973d570d06bb7 GIT binary patch literal 41560 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

    {Z*-8CYIqvLvkOoa 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 XtGFx~DF5`EO^(kcBVV~XF8Y4}XTqro literal 0 HcmV?d00001 From a9b3081782bfd0247837966ed4d5e45a1dd30555 Mon Sep 17 00:00:00 2001 From: pavanvpatil Date: Tue, 25 Oct 2022 22:36:54 +0530 Subject: [PATCH 06/13] bug fix in map_vis --- iPDC/src/map_vis.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index fa8d975..334ef3a 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -23,13 +23,11 @@ gboolean update_images(gpointer* pars){ } if (curr_measurement==0) { - int n = df->num_pmu; - if (n==0) return TRUE; int i = 0; - int freq; - while (i < n){ - freq = to_intconvertor(df->dpmu[i]->freq)-200; - live_chart_serie_add(serie, freq); + float freq; + while (df!=NULL){ + freq = to_intconvertor(df->dpmu[i]->freq)*0.001+50; + live_chart_serie_add(serie, freq*1e-1); loops++; printf("loops: %d\n", loops); id = to_intconvertor(TSB[0].idlist[i].idcode); @@ -60,14 +58,14 @@ gboolean update_images(gpointer* pars){ }else{ parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image); } - if(parameters->g_last_image != 0){ - // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - } - if (green){ - parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_green_image); - }else{ - parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); - } + // if(parameters->g_last_image != 0){ + // // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); + // } + // if (green){ + // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_green_image); + // }else{ + // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); + // } } df = df->dnext; i++; From 1a80ce316d6832f64abf8033dc7db17126be53cf Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Wed, 26 Oct 2022 11:04:32 +0530 Subject: [PATCH 07/13] placed mutex lock on tsb iin map_vis --- iPDC/inc/global.h | 1 + iPDC/src/align_sort.c | 2 +- iPDC/src/map_vis.c | 19 +++++++++++++------ iPDC/src/recreate.c | 1 + 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/iPDC/inc/global.h b/iPDC/inc/global.h index baf5440..68ff3e8 100755 --- a/iPDC/inc/global.h +++ b/iPDC/inc/global.h @@ -43,6 +43,7 @@ pthread_mutex_t mutex_file; /* To lock PMU Setup File */ pthread_mutex_t mutex_Lower_Layer_Details; /* To lock objects of connection table that hold lower layer PMU/PDC ip and protocol */ pthread_mutex_t mutex_Upper_Layer_Details; /* To lock objects of connection table that hold upper layer PDC ip and protocol */ pthread_mutex_t mutex_status_change; +pthread_mutex_t mutex_on_TSB; unsigned char *cfgframe,*dataframe; diff --git a/iPDC/src/align_sort.c b/iPDC/src/align_sort.c index 9ad1197..8cf45cb 100755 --- a/iPDC/src/align_sort.c +++ b/iPDC/src/align_sort.c @@ -56,7 +56,7 @@ int i; int front = -1; int rear = -1; -pthread_mutex_t mutex_on_TSB = PTHREAD_MUTEX_INITIALIZER; + /* ---------------------------------------------------------------------------- */ diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index 334ef3a..5f0901c 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -1,4 +1,6 @@ #include +#include +#include "global.h" #include "align_sort.h" #include "map_vis.h" #include "parser.h" @@ -15,6 +17,8 @@ int loops = 0; gboolean update_images(gpointer* pars){ int match=0,id; myParameters* parameters = (myParameters*) pars; + + pthread_mutex_lock(&mutex_on_TSB); struct data_frame *df = TSB[0].first_data_frame; struct Lower_Layer_Details *LLptr; @@ -23,14 +27,15 @@ gboolean update_images(gpointer* pars){ } if (curr_measurement==0) { - int i = 0; + int i = 0, k = 0; float freq; while (df!=NULL){ freq = to_intconvertor(df->dpmu[i]->freq)*0.001+50; live_chart_serie_add(serie, freq*1e-1); loops++; printf("loops: %d\n", loops); - id = to_intconvertor(TSB[0].idlist[i].idcode); + + id = to_intconvertor(df->idcode); printf("id = %d\n",id); LLptr = LLfirst; @@ -50,9 +55,9 @@ gboolean update_images(gpointer* pars){ float freq = to_intconvertor(df->dpmu[i]->freq)*0.001+50; printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq); gboolean green =attack_detect(df,&START,&COUNT,&SUM_OF_FREQUENCY); - if(parameters->g_last_image != 0){ - osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - } + // if(parameters->g_last_image != 0){ + // // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); + // } if (freq > 50.300){ parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_green_image); }else{ @@ -68,9 +73,11 @@ gboolean update_images(gpointer* pars){ // } } df = df->dnext; - i++; + // i++; + k++; } } + pthread_mutex_unlock(&mutex_on_TSB); gtk_widget_queue_draw(GTK_WIDGET(parameters->util_map)); return TRUE; diff --git a/iPDC/src/recreate.c b/iPDC/src/recreate.c index 4b6c27b..b3fe047 100755 --- a/iPDC/src/recreate.c +++ b/iPDC/src/recreate.c @@ -71,6 +71,7 @@ void recreate_cfg_objects(){ pthread_mutex_init(&mutex_status_change, NULL); pthread_mutex_init(&mutex_Lower_Layer_Details, NULL); pthread_mutex_init(&mutex_Upper_Layer_Details, NULL); + pthread_mutex_init(&mutex_on_TSB, NULL); CMDSYNC[0] = 0xaa; CMDSYNC[1] = 0x41; From b44f55a704b692bc993bec6442eeef01b2e4d708 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Thu, 27 Oct 2022 15:44:12 +0530 Subject: [PATCH 08/13] PMU:Bugfix: incorrect data sent when frequency set to floating point --- PMUSimulator/ServerFunction.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/PMUSimulator/ServerFunction.c b/PMUSimulator/ServerFunction.c index ecf943a..078fb32 100755 --- a/PMUSimulator/ServerFunction.c +++ b/PMUSimulator/ServerFunction.c @@ -646,13 +646,14 @@ void generate_data_frame() else /* Insert Floating point Frequency & DFrequency values in data frame */ { /* For rendom values of FREQ & DFREQ */ - freq_f = (rand() % 5 + 1)*100; - li2c(freq_f, df_temp_1); + freqF = (rand() % 5 + 1)*100; + f2c(freqF, df_temp_1); B_copy(data_frm, df_temp_1, indx, 4); indx = indx + 4; - dfreq_f = (rand() % 5 + 1)*0.00639; - i2c(dfreq_f, df_temp_1); + float dfreqF = 0; + dfreqF = (rand() % 5 + 1)*0.00639; + i2c(dfreqF, df_temp_1); B_copy(data_frm, df_temp_1, indx, 4); indx = indx + 4; } From e48bdfe4c67d0ae55d28d9ab18204b791ae0cac8 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Thu, 27 Oct 2022 15:44:53 +0530 Subject: [PATCH 09/13] checking frequency format (unrefractored) --- iPDC/src/map_vis.c | 54 ++++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index 5f0901c..6d947a4 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -15,11 +15,12 @@ int loops = 0; gboolean update_images(gpointer* pars){ - int match=0,id; + int match=0,id, cfg_match=0; myParameters* parameters = (myParameters*) pars; + struct cfg_frame* temp_cfg; pthread_mutex_lock(&mutex_on_TSB); - struct data_frame *df = TSB[0].first_data_frame; + struct data_frame *df = TSB[MAXTSB-1].first_data_frame; struct Lower_Layer_Details *LLptr; if (df == NULL){ @@ -29,48 +30,63 @@ gboolean update_images(gpointer* pars){ { int i = 0, k = 0; float freq; + unsigned char fmt; while (df!=NULL){ - freq = to_intconvertor(df->dpmu[i]->freq)*0.001+50; - live_chart_serie_add(serie, freq*1e-1); + float lat; + float lon; loops++; printf("loops: %d\n", loops); id = to_intconvertor(df->idcode); printf("id = %d\n",id); + pthread_mutex_lock(&mutex_cfg); + temp_cfg = cfgfirst; + // Check for the IDCODE in Configuration Frame + while(temp_cfg != NULL){ + if(id == to_intconvertor(temp_cfg->idcode)){ + cfg_match = 1; + printf("Matched - id : %d\n",id); + fmt = temp_cfg->pmu[0]->fmt->freq; + break; + } else { + temp_cfg = temp_cfg->cfgnext; + } + } + pthread_mutex_unlock(&mutex_cfg); + if(fmt == '1'){ + freq = decode_ieee_single(df->dpmu[i]->freq); + printf("freq = %f\n",freq); + }else{ + freq = to_intconvertor(df->dpmu[i]->freq)*1e-6+50; + } + live_chart_serie_add(serie, freq); + pthread_mutex_lock(&mutex_Lower_Layer_Details); LLptr = LLfirst; match = 0; while(LLptr != NULL){ printf("pmuid = %d\n",LLptr->pmuid); if(LLptr->pmuid == id){ match = 1; + float lat = LLptr->latitude; + float lon = LLptr->longitude; break; } LLptr = LLptr->next; } + pthread_mutex_unlock(&mutex_Lower_Layer_Details); - if(match == 1){ - float lat = 79.347312; - float lon = -69.439209; - float freq = to_intconvertor(df->dpmu[i]->freq)*0.001+50; + if(match == 1 && cfg_match == 1){ printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq); gboolean green =attack_detect(df,&START,&COUNT,&SUM_OF_FREQUENCY); - // if(parameters->g_last_image != 0){ - // // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - // } + if(parameters->g_last_image != 0){ + osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); + } if (freq > 50.300){ parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_green_image); }else{ parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image); } - // if(parameters->g_last_image != 0){ - // // osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - // } - // if (green){ - // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_green_image); - // }else{ - // parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); - // } } df = df->dnext; // i++; From f9cdb4a5b63329b570c43ef65f96418e0c88234c Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Fri, 28 Oct 2022 18:18:01 +0530 Subject: [PATCH 10/13] updated utility tools(unrefractored) --- iPDC/assets/utility_tools.ui | 252 +++++++++++++++++++++++++++++++++-- iPDC/inc/map_vis.h | 10 ++ iPDC/src/map_vis.c | 23 +++- iPDC/src/utility_tools.c | 3 + 4 files changed, 275 insertions(+), 13 deletions(-) diff --git a/iPDC/assets/utility_tools.ui b/iPDC/assets/utility_tools.ui index ce69fd8..153d59a 100644 --- a/iPDC/assets/utility_tools.ui +++ b/iPDC/assets/utility_tools.ui @@ -169,7 +169,7 @@

88T_f`vpxHm{rp8=R?yP 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_geometry.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_geometry.c.o new file mode 100644 index 0000000000000000000000000000000000000000..bb2f8f23095ad8297fc8914324705914c6d7de08 GIT binary patch literal 16704 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_grid.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_grid.c.o new file mode 100644 index 0000000000000000000000000000000000000000..9b653a38477c5678ca91788b38c86c7029e5cdb9 GIT binary patch literal 76296 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_intersections.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_intersections.c.o new file mode 100644 index 0000000000000000000000000000000000000000..fc6f52566fa689aebc6f23e8b0c12f2582397780 GIT binary patch literal 59840 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_intersectors.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_intersectors.c.o new file mode 100644 index 0000000000000000000000000000000000000000..c0353df7bad23e8a0043a3fa0822a53e9a21fb3c GIT binary patch literal 61432 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 IRqOx%09~iCbN~PV literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_labels.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_labels.c.o new file mode 100644 index 0000000000000000000000000000000000000000..a60b7b6e2e134305e631f4244f1948b56b180c1c GIT binary patch literal 41976 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 H(dGXyVoOVp literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_legend.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_legend.c.o new file mode 100644 index 0000000000000000000000000000000000000000..90bd5f22e88074e220d91a6bac997301c33dc5c7 GIT binary patch literal 75160 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 MTyu#z+ z^KSlMAUU727et=V_lJe^eS`hN`F_RM!ufv4S>Y`SS6CPLe=RJ})-8JaUQ329 zYcI9dr4+nw3I5Q{|j!)_|Qp(B^IV&8BTYrb?C%m=ciC*(`8X>;e~%bW%o6h77>_G|=|(TOND8d_jZQ4if9VOY zzsE<>caE)&)PF6GNfwdDDRZm~o9zHAg37LQ`{MGiJ>-=(J>X-jKg(P5Z*xp-n#SXJ z(dufn55_F0Y+npBx$YdSN?%(yd?Fl{Bzu&mVbMUO^1RJ&*;M`7 zm%T(0_X*0YzV)Bu>TgZGFKMEp{_N2__1S*KK+6(Fb1G4k-6951J literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_line.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_line.c.o new file mode 100644 index 0000000000000000000000000000000000000000..bfd21069fbce77a964abb875325b09e2c7ef8d4c GIT binary patch literal 42080 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_line_area.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_line_area.c.o new file mode 100644 index 0000000000000000000000000000000000000000..591fb5eae1e23f0f928cefad587db917bcfe5063 GIT binary patch literal 42160 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_path.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_path.c.o new file mode 100644 index 0000000000000000000000000000000000000000..2d0e8303d1f71ca6fd9f323b95059c00f26228eb GIT binary patch literal 45152 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 Q^2N89^6!|7f7bf{e+d{3n-B>}%%I=^6pRuh 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_region.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_region.c.o new file mode 100644 index 0000000000000000000000000000000000000000..48c0aa53e6986b4c441301530b4f1b5a90123b33 GIT binary patch literal 68856 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®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 E2Z-Bnj{pDw literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_serie.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_serie.c.o new file mode 100644 index 0000000000000000000000000000000000000000..a80552fc4f0dbb5c780100394fc144d1a10dedae GIT binary patch literal 62784 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_series.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_series.c.o new file mode 100644 index 0000000000000000000000000000000000000000..0d2594a18f4e6cc01d59883d670ef74962bc970f GIT binary patch literal 47408 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_smooth_line.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_smooth_line.c.o new file mode 100644 index 0000000000000000000000000000000000000000..4f4168b79c9f438a06bfb80c9ee4919efd5a4c3b GIT binary patch literal 73952 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 JL>%cN{1<#IO(y^V literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_smooth_line_area.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_smooth_line_area.c.o new file mode 100644 index 0000000000000000000000000000000000000000..82bc0558bf84034796787fe7a0499dada84cfeb4 GIT binary patch literal 59824 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_static_static_chart.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_static_static_chart.c.o new file mode 100644 index 0000000000000000000000000000000000000000..e9533cc9e6c07b5ec55809cfdb757ed2c15a9d8d GIT binary patch literal 97648 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 R((BI-3Yos>7wRkX|9|LgzMudA literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_static_static_grid.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_static_static_grid.c.o new file mode 100644 index 0000000000000000000000000000000000000000..e70de90691b08ca64fc63bd42a362550d45539e4 GIT binary patch literal 76064 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_static_static_line.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_static_static_line.c.o new file mode 100644 index 0000000000000000000000000000000000000000..5a268dcdf1964387252aa4639f4636c0015f118c GIT binary patch literal 44872 zcmb__34B%6wf8x9NG^ns2|^f@8xaUY!XP3b+JtZ+!H~p|NN~DlxCzma#0&^3gJ7&_ zebwk>nn)|r+|8Pu{ucf09AN)}pUtsLv4v=jeXQ_}ZV$@cfs zOZqk)DcQd1h}Au^q(5?`q;LNr#?b^X?iD4rN(*NnhkJ&V1?Cp#EV*93FSZP<^irM=kuSlz2q~`a5S^7yO zFwaY-BxrXCB!LAZufX#ac%lUloBY1Wf&R#WzQ}XiH$7)b*igXxsPLE1zS3-Txvzb{?R|j=k_`Ea?wS&ch}_ zZ_e3UvcGrs7hir!ZQI|wz)cpq$r3kN=_W67lWW~%hnw8sCbyd8c2ey4T{0{L3T}T4 z)jvM-tI5QSjXXZ{kC_=waeU@&$lTw{#x#SX*MimnN{_zY5K(O6ex^JQv12FN3Ani@ zTu}Q!e!zsv;K{S z+Zn<~f3H-Q&eUuwV5EeZGmrD)rOf8M1)L{R3V}kEr37kWblvNOr2P;1U`R=X>rH1B z>CxAl!xTOGo^*;l^>`SHP(Y?w%!T`z-2{RCMB-@O-}@fAuu2_vFihcO0|UGgG)6{9 z*1E}y+~is}+2JO)y2)$Z^qqUv!fP-Q*!RdDu-Jag!EI zM%bY3k5PMj#`lvk`g%WxM)%Ww`(C?`!2P|(Ce9$_f!x=7gt+nE*ZVo8@xJ|#y^u<# z?bwd7bjMCKME?#nw}|MY0Y)Z;;Rv}f&d@|KR4eJR6YUJl1DuD3g1n13Z!PETVz2`r zJ9Zv~N8&m#7wSO6fSf(_*ooGKIu3Ilng{asa^3;XLqh@hB2$(0VBPw9(Or&uFO7GsZtABz%<}5NE4+HrG8Y#}5cb|#utMbvIZttRSah08kl}fvBNM*aT>1K1=x@w<(*q$gh1vVZaf(j zqAfSRgd0x=g)quCsN}p_&U=x;i?0bxd$NdMXS9ZPvkE0hm*e%q~{bX@YMz+fH zT6qr0bC*1K%X5!B$)jOSxL4>G<;iQr{gH!0a|}1jaEQci?dU?x)rPmLhz+(IORi~qbehFy3IZV+*RUMY9`I*rx@lCa4 zHVdFfU+)5@=%K_Fia35|^isswL7n_?7&`QE>QpI&O-5UOn3h2tNMqBHu4O@yT>!3p z@x!$9pG5Q`5sz8|M&c1)3pA|w$lD<>615XWl=KyaOZv{v16yEOm@tU7uV^-)3yw32 z%pS9^2X`#6Z8JT~n?{6ojIRF>YZ<^{GT<43xHpAz0~dI=q3P`Wefxh#W^m>OXNK4( z478~{;t{v~y|5m*rnGFY`eC@^1`Pi9?(G@ph-95%YnuEJc(2(V13mFjJsHSs$M&fr zCH>OO8jLifXoKWL8q|NNYkgg7Ppm7Pdq%jtrmW0r=-%L_+uNF2njNw$*4pF{9qlb` z-EOg^opqOm2@6kdnhF1{uI{?-mWF6+OIxe}>Zn_E%A7^v$z4O>^B09DCAunly2I^F z;kwRPopn?l;kquUvnxEg@o1^@W>altE$d^&YwJ3@SCKk=F9V$%Q?vp{v;kS7qOwQx zXhVBjS9fPmL$|}P6UQzOdbdU!!8p2@Lm#_579|@x{5o;$@;x1mb=|ROeS1$^V@q2z zBsM4kG)pM#SY%~_%(fFPD`?pv%$|z36Y%D}u1#~P)DXEU-2%TJQv^AwA=sx{R$d?o zo@Iqg2qK2m^Z@3h+OQeK2i1}4b0q`|a<*fRk0hi9=)u`v8C?K5oGzq#I9*BUFdkYF zkTgB}YmlB6l3KD302O$_WG5G-Barob2bi7i2u_}pj@pu(y?YS^@<1W#%>F%R@fbJo>r_()5_d>dF%|-qzx$fah{eMS!$!MLFGW%U%Auhh> zQF7d%X=$+8%K8EnB4g&Hw$BHE?3da({4grY#Fk()ICDq} z?zE>B1K$j60E@c8o>l`$2$9f;-FB!GD5w?6|G*wbf`s!Xd)gM4^Cx!b7KihGJM9nT zPb~A>_O$slvdx*C8v!R8e5udqAZ#wKOp9GoW&q ziUh_bfn$Z4S{4{r3#mM&N?9hZZ9(-FOri4wbyi?p7L;4SRC!=rGf;)ntXu7A=Rp-& zs2(X>I3f@XVRM*0DLC><^k$}#nG$6~!I9sBJW)0!IPxB#MA;F+bQ~$7Y-(`iZy-;U z&EPyyHZwT#ACR}e3Y37s*o5Q!nHNK8Ci1+*fIkyQBf_d+JPl&zLz0qW+=7CkM5iSC9UCqens~1qF~u-!N?mA@n@5tx#{3g%ybLPK zDFS|50@28u?B4-K#`6XuKOu?2QJ8WI>Ap1|#Nkz#i}$T?ZQuwsaE#R$&jj7UXfUv+Z;o3_?}g=`e4Q<)1Lq;%$$vOx(_&c)TPCk;!&5@Y^PU19tVZAOYF2ppbEKMyPbyRN|@@j zhu;mVR5I0Lk7$9sT4};l)31m6;2$WIw$%<{?aa8%PQz{!YP(Hi31+ol07u%N;O3_r zIXVpu;tp(uGJ!+LgDQAQee$n=eT3^1r3F1jZg9YM-X zqI)vkdHNnk>EU!wq5BBBr_y~S-P7pKK`VpOnRL&h`zX4Prh7Ks$Iv~8?qlgbj_%{> zK7sBh(EUWZPo#U8?zwb7iSCo=elp!B(;W{IVEIXR@6us9Av5Sc({sdSo{hI@__t1VaujMUF8Cpva>JaB35*Nx!3(ZBYE9(Dx(#+Nf42od~S-}rYx za99L)<&JoZ2u9x)7;zI+$AMtctrW5XyO>(a)a^`_ z@I*Pf#hyG6uR+i^@w-NY1*2yLL(e-J%no`rm=hfP1!^FYl6_PDU?c^we*&F&LxTp; z8UbucAPa9Ok@_S1_#h>lTz(TOr^6*lb90U%dQN+V}#AlKFt>@8);gyAg(0~<65%F zH|{LAC8ztcDuK%33Ksh^YJdtebp})7N!e9XYoP+y)w9pbZ2^ERnUkI24}I6EKhy8E zWR~A+$x;6C8?b({NNnPN8zFhwF@NYUj*uq5XWV5s`^Ro_6e*xz_VXLtf+N#~dPLU%iiE8ts&S0&srQ2_9^-Dx-DflnXZQI+A2^zR%^Q!h`+ehE z&@N($pXPmG!YEQ*z*!WZ2*myl|Y#j7WzydiOE3!w~Gm>ESO8Tc~zw8Um0g4rQMFcYSdyy&SO6|Ne zfzzYc*X@awMp908)F0||BwggE9u>KDelmqLzTQtmI$h)r*i*h0FZUCB-fkneB>S)a z(EE}Af8rqI6-q6i+6zB7G6%9h@Q0>mnpS`4Ps7Eh z==za=*d8c%t(3ET`SXC2tW}u(hCdW_%KfiDeJ2heuJ6zOsb7V13#44oH?I{qJ=RL{ zoxV99N%PGZFtRJNKk6VCut=WxVDD-@L^@lB9qS z%pAzV8wS?E1$e^{7r>w$z{nB6I1|8;8NlHY_yOL~(E{irfnvO&B?Fh@4f`VP2O!>0 zx39sf(7y~w*Z?Bqw;&n7HU?1Hz{4nYJCdKmjmNS*BKZ*H(O8xdZH>W|=n+6^`Dt0O z^?;_Pk3z;_xHq7S(NP(=R&`N0B82tpUo%c01**{PZbSlwKo?A;%tIL%!B!gv3)&Cc zs+?dluAw&}Op9qc?IIF4&0rm^O7_FfzUGm`MVIOTCyKt_7S5EJHs=RPsGBL z5XK@bCH(@wU5F6%2Oj$Q@g|}^NXo|cpN|aGYg7$aKPfqLqmkvu)e!5znc?KjZw--2 z79U%Zyc_e#0)z~2&UhLTG9w=0QR*a%%rowf*|-;d)i9hSim&$DpCP6c=lb7I%FM`y zOvly4W>bli(?3ZR1ALS;0ijwWOX|MIZ(o8C)-9Z~k~2R6VjIF_ zUbg!5F2l4b+hET#Wdj({NdRuC`C2BC$G+u-u~PXsy82u4Hy;DJrlwiE3PjHmv=gPVz-XlLQ@1)B52hCak}u1yoJfABEVCmH$( z)02$6fh{EOWTt(Cg+xv^;iQw)7A(^HMO0jBc|eIwJ;4F4{sryF`V(=!bJ9;Rm+ z`XQ$CZJO8pgL^lRM;pElc5{2%8uNl+6z1nxS!mZ&kkOAHH}Lf_O?cSl9dINDy@I(B zw)%mMOmAJzR^PjEGJLjZT}9Dj@FB_Fb~^XLo{cnP_^+n@0N7OMUZIZ&eU0?duFIMK zt3tmh^tD27y@K=mgx(|c*MvSObidF8S2F)~!!Y#u2e*p69YSAwIT>jyG}ASbGvwZd zGg-Xm!Kaay|Dn()koFJ0y3t{HSs1vI$5JuIgJZc2kH<0moX$}FgNLNmzYzL8p`RYb zp1N1G-Y4{7q4x{DYZF&^Kqhkq4x;=OQ8=6{oDw)%79qqd7*C<`d7j~ zu!ZHlKs0!|6UfMVV3pIsfXwsT6t>cv8{N?L6Eq@R%<<7^Zl#g>G0`BEc*sGqKgdC+ zT3P6Vr(%|Wnd6}RNdr3Q9q@4^JLIx*nxh7HZy|?V&JMY23+I-IL*6J&S#csqutL`9 zEZSiC2lq&Jnb7xbIhKFm(KcQzTg2;X1{ljntTnu3VVObI!!}m}{CO>|1{8*yqe5)@LpAPxJEM;qVv3I)W`W zZ8lE{wMt5EE0VQdoqJ5Ot^yR44UhD<$R36hEveMi$s#8EcfC zI<_=x@mLg_Hrk#_iS+n<&dnf!xv8g%)|o-2b=DMW=BN}q!_I_N`DkMBYMC9d&rC_l z4U}dxq3voMj93&m%FqGO?=(4yRI*OKEjWvmzgtAU9fWBBnjmib3 zu%(4LSCZA>6E)P^4=u|*r8El_oFbJlNR9B8n3`cv9+{QmpE!OZ!s)Qu$&+4!scahf z3z%a%j*}T8J0b2{Ho&PO|PIzF!q*XKWP8?q#I2d5MH%4X0wI1frFz8#B z6-Ci{P)N_$N&38s7ls-K(7{sOpQ$vHu z8^l`%aQgk1g}6&UwQEBc`c4M;EnmSHUtU&ljDMIf4?WB0-@4g1^B9)LDyhd)sPb*( zIW}0I=$C}N4L-^PMshQg2T$}e4=-BD4&6p(vOgrFVJ=$Deo06pDM;M_7NJ~n!)?JF zsw6lGAGN{p{Gf5Mf~jrPa*%xn=50fF^WW?9onnVBfX2@9-@YldIGF!%a4~tJ|1DoA zT=Y?4aQb7=1JkpD_E~cu4ko=F^nq4MD^NsIE!_Q~0=NgdgF$#CCDjIJlm+3{gkhm` zgLaQE8{*IMXjujPkDL=JixyXvR+knRm08Q9l|@xWE2FCcC|Xh$vC4*eF>qC^vn5s) zYio>k#yYL#OV5fH)t0V`t|}{C8mY3P-RnB$%#K>it2cJUmbKP3cUfhn=R~5#B}G-$ z(W08_3aDi1($ezf(Ipkt)fFqPD6tl|)^&AR%a_!3#g?_S)wQ-<9$VJa)?h`CuR~>L z%X)Z!57e(-QyGaaD=S(aT~=BS4Qg!Zg3U(E^1S{>FZp#vn`7P4*7nPw0d57gMH^bW z9ATziYpP4js)x1&y&?&MxGLn~@FJ zzG#y)%~~Fd71hH_lXVTvHO98L0s9Iw+Q^jC>=grYrqty%@(hNn| zoZw95)uqcyBUMp)<@OTt5B3#f5^^^5HP`5+<>wTEBSwp=me;HV3D)w;y3V?F?1;vs zE_-=JbX8?hF=&eJ>J?NKDOwt>C@)*%1uLs6YS%=|E5MP<$|_bzmV)Kojx26(ZH2CG zX>YTl^{qXf_0Xht>iuYEtjVea@3NYE;JwZH^DKIy7+#$1*l3A|6q}c5NnsvGbE8%> zcV;v7kL#;T@Lg4SPZ-`d_V!vwUH4ji9T(n6?&*xVURzn$h;O!%y5O~!#2V4-jIX<5 zS9x9luB4Zj4Ufmh*#4CjHRTi|V5C8yXsB!HY>%#Mhqr{gk^YCU}iqTvT2hDJugbgN~;~4v{FsHtYa?tOH#V(0< zz}xxYc+?T|qTq)d2b$~K+goFGZ5)6|Vl|Ez3>^^kfvW{3s#x9nxWU}LmIH{lvy00r zR)PCEiY~3|T5B~ow)dbk2Q90skF|D@8mB}(b6+I{jv_^2(ZO5BpLX z*4&;saUmGSZ8fYZB1P4a=#rx1vuY}>l z!ySx4iuzG_JHJjc*_IfYV5GMZptOh_uWvb8cq|C3;Ht=~RWP=q zHLD^PhISh6iL0R?$1w%tg2yks^LE_&oSokp{@nk@e_CW|$rb=WFrwO?IP5nWkSz9w2x37Y}*|5cV_UtYZ79DEuKFSE0# zs=(Ms>t}Zh0c+OiDp(1@q6&R*F2vULurLO7jn_hiT2)xEG9q->}^98Yozn{iS>sDNLM`^Ng z_Gdg!652=&a1+{jIqzu!PNP;+%Z6BEbX^@dlLQ*4%Xow9Y~`qjVMXPdfM#vnQ*?IL zZS=0uJ+6jUboWvTb>?Vcn(p+GyRovOZ4gQ=?tk9Nm|D#O#&|GysVpW?aNIf*JRUdn zP>AMkY!&*sXL(OMV(RcYulIIRKlUUhI?Jt#Y!-Px!K;7XufT@UDehgVCG30U zug)5k=3D4I?4mgf!SOJ}K#!O%pfd#yaWu|4x;kQT2IJY}x{K(9m6PLn7Q@TS+MCN_ z>tn6F3t!LY9JJDrxCduL5EgNj=QPu6C5%5jKykSMb46>ct+{*coH!RNEnika?SX9$ zG{-p!f(gDR5_LLi=zef(aP!Tc*-?qsN)|7ypb96d@!AWQT~S$iQY@9@96o?pg?4m~ z1A5x0YT@m&xJAg&y;>P}z5tF+vmDJG zJZ?;k#&b?acG%zonx6!slwaH5k}MV8l; z6;<(3mA6Y1Ot33q^c!<;p0;hRO)+ zptQ@IW=5;-27ybl*JYsM*tqldv;S^=Mc}olmfPF`%HkO(G+hQcOUF+ zJ+Fz(gzWM-;odmCQOfMwag&G3A&K`JX~;l0l_N%{)yv8%ieQP3CwV5%i1hY|dxmOq zok8nuvkV9voz9X)X||-SrfP{hWW1&0f|IEyp-0o;i5~;5H=ui!mc!>KaO!+6L{X2U zMBr1A>Q!bXMdQgFNqANRv|^RLhdcOrs%d~Q+uROYOIU5u{O2qjy=$wLMXQeIiL;F# z;%PQJRiw5O4n<38cVD^;KB%CBQ9Af^9QEuPIQm&tx*R@W!1V%b0^8cVTbedXaG>$* zEYVk&L?ZAJQZHx!TVD?LqI{I%S&2EL68j;tva%XJ zTY#a|+1S$o9tokK$=f5+#C;GY$Dvfv;qZEM{2J0LJ5s&6qUx+@ zO*zb=@cA2lqQ|R?Zkg@lB7^IFJe`?=;q)*ZrkbrQ`jL0e0H1=7p^R@;R+XLui(V`0 zEO=nKGn*$&9X|(&TTM`7 zJZ*+qVrA(n{5UNNpL~^KlZWhW2%j+L;UqU?c3f!Vap>?B^>nu%wWwv)k8LPao_}8j z`Vl@}>cN9-8tLSFd|)jR(iqj6wYGg-Y*t-EU1MxrOWiD(ADW@(x@KWj`RL8vv+8?V zTH#k|IvW72N1Wh-uJ(eCSzR=+@qE~=#){8Dj>>L?m0tlIdqYEcHvS^{1CCORyh5|1ccMBx@KnVYN%_269H2O zpHN#*3=<#Jm_z}sW0eIUB-s0uoSAZwI{23XUevPj< zHK_p@ByTZ1@uJsJO}_8j#DL|`r(AfU51%IgBDegNl25M(n|%K?__|Yw>b^zt>HT&m z|J{(ue^m16TL(`58Ge)hs^l-mr^)Yf>;GKx;q^v0e}$Vrf!=zvtVHD(Oa4vX^1cBU zAhPuXiv+9>zSKCQSdiBq;%r{5=Cj5Jae=g8? zVSQL{BfS!OOg|zE1G>#m+PqApiOVa_&oj|1kj`fIx-yPKSKF%y(U80zQ=f z3lrcMC%~^xfZvkLRTspqKqIE?fTh8$$+&57(o;EnZT z3vu6XFq^Fk4`QMy zy5SOdP2m!Hi{Q9*qlN4FElrOCjCfu@_T&xO1Ud=!FnI*dG%Bgv){zHntnz$|NOAr4H5C2H|rWeADH<0pCW?|ATh5AK(Z8|q)+!FPM`SswgB!A-kbArG%#dHB70UNDUFwS7j=_t;!N zxr^DXv4SJN*FIlS{7(u0IUas*y)h5&wa=Fxd^X51cFPe*#d`6_CJfF$hw18R##iPD zR>0WdQ5jzo1xGpFIC-k#H{oLga6)x;}HA<{KxAJkDP@-8#$?Rv|;KM z^I9_#;PV7W{T6xTL=*5gd-zZH@V6!4-{#@>j*A>9ix;{*>T1rJ&?a~p+?+E>c%YLW z`dt%db53}0SfVfAB%9St$wwUPGUq4R3K!D($r)3x!KZupO<9EK2W8;t)GI$kKwswf z;JZZerC10q!~YiD z_(G}o8ikuf=^YCHwHV_Y3cp(Fy-nd8WL~^S;d=ysMBy3o8$iEQc%H;rGY*VBFB3bw ztN5G6Sw2oVWprSNaaK>3NnACrE3P~i*34nJ4;PsOiZ zQ20qA|5b%&iv2%V_yTDc|DwLz-n&G9{&`*(Z;)}pKgsLjY#qzupW$_JJg38pe|p!& z7l{9arG8`QeWE}A#IDPKv#d+_XLVit3EU*Xb&8UMzu$*fnZmmy4pb@p5wT0H!i&To zE>w7$$Zu5m44Ka^R`{1PzB&}1D*d}&;S+@aN`hY|-~Q20$kzohUT z(l4(mygK;>sE#TS^W0L3ZE=-_%Vg& zO1-~S_&3B3zgKv^=>HdmpDA|uhr%xveem-LyiC8`C;p$I@R<0|M1|wIJYM+vV;`CH7gN@IkS|`3f(hA5yfeixu7`_SvBDowEM9M&YLau2=X^g#Wt=-z4#5kHTM* zacX`^%-Ahm#`SZG|8ueDL4|LS@%uN0-@sv(|4rf7 ziQzs|cv!|=lJv9jtEXkWXDR$<>EE!zTV;Kfuki1PA1_ik{MHa%%M~7#xLK|6-$?(~ zDf~2vS8WRane@w53cpP3yhGt@rCm2G+}P)Cg`0XGRJhS|pTgf1fB22UL*kzY6@Ibk z`FDk{5c+e4|4jO8xYT3%u|ejA9EGnGKb)fQx4B!ac?y42=CvgX-z@Sg6@HrVU#Re} z$~@kxaN}2(EBq@mPWu$zFMeX?AJg8qBp%+O`0-bx@w!*xPl_Ecm-W7pb42|48ijXC zyKYr@jf}556#fVC|GO1lEB*Upg*SXtL)-pKmJuBAHKbQux#2f8SB~ z42es3DtwIS`2&TI6gl@Q{4=TdL4{{Z|30qpaS~^qRrnU6|E%ylvClgSpCR^nU*Yow z|A)fiM>gsDm%?`nZAq|zg-Idk;I=Z3g094zgpp2#hwES z?-75yP2ooWA1d7F|A@jr6Mx&U@PA62e@@}=$oPFl;rTNEzO8Vh&&LWk`uHV28UHy! z?3SkRsWShLQusdM&sBJ)#PeASH~O5RaHG#z3ST7SbdADa5xX@j{Gj-AkHVia{j2a> zW!@iDc(?F>OX2T|K6fbmT(QHw3ODV2LgA*pzf$;RBIl0^|5W0hU&f{BuluE6(iDEG zjEhkU-zsq+tne#DPJzOW{)-iE*5@k}ZrW9=@TVm{G%0+N#MN$v7t6Y6o5Jsud2mqS z0ikbI_!i-RQsLXhPhL>?YS|C|N#T~nrN1hCsl8rQ@E-3mkKxX&F8p0}B7QjJrn^{&&ImEBpb8d;gZI?f2eT$3rKkVOyTCw1iYqj6Nleb zxcNNgp9-HX<2PBxrP04%`ggR#>m?peQn)#O%Z#T{+%iQIac8vA}3Gb_sII{RE6It^IEaOO?%H) zxM}Z23V%TSYMsI_mG*Qh{E+Cwe@Ddq-0E&Nn{~C~=ReYDS%V74KU9L(cNA{)|B=Ft z{*NmBMxmck_-8`DtZ-xhw-ufvX_Jgk~{6(3s|5xG5L{D>mVDvP8lO*-vvPwcW^-G%IhCfr}Pf+|aOs&a^ z|8|KdOBCKG@wQgs-@}UF+OF_yi9Z7hkBa>7E8Oh=_bWUg~^V=0}{Omglzd-bVK;b=N z|7R4wPvY1?g}*C$exY#l9{DKo3uA}rGB1P$N43%P=6ji^DgFVm|56V>noO1f)=CeK za)yha*DE<^OTCvW9RD0MURNnOWg_PrivL0J+uaI}$auU@$uZyS{iWjHEcPi)ZxdzyG5EdW|FaZ+i;TNd1vm1|d#7cJ z-^e*n;op}4*P-zLk@2%$$v5A(-l6!7{G!`W{7Z?SUntys&XFqd-q?AD_}d8zzgouiOog8>?ZUqug_n_I=HoJjhsB=fD|`(X zw^|imBK>lu!fzKpxlZ9dqR%Y~-ynAQp~7d$_cBDm=n z{=UpF z`xXAB%$qMOJYVAKUljg5Stop|@M~l~N|teB+LbKp>1@G`{in-#G@m;e{x#fOYq8?L zPvXEzB|mJ|T?+3KJ+D#tV(G^nO8yb4_j`)}L9v@Tr#E_<@%S6XZ^rc-3OD2Q1BIJ$ zYRf*!$TxnTBDnGMLh*-D9vuC=U+~FFj)^Dp6mG_QvBJ%GuTr=f?{x|{FoAG{? z;HKZ-5Iw)4_)Q%6p2D+b9{iD#^Mdr(FBHGozyD6*&x(J(rsT{NIUg(joiZ-`64yj=>k>F?+8WLikrHVf$epBJ$7t>G+>J`7yN8Fv}W!d@=zgeG} zei1WRCrJX^i%W)Tp{FQ(lhD%@{%xTP6uw*NxeEWa(DN1kxzLLgK2hv*rozqlE|w_V zyf3j#;g^V<6$(!B2CsAZLH0*`J}-Eq!v7$6i^2~H-lp(R z1n*LKvN**Cg^w28^qcA569wO<_-6?IRfU`HKU}A9{Jk5z2KnK%ce&u-Qh24{H!J*n z!FMUVS@1g*-Y)n(3g003j}?BE;P)xKU+|wP-0Zs_SGf7!!p{}{Baw4J;Xf1nd4>N% z@ZTu>S;1dcxcR=ps|r6T{BJ1Syf6B;!Ve4oVZqUz1R^9XIAUJBP~j$iUZijnpSLR9 z%(J@`Zq~_r6>j!f2NiDicb1F;qo>(dh81r1xn}+}{AOQo6?AP}2fsrP&+blst~II7 zSZiHDH~#8m0sVAuK|TBdyn@blCMXw^1&{)?0RAo%{8cHW>I&$`G~mZw;CGWHT~}Y< z8CxHh4L_6#e^3KOx<%+GKcoogVM^1FTo8@Ff`@;nr~rQHHC6yWNe4fc4?lY$H2flB zf%8MZEH}0me)J!Ihxz}@6$UA2Vl%%Op@ovre{EH|!?4kJpm8f}_)SKrnNzj0-os-E zEGs09 z^jtW94W<7ToUfFMRKk2N(JAW*0*Bx| z8?d43ACUSlI)zJO{aClIzaFrm>i@PVZr;OUDM$16Bq;yCQm<)$qVgS(F_iv?zsn^| zdDI`b7+U{6z=qO4a~_xf4hr{Nn)hnR8>;^B9b70R<*|O;%INxc0){e;o{*&L-Ua+L z>p_7XU5y^QAY-WVS*y8(d2csS`8^5Br^$k6swpT>Q?GgAJZsWk*7;_^((B zvgbU!Th=bwcj9sCSop8Y<8iKzT>x2?b$GWdvu|bUXj@~L8LE8FZZ7ezDJW0W*L(dR DUs|CL literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_static_static_points.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_static_static_points.c.o new file mode 100644 index 0000000000000000000000000000000000000000..ebd01abc0800da2ffa22637856c2bdbb552472dc GIT binary patch literal 61672 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_static_static_serie.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_static_static_serie.c.o new file mode 100644 index 0000000000000000000000000000000000000000..db4060c9435c640a587d09674f73f76f232652a3 GIT binary patch literal 61424 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_static_static_serie_renderer.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_static_static_serie_renderer.c.o new file mode 100644 index 0000000000000000000000000000000000000000..7e6d21c5a51ed63a82a8ab55e1cc08979d311deb GIT binary patch literal 50464 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_static_static_series.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_static_static_series.c.o new file mode 100644 index 0000000000000000000000000000000000000000..72180ac340d1536b89547a39e2ba9ae1d4ee44dc GIT binary patch literal 44384 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 Av;Y7A literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_static_static_values.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_static_static_values.c.o new file mode 100644 index 0000000000000000000000000000000000000000..1b955b538ec9b447c3b80c8e99af71859d1037e3 GIT binary patch literal 42736 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 W&O_mUU-@_cJF$G~bJC5@|9=6rZU8C( literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_threshold_line.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_threshold_line.c.o new file mode 100644 index 0000000000000000000000000000000000000000..bfd965d8a90f5d7fa17ab9256303f81cfdfe6223 GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/meson-generated_values.c.o b/iPDC/lib/liblivechart.so.p/meson-generated_values.c.o new file mode 100644 index 0000000000000000000000000000000000000000..f1b327f3b78533cad20eff6a39fcd9f4d44c15f0 GIT binary patch literal 41536 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 RpL&zY@u_6wD_6%y{|_;8pfCUc literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart.so.p/min_bound_line.c b/iPDC/lib/liblivechart.so.p/min_bound_line.c new file mode 100644 index 0000000..c35e85b --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/min_bound_line.c @@ -0,0 +1,260 @@ +/* min_bound_line.c generated by valac 0.56.0, the Vala compiler + * generated from min_bound_line.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_MIN_BOUND_LINE_0_PROPERTY, + LIVE_CHART_MIN_BOUND_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_min_bound_line_properties[LIVE_CHART_MIN_BOUND_LINE_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +static gpointer live_chart_min_bound_line_parent_class = NULL; + +static void live_chart_min_bound_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static GType live_chart_min_bound_line_get_type_once (void); + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 9 "../src/min_bound_line.vala" + return self ? g_object_ref (self) : NULL; +#line 32 "min_bound_line.c" +} + +LiveChartMinBoundLine* +live_chart_min_bound_line_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartMinBoundLine * self = NULL; + LiveChartValues* _tmp0_; +#line 7 "../src/min_bound_line.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 8 "../src/min_bound_line.vala" + self = (LiveChartMinBoundLine*) live_chart_serie_renderer_construct (object_type); +#line 9 "../src/min_bound_line.vala" + _tmp0_ = _g_object_ref0 (values); +#line 9 "../src/min_bound_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 9 "../src/min_bound_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 7 "../src/min_bound_line.vala" + return self; +#line 53 "min_bound_line.c" +} + +LiveChartMinBoundLine* +live_chart_min_bound_line_new (LiveChartValues* values) +{ +#line 7 "../src/min_bound_line.vala" + return live_chart_min_bound_line_construct (LIVE_CHART_TYPE_MIN_BOUND_LINE, values); +#line 61 "min_bound_line.c" +} + +LiveChartMinBoundLine* +live_chart_min_bound_line_construct_from_serie (GType object_type, + LiveChartSerie* serie) +{ + LiveChartMinBoundLine * self = NULL; + LiveChartValues* _tmp0_; +#line 12 "../src/min_bound_line.vala" + g_return_val_if_fail (serie != NULL, NULL); +#line 12 "../src/min_bound_line.vala" + self = (LiveChartMinBoundLine*) live_chart_serie_renderer_construct (object_type); +#line 13 "../src/min_bound_line.vala" + _tmp0_ = live_chart_serie_get_values (serie); +#line 13 "../src/min_bound_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 13 "../src/min_bound_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 12 "../src/min_bound_line.vala" + return self; +#line 82 "min_bound_line.c" +} + +LiveChartMinBoundLine* +live_chart_min_bound_line_new_from_serie (LiveChartSerie* serie) +{ +#line 12 "../src/min_bound_line.vala" + return live_chart_min_bound_line_construct_from_serie (LIVE_CHART_TYPE_MIN_BOUND_LINE, serie); +#line 90 "min_bound_line.c" +} + +static void +live_chart_min_bound_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartMinBoundLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 16 "../src/min_bound_line.vala" + self = (LiveChartMinBoundLine*) base; +#line 16 "../src/min_bound_line.vala" + g_return_if_fail (ctx != NULL); +#line 16 "../src/min_bound_line.vala" + g_return_if_fail (config != NULL); +#line 17 "../src/min_bound_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 17 "../src/min_bound_line.vala" + _tmp1_ = _tmp0_; +#line 17 "../src/min_bound_line.vala" + if (_tmp1_) { +#line 113 "min_bound_line.c" + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp2_ = {0}; + gdouble _tmp3_ = 0.0; + LiveChartValues* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gdouble y = 0.0; + LiveChartPath* _tmp19_; + LiveChartPath* _tmp20_; + LiveChartBoundaries _tmp21_; + LiveChartBoundary _tmp22_; + LiveChartBoundaries _tmp23_; + LiveChartBoundary _tmp24_; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartBoundaries _tmp27_; + LiveChartBoundary _tmp28_; +#line 18 "../src/min_bound_line.vala" + live_chart_config_boundaries (config, &_tmp2_); +#line 18 "../src/min_bound_line.vala" + boundaries = _tmp2_; +#line 19 "../src/min_bound_line.vala" + _tmp4_ = ((LiveChartSerieRenderer*) self)->values; +#line 19 "../src/min_bound_line.vala" + _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_); +#line 19 "../src/min_bound_line.vala" + _tmp6_ = _tmp5_; +#line 19 "../src/min_bound_line.vala" + if (_tmp6_ == 0) { +#line 143 "min_bound_line.c" + LiveChartYAxis* _tmp7_; + LiveChartBounds* _tmp8_; + LiveChartBounds* _tmp9_; + gdouble _tmp10_; + gdouble _tmp11_; + LiveChartYAxis* _tmp12_; +#line 19 "../src/min_bound_line.vala" + _tmp7_ = config->y_axis; +#line 19 "../src/min_bound_line.vala" + _tmp8_ = live_chart_yaxis_get_bounds (_tmp7_); +#line 19 "../src/min_bound_line.vala" + _tmp9_ = _tmp8_; +#line 19 "../src/min_bound_line.vala" + _tmp10_ = live_chart_bounds_get_lower (_tmp9_); +#line 19 "../src/min_bound_line.vala" + _tmp11_ = _tmp10_; +#line 19 "../src/min_bound_line.vala" + _tmp12_ = config->y_axis; +#line 19 "../src/min_bound_line.vala" + _tmp3_ = _tmp11_ * live_chart_yaxis_get_ratio (_tmp12_); +#line 19 "../src/min_bound_line.vala" + _g_object_unref0 (_tmp9_); +#line 166 "min_bound_line.c" + } else { + LiveChartValues* _tmp13_; + LiveChartBounds* _tmp14_; + LiveChartBounds* _tmp15_; + gdouble _tmp16_; + gdouble _tmp17_; + LiveChartYAxis* _tmp18_; +#line 19 "../src/min_bound_line.vala" + _tmp13_ = ((LiveChartSerieRenderer*) self)->values; +#line 19 "../src/min_bound_line.vala" + _tmp14_ = live_chart_values_get_bounds (_tmp13_); +#line 19 "../src/min_bound_line.vala" + _tmp15_ = _tmp14_; +#line 19 "../src/min_bound_line.vala" + _tmp16_ = live_chart_bounds_get_lower (_tmp15_); +#line 19 "../src/min_bound_line.vala" + _tmp17_ = _tmp16_; +#line 19 "../src/min_bound_line.vala" + _tmp18_ = config->y_axis; +#line 19 "../src/min_bound_line.vala" + _tmp3_ = _tmp17_ * live_chart_yaxis_get_ratio (_tmp18_); +#line 188 "min_bound_line.c" + } +#line 19 "../src/min_bound_line.vala" + y = _tmp3_; +#line 20 "../src/min_bound_line.vala" + _tmp19_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 20 "../src/min_bound_line.vala" + _tmp20_ = _tmp19_; +#line 20 "../src/min_bound_line.vala" + live_chart_path_configure (_tmp20_, ctx); +#line 21 "../src/min_bound_line.vala" + _tmp21_ = boundaries; +#line 21 "../src/min_bound_line.vala" + _tmp22_ = _tmp21_.x; +#line 21 "../src/min_bound_line.vala" + _tmp23_ = boundaries; +#line 21 "../src/min_bound_line.vala" + _tmp24_ = _tmp23_.y; +#line 21 "../src/min_bound_line.vala" + cairo_move_to (ctx, (gdouble) _tmp22_.min, _tmp24_.max - y); +#line 22 "../src/min_bound_line.vala" + _tmp25_ = boundaries; +#line 22 "../src/min_bound_line.vala" + _tmp26_ = _tmp25_.x; +#line 22 "../src/min_bound_line.vala" + _tmp27_ = boundaries; +#line 22 "../src/min_bound_line.vala" + _tmp28_ = _tmp27_.y; +#line 22 "../src/min_bound_line.vala" + cairo_line_to (ctx, (gdouble) _tmp26_.max, _tmp28_.max - y); +#line 23 "../src/min_bound_line.vala" + cairo_stroke (ctx); +#line 220 "min_bound_line.c" + } +} + +static void +live_chart_min_bound_line_class_init (LiveChartMinBoundLineClass * klass, + gpointer klass_data) +{ +#line 5 "../src/min_bound_line.vala" + live_chart_min_bound_line_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/min_bound_line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_min_bound_line_real_draw; +#line 232 "min_bound_line.c" +} + +static void +live_chart_min_bound_line_instance_init (LiveChartMinBoundLine * self, + gpointer klass) +{ +} + +static GType +live_chart_min_bound_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartMinBoundLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_min_bound_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartMinBoundLine), 0, (GInstanceInitFunc) live_chart_min_bound_line_instance_init, NULL }; + GType live_chart_min_bound_line_type_id; + live_chart_min_bound_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartMinBoundLine", &g_define_type_info, 0); + return live_chart_min_bound_line_type_id; +} + +GType +live_chart_min_bound_line_get_type (void) +{ + static volatile gsize live_chart_min_bound_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_min_bound_line_type_id__once)) { + GType live_chart_min_bound_line_type_id; + live_chart_min_bound_line_type_id = live_chart_min_bound_line_get_type_once (); + g_once_init_leave (&live_chart_min_bound_line_type_id__once, live_chart_min_bound_line_type_id); + } + return live_chart_min_bound_line_type_id__once; +} + diff --git a/iPDC/lib/liblivechart.so.p/path.c b/iPDC/lib/liblivechart.so.p/path.c new file mode 100644 index 0000000..6dd5d46 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/path.c @@ -0,0 +1,586 @@ +/* path.c generated by valac 0.56.0, the Vala compiler + * generated from path.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_PATH_0_PROPERTY, + LIVE_CHART_PATH_WIDTH_PROPERTY, + LIVE_CHART_PATH_COLOR_PROPERTY, + LIVE_CHART_PATH_VISIBLE_PROPERTY, + LIVE_CHART_PATH_NUM_PROPERTIES +}; +static GParamSpec* live_chart_path_properties[LIVE_CHART_PATH_NUM_PROPERTIES]; +#define _live_chart_dash_free0(var) ((var == NULL) ? NULL : (var = (live_chart_dash_free (var), NULL))) + +struct _LiveChartPathPrivate { + gdouble _width; + GdkRGBA _color; + gboolean _visible; +}; + +static gint LiveChartPath_private_offset; +static gpointer live_chart_path_parent_class = NULL; + +static gdouble* _vala_array_dup1 (gdouble* self, + gssize length); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_path_finalize (GObject * obj); +static GType live_chart_path_get_type_once (void); +static void _vala_live_chart_path_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_path_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +void +live_chart_dash_init (LiveChartDash *self) +{ +#line 8 "../src/path.vala" + memset (self, 0, sizeof (LiveChartDash)); +#line 9 "../src/path.vala" + (*self).offset = (gdouble) 0; +#line 57 "path.c" +} + +static gdouble* +_vala_array_dup1 (gdouble* self, + gssize length) +{ +#line 5 "../src/path.vala" + if (length > 0) { +#line 5 "../src/path.vala" + return _vala_memdup2 (self, length * sizeof (gdouble)); +#line 68 "path.c" + } +#line 5 "../src/path.vala" + return NULL; +#line 72 "path.c" +} + +void +live_chart_dash_copy (const LiveChartDash* self, + LiveChartDash* dest) +{ + gdouble* _tmp0_; + gint _tmp0__length1; + gdouble* _tmp1_; + gint _tmp1__length1; +#line 5 "../src/path.vala" + _tmp0_ = (*self).dashes; +#line 5 "../src/path.vala" + _tmp0__length1 = (*self).dashes_length1; +#line 5 "../src/path.vala" + _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup1 (_tmp0_, _tmp0__length1) : _tmp0_; +#line 5 "../src/path.vala" + _tmp1__length1 = _tmp0__length1; +#line 5 "../src/path.vala" + (*dest).dashes = (g_free ((*dest).dashes), NULL); +#line 5 "../src/path.vala" + (*dest).dashes = _tmp1_; +#line 5 "../src/path.vala" + (*dest).dashes_length1 = _tmp1__length1; +#line 5 "../src/path.vala" + (*dest).offset = (*self).offset; +#line 99 "path.c" +} + +void +live_chart_dash_destroy (LiveChartDash* self) +{ +#line 6 "../src/path.vala" + (*self).dashes = (g_free ((*self).dashes), NULL); +#line 107 "path.c" +} + +LiveChartDash* +live_chart_dash_dup (const LiveChartDash* self) +{ + LiveChartDash* dup; +#line 5 "../src/path.vala" + dup = g_new0 (LiveChartDash, 1); +#line 5 "../src/path.vala" + live_chart_dash_copy (self, dup); +#line 5 "../src/path.vala" + return dup; +#line 120 "path.c" +} + +void +live_chart_dash_free (LiveChartDash* self) +{ +#line 5 "../src/path.vala" + live_chart_dash_destroy (self); +#line 5 "../src/path.vala" + g_free (self); +#line 130 "path.c" +} + +static GType +live_chart_dash_get_type_once (void) +{ + GType live_chart_dash_type_id; + live_chart_dash_type_id = g_boxed_type_register_static ("LiveChartDash", (GBoxedCopyFunc) live_chart_dash_dup, (GBoxedFreeFunc) live_chart_dash_free); + return live_chart_dash_type_id; +} + +GType +live_chart_dash_get_type (void) +{ + static volatile gsize live_chart_dash_type_id__once = 0; + if (g_once_init_enter (&live_chart_dash_type_id__once)) { + GType live_chart_dash_type_id; + live_chart_dash_type_id = live_chart_dash_get_type_once (); + g_once_init_leave (&live_chart_dash_type_id__once, live_chart_dash_type_id); + } + return live_chart_dash_type_id__once; +} + +static inline gpointer +live_chart_path_get_instance_private (LiveChartPath* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartPath_private_offset); +} + +static gpointer +_live_chart_dash_dup0 (gpointer self) +{ +#line 23 "../src/path.vala" + return self ? live_chart_dash_dup (self) : NULL; +#line 164 "path.c" +} + +LiveChartPath* +live_chart_path_construct (GType object_type, + gdouble width, + GdkRGBA* color, + gboolean visible, + LiveChartDash* dash) +{ + LiveChartPath * self = NULL; + GdkRGBA _tmp0_; + LiveChartDash* _tmp1_; +#line 19 "../src/path.vala" + g_return_val_if_fail (color != NULL, NULL); +#line 19 "../src/path.vala" + self = (LiveChartPath*) g_object_new (object_type, NULL); +#line 20 "../src/path.vala" + live_chart_path_set_width (self, width); +#line 21 "../src/path.vala" + _tmp0_ = *color; +#line 21 "../src/path.vala" + live_chart_path_set_color (self, &_tmp0_); +#line 22 "../src/path.vala" + live_chart_path_set_visible (self, TRUE); +#line 23 "../src/path.vala" + _tmp1_ = _live_chart_dash_dup0 (dash); +#line 23 "../src/path.vala" + _live_chart_dash_free0 (self->dash); +#line 23 "../src/path.vala" + self->dash = _tmp1_; +#line 19 "../src/path.vala" + return self; +#line 197 "path.c" +} + +LiveChartPath* +live_chart_path_new (gdouble width, + GdkRGBA* color, + gboolean visible, + LiveChartDash* dash) +{ +#line 19 "../src/path.vala" + return live_chart_path_construct (LIVE_CHART_TYPE_PATH, width, color, visible, dash); +#line 208 "path.c" +} + +void +live_chart_path_configure (LiveChartPath* self, + cairo_t* ctx) +{ + gboolean _tmp0_; +#line 26 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 26 "../src/path.vala" + g_return_if_fail (ctx != NULL); +#line 27 "../src/path.vala" + _tmp0_ = self->priv->_visible; +#line 27 "../src/path.vala" + if (_tmp0_) { +#line 224 "path.c" + LiveChartDash* _tmp1_; + GdkRGBA _tmp5_; + GdkRGBA _tmp6_; + GdkRGBA _tmp7_; + GdkRGBA _tmp8_; + gdouble _tmp9_; +#line 28 "../src/path.vala" + _tmp1_ = self->dash; +#line 28 "../src/path.vala" + if (_tmp1_ != NULL) { +#line 235 "path.c" + LiveChartDash* _tmp2_; + gdouble* _tmp3_; + gint _tmp3__length1; + LiveChartDash* _tmp4_; +#line 29 "../src/path.vala" + _tmp2_ = self->dash; +#line 29 "../src/path.vala" + _tmp3_ = (*_tmp2_).dashes; +#line 29 "../src/path.vala" + _tmp3__length1 = (*_tmp2_).dashes_length1; +#line 29 "../src/path.vala" + _tmp4_ = self->dash; +#line 29 "../src/path.vala" + cairo_set_dash (ctx, _tmp3_, (gint) _tmp3__length1, (*_tmp4_).offset); +#line 250 "path.c" + } +#line 31 "../src/path.vala" + _tmp5_ = self->priv->_color; +#line 31 "../src/path.vala" + _tmp6_ = self->priv->_color; +#line 31 "../src/path.vala" + _tmp7_ = self->priv->_color; +#line 31 "../src/path.vala" + _tmp8_ = self->priv->_color; +#line 31 "../src/path.vala" + cairo_set_source_rgba (ctx, _tmp5_.red, _tmp6_.green, _tmp7_.blue, _tmp8_.alpha); +#line 32 "../src/path.vala" + _tmp9_ = self->priv->_width; +#line 32 "../src/path.vala" + cairo_set_line_width (ctx, _tmp9_); +#line 266 "path.c" + } +} + +gdouble +live_chart_path_get_width (LiveChartPath* self) +{ + gdouble result; +#line 14 "../src/path.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 14 "../src/path.vala" + result = self->priv->_width; +#line 14 "../src/path.vala" + return result; +#line 280 "path.c" +} + +void +live_chart_path_set_width (LiveChartPath* self, + gdouble value) +{ + gdouble old_value; +#line 14 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/path.vala" + old_value = live_chart_path_get_width (self); +#line 14 "../src/path.vala" + if (old_value != value) { +#line 14 "../src/path.vala" + self->priv->_width = value; +#line 14 "../src/path.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_path_properties[LIVE_CHART_PATH_WIDTH_PROPERTY]); +#line 298 "path.c" + } +} + +void +live_chart_path_get_color (LiveChartPath* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 16 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/path.vala" + _tmp0_ = self->priv->_color; +#line 16 "../src/path.vala" + *result = _tmp0_; +#line 16 "../src/path.vala" + return; +#line 315 "path.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 16 "../src/path.vala" + if (s1 == s2) { +#line 16 "../src/path.vala" + return TRUE; +#line 326 "path.c" + } +#line 16 "../src/path.vala" + if (s1 == NULL) { +#line 16 "../src/path.vala" + return FALSE; +#line 332 "path.c" + } +#line 16 "../src/path.vala" + if (s2 == NULL) { +#line 16 "../src/path.vala" + return FALSE; +#line 338 "path.c" + } +#line 16 "../src/path.vala" + if (s1->red != s2->red) { +#line 16 "../src/path.vala" + return FALSE; +#line 344 "path.c" + } +#line 16 "../src/path.vala" + if (s1->green != s2->green) { +#line 16 "../src/path.vala" + return FALSE; +#line 350 "path.c" + } +#line 16 "../src/path.vala" + if (s1->blue != s2->blue) { +#line 16 "../src/path.vala" + return FALSE; +#line 356 "path.c" + } +#line 16 "../src/path.vala" + if (s1->alpha != s2->alpha) { +#line 16 "../src/path.vala" + return FALSE; +#line 362 "path.c" + } +#line 16 "../src/path.vala" + return TRUE; +#line 366 "path.c" +} + +void +live_chart_path_set_color (LiveChartPath* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 16 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 16 "../src/path.vala" + live_chart_path_get_color (self, &old_value); +#line 16 "../src/path.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 380 "path.c" + GdkRGBA _tmp0_; +#line 16 "../src/path.vala" + _tmp0_ = *value; +#line 16 "../src/path.vala" + self->priv->_color = _tmp0_; +#line 16 "../src/path.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_path_properties[LIVE_CHART_PATH_COLOR_PROPERTY]); +#line 388 "path.c" + } +} + +gboolean +live_chart_path_get_visible (LiveChartPath* self) +{ + gboolean result; +#line 17 "../src/path.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 17 "../src/path.vala" + result = self->priv->_visible; +#line 17 "../src/path.vala" + return result; +#line 402 "path.c" +} + +void +live_chart_path_set_visible (LiveChartPath* self, + gboolean value) +{ + gboolean old_value; +#line 17 "../src/path.vala" + g_return_if_fail (self != NULL); +#line 17 "../src/path.vala" + old_value = live_chart_path_get_visible (self); +#line 17 "../src/path.vala" + if (old_value != value) { +#line 17 "../src/path.vala" + self->priv->_visible = value; +#line 17 "../src/path.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_path_properties[LIVE_CHART_PATH_VISIBLE_PROPERTY]); +#line 420 "path.c" + } +} + +static void +live_chart_path_class_init (LiveChartPathClass * klass, + gpointer klass_data) +{ +#line 13 "../src/path.vala" + live_chart_path_parent_class = g_type_class_peek_parent (klass); +#line 13 "../src/path.vala" + g_type_class_adjust_private_offset (klass, &LiveChartPath_private_offset); +#line 13 "../src/path.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_path_get_property; +#line 13 "../src/path.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_path_set_property; +#line 13 "../src/path.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_path_finalize; +#line 13 "../src/path.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_PATH_WIDTH_PROPERTY, live_chart_path_properties[LIVE_CHART_PATH_WIDTH_PROPERTY] = g_param_spec_double ("width", "width", "width", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 13 "../src/path.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_PATH_COLOR_PROPERTY, live_chart_path_properties[LIVE_CHART_PATH_COLOR_PROPERTY] = g_param_spec_boxed ("color", "color", "color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 13 "../src/path.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_PATH_VISIBLE_PROPERTY, live_chart_path_properties[LIVE_CHART_PATH_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 444 "path.c" +} + +static void +live_chart_path_instance_init (LiveChartPath * self, + gpointer klass) +{ +#line 13 "../src/path.vala" + self->priv = live_chart_path_get_instance_private (self); +#line 453 "path.c" +} + +static void +live_chart_path_finalize (GObject * obj) +{ + LiveChartPath * self; +#line 13 "../src/path.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_PATH, LiveChartPath); +#line 15 "../src/path.vala" + _live_chart_dash_free0 (self->dash); +#line 13 "../src/path.vala" + G_OBJECT_CLASS (live_chart_path_parent_class)->finalize (obj); +#line 466 "path.c" +} + +static GType +live_chart_path_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartPathClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_path_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartPath), 0, (GInstanceInitFunc) live_chart_path_instance_init, NULL }; + GType live_chart_path_type_id; + live_chart_path_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartPath", &g_define_type_info, 0); + LiveChartPath_private_offset = g_type_add_instance_private (live_chart_path_type_id, sizeof (LiveChartPathPrivate)); + return live_chart_path_type_id; +} + +GType +live_chart_path_get_type (void) +{ + static volatile gsize live_chart_path_type_id__once = 0; + if (g_once_init_enter (&live_chart_path_type_id__once)) { + GType live_chart_path_type_id; + live_chart_path_type_id = live_chart_path_get_type_once (); + g_once_init_leave (&live_chart_path_type_id__once, live_chart_path_type_id); + } + return live_chart_path_type_id__once; +} + +static void +_vala_live_chart_path_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartPath * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_PATH, LiveChartPath); +#line 13 "../src/path.vala" + switch (property_id) { +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_WIDTH_PROPERTY: +#line 13 "../src/path.vala" + g_value_set_double (value, live_chart_path_get_width (self)); +#line 13 "../src/path.vala" + break; +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_COLOR_PROPERTY: +#line 509 "path.c" + { + GdkRGBA boxed; +#line 13 "../src/path.vala" + live_chart_path_get_color (self, &boxed); +#line 13 "../src/path.vala" + g_value_set_boxed (value, &boxed); +#line 516 "path.c" + } +#line 13 "../src/path.vala" + break; +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_VISIBLE_PROPERTY: +#line 13 "../src/path.vala" + g_value_set_boolean (value, live_chart_path_get_visible (self)); +#line 13 "../src/path.vala" + break; +#line 526 "path.c" + default: +#line 13 "../src/path.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 13 "../src/path.vala" + break; +#line 532 "path.c" + } +} + +static void +_vala_live_chart_path_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartPath * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_PATH, LiveChartPath); +#line 13 "../src/path.vala" + switch (property_id) { +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_WIDTH_PROPERTY: +#line 13 "../src/path.vala" + live_chart_path_set_width (self, g_value_get_double (value)); +#line 13 "../src/path.vala" + break; +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_COLOR_PROPERTY: +#line 13 "../src/path.vala" + live_chart_path_set_color (self, g_value_get_boxed (value)); +#line 13 "../src/path.vala" + break; +#line 13 "../src/path.vala" + case LIVE_CHART_PATH_VISIBLE_PROPERTY: +#line 13 "../src/path.vala" + live_chart_path_set_visible (self, g_value_get_boolean (value)); +#line 13 "../src/path.vala" + break; +#line 564 "path.c" + default: +#line 13 "../src/path.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 13 "../src/path.vala" + break; +#line 570 "path.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/points.c b/iPDC/lib/liblivechart.so.p/points.c new file mode 100644 index 0000000..c0c35f3 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/points.c @@ -0,0 +1,739 @@ +/* points.c generated by valac 0.56.0, the Vala compiler + * generated from points.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_POINTS_0_PROPERTY, + LIVE_CHART_POINTS_BOUNDS_PROPERTY, + LIVE_CHART_POINTS_SIZE_PROPERTY, + LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY, + LIVE_CHART_POINTS_NUM_PROPERTIES +}; +static GParamSpec* live_chart_points_properties[LIVE_CHART_POINTS_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_point_free0(var) ((var == NULL) ? NULL : (var = (live_chart_point_free (var), NULL))) +#define _live_chart_timestamped_value_free0(var) ((var == NULL) ? NULL : (var = (live_chart_timestamped_value_free (var), NULL))) + +struct _LiveChartPointsPrivate { + GeeArrayList* points; + LiveChartBounds* _bounds; + gdouble _realtime_delta; +}; + +static gint LiveChartPoints_private_offset; +static gpointer live_chart_points_parent_class = NULL; + +static void live_chart_points_value_to_point (LiveChartTimestampedValue* last_value, + LiveChartTimestampedValue* current_value, + LiveChartConfig* config, + LiveChartBoundaries* boundaries, + gdouble realtime_delta, + LiveChartPoint* result); +static void live_chart_points_finalize (GObject * obj); +static GType live_chart_points_get_type_once (void); +static void _vala_live_chart_points_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_points_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +LiveChartPoint* +live_chart_point_dup (const LiveChartPoint* self) +{ + LiveChartPoint* dup; +#line 4 "../src/points.vala" + dup = g_new0 (LiveChartPoint, 1); +#line 4 "../src/points.vala" + memcpy (dup, self, sizeof (LiveChartPoint)); +#line 4 "../src/points.vala" + return dup; +#line 63 "points.c" +} + +void +live_chart_point_free (LiveChartPoint* self) +{ +#line 4 "../src/points.vala" + g_free (self); +#line 71 "points.c" +} + +static GType +live_chart_point_get_type_once (void) +{ + GType live_chart_point_type_id; + live_chart_point_type_id = g_boxed_type_register_static ("LiveChartPoint", (GBoxedCopyFunc) live_chart_point_dup, (GBoxedFreeFunc) live_chart_point_free); + return live_chart_point_type_id; +} + +GType +live_chart_point_get_type (void) +{ + static volatile gsize live_chart_point_type_id__once = 0; + if (g_once_init_enter (&live_chart_point_type_id__once)) { + GType live_chart_point_type_id; + live_chart_point_type_id = live_chart_point_get_type_once (); + g_once_init_leave (&live_chart_point_type_id__once, live_chart_point_type_id); + } + return live_chart_point_type_id__once; +} + +static inline gpointer +live_chart_points_get_instance_private (LiveChartPoints* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartPoints_private_offset); +} + +LiveChartPoints* +live_chart_points_construct (GType object_type) +{ + LiveChartPoints * self = NULL; + LiveChartBounds* _tmp0_; + LiveChartBounds* _tmp1_; +#line 17 "../src/points.vala" + self = (LiveChartPoints*) g_object_new (object_type, NULL); +#line 18 "../src/points.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 18 "../src/points.vala" + _tmp1_ = _tmp0_; +#line 18 "../src/points.vala" + live_chart_points_set_bounds (self, _tmp1_); +#line 18 "../src/points.vala" + _g_object_unref0 (_tmp1_); +#line 17 "../src/points.vala" + return self; +#line 118 "points.c" +} + +LiveChartPoints* +live_chart_points_new (void) +{ +#line 17 "../src/points.vala" + return live_chart_points_construct (LIVE_CHART_TYPE_POINTS); +#line 126 "points.c" +} + +void +live_chart_points_add (LiveChartPoints* self, + LiveChartPoint* point) +{ + LiveChartBounds* _tmp0_; + LiveChartPoint _tmp1_; + GeeArrayList* _tmp2_; + LiveChartPoint _tmp3_; +#line 21 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 21 "../src/points.vala" + g_return_if_fail (point != NULL); +#line 22 "../src/points.vala" + _tmp0_ = self->priv->_bounds; +#line 22 "../src/points.vala" + _tmp1_ = *point; +#line 22 "../src/points.vala" + live_chart_bounds_update (_tmp0_, _tmp1_.y); +#line 23 "../src/points.vala" + _tmp2_ = self->priv->points; +#line 23 "../src/points.vala" + _tmp3_ = *point; +#line 23 "../src/points.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp2_, &_tmp3_); +#line 153 "points.c" +} + +void +live_chart_points_get (LiveChartPoints* self, + gint at, + LiveChartPoint* result) +{ + GeeArrayList* _tmp0_; + gpointer _tmp1_; + LiveChartPoint* _tmp2_; + LiveChartPoint _tmp3_; +#line 36 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 37 "../src/points.vala" + _tmp0_ = self->priv->points; +#line 37 "../src/points.vala" + _tmp1_ = gee_abstract_list_get ((GeeAbstractList*) _tmp0_, at); +#line 37 "../src/points.vala" + _tmp2_ = (LiveChartPoint*) _tmp1_; +#line 37 "../src/points.vala" + _tmp3_ = *_tmp2_; +#line 37 "../src/points.vala" + _live_chart_point_free0 (_tmp2_); +#line 37 "../src/points.vala" + *result = _tmp3_; +#line 37 "../src/points.vala" + return; +#line 181 "points.c" +} + +void +live_chart_points_after (LiveChartPoints* self, + gint at, + LiveChartPoint* result) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartPoint _tmp5_ = {0}; +#line 40 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 41 "../src/points.vala" + _tmp0_ = live_chart_points_get_size (self); +#line 41 "../src/points.vala" + _tmp1_ = _tmp0_; +#line 41 "../src/points.vala" + if ((at + 1) >= _tmp1_) { +#line 200 "points.c" + gint _tmp2_; + gint _tmp3_; + LiveChartPoint _tmp4_ = {0}; +#line 41 "../src/points.vala" + _tmp2_ = live_chart_points_get_size (self); +#line 41 "../src/points.vala" + _tmp3_ = _tmp2_; +#line 41 "../src/points.vala" + live_chart_points_get (self, _tmp3_ - 1, &_tmp4_); +#line 41 "../src/points.vala" + *result = _tmp4_; +#line 41 "../src/points.vala" + return; +#line 214 "points.c" + } +#line 42 "../src/points.vala" + live_chart_points_get (self, at + 1, &_tmp5_); +#line 42 "../src/points.vala" + *result = _tmp5_; +#line 42 "../src/points.vala" + return; +#line 222 "points.c" +} + +void +live_chart_points_first (LiveChartPoints* self, + LiveChartPoint* result) +{ + LiveChartPoint _tmp0_ = {0}; +#line 45 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/points.vala" + live_chart_points_get (self, 0, &_tmp0_); +#line 46 "../src/points.vala" + *result = _tmp0_; +#line 46 "../src/points.vala" + return; +#line 238 "points.c" +} + +void +live_chart_points_last (LiveChartPoints* self, + LiveChartPoint* result) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartPoint _tmp2_ = {0}; +#line 49 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 50 "../src/points.vala" + _tmp0_ = live_chart_points_get_size (self); +#line 50 "../src/points.vala" + _tmp1_ = _tmp0_; +#line 50 "../src/points.vala" + live_chart_points_get (self, _tmp1_ - 1, &_tmp2_); +#line 50 "../src/points.vala" + *result = _tmp2_; +#line 50 "../src/points.vala" + return; +#line 260 "points.c" +} + +LiveChartPoints* +live_chart_points_create (LiveChartValues* values, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartPoints* points = NULL; + LiveChartPoints* _tmp1_; + gint _tmp2_; + gint _tmp3_; + LiveChartPoints* result; +#line 53 "../src/points.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 53 "../src/points.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 54 "../src/points.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 54 "../src/points.vala" + boundaries = _tmp0_; +#line 56 "../src/points.vala" + _tmp1_ = live_chart_points_new (); +#line 56 "../src/points.vala" + points = _tmp1_; +#line 57 "../src/points.vala" + _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) values); +#line 57 "../src/points.vala" + _tmp3_ = _tmp2_; +#line 57 "../src/points.vala" + if (_tmp3_ > 0) { +#line 292 "points.c" + LiveChartTimestampedValue* last_value = NULL; + gpointer _tmp4_; + LiveChartPoints* _tmp5_; + LiveChartTimestampedValue* _tmp6_; + LiveChartXAxis* _tmp7_; +#line 58 "../src/points.vala" + _tmp4_ = gee_linked_list_last ((GeeLinkedList*) values); +#line 58 "../src/points.vala" + last_value = (LiveChartTimestampedValue*) _tmp4_; +#line 59 "../src/points.vala" + _tmp5_ = points; +#line 59 "../src/points.vala" + _tmp6_ = last_value; +#line 59 "../src/points.vala" + _tmp7_ = config->x_axis; +#line 59 "../src/points.vala" + live_chart_points_set_realtime_delta (_tmp5_, (((g_get_real_time () / 1000) - (*_tmp6_).timestamp) * live_chart_xaxis_get_ratio (_tmp7_)) / 1000); +#line 310 "points.c" + { + LiveChartValues* _value_list = NULL; + gint _value_size = 0; + LiveChartValues* _tmp8_; + gint _tmp9_; + gint _tmp10_; + gint _value_index = 0; +#line 61 "../src/points.vala" + _value_list = values; +#line 61 "../src/points.vala" + _tmp8_ = _value_list; +#line 61 "../src/points.vala" + _tmp9_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp8_); +#line 61 "../src/points.vala" + _tmp10_ = _tmp9_; +#line 61 "../src/points.vala" + _value_size = _tmp10_; +#line 61 "../src/points.vala" + _value_index = -1; +#line 61 "../src/points.vala" + while (TRUE) { +#line 332 "points.c" + gint _tmp11_; + gint _tmp12_; + LiveChartTimestampedValue value = {0}; + LiveChartValues* _tmp13_; + gpointer _tmp14_; + LiveChartTimestampedValue* _tmp15_; + LiveChartTimestampedValue _tmp16_; + LiveChartPoint point = {0}; + LiveChartTimestampedValue* _tmp17_; + LiveChartTimestampedValue _tmp18_; + LiveChartBoundaries _tmp19_; + LiveChartPoints* _tmp20_; + gdouble _tmp21_; + LiveChartTimestampedValue _tmp22_; + LiveChartPoint _tmp23_ = {0}; + LiveChartPoints* _tmp24_; + LiveChartPoint _tmp25_; +#line 61 "../src/points.vala" + _value_index = _value_index + 1; +#line 61 "../src/points.vala" + _tmp11_ = _value_index; +#line 61 "../src/points.vala" + _tmp12_ = _value_size; +#line 61 "../src/points.vala" + if (!(_tmp11_ < _tmp12_)) { +#line 61 "../src/points.vala" + break; +#line 360 "points.c" + } +#line 61 "../src/points.vala" + _tmp13_ = _value_list; +#line 61 "../src/points.vala" + _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp13_, _value_index); +#line 61 "../src/points.vala" + _tmp15_ = (LiveChartTimestampedValue*) _tmp14_; +#line 61 "../src/points.vala" + _tmp16_ = *_tmp15_; +#line 61 "../src/points.vala" + _live_chart_timestamped_value_free0 (_tmp15_); +#line 61 "../src/points.vala" + value = _tmp16_; +#line 62 "../src/points.vala" + _tmp17_ = last_value; +#line 62 "../src/points.vala" + _tmp18_ = value; +#line 62 "../src/points.vala" + _tmp19_ = boundaries; +#line 62 "../src/points.vala" + _tmp20_ = points; +#line 62 "../src/points.vala" + _tmp21_ = _tmp20_->priv->_realtime_delta; +#line 62 "../src/points.vala" + _tmp22_ = *_tmp17_; +#line 62 "../src/points.vala" + live_chart_points_value_to_point (&_tmp22_, &_tmp18_, config, &_tmp19_, _tmp21_, &_tmp23_); +#line 62 "../src/points.vala" + point = _tmp23_; +#line 63 "../src/points.vala" + _tmp24_ = points; +#line 63 "../src/points.vala" + _tmp25_ = point; +#line 63 "../src/points.vala" + live_chart_points_add (_tmp24_, &_tmp25_); +#line 396 "points.c" + } + } +#line 57 "../src/points.vala" + _live_chart_timestamped_value_free0 (last_value); +#line 401 "points.c" + } +#line 67 "../src/points.vala" + result = points; +#line 67 "../src/points.vala" + return result; +#line 407 "points.c" +} + +static void +live_chart_points_value_to_point (LiveChartTimestampedValue* last_value, + LiveChartTimestampedValue* current_value, + LiveChartConfig* config, + LiveChartBoundaries* boundaries, + gdouble realtime_delta, + LiveChartPoint* result) +{ + LiveChartBoundaries _tmp0_; + LiveChartBoundary _tmp1_; + LiveChartTimestampedValue _tmp2_; + LiveChartTimestampedValue _tmp3_; + LiveChartXAxis* _tmp4_; + LiveChartBoundaries _tmp5_; + LiveChartBoundary _tmp6_; + LiveChartTimestampedValue _tmp7_; + LiveChartYAxis* _tmp8_; + LiveChartTimestampedValue _tmp9_; + LiveChartYAxis* _tmp10_; + LiveChartTimestampedValue _tmp11_; + LiveChartPoint _tmp12_ = {0}; +#line 70 "../src/points.vala" + g_return_if_fail (last_value != NULL); +#line 70 "../src/points.vala" + g_return_if_fail (current_value != NULL); +#line 70 "../src/points.vala" + g_return_if_fail (config != NULL); +#line 70 "../src/points.vala" + g_return_if_fail (boundaries != NULL); +#line 71 "../src/points.vala" + _tmp0_ = *boundaries; +#line 71 "../src/points.vala" + _tmp1_ = _tmp0_.x; +#line 71 "../src/points.vala" + _tmp2_ = *last_value; +#line 71 "../src/points.vala" + _tmp3_ = *current_value; +#line 71 "../src/points.vala" + _tmp4_ = config->x_axis; +#line 71 "../src/points.vala" + _tmp5_ = *boundaries; +#line 71 "../src/points.vala" + _tmp6_ = _tmp5_.y; +#line 71 "../src/points.vala" + _tmp7_ = *current_value; +#line 71 "../src/points.vala" + _tmp8_ = config->y_axis; +#line 71 "../src/points.vala" + _tmp9_ = *current_value; +#line 71 "../src/points.vala" + _tmp10_ = config->y_axis; +#line 71 "../src/points.vala" + _tmp11_ = *current_value; +#line 71 "../src/points.vala" + memset (&_tmp12_, 0, sizeof (LiveChartPoint)); +#line 71 "../src/points.vala" + _tmp12_.x = (_tmp1_.max - (((_tmp2_.timestamp - _tmp3_.timestamp) / 1000) * live_chart_xaxis_get_ratio (_tmp4_))) - realtime_delta; +#line 71 "../src/points.vala" + _tmp12_.y = _tmp6_.max - (_tmp7_.value * live_chart_yaxis_get_ratio (_tmp8_)); +#line 71 "../src/points.vala" + _tmp12_.height = _tmp9_.value * live_chart_yaxis_get_ratio (_tmp10_); +#line 71 "../src/points.vala" + _tmp12_.data = _tmp11_; +#line 71 "../src/points.vala" + *result = _tmp12_; +#line 71 "../src/points.vala" + return; +#line 477 "points.c" +} + +LiveChartBounds* +live_chart_points_get_bounds (LiveChartPoints* self) +{ + LiveChartBounds* result; + LiveChartBounds* _tmp0_; +#line 14 "../src/points.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 14 "../src/points.vala" + _tmp0_ = self->priv->_bounds; +#line 14 "../src/points.vala" + result = _tmp0_; +#line 14 "../src/points.vala" + return result; +#line 493 "points.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 14 "../src/points.vala" + return self ? g_object_ref (self) : NULL; +#line 501 "points.c" +} + +void +live_chart_points_set_bounds (LiveChartPoints* self, + LiveChartBounds* value) +{ + LiveChartBounds* old_value; +#line 14 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/points.vala" + old_value = live_chart_points_get_bounds (self); +#line 14 "../src/points.vala" + if (old_value != value) { +#line 515 "points.c" + LiveChartBounds* _tmp0_; +#line 14 "../src/points.vala" + _tmp0_ = _g_object_ref0 (value); +#line 14 "../src/points.vala" + _g_object_unref0 (self->priv->_bounds); +#line 14 "../src/points.vala" + self->priv->_bounds = _tmp0_; +#line 14 "../src/points.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_points_properties[LIVE_CHART_POINTS_BOUNDS_PROPERTY]); +#line 525 "points.c" + } +} + +gint +live_chart_points_get_size (LiveChartPoints* self) +{ + gint result; + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; +#line 27 "../src/points.vala" + g_return_val_if_fail (self != NULL, 0); +#line 28 "../src/points.vala" + _tmp0_ = self->priv->points; +#line 28 "../src/points.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 28 "../src/points.vala" + _tmp2_ = _tmp1_; +#line 28 "../src/points.vala" + result = _tmp2_; +#line 28 "../src/points.vala" + return result; +#line 548 "points.c" +} + +gdouble +live_chart_points_get_realtime_delta (LiveChartPoints* self) +{ + gdouble result; +#line 33 "../src/points.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 33 "../src/points.vala" + result = self->priv->_realtime_delta; +#line 33 "../src/points.vala" + return result; +#line 561 "points.c" +} + +void +live_chart_points_set_realtime_delta (LiveChartPoints* self, + gdouble value) +{ + gdouble old_value; +#line 33 "../src/points.vala" + g_return_if_fail (self != NULL); +#line 33 "../src/points.vala" + old_value = live_chart_points_get_realtime_delta (self); +#line 33 "../src/points.vala" + if (old_value != value) { +#line 33 "../src/points.vala" + self->priv->_realtime_delta = value; +#line 33 "../src/points.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_points_properties[LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY]); +#line 579 "points.c" + } +} + +static void +live_chart_points_class_init (LiveChartPointsClass * klass, + gpointer klass_data) +{ +#line 10 "../src/points.vala" + live_chart_points_parent_class = g_type_class_peek_parent (klass); +#line 10 "../src/points.vala" + g_type_class_adjust_private_offset (klass, &LiveChartPoints_private_offset); +#line 10 "../src/points.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_points_get_property; +#line 10 "../src/points.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_points_set_property; +#line 10 "../src/points.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_points_finalize; +#line 10 "../src/points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_POINTS_BOUNDS_PROPERTY, live_chart_points_properties[LIVE_CHART_POINTS_BOUNDS_PROPERTY] = g_param_spec_object ("bounds", "bounds", "bounds", LIVE_CHART_TYPE_BOUNDS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 10 "../src/points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_POINTS_SIZE_PROPERTY, live_chart_points_properties[LIVE_CHART_POINTS_SIZE_PROPERTY] = g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 10 "../src/points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY, live_chart_points_properties[LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY] = g_param_spec_double ("realtime-delta", "realtime-delta", "realtime-delta", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 603 "points.c" +} + +static void +live_chart_points_instance_init (LiveChartPoints * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 10 "../src/points.vala" + self->priv = live_chart_points_get_instance_private (self); +#line 12 "../src/points.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_TYPE_POINT, (GBoxedCopyFunc) live_chart_point_dup, (GDestroyNotify) live_chart_point_free, NULL, NULL, NULL); +#line 12 "../src/points.vala" + self->priv->points = _tmp0_; +#line 617 "points.c" +} + +static void +live_chart_points_finalize (GObject * obj) +{ + LiveChartPoints * self; +#line 10 "../src/points.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_POINTS, LiveChartPoints); +#line 12 "../src/points.vala" + _g_object_unref0 (self->priv->points); +#line 13 "../src/points.vala" + _g_object_unref0 (self->priv->_bounds); +#line 10 "../src/points.vala" + G_OBJECT_CLASS (live_chart_points_parent_class)->finalize (obj); +#line 632 "points.c" +} + +static GType +live_chart_points_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartPointsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_points_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartPoints), 0, (GInstanceInitFunc) live_chart_points_instance_init, NULL }; + GType live_chart_points_type_id; + live_chart_points_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartPoints", &g_define_type_info, 0); + LiveChartPoints_private_offset = g_type_add_instance_private (live_chart_points_type_id, sizeof (LiveChartPointsPrivate)); + return live_chart_points_type_id; +} + +GType +live_chart_points_get_type (void) +{ + static volatile gsize live_chart_points_type_id__once = 0; + if (g_once_init_enter (&live_chart_points_type_id__once)) { + GType live_chart_points_type_id; + live_chart_points_type_id = live_chart_points_get_type_once (); + g_once_init_leave (&live_chart_points_type_id__once, live_chart_points_type_id); + } + return live_chart_points_type_id__once; +} + +static void +_vala_live_chart_points_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartPoints * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_POINTS, LiveChartPoints); +#line 10 "../src/points.vala" + switch (property_id) { +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_BOUNDS_PROPERTY: +#line 10 "../src/points.vala" + g_value_set_object (value, live_chart_points_get_bounds (self)); +#line 10 "../src/points.vala" + break; +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_SIZE_PROPERTY: +#line 10 "../src/points.vala" + g_value_set_int (value, live_chart_points_get_size (self)); +#line 10 "../src/points.vala" + break; +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY: +#line 10 "../src/points.vala" + g_value_set_double (value, live_chart_points_get_realtime_delta (self)); +#line 10 "../src/points.vala" + break; +#line 685 "points.c" + default: +#line 10 "../src/points.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 10 "../src/points.vala" + break; +#line 691 "points.c" + } +} + +static void +_vala_live_chart_points_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartPoints * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_POINTS, LiveChartPoints); +#line 10 "../src/points.vala" + switch (property_id) { +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_BOUNDS_PROPERTY: +#line 10 "../src/points.vala" + live_chart_points_set_bounds (self, g_value_get_object (value)); +#line 10 "../src/points.vala" + break; +#line 10 "../src/points.vala" + case LIVE_CHART_POINTS_REALTIME_DELTA_PROPERTY: +#line 10 "../src/points.vala" + live_chart_points_set_realtime_delta (self, g_value_get_double (value)); +#line 10 "../src/points.vala" + break; +#line 717 "points.c" + default: +#line 10 "../src/points.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 10 "../src/points.vala" + break; +#line 723 "points.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/region.c b/iPDC/lib/liblivechart.so.p/region.c new file mode 100644 index 0000000..d13ace1 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/region.c @@ -0,0 +1,1158 @@ +/* region.c generated by valac 0.56.0, the Vala compiler + * generated from region.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include + +#define _live_chart_coord_free0(var) ((var == NULL) ? NULL : (var = (live_chart_coord_free (var), NULL))) +typedef struct _LiveChartParamSpecRegion LiveChartParamSpecRegion; + +struct _LiveChartRegionPrivate { + gdouble ceil; + gdouble floor; + GdkRGBA _line_color; + GdkRGBA _area_color; +}; + +struct _LiveChartParamSpecRegion { + GParamSpec parent_instance; +}; + +static gint LiveChartRegion_private_offset; +static gpointer live_chart_region_parent_class = NULL; + +static gboolean live_chart_region_enter_by_the_bottom (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static gboolean live_chart_region_enter_by_the_top (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static gboolean live_chart_region_leaving_by_the_top (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static gboolean live_chart_region_leaving_by_the_bottom (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static gboolean live_chart_region_is_within (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current); +static void live_chart_region_finalize (LiveChartRegion * obj); +static GType live_chart_region_get_type_once (void); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static GType +live_chart_region_handle_status_get_type_once (void) +{ + static const GEnumValue values[] = {{LIVE_CHART_REGION_HANDLE_STATUS_ENTER, "LIVE_CHART_REGION_HANDLE_STATUS_ENTER", "enter"}, {LIVE_CHART_REGION_HANDLE_STATUS_EXIT, "LIVE_CHART_REGION_HANDLE_STATUS_EXIT", "exit"}, {LIVE_CHART_REGION_HANDLE_STATUS_WITHIN, "LIVE_CHART_REGION_HANDLE_STATUS_WITHIN", "within"}, {LIVE_CHART_REGION_HANDLE_STATUS_OUT, "LIVE_CHART_REGION_HANDLE_STATUS_OUT", "out"}, {0, NULL, NULL}}; + GType live_chart_region_handle_status_type_id; + live_chart_region_handle_status_type_id = g_enum_register_static ("LiveChartRegionHandleStatus", values); + return live_chart_region_handle_status_type_id; +} + +GType +live_chart_region_handle_status_get_type (void) +{ + static volatile gsize live_chart_region_handle_status_type_id__once = 0; + if (g_once_init_enter (&live_chart_region_handle_status_type_id__once)) { + GType live_chart_region_handle_status_type_id; + live_chart_region_handle_status_type_id = live_chart_region_handle_status_get_type_once (); + g_once_init_leave (&live_chart_region_handle_status_type_id__once, live_chart_region_handle_status_type_id); + } + return live_chart_region_handle_status_type_id__once; +} + +LiveChartRegionHandleResult* +live_chart_region_handle_result_dup (const LiveChartRegionHandleResult* self) +{ + LiveChartRegionHandleResult* dup; +#line 11 "../src/region.vala" + dup = g_new0 (LiveChartRegionHandleResult, 1); +#line 11 "../src/region.vala" + memcpy (dup, self, sizeof (LiveChartRegionHandleResult)); +#line 11 "../src/region.vala" + return dup; +#line 81 "region.c" +} + +void +live_chart_region_handle_result_free (LiveChartRegionHandleResult* self) +{ +#line 11 "../src/region.vala" + g_free (self); +#line 89 "region.c" +} + +static GType +live_chart_region_handle_result_get_type_once (void) +{ + GType live_chart_region_handle_result_type_id; + live_chart_region_handle_result_type_id = g_boxed_type_register_static ("LiveChartRegionHandleResult", (GBoxedCopyFunc) live_chart_region_handle_result_dup, (GBoxedFreeFunc) live_chart_region_handle_result_free); + return live_chart_region_handle_result_type_id; +} + +GType +live_chart_region_handle_result_get_type (void) +{ + static volatile gsize live_chart_region_handle_result_type_id__once = 0; + if (g_once_init_enter (&live_chart_region_handle_result_type_id__once)) { + GType live_chart_region_handle_result_type_id; + live_chart_region_handle_result_type_id = live_chart_region_handle_result_get_type_once (); + g_once_init_leave (&live_chart_region_handle_result_type_id__once, live_chart_region_handle_result_type_id); + } + return live_chart_region_handle_result_type_id__once; +} + +static inline gpointer +live_chart_region_get_instance_private (LiveChartRegion* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartRegion_private_offset); +} + +LiveChartRegion* +live_chart_region_construct (GType object_type, + gdouble floor, + gdouble ceil) +{ + LiveChartRegion* self = NULL; +#line 25 "../src/region.vala" + self = (LiveChartRegion*) g_type_create_instance (object_type); +#line 26 "../src/region.vala" + self->priv->floor = floor; +#line 27 "../src/region.vala" + self->priv->ceil = ceil; +#line 25 "../src/region.vala" + return self; +#line 132 "region.c" +} + +LiveChartRegion* +live_chart_region_new (gdouble floor, + gdouble ceil) +{ +#line 25 "../src/region.vala" + return live_chart_region_construct (LIVE_CHART_TYPE_REGION, floor, ceil); +#line 141 "region.c" +} + +LiveChartRegion* +live_chart_region_construct_between (GType object_type, + gdouble above, + gdouble below) +{ + LiveChartRegion* self = NULL; +#line 38 "../src/region.vala" + self = (LiveChartRegion*) live_chart_region_construct (object_type, above, below); +#line 37 "../src/region.vala" + return self; +#line 154 "region.c" +} + +LiveChartRegion* +live_chart_region_new_between (gdouble above, + gdouble below) +{ +#line 37 "../src/region.vala" + return live_chart_region_construct_between (LIVE_CHART_TYPE_REGION, above, below); +#line 163 "region.c" +} + +static gpointer +_live_chart_region_ref0 (gpointer self) +{ +#line 43 "../src/region.vala" + return self ? live_chart_region_ref (self) : NULL; +#line 171 "region.c" +} + +LiveChartRegion* +live_chart_region_with_line_color (LiveChartRegion* self, + GdkRGBA* color) +{ + GdkRGBA _tmp0_; + LiveChartRegion* _tmp1_; + LiveChartRegion* result; +#line 41 "../src/region.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 41 "../src/region.vala" + g_return_val_if_fail (color != NULL, NULL); +#line 42 "../src/region.vala" + _tmp0_ = *color; +#line 42 "../src/region.vala" + live_chart_region_set_line_color (self, &_tmp0_); +#line 43 "../src/region.vala" + _tmp1_ = _live_chart_region_ref0 (self); +#line 43 "../src/region.vala" + result = _tmp1_; +#line 43 "../src/region.vala" + return result; +#line 195 "region.c" +} + +LiveChartRegion* +live_chart_region_with_area_color (LiveChartRegion* self, + GdkRGBA* color) +{ + GdkRGBA _tmp0_; + LiveChartRegion* _tmp1_; + LiveChartRegion* result; +#line 45 "../src/region.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 45 "../src/region.vala" + g_return_val_if_fail (color != NULL, NULL); +#line 46 "../src/region.vala" + _tmp0_ = *color; +#line 46 "../src/region.vala" + live_chart_region_set_area_color (self, &_tmp0_); +#line 47 "../src/region.vala" + _tmp1_ = _live_chart_region_ref0 (self); +#line 47 "../src/region.vala" + result = _tmp1_; +#line 47 "../src/region.vala" + return result; +#line 219 "region.c" +} + +gboolean +live_chart_region_has_at_least_one_point_within (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + gboolean _tmp1_ = FALSE; + LiveChartPoint _tmp2_; + LiveChartTimestampedValue _tmp3_; + gboolean result; +#line 50 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 50 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 50 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 51 "../src/region.vala" + _tmp2_ = *previous; +#line 51 "../src/region.vala" + _tmp3_ = _tmp2_.data; +#line 51 "../src/region.vala" + if (_tmp3_.value > self->priv->floor) { +#line 244 "region.c" + LiveChartPoint _tmp4_; + LiveChartTimestampedValue _tmp5_; +#line 51 "../src/region.vala" + _tmp4_ = *previous; +#line 51 "../src/region.vala" + _tmp5_ = _tmp4_.data; +#line 51 "../src/region.vala" + _tmp1_ = _tmp5_.value <= self->priv->ceil; +#line 253 "region.c" + } else { +#line 51 "../src/region.vala" + _tmp1_ = FALSE; +#line 257 "region.c" + } +#line 51 "../src/region.vala" + if (_tmp1_) { +#line 51 "../src/region.vala" + _tmp0_ = TRUE; +#line 263 "region.c" + } else { + gboolean _tmp6_ = FALSE; + LiveChartPoint _tmp7_; + LiveChartTimestampedValue _tmp8_; +#line 51 "../src/region.vala" + _tmp7_ = *current; +#line 51 "../src/region.vala" + _tmp8_ = _tmp7_.data; +#line 51 "../src/region.vala" + if (_tmp8_.value > self->priv->floor) { +#line 274 "region.c" + LiveChartPoint _tmp9_; + LiveChartTimestampedValue _tmp10_; +#line 51 "../src/region.vala" + _tmp9_ = *current; +#line 51 "../src/region.vala" + _tmp10_ = _tmp9_.data; +#line 51 "../src/region.vala" + _tmp6_ = _tmp10_.value <= self->priv->ceil; +#line 283 "region.c" + } else { +#line 51 "../src/region.vala" + _tmp6_ = FALSE; +#line 287 "region.c" + } +#line 51 "../src/region.vala" + _tmp0_ = _tmp6_; +#line 291 "region.c" + } +#line 51 "../src/region.vala" + result = _tmp0_; +#line 51 "../src/region.vala" + return result; +#line 297 "region.c" +} + +void +live_chart_region_handle (LiveChartRegion* self, + LiveChartIntersections* intersections, + LiveChartPoint* previous, + LiveChartPoint* current, + LiveChartGetIntersection get_intersection, + gpointer get_intersection_target) +{ + LiveChartPoint _tmp0_; + LiveChartPoint _tmp1_; +#line 54 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 54 "../src/region.vala" + g_return_if_fail (intersections != NULL); +#line 54 "../src/region.vala" + g_return_if_fail (previous != NULL); +#line 54 "../src/region.vala" + g_return_if_fail (current != NULL); +#line 55 "../src/region.vala" + _tmp0_ = *previous; +#line 55 "../src/region.vala" + _tmp1_ = *current; +#line 55 "../src/region.vala" + if (live_chart_region_has_at_least_one_point_within (self, &_tmp0_, &_tmp1_)) { +#line 324 "region.c" + LiveChartPoint _tmp2_; + LiveChartPoint _tmp3_; + LiveChartPoint _tmp7_; + LiveChartPoint _tmp8_; + LiveChartPoint _tmp12_; + LiveChartPoint _tmp13_; + LiveChartPoint _tmp18_; + LiveChartPoint _tmp19_; + LiveChartPoint _tmp24_; + LiveChartPoint _tmp25_; +#line 56 "../src/region.vala" + _tmp2_ = *previous; +#line 56 "../src/region.vala" + _tmp3_ = *current; +#line 56 "../src/region.vala" + if (live_chart_region_enter_by_the_bottom (self, &_tmp2_, &_tmp3_)) { +#line 341 "region.c" + gdouble entered_at = 0.0; + LiveChartCoord* coords = NULL; + LiveChartCoord* _tmp4_; +#line 57 "../src/region.vala" + entered_at = self->priv->floor; +#line 58 "../src/region.vala" + _tmp4_ = get_intersection (entered_at, get_intersection_target); +#line 58 "../src/region.vala" + coords = _tmp4_; +#line 59 "../src/region.vala" + if (live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 353 "region.c" + LiveChartPoint _tmp5_; +#line 60 "../src/region.vala" + _tmp5_ = *current; +#line 60 "../src/region.vala" + live_chart_intersections_update (intersections, _tmp5_.x); +#line 359 "region.c" + } else { + LiveChartCoord* _tmp6_; +#line 62 "../src/region.vala" + _tmp6_ = coords; +#line 62 "../src/region.vala" + live_chart_intersections_open (intersections, self, (*_tmp6_).x, entered_at); +#line 366 "region.c" + } +#line 56 "../src/region.vala" + _live_chart_coord_free0 (coords); +#line 370 "region.c" + } +#line 65 "../src/region.vala" + _tmp7_ = *previous; +#line 65 "../src/region.vala" + _tmp8_ = *current; +#line 65 "../src/region.vala" + if (live_chart_region_enter_by_the_top (self, &_tmp7_, &_tmp8_)) { +#line 378 "region.c" + gdouble entered_at = 0.0; + LiveChartCoord* coords = NULL; + LiveChartCoord* _tmp9_; +#line 67 "../src/region.vala" + entered_at = self->priv->ceil; +#line 68 "../src/region.vala" + _tmp9_ = get_intersection (entered_at, get_intersection_target); +#line 68 "../src/region.vala" + coords = _tmp9_; +#line 70 "../src/region.vala" + if (live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 390 "region.c" + LiveChartPoint _tmp10_; +#line 71 "../src/region.vala" + _tmp10_ = *current; +#line 71 "../src/region.vala" + live_chart_intersections_update (intersections, _tmp10_.x); +#line 396 "region.c" + } else { + LiveChartCoord* _tmp11_; +#line 73 "../src/region.vala" + _tmp11_ = coords; +#line 73 "../src/region.vala" + live_chart_intersections_open (intersections, self, (*_tmp11_).x, entered_at); +#line 403 "region.c" + } +#line 65 "../src/region.vala" + _live_chart_coord_free0 (coords); +#line 407 "region.c" + } +#line 77 "../src/region.vala" + _tmp12_ = *previous; +#line 77 "../src/region.vala" + _tmp13_ = *current; +#line 77 "../src/region.vala" + if (live_chart_region_leaving_by_the_top (self, &_tmp12_, &_tmp13_)) { +#line 415 "region.c" + gdouble exited_at = 0.0; + LiveChartCoord* coords = NULL; + LiveChartCoord* _tmp14_; +#line 78 "../src/region.vala" + exited_at = self->priv->ceil; +#line 79 "../src/region.vala" + _tmp14_ = get_intersection (exited_at, get_intersection_target); +#line 79 "../src/region.vala" + coords = _tmp14_; +#line 81 "../src/region.vala" + if (live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 427 "region.c" + LiveChartCoord* _tmp15_; +#line 82 "../src/region.vala" + _tmp15_ = coords; +#line 82 "../src/region.vala" + live_chart_intersections_close (intersections, (*_tmp15_).x, exited_at); +#line 433 "region.c" + } else { + LiveChartPoint _tmp16_; + LiveChartCoord* _tmp17_; +#line 84 "../src/region.vala" + _tmp16_ = *previous; +#line 84 "../src/region.vala" + live_chart_intersections_open_without_entrypoint (intersections, self, _tmp16_.x); +#line 85 "../src/region.vala" + _tmp17_ = coords; +#line 85 "../src/region.vala" + live_chart_intersections_close (intersections, (*_tmp17_).x, exited_at); +#line 445 "region.c" + } +#line 77 "../src/region.vala" + _live_chart_coord_free0 (coords); +#line 449 "region.c" + } +#line 88 "../src/region.vala" + _tmp18_ = *previous; +#line 88 "../src/region.vala" + _tmp19_ = *current; +#line 88 "../src/region.vala" + if (live_chart_region_leaving_by_the_bottom (self, &_tmp18_, &_tmp19_)) { +#line 457 "region.c" + gdouble exited_at = 0.0; + LiveChartCoord* coords = NULL; + LiveChartCoord* _tmp20_; +#line 89 "../src/region.vala" + exited_at = self->priv->floor; +#line 90 "../src/region.vala" + _tmp20_ = get_intersection (exited_at, get_intersection_target); +#line 90 "../src/region.vala" + coords = _tmp20_; +#line 92 "../src/region.vala" + if (live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 469 "region.c" + LiveChartCoord* _tmp21_; +#line 93 "../src/region.vala" + _tmp21_ = coords; +#line 93 "../src/region.vala" + live_chart_intersections_close (intersections, (*_tmp21_).x, exited_at); +#line 475 "region.c" + } else { + LiveChartPoint _tmp22_; + LiveChartCoord* _tmp23_; +#line 95 "../src/region.vala" + _tmp22_ = *previous; +#line 95 "../src/region.vala" + live_chart_intersections_open_without_entrypoint (intersections, self, _tmp22_.x); +#line 96 "../src/region.vala" + _tmp23_ = coords; +#line 96 "../src/region.vala" + live_chart_intersections_close (intersections, (*_tmp23_).x, exited_at); +#line 487 "region.c" + } +#line 88 "../src/region.vala" + _live_chart_coord_free0 (coords); +#line 491 "region.c" + } +#line 99 "../src/region.vala" + _tmp24_ = *previous; +#line 99 "../src/region.vala" + _tmp25_ = *current; +#line 99 "../src/region.vala" + if (live_chart_region_is_within (self, &_tmp24_, &_tmp25_)) { +#line 100 "../src/region.vala" + if (!live_chart_intersections_has_an_opened_intersection (intersections)) { +#line 501 "region.c" + LiveChartPoint _tmp26_; +#line 101 "../src/region.vala" + _tmp26_ = *previous; +#line 101 "../src/region.vala" + live_chart_intersections_open_without_entrypoint (intersections, self, _tmp26_.x); +#line 507 "region.c" + } else { + LiveChartPoint _tmp27_; +#line 103 "../src/region.vala" + _tmp27_ = *current; +#line 103 "../src/region.vala" + live_chart_intersections_update (intersections, _tmp27_.x); +#line 514 "region.c" + } + } + } +} + +static gboolean +live_chart_region_enter_by_the_bottom (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + LiveChartPoint _tmp1_; + LiveChartTimestampedValue _tmp2_; + gboolean result; +#line 109 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 109 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 109 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 110 "../src/region.vala" + _tmp1_ = *previous; +#line 110 "../src/region.vala" + _tmp2_ = _tmp1_.data; +#line 110 "../src/region.vala" + if (_tmp2_.value <= self->priv->floor) { +#line 541 "region.c" + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; +#line 110 "../src/region.vala" + _tmp3_ = *current; +#line 110 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 110 "../src/region.vala" + _tmp0_ = _tmp4_.value > self->priv->floor; +#line 550 "region.c" + } else { +#line 110 "../src/region.vala" + _tmp0_ = FALSE; +#line 554 "region.c" + } +#line 110 "../src/region.vala" + result = _tmp0_; +#line 110 "../src/region.vala" + return result; +#line 560 "region.c" +} + +static gboolean +live_chart_region_enter_by_the_top (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + LiveChartPoint _tmp1_; + LiveChartTimestampedValue _tmp2_; + gboolean result; +#line 113 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 113 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 113 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 114 "../src/region.vala" + _tmp1_ = *previous; +#line 114 "../src/region.vala" + _tmp2_ = _tmp1_.data; +#line 114 "../src/region.vala" + if (_tmp2_.value >= self->priv->ceil) { +#line 584 "region.c" + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; +#line 114 "../src/region.vala" + _tmp3_ = *current; +#line 114 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 114 "../src/region.vala" + _tmp0_ = _tmp4_.value < self->priv->ceil; +#line 593 "region.c" + } else { +#line 114 "../src/region.vala" + _tmp0_ = FALSE; +#line 597 "region.c" + } +#line 114 "../src/region.vala" + result = _tmp0_; +#line 114 "../src/region.vala" + return result; +#line 603 "region.c" +} + +static gboolean +live_chart_region_leaving_by_the_top (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + LiveChartPoint _tmp1_; + LiveChartTimestampedValue _tmp2_; + gboolean result; +#line 117 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 117 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 117 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 118 "../src/region.vala" + _tmp1_ = *previous; +#line 118 "../src/region.vala" + _tmp2_ = _tmp1_.data; +#line 118 "../src/region.vala" + if (_tmp2_.value >= self->priv->floor) { +#line 627 "region.c" + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; +#line 118 "../src/region.vala" + _tmp3_ = *current; +#line 118 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 118 "../src/region.vala" + _tmp0_ = _tmp4_.value > self->priv->ceil; +#line 636 "region.c" + } else { +#line 118 "../src/region.vala" + _tmp0_ = FALSE; +#line 640 "region.c" + } +#line 118 "../src/region.vala" + result = _tmp0_; +#line 118 "../src/region.vala" + return result; +#line 646 "region.c" +} + +static gboolean +live_chart_region_leaving_by_the_bottom (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + LiveChartPoint _tmp1_; + LiveChartTimestampedValue _tmp2_; + gboolean result; +#line 121 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 121 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 121 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 122 "../src/region.vala" + _tmp1_ = *previous; +#line 122 "../src/region.vala" + _tmp2_ = _tmp1_.data; +#line 122 "../src/region.vala" + if (_tmp2_.value >= self->priv->floor) { +#line 670 "region.c" + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; +#line 122 "../src/region.vala" + _tmp3_ = *current; +#line 122 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 122 "../src/region.vala" + _tmp0_ = _tmp4_.value < self->priv->floor; +#line 679 "region.c" + } else { +#line 122 "../src/region.vala" + _tmp0_ = FALSE; +#line 683 "region.c" + } +#line 122 "../src/region.vala" + result = _tmp0_; +#line 122 "../src/region.vala" + return result; +#line 689 "region.c" +} + +static gboolean +live_chart_region_is_within (LiveChartRegion* self, + LiveChartPoint* previous, + LiveChartPoint* current) +{ + gboolean _tmp0_ = FALSE; + gboolean _tmp1_ = FALSE; + gboolean _tmp2_ = FALSE; + LiveChartPoint _tmp3_; + LiveChartTimestampedValue _tmp4_; + gboolean result; +#line 125 "../src/region.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 125 "../src/region.vala" + g_return_val_if_fail (previous != NULL, FALSE); +#line 125 "../src/region.vala" + g_return_val_if_fail (current != NULL, FALSE); +#line 126 "../src/region.vala" + _tmp3_ = *previous; +#line 126 "../src/region.vala" + _tmp4_ = _tmp3_.data; +#line 126 "../src/region.vala" + if (_tmp4_.value >= self->priv->floor) { +#line 715 "region.c" + LiveChartPoint _tmp5_; + LiveChartTimestampedValue _tmp6_; +#line 126 "../src/region.vala" + _tmp5_ = *current; +#line 126 "../src/region.vala" + _tmp6_ = _tmp5_.data; +#line 126 "../src/region.vala" + _tmp2_ = _tmp6_.value > self->priv->floor; +#line 724 "region.c" + } else { +#line 126 "../src/region.vala" + _tmp2_ = FALSE; +#line 728 "region.c" + } +#line 126 "../src/region.vala" + if (_tmp2_) { +#line 732 "region.c" + LiveChartPoint _tmp7_; + LiveChartTimestampedValue _tmp8_; +#line 126 "../src/region.vala" + _tmp7_ = *previous; +#line 126 "../src/region.vala" + _tmp8_ = _tmp7_.data; +#line 126 "../src/region.vala" + _tmp1_ = _tmp8_.value < self->priv->ceil; +#line 741 "region.c" + } else { +#line 126 "../src/region.vala" + _tmp1_ = FALSE; +#line 745 "region.c" + } +#line 126 "../src/region.vala" + if (_tmp1_) { +#line 749 "region.c" + LiveChartPoint _tmp9_; + LiveChartTimestampedValue _tmp10_; +#line 126 "../src/region.vala" + _tmp9_ = *current; +#line 126 "../src/region.vala" + _tmp10_ = _tmp9_.data; +#line 126 "../src/region.vala" + _tmp0_ = _tmp10_.value < self->priv->ceil; +#line 758 "region.c" + } else { +#line 126 "../src/region.vala" + _tmp0_ = FALSE; +#line 762 "region.c" + } +#line 126 "../src/region.vala" + result = _tmp0_; +#line 126 "../src/region.vala" + return result; +#line 768 "region.c" +} + +void +live_chart_region_get_line_color (LiveChartRegion* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 22 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/region.vala" + _tmp0_ = self->priv->_line_color; +#line 22 "../src/region.vala" + *result = _tmp0_; +#line 22 "../src/region.vala" + return; +#line 784 "region.c" +} + +void +live_chart_region_set_line_color (LiveChartRegion* self, + GdkRGBA * value) +{ + GdkRGBA _tmp0_; +#line 22 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/region.vala" + _tmp0_ = *value; +#line 22 "../src/region.vala" + self->priv->_line_color = _tmp0_; +#line 798 "region.c" +} + +void +live_chart_region_get_area_color (LiveChartRegion* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 23 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 23 "../src/region.vala" + _tmp0_ = self->priv->_area_color; +#line 23 "../src/region.vala" + *result = _tmp0_; +#line 23 "../src/region.vala" + return; +#line 814 "region.c" +} + +void +live_chart_region_set_area_color (LiveChartRegion* self, + GdkRGBA * value) +{ + GdkRGBA _tmp0_; +#line 23 "../src/region.vala" + g_return_if_fail (self != NULL); +#line 23 "../src/region.vala" + _tmp0_ = *value; +#line 23 "../src/region.vala" + self->priv->_area_color = _tmp0_; +#line 828 "region.c" +} + +static void +live_chart_value_region_init (GValue* value) +{ +#line 18 "../src/region.vala" + value->data[0].v_pointer = NULL; +#line 836 "region.c" +} + +static void +live_chart_value_region_free_value (GValue* value) +{ +#line 18 "../src/region.vala" + if (value->data[0].v_pointer) { +#line 18 "../src/region.vala" + live_chart_region_unref (value->data[0].v_pointer); +#line 846 "region.c" + } +} + +static void +live_chart_value_region_copy_value (const GValue* src_value, + GValue* dest_value) +{ +#line 18 "../src/region.vala" + if (src_value->data[0].v_pointer) { +#line 18 "../src/region.vala" + dest_value->data[0].v_pointer = live_chart_region_ref (src_value->data[0].v_pointer); +#line 858 "region.c" + } else { +#line 18 "../src/region.vala" + dest_value->data[0].v_pointer = NULL; +#line 862 "region.c" + } +} + +static gpointer +live_chart_value_region_peek_pointer (const GValue* value) +{ +#line 18 "../src/region.vala" + return value->data[0].v_pointer; +#line 871 "region.c" +} + +static gchar* +live_chart_value_region_collect_value (GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ +#line 18 "../src/region.vala" + if (collect_values[0].v_pointer) { +#line 882 "region.c" + LiveChartRegion * object; + object = collect_values[0].v_pointer; +#line 18 "../src/region.vala" + if (object->parent_instance.g_class == NULL) { +#line 18 "../src/region.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 889 "region.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 18 "../src/region.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 893 "region.c" + } +#line 18 "../src/region.vala" + value->data[0].v_pointer = live_chart_region_ref (object); +#line 897 "region.c" + } else { +#line 18 "../src/region.vala" + value->data[0].v_pointer = NULL; +#line 901 "region.c" + } +#line 18 "../src/region.vala" + return NULL; +#line 905 "region.c" +} + +static gchar* +live_chart_value_region_lcopy_value (const GValue* value, + guint n_collect_values, + GTypeCValue* collect_values, + guint collect_flags) +{ + LiveChartRegion ** object_p; + object_p = collect_values[0].v_pointer; +#line 18 "../src/region.vala" + if (!object_p) { +#line 18 "../src/region.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 920 "region.c" + } +#line 18 "../src/region.vala" + if (!value->data[0].v_pointer) { +#line 18 "../src/region.vala" + *object_p = NULL; +#line 926 "region.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 18 "../src/region.vala" + *object_p = value->data[0].v_pointer; +#line 930 "region.c" + } else { +#line 18 "../src/region.vala" + *object_p = live_chart_region_ref (value->data[0].v_pointer); +#line 934 "region.c" + } +#line 18 "../src/region.vala" + return NULL; +#line 938 "region.c" +} + +GParamSpec* +live_chart_param_spec_region (const gchar* name, + const gchar* nick, + const gchar* blurb, + GType object_type, + GParamFlags flags) +{ + LiveChartParamSpecRegion* spec; +#line 18 "../src/region.vala" + g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_REGION), NULL); +#line 18 "../src/region.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 18 "../src/region.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 18 "../src/region.vala" + return G_PARAM_SPEC (spec); +#line 957 "region.c" +} + +gpointer +live_chart_value_get_region (const GValue* value) +{ +#line 18 "../src/region.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_REGION), NULL); +#line 18 "../src/region.vala" + return value->data[0].v_pointer; +#line 967 "region.c" +} + +void +live_chart_value_set_region (GValue* value, + gpointer v_object) +{ + LiveChartRegion * old; +#line 18 "../src/region.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_REGION)); +#line 18 "../src/region.vala" + old = value->data[0].v_pointer; +#line 18 "../src/region.vala" + if (v_object) { +#line 18 "../src/region.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_REGION)); +#line 18 "../src/region.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 18 "../src/region.vala" + value->data[0].v_pointer = v_object; +#line 18 "../src/region.vala" + live_chart_region_ref (value->data[0].v_pointer); +#line 989 "region.c" + } else { +#line 18 "../src/region.vala" + value->data[0].v_pointer = NULL; +#line 993 "region.c" + } +#line 18 "../src/region.vala" + if (old) { +#line 18 "../src/region.vala" + live_chart_region_unref (old); +#line 999 "region.c" + } +} + +void +live_chart_value_take_region (GValue* value, + gpointer v_object) +{ + LiveChartRegion * old; +#line 18 "../src/region.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_REGION)); +#line 18 "../src/region.vala" + old = value->data[0].v_pointer; +#line 18 "../src/region.vala" + if (v_object) { +#line 18 "../src/region.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_REGION)); +#line 18 "../src/region.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 18 "../src/region.vala" + value->data[0].v_pointer = v_object; +#line 1020 "region.c" + } else { +#line 18 "../src/region.vala" + value->data[0].v_pointer = NULL; +#line 1024 "region.c" + } +#line 18 "../src/region.vala" + if (old) { +#line 18 "../src/region.vala" + live_chart_region_unref (old); +#line 1030 "region.c" + } +} + +static void +live_chart_region_class_init (LiveChartRegionClass * klass, + gpointer klass_data) +{ +#line 18 "../src/region.vala" + live_chart_region_parent_class = g_type_class_peek_parent (klass); +#line 18 "../src/region.vala" + ((LiveChartRegionClass *) klass)->finalize = live_chart_region_finalize; +#line 18 "../src/region.vala" + g_type_class_adjust_private_offset (klass, &LiveChartRegion_private_offset); +#line 1044 "region.c" +} + +static void +live_chart_region_instance_init (LiveChartRegion * self, + gpointer klass) +{ + GdkRGBA _tmp0_ = {0}; + GdkRGBA _tmp1_ = {0}; +#line 18 "../src/region.vala" + self->priv = live_chart_region_get_instance_private (self); +#line 22 "../src/region.vala" + memset (&_tmp0_, 0, sizeof (GdkRGBA)); +#line 22 "../src/region.vala" + _tmp0_.red = (gdouble) 1; +#line 22 "../src/region.vala" + _tmp0_.green = (gdouble) 1; +#line 22 "../src/region.vala" + _tmp0_.blue = (gdouble) 1; +#line 22 "../src/region.vala" + _tmp0_.alpha = (gdouble) 1; +#line 22 "../src/region.vala" + self->priv->_line_color = _tmp0_; +#line 23 "../src/region.vala" + memset (&_tmp1_, 0, sizeof (GdkRGBA)); +#line 23 "../src/region.vala" + _tmp1_.red = (gdouble) 1; +#line 23 "../src/region.vala" + _tmp1_.green = (gdouble) 1; +#line 23 "../src/region.vala" + _tmp1_.blue = (gdouble) 1; +#line 23 "../src/region.vala" + _tmp1_.alpha = 0.5; +#line 23 "../src/region.vala" + self->priv->_area_color = _tmp1_; +#line 18 "../src/region.vala" + self->ref_count = 1; +#line 1081 "region.c" +} + +static void +live_chart_region_finalize (LiveChartRegion * obj) +{ + LiveChartRegion * self; +#line 18 "../src/region.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_REGION, LiveChartRegion); +#line 18 "../src/region.vala" + g_signal_handlers_destroy (self); +#line 1092 "region.c" +} + +static GType +live_chart_region_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { live_chart_value_region_init, live_chart_value_region_free_value, live_chart_value_region_copy_value, live_chart_value_region_peek_pointer, "p", live_chart_value_region_collect_value, "p", live_chart_value_region_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (LiveChartRegionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_region_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartRegion), 0, (GInstanceInitFunc) live_chart_region_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType live_chart_region_type_id; + live_chart_region_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartRegion", &g_define_type_info, &g_define_type_fundamental_info, 0); + LiveChartRegion_private_offset = g_type_add_instance_private (live_chart_region_type_id, sizeof (LiveChartRegionPrivate)); + return live_chart_region_type_id; +} + +GType +live_chart_region_get_type (void) +{ + static volatile gsize live_chart_region_type_id__once = 0; + if (g_once_init_enter (&live_chart_region_type_id__once)) { + GType live_chart_region_type_id; + live_chart_region_type_id = live_chart_region_get_type_once (); + g_once_init_leave (&live_chart_region_type_id__once, live_chart_region_type_id); + } + return live_chart_region_type_id__once; +} + +gpointer +live_chart_region_ref (gpointer instance) +{ + LiveChartRegion * self; + self = instance; +#line 18 "../src/region.vala" + g_atomic_int_inc (&self->ref_count); +#line 18 "../src/region.vala" + return instance; +#line 1128 "region.c" +} + +void +live_chart_region_unref (gpointer instance) +{ + LiveChartRegion * self; + self = instance; +#line 18 "../src/region.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 18 "../src/region.vala" + LIVE_CHART_REGION_GET_CLASS (self)->finalize (self); +#line 18 "../src/region.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 1142 "region.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/serie.c b/iPDC/lib/liblivechart.so.p/serie.c new file mode 100644 index 0000000..95d67d8 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/serie.c @@ -0,0 +1,679 @@ +/* serie.c generated by valac 0.56.0, the Vala compiler + * generated from serie.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_SERIE_0_PROPERTY, + LIVE_CHART_SERIE_NAME_PROPERTY, + LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY, + LIVE_CHART_SERIE_LINE_PROPERTY, + LIVE_CHART_SERIE_VISIBLE_PROPERTY, + LIVE_CHART_SERIE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_serie_properties[LIVE_CHART_SERIE_NUM_PROPERTIES]; +#define _g_free0(var) (var = (g_free (var), NULL)) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +enum { + LIVE_CHART_SERIE_VALUE_ADDED_SIGNAL, + LIVE_CHART_SERIE_NUM_SIGNALS +}; +static guint live_chart_serie_signals[LIVE_CHART_SERIE_NUM_SIGNALS] = {0}; + +struct _LiveChartSeriePrivate { + gchar* _name; + gboolean _visible; + LiveChartSerieRenderer* renderer; +}; + +static gint LiveChartSerie_private_offset; +static gpointer live_chart_serie_parent_class = NULL; +static LiveChartColorableIface * live_chart_serie_live_chart_colorable_parent_iface = NULL; +static LiveChartDrawableIface * live_chart_serie_live_chart_drawable_parent_iface = NULL; + +static void live_chart_serie_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_serie_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_serie_finalize (GObject * obj); +static GType live_chart_serie_get_type_once (void); +static void _vala_live_chart_serie_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_serie_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_serie_get_instance_private (LiveChartSerie* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSerie_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 38 "../src/serie.vala" + return self ? g_object_ref (self) : NULL; +#line 73 "serie.c" +} + +LiveChartSerie* +live_chart_serie_construct (GType object_type, + const gchar* name, + LiveChartSerieRenderer* renderer) +{ + LiveChartSerie * self = NULL; + LiveChartSerieRenderer* _tmp0_; +#line 36 "../src/serie.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 36 "../src/serie.vala" + g_return_val_if_fail (renderer != NULL, NULL); +#line 36 "../src/serie.vala" + self = (LiveChartSerie*) g_object_new (object_type, NULL); +#line 37 "../src/serie.vala" + live_chart_serie_set_name (self, name); +#line 38 "../src/serie.vala" + _tmp0_ = _g_object_ref0 (renderer); +#line 38 "../src/serie.vala" + _g_object_unref0 (self->priv->renderer); +#line 38 "../src/serie.vala" + self->priv->renderer = _tmp0_; +#line 36 "../src/serie.vala" + return self; +#line 99 "serie.c" +} + +LiveChartSerie* +live_chart_serie_new (const gchar* name, + LiveChartSerieRenderer* renderer) +{ +#line 36 "../src/serie.vala" + return live_chart_serie_construct (LIVE_CHART_TYPE_SERIE, name, renderer); +#line 108 "serie.c" +} + +static void +live_chart_serie_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartSerie * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 41 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 41 "../src/serie.vala" + g_return_if_fail (ctx != NULL); +#line 41 "../src/serie.vala" + g_return_if_fail (config != NULL); +#line 42 "../src/serie.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 42 "../src/serie.vala" + _tmp1_ = _tmp0_; +#line 42 "../src/serie.vala" + if (_tmp1_) { +#line 131 "serie.c" + LiveChartSerieRenderer* _tmp2_; +#line 43 "../src/serie.vala" + _tmp2_ = self->priv->renderer; +#line 43 "../src/serie.vala" + live_chart_serie_renderer_draw (_tmp2_, ctx, config); +#line 137 "serie.c" + } +} + +void +live_chart_serie_add (LiveChartSerie* self, + gdouble value) +{ + LiveChartSerieRenderer* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* _tmp2_; + LiveChartTimestampedValue _tmp3_ = {0}; +#line 47 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 48 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 48 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_values (_tmp0_); +#line 48 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 48 "../src/serie.vala" + _tmp3_.timestamp = (gdouble) (g_get_real_time () / 1000); +#line 48 "../src/serie.vala" + _tmp3_.value = value; +#line 48 "../src/serie.vala" + live_chart_values_add (_tmp2_, &_tmp3_); +#line 48 "../src/serie.vala" + _g_object_unref0 (_tmp2_); +#line 49 "../src/serie.vala" + g_signal_emit (self, live_chart_serie_signals[LIVE_CHART_SERIE_VALUE_ADDED_SIGNAL], 0, value); +#line 167 "serie.c" +} + +void +live_chart_serie_add_with_timestamp (LiveChartSerie* self, + gdouble value, + gint64 timestamp) +{ + LiveChartSerieRenderer* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* _tmp2_; + LiveChartTimestampedValue _tmp3_ = {0}; +#line 52 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 53 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 53 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_values (_tmp0_); +#line 53 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 53 "../src/serie.vala" + _tmp3_.timestamp = (gdouble) timestamp; +#line 53 "../src/serie.vala" + _tmp3_.value = value; +#line 53 "../src/serie.vala" + live_chart_values_add (_tmp2_, &_tmp3_); +#line 53 "../src/serie.vala" + _g_object_unref0 (_tmp2_); +#line 54 "../src/serie.vala" + g_signal_emit (self, live_chart_serie_signals[LIVE_CHART_SERIE_VALUE_ADDED_SIGNAL], 0, value); +#line 197 "serie.c" +} + +void +live_chart_serie_set_main_color (LiveChartSerie* self, + GdkRGBA* color) +{ + GdkRGBA _tmp0_; +#line 58 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 58 "../src/serie.vala" + g_return_if_fail (color != NULL); +#line 59 "../src/serie.vala" + _tmp0_ = *color; +#line 59 "../src/serie.vala" + live_chart_colorable_set_main_color ((LiveChartColorable*) self, &_tmp0_); +#line 213 "serie.c" +} + +void +live_chart_serie_get_main_color (LiveChartSerie* self, + GdkRGBA* result) +{ + GdkRGBA _tmp0_ = {0}; + GdkRGBA _tmp1_; +#line 63 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 64 "../src/serie.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) self, &_tmp0_); +#line 64 "../src/serie.vala" + _tmp1_ = _tmp0_; +#line 64 "../src/serie.vala" + *result = _tmp1_; +#line 64 "../src/serie.vala" + return; +#line 232 "serie.c" +} + +LiveChartValues* +live_chart_serie_get_values (LiveChartSerie* self) +{ + LiveChartSerieRenderer* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* result; +#line 67 "../src/serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 68 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 68 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_values (_tmp0_); +#line 68 "../src/serie.vala" + result = _tmp1_; +#line 68 "../src/serie.vala" + return result; +#line 251 "serie.c" +} + +void +live_chart_serie_clear (LiveChartSerie* self) +{ + LiveChartSerieRenderer* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* _tmp2_; +#line 71 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 72 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 72 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_values (_tmp0_); +#line 72 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 72 "../src/serie.vala" + gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp2_); +#line 72 "../src/serie.vala" + _g_object_unref0 (_tmp2_); +#line 272 "serie.c" +} + +static void +live_chart_serie_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartSerie * self; + LiveChartSerieRenderer* _tmp0_; + LiveChartBoundingBox _tmp1_ = {0}; +#line 75 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 76 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 76 "../src/serie.vala" + live_chart_drawable_get_bounding_box ((LiveChartDrawable*) _tmp0_, &_tmp1_); +#line 76 "../src/serie.vala" + *result = _tmp1_; +#line 76 "../src/serie.vala" + return; +#line 292 "serie.c" +} + +const gchar* +live_chart_serie_get_name (LiveChartSerie* self) +{ + const gchar* result; + const gchar* _tmp0_; +#line 7 "../src/serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 7 "../src/serie.vala" + _tmp0_ = self->priv->_name; +#line 7 "../src/serie.vala" + result = _tmp0_; +#line 7 "../src/serie.vala" + return result; +#line 308 "serie.c" +} + +void +live_chart_serie_set_name (LiveChartSerie* self, + const gchar* value) +{ + gchar* old_value; +#line 7 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/serie.vala" + old_value = live_chart_serie_get_name (self); +#line 7 "../src/serie.vala" + if (g_strcmp0 (value, old_value) != 0) { +#line 322 "serie.c" + gchar* _tmp0_; +#line 7 "../src/serie.vala" + _tmp0_ = g_strdup (value); +#line 7 "../src/serie.vala" + _g_free0 (self->priv->_name); +#line 7 "../src/serie.vala" + self->priv->_name = _tmp0_; +#line 7 "../src/serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_properties[LIVE_CHART_SERIE_NAME_PROPERTY]); +#line 332 "serie.c" + } +} + +static void +live_chart_serie_real_get_main_color (LiveChartColorable* base, + GdkRGBA * result) +{ + LiveChartSerie* self; + LiveChartSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_ = {0}; + GdkRGBA _tmp4_; +#line 11 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 12 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 12 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_line (_tmp0_); +#line 12 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 12 "../src/serie.vala" + live_chart_path_get_color (_tmp2_, &_tmp3_); +#line 12 "../src/serie.vala" + _tmp4_ = _tmp3_; +#line 12 "../src/serie.vala" + *result = _tmp4_; +#line 12 "../src/serie.vala" + return; +#line 362 "serie.c" +} + +static void +live_chart_serie_real_set_main_color (LiveChartColorable* base, + GdkRGBA * value) +{ + LiveChartSerie* self; + LiveChartSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_; +#line 15 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 16 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 16 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_line (_tmp0_); +#line 16 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 16 "../src/serie.vala" + _tmp3_ = *value; +#line 16 "../src/serie.vala" + live_chart_path_set_color (_tmp2_, &_tmp3_); +#line 15 "../src/serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_properties[LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY]); +#line 388 "serie.c" +} + +LiveChartPath* +live_chart_serie_get_line (LiveChartSerie* self) +{ + LiveChartPath* result; + LiveChartSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; +#line 21 "../src/serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 22 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 22 "../src/serie.vala" + _tmp1_ = live_chart_serie_renderer_get_line (_tmp0_); +#line 22 "../src/serie.vala" + _tmp2_ = _tmp1_; +#line 22 "../src/serie.vala" + result = _tmp2_; +#line 22 "../src/serie.vala" + return result; +#line 410 "serie.c" +} + +void +live_chart_serie_set_line (LiveChartSerie* self, + LiveChartPath* value) +{ + LiveChartSerieRenderer* _tmp0_; +#line 25 "../src/serie.vala" + g_return_if_fail (self != NULL); +#line 26 "../src/serie.vala" + _tmp0_ = self->priv->renderer; +#line 26 "../src/serie.vala" + live_chart_serie_renderer_set_line (_tmp0_, value); +#line 25 "../src/serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_properties[LIVE_CHART_SERIE_LINE_PROPERTY]); +#line 426 "serie.c" +} + +static gboolean +live_chart_serie_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartSerie* self; +#line 30 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 30 "../src/serie.vala" + result = self->priv->_visible; +#line 30 "../src/serie.vala" + return result; +#line 440 "serie.c" +} + +static void +live_chart_serie_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartSerie* self; + gboolean old_value; +#line 30 "../src/serie.vala" + self = (LiveChartSerie*) base; +#line 30 "../src/serie.vala" + old_value = live_chart_serie_real_get_visible (base); +#line 30 "../src/serie.vala" + if (old_value != value) { +#line 30 "../src/serie.vala" + self->priv->_visible = value; +#line 30 "../src/serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_properties[LIVE_CHART_SERIE_VISIBLE_PROPERTY]); +#line 459 "serie.c" + } +} + +static void +live_chart_serie_class_init (LiveChartSerieClass * klass, + gpointer klass_data) +{ +#line 4 "../src/serie.vala" + live_chart_serie_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/serie.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSerie_private_offset); +#line 4 "../src/serie.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_serie_get_property; +#line 4 "../src/serie.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_serie_set_property; +#line 4 "../src/serie.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_serie_finalize; +#line 4 "../src/serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_NAME_PROPERTY, live_chart_serie_properties[LIVE_CHART_SERIE_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY, live_chart_serie_properties[LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_LINE_PROPERTY, live_chart_serie_properties[LIVE_CHART_SERIE_LINE_PROPERTY] = g_param_spec_object ("line", "line", "line", LIVE_CHART_TYPE_PATH, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_VISIBLE_PROPERTY, live_chart_serie_properties[LIVE_CHART_SERIE_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 4 "../src/serie.vala" + live_chart_serie_signals[LIVE_CHART_SERIE_VALUE_ADDED_SIGNAL] = g_signal_new ("value-added", LIVE_CHART_TYPE_SERIE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); +#line 487 "serie.c" +} + +static void +live_chart_serie_live_chart_colorable_interface_init (LiveChartColorableIface * iface, + gpointer iface_data) +{ +#line 4 "../src/serie.vala" + live_chart_serie_live_chart_colorable_parent_iface = g_type_interface_peek_parent (iface); +#line 4 "../src/serie.vala" + iface->get_main_color = live_chart_serie_real_get_main_color; +#line 4 "../src/serie.vala" + iface->set_main_color = live_chart_serie_real_set_main_color; +#line 500 "serie.c" +} + +static void +live_chart_serie_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 4 "../src/serie.vala" + live_chart_serie_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 4 "../src/serie.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_serie_real_draw; +#line 4 "../src/serie.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_serie_real_get_bounding_box; +#line 4 "../src/serie.vala" + iface->get_visible = live_chart_serie_real_get_visible; +#line 4 "../src/serie.vala" + iface->set_visible = live_chart_serie_real_set_visible; +#line 517 "serie.c" +} + +static void +live_chart_serie_instance_init (LiveChartSerie * self, + gpointer klass) +{ +#line 4 "../src/serie.vala" + self->priv = live_chart_serie_get_instance_private (self); +#line 30 "../src/serie.vala" + self->priv->_visible = TRUE; +#line 528 "serie.c" +} + +static void +live_chart_serie_finalize (GObject * obj) +{ + LiveChartSerie * self; +#line 4 "../src/serie.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SERIE, LiveChartSerie); +#line 6 "../src/serie.vala" + _g_free0 (self->priv->_name); +#line 34 "../src/serie.vala" + _g_object_unref0 (self->priv->renderer); +#line 4 "../src/serie.vala" + G_OBJECT_CLASS (live_chart_serie_parent_class)->finalize (obj); +#line 543 "serie.c" +} + +static GType +live_chart_serie_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSerieClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_serie_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSerie), 0, (GInstanceInitFunc) live_chart_serie_instance_init, NULL }; + static const GInterfaceInfo live_chart_colorable_info = { (GInterfaceInitFunc) live_chart_serie_live_chart_colorable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_serie_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_serie_type_id; + live_chart_serie_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartSerie", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_serie_type_id, LIVE_CHART_TYPE_COLORABLE, &live_chart_colorable_info); + g_type_add_interface_static (live_chart_serie_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartSerie_private_offset = g_type_add_instance_private (live_chart_serie_type_id, sizeof (LiveChartSeriePrivate)); + return live_chart_serie_type_id; +} + +GType +live_chart_serie_get_type (void) +{ + static volatile gsize live_chart_serie_type_id__once = 0; + if (g_once_init_enter (&live_chart_serie_type_id__once)) { + GType live_chart_serie_type_id; + live_chart_serie_type_id = live_chart_serie_get_type_once (); + g_once_init_leave (&live_chart_serie_type_id__once, live_chart_serie_type_id); + } + return live_chart_serie_type_id__once; +} + +static void +_vala_live_chart_serie_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartSerie * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SERIE, LiveChartSerie); +#line 4 "../src/serie.vala" + switch (property_id) { +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_NAME_PROPERTY: +#line 4 "../src/serie.vala" + g_value_set_string (value, live_chart_serie_get_name (self)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY: +#line 590 "serie.c" + { + GdkRGBA boxed; +#line 4 "../src/serie.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) self, &boxed); +#line 4 "../src/serie.vala" + g_value_set_boxed (value, &boxed); +#line 597 "serie.c" + } +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_LINE_PROPERTY: +#line 4 "../src/serie.vala" + g_value_set_object (value, live_chart_serie_get_line (self)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_VISIBLE_PROPERTY: +#line 4 "../src/serie.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 4 "../src/serie.vala" + break; +#line 613 "serie.c" + default: +#line 4 "../src/serie.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/serie.vala" + break; +#line 619 "serie.c" + } +} + +static void +_vala_live_chart_serie_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartSerie * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SERIE, LiveChartSerie); +#line 4 "../src/serie.vala" + switch (property_id) { +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_NAME_PROPERTY: +#line 4 "../src/serie.vala" + live_chart_serie_set_name (self, g_value_get_string (value)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_MAIN_COLOR_PROPERTY: +#line 4 "../src/serie.vala" + live_chart_colorable_set_main_color ((LiveChartColorable*) self, g_value_get_boxed (value)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_LINE_PROPERTY: +#line 4 "../src/serie.vala" + live_chart_serie_set_line (self, g_value_get_object (value)); +#line 4 "../src/serie.vala" + break; +#line 4 "../src/serie.vala" + case LIVE_CHART_SERIE_VISIBLE_PROPERTY: +#line 4 "../src/serie.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 4 "../src/serie.vala" + break; +#line 657 "serie.c" + default: +#line 4 "../src/serie.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/serie.vala" + break; +#line 663 "serie.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/serie_renderer.c b/iPDC/lib/liblivechart.so.p/serie_renderer.c new file mode 100644 index 0000000..a3799ae --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/serie_renderer.c @@ -0,0 +1,549 @@ +/* serie_renderer.c generated by valac 0.56.0, the Vala compiler + * generated from serie_renderer.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#define LIVE_CHART_SERIE_RENDERER_VIRTUAL_LEFT_PADDING -200 + +enum { + LIVE_CHART_SERIE_RENDERER_0_PROPERTY, + LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY, + LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY, + LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY, + LIVE_CHART_SERIE_RENDERER_NUM_PROPERTIES +}; +static GParamSpec* live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartSerieRendererPrivate { + gboolean _visible; + LiveChartPath* _line; +}; + +static gint LiveChartSerieRenderer_private_offset; +static gpointer live_chart_serie_renderer_parent_class = NULL; +static LiveChartDrawableIface * live_chart_serie_renderer_live_chart_drawable_parent_iface = NULL; + +static void live_chart_serie_renderer_real_draw (LiveChartSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_serie_renderer_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_serie_renderer_finalize (GObject * obj); +static GType live_chart_serie_renderer_get_type_once (void); +static void _vala_live_chart_serie_renderer_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_serie_renderer_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_serie_renderer_get_instance_private (LiveChartSerieRenderer* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSerieRenderer_private_offset); +} + +LiveChartSerieRenderer* +live_chart_serie_renderer_construct (GType object_type) +{ + LiveChartSerieRenderer * self = NULL; + GdkRGBA _tmp0_ = {0}; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; +#line 23 "../src/serie_renderer.vala" + self = (LiveChartSerieRenderer*) g_object_new (object_type, NULL); +#line 24 "../src/serie_renderer.vala" + _tmp0_.red = 1.0; +#line 24 "../src/serie_renderer.vala" + _tmp0_.green = 1.0; +#line 24 "../src/serie_renderer.vala" + _tmp0_.blue = 1.0; +#line 24 "../src/serie_renderer.vala" + _tmp0_.alpha = 1.0; +#line 24 "../src/serie_renderer.vala" + _tmp1_ = live_chart_path_new ((gdouble) 1, &_tmp0_, TRUE, NULL); +#line 24 "../src/serie_renderer.vala" + _tmp2_ = _tmp1_; +#line 24 "../src/serie_renderer.vala" + live_chart_serie_renderer_set_line (self, _tmp2_); +#line 24 "../src/serie_renderer.vala" + _g_object_unref0 (_tmp2_); +#line 23 "../src/serie_renderer.vala" + return self; +#line 88 "serie_renderer.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 36 "../src/serie_renderer.vala" + return self ? g_object_ref (self) : NULL; +#line 96 "serie_renderer.c" +} + +LiveChartValues* +live_chart_serie_renderer_get_values (LiveChartSerieRenderer* self) +{ + LiveChartValues* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* result; +#line 35 "../src/serie_renderer.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 36 "../src/serie_renderer.vala" + _tmp0_ = self->values; +#line 36 "../src/serie_renderer.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 36 "../src/serie_renderer.vala" + result = _tmp1_; +#line 36 "../src/serie_renderer.vala" + return result; +#line 115 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_real_draw (LiveChartSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 39 "../src/serie_renderer.vala" + g_critical ("Type `%s' does not implement abstract method `live_chart_serie_renderer_draw'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 39 "../src/serie_renderer.vala" + return; +#line 127 "serie_renderer.c" +} + +void +live_chart_serie_renderer_draw (LiveChartSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartSerieRendererClass* _klass_; +#line 39 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 39 "../src/serie_renderer.vala" + _klass_ = LIVE_CHART_SERIE_RENDERER_GET_CLASS (self); +#line 39 "../src/serie_renderer.vala" + if (_klass_->draw) { +#line 39 "../src/serie_renderer.vala" + _klass_->draw (self, ctx, config); +#line 144 "serie_renderer.c" + } +} + +static void +live_chart_serie_renderer_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartSerieRenderer * self; + LiveChartBoundingBox _tmp0_; +#line 41 "../src/serie_renderer.vala" + self = (LiveChartSerieRenderer*) base; +#line 42 "../src/serie_renderer.vala" + _tmp0_ = self->bounding_box; +#line 42 "../src/serie_renderer.vala" + *result = _tmp0_; +#line 42 "../src/serie_renderer.vala" + return; +#line 162 "serie_renderer.c" +} + +void +live_chart_serie_renderer_debug (LiveChartSerieRenderer* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 45 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/serie_renderer.vala" + g_return_if_fail (ctx != NULL); +#line 46 "../src/serie_renderer.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 46 "../src/serie_renderer.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 46 "../src/serie_renderer.vala" + debug = _tmp1_; +#line 47 "../src/serie_renderer.vala" + _tmp2_ = debug; +#line 47 "../src/serie_renderer.vala" + if (_tmp2_ != NULL) { +#line 187 "serie_renderer.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 48 "../src/serie_renderer.vala" + _tmp3_ = self->bounding_box; +#line 48 "../src/serie_renderer.vala" + _tmp4_ = self->bounding_box; +#line 48 "../src/serie_renderer.vala" + _tmp5_ = self->bounding_box; +#line 48 "../src/serie_renderer.vala" + _tmp6_ = self->bounding_box; +#line 48 "../src/serie_renderer.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 49 "../src/serie_renderer.vala" + cairo_stroke (ctx); +#line 204 "serie_renderer.c" + } +#line 45 "../src/serie_renderer.vala" + _g_free0 (debug); +#line 208 "serie_renderer.c" +} + +gboolean +live_chart_serie_renderer_is_out_of_area (LiveChartSerieRenderer* self, + LiveChartPoint* point) +{ + LiveChartPoint _tmp0_; + gboolean result; +#line 53 "../src/serie_renderer.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 53 "../src/serie_renderer.vala" + g_return_val_if_fail (point != NULL, FALSE); +#line 54 "../src/serie_renderer.vala" + _tmp0_ = *point; +#line 54 "../src/serie_renderer.vala" + result = _tmp0_.x < ((gdouble) LIVE_CHART_SERIE_RENDERER_VIRTUAL_LEFT_PADDING); +#line 54 "../src/serie_renderer.vala" + return result; +#line 227 "serie_renderer.c" +} + +static gboolean +live_chart_serie_renderer_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartSerieRenderer* self; +#line 9 "../src/serie_renderer.vala" + self = (LiveChartSerieRenderer*) base; +#line 9 "../src/serie_renderer.vala" + result = self->priv->_visible; +#line 9 "../src/serie_renderer.vala" + return result; +#line 241 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartSerieRenderer* self; + gboolean old_value; +#line 9 "../src/serie_renderer.vala" + self = (LiveChartSerieRenderer*) base; +#line 9 "../src/serie_renderer.vala" + old_value = live_chart_serie_renderer_real_get_visible (base); +#line 9 "../src/serie_renderer.vala" + if (old_value != value) { +#line 9 "../src/serie_renderer.vala" + self->priv->_visible = value; +#line 9 "../src/serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY]); +#line 260 "serie_renderer.c" + } +} + +void +live_chart_serie_renderer_get_main_color (LiveChartSerieRenderer* self, + GdkRGBA * result) +{ + LiveChartPath* _tmp0_; + GdkRGBA _tmp1_ = {0}; + GdkRGBA _tmp2_; +#line 13 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/serie_renderer.vala" + _tmp0_ = self->priv->_line; +#line 14 "../src/serie_renderer.vala" + live_chart_path_get_color (_tmp0_, &_tmp1_); +#line 14 "../src/serie_renderer.vala" + _tmp2_ = _tmp1_; +#line 14 "../src/serie_renderer.vala" + *result = _tmp2_; +#line 14 "../src/serie_renderer.vala" + return; +#line 283 "serie_renderer.c" +} + +void +live_chart_serie_renderer_set_main_color (LiveChartSerieRenderer* self, + GdkRGBA * value) +{ + LiveChartPath* _tmp0_; + GdkRGBA _tmp1_; +#line 17 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 18 "../src/serie_renderer.vala" + _tmp0_ = self->priv->_line; +#line 18 "../src/serie_renderer.vala" + _tmp1_ = *value; +#line 18 "../src/serie_renderer.vala" + live_chart_path_set_color (_tmp0_, &_tmp1_); +#line 17 "../src/serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY]); +#line 302 "serie_renderer.c" +} + +LiveChartPath* +live_chart_serie_renderer_get_line (LiveChartSerieRenderer* self) +{ + LiveChartPath* result; + LiveChartPath* _tmp0_; +#line 21 "../src/serie_renderer.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 21 "../src/serie_renderer.vala" + _tmp0_ = self->priv->_line; +#line 21 "../src/serie_renderer.vala" + result = _tmp0_; +#line 21 "../src/serie_renderer.vala" + return result; +#line 318 "serie_renderer.c" +} + +void +live_chart_serie_renderer_set_line (LiveChartSerieRenderer* self, + LiveChartPath* value) +{ + LiveChartPath* old_value; +#line 21 "../src/serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 21 "../src/serie_renderer.vala" + old_value = live_chart_serie_renderer_get_line (self); +#line 21 "../src/serie_renderer.vala" + if (old_value != value) { +#line 332 "serie_renderer.c" + LiveChartPath* _tmp0_; +#line 21 "../src/serie_renderer.vala" + _tmp0_ = _g_object_ref0 (value); +#line 21 "../src/serie_renderer.vala" + _g_object_unref0 (self->priv->_line); +#line 21 "../src/serie_renderer.vala" + self->priv->_line = _tmp0_; +#line 21 "../src/serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY]); +#line 342 "serie_renderer.c" + } +} + +static void +live_chart_serie_renderer_class_init (LiveChartSerieRendererClass * klass, + gpointer klass_data) +{ +#line 5 "../src/serie_renderer.vala" + live_chart_serie_renderer_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/serie_renderer.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSerieRenderer_private_offset); +#line 5 "../src/serie_renderer.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_serie_renderer_real_draw; +#line 5 "../src/serie_renderer.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_serie_renderer_get_property; +#line 5 "../src/serie_renderer.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_serie_renderer_set_property; +#line 5 "../src/serie_renderer.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_serie_renderer_finalize; +#line 5 "../src/serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 5 "../src/serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_DEPRECATED)); +#line 5 "../src/serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY, live_chart_serie_renderer_properties[LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY] = g_param_spec_object ("line", "line", "line", LIVE_CHART_TYPE_PATH, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 368 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 5 "../src/serie_renderer.vala" + live_chart_serie_renderer_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 5 "../src/serie_renderer.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_serie_renderer_draw; +#line 5 "../src/serie_renderer.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_serie_renderer_real_get_bounding_box; +#line 5 "../src/serie_renderer.vala" + iface->get_visible = live_chart_serie_renderer_real_get_visible; +#line 5 "../src/serie_renderer.vala" + iface->set_visible = live_chart_serie_renderer_real_set_visible; +#line 385 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_instance_init (LiveChartSerieRenderer * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; +#line 5 "../src/serie_renderer.vala" + self->priv = live_chart_serie_renderer_get_instance_private (self); +#line 9 "../src/serie_renderer.vala" + self->priv->_visible = TRUE; +#line 27 "../src/serie_renderer.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 27 "../src/serie_renderer.vala" + _tmp0_.x = (gdouble) 0; +#line 27 "../src/serie_renderer.vala" + _tmp0_.y = (gdouble) 0; +#line 27 "../src/serie_renderer.vala" + _tmp0_.width = (gdouble) 0; +#line 27 "../src/serie_renderer.vala" + _tmp0_.height = (gdouble) 0; +#line 27 "../src/serie_renderer.vala" + self->bounding_box = _tmp0_; +#line 409 "serie_renderer.c" +} + +static void +live_chart_serie_renderer_finalize (GObject * obj) +{ + LiveChartSerieRenderer * self; +#line 5 "../src/serie_renderer.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRenderer); +#line 21 "../src/serie_renderer.vala" + _g_object_unref0 (self->priv->_line); +#line 34 "../src/serie_renderer.vala" + _g_object_unref0 (self->values); +#line 5 "../src/serie_renderer.vala" + G_OBJECT_CLASS (live_chart_serie_renderer_parent_class)->finalize (obj); +#line 424 "serie_renderer.c" +} + +static GType +live_chart_serie_renderer_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSerieRendererClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_serie_renderer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSerieRenderer), 0, (GInstanceInitFunc) live_chart_serie_renderer_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_serie_renderer_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_serie_renderer_type_id; + live_chart_serie_renderer_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartSerieRenderer", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (live_chart_serie_renderer_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartSerieRenderer_private_offset = g_type_add_instance_private (live_chart_serie_renderer_type_id, sizeof (LiveChartSerieRendererPrivate)); + return live_chart_serie_renderer_type_id; +} + +GType +live_chart_serie_renderer_get_type (void) +{ + static volatile gsize live_chart_serie_renderer_type_id__once = 0; + if (g_once_init_enter (&live_chart_serie_renderer_type_id__once)) { + GType live_chart_serie_renderer_type_id; + live_chart_serie_renderer_type_id = live_chart_serie_renderer_get_type_once (); + g_once_init_leave (&live_chart_serie_renderer_type_id__once, live_chart_serie_renderer_type_id); + } + return live_chart_serie_renderer_type_id__once; +} + +static void +_vala_live_chart_serie_renderer_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartSerieRenderer * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRenderer); +#line 5 "../src/serie_renderer.vala" + switch (property_id) { +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY: +#line 5 "../src/serie_renderer.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 5 "../src/serie_renderer.vala" + break; +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY: +#line 469 "serie_renderer.c" + { + GdkRGBA boxed; +#line 5 "../src/serie_renderer.vala" + live_chart_serie_renderer_get_main_color (self, &boxed); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#line 475 "serie_renderer.c" + g_value_set_boxed (value, &boxed); +G_GNUC_END_IGNORE_DEPRECATIONS + } +#line 5 "../src/serie_renderer.vala" + break; +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY: +#line 5 "../src/serie_renderer.vala" + g_value_set_object (value, live_chart_serie_renderer_get_line (self)); +#line 5 "../src/serie_renderer.vala" + break; +#line 487 "serie_renderer.c" + default: +#line 5 "../src/serie_renderer.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/serie_renderer.vala" + break; +#line 493 "serie_renderer.c" + } +} + +static void +_vala_live_chart_serie_renderer_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartSerieRenderer * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SERIE_RENDERER, LiveChartSerieRenderer); +#line 5 "../src/serie_renderer.vala" + switch (property_id) { +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_VISIBLE_PROPERTY: +#line 5 "../src/serie_renderer.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 5 "../src/serie_renderer.vala" + break; +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_MAIN_COLOR_PROPERTY: +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#line 516 "serie_renderer.c" + live_chart_serie_renderer_set_main_color (self, g_value_get_boxed (value)); +G_GNUC_END_IGNORE_DEPRECATIONS +#line 5 "../src/serie_renderer.vala" + break; +#line 5 "../src/serie_renderer.vala" + case LIVE_CHART_SERIE_RENDERER_LINE_PROPERTY: +#line 5 "../src/serie_renderer.vala" + live_chart_serie_renderer_set_line (self, g_value_get_object (value)); +#line 5 "../src/serie_renderer.vala" + break; +#line 527 "serie_renderer.c" + default: +#line 5 "../src/serie_renderer.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/serie_renderer.vala" + break; +#line 533 "serie_renderer.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/series.c b/iPDC/lib/liblivechart.so.p/series.c new file mode 100644 index 0000000..f4777f9 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/series.c @@ -0,0 +1,491 @@ +/* series.c generated by valac 0.56.0, the Vala compiler + * generated from series.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_SERIES_0_PROPERTY, + LIVE_CHART_SERIES_NUM_PROPERTIES +}; +static GParamSpec* live_chart_series_properties[LIVE_CHART_SERIES_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_timestamped_value_free0(var) ((var == NULL) ? NULL : (var = (live_chart_timestamped_value_free (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartSeriesPrivate { + GeeArrayList* series; + LiveChartChart* chart; +}; + +static gint LiveChartSeries_private_offset; +static gpointer live_chart_series_parent_class = NULL; + +static gboolean __lambda7_ (LiveChartSeries* self, + LiveChartTimestampedValue* value); +static gboolean ___lambda7__gee_forall_func (gpointer g, + gpointer self); +static void __lambda8_ (LiveChartSeries* self, + gdouble value); +static void ___lambda8__live_chart_serie_value_added (LiveChartSerie* _sender, + gdouble value, + gpointer self); +static void live_chart_series_finalize (GObject * obj); +static GType live_chart_series_get_type_once (void); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_series_get_instance_private (LiveChartSeries* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSeries_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 10 "../src/series.vala" + return self ? g_object_ref (self) : NULL; +#line 56 "series.c" +} + +LiveChartSeries* +live_chart_series_construct (GType object_type, + LiveChartChart* chart) +{ + LiveChartSeries * self = NULL; + LiveChartChart* _tmp0_; +#line 9 "../src/series.vala" + g_return_val_if_fail (chart != NULL, NULL); +#line 9 "../src/series.vala" + self = (LiveChartSeries*) g_object_new (object_type, NULL); +#line 10 "../src/series.vala" + _tmp0_ = _g_object_ref0 (chart); +#line 10 "../src/series.vala" + _g_object_unref0 (self->priv->chart); +#line 10 "../src/series.vala" + self->priv->chart = _tmp0_; +#line 9 "../src/series.vala" + return self; +#line 77 "series.c" +} + +LiveChartSeries* +live_chart_series_new (LiveChartChart* chart) +{ +#line 9 "../src/series.vala" + return live_chart_series_construct (LIVE_CHART_TYPE_SERIES, chart); +#line 85 "series.c" +} + +static gboolean +__lambda7_ (LiveChartSeries* self, + LiveChartTimestampedValue* value) +{ + LiveChartChart* _tmp0_; + LiveChartConfig* _tmp1_; + LiveChartYAxis* _tmp2_; + gboolean result; +#line 16 "../src/series.vala" + _tmp0_ = self->priv->chart; +#line 16 "../src/series.vala" + _tmp1_ = _tmp0_->config; +#line 16 "../src/series.vala" + _tmp2_ = _tmp1_->y_axis; +#line 16 "../src/series.vala" + live_chart_yaxis_update_bounds (_tmp2_, (*value).value); +#line 16 "../src/series.vala" + result = TRUE; +#line 16 "../src/series.vala" + _live_chart_timestamped_value_free0 (value); +#line 16 "../src/series.vala" + return result; +#line 110 "series.c" +} + +static gboolean +___lambda7__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = __lambda7_ ((LiveChartSeries*) self, (LiveChartTimestampedValue*) g); +#line 16 "../src/series.vala" + return result; +#line 121 "series.c" +} + +static void +__lambda8_ (LiveChartSeries* self, + gdouble value) +{ + LiveChartChart* _tmp0_; + LiveChartConfig* _tmp1_; + LiveChartYAxis* _tmp2_; +#line 20 "../src/series.vala" + _tmp0_ = self->priv->chart; +#line 20 "../src/series.vala" + _tmp1_ = _tmp0_->config; +#line 20 "../src/series.vala" + _tmp2_ = _tmp1_->y_axis; +#line 20 "../src/series.vala" + live_chart_yaxis_update_bounds (_tmp2_, value); +#line 139 "series.c" +} + +static void +___lambda8__live_chart_serie_value_added (LiveChartSerie* _sender, + gdouble value, + gpointer self) +{ +#line 19 "../src/series.vala" + __lambda8_ ((LiveChartSeries*) self, value); +#line 149 "series.c" +} + +LiveChartSerie* +live_chart_series_register (LiveChartSeries* self, + LiveChartSerie* serie) +{ + GeeArrayList* _tmp0_; + LiveChartValues* _tmp1_; + LiveChartValues* _tmp2_; + LiveChartChart* _tmp3_; + LiveChartLegend* _tmp4_; + LiveChartLegend* _tmp5_; + LiveChartSerie* _tmp9_; + LiveChartSerie* result; +#line 13 "../src/series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 13 "../src/series.vala" + g_return_val_if_fail (serie != NULL, NULL); +#line 14 "../src/series.vala" + _tmp0_ = self->priv->series; +#line 14 "../src/series.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, serie); +#line 16 "../src/series.vala" + _tmp1_ = live_chart_serie_get_values (serie); +#line 16 "../src/series.vala" + _tmp2_ = _tmp1_; +#line 16 "../src/series.vala" + gee_abstract_collection_foreach ((GeeAbstractCollection*) _tmp2_, ___lambda7__gee_forall_func, self); +#line 16 "../src/series.vala" + _g_object_unref0 (_tmp2_); +#line 18 "../src/series.vala" + _tmp3_ = self->priv->chart; +#line 18 "../src/series.vala" + _tmp4_ = live_chart_chart_get_legend (_tmp3_); +#line 18 "../src/series.vala" + _tmp5_ = _tmp4_; +#line 18 "../src/series.vala" + if (_tmp5_ != NULL) { +#line 188 "series.c" + LiveChartChart* _tmp6_; + LiveChartLegend* _tmp7_; + LiveChartLegend* _tmp8_; +#line 18 "../src/series.vala" + _tmp6_ = self->priv->chart; +#line 18 "../src/series.vala" + _tmp7_ = live_chart_chart_get_legend (_tmp6_); +#line 18 "../src/series.vala" + _tmp8_ = _tmp7_; +#line 18 "../src/series.vala" + live_chart_legend_add_legend (_tmp8_, serie); +#line 200 "series.c" + } +#line 19 "../src/series.vala" + g_signal_connect_object (serie, "value-added", (GCallback) ___lambda8__live_chart_serie_value_added, self, 0); +#line 22 "../src/series.vala" + _tmp9_ = _g_object_ref0 (serie); +#line 22 "../src/series.vala" + result = _tmp9_; +#line 22 "../src/series.vala" + return result; +#line 210 "series.c" +} + +LiveChartSerie* +live_chart_series_get (LiveChartSeries* self, + gint index, + GError** error) +{ + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; + GeeArrayList* _tmp7_; + gpointer _tmp8_; + GError* _inner_error0_ = NULL; + LiveChartSerie* result; +#line 25 "../src/series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 26 "../src/series.vala" + _tmp0_ = self->priv->series; +#line 26 "../src/series.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 26 "../src/series.vala" + _tmp2_ = _tmp1_; +#line 26 "../src/series.vala" + if (index > (_tmp2_ - 1)) { +#line 235 "series.c" + gchar* _tmp3_; + gchar* _tmp4_; + GError* _tmp5_; + GError* _tmp6_; +#line 27 "../src/series.vala" + _tmp3_ = g_strdup_printf ("Serie at index %d not found", index); +#line 27 "../src/series.vala" + _tmp4_ = _tmp3_; +#line 27 "../src/series.vala" + _tmp5_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, _tmp4_); +#line 27 "../src/series.vala" + _tmp6_ = _tmp5_; +#line 27 "../src/series.vala" + _g_free0 (_tmp4_); +#line 27 "../src/series.vala" + _inner_error0_ = _tmp6_; +#line 27 "../src/series.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 27 "../src/series.vala" + g_propagate_error (error, _inner_error0_); +#line 27 "../src/series.vala" + return NULL; +#line 258 "series.c" + } else { +#line 27 "../src/series.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 27 "../src/series.vala" + g_clear_error (&_inner_error0_); +#line 27 "../src/series.vala" + return NULL; +#line 266 "series.c" + } + } +#line 29 "../src/series.vala" + _tmp7_ = self->priv->series; +#line 29 "../src/series.vala" + _tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, index); +#line 29 "../src/series.vala" + result = (LiveChartSerie*) _tmp8_; +#line 29 "../src/series.vala" + return result; +#line 277 "series.c" +} + +LiveChartSerie* +live_chart_series_get_by_name (LiveChartSeries* self, + const gchar* name, + GError** error) +{ + gchar* _tmp11_; + gchar* _tmp12_; + GError* _tmp13_; + GError* _tmp14_; + GError* _inner_error0_ = NULL; + LiveChartSerie* result; +#line 32 "../src/series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 32 "../src/series.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 295 "series.c" + { + GeeArrayList* _serie_list = NULL; + GeeArrayList* _tmp0_; + gint _serie_size = 0; + GeeArrayList* _tmp1_; + gint _tmp2_; + gint _tmp3_; + gint _serie_index = 0; +#line 33 "../src/series.vala" + _tmp0_ = self->priv->series; +#line 33 "../src/series.vala" + _serie_list = _tmp0_; +#line 33 "../src/series.vala" + _tmp1_ = _serie_list; +#line 33 "../src/series.vala" + _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_); +#line 33 "../src/series.vala" + _tmp3_ = _tmp2_; +#line 33 "../src/series.vala" + _serie_size = _tmp3_; +#line 33 "../src/series.vala" + _serie_index = -1; +#line 33 "../src/series.vala" + while (TRUE) { +#line 320 "series.c" + gint _tmp4_; + gint _tmp5_; + LiveChartSerie* serie = NULL; + GeeArrayList* _tmp6_; + gpointer _tmp7_; + LiveChartSerie* _tmp8_; + const gchar* _tmp9_; + const gchar* _tmp10_; +#line 33 "../src/series.vala" + _serie_index = _serie_index + 1; +#line 33 "../src/series.vala" + _tmp4_ = _serie_index; +#line 33 "../src/series.vala" + _tmp5_ = _serie_size; +#line 33 "../src/series.vala" + if (!(_tmp4_ < _tmp5_)) { +#line 33 "../src/series.vala" + break; +#line 339 "series.c" + } +#line 33 "../src/series.vala" + _tmp6_ = _serie_list; +#line 33 "../src/series.vala" + _tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, _serie_index); +#line 33 "../src/series.vala" + serie = (LiveChartSerie*) _tmp7_; +#line 34 "../src/series.vala" + _tmp8_ = serie; +#line 34 "../src/series.vala" + _tmp9_ = live_chart_serie_get_name (_tmp8_); +#line 34 "../src/series.vala" + _tmp10_ = _tmp9_; +#line 34 "../src/series.vala" + if (g_strcmp0 (_tmp10_, name) == 0) { +#line 34 "../src/series.vala" + result = serie; +#line 34 "../src/series.vala" + return result; +#line 359 "series.c" + } +#line 33 "../src/series.vala" + _g_object_unref0 (serie); +#line 363 "series.c" + } + } +#line 36 "../src/series.vala" + _tmp11_ = g_strdup_printf ("Serie with name %s not found", name); +#line 36 "../src/series.vala" + _tmp12_ = _tmp11_; +#line 36 "../src/series.vala" + _tmp13_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, _tmp12_); +#line 36 "../src/series.vala" + _tmp14_ = _tmp13_; +#line 36 "../src/series.vala" + _g_free0 (_tmp12_); +#line 36 "../src/series.vala" + _inner_error0_ = _tmp14_; +#line 36 "../src/series.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 36 "../src/series.vala" + g_propagate_error (error, _inner_error0_); +#line 36 "../src/series.vala" + return NULL; +#line 384 "series.c" + } else { +#line 36 "../src/series.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 36 "../src/series.vala" + g_clear_error (&_inner_error0_); +#line 36 "../src/series.vala" + return NULL; +#line 392 "series.c" + } +} + +GeeIterator* +live_chart_series_iterator (LiveChartSeries* self) +{ + GeeArrayList* _tmp0_; + GeeListIterator* _tmp1_; + GeeIterator* result; +#line 39 "../src/series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 40 "../src/series.vala" + _tmp0_ = self->priv->series; +#line 40 "../src/series.vala" + _tmp1_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp0_); +#line 40 "../src/series.vala" + result = (GeeIterator*) _tmp1_; +#line 40 "../src/series.vala" + return result; +#line 412 "series.c" +} + +static void +live_chart_series_class_init (LiveChartSeriesClass * klass, + gpointer klass_data) +{ +#line 4 "../src/series.vala" + live_chart_series_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/series.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSeries_private_offset); +#line 4 "../src/series.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_series_finalize; +#line 425 "series.c" +} + +static void +live_chart_series_instance_init (LiveChartSeries * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 4 "../src/series.vala" + self->priv = live_chart_series_get_instance_private (self); +#line 6 "../src/series.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_TYPE_SERIE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL); +#line 6 "../src/series.vala" + self->priv->series = _tmp0_; +#line 439 "series.c" +} + +static void +live_chart_series_finalize (GObject * obj) +{ + LiveChartSeries * self; +#line 4 "../src/series.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SERIES, LiveChartSeries); +#line 6 "../src/series.vala" + _g_object_unref0 (self->priv->series); +#line 7 "../src/series.vala" + _g_object_unref0 (self->priv->chart); +#line 4 "../src/series.vala" + G_OBJECT_CLASS (live_chart_series_parent_class)->finalize (obj); +#line 454 "series.c" +} + +static GType +live_chart_series_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSeriesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_series_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSeries), 0, (GInstanceInitFunc) live_chart_series_instance_init, NULL }; + GType live_chart_series_type_id; + live_chart_series_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartSeries", &g_define_type_info, 0); + LiveChartSeries_private_offset = g_type_add_instance_private (live_chart_series_type_id, sizeof (LiveChartSeriesPrivate)); + return live_chart_series_type_id; +} + +GType +live_chart_series_get_type (void) +{ + static volatile gsize live_chart_series_type_id__once = 0; + if (g_once_init_enter (&live_chart_series_type_id__once)) { + GType live_chart_series_type_id; + live_chart_series_type_id = live_chart_series_get_type_once (); + g_once_init_leave (&live_chart_series_type_id__once, live_chart_series_type_id); + } + return live_chart_series_type_id__once; +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/smooth_line.c b/iPDC/lib/liblivechart.so.p/smooth_line.c new file mode 100644 index 0000000..62b6c55 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/smooth_line.c @@ -0,0 +1,887 @@ +/* smooth_line.c generated by valac 0.56.0, the Vala compiler + * generated from smooth_line.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_SMOOTH_LINE_0_PROPERTY, + LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY, + LIVE_CHART_SMOOTH_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_smooth_line_properties[LIVE_CHART_SMOOTH_LINE_NUM_PROPERTIES]; +#define _live_chart_region_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_region_unref (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _cairo_path_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_path_destroy (var), NULL))) +#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL))) +typedef struct _Block6Data Block6Data; +#define _live_chart_bezier_intersector_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_bezier_intersector_unref (var), NULL))) + +struct _LiveChartSmoothLinePrivate { + LiveChartRegion* _region; +}; + +struct _Block6Data { + int _ref_count_; + LiveChartSmoothLine* self; + LiveChartBoundaries boundaries; + cairo_t* ctx; +}; + +static gint LiveChartSmoothLine_private_offset; +static gpointer live_chart_smooth_line_parent_class = NULL; + +static void live_chart_smooth_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_smooth_line_update_bounding_box (LiveChartSmoothLine* self, + LiveChartPoints* points, + LiveChartConfig* config); +static void live_chart_smooth_line_generate_intersections (LiveChartSmoothLine* self, + LiveChartPoint* previous, + LiveChartPoint* target, + LiveChartConfig* config, + LiveChartBezierCurve* curve); +static Block6Data* block6_data_ref (Block6Data* _data6_); +static void block6_data_unref (void * _userdata_); +static gboolean __lambda13_ (Block6Data* _data6_, + LiveChartIntersection* intersection); +static gboolean ___lambda13__gee_forall_func (gpointer g, + gpointer self); +static void live_chart_smooth_line_finalize (GObject * obj); +static GType live_chart_smooth_line_get_type_once (void); +static void _vala_live_chart_smooth_line_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_smooth_line_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_smooth_line_get_instance_private (LiveChartSmoothLine* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSmoothLine_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 10 "../src/smooth_line.vala" + return self ? g_object_ref (self) : NULL; +#line 82 "smooth_line.c" +} + +LiveChartSmoothLine* +live_chart_smooth_line_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartSmoothLine * self = NULL; + LiveChartValues* _tmp0_; +#line 8 "../src/smooth_line.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 9 "../src/smooth_line.vala" + self = (LiveChartSmoothLine*) live_chart_serie_renderer_construct (object_type); +#line 10 "../src/smooth_line.vala" + _tmp0_ = _g_object_ref0 (values); +#line 10 "../src/smooth_line.vala" + _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); +#line 10 "../src/smooth_line.vala" + ((LiveChartSerieRenderer*) self)->values = _tmp0_; +#line 8 "../src/smooth_line.vala" + return self; +#line 103 "smooth_line.c" +} + +LiveChartSmoothLine* +live_chart_smooth_line_new (LiveChartValues* values) +{ +#line 8 "../src/smooth_line.vala" + return live_chart_smooth_line_construct (LIVE_CHART_TYPE_SMOOTH_LINE, values); +#line 111 "smooth_line.c" +} + +static void +live_chart_smooth_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartSmoothLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 13 "../src/smooth_line.vala" + self = (LiveChartSmoothLine*) base; +#line 13 "../src/smooth_line.vala" + g_return_if_fail (ctx != NULL); +#line 13 "../src/smooth_line.vala" + g_return_if_fail (config != NULL); +#line 14 "../src/smooth_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 14 "../src/smooth_line.vala" + _tmp1_ = _tmp0_; +#line 14 "../src/smooth_line.vala" + if (_tmp1_) { +#line 134 "smooth_line.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 15 "../src/smooth_line.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 15 "../src/smooth_line.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 15 "../src/smooth_line.vala" + points = _tmp3_; +#line 16 "../src/smooth_line.vala" + _tmp4_ = points; +#line 16 "../src/smooth_line.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 16 "../src/smooth_line.vala" + _tmp6_ = _tmp5_; +#line 16 "../src/smooth_line.vala" + if (_tmp6_ > 0) { +#line 155 "smooth_line.c" + LiveChartRegion* _tmp7_; + LiveChartPoints* _tmp8_; + cairo_path_t* _tmp9_; + cairo_path_t* _tmp10_; + LiveChartRegion* _tmp11_; +#line 18 "../src/smooth_line.vala" + _tmp7_ = self->priv->_region; +#line 18 "../src/smooth_line.vala" + if (_tmp7_ != NULL) { +#line 19 "../src/smooth_line.vala" + cairo_push_group (ctx); +#line 167 "smooth_line.c" + } +#line 22 "../src/smooth_line.vala" + _tmp8_ = points; +#line 22 "../src/smooth_line.vala" + _tmp9_ = live_chart_smooth_line_draw_smooth_line (self, _tmp8_, ctx, config); +#line 22 "../src/smooth_line.vala" + _tmp10_ = _tmp9_; +#line 22 "../src/smooth_line.vala" + _cairo_path_destroy0 (_tmp10_); +#line 23 "../src/smooth_line.vala" + cairo_stroke (ctx); +#line 25 "../src/smooth_line.vala" + _tmp11_ = self->priv->_region; +#line 25 "../src/smooth_line.vala" + if (_tmp11_ != NULL) { +#line 26 "../src/smooth_line.vala" + cairo_set_operator (ctx, CAIRO_OPERATOR_ATOP); +#line 27 "../src/smooth_line.vala" + live_chart_smooth_line_draw_regions_on_line (self, ctx, config); +#line 28 "../src/smooth_line.vala" + cairo_fill (ctx); +#line 29 "../src/smooth_line.vala" + cairo_pop_group_to_source (ctx); +#line 30 "../src/smooth_line.vala" + cairo_paint (ctx); +#line 193 "smooth_line.c" + } + } +#line 14 "../src/smooth_line.vala" + _g_object_unref0 (points); +#line 198 "smooth_line.c" + } +} + +cairo_path_t* +live_chart_smooth_line_draw_smooth_line (LiveChartSmoothLine* self, + LiveChartPoints* points, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartIntersections* _tmp0_; + LiveChartPoint first_point = {0}; + LiveChartPoint _tmp1_ = {0}; + LiveChartPoint _tmp2_; + LiveChartPoint _tmp3_; + LiveChartPath* _tmp4_; + LiveChartPath* _tmp5_; + cairo_path_t* _tmp32_; + cairo_path_t* result; +#line 36 "../src/smooth_line.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 36 "../src/smooth_line.vala" + g_return_val_if_fail (points != NULL, NULL); +#line 36 "../src/smooth_line.vala" + g_return_val_if_fail (ctx != NULL, NULL); +#line 36 "../src/smooth_line.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 37 "../src/smooth_line.vala" + _tmp0_ = live_chart_intersections_new (); +#line 37 "../src/smooth_line.vala" + _g_object_unref0 (self->intersections); +#line 37 "../src/smooth_line.vala" + self->intersections = _tmp0_; +#line 38 "../src/smooth_line.vala" + live_chart_points_first (points, &_tmp1_); +#line 38 "../src/smooth_line.vala" + first_point = _tmp1_; +#line 40 "../src/smooth_line.vala" + live_chart_smooth_line_update_bounding_box (self, points, config); +#line 41 "../src/smooth_line.vala" + live_chart_serie_renderer_debug ((LiveChartSerieRenderer*) self, ctx); +#line 43 "../src/smooth_line.vala" + _tmp2_ = first_point; +#line 43 "../src/smooth_line.vala" + _tmp3_ = first_point; +#line 43 "../src/smooth_line.vala" + cairo_move_to (ctx, _tmp2_.x, _tmp3_.y); +#line 44 "../src/smooth_line.vala" + _tmp4_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 44 "../src/smooth_line.vala" + _tmp5_ = _tmp4_; +#line 44 "../src/smooth_line.vala" + live_chart_path_configure (_tmp5_, ctx); +#line 251 "smooth_line.c" + { + gint pos = 0; +#line 46 "../src/smooth_line.vala" + pos = 0; +#line 256 "smooth_line.c" + { + gboolean _tmp6_ = FALSE; +#line 46 "../src/smooth_line.vala" + _tmp6_ = TRUE; +#line 46 "../src/smooth_line.vala" + while (TRUE) { +#line 263 "smooth_line.c" + gint _tmp8_; + gint _tmp9_; + LiveChartPoint previous_point = {0}; + LiveChartPoint _tmp10_ = {0}; + LiveChartPoint target_point = {0}; + LiveChartPoint _tmp11_ = {0}; + LiveChartPoint _tmp12_; + LiveChartBezierCurve curve = {0}; + LiveChartPoint _tmp13_; + LiveChartPoint _tmp14_; + LiveChartBezierCurve _tmp15_ = {0}; + LiveChartBezierCurve _tmp16_; + LiveChartCoord _tmp17_; + LiveChartBezierCurve _tmp18_; + LiveChartCoord _tmp19_; + LiveChartBezierCurve _tmp20_; + LiveChartCoord _tmp21_; + LiveChartBezierCurve _tmp22_; + LiveChartCoord _tmp23_; + LiveChartBezierCurve _tmp24_; + LiveChartCoord _tmp25_; + LiveChartBezierCurve _tmp26_; + LiveChartCoord _tmp27_; + LiveChartRegion* _tmp28_; +#line 46 "../src/smooth_line.vala" + if (!_tmp6_) { +#line 290 "smooth_line.c" + gint _tmp7_; +#line 46 "../src/smooth_line.vala" + _tmp7_ = pos; +#line 46 "../src/smooth_line.vala" + pos = _tmp7_ + 1; +#line 296 "smooth_line.c" + } +#line 46 "../src/smooth_line.vala" + _tmp6_ = FALSE; +#line 46 "../src/smooth_line.vala" + _tmp8_ = live_chart_points_get_size (points); +#line 46 "../src/smooth_line.vala" + _tmp9_ = _tmp8_; +#line 46 "../src/smooth_line.vala" + if (!(pos <= (_tmp9_ - 1))) { +#line 46 "../src/smooth_line.vala" + break; +#line 308 "smooth_line.c" + } +#line 48 "../src/smooth_line.vala" + live_chart_points_get (points, pos, &_tmp10_); +#line 48 "../src/smooth_line.vala" + previous_point = _tmp10_; +#line 49 "../src/smooth_line.vala" + live_chart_points_after (points, pos, &_tmp11_); +#line 49 "../src/smooth_line.vala" + target_point = _tmp11_; +#line 51 "../src/smooth_line.vala" + _tmp12_ = previous_point; +#line 51 "../src/smooth_line.vala" + if (live_chart_serie_renderer_is_out_of_area ((LiveChartSerieRenderer*) self, &_tmp12_)) { +#line 52 "../src/smooth_line.vala" + continue; +#line 324 "smooth_line.c" + } +#line 55 "../src/smooth_line.vala" + _tmp13_ = previous_point; +#line 55 "../src/smooth_line.vala" + _tmp14_ = target_point; +#line 55 "../src/smooth_line.vala" + live_chart_build_bezier_curve_from_points (&_tmp13_, &_tmp14_, &_tmp15_); +#line 55 "../src/smooth_line.vala" + curve = _tmp15_; +#line 57 "../src/smooth_line.vala" + _tmp16_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp17_ = _tmp16_.c1; +#line 57 "../src/smooth_line.vala" + _tmp18_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp19_ = _tmp18_.c1; +#line 57 "../src/smooth_line.vala" + _tmp20_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp21_ = _tmp20_.c2; +#line 57 "../src/smooth_line.vala" + _tmp22_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp23_ = _tmp22_.c2; +#line 57 "../src/smooth_line.vala" + _tmp24_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp25_ = _tmp24_.c3; +#line 57 "../src/smooth_line.vala" + _tmp26_ = curve; +#line 57 "../src/smooth_line.vala" + _tmp27_ = _tmp26_.c3; +#line 57 "../src/smooth_line.vala" + cairo_curve_to (ctx, _tmp17_.x, _tmp19_.y, _tmp21_.x, _tmp23_.y, _tmp25_.x, _tmp27_.y); +#line 62 "../src/smooth_line.vala" + _tmp28_ = self->priv->_region; +#line 62 "../src/smooth_line.vala" + if (_tmp28_ != NULL) { +#line 364 "smooth_line.c" + LiveChartPoint _tmp29_; + LiveChartPoint _tmp30_; + LiveChartBezierCurve _tmp31_; +#line 63 "../src/smooth_line.vala" + _tmp29_ = previous_point; +#line 63 "../src/smooth_line.vala" + _tmp30_ = target_point; +#line 63 "../src/smooth_line.vala" + _tmp31_ = curve; +#line 63 "../src/smooth_line.vala" + live_chart_smooth_line_generate_intersections (self, &_tmp29_, &_tmp30_, config, &_tmp31_); +#line 376 "smooth_line.c" + } + } + } + } +#line 67 "../src/smooth_line.vala" + _tmp32_ = cairo_copy_path (ctx); +#line 67 "../src/smooth_line.vala" + result = _tmp32_; +#line 67 "../src/smooth_line.vala" + return result; +#line 387 "smooth_line.c" +} + +static gpointer +_cairo_reference0 (gpointer self) +{ +#line 70 "../src/smooth_line.vala" + return self ? cairo_reference (self) : NULL; +#line 395 "smooth_line.c" +} + +static Block6Data* +block6_data_ref (Block6Data* _data6_) +{ +#line 70 "../src/smooth_line.vala" + g_atomic_int_inc (&_data6_->_ref_count_); +#line 70 "../src/smooth_line.vala" + return _data6_; +#line 405 "smooth_line.c" +} + +static void +block6_data_unref (void * _userdata_) +{ + Block6Data* _data6_; + _data6_ = (Block6Data*) _userdata_; +#line 70 "../src/smooth_line.vala" + if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) { +#line 415 "smooth_line.c" + LiveChartSmoothLine* self; +#line 70 "../src/smooth_line.vala" + self = _data6_->self; +#line 70 "../src/smooth_line.vala" + _cairo_destroy0 (_data6_->ctx); +#line 70 "../src/smooth_line.vala" + _g_object_unref0 (self); +#line 70 "../src/smooth_line.vala" + g_slice_free (Block6Data, _data6_); +#line 425 "smooth_line.c" + } +} + +static gboolean +__lambda13_ (Block6Data* _data6_, + LiveChartIntersection* intersection) +{ + LiveChartSmoothLine* self; + gboolean result; +#line 72 "../src/smooth_line.vala" + self = _data6_->self; +#line 73 "../src/smooth_line.vala" + if (intersection != NULL) { +#line 439 "smooth_line.c" + gdouble _tmp0_; + gdouble _tmp1_; + LiveChartBoundaries _tmp2_; + LiveChartBoundary _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + gdouble _tmp6_; + gdouble _tmp7_; + LiveChartBoundaries _tmp8_; + LiveChartRegion* _tmp9_; + LiveChartRegion* _tmp10_; + GdkRGBA _tmp11_ = {0}; + GdkRGBA _tmp12_; + LiveChartRegion* _tmp13_; + LiveChartRegion* _tmp14_; + GdkRGBA _tmp15_ = {0}; + GdkRGBA _tmp16_; + LiveChartRegion* _tmp17_; + LiveChartRegion* _tmp18_; + GdkRGBA _tmp19_ = {0}; + GdkRGBA _tmp20_; + LiveChartRegion* _tmp21_; + LiveChartRegion* _tmp22_; + GdkRGBA _tmp23_ = {0}; + GdkRGBA _tmp24_; +#line 74 "../src/smooth_line.vala" + _tmp0_ = live_chart_intersection_get_start_x (intersection); +#line 74 "../src/smooth_line.vala" + _tmp1_ = _tmp0_; +#line 74 "../src/smooth_line.vala" + _tmp2_ = _data6_->boundaries; +#line 74 "../src/smooth_line.vala" + _tmp3_ = _tmp2_.y; +#line 74 "../src/smooth_line.vala" + _tmp4_ = live_chart_intersection_get_end_x (intersection); +#line 74 "../src/smooth_line.vala" + _tmp5_ = _tmp4_; +#line 74 "../src/smooth_line.vala" + _tmp6_ = live_chart_intersection_get_start_x (intersection); +#line 74 "../src/smooth_line.vala" + _tmp7_ = _tmp6_; +#line 74 "../src/smooth_line.vala" + _tmp8_ = _data6_->boundaries; +#line 74 "../src/smooth_line.vala" + cairo_rectangle (_data6_->ctx, _tmp1_, (gdouble) _tmp3_.min, _tmp5_ - _tmp7_, (gdouble) _tmp8_.height); +#line 75 "../src/smooth_line.vala" + _tmp9_ = live_chart_intersection_get_region (intersection); +#line 75 "../src/smooth_line.vala" + _tmp10_ = _tmp9_; +#line 75 "../src/smooth_line.vala" + live_chart_region_get_line_color (_tmp10_, &_tmp11_); +#line 75 "../src/smooth_line.vala" + _tmp12_ = _tmp11_; +#line 75 "../src/smooth_line.vala" + _tmp13_ = live_chart_intersection_get_region (intersection); +#line 75 "../src/smooth_line.vala" + _tmp14_ = _tmp13_; +#line 75 "../src/smooth_line.vala" + live_chart_region_get_line_color (_tmp14_, &_tmp15_); +#line 75 "../src/smooth_line.vala" + _tmp16_ = _tmp15_; +#line 75 "../src/smooth_line.vala" + _tmp17_ = live_chart_intersection_get_region (intersection); +#line 75 "../src/smooth_line.vala" + _tmp18_ = _tmp17_; +#line 75 "../src/smooth_line.vala" + live_chart_region_get_line_color (_tmp18_, &_tmp19_); +#line 75 "../src/smooth_line.vala" + _tmp20_ = _tmp19_; +#line 75 "../src/smooth_line.vala" + _tmp21_ = live_chart_intersection_get_region (intersection); +#line 75 "../src/smooth_line.vala" + _tmp22_ = _tmp21_; +#line 75 "../src/smooth_line.vala" + live_chart_region_get_line_color (_tmp22_, &_tmp23_); +#line 75 "../src/smooth_line.vala" + _tmp24_ = _tmp23_; +#line 75 "../src/smooth_line.vala" + cairo_set_source_rgba (_data6_->ctx, _tmp12_.red, _tmp16_.green, _tmp20_.blue, _tmp24_.alpha); +#line 519 "smooth_line.c" + } +#line 77 "../src/smooth_line.vala" + result = TRUE; +#line 77 "../src/smooth_line.vala" + _g_object_unref0 (intersection); +#line 77 "../src/smooth_line.vala" + return result; +#line 527 "smooth_line.c" +} + +static gboolean +___lambda13__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = __lambda13_ (self, (LiveChartIntersection*) g); +#line 72 "../src/smooth_line.vala" + return result; +#line 538 "smooth_line.c" +} + +void +live_chart_smooth_line_draw_regions_on_line (LiveChartSmoothLine* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + Block6Data* _data6_; + cairo_t* _tmp0_; + LiveChartBoundaries _tmp1_ = {0}; + LiveChartIntersections* _tmp2_; +#line 70 "../src/smooth_line.vala" + g_return_if_fail (self != NULL); +#line 70 "../src/smooth_line.vala" + g_return_if_fail (ctx != NULL); +#line 70 "../src/smooth_line.vala" + g_return_if_fail (config != NULL); +#line 70 "../src/smooth_line.vala" + _data6_ = g_slice_new0 (Block6Data); +#line 70 "../src/smooth_line.vala" + _data6_->_ref_count_ = 1; +#line 70 "../src/smooth_line.vala" + _data6_->self = g_object_ref (self); +#line 70 "../src/smooth_line.vala" + _tmp0_ = _cairo_reference0 (ctx); +#line 70 "../src/smooth_line.vala" + _cairo_destroy0 (_data6_->ctx); +#line 70 "../src/smooth_line.vala" + _data6_->ctx = _tmp0_; +#line 71 "../src/smooth_line.vala" + live_chart_config_boundaries (config, &_tmp1_); +#line 71 "../src/smooth_line.vala" + _data6_->boundaries = _tmp1_; +#line 72 "../src/smooth_line.vala" + _tmp2_ = self->intersections; +#line 72 "../src/smooth_line.vala" + live_chart_intersections_foreach (_tmp2_, ___lambda13__gee_forall_func, _data6_); +#line 70 "../src/smooth_line.vala" + block6_data_unref (_data6_); +#line 70 "../src/smooth_line.vala" + _data6_ = NULL; +#line 580 "smooth_line.c" +} + +static void +live_chart_smooth_line_generate_intersections (LiveChartSmoothLine* self, + LiveChartPoint* previous, + LiveChartPoint* target, + LiveChartConfig* config, + LiveChartBezierCurve* curve) +{ + LiveChartRegion* _tmp0_; + LiveChartBezierIntersector* _tmp1_; + LiveChartBezierIntersector* _tmp2_; + LiveChartIntersections* _tmp3_; + LiveChartPoint _tmp4_; + LiveChartPoint _tmp5_; + LiveChartBezierCurve _tmp6_; +#line 81 "../src/smooth_line.vala" + g_return_if_fail (self != NULL); +#line 81 "../src/smooth_line.vala" + g_return_if_fail (previous != NULL); +#line 81 "../src/smooth_line.vala" + g_return_if_fail (target != NULL); +#line 81 "../src/smooth_line.vala" + g_return_if_fail (config != NULL); +#line 81 "../src/smooth_line.vala" + g_return_if_fail (curve != NULL); +#line 82 "../src/smooth_line.vala" + _tmp0_ = self->priv->_region; +#line 82 "../src/smooth_line.vala" + _tmp1_ = live_chart_bezier_intersector_new (_tmp0_, config); +#line 82 "../src/smooth_line.vala" + _tmp2_ = _tmp1_; +#line 82 "../src/smooth_line.vala" + _tmp3_ = self->intersections; +#line 82 "../src/smooth_line.vala" + _tmp4_ = *previous; +#line 82 "../src/smooth_line.vala" + _tmp5_ = *target; +#line 82 "../src/smooth_line.vala" + _tmp6_ = *curve; +#line 82 "../src/smooth_line.vala" + live_chart_intersector_intersect ((LiveChartIntersector*) _tmp2_, _tmp3_, &_tmp4_, &_tmp5_, &_tmp6_); +#line 82 "../src/smooth_line.vala" + _live_chart_bezier_intersector_unref0 (_tmp2_); +#line 625 "smooth_line.c" +} + +static void +live_chart_smooth_line_update_bounding_box (LiveChartSmoothLine* self, + LiveChartPoints* points, + LiveChartConfig* config) +{ + LiveChartPoint _tmp0_ = {0}; + LiveChartBounds* _tmp1_; + LiveChartBounds* _tmp2_; + gdouble _tmp3_; + gdouble _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint _tmp6_ = {0}; + LiveChartBounds* _tmp7_; + LiveChartBounds* _tmp8_; + gdouble _tmp9_; + gdouble _tmp10_; + LiveChartBounds* _tmp11_; + LiveChartBounds* _tmp12_; + gdouble _tmp13_; + gdouble _tmp14_; + LiveChartBoundingBox _tmp15_ = {0}; +#line 85 "../src/smooth_line.vala" + g_return_if_fail (self != NULL); +#line 85 "../src/smooth_line.vala" + g_return_if_fail (points != NULL); +#line 85 "../src/smooth_line.vala" + g_return_if_fail (config != NULL); +#line 86 "../src/smooth_line.vala" + live_chart_points_first (points, &_tmp0_); +#line 86 "../src/smooth_line.vala" + _tmp1_ = live_chart_points_get_bounds (points); +#line 86 "../src/smooth_line.vala" + _tmp2_ = _tmp1_; +#line 86 "../src/smooth_line.vala" + _tmp3_ = live_chart_bounds_get_lower (_tmp2_); +#line 86 "../src/smooth_line.vala" + _tmp4_ = _tmp3_; +#line 86 "../src/smooth_line.vala" + live_chart_points_last (points, &_tmp5_); +#line 86 "../src/smooth_line.vala" + live_chart_points_first (points, &_tmp6_); +#line 86 "../src/smooth_line.vala" + _tmp7_ = live_chart_points_get_bounds (points); +#line 86 "../src/smooth_line.vala" + _tmp8_ = _tmp7_; +#line 86 "../src/smooth_line.vala" + _tmp9_ = live_chart_bounds_get_upper (_tmp8_); +#line 86 "../src/smooth_line.vala" + _tmp10_ = _tmp9_; +#line 86 "../src/smooth_line.vala" + _tmp11_ = live_chart_points_get_bounds (points); +#line 86 "../src/smooth_line.vala" + _tmp12_ = _tmp11_; +#line 86 "../src/smooth_line.vala" + _tmp13_ = live_chart_bounds_get_lower (_tmp12_); +#line 86 "../src/smooth_line.vala" + _tmp14_ = _tmp13_; +#line 86 "../src/smooth_line.vala" + memset (&_tmp15_, 0, sizeof (LiveChartBoundingBox)); +#line 86 "../src/smooth_line.vala" + _tmp15_.x = _tmp0_.x; +#line 86 "../src/smooth_line.vala" + _tmp15_.y = _tmp4_; +#line 86 "../src/smooth_line.vala" + _tmp15_.width = _tmp5_.x - _tmp6_.x; +#line 86 "../src/smooth_line.vala" + _tmp15_.height = _tmp10_ - _tmp14_; +#line 86 "../src/smooth_line.vala" + ((LiveChartSerieRenderer*) self)->bounding_box = _tmp15_; +#line 697 "smooth_line.c" +} + +LiveChartRegion* +live_chart_smooth_line_get_region (LiveChartSmoothLine* self) +{ + LiveChartRegion* result; + LiveChartRegion* _tmp0_; +#line 6 "../src/smooth_line.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 6 "../src/smooth_line.vala" + _tmp0_ = self->priv->_region; +#line 6 "../src/smooth_line.vala" + result = _tmp0_; +#line 6 "../src/smooth_line.vala" + return result; +#line 713 "smooth_line.c" +} + +static gpointer +_live_chart_region_ref0 (gpointer self) +{ +#line 6 "../src/smooth_line.vala" + return self ? live_chart_region_ref (self) : NULL; +#line 721 "smooth_line.c" +} + +void +live_chart_smooth_line_set_region (LiveChartSmoothLine* self, + LiveChartRegion* value) +{ + LiveChartRegion* old_value; +#line 6 "../src/smooth_line.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/smooth_line.vala" + old_value = live_chart_smooth_line_get_region (self); +#line 6 "../src/smooth_line.vala" + if (old_value != value) { +#line 735 "smooth_line.c" + LiveChartRegion* _tmp0_; +#line 6 "../src/smooth_line.vala" + _tmp0_ = _live_chart_region_ref0 (value); +#line 6 "../src/smooth_line.vala" + _live_chart_region_unref0 (self->priv->_region); +#line 6 "../src/smooth_line.vala" + self->priv->_region = _tmp0_; +#line 6 "../src/smooth_line.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_smooth_line_properties[LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY]); +#line 745 "smooth_line.c" + } +} + +static void +live_chart_smooth_line_class_init (LiveChartSmoothLineClass * klass, + gpointer klass_data) +{ +#line 4 "../src/smooth_line.vala" + live_chart_smooth_line_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/smooth_line.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSmoothLine_private_offset); +#line 4 "../src/smooth_line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_smooth_line_real_draw; +#line 4 "../src/smooth_line.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_smooth_line_get_property; +#line 4 "../src/smooth_line.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_smooth_line_set_property; +#line 4 "../src/smooth_line.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_smooth_line_finalize; +#line 4 "../src/smooth_line.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY, live_chart_smooth_line_properties[LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY] = live_chart_param_spec_region ("region", "region", "region", LIVE_CHART_TYPE_REGION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 767 "smooth_line.c" +} + +static void +live_chart_smooth_line_instance_init (LiveChartSmoothLine * self, + gpointer klass) +{ + LiveChartIntersections* _tmp0_; +#line 4 "../src/smooth_line.vala" + self->priv = live_chart_smooth_line_get_instance_private (self); +#line 6 "../src/smooth_line.vala" + self->priv->_region = NULL; +#line 7 "../src/smooth_line.vala" + _tmp0_ = live_chart_intersections_new (); +#line 7 "../src/smooth_line.vala" + self->intersections = _tmp0_; +#line 783 "smooth_line.c" +} + +static void +live_chart_smooth_line_finalize (GObject * obj) +{ + LiveChartSmoothLine * self; +#line 4 "../src/smooth_line.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine); +#line 6 "../src/smooth_line.vala" + _live_chart_region_unref0 (self->priv->_region); +#line 7 "../src/smooth_line.vala" + _g_object_unref0 (self->intersections); +#line 4 "../src/smooth_line.vala" + G_OBJECT_CLASS (live_chart_smooth_line_parent_class)->finalize (obj); +#line 798 "smooth_line.c" +} + +static GType +live_chart_smooth_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSmoothLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_smooth_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSmoothLine), 0, (GInstanceInitFunc) live_chart_smooth_line_instance_init, NULL }; + GType live_chart_smooth_line_type_id; + live_chart_smooth_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartSmoothLine", &g_define_type_info, 0); + LiveChartSmoothLine_private_offset = g_type_add_instance_private (live_chart_smooth_line_type_id, sizeof (LiveChartSmoothLinePrivate)); + return live_chart_smooth_line_type_id; +} + +GType +live_chart_smooth_line_get_type (void) +{ + static volatile gsize live_chart_smooth_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_smooth_line_type_id__once)) { + GType live_chart_smooth_line_type_id; + live_chart_smooth_line_type_id = live_chart_smooth_line_get_type_once (); + g_once_init_leave (&live_chart_smooth_line_type_id__once, live_chart_smooth_line_type_id); + } + return live_chart_smooth_line_type_id__once; +} + +static void +_vala_live_chart_smooth_line_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartSmoothLine * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine); +#line 4 "../src/smooth_line.vala" + switch (property_id) { +#line 4 "../src/smooth_line.vala" + case LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY: +#line 4 "../src/smooth_line.vala" + live_chart_value_set_region (value, live_chart_smooth_line_get_region (self)); +#line 4 "../src/smooth_line.vala" + break; +#line 839 "smooth_line.c" + default: +#line 4 "../src/smooth_line.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/smooth_line.vala" + break; +#line 845 "smooth_line.c" + } +} + +static void +_vala_live_chart_smooth_line_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartSmoothLine * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine); +#line 4 "../src/smooth_line.vala" + switch (property_id) { +#line 4 "../src/smooth_line.vala" + case LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY: +#line 4 "../src/smooth_line.vala" + live_chart_smooth_line_set_region (self, live_chart_value_get_region (value)); +#line 4 "../src/smooth_line.vala" + break; +#line 865 "smooth_line.c" + default: +#line 4 "../src/smooth_line.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/smooth_line.vala" + break; +#line 871 "smooth_line.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/smooth_line_area.c b/iPDC/lib/liblivechart.so.p/smooth_line_area.c new file mode 100644 index 0000000..023d8a3 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/smooth_line_area.c @@ -0,0 +1,564 @@ +/* smooth_line_area.c generated by valac 0.56.0, the Vala compiler + * generated from smooth_line_area.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_SMOOTH_LINE_AREA_0_PROPERTY, + LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY, + LIVE_CHART_SMOOTH_LINE_AREA_NUM_PROPERTIES +}; +static GParamSpec* live_chart_smooth_line_area_properties[LIVE_CHART_SMOOTH_LINE_AREA_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _cairo_path_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_path_destroy (var), NULL))) +#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL))) +typedef struct _Block5Data Block5Data; + +struct _LiveChartSmoothLineAreaPrivate { + gdouble _area_alpha; +}; + +struct _Block5Data { + int _ref_count_; + LiveChartSmoothLineArea* self; + LiveChartBoundaries boundaries; + cairo_t* ctx; +}; + +static gint LiveChartSmoothLineArea_private_offset; +static gpointer live_chart_smooth_line_area_parent_class = NULL; + +static void live_chart_smooth_line_area_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static Block5Data* block5_data_ref (Block5Data* _data5_); +static void block5_data_unref (void * _userdata_); +static gboolean __lambda14_ (Block5Data* _data5_, + LiveChartIntersection* intersection); +static gboolean ___lambda14__gee_forall_func (gpointer g, + gpointer self); +static void live_chart_smooth_line_area_finalize (GObject * obj); +static GType live_chart_smooth_line_area_get_type_once (void); +static void _vala_live_chart_smooth_line_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_smooth_line_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_smooth_line_area_get_instance_private (LiveChartSmoothLineArea* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartSmoothLineArea_private_offset); +} + +LiveChartSmoothLineArea* +live_chart_smooth_line_area_construct (GType object_type, + LiveChartValues* values) +{ + LiveChartSmoothLineArea * self = NULL; +#line 8 "../src/smooth_line_area.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 9 "../src/smooth_line_area.vala" + self = (LiveChartSmoothLineArea*) live_chart_smooth_line_construct (object_type, values); +#line 8 "../src/smooth_line_area.vala" + return self; +#line 77 "smooth_line_area.c" +} + +LiveChartSmoothLineArea* +live_chart_smooth_line_area_new (LiveChartValues* values) +{ +#line 8 "../src/smooth_line_area.vala" + return live_chart_smooth_line_area_construct (LIVE_CHART_TYPE_SMOOTH_LINE_AREA, values); +#line 85 "smooth_line_area.c" +} + +static void +live_chart_smooth_line_area_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartSmoothLineArea * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 11 "../src/smooth_line_area.vala" + self = (LiveChartSmoothLineArea*) base; +#line 11 "../src/smooth_line_area.vala" + g_return_if_fail (ctx != NULL); +#line 11 "../src/smooth_line_area.vala" + g_return_if_fail (config != NULL); +#line 12 "../src/smooth_line_area.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 12 "../src/smooth_line_area.vala" + _tmp1_ = _tmp0_; +#line 12 "../src/smooth_line_area.vala" + if (_tmp1_) { +#line 108 "smooth_line_area.c" + LiveChartPoints* points = NULL; + LiveChartValues* _tmp2_; + LiveChartPoints* _tmp3_; + LiveChartPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 13 "../src/smooth_line_area.vala" + _tmp2_ = ((LiveChartSerieRenderer*) self)->values; +#line 13 "../src/smooth_line_area.vala" + _tmp3_ = live_chart_points_create (_tmp2_, config); +#line 13 "../src/smooth_line_area.vala" + points = _tmp3_; +#line 14 "../src/smooth_line_area.vala" + _tmp4_ = points; +#line 14 "../src/smooth_line_area.vala" + _tmp5_ = live_chart_points_get_size (_tmp4_); +#line 14 "../src/smooth_line_area.vala" + _tmp6_ = _tmp5_; +#line 14 "../src/smooth_line_area.vala" + if (_tmp6_ > 0) { +#line 129 "smooth_line_area.c" + cairo_path_t* path = NULL; + LiveChartPoints* _tmp7_; + cairo_path_t* _tmp8_; + LiveChartArea* area = NULL; + LiveChartPoints* _tmp9_; + GdkRGBA _tmp10_ = {0}; + GdkRGBA _tmp11_; + gdouble _tmp12_; + LiveChartArea* _tmp13_; + LiveChartArea* _tmp14_; + cairo_path_t* _tmp15_; + LiveChartArea* _tmp16_; +#line 16 "../src/smooth_line_area.vala" + cairo_push_group (ctx); +#line 17 "../src/smooth_line_area.vala" + _tmp7_ = points; +#line 17 "../src/smooth_line_area.vala" + _tmp8_ = live_chart_smooth_line_draw_smooth_line ((LiveChartSmoothLine*) self, _tmp7_, ctx, config); +#line 17 "../src/smooth_line_area.vala" + path = _tmp8_; +#line 18 "../src/smooth_line_area.vala" + cairo_stroke_preserve (ctx); +#line 20 "../src/smooth_line_area.vala" + _tmp9_ = points; +#line 20 "../src/smooth_line_area.vala" + live_chart_serie_renderer_get_main_color ((LiveChartSerieRenderer*) self, &_tmp10_); +#line 20 "../src/smooth_line_area.vala" + _tmp11_ = _tmp10_; +#line 20 "../src/smooth_line_area.vala" + _tmp12_ = self->priv->_area_alpha; +#line 20 "../src/smooth_line_area.vala" + _tmp13_ = live_chart_area_new (_tmp9_, &_tmp11_, _tmp12_); +#line 20 "../src/smooth_line_area.vala" + area = _tmp13_; +#line 21 "../src/smooth_line_area.vala" + _tmp14_ = area; +#line 21 "../src/smooth_line_area.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp14_, ctx, config); +#line 22 "../src/smooth_line_area.vala" + cairo_fill (ctx); +#line 24 "../src/smooth_line_area.vala" + cairo_set_operator (ctx, CAIRO_OPERATOR_ATOP); +#line 25 "../src/smooth_line_area.vala" + live_chart_smooth_line_draw_regions_on_line ((LiveChartSmoothLine*) self, ctx, config); +#line 26 "../src/smooth_line_area.vala" + cairo_fill (ctx); +#line 27 "../src/smooth_line_area.vala" + cairo_pop_group_to_source (ctx); +#line 29 "../src/smooth_line_area.vala" + cairo_save (ctx); +#line 30 "../src/smooth_line_area.vala" + _tmp15_ = path; +#line 30 "../src/smooth_line_area.vala" + cairo_append_path (ctx, _tmp15_); +#line 31 "../src/smooth_line_area.vala" + _tmp16_ = area; +#line 31 "../src/smooth_line_area.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp16_, ctx, config); +#line 32 "../src/smooth_line_area.vala" + cairo_clip (ctx); +#line 34 "../src/smooth_line_area.vala" + live_chart_smooth_line_area_draw_regions_on_area (self, ctx, config); +#line 35 "../src/smooth_line_area.vala" + cairo_restore (ctx); +#line 36 "../src/smooth_line_area.vala" + cairo_paint (ctx); +#line 14 "../src/smooth_line_area.vala" + _g_object_unref0 (area); +#line 14 "../src/smooth_line_area.vala" + _cairo_path_destroy0 (path); +#line 200 "smooth_line_area.c" + } +#line 12 "../src/smooth_line_area.vala" + _g_object_unref0 (points); +#line 204 "smooth_line_area.c" + } +} + +static gpointer +_cairo_reference0 (gpointer self) +{ +#line 42 "../src/smooth_line_area.vala" + return self ? cairo_reference (self) : NULL; +#line 213 "smooth_line_area.c" +} + +static Block5Data* +block5_data_ref (Block5Data* _data5_) +{ +#line 42 "../src/smooth_line_area.vala" + g_atomic_int_inc (&_data5_->_ref_count_); +#line 42 "../src/smooth_line_area.vala" + return _data5_; +#line 223 "smooth_line_area.c" +} + +static void +block5_data_unref (void * _userdata_) +{ + Block5Data* _data5_; + _data5_ = (Block5Data*) _userdata_; +#line 42 "../src/smooth_line_area.vala" + if (g_atomic_int_dec_and_test (&_data5_->_ref_count_)) { +#line 233 "smooth_line_area.c" + LiveChartSmoothLineArea* self; +#line 42 "../src/smooth_line_area.vala" + self = _data5_->self; +#line 42 "../src/smooth_line_area.vala" + _cairo_destroy0 (_data5_->ctx); +#line 42 "../src/smooth_line_area.vala" + _g_object_unref0 (self); +#line 42 "../src/smooth_line_area.vala" + g_slice_free (Block5Data, _data5_); +#line 243 "smooth_line_area.c" + } +} + +static gboolean +__lambda14_ (Block5Data* _data5_, + LiveChartIntersection* intersection) +{ + LiveChartSmoothLineArea* self; + gboolean result; +#line 44 "../src/smooth_line_area.vala" + self = _data5_->self; +#line 45 "../src/smooth_line_area.vala" + if (intersection != NULL) { +#line 257 "smooth_line_area.c" + gdouble _tmp0_; + gdouble _tmp1_; + LiveChartBoundaries _tmp2_; + LiveChartBoundary _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + gdouble _tmp6_; + gdouble _tmp7_; + LiveChartBoundaries _tmp8_; + LiveChartRegion* _tmp9_; + LiveChartRegion* _tmp10_; + GdkRGBA _tmp11_ = {0}; + GdkRGBA _tmp12_; + LiveChartRegion* _tmp13_; + LiveChartRegion* _tmp14_; + GdkRGBA _tmp15_ = {0}; + GdkRGBA _tmp16_; + LiveChartRegion* _tmp17_; + LiveChartRegion* _tmp18_; + GdkRGBA _tmp19_ = {0}; + GdkRGBA _tmp20_; + LiveChartRegion* _tmp21_; + LiveChartRegion* _tmp22_; + GdkRGBA _tmp23_ = {0}; + GdkRGBA _tmp24_; +#line 46 "../src/smooth_line_area.vala" + _tmp0_ = live_chart_intersection_get_start_x (intersection); +#line 46 "../src/smooth_line_area.vala" + _tmp1_ = _tmp0_; +#line 46 "../src/smooth_line_area.vala" + _tmp2_ = _data5_->boundaries; +#line 46 "../src/smooth_line_area.vala" + _tmp3_ = _tmp2_.y; +#line 46 "../src/smooth_line_area.vala" + _tmp4_ = live_chart_intersection_get_end_x (intersection); +#line 46 "../src/smooth_line_area.vala" + _tmp5_ = _tmp4_; +#line 46 "../src/smooth_line_area.vala" + _tmp6_ = live_chart_intersection_get_start_x (intersection); +#line 46 "../src/smooth_line_area.vala" + _tmp7_ = _tmp6_; +#line 46 "../src/smooth_line_area.vala" + _tmp8_ = _data5_->boundaries; +#line 46 "../src/smooth_line_area.vala" + cairo_rectangle (_data5_->ctx, _tmp1_, (gdouble) _tmp3_.min, _tmp5_ - _tmp7_, (gdouble) _tmp8_.height); +#line 47 "../src/smooth_line_area.vala" + _tmp9_ = live_chart_intersection_get_region (intersection); +#line 47 "../src/smooth_line_area.vala" + _tmp10_ = _tmp9_; +#line 47 "../src/smooth_line_area.vala" + live_chart_region_get_area_color (_tmp10_, &_tmp11_); +#line 47 "../src/smooth_line_area.vala" + _tmp12_ = _tmp11_; +#line 47 "../src/smooth_line_area.vala" + _tmp13_ = live_chart_intersection_get_region (intersection); +#line 47 "../src/smooth_line_area.vala" + _tmp14_ = _tmp13_; +#line 47 "../src/smooth_line_area.vala" + live_chart_region_get_area_color (_tmp14_, &_tmp15_); +#line 47 "../src/smooth_line_area.vala" + _tmp16_ = _tmp15_; +#line 47 "../src/smooth_line_area.vala" + _tmp17_ = live_chart_intersection_get_region (intersection); +#line 47 "../src/smooth_line_area.vala" + _tmp18_ = _tmp17_; +#line 47 "../src/smooth_line_area.vala" + live_chart_region_get_area_color (_tmp18_, &_tmp19_); +#line 47 "../src/smooth_line_area.vala" + _tmp20_ = _tmp19_; +#line 47 "../src/smooth_line_area.vala" + _tmp21_ = live_chart_intersection_get_region (intersection); +#line 47 "../src/smooth_line_area.vala" + _tmp22_ = _tmp21_; +#line 47 "../src/smooth_line_area.vala" + live_chart_region_get_area_color (_tmp22_, &_tmp23_); +#line 47 "../src/smooth_line_area.vala" + _tmp24_ = _tmp23_; +#line 47 "../src/smooth_line_area.vala" + cairo_set_source_rgba (_data5_->ctx, _tmp12_.red, _tmp16_.green, _tmp20_.blue, _tmp24_.alpha); +#line 48 "../src/smooth_line_area.vala" + cairo_fill (_data5_->ctx); +#line 339 "smooth_line_area.c" + } +#line 50 "../src/smooth_line_area.vala" + result = TRUE; +#line 50 "../src/smooth_line_area.vala" + _g_object_unref0 (intersection); +#line 50 "../src/smooth_line_area.vala" + return result; +#line 347 "smooth_line_area.c" +} + +static gboolean +___lambda14__gee_forall_func (gpointer g, + gpointer self) +{ + gboolean result; + result = __lambda14_ (self, (LiveChartIntersection*) g); +#line 44 "../src/smooth_line_area.vala" + return result; +#line 358 "smooth_line_area.c" +} + +void +live_chart_smooth_line_area_draw_regions_on_area (LiveChartSmoothLineArea* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + Block5Data* _data5_; + cairo_t* _tmp0_; + LiveChartBoundaries _tmp1_ = {0}; + LiveChartIntersections* _tmp2_; +#line 42 "../src/smooth_line_area.vala" + g_return_if_fail (self != NULL); +#line 42 "../src/smooth_line_area.vala" + g_return_if_fail (ctx != NULL); +#line 42 "../src/smooth_line_area.vala" + g_return_if_fail (config != NULL); +#line 42 "../src/smooth_line_area.vala" + _data5_ = g_slice_new0 (Block5Data); +#line 42 "../src/smooth_line_area.vala" + _data5_->_ref_count_ = 1; +#line 42 "../src/smooth_line_area.vala" + _data5_->self = g_object_ref (self); +#line 42 "../src/smooth_line_area.vala" + _tmp0_ = _cairo_reference0 (ctx); +#line 42 "../src/smooth_line_area.vala" + _cairo_destroy0 (_data5_->ctx); +#line 42 "../src/smooth_line_area.vala" + _data5_->ctx = _tmp0_; +#line 43 "../src/smooth_line_area.vala" + live_chart_config_boundaries (config, &_tmp1_); +#line 43 "../src/smooth_line_area.vala" + _data5_->boundaries = _tmp1_; +#line 44 "../src/smooth_line_area.vala" + _tmp2_ = ((LiveChartSmoothLine*) self)->intersections; +#line 44 "../src/smooth_line_area.vala" + live_chart_intersections_foreach (_tmp2_, ___lambda14__gee_forall_func, _data5_); +#line 42 "../src/smooth_line_area.vala" + block5_data_unref (_data5_); +#line 42 "../src/smooth_line_area.vala" + _data5_ = NULL; +#line 400 "smooth_line_area.c" +} + +gdouble +live_chart_smooth_line_area_get_area_alpha (LiveChartSmoothLineArea* self) +{ + gdouble result; +#line 6 "../src/smooth_line_area.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 6 "../src/smooth_line_area.vala" + result = self->priv->_area_alpha; +#line 6 "../src/smooth_line_area.vala" + return result; +#line 413 "smooth_line_area.c" +} + +void +live_chart_smooth_line_area_set_area_alpha (LiveChartSmoothLineArea* self, + gdouble value) +{ + gdouble old_value; +#line 6 "../src/smooth_line_area.vala" + g_return_if_fail (self != NULL); +#line 6 "../src/smooth_line_area.vala" + old_value = live_chart_smooth_line_area_get_area_alpha (self); +#line 6 "../src/smooth_line_area.vala" + if (old_value != value) { +#line 6 "../src/smooth_line_area.vala" + self->priv->_area_alpha = value; +#line 6 "../src/smooth_line_area.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_smooth_line_area_properties[LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY]); +#line 431 "smooth_line_area.c" + } +} + +static void +live_chart_smooth_line_area_class_init (LiveChartSmoothLineAreaClass * klass, + gpointer klass_data) +{ +#line 4 "../src/smooth_line_area.vala" + live_chart_smooth_line_area_parent_class = g_type_class_peek_parent (klass); +#line 4 "../src/smooth_line_area.vala" + g_type_class_adjust_private_offset (klass, &LiveChartSmoothLineArea_private_offset); +#line 4 "../src/smooth_line_area.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_smooth_line_area_real_draw; +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_smooth_line_area_get_property; +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_smooth_line_area_set_property; +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_smooth_line_area_finalize; +#line 4 "../src/smooth_line_area.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY, live_chart_smooth_line_area_properties[LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY] = g_param_spec_double ("area-alpha", "area-alpha", "area-alpha", -G_MAXDOUBLE, G_MAXDOUBLE, 0.1, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 453 "smooth_line_area.c" +} + +static void +live_chart_smooth_line_area_instance_init (LiveChartSmoothLineArea * self, + gpointer klass) +{ +#line 4 "../src/smooth_line_area.vala" + self->priv = live_chart_smooth_line_area_get_instance_private (self); +#line 6 "../src/smooth_line_area.vala" + self->priv->_area_alpha = 0.1; +#line 464 "smooth_line_area.c" +} + +static void +live_chart_smooth_line_area_finalize (GObject * obj) +{ + LiveChartSmoothLineArea * self; +#line 4 "../src/smooth_line_area.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineArea); +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_CLASS (live_chart_smooth_line_area_parent_class)->finalize (obj); +#line 475 "smooth_line_area.c" +} + +static GType +live_chart_smooth_line_area_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartSmoothLineAreaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_smooth_line_area_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSmoothLineArea), 0, (GInstanceInitFunc) live_chart_smooth_line_area_instance_init, NULL }; + GType live_chart_smooth_line_area_type_id; + live_chart_smooth_line_area_type_id = g_type_register_static (LIVE_CHART_TYPE_SMOOTH_LINE, "LiveChartSmoothLineArea", &g_define_type_info, 0); + LiveChartSmoothLineArea_private_offset = g_type_add_instance_private (live_chart_smooth_line_area_type_id, sizeof (LiveChartSmoothLineAreaPrivate)); + return live_chart_smooth_line_area_type_id; +} + +GType +live_chart_smooth_line_area_get_type (void) +{ + static volatile gsize live_chart_smooth_line_area_type_id__once = 0; + if (g_once_init_enter (&live_chart_smooth_line_area_type_id__once)) { + GType live_chart_smooth_line_area_type_id; + live_chart_smooth_line_area_type_id = live_chart_smooth_line_area_get_type_once (); + g_once_init_leave (&live_chart_smooth_line_area_type_id__once, live_chart_smooth_line_area_type_id); + } + return live_chart_smooth_line_area_type_id__once; +} + +static void +_vala_live_chart_smooth_line_area_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartSmoothLineArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineArea); +#line 4 "../src/smooth_line_area.vala" + switch (property_id) { +#line 4 "../src/smooth_line_area.vala" + case LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY: +#line 4 "../src/smooth_line_area.vala" + g_value_set_double (value, live_chart_smooth_line_area_get_area_alpha (self)); +#line 4 "../src/smooth_line_area.vala" + break; +#line 516 "smooth_line_area.c" + default: +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/smooth_line_area.vala" + break; +#line 522 "smooth_line_area.c" + } +} + +static void +_vala_live_chart_smooth_line_area_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartSmoothLineArea * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE_AREA, LiveChartSmoothLineArea); +#line 4 "../src/smooth_line_area.vala" + switch (property_id) { +#line 4 "../src/smooth_line_area.vala" + case LIVE_CHART_SMOOTH_LINE_AREA_AREA_ALPHA_PROPERTY: +#line 4 "../src/smooth_line_area.vala" + live_chart_smooth_line_area_set_area_alpha (self, g_value_get_double (value)); +#line 4 "../src/smooth_line_area.vala" + break; +#line 542 "smooth_line_area.c" + default: +#line 4 "../src/smooth_line_area.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 4 "../src/smooth_line_area.vala" + break; +#line 548 "smooth_line_area.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/static/static_chart.c b/iPDC/lib/liblivechart.so.p/static/static_chart.c new file mode 100644 index 0000000..e05b176 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/static/static_chart.c @@ -0,0 +1,672 @@ +/* static_chart.c generated by valac 0.56.0, the Vala compiler + * generated from static_chart.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_CHART_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY, + LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY, + LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY, + LIVE_CHART_STATIC_STATIC_CHART_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_config_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_config_unref (var), NULL))) + +struct _LiveChartStaticStaticChartPrivate { + LiveChartStaticStaticGrid* _grid; + LiveChartBackground* _background; + LiveChartLegend* _legend; + GeeArrayList* categories; +}; + +static gint LiveChartStaticStaticChart_private_offset; +static gpointer live_chart_static_static_chart_parent_class = NULL; + +static void __lambda16_ (LiveChartStaticStaticChart* self, + GtkAllocation* allocation); +static void ___lambda16__gtk_widget_size_allocate (GtkWidget* _sender, + GtkAllocation* allocation, + gpointer self); +static gboolean live_chart_static_static_chart_render (LiveChartStaticStaticChart* self, + GtkWidget* _, + cairo_t* ctx); +static gboolean _live_chart_static_static_chart_render_gtk_widget_draw (GtkWidget* _sender, + cairo_t* cr, + gpointer self); +static void live_chart_static_static_chart_finalize (GObject * obj); +static GType live_chart_static_static_chart_get_type_once (void); +static void _vala_live_chart_static_static_chart_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_chart_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_chart_get_instance_private (LiveChartStaticStaticChart* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticChart_private_offset); +} + +static gpointer +_live_chart_config_ref0 (gpointer self) +{ +#line 17 "../src/static/static_chart.vala" + return self ? live_chart_config_ref (self) : NULL; +#line 72 "static_chart.c" +} + +static void +__lambda16_ (LiveChartStaticStaticChart* self, + GtkAllocation* allocation) +{ + LiveChartConfig* _tmp0_; + GtkAllocation _tmp1_; + LiveChartConfig* _tmp2_; + GtkAllocation _tmp3_; +#line 18 "../src/static/static_chart.vala" + g_return_if_fail (allocation != NULL); +#line 19 "../src/static/static_chart.vala" + _tmp0_ = self->config; +#line 19 "../src/static/static_chart.vala" + _tmp1_ = *allocation; +#line 19 "../src/static/static_chart.vala" + live_chart_config_set_height (_tmp0_, _tmp1_.height); +#line 20 "../src/static/static_chart.vala" + _tmp2_ = self->config; +#line 20 "../src/static/static_chart.vala" + _tmp3_ = *allocation; +#line 20 "../src/static/static_chart.vala" + live_chart_config_set_width (_tmp2_, _tmp3_.width); +#line 97 "static_chart.c" +} + +static void +___lambda16__gtk_widget_size_allocate (GtkWidget* _sender, + GtkAllocation* allocation, + gpointer self) +{ +#line 18 "../src/static/static_chart.vala" + __lambda16_ ((LiveChartStaticStaticChart*) self, allocation); +#line 107 "static_chart.c" +} + +static gboolean +_live_chart_static_static_chart_render_gtk_widget_draw (GtkWidget* _sender, + cairo_t* cr, + gpointer self) +{ + gboolean result; + result = live_chart_static_static_chart_render ((LiveChartStaticStaticChart*) self, _sender, cr); +#line 23 "../src/static/static_chart.vala" + return result; +#line 119 "static_chart.c" +} + +LiveChartStaticStaticChart* +live_chart_static_static_chart_construct (GType object_type, + LiveChartConfig* config) +{ + LiveChartStaticStaticChart * self = NULL; + LiveChartConfig* _tmp0_; + LiveChartStaticStaticSeries* _tmp1_; +#line 16 "../src/static/static_chart.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 16 "../src/static/static_chart.vala" + self = (LiveChartStaticStaticChart*) g_object_new (object_type, NULL); +#line 17 "../src/static/static_chart.vala" + _tmp0_ = _live_chart_config_ref0 (config); +#line 17 "../src/static/static_chart.vala" + _live_chart_config_unref0 (self->config); +#line 17 "../src/static/static_chart.vala" + self->config = _tmp0_; +#line 18 "../src/static/static_chart.vala" + g_signal_connect_object ((GtkWidget*) self, "size-allocate", (GCallback) ___lambda16__gtk_widget_size_allocate, self, 0); +#line 23 "../src/static/static_chart.vala" + g_signal_connect_object ((GtkWidget*) self, "draw", (GCallback) _live_chart_static_static_chart_render_gtk_widget_draw, self, 0); +#line 25 "../src/static/static_chart.vala" + _tmp1_ = live_chart_static_static_series_new (self); +#line 25 "../src/static/static_chart.vala" + _g_object_unref0 (self->series); +#line 25 "../src/static/static_chart.vala" + self->series = _tmp1_; +#line 16 "../src/static/static_chart.vala" + return self; +#line 151 "static_chart.c" +} + +LiveChartStaticStaticChart* +live_chart_static_static_chart_new (LiveChartConfig* config) +{ +#line 16 "../src/static/static_chart.vala" + return live_chart_static_static_chart_construct (LIVE_CHART_STATIC_TYPE_STATIC_CHART, config); +#line 159 "static_chart.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 29 "../src/static/static_chart.vala" + return self ? g_object_ref (self) : NULL; +#line 167 "static_chart.c" +} + +void +live_chart_static_static_chart_set_categories (LiveChartStaticStaticChart* self, + GeeArrayList* categories) +{ + GeeArrayList* _tmp0_; + LiveChartConfig* _tmp1_; + GeeArrayList* _tmp2_; +#line 28 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 28 "../src/static/static_chart.vala" + g_return_if_fail (categories != NULL); +#line 29 "../src/static/static_chart.vala" + _tmp0_ = _g_object_ref0 (categories); +#line 29 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->categories); +#line 29 "../src/static/static_chart.vala" + self->priv->categories = _tmp0_; +#line 30 "../src/static/static_chart.vala" + _tmp1_ = self->config; +#line 30 "../src/static/static_chart.vala" + _tmp2_ = _g_object_ref0 (categories); +#line 30 "../src/static/static_chart.vala" + _g_object_unref0 (_tmp1_->categories); +#line 30 "../src/static/static_chart.vala" + _tmp1_->categories = _tmp2_; +#line 195 "static_chart.c" +} + +void +live_chart_static_static_chart_add_serie (LiveChartStaticStaticChart* self, + LiveChartStaticStaticSerie* serie) +{ + LiveChartStaticStaticSeries* _tmp0_; + LiveChartStaticStaticSerie* _tmp1_; + LiveChartStaticStaticSerie* _tmp2_; +#line 33 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 33 "../src/static/static_chart.vala" + g_return_if_fail (serie != NULL); +#line 34 "../src/static/static_chart.vala" + _tmp0_ = self->series; +#line 34 "../src/static/static_chart.vala" + _tmp1_ = live_chart_static_static_series_register (_tmp0_, serie); +#line 34 "../src/static/static_chart.vala" + _tmp2_ = _tmp1_; +#line 34 "../src/static/static_chart.vala" + _g_object_unref0 (_tmp2_); +#line 217 "static_chart.c" +} + +static gboolean +live_chart_static_static_chart_render (LiveChartStaticStaticChart* self, + GtkWidget* _, + cairo_t* ctx) +{ + LiveChartConfig* _tmp0_; + LiveChartLegend* _tmp1_; + LiveChartBackground* _tmp2_; + LiveChartConfig* _tmp3_; + LiveChartStaticStaticGrid* _tmp4_; + LiveChartConfig* _tmp5_; + LiveChartLegend* _tmp6_; + LiveChartBoundaries boundaries = {0}; + LiveChartConfig* _tmp9_; + LiveChartBoundaries _tmp10_ = {0}; + gboolean result; +#line 38 "../src/static/static_chart.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 38 "../src/static/static_chart.vala" + g_return_val_if_fail (_ != NULL, FALSE); +#line 38 "../src/static/static_chart.vala" + g_return_val_if_fail (ctx != NULL, FALSE); +#line 40 "../src/static/static_chart.vala" + _tmp0_ = self->config; +#line 40 "../src/static/static_chart.vala" + _tmp1_ = self->priv->_legend; +#line 40 "../src/static/static_chart.vala" + live_chart_config_configure (_tmp0_, ctx, _tmp1_); +#line 42 "../src/static/static_chart.vala" + _tmp2_ = self->priv->_background; +#line 42 "../src/static/static_chart.vala" + _tmp3_ = self->config; +#line 42 "../src/static/static_chart.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp2_, ctx, _tmp3_); +#line 43 "../src/static/static_chart.vala" + _tmp4_ = self->priv->_grid; +#line 43 "../src/static/static_chart.vala" + _tmp5_ = self->config; +#line 43 "../src/static/static_chart.vala" + live_chart_drawable_draw ((LiveChartDrawable*) _tmp4_, ctx, _tmp5_); +#line 44 "../src/static/static_chart.vala" + _tmp6_ = self->priv->_legend; +#line 44 "../src/static/static_chart.vala" + if (_tmp6_ != NULL) { +#line 264 "static_chart.c" + LiveChartLegend* _tmp7_; + LiveChartConfig* _tmp8_; +#line 44 "../src/static/static_chart.vala" + _tmp7_ = self->priv->_legend; +#line 44 "../src/static/static_chart.vala" + _tmp8_ = self->config; +#line 44 "../src/static/static_chart.vala" + live_chart_legend_draw (_tmp7_, ctx, _tmp8_); +#line 273 "static_chart.c" + } +#line 46 "../src/static/static_chart.vala" + _tmp9_ = self->config; +#line 46 "../src/static/static_chart.vala" + live_chart_config_boundaries (_tmp9_, &_tmp10_); +#line 46 "../src/static/static_chart.vala" + boundaries = _tmp10_; +#line 281 "static_chart.c" + { + GeeIterator* _serie_it = NULL; + LiveChartStaticStaticSeries* _tmp11_; + GeeIterator* _tmp12_; +#line 47 "../src/static/static_chart.vala" + _tmp11_ = self->series; +#line 47 "../src/static/static_chart.vala" + _tmp12_ = live_chart_static_static_series_iterator (_tmp11_); +#line 47 "../src/static/static_chart.vala" + _serie_it = _tmp12_; +#line 47 "../src/static/static_chart.vala" + while (TRUE) { +#line 294 "static_chart.c" + GeeIterator* _tmp13_; + LiveChartDrawable* serie = NULL; + GeeIterator* _tmp14_; + gpointer _tmp15_; + LiveChartBoundaries _tmp16_; + LiveChartBoundary _tmp17_; + LiveChartBoundaries _tmp18_; + LiveChartBoundary _tmp19_; + LiveChartBoundaries _tmp20_; + LiveChartBoundary _tmp21_; + LiveChartBoundaries _tmp22_; + LiveChartBoundary _tmp23_; + LiveChartDrawable* _tmp24_; + LiveChartConfig* _tmp25_; +#line 47 "../src/static/static_chart.vala" + _tmp13_ = _serie_it; +#line 47 "../src/static/static_chart.vala" + if (!gee_iterator_next (_tmp13_)) { +#line 47 "../src/static/static_chart.vala" + break; +#line 315 "static_chart.c" + } +#line 47 "../src/static/static_chart.vala" + _tmp14_ = _serie_it; +#line 47 "../src/static/static_chart.vala" + _tmp15_ = gee_iterator_get (_tmp14_); +#line 47 "../src/static/static_chart.vala" + serie = (LiveChartDrawable*) ((LiveChartStaticStaticSerie*) _tmp15_); +#line 48 "../src/static/static_chart.vala" + _tmp16_ = boundaries; +#line 48 "../src/static/static_chart.vala" + _tmp17_ = _tmp16_.x; +#line 48 "../src/static/static_chart.vala" + _tmp18_ = boundaries; +#line 48 "../src/static/static_chart.vala" + _tmp19_ = _tmp18_.y; +#line 48 "../src/static/static_chart.vala" + _tmp20_ = boundaries; +#line 48 "../src/static/static_chart.vala" + _tmp21_ = _tmp20_.x; +#line 48 "../src/static/static_chart.vala" + _tmp22_ = boundaries; +#line 48 "../src/static/static_chart.vala" + _tmp23_ = _tmp22_.y; +#line 48 "../src/static/static_chart.vala" + cairo_rectangle (ctx, (gdouble) _tmp17_.min, (gdouble) _tmp19_.min, (gdouble) _tmp21_.max, (gdouble) _tmp23_.max); +#line 49 "../src/static/static_chart.vala" + cairo_clip (ctx); +#line 50 "../src/static/static_chart.vala" + _tmp24_ = serie; +#line 50 "../src/static/static_chart.vala" + _tmp25_ = self->config; +#line 50 "../src/static/static_chart.vala" + live_chart_drawable_draw (_tmp24_, ctx, _tmp25_); +#line 47 "../src/static/static_chart.vala" + _g_object_unref0 (serie); +#line 351 "static_chart.c" + } +#line 47 "../src/static/static_chart.vala" + _g_object_unref0 (_serie_it); +#line 355 "static_chart.c" + } +#line 53 "../src/static/static_chart.vala" + result = TRUE; +#line 53 "../src/static/static_chart.vala" + return result; +#line 361 "static_chart.c" +} + +LiveChartStaticStaticGrid* +live_chart_static_static_chart_get_grid (LiveChartStaticStaticChart* self) +{ + LiveChartStaticStaticGrid* result; + LiveChartStaticStaticGrid* _tmp0_; +#line 8 "../src/static/static_chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 8 "../src/static/static_chart.vala" + _tmp0_ = self->priv->_grid; +#line 8 "../src/static/static_chart.vala" + result = _tmp0_; +#line 8 "../src/static/static_chart.vala" + return result; +#line 377 "static_chart.c" +} + +void +live_chart_static_static_chart_set_grid (LiveChartStaticStaticChart* self, + LiveChartStaticStaticGrid* value) +{ + LiveChartStaticStaticGrid* old_value; +#line 8 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 8 "../src/static/static_chart.vala" + old_value = live_chart_static_static_chart_get_grid (self); +#line 8 "../src/static/static_chart.vala" + if (old_value != value) { +#line 391 "static_chart.c" + LiveChartStaticStaticGrid* _tmp0_; +#line 8 "../src/static/static_chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 8 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_grid); +#line 8 "../src/static/static_chart.vala" + self->priv->_grid = _tmp0_; +#line 8 "../src/static/static_chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY]); +#line 401 "static_chart.c" + } +} + +LiveChartBackground* +live_chart_static_static_chart_get_background (LiveChartStaticStaticChart* self) +{ + LiveChartBackground* result; + LiveChartBackground* _tmp0_; +#line 9 "../src/static/static_chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 9 "../src/static/static_chart.vala" + _tmp0_ = self->priv->_background; +#line 9 "../src/static/static_chart.vala" + result = _tmp0_; +#line 9 "../src/static/static_chart.vala" + return result; +#line 418 "static_chart.c" +} + +void +live_chart_static_static_chart_set_background (LiveChartStaticStaticChart* self, + LiveChartBackground* value) +{ + LiveChartBackground* old_value; +#line 9 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/static/static_chart.vala" + old_value = live_chart_static_static_chart_get_background (self); +#line 9 "../src/static/static_chart.vala" + if (old_value != value) { +#line 432 "static_chart.c" + LiveChartBackground* _tmp0_; +#line 9 "../src/static/static_chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 9 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_background); +#line 9 "../src/static/static_chart.vala" + self->priv->_background = _tmp0_; +#line 9 "../src/static/static_chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY]); +#line 442 "static_chart.c" + } +} + +LiveChartLegend* +live_chart_static_static_chart_get_legend (LiveChartStaticStaticChart* self) +{ + LiveChartLegend* result; + LiveChartLegend* _tmp0_; +#line 10 "../src/static/static_chart.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 10 "../src/static/static_chart.vala" + _tmp0_ = self->priv->_legend; +#line 10 "../src/static/static_chart.vala" + result = _tmp0_; +#line 10 "../src/static/static_chart.vala" + return result; +#line 459 "static_chart.c" +} + +void +live_chart_static_static_chart_set_legend (LiveChartStaticStaticChart* self, + LiveChartLegend* value) +{ + LiveChartLegend* old_value; +#line 10 "../src/static/static_chart.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/static/static_chart.vala" + old_value = live_chart_static_static_chart_get_legend (self); +#line 10 "../src/static/static_chart.vala" + if (old_value != value) { +#line 473 "static_chart.c" + LiveChartLegend* _tmp0_; +#line 10 "../src/static/static_chart.vala" + _tmp0_ = _g_object_ref0 (value); +#line 10 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_legend); +#line 10 "../src/static/static_chart.vala" + self->priv->_legend = _tmp0_; +#line 10 "../src/static/static_chart.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY]); +#line 483 "static_chart.c" + } +} + +static void +live_chart_static_static_chart_class_init (LiveChartStaticStaticChartClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_chart.vala" + live_chart_static_static_chart_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_chart.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticChart_private_offset); +#line 6 "../src/static/static_chart.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_chart_get_property; +#line 6 "../src/static/static_chart.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_chart_set_property; +#line 6 "../src/static/static_chart.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_chart_finalize; +#line 6 "../src/static/static_chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY] = g_param_spec_object ("grid", "grid", "grid", LIVE_CHART_STATIC_TYPE_STATIC_GRID, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY] = g_param_spec_object ("background", "background", "background", LIVE_CHART_TYPE_BACKGROUND, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_chart.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY, live_chart_static_static_chart_properties[LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY] = g_param_spec_object ("legend", "legend", "legend", LIVE_CHART_TYPE_LEGEND, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 507 "static_chart.c" +} + +static void +live_chart_static_static_chart_instance_init (LiveChartStaticStaticChart * self, + gpointer klass) +{ + LiveChartStaticStaticGrid* _tmp0_; + LiveChartBackground* _tmp1_; + LiveChartHorizontalLegend* _tmp2_; + GeeArrayList* _tmp3_; +#line 6 "../src/static/static_chart.vala" + self->priv = live_chart_static_static_chart_get_instance_private (self); +#line 8 "../src/static/static_chart.vala" + _tmp0_ = live_chart_static_static_grid_new (); +#line 8 "../src/static/static_chart.vala" + self->priv->_grid = _tmp0_; +#line 9 "../src/static/static_chart.vala" + _tmp1_ = live_chart_background_new (); +#line 9 "../src/static/static_chart.vala" + self->priv->_background = _tmp1_; +#line 10 "../src/static/static_chart.vala" + _tmp2_ = live_chart_horizontal_legend_new (); +#line 10 "../src/static/static_chart.vala" + self->priv->_legend = (LiveChartLegend*) _tmp2_; +#line 14 "../src/static/static_chart.vala" + _tmp3_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 14 "../src/static/static_chart.vala" + self->priv->categories = _tmp3_; +#line 536 "static_chart.c" +} + +static void +live_chart_static_static_chart_finalize (GObject * obj) +{ + LiveChartStaticStaticChart * self; +#line 6 "../src/static/static_chart.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChart); +#line 8 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_grid); +#line 9 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_background); +#line 10 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->_legend); +#line 11 "../src/static/static_chart.vala" + _live_chart_config_unref0 (self->config); +#line 12 "../src/static/static_chart.vala" + _g_object_unref0 (self->series); +#line 14 "../src/static/static_chart.vala" + _g_object_unref0 (self->priv->categories); +#line 6 "../src/static/static_chart.vala" + G_OBJECT_CLASS (live_chart_static_static_chart_parent_class)->finalize (obj); +#line 559 "static_chart.c" +} + +static GType +live_chart_static_static_chart_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticChartClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_chart_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticChart), 0, (GInstanceInitFunc) live_chart_static_static_chart_instance_init, NULL }; + GType live_chart_static_static_chart_type_id; + live_chart_static_static_chart_type_id = g_type_register_static (gtk_drawing_area_get_type (), "LiveChartStaticStaticChart", &g_define_type_info, 0); + LiveChartStaticStaticChart_private_offset = g_type_add_instance_private (live_chart_static_static_chart_type_id, sizeof (LiveChartStaticStaticChartPrivate)); + return live_chart_static_static_chart_type_id; +} + +GType +live_chart_static_static_chart_get_type (void) +{ + static volatile gsize live_chart_static_static_chart_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_chart_type_id__once)) { + GType live_chart_static_static_chart_type_id; + live_chart_static_static_chart_type_id = live_chart_static_static_chart_get_type_once (); + g_once_init_leave (&live_chart_static_static_chart_type_id__once, live_chart_static_static_chart_type_id); + } + return live_chart_static_static_chart_type_id__once; +} + +static void +_vala_live_chart_static_static_chart_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticChart * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChart); +#line 6 "../src/static/static_chart.vala" + switch (property_id) { +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY: +#line 6 "../src/static/static_chart.vala" + g_value_set_object (value, live_chart_static_static_chart_get_grid (self)); +#line 6 "../src/static/static_chart.vala" + break; +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY: +#line 6 "../src/static/static_chart.vala" + g_value_set_object (value, live_chart_static_static_chart_get_background (self)); +#line 6 "../src/static/static_chart.vala" + break; +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY: +#line 6 "../src/static/static_chart.vala" + g_value_set_object (value, live_chart_static_static_chart_get_legend (self)); +#line 6 "../src/static/static_chart.vala" + break; +#line 612 "static_chart.c" + default: +#line 6 "../src/static/static_chart.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_chart.vala" + break; +#line 618 "static_chart.c" + } +} + +static void +_vala_live_chart_static_static_chart_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticChart * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_CHART, LiveChartStaticStaticChart); +#line 6 "../src/static/static_chart.vala" + switch (property_id) { +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_GRID_PROPERTY: +#line 6 "../src/static/static_chart.vala" + live_chart_static_static_chart_set_grid (self, g_value_get_object (value)); +#line 6 "../src/static/static_chart.vala" + break; +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_BACKGROUND_PROPERTY: +#line 6 "../src/static/static_chart.vala" + live_chart_static_static_chart_set_background (self, g_value_get_object (value)); +#line 6 "../src/static/static_chart.vala" + break; +#line 6 "../src/static/static_chart.vala" + case LIVE_CHART_STATIC_STATIC_CHART_LEGEND_PROPERTY: +#line 6 "../src/static/static_chart.vala" + live_chart_static_static_chart_set_legend (self, g_value_get_object (value)); +#line 6 "../src/static/static_chart.vala" + break; +#line 650 "static_chart.c" + default: +#line 6 "../src/static/static_chart.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_chart.vala" + break; +#line 656 "static_chart.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/static/static_grid.c b/iPDC/lib/liblivechart.so.p/static/static_grid.c new file mode 100644 index 0000000..aaa72b7 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/static/static_grid.c @@ -0,0 +1,1270 @@ +/* static_grid.c generated by valac 0.56.0, the Vala compiler + * generated from static_grid.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_GRID_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY, + LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY, + LIVE_CHART_STATIC_STATIC_GRID_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_NUM_PROPERTIES]; +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartStaticStaticGridPrivate { + gboolean _visible; + GdkRGBA _main_color; +}; + +static gint LiveChartStaticStaticGrid_private_offset; +static gpointer live_chart_static_static_grid_parent_class = NULL; +static LiveChartDrawableIface * live_chart_static_static_grid_live_chart_drawable_parent_iface = NULL; + +static void live_chart_static_static_grid_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_static_static_grid_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static gboolean _gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2); +static void live_chart_static_static_grid_finalize (GObject * obj); +static GType live_chart_static_static_grid_get_type_once (void); +static void _vala_live_chart_static_static_grid_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_grid_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_grid_get_instance_private (LiveChartStaticStaticGrid* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticGrid_private_offset); +} + +static void +live_chart_static_static_grid_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartStaticStaticGrid * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 25 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) base; +#line 25 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 25 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 26 "../src/static/static_grid.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 26 "../src/static/static_grid.vala" + _tmp1_ = _tmp0_; +#line 26 "../src/static/static_grid.vala" + if (_tmp1_) { +#line 27 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_abscissa (self, ctx, config); +#line 28 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_ordinate (self, ctx, config); +#line 29 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_grid (self, ctx, config); +#line 30 "../src/static/static_grid.vala" + live_chart_static_static_grid_update_bounding_box (self, config); +#line 31 "../src/static/static_grid.vala" + live_chart_static_static_grid_debug (self, ctx); +#line 90 "static_grid.c" + } +} + +static void +live_chart_static_static_grid_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartStaticStaticGrid * self; + LiveChartBoundingBox _tmp0_; +#line 35 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) base; +#line 36 "../src/static/static_grid.vala" + _tmp0_ = self->bounding_box; +#line 36 "../src/static/static_grid.vala" + *result = _tmp0_; +#line 36 "../src/static/static_grid.vala" + return; +#line 108 "static_grid.c" +} + +void +live_chart_static_static_grid_restore (LiveChartStaticStaticGrid* self, + cairo_t* ctx) +{ + GdkRGBA _tmp0_; + GdkRGBA _tmp1_; + GdkRGBA _tmp2_; + GdkRGBA _tmp3_; +#line 39 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 39 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 40 "../src/static/static_grid.vala" + _tmp0_ = self->priv->_main_color; +#line 40 "../src/static/static_grid.vala" + _tmp1_ = self->priv->_main_color; +#line 40 "../src/static/static_grid.vala" + _tmp2_ = self->priv->_main_color; +#line 40 "../src/static/static_grid.vala" + _tmp3_ = self->priv->_main_color; +#line 40 "../src/static/static_grid.vala" + cairo_set_source_rgba (ctx, _tmp0_.red, _tmp1_.green, _tmp2_.blue, _tmp3_.alpha); +#line 41 "../src/static/static_grid.vala" + cairo_set_line_width (ctx, 0.5); +#line 42 "../src/static/static_grid.vala" + cairo_set_dash (ctx, NULL, (gint) 0, 0.0); +#line 137 "static_grid.c" +} + +void +live_chart_static_static_grid_render_abscissa (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gboolean _tmp0_ = FALSE; + LiveChartXAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; +#line 45 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 45 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 46 "../src/static/static_grid.vala" + _tmp1_ = config->x_axis; +#line 46 "../src/static/static_grid.vala" + _tmp2_ = live_chart_xaxis_get_visible (_tmp1_); +#line 46 "../src/static/static_grid.vala" + _tmp3_ = _tmp2_; +#line 46 "../src/static/static_grid.vala" + if (_tmp3_) { +#line 163 "static_grid.c" + LiveChartXAxis* _tmp4_; + LiveChartPath* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 46 "../src/static/static_grid.vala" + _tmp4_ = config->x_axis; +#line 46 "../src/static/static_grid.vala" + _tmp5_ = _tmp4_->axis; +#line 46 "../src/static/static_grid.vala" + _tmp6_ = live_chart_path_get_visible (_tmp5_); +#line 46 "../src/static/static_grid.vala" + _tmp7_ = _tmp6_; +#line 46 "../src/static/static_grid.vala" + _tmp0_ = _tmp7_; +#line 178 "static_grid.c" + } else { +#line 46 "../src/static/static_grid.vala" + _tmp0_ = FALSE; +#line 182 "static_grid.c" + } +#line 46 "../src/static/static_grid.vala" + if (_tmp0_) { +#line 186 "static_grid.c" + LiveChartXAxis* _tmp8_; + LiveChartPath* _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + gint _tmp12_; + LiveChartPadding _tmp13_; + gint _tmp14_; + gint _tmp15_; + LiveChartPadding _tmp16_; + gint _tmp17_; + gint _tmp18_; + LiveChartPadding _tmp19_; +#line 47 "../src/static/static_grid.vala" + _tmp8_ = config->x_axis; +#line 47 "../src/static/static_grid.vala" + _tmp9_ = _tmp8_->axis; +#line 47 "../src/static/static_grid.vala" + live_chart_path_configure (_tmp9_, ctx); +#line 48 "../src/static/static_grid.vala" + _tmp10_ = config->padding; +#line 48 "../src/static/static_grid.vala" + _tmp11_ = live_chart_config_get_height (config); +#line 48 "../src/static/static_grid.vala" + _tmp12_ = _tmp11_; +#line 48 "../src/static/static_grid.vala" + _tmp13_ = config->padding; +#line 48 "../src/static/static_grid.vala" + cairo_move_to (ctx, _tmp10_.left + 0.5, (_tmp12_ - _tmp13_.bottom) + 0.5); +#line 49 "../src/static/static_grid.vala" + _tmp14_ = live_chart_config_get_width (config); +#line 49 "../src/static/static_grid.vala" + _tmp15_ = _tmp14_; +#line 49 "../src/static/static_grid.vala" + _tmp16_ = config->padding; +#line 49 "../src/static/static_grid.vala" + _tmp17_ = live_chart_config_get_height (config); +#line 49 "../src/static/static_grid.vala" + _tmp18_ = _tmp17_; +#line 49 "../src/static/static_grid.vala" + _tmp19_ = config->padding; +#line 49 "../src/static/static_grid.vala" + cairo_line_to (ctx, (_tmp15_ - _tmp16_.right) + 0.5, (_tmp18_ - _tmp19_.bottom) + 0.5); +#line 50 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 51 "../src/static/static_grid.vala" + live_chart_static_static_grid_restore (self, ctx); +#line 233 "static_grid.c" + } +} + +void +live_chart_static_static_grid_render_ordinate (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + gboolean _tmp0_ = FALSE; + LiveChartYAxis* _tmp1_; + gboolean _tmp2_; + gboolean _tmp3_; +#line 55 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 55 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 55 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 56 "../src/static/static_grid.vala" + _tmp1_ = config->y_axis; +#line 56 "../src/static/static_grid.vala" + _tmp2_ = live_chart_yaxis_get_visible (_tmp1_); +#line 56 "../src/static/static_grid.vala" + _tmp3_ = _tmp2_; +#line 56 "../src/static/static_grid.vala" + if (_tmp3_) { +#line 260 "static_grid.c" + LiveChartYAxis* _tmp4_; + LiveChartPath* _tmp5_; + gboolean _tmp6_; + gboolean _tmp7_; +#line 56 "../src/static/static_grid.vala" + _tmp4_ = config->y_axis; +#line 56 "../src/static/static_grid.vala" + _tmp5_ = _tmp4_->axis; +#line 56 "../src/static/static_grid.vala" + _tmp6_ = live_chart_path_get_visible (_tmp5_); +#line 56 "../src/static/static_grid.vala" + _tmp7_ = _tmp6_; +#line 56 "../src/static/static_grid.vala" + _tmp0_ = _tmp7_; +#line 275 "static_grid.c" + } else { +#line 56 "../src/static/static_grid.vala" + _tmp0_ = FALSE; +#line 279 "static_grid.c" + } +#line 56 "../src/static/static_grid.vala" + if (_tmp0_) { +#line 283 "static_grid.c" + LiveChartYAxis* _tmp8_; + LiveChartPath* _tmp9_; + LiveChartPadding _tmp10_; + gint _tmp11_; + gint _tmp12_; + LiveChartPadding _tmp13_; + LiveChartPadding _tmp14_; + LiveChartPadding _tmp15_; +#line 57 "../src/static/static_grid.vala" + _tmp8_ = config->y_axis; +#line 57 "../src/static/static_grid.vala" + _tmp9_ = _tmp8_->axis; +#line 57 "../src/static/static_grid.vala" + live_chart_path_configure (_tmp9_, ctx); +#line 58 "../src/static/static_grid.vala" + _tmp10_ = config->padding; +#line 58 "../src/static/static_grid.vala" + _tmp11_ = live_chart_config_get_height (config); +#line 58 "../src/static/static_grid.vala" + _tmp12_ = _tmp11_; +#line 58 "../src/static/static_grid.vala" + _tmp13_ = config->padding; +#line 58 "../src/static/static_grid.vala" + cairo_move_to (ctx, _tmp10_.left + 0.5, (_tmp12_ - _tmp13_.bottom) + 0.5); +#line 59 "../src/static/static_grid.vala" + _tmp14_ = config->padding; +#line 59 "../src/static/static_grid.vala" + _tmp15_ = config->padding; +#line 59 "../src/static/static_grid.vala" + cairo_line_to (ctx, _tmp14_.left + 0.5, _tmp15_.top + 0.5); +#line 60 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 61 "../src/static/static_grid.vala" + live_chart_static_static_grid_restore (self, ctx); +#line 318 "static_grid.c" + } +} + +void +live_chart_static_static_grid_render_grid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 65 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 65 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 65 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 66 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_hgrid (self, ctx, config); +#line 67 "../src/static/static_grid.vala" + live_chart_static_static_grid_render_vgrid (self, ctx, config); +#line 337 "static_grid.c" +} + +void +live_chart_static_static_grid_render_vgrid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + gint width_between_each_points = 0; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartBoundaries _tmp3_; + LiveChartBoundary _tmp4_; + GeeArrayList* _tmp5_; + gint _tmp6_; + gint _tmp7_; +#line 70 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 70 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 70 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 72 "../src/static/static_grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 72 "../src/static/static_grid.vala" + boundaries = _tmp0_; +#line 75 "../src/static/static_grid.vala" + _tmp1_ = boundaries; +#line 75 "../src/static/static_grid.vala" + _tmp2_ = _tmp1_.x; +#line 75 "../src/static/static_grid.vala" + _tmp3_ = boundaries; +#line 75 "../src/static/static_grid.vala" + _tmp4_ = _tmp3_.x; +#line 75 "../src/static/static_grid.vala" + _tmp5_ = config->categories; +#line 75 "../src/static/static_grid.vala" + _tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_); +#line 75 "../src/static/static_grid.vala" + _tmp7_ = _tmp6_; +#line 75 "../src/static/static_grid.vala" + width_between_each_points = (_tmp2_.max - _tmp4_.min) / (_tmp7_ - 1); +#line 381 "static_grid.c" + { + guint8 i = 0U; +#line 77 "../src/static/static_grid.vala" + i = (guint8) 0; +#line 386 "static_grid.c" + { + gboolean _tmp8_ = FALSE; +#line 77 "../src/static/static_grid.vala" + _tmp8_ = TRUE; +#line 77 "../src/static/static_grid.vala" + while (TRUE) { +#line 393 "static_grid.c" + GeeArrayList* _tmp10_; + gint _tmp11_; + gint _tmp12_; + gchar* category = NULL; + GeeArrayList* _tmp13_; + gpointer _tmp14_; + gboolean _tmp15_ = FALSE; + LiveChartXAxis* _tmp16_; + gboolean _tmp17_; + gboolean _tmp18_; +#line 77 "../src/static/static_grid.vala" + if (!_tmp8_) { +#line 406 "static_grid.c" + guint8 _tmp9_; +#line 77 "../src/static/static_grid.vala" + _tmp9_ = i; +#line 77 "../src/static/static_grid.vala" + i = _tmp9_ + 1; +#line 412 "static_grid.c" + } +#line 77 "../src/static/static_grid.vala" + _tmp8_ = FALSE; +#line 77 "../src/static/static_grid.vala" + _tmp10_ = config->categories; +#line 77 "../src/static/static_grid.vala" + _tmp11_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp10_); +#line 77 "../src/static/static_grid.vala" + _tmp12_ = _tmp11_; +#line 77 "../src/static/static_grid.vala" + if (!(((gint) i) < _tmp12_)) { +#line 77 "../src/static/static_grid.vala" + break; +#line 426 "static_grid.c" + } +#line 78 "../src/static/static_grid.vala" + _tmp13_ = config->categories; +#line 78 "../src/static/static_grid.vala" + _tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp13_, (gint) i); +#line 78 "../src/static/static_grid.vala" + category = (gchar*) _tmp14_; +#line 79 "../src/static/static_grid.vala" + _tmp16_ = config->x_axis; +#line 79 "../src/static/static_grid.vala" + _tmp17_ = live_chart_xaxis_get_visible (_tmp16_); +#line 79 "../src/static/static_grid.vala" + _tmp18_ = _tmp17_; +#line 79 "../src/static/static_grid.vala" + if (_tmp18_) { +#line 442 "static_grid.c" + LiveChartXAxis* _tmp19_; + LiveChartLabels* _tmp20_; + gboolean _tmp21_; + gboolean _tmp22_; +#line 79 "../src/static/static_grid.vala" + _tmp19_ = config->x_axis; +#line 79 "../src/static/static_grid.vala" + _tmp20_ = _tmp19_->labels; +#line 79 "../src/static/static_grid.vala" + _tmp21_ = live_chart_labels_get_visible (_tmp20_); +#line 79 "../src/static/static_grid.vala" + _tmp22_ = _tmp21_; +#line 79 "../src/static/static_grid.vala" + _tmp15_ = _tmp22_; +#line 457 "static_grid.c" + } else { +#line 79 "../src/static/static_grid.vala" + _tmp15_ = FALSE; +#line 461 "static_grid.c" + } +#line 79 "../src/static/static_grid.vala" + if (_tmp15_) { +#line 465 "static_grid.c" + LiveChartXAxis* _tmp23_; + LiveChartLabels* _tmp24_; + LiveChartFont* _tmp25_; + LiveChartFont* _tmp26_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp27_; + cairo_text_extents_t _tmp28_ = {0}; + const gchar* _tmp29_; + cairo_text_extents_t _tmp30_; + gint _tmp31_; + gint _tmp32_; + LiveChartPadding _tmp33_; + LiveChartXAxis* _tmp34_; + LiveChartLabels* _tmp35_; + cairo_text_extents_t _tmp36_ = {0}; + cairo_text_extents_t _tmp37_; + cairo_text_extents_t _tmp38_; + LiveChartBoundaries _tmp39_; + LiveChartBoundary _tmp40_; + gint _tmp41_; + gint _tmp42_; + LiveChartPadding _tmp43_; + LiveChartXAxis* _tmp44_; + LiveChartLabels* _tmp45_; + cairo_text_extents_t _tmp46_ = {0}; + cairo_text_extents_t _tmp47_; + const gchar* _tmp48_; +#line 80 "../src/static/static_grid.vala" + _tmp23_ = config->x_axis; +#line 80 "../src/static/static_grid.vala" + _tmp24_ = _tmp23_->labels; +#line 80 "../src/static/static_grid.vala" + _tmp25_ = live_chart_labels_get_font (_tmp24_); +#line 80 "../src/static/static_grid.vala" + _tmp26_ = _tmp25_; +#line 80 "../src/static/static_grid.vala" + live_chart_font_configure (_tmp26_, ctx); +#line 84 "../src/static/static_grid.vala" + _tmp27_ = category; +#line 84 "../src/static/static_grid.vala" + cairo_text_extents (ctx, _tmp27_, &_tmp28_); +#line 84 "../src/static/static_grid.vala" + extents = _tmp28_; +#line 85 "../src/static/static_grid.vala" + _tmp29_ = category; +#line 85 "../src/static/static_grid.vala" + _tmp30_ = extents; +#line 85 "../src/static/static_grid.vala" + _tmp31_ = live_chart_config_get_height (config); +#line 85 "../src/static/static_grid.vala" + _tmp32_ = _tmp31_; +#line 85 "../src/static/static_grid.vala" + _tmp33_ = config->padding; +#line 85 "../src/static/static_grid.vala" + _tmp34_ = config->x_axis; +#line 85 "../src/static/static_grid.vala" + _tmp35_ = _tmp34_->labels; +#line 85 "../src/static/static_grid.vala" + live_chart_labels_get_extents (_tmp35_, &_tmp36_); +#line 85 "../src/static/static_grid.vala" + _tmp37_ = _tmp36_; +#line 85 "../src/static/static_grid.vala" + g_message ("static_grid.vala:85: Display %s at %f,%f", _tmp29_, ((width_between_each_points + 0.5) - (_tmp30_.width / 2)) * i, (((0.5 + _tmp32_) - _tmp33_.bottom) + _tmp37_.height) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 86 "../src/static/static_grid.vala" + _tmp38_ = extents; +#line 86 "../src/static/static_grid.vala" + _tmp39_ = boundaries; +#line 86 "../src/static/static_grid.vala" + _tmp40_ = _tmp39_.x; +#line 86 "../src/static/static_grid.vala" + _tmp41_ = live_chart_config_get_height (config); +#line 86 "../src/static/static_grid.vala" + _tmp42_ = _tmp41_; +#line 86 "../src/static/static_grid.vala" + _tmp43_ = config->padding; +#line 86 "../src/static/static_grid.vala" + _tmp44_ = config->x_axis; +#line 86 "../src/static/static_grid.vala" + _tmp45_ = _tmp44_->labels; +#line 86 "../src/static/static_grid.vala" + live_chart_labels_get_extents (_tmp45_, &_tmp46_); +#line 86 "../src/static/static_grid.vala" + _tmp47_ = _tmp46_; +#line 86 "../src/static/static_grid.vala" + cairo_move_to (ctx, (((width_between_each_points * i) + 0.5) - (_tmp38_.width / 2)) + _tmp40_.min, (((0.5 + _tmp42_) - _tmp43_.bottom) + _tmp47_.height) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 87 "../src/static/static_grid.vala" + _tmp48_ = category; +#line 87 "../src/static/static_grid.vala" + cairo_show_text (ctx, _tmp48_); +#line 88 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 557 "static_grid.c" + } +#line 77 "../src/static/static_grid.vala" + _g_free0 (category); +#line 561 "static_grid.c" + } + } + } +} + +void +live_chart_static_static_grid_render_hgrid (LiveChartStaticStaticGrid* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; +#line 117 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 117 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 117 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 119 "../src/static/static_grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 119 "../src/static/static_grid.vala" + boundaries = _tmp0_; +#line 584 "static_grid.c" + { + GeeList* _position_list = NULL; + LiveChartYAxis* _tmp1_; + LiveChartTicks _tmp2_; + GeeList* _tmp3_; + gint _position_size = 0; + GeeList* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gint _position_index = 0; +#line 120 "../src/static/static_grid.vala" + _tmp1_ = config->y_axis; +#line 120 "../src/static/static_grid.vala" + _tmp2_ = _tmp1_->ticks; +#line 120 "../src/static/static_grid.vala" + _tmp3_ = _tmp2_.values; +#line 120 "../src/static/static_grid.vala" + _position_list = _tmp3_; +#line 120 "../src/static/static_grid.vala" + _tmp4_ = _position_list; +#line 120 "../src/static/static_grid.vala" + _tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_); +#line 120 "../src/static/static_grid.vala" + _tmp6_ = _tmp5_; +#line 120 "../src/static/static_grid.vala" + _position_size = _tmp6_; +#line 120 "../src/static/static_grid.vala" + _position_index = -1; +#line 120 "../src/static/static_grid.vala" + while (TRUE) { +#line 615 "static_grid.c" + gint _tmp7_; + gint _tmp8_; + gfloat position = 0.0F; + GeeList* _tmp9_; + gpointer _tmp10_; + gfloat* _tmp11_; + gfloat _tmp12_; + gdouble y = 0.0; + LiveChartBoundaries _tmp13_; + LiveChartBoundaries _tmp14_; + LiveChartBoundary _tmp15_; + LiveChartYAxis* _tmp16_; + LiveChartBoundaries _tmp17_; + LiveChartBoundary _tmp18_; + LiveChartYAxis* _tmp19_; + LiveChartPath* _tmp20_; + gboolean _tmp21_; + gboolean _tmp22_; + gboolean _tmp29_ = FALSE; + LiveChartYAxis* _tmp30_; + gboolean _tmp31_; + gboolean _tmp32_; +#line 120 "../src/static/static_grid.vala" + _position_index = _position_index + 1; +#line 120 "../src/static/static_grid.vala" + _tmp7_ = _position_index; +#line 120 "../src/static/static_grid.vala" + _tmp8_ = _position_size; +#line 120 "../src/static/static_grid.vala" + if (!(_tmp7_ < _tmp8_)) { +#line 120 "../src/static/static_grid.vala" + break; +#line 648 "static_grid.c" + } +#line 120 "../src/static/static_grid.vala" + _tmp9_ = _position_list; +#line 120 "../src/static/static_grid.vala" + _tmp10_ = gee_list_get (_tmp9_, _position_index); +#line 120 "../src/static/static_grid.vala" + _tmp11_ = (gfloat*) _tmp10_; +#line 120 "../src/static/static_grid.vala" + _tmp12_ = *_tmp11_; +#line 120 "../src/static/static_grid.vala" + _g_free0 (_tmp11_); +#line 120 "../src/static/static_grid.vala" + position = _tmp12_; +#line 122 "../src/static/static_grid.vala" + _tmp13_ = boundaries; +#line 122 "../src/static/static_grid.vala" + _tmp14_ = boundaries; +#line 122 "../src/static/static_grid.vala" + _tmp15_ = _tmp14_.y; +#line 122 "../src/static/static_grid.vala" + _tmp16_ = config->y_axis; +#line 122 "../src/static/static_grid.vala" + y = (_tmp13_.height + _tmp15_.min) - (position * live_chart_yaxis_get_ratio (_tmp16_)); +#line 123 "../src/static/static_grid.vala" + _tmp17_ = boundaries; +#line 123 "../src/static/static_grid.vala" + _tmp18_ = _tmp17_.y; +#line 123 "../src/static/static_grid.vala" + if (y < ((gdouble) _tmp18_.min)) { +#line 124 "../src/static/static_grid.vala" + break; +#line 680 "static_grid.c" + } +#line 126 "../src/static/static_grid.vala" + _tmp19_ = config->y_axis; +#line 126 "../src/static/static_grid.vala" + _tmp20_ = _tmp19_->lines; +#line 126 "../src/static/static_grid.vala" + _tmp21_ = live_chart_path_get_visible (_tmp20_); +#line 126 "../src/static/static_grid.vala" + _tmp22_ = _tmp21_; +#line 126 "../src/static/static_grid.vala" + if (_tmp22_) { +#line 692 "static_grid.c" + LiveChartYAxis* _tmp23_; + LiveChartPath* _tmp24_; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartBoundaries _tmp27_; + LiveChartBoundary _tmp28_; +#line 127 "../src/static/static_grid.vala" + _tmp23_ = config->y_axis; +#line 127 "../src/static/static_grid.vala" + _tmp24_ = _tmp23_->lines; +#line 127 "../src/static/static_grid.vala" + live_chart_path_configure (_tmp24_, ctx); +#line 128 "../src/static/static_grid.vala" + _tmp25_ = boundaries; +#line 128 "../src/static/static_grid.vala" + _tmp26_ = _tmp25_.x; +#line 128 "../src/static/static_grid.vala" + cairo_move_to (ctx, 0.5 + _tmp26_.max, ((gint) y) + 0.5); +#line 129 "../src/static/static_grid.vala" + _tmp27_ = boundaries; +#line 129 "../src/static/static_grid.vala" + _tmp28_ = _tmp27_.x; +#line 129 "../src/static/static_grid.vala" + cairo_line_to (ctx, _tmp28_.min + 0.5, ((gint) y) + 0.5); +#line 130 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 131 "../src/static/static_grid.vala" + live_chart_static_static_grid_restore (self, ctx); +#line 721 "static_grid.c" + } +#line 135 "../src/static/static_grid.vala" + _tmp30_ = config->y_axis; +#line 135 "../src/static/static_grid.vala" + _tmp31_ = live_chart_yaxis_get_visible (_tmp30_); +#line 135 "../src/static/static_grid.vala" + _tmp32_ = _tmp31_; +#line 135 "../src/static/static_grid.vala" + if (_tmp32_) { +#line 731 "static_grid.c" + LiveChartYAxis* _tmp33_; + LiveChartLabels* _tmp34_; + gboolean _tmp35_; + gboolean _tmp36_; +#line 135 "../src/static/static_grid.vala" + _tmp33_ = config->y_axis; +#line 135 "../src/static/static_grid.vala" + _tmp34_ = _tmp33_->labels; +#line 135 "../src/static/static_grid.vala" + _tmp35_ = live_chart_labels_get_visible (_tmp34_); +#line 135 "../src/static/static_grid.vala" + _tmp36_ = _tmp35_; +#line 135 "../src/static/static_grid.vala" + _tmp29_ = _tmp36_; +#line 746 "static_grid.c" + } else { +#line 135 "../src/static/static_grid.vala" + _tmp29_ = FALSE; +#line 750 "static_grid.c" + } +#line 135 "../src/static/static_grid.vala" + if (_tmp29_) { +#line 754 "static_grid.c" + LiveChartYAxis* _tmp37_; + LiveChartLabels* _tmp38_; + LiveChartFont* _tmp39_; + LiveChartFont* _tmp40_; + gchar* value = NULL; + LiveChartYAxis* _tmp41_; + const gchar* _tmp42_; + const gchar* _tmp43_; + gchar* _tmp44_; + cairo_text_extents_t extents = {0}; + const gchar* _tmp45_; + cairo_text_extents_t _tmp46_ = {0}; + LiveChartBoundaries _tmp47_; + LiveChartBoundary _tmp48_; + cairo_text_extents_t _tmp49_; + cairo_text_extents_t _tmp50_; + const gchar* _tmp51_; +#line 136 "../src/static/static_grid.vala" + _tmp37_ = config->y_axis; +#line 136 "../src/static/static_grid.vala" + _tmp38_ = _tmp37_->labels; +#line 136 "../src/static/static_grid.vala" + _tmp39_ = live_chart_labels_get_font (_tmp38_); +#line 136 "../src/static/static_grid.vala" + _tmp40_ = _tmp39_; +#line 136 "../src/static/static_grid.vala" + live_chart_font_configure (_tmp40_, ctx); +#line 137 "../src/static/static_grid.vala" + _tmp41_ = config->y_axis; +#line 137 "../src/static/static_grid.vala" + _tmp42_ = live_chart_yaxis_get_unit (_tmp41_); +#line 137 "../src/static/static_grid.vala" + _tmp43_ = _tmp42_; +#line 137 "../src/static/static_grid.vala" + _tmp44_ = live_chart_format_for_y_axis (_tmp43_, position); +#line 137 "../src/static/static_grid.vala" + value = _tmp44_; +#line 140 "../src/static/static_grid.vala" + _tmp45_ = value; +#line 140 "../src/static/static_grid.vala" + cairo_text_extents (ctx, _tmp45_, &_tmp46_); +#line 140 "../src/static/static_grid.vala" + extents = _tmp46_; +#line 141 "../src/static/static_grid.vala" + _tmp47_ = boundaries; +#line 141 "../src/static/static_grid.vala" + _tmp48_ = _tmp47_.x; +#line 141 "../src/static/static_grid.vala" + _tmp49_ = extents; +#line 141 "../src/static/static_grid.vala" + _tmp50_ = extents; +#line 141 "../src/static/static_grid.vala" + cairo_move_to (ctx, (_tmp48_.min - _tmp49_.width) - 5, (y + (_tmp50_.height / 2)) + 0.5); +#line 142 "../src/static/static_grid.vala" + _tmp51_ = value; +#line 142 "../src/static/static_grid.vala" + cairo_show_text (ctx, _tmp51_); +#line 143 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 135 "../src/static/static_grid.vala" + _g_free0 (value); +#line 816 "static_grid.c" + } + } + } +} + +void +live_chart_static_static_grid_update_bounding_box (LiveChartStaticStaticGrid* self, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartBoundaries _tmp1_; + LiveChartBoundary _tmp2_; + LiveChartBoundaries _tmp3_; + LiveChartBoundary _tmp4_; + LiveChartBoundaries _tmp5_; + LiveChartBoundary _tmp6_; + LiveChartBoundaries _tmp7_; + LiveChartBoundary _tmp8_; + LiveChartBoundaries _tmp9_; + LiveChartBoundary _tmp10_; + LiveChartBoundaries _tmp11_; + LiveChartBoundary _tmp12_; + LiveChartBoundingBox _tmp13_ = {0}; +#line 148 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 148 "../src/static/static_grid.vala" + g_return_if_fail (config != NULL); +#line 149 "../src/static/static_grid.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 149 "../src/static/static_grid.vala" + boundaries = _tmp0_; +#line 150 "../src/static/static_grid.vala" + _tmp1_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp2_ = _tmp1_.x; +#line 150 "../src/static/static_grid.vala" + _tmp3_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp4_ = _tmp3_.y; +#line 150 "../src/static/static_grid.vala" + _tmp5_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp6_ = _tmp5_.x; +#line 150 "../src/static/static_grid.vala" + _tmp7_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp8_ = _tmp7_.x; +#line 150 "../src/static/static_grid.vala" + _tmp9_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp10_ = _tmp9_.y; +#line 150 "../src/static/static_grid.vala" + _tmp11_ = boundaries; +#line 150 "../src/static/static_grid.vala" + _tmp12_ = _tmp11_.y; +#line 150 "../src/static/static_grid.vala" + memset (&_tmp13_, 0, sizeof (LiveChartBoundingBox)); +#line 150 "../src/static/static_grid.vala" + _tmp13_.x = (gdouble) _tmp2_.min; +#line 150 "../src/static/static_grid.vala" + _tmp13_.y = (gdouble) _tmp4_.min; +#line 150 "../src/static/static_grid.vala" + _tmp13_.width = (gdouble) (_tmp6_.max - _tmp8_.min); +#line 150 "../src/static/static_grid.vala" + _tmp13_.height = (gdouble) ((_tmp10_.max - _tmp12_.min) + LIVE_CHART_GRID_ABSCISSA_TIME_PADDING); +#line 150 "../src/static/static_grid.vala" + self->bounding_box = _tmp13_; +#line 885 "static_grid.c" +} + +void +live_chart_static_static_grid_debug (LiveChartStaticStaticGrid* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 158 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 158 "../src/static/static_grid.vala" + g_return_if_fail (ctx != NULL); +#line 159 "../src/static/static_grid.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 159 "../src/static/static_grid.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 159 "../src/static/static_grid.vala" + debug = _tmp1_; +#line 160 "../src/static/static_grid.vala" + _tmp2_ = debug; +#line 160 "../src/static/static_grid.vala" + if (_tmp2_ != NULL) { +#line 910 "static_grid.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 161 "../src/static/static_grid.vala" + _tmp3_ = self->bounding_box; +#line 161 "../src/static/static_grid.vala" + _tmp4_ = self->bounding_box; +#line 161 "../src/static/static_grid.vala" + _tmp5_ = self->bounding_box; +#line 161 "../src/static/static_grid.vala" + _tmp6_ = self->bounding_box; +#line 161 "../src/static/static_grid.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 162 "../src/static/static_grid.vala" + cairo_stroke (ctx); +#line 927 "static_grid.c" + } +#line 158 "../src/static/static_grid.vala" + _g_free0 (debug); +#line 931 "static_grid.c" +} + +LiveChartStaticStaticGrid* +live_chart_static_static_grid_construct (GType object_type) +{ + LiveChartStaticStaticGrid * self = NULL; +#line 6 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) g_object_new (object_type, NULL); +#line 6 "../src/static/static_grid.vala" + return self; +#line 942 "static_grid.c" +} + +LiveChartStaticStaticGrid* +live_chart_static_static_grid_new (void) +{ +#line 6 "../src/static/static_grid.vala" + return live_chart_static_static_grid_construct (LIVE_CHART_STATIC_TYPE_STATIC_GRID); +#line 950 "static_grid.c" +} + +static gboolean +live_chart_static_static_grid_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartStaticStaticGrid* self; +#line 15 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) base; +#line 15 "../src/static/static_grid.vala" + result = self->priv->_visible; +#line 15 "../src/static/static_grid.vala" + return result; +#line 964 "static_grid.c" +} + +static void +live_chart_static_static_grid_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartStaticStaticGrid* self; + gboolean old_value; +#line 15 "../src/static/static_grid.vala" + self = (LiveChartStaticStaticGrid*) base; +#line 15 "../src/static/static_grid.vala" + old_value = live_chart_static_static_grid_real_get_visible (base); +#line 15 "../src/static/static_grid.vala" + if (old_value != value) { +#line 15 "../src/static/static_grid.vala" + self->priv->_visible = value; +#line 15 "../src/static/static_grid.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY]); +#line 983 "static_grid.c" + } +} + +void +live_chart_static_static_grid_get_main_color (LiveChartStaticStaticGrid* self, + GdkRGBA * result) +{ + GdkRGBA _tmp0_; +#line 17 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 17 "../src/static/static_grid.vala" + _tmp0_ = self->priv->_main_color; +#line 17 "../src/static/static_grid.vala" + *result = _tmp0_; +#line 17 "../src/static/static_grid.vala" + return; +#line 1000 "static_grid.c" +} + +static gboolean +_gdk_rgba_equal (const GdkRGBA * s1, + const GdkRGBA * s2) +{ +#line 17 "../src/static/static_grid.vala" + if (s1 == s2) { +#line 17 "../src/static/static_grid.vala" + return TRUE; +#line 1011 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1 == NULL) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1017 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s2 == NULL) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1023 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1->red != s2->red) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1029 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1->green != s2->green) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1035 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1->blue != s2->blue) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1041 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + if (s1->alpha != s2->alpha) { +#line 17 "../src/static/static_grid.vala" + return FALSE; +#line 1047 "static_grid.c" + } +#line 17 "../src/static/static_grid.vala" + return TRUE; +#line 1051 "static_grid.c" +} + +void +live_chart_static_static_grid_set_main_color (LiveChartStaticStaticGrid* self, + GdkRGBA * value) +{ + GdkRGBA old_value; +#line 17 "../src/static/static_grid.vala" + g_return_if_fail (self != NULL); +#line 17 "../src/static/static_grid.vala" + live_chart_static_static_grid_get_main_color (self, &old_value); +#line 17 "../src/static/static_grid.vala" + if (_gdk_rgba_equal (value, &old_value) != TRUE) { +#line 1065 "static_grid.c" + GdkRGBA _tmp0_; +#line 17 "../src/static/static_grid.vala" + _tmp0_ = *value; +#line 17 "../src/static/static_grid.vala" + self->priv->_main_color = _tmp0_; +#line 17 "../src/static/static_grid.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY]); +#line 1073 "static_grid.c" + } +} + +static void +live_chart_static_static_grid_class_init (LiveChartStaticStaticGridClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_grid.vala" + live_chart_static_static_grid_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_grid.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticGrid_private_offset); +#line 6 "../src/static/static_grid.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_grid_get_property; +#line 6 "../src/static/static_grid.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_grid_set_property; +#line 6 "../src/static/static_grid.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_grid_finalize; +#line 6 "../src/static/static_grid.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY, live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_grid.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY, live_chart_static_static_grid_properties[LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 1095 "static_grid.c" +} + +static void +live_chart_static_static_grid_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 6 "../src/static/static_grid.vala" + live_chart_static_static_grid_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/static/static_grid.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_static_static_grid_real_draw; +#line 6 "../src/static/static_grid.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_static_static_grid_real_get_bounding_box; +#line 6 "../src/static/static_grid.vala" + iface->get_visible = live_chart_static_static_grid_real_get_visible; +#line 6 "../src/static/static_grid.vala" + iface->set_visible = live_chart_static_static_grid_real_set_visible; +#line 1112 "static_grid.c" +} + +static void +live_chart_static_static_grid_instance_init (LiveChartStaticStaticGrid * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; + GdkRGBA _tmp1_ = {0}; +#line 6 "../src/static/static_grid.vala" + self->priv = live_chart_static_static_grid_get_instance_private (self); +#line 8 "../src/static/static_grid.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 8 "../src/static/static_grid.vala" + _tmp0_.x = (gdouble) 0; +#line 8 "../src/static/static_grid.vala" + _tmp0_.y = (gdouble) 0; +#line 8 "../src/static/static_grid.vala" + _tmp0_.width = (gdouble) 0; +#line 8 "../src/static/static_grid.vala" + _tmp0_.height = (gdouble) 0; +#line 8 "../src/static/static_grid.vala" + self->bounding_box = _tmp0_; +#line 15 "../src/static/static_grid.vala" + self->priv->_visible = TRUE; +#line 16 "../src/static/static_grid.vala" + memset (&_tmp1_, 0, sizeof (GdkRGBA)); +#line 16 "../src/static/static_grid.vala" + _tmp1_.red = 0.4; +#line 16 "../src/static/static_grid.vala" + _tmp1_.green = 0.4; +#line 16 "../src/static/static_grid.vala" + _tmp1_.blue = 0.4; +#line 16 "../src/static/static_grid.vala" + _tmp1_.alpha = 1.0; +#line 16 "../src/static/static_grid.vala" + self->priv->_main_color = _tmp1_; +#line 1149 "static_grid.c" +} + +static void +live_chart_static_static_grid_finalize (GObject * obj) +{ + LiveChartStaticStaticGrid * self; +#line 6 "../src/static/static_grid.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGrid); +#line 6 "../src/static/static_grid.vala" + G_OBJECT_CLASS (live_chart_static_static_grid_parent_class)->finalize (obj); +#line 1160 "static_grid.c" +} + +static GType +live_chart_static_static_grid_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticGridClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_grid_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticGrid), 0, (GInstanceInitFunc) live_chart_static_static_grid_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_static_static_grid_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_static_static_grid_type_id; + live_chart_static_static_grid_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticGrid", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_static_static_grid_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartStaticStaticGrid_private_offset = g_type_add_instance_private (live_chart_static_static_grid_type_id, sizeof (LiveChartStaticStaticGridPrivate)); + return live_chart_static_static_grid_type_id; +} + +GType +live_chart_static_static_grid_get_type (void) +{ + static volatile gsize live_chart_static_static_grid_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_grid_type_id__once)) { + GType live_chart_static_static_grid_type_id; + live_chart_static_static_grid_type_id = live_chart_static_static_grid_get_type_once (); + g_once_init_leave (&live_chart_static_static_grid_type_id__once, live_chart_static_static_grid_type_id); + } + return live_chart_static_static_grid_type_id__once; +} + +static void +_vala_live_chart_static_static_grid_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticGrid * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGrid); +#line 6 "../src/static/static_grid.vala" + switch (property_id) { +#line 6 "../src/static/static_grid.vala" + case LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY: +#line 6 "../src/static/static_grid.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 6 "../src/static/static_grid.vala" + break; +#line 6 "../src/static/static_grid.vala" + case LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY: +#line 1205 "static_grid.c" + { + GdkRGBA boxed; +#line 6 "../src/static/static_grid.vala" + live_chart_static_static_grid_get_main_color (self, &boxed); +#line 6 "../src/static/static_grid.vala" + g_value_set_boxed (value, &boxed); +#line 1212 "static_grid.c" + } +#line 6 "../src/static/static_grid.vala" + break; +#line 1216 "static_grid.c" + default: +#line 6 "../src/static/static_grid.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_grid.vala" + break; +#line 1222 "static_grid.c" + } +} + +static void +_vala_live_chart_static_static_grid_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticGrid * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_GRID, LiveChartStaticStaticGrid); +#line 6 "../src/static/static_grid.vala" + switch (property_id) { +#line 6 "../src/static/static_grid.vala" + case LIVE_CHART_STATIC_STATIC_GRID_VISIBLE_PROPERTY: +#line 6 "../src/static/static_grid.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 6 "../src/static/static_grid.vala" + break; +#line 6 "../src/static/static_grid.vala" + case LIVE_CHART_STATIC_STATIC_GRID_MAIN_COLOR_PROPERTY: +#line 6 "../src/static/static_grid.vala" + live_chart_static_static_grid_set_main_color (self, g_value_get_boxed (value)); +#line 6 "../src/static/static_grid.vala" + break; +#line 1248 "static_grid.c" + default: +#line 6 "../src/static/static_grid.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_grid.vala" + break; +#line 1254 "static_grid.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/static/static_line.c b/iPDC/lib/liblivechart.so.p/static/static_line.c new file mode 100644 index 0000000..116c5f7 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/static/static_line.c @@ -0,0 +1,404 @@ +/* static_line.c generated by valac 0.56.0, the Vala compiler + * generated from static_line.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_LINE_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_line_properties[LIVE_CHART_STATIC_STATIC_LINE_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +static gpointer live_chart_static_static_line_parent_class = NULL; + +static void live_chart_static_static_line_real_draw (LiveChartStaticStaticSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_static_static_line_update_bounding_box (LiveChartStaticStaticLine* self, + LiveChartStaticStaticPoints* points, + LiveChartConfig* config); +static GType live_chart_static_static_line_get_type_once (void); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 9 "../src/static/static_line.vala" + return self ? g_object_ref (self) : NULL; +#line 38 "static_line.c" +} + +LiveChartStaticStaticLine* +live_chart_static_static_line_construct (GType object_type, + LiveChartStaticStaticValues* values) +{ + LiveChartStaticStaticLine * self = NULL; + LiveChartStaticStaticValues* _tmp0_; +#line 7 "../src/static/static_line.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 8 "../src/static/static_line.vala" + self = (LiveChartStaticStaticLine*) live_chart_static_static_serie_renderer_construct (object_type); +#line 9 "../src/static/static_line.vala" + _tmp0_ = _g_object_ref0 (values); +#line 9 "../src/static/static_line.vala" + _g_object_unref0 (((LiveChartStaticStaticSerieRenderer*) self)->values); +#line 9 "../src/static/static_line.vala" + ((LiveChartStaticStaticSerieRenderer*) self)->values = _tmp0_; +#line 7 "../src/static/static_line.vala" + return self; +#line 59 "static_line.c" +} + +LiveChartStaticStaticLine* +live_chart_static_static_line_new (LiveChartStaticStaticValues* values) +{ +#line 7 "../src/static/static_line.vala" + return live_chart_static_static_line_construct (LIVE_CHART_STATIC_TYPE_STATIC_LINE, values); +#line 67 "static_line.c" +} + +static void +live_chart_static_static_line_real_draw (LiveChartStaticStaticSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartStaticStaticLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 12 "../src/static/static_line.vala" + self = (LiveChartStaticStaticLine*) base; +#line 12 "../src/static/static_line.vala" + g_return_if_fail (ctx != NULL); +#line 12 "../src/static/static_line.vala" + g_return_if_fail (config != NULL); +#line 13 "../src/static/static_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 13 "../src/static/static_line.vala" + _tmp1_ = _tmp0_; +#line 13 "../src/static/static_line.vala" + if (_tmp1_) { +#line 90 "static_line.c" + LiveChartStaticStaticPoints* points = NULL; + LiveChartStaticStaticValues* _tmp2_; + LiveChartStaticStaticPoints* _tmp3_; + LiveChartStaticStaticPoints* _tmp4_; + gint _tmp5_; + gint _tmp6_; +#line 14 "../src/static/static_line.vala" + _tmp2_ = ((LiveChartStaticStaticSerieRenderer*) self)->values; +#line 14 "../src/static/static_line.vala" + _tmp3_ = live_chart_static_static_points_create (_tmp2_, config); +#line 14 "../src/static/static_line.vala" + points = _tmp3_; +#line 15 "../src/static/static_line.vala" + _tmp4_ = points; +#line 15 "../src/static/static_line.vala" + _tmp5_ = live_chart_static_static_points_get_size (_tmp4_); +#line 15 "../src/static/static_line.vala" + _tmp6_ = _tmp5_; +#line 15 "../src/static/static_line.vala" + if (_tmp6_ > 0) { +#line 111 "static_line.c" + LiveChartStaticStaticPoints* _tmp7_; +#line 16 "../src/static/static_line.vala" + _tmp7_ = points; +#line 16 "../src/static/static_line.vala" + live_chart_static_static_line_draw_line (self, _tmp7_, ctx, config); +#line 17 "../src/static/static_line.vala" + cairo_stroke (ctx); +#line 119 "static_line.c" + } +#line 13 "../src/static/static_line.vala" + _g_object_unref0 (points); +#line 123 "static_line.c" + } +} + +void +live_chart_static_static_line_draw_line (LiveChartStaticStaticLine* self, + LiveChartStaticStaticPoints* points, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartPath* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPoint first_point = {0}; + LiveChartPoint _tmp2_ = {0}; + LiveChartPoint _tmp3_; + LiveChartPoint _tmp4_; + LiveChartPoint _tmp5_; + LiveChartPoint _tmp6_; + gchar* _tmp7_; + gchar* _tmp8_; +#line 22 "../src/static/static_line.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/static/static_line.vala" + g_return_if_fail (points != NULL); +#line 22 "../src/static/static_line.vala" + g_return_if_fail (ctx != NULL); +#line 22 "../src/static/static_line.vala" + g_return_if_fail (config != NULL); +#line 23 "../src/static/static_line.vala" + _tmp0_ = live_chart_static_static_serie_renderer_get_line ((LiveChartStaticStaticSerieRenderer*) self); +#line 23 "../src/static/static_line.vala" + _tmp1_ = _tmp0_; +#line 23 "../src/static/static_line.vala" + live_chart_path_configure (_tmp1_, ctx); +#line 25 "../src/static/static_line.vala" + live_chart_static_static_points_first (points, &_tmp2_); +#line 25 "../src/static/static_line.vala" + first_point = _tmp2_; +#line 27 "../src/static/static_line.vala" + live_chart_static_static_line_update_bounding_box (self, points, config); +#line 28 "../src/static/static_line.vala" + live_chart_static_static_serie_renderer_debug ((LiveChartStaticStaticSerieRenderer*) self, ctx); +#line 30 "../src/static/static_line.vala" + _tmp3_ = first_point; +#line 30 "../src/static/static_line.vala" + _tmp4_ = first_point; +#line 30 "../src/static/static_line.vala" + cairo_move_to (ctx, _tmp3_.x, _tmp4_.y); +#line 31 "../src/static/static_line.vala" + _tmp5_ = first_point; +#line 31 "../src/static/static_line.vala" + _tmp6_ = first_point; +#line 31 "../src/static/static_line.vala" + _tmp7_ = g_strdup_printf ("Draw point %f, %f", _tmp5_.x, _tmp6_.y); +#line 31 "../src/static/static_line.vala" + _tmp8_ = _tmp7_; +#line 31 "../src/static/static_line.vala" + g_message ("static_line.vala:31: %s", _tmp8_); +#line 31 "../src/static/static_line.vala" + _g_free0 (_tmp8_); +#line 183 "static_line.c" + { + gint pos = 0; +#line 32 "../src/static/static_line.vala" + pos = 0; +#line 188 "static_line.c" + { + gboolean _tmp9_ = FALSE; +#line 32 "../src/static/static_line.vala" + _tmp9_ = TRUE; +#line 32 "../src/static/static_line.vala" + while (TRUE) { +#line 195 "static_line.c" + gint _tmp11_; + gint _tmp12_; + LiveChartPoint current_point = {0}; + LiveChartPoint _tmp13_ = {0}; + LiveChartPoint next_point = {0}; + LiveChartPoint _tmp14_ = {0}; + LiveChartPoint _tmp15_; + LiveChartPoint _tmp18_; + LiveChartPoint _tmp19_; + gchar* _tmp20_; + gchar* _tmp21_; + LiveChartPoint _tmp22_; + LiveChartPoint _tmp23_; +#line 32 "../src/static/static_line.vala" + if (!_tmp9_) { +#line 211 "static_line.c" + gint _tmp10_; +#line 32 "../src/static/static_line.vala" + _tmp10_ = pos; +#line 32 "../src/static/static_line.vala" + pos = _tmp10_ + 1; +#line 217 "static_line.c" + } +#line 32 "../src/static/static_line.vala" + _tmp9_ = FALSE; +#line 32 "../src/static/static_line.vala" + _tmp11_ = live_chart_static_static_points_get_size (points); +#line 32 "../src/static/static_line.vala" + _tmp12_ = _tmp11_; +#line 32 "../src/static/static_line.vala" + if (!(pos < (_tmp12_ - 1))) { +#line 32 "../src/static/static_line.vala" + break; +#line 229 "static_line.c" + } +#line 33 "../src/static/static_line.vala" + live_chart_static_static_points_get (points, pos, &_tmp13_); +#line 33 "../src/static/static_line.vala" + current_point = _tmp13_; +#line 34 "../src/static/static_line.vala" + live_chart_static_static_points_after (points, pos, &_tmp14_); +#line 34 "../src/static/static_line.vala" + next_point = _tmp14_; +#line 35 "../src/static/static_line.vala" + _tmp15_ = current_point; +#line 35 "../src/static/static_line.vala" + if (live_chart_static_static_serie_renderer_is_out_of_area ((LiveChartStaticStaticSerieRenderer*) self, &_tmp15_)) { +#line 243 "static_line.c" + LiveChartPoint _tmp16_; + LiveChartPoint _tmp17_; +#line 36 "../src/static/static_line.vala" + g_message ("static_line.vala:36: #########################Out of area"); +#line 37 "../src/static/static_line.vala" + _tmp16_ = current_point; +#line 37 "../src/static/static_line.vala" + _tmp17_ = current_point; +#line 37 "../src/static/static_line.vala" + cairo_move_to (ctx, _tmp16_.x, _tmp17_.y); +#line 38 "../src/static/static_line.vala" + continue; +#line 256 "static_line.c" + } +#line 40 "../src/static/static_line.vala" + _tmp18_ = next_point; +#line 40 "../src/static/static_line.vala" + _tmp19_ = next_point; +#line 40 "../src/static/static_line.vala" + _tmp20_ = g_strdup_printf ("Draw point %f, %f as pos %d", _tmp18_.x, _tmp19_.y, pos); +#line 40 "../src/static/static_line.vala" + _tmp21_ = _tmp20_; +#line 40 "../src/static/static_line.vala" + g_message ("static_line.vala:40: %s", _tmp21_); +#line 40 "../src/static/static_line.vala" + _g_free0 (_tmp21_); +#line 41 "../src/static/static_line.vala" + _tmp22_ = next_point; +#line 41 "../src/static/static_line.vala" + _tmp23_ = next_point; +#line 41 "../src/static/static_line.vala" + cairo_line_to (ctx, _tmp22_.x, _tmp23_.y); +#line 276 "static_line.c" + } + } + } +} + +static void +live_chart_static_static_line_update_bounding_box (LiveChartStaticStaticLine* self, + LiveChartStaticStaticPoints* points, + LiveChartConfig* config) +{ + LiveChartPoint _tmp0_ = {0}; + LiveChartBounds* _tmp1_; + LiveChartBounds* _tmp2_; + gdouble _tmp3_; + gdouble _tmp4_; + LiveChartPoint _tmp5_ = {0}; + LiveChartPoint _tmp6_ = {0}; + LiveChartBounds* _tmp7_; + LiveChartBounds* _tmp8_; + gdouble _tmp9_; + gdouble _tmp10_; + LiveChartBounds* _tmp11_; + LiveChartBounds* _tmp12_; + gdouble _tmp13_; + gdouble _tmp14_; + LiveChartBoundingBox _tmp15_ = {0}; +#line 45 "../src/static/static_line.vala" + g_return_if_fail (self != NULL); +#line 45 "../src/static/static_line.vala" + g_return_if_fail (points != NULL); +#line 45 "../src/static/static_line.vala" + g_return_if_fail (config != NULL); +#line 46 "../src/static/static_line.vala" + live_chart_static_static_points_first (points, &_tmp0_); +#line 46 "../src/static/static_line.vala" + _tmp1_ = live_chart_static_static_points_get_bounds (points); +#line 46 "../src/static/static_line.vala" + _tmp2_ = _tmp1_; +#line 46 "../src/static/static_line.vala" + _tmp3_ = live_chart_bounds_get_lower (_tmp2_); +#line 46 "../src/static/static_line.vala" + _tmp4_ = _tmp3_; +#line 46 "../src/static/static_line.vala" + live_chart_static_static_points_last (points, &_tmp5_); +#line 46 "../src/static/static_line.vala" + live_chart_static_static_points_first (points, &_tmp6_); +#line 46 "../src/static/static_line.vala" + _tmp7_ = live_chart_static_static_points_get_bounds (points); +#line 46 "../src/static/static_line.vala" + _tmp8_ = _tmp7_; +#line 46 "../src/static/static_line.vala" + _tmp9_ = live_chart_bounds_get_upper (_tmp8_); +#line 46 "../src/static/static_line.vala" + _tmp10_ = _tmp9_; +#line 46 "../src/static/static_line.vala" + _tmp11_ = live_chart_static_static_points_get_bounds (points); +#line 46 "../src/static/static_line.vala" + _tmp12_ = _tmp11_; +#line 46 "../src/static/static_line.vala" + _tmp13_ = live_chart_bounds_get_lower (_tmp12_); +#line 46 "../src/static/static_line.vala" + _tmp14_ = _tmp13_; +#line 46 "../src/static/static_line.vala" + memset (&_tmp15_, 0, sizeof (LiveChartBoundingBox)); +#line 46 "../src/static/static_line.vala" + _tmp15_.x = _tmp0_.x; +#line 46 "../src/static/static_line.vala" + _tmp15_.y = _tmp4_; +#line 46 "../src/static/static_line.vala" + _tmp15_.width = _tmp5_.x - _tmp6_.x; +#line 46 "../src/static/static_line.vala" + _tmp15_.height = _tmp10_ - _tmp14_; +#line 46 "../src/static/static_line.vala" + ((LiveChartStaticStaticSerieRenderer*) self)->bounding_box = _tmp15_; +#line 351 "static_line.c" +} + +static void +live_chart_static_static_line_class_init (LiveChartStaticStaticLineClass * klass, + gpointer klass_data) +{ +#line 5 "../src/static/static_line.vala" + live_chart_static_static_line_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/static/static_line.vala" + ((LiveChartStaticStaticSerieRendererClass *) klass)->draw = (void (*) (LiveChartStaticStaticSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_static_static_line_real_draw; +#line 362 "static_line.c" +} + +static void +live_chart_static_static_line_instance_init (LiveChartStaticStaticLine * self, + gpointer klass) +{ +} + +static GType +live_chart_static_static_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticLine), 0, (GInstanceInitFunc) live_chart_static_static_line_instance_init, NULL }; + GType live_chart_static_static_line_type_id; + live_chart_static_static_line_type_id = g_type_register_static (LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, "LiveChartStaticStaticLine", &g_define_type_info, 0); + return live_chart_static_static_line_type_id; +} + +GType +live_chart_static_static_line_get_type (void) +{ + static volatile gsize live_chart_static_static_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_line_type_id__once)) { + GType live_chart_static_static_line_type_id; + live_chart_static_static_line_type_id = live_chart_static_static_line_get_type_once (); + g_once_init_leave (&live_chart_static_static_line_type_id__once, live_chart_static_static_line_type_id); + } + return live_chart_static_static_line_type_id__once; +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/static/static_points.c b/iPDC/lib/liblivechart.so.p/static/static_points.c new file mode 100644 index 0000000..be10531 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/static/static_points.c @@ -0,0 +1,821 @@ +/* static_points.c generated by valac 0.56.0, the Vala compiler + * generated from static_points.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_POINTS_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY, + LIVE_CHART_STATIC_STATIC_POINTS_SIZE_PROPERTY, + LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY, + LIVE_CHART_STATIC_STATIC_POINTS_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_point_free0(var) ((var == NULL) ? NULL : (var = (live_chart_point_free (var), NULL))) +#define _live_chart_static_named_value_free0(var) ((var == NULL) ? NULL : (var = (live_chart_static_named_value_free (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartStaticStaticPointsPrivate { + GeeArrayList* points; + LiveChartBounds* _bounds; + gdouble _realtime_delta; +}; + +static gint LiveChartStaticStaticPoints_private_offset; +static gpointer live_chart_static_static_points_parent_class = NULL; + +static void live_chart_static_static_points_value_to_point (LiveChartStaticNamedValue* current_value, + LiveChartConfig* config, + LiveChartBoundaries* boundaries, + LiveChartPoint* result); +static void live_chart_static_static_points_finalize (GObject * obj); +static GType live_chart_static_static_points_get_type_once (void); +static void _vala_live_chart_static_static_points_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_points_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_points_get_instance_private (LiveChartStaticStaticPoints* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticPoints_private_offset); +} + +LiveChartStaticStaticPoints* +live_chart_static_static_points_construct (GType object_type) +{ + LiveChartStaticStaticPoints * self = NULL; + LiveChartBounds* _tmp0_; + LiveChartBounds* _tmp1_; +#line 13 "../src/static/static_points.vala" + self = (LiveChartStaticStaticPoints*) g_object_new (object_type, NULL); +#line 14 "../src/static/static_points.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 14 "../src/static/static_points.vala" + _tmp1_ = _tmp0_; +#line 14 "../src/static/static_points.vala" + live_chart_static_static_points_set_bounds (self, _tmp1_); +#line 14 "../src/static/static_points.vala" + _g_object_unref0 (_tmp1_); +#line 13 "../src/static/static_points.vala" + return self; +#line 77 "static_points.c" +} + +LiveChartStaticStaticPoints* +live_chart_static_static_points_new (void) +{ +#line 13 "../src/static/static_points.vala" + return live_chart_static_static_points_construct (LIVE_CHART_STATIC_TYPE_STATIC_POINTS); +#line 85 "static_points.c" +} + +void +live_chart_static_static_points_add (LiveChartStaticStaticPoints* self, + LiveChartPoint* point) +{ + LiveChartBounds* _tmp0_; + LiveChartPoint _tmp1_; + GeeArrayList* _tmp2_; + LiveChartPoint _tmp3_; +#line 17 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 17 "../src/static/static_points.vala" + g_return_if_fail (point != NULL); +#line 18 "../src/static/static_points.vala" + _tmp0_ = self->priv->_bounds; +#line 18 "../src/static/static_points.vala" + _tmp1_ = *point; +#line 18 "../src/static/static_points.vala" + live_chart_bounds_update (_tmp0_, _tmp1_.y); +#line 19 "../src/static/static_points.vala" + _tmp2_ = self->priv->points; +#line 19 "../src/static/static_points.vala" + _tmp3_ = *point; +#line 19 "../src/static/static_points.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp2_, &_tmp3_); +#line 112 "static_points.c" +} + +void +live_chart_static_static_points_get (LiveChartStaticStaticPoints* self, + gint at, + LiveChartPoint* result) +{ + GeeArrayList* _tmp0_; + gpointer _tmp1_; + LiveChartPoint* _tmp2_; + LiveChartPoint _tmp3_; +#line 32 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 33 "../src/static/static_points.vala" + _tmp0_ = self->priv->points; +#line 33 "../src/static/static_points.vala" + _tmp1_ = gee_abstract_list_get ((GeeAbstractList*) _tmp0_, at); +#line 33 "../src/static/static_points.vala" + _tmp2_ = (LiveChartPoint*) _tmp1_; +#line 33 "../src/static/static_points.vala" + _tmp3_ = *_tmp2_; +#line 33 "../src/static/static_points.vala" + _live_chart_point_free0 (_tmp2_); +#line 33 "../src/static/static_points.vala" + *result = _tmp3_; +#line 33 "../src/static/static_points.vala" + return; +#line 140 "static_points.c" +} + +void +live_chart_static_static_points_after (LiveChartStaticStaticPoints* self, + gint at, + LiveChartPoint* result) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartPoint _tmp5_ = {0}; +#line 36 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 37 "../src/static/static_points.vala" + _tmp0_ = live_chart_static_static_points_get_size (self); +#line 37 "../src/static/static_points.vala" + _tmp1_ = _tmp0_; +#line 37 "../src/static/static_points.vala" + if ((at + 1) >= _tmp1_) { +#line 159 "static_points.c" + gint _tmp2_; + gint _tmp3_; + LiveChartPoint _tmp4_ = {0}; +#line 37 "../src/static/static_points.vala" + _tmp2_ = live_chart_static_static_points_get_size (self); +#line 37 "../src/static/static_points.vala" + _tmp3_ = _tmp2_; +#line 37 "../src/static/static_points.vala" + live_chart_static_static_points_get (self, _tmp3_ - 1, &_tmp4_); +#line 37 "../src/static/static_points.vala" + *result = _tmp4_; +#line 37 "../src/static/static_points.vala" + return; +#line 173 "static_points.c" + } +#line 38 "../src/static/static_points.vala" + live_chart_static_static_points_get (self, at + 1, &_tmp5_); +#line 38 "../src/static/static_points.vala" + *result = _tmp5_; +#line 38 "../src/static/static_points.vala" + return; +#line 181 "static_points.c" +} + +void +live_chart_static_static_points_first (LiveChartStaticStaticPoints* self, + LiveChartPoint* result) +{ + LiveChartPoint _tmp0_ = {0}; +#line 41 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 42 "../src/static/static_points.vala" + live_chart_static_static_points_get (self, 0, &_tmp0_); +#line 42 "../src/static/static_points.vala" + *result = _tmp0_; +#line 42 "../src/static/static_points.vala" + return; +#line 197 "static_points.c" +} + +void +live_chart_static_static_points_last (LiveChartStaticStaticPoints* self, + LiveChartPoint* result) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartPoint _tmp2_ = {0}; +#line 45 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 46 "../src/static/static_points.vala" + _tmp0_ = live_chart_static_static_points_get_size (self); +#line 46 "../src/static/static_points.vala" + _tmp1_ = _tmp0_; +#line 46 "../src/static/static_points.vala" + live_chart_static_static_points_get (self, _tmp1_ - 1, &_tmp2_); +#line 46 "../src/static/static_points.vala" + *result = _tmp2_; +#line 46 "../src/static/static_points.vala" + return; +#line 219 "static_points.c" +} + +LiveChartStaticStaticPoints* +live_chart_static_static_points_create (LiveChartStaticStaticValues* values, + LiveChartConfig* config) +{ + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp0_ = {0}; + LiveChartStaticStaticPoints* points = NULL; + LiveChartStaticStaticPoints* _tmp1_; + gint _tmp2_; + gint _tmp3_; + LiveChartStaticStaticPoints* result; +#line 49 "../src/static/static_points.vala" + g_return_val_if_fail (values != NULL, NULL); +#line 49 "../src/static/static_points.vala" + g_return_val_if_fail (config != NULL, NULL); +#line 50 "../src/static/static_points.vala" + live_chart_config_boundaries (config, &_tmp0_); +#line 50 "../src/static/static_points.vala" + boundaries = _tmp0_; +#line 52 "../src/static/static_points.vala" + _tmp1_ = live_chart_static_static_points_new (); +#line 52 "../src/static/static_points.vala" + points = _tmp1_; +#line 53 "../src/static/static_points.vala" + _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) values); +#line 53 "../src/static/static_points.vala" + _tmp3_ = _tmp2_; +#line 53 "../src/static/static_points.vala" + if (_tmp3_ > 0) { +#line 251 "static_points.c" + { + LiveChartStaticStaticValues* _value_list = NULL; + gint _value_size = 0; + LiveChartStaticStaticValues* _tmp4_; + gint _tmp5_; + gint _tmp6_; + gint _value_index = 0; +#line 54 "../src/static/static_points.vala" + _value_list = values; +#line 54 "../src/static/static_points.vala" + _tmp4_ = _value_list; +#line 54 "../src/static/static_points.vala" + _tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_); +#line 54 "../src/static/static_points.vala" + _tmp6_ = _tmp5_; +#line 54 "../src/static/static_points.vala" + _value_size = _tmp6_; +#line 54 "../src/static/static_points.vala" + _value_index = -1; +#line 54 "../src/static/static_points.vala" + while (TRUE) { +#line 273 "static_points.c" + gint _tmp7_; + gint _tmp8_; + LiveChartStaticNamedValue value = {0}; + LiveChartStaticStaticValues* _tmp9_; + gpointer _tmp10_; + LiveChartStaticNamedValue* _tmp11_; + LiveChartStaticNamedValue _tmp12_; + LiveChartStaticNamedValue _tmp13_ = {0}; + LiveChartStaticNamedValue _tmp14_; + LiveChartPoint point = {0}; + LiveChartStaticNamedValue _tmp15_; + LiveChartBoundaries _tmp16_; + LiveChartPoint _tmp17_ = {0}; + LiveChartStaticStaticPoints* _tmp18_; + LiveChartPoint _tmp19_; +#line 54 "../src/static/static_points.vala" + _value_index = _value_index + 1; +#line 54 "../src/static/static_points.vala" + _tmp7_ = _value_index; +#line 54 "../src/static/static_points.vala" + _tmp8_ = _value_size; +#line 54 "../src/static/static_points.vala" + if (!(_tmp7_ < _tmp8_)) { +#line 54 "../src/static/static_points.vala" + break; +#line 299 "static_points.c" + } +#line 54 "../src/static/static_points.vala" + _tmp9_ = _value_list; +#line 54 "../src/static/static_points.vala" + _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _value_index); +#line 54 "../src/static/static_points.vala" + _tmp11_ = (LiveChartStaticNamedValue*) _tmp10_; +#line 54 "../src/static/static_points.vala" + _tmp12_ = *_tmp11_; +#line 54 "../src/static/static_points.vala" + live_chart_static_named_value_copy (&_tmp12_, &_tmp13_); +#line 54 "../src/static/static_points.vala" + _tmp14_ = _tmp13_; +#line 54 "../src/static/static_points.vala" + _live_chart_static_named_value_free0 (_tmp11_); +#line 54 "../src/static/static_points.vala" + value = _tmp14_; +#line 55 "../src/static/static_points.vala" + _tmp15_ = value; +#line 55 "../src/static/static_points.vala" + _tmp16_ = boundaries; +#line 55 "../src/static/static_points.vala" + live_chart_static_static_points_value_to_point (&_tmp15_, config, &_tmp16_, &_tmp17_); +#line 55 "../src/static/static_points.vala" + point = _tmp17_; +#line 56 "../src/static/static_points.vala" + _tmp18_ = points; +#line 56 "../src/static/static_points.vala" + _tmp19_ = point; +#line 56 "../src/static/static_points.vala" + live_chart_static_static_points_add (_tmp18_, &_tmp19_); +#line 54 "../src/static/static_points.vala" + live_chart_static_named_value_destroy (&value); +#line 333 "static_points.c" + } + } + } +#line 60 "../src/static/static_points.vala" + result = points; +#line 60 "../src/static/static_points.vala" + return result; +#line 341 "static_points.c" +} + +static void +live_chart_static_static_points_value_to_point (LiveChartStaticNamedValue* current_value, + LiveChartConfig* config, + LiveChartBoundaries* boundaries, + LiveChartPoint* result) +{ + gint category_length = 0; + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; + guint8 category_pos = 0U; + gint width_between_each_points = 0; + LiveChartBoundaries _tmp15_; + LiveChartBoundary _tmp16_; + LiveChartBoundaries _tmp17_; + LiveChartBoundary _tmp18_; + gint _tmp19_; + gint _tmp20_; + gchar* _tmp21_; + gchar* _tmp22_; + gint x = 0; + LiveChartBoundaries _tmp23_; + LiveChartBoundary _tmp24_; + gdouble y = 0.0; + LiveChartBoundaries _tmp25_; + LiveChartBoundary _tmp26_; + LiveChartStaticNamedValue _tmp27_; + LiveChartYAxis* _tmp28_; + LiveChartStaticNamedValue _tmp29_; + const gchar* _tmp30_; + LiveChartXAxis* _tmp31_; + gchar* _tmp32_; + gchar* _tmp33_; + LiveChartStaticNamedValue _tmp34_; + LiveChartYAxis* _tmp35_; + LiveChartPoint _tmp36_ = {0}; +#line 63 "../src/static/static_points.vala" + g_return_if_fail (current_value != NULL); +#line 63 "../src/static/static_points.vala" + g_return_if_fail (config != NULL); +#line 63 "../src/static/static_points.vala" + g_return_if_fail (boundaries != NULL); +#line 64 "../src/static/static_points.vala" + _tmp0_ = config->categories; +#line 64 "../src/static/static_points.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 64 "../src/static/static_points.vala" + _tmp2_ = _tmp1_; +#line 64 "../src/static/static_points.vala" + category_length = _tmp2_; +#line 65 "../src/static/static_points.vala" + category_pos = (guint8) 0; +#line 396 "static_points.c" + { + guint8 i = 0U; +#line 66 "../src/static/static_points.vala" + i = (guint8) 0; +#line 401 "static_points.c" + { + gboolean _tmp3_ = FALSE; +#line 66 "../src/static/static_points.vala" + _tmp3_ = TRUE; +#line 66 "../src/static/static_points.vala" + while (TRUE) { +#line 408 "static_points.c" + gchar* category = NULL; + GeeArrayList* _tmp5_; + gpointer _tmp6_; + gboolean _tmp7_ = FALSE; + const gchar* _tmp8_; +#line 66 "../src/static/static_points.vala" + if (!_tmp3_) { +#line 416 "static_points.c" + guint8 _tmp4_; +#line 66 "../src/static/static_points.vala" + _tmp4_ = i; +#line 66 "../src/static/static_points.vala" + i = _tmp4_ + 1; +#line 422 "static_points.c" + } +#line 66 "../src/static/static_points.vala" + _tmp3_ = FALSE; +#line 66 "../src/static/static_points.vala" + if (!(((gint) i) < category_length)) { +#line 66 "../src/static/static_points.vala" + break; +#line 430 "static_points.c" + } +#line 67 "../src/static/static_points.vala" + _tmp5_ = config->categories; +#line 67 "../src/static/static_points.vala" + _tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, (gint) i); +#line 67 "../src/static/static_points.vala" + category = (gchar*) _tmp6_; +#line 68 "../src/static/static_points.vala" + _tmp8_ = category; +#line 68 "../src/static/static_points.vala" + if (_tmp8_ != NULL) { +#line 442 "static_points.c" + const gchar* _tmp9_; + LiveChartStaticNamedValue _tmp10_; + const gchar* _tmp11_; +#line 68 "../src/static/static_points.vala" + _tmp9_ = category; +#line 68 "../src/static/static_points.vala" + _tmp10_ = *current_value; +#line 68 "../src/static/static_points.vala" + _tmp11_ = _tmp10_.name; +#line 68 "../src/static/static_points.vala" + _tmp7_ = g_strcmp0 (_tmp9_, _tmp11_) == 0; +#line 454 "static_points.c" + } else { +#line 68 "../src/static/static_points.vala" + _tmp7_ = FALSE; +#line 458 "static_points.c" + } +#line 68 "../src/static/static_points.vala" + if (_tmp7_) { +#line 462 "static_points.c" + const gchar* _tmp12_; + gchar* _tmp13_; + gchar* _tmp14_; +#line 69 "../src/static/static_points.vala" + category_pos = i; +#line 70 "../src/static/static_points.vala" + _tmp12_ = category; +#line 70 "../src/static/static_points.vala" + _tmp13_ = g_strdup_printf ("Found category %s at pos %d", _tmp12_, (gint) i); +#line 70 "../src/static/static_points.vala" + _tmp14_ = _tmp13_; +#line 70 "../src/static/static_points.vala" + g_message ("static_points.vala:70: %s", _tmp14_); +#line 70 "../src/static/static_points.vala" + _g_free0 (_tmp14_); +#line 71 "../src/static/static_points.vala" + _g_free0 (category); +#line 71 "../src/static/static_points.vala" + break; +#line 482 "static_points.c" + } +#line 66 "../src/static/static_points.vala" + _g_free0 (category); +#line 486 "static_points.c" + } + } + } +#line 74 "../src/static/static_points.vala" + _tmp15_ = *boundaries; +#line 74 "../src/static/static_points.vala" + _tmp16_ = _tmp15_.x; +#line 74 "../src/static/static_points.vala" + _tmp17_ = *boundaries; +#line 74 "../src/static/static_points.vala" + _tmp18_ = _tmp17_.x; +#line 74 "../src/static/static_points.vala" + width_between_each_points = (_tmp16_.max - _tmp18_.min) / (category_length - 1); +#line 75 "../src/static/static_points.vala" + _tmp19_ = live_chart_config_get_width (config); +#line 75 "../src/static/static_points.vala" + _tmp20_ = _tmp19_; +#line 75 "../src/static/static_points.vala" + _tmp21_ = g_strdup_printf ("WIDTH %d", _tmp20_); +#line 75 "../src/static/static_points.vala" + _tmp22_ = _tmp21_; +#line 75 "../src/static/static_points.vala" + g_message ("static_points.vala:75: %s", _tmp22_); +#line 75 "../src/static/static_points.vala" + _g_free0 (_tmp22_); +#line 76 "../src/static/static_points.vala" + _tmp23_ = *boundaries; +#line 76 "../src/static/static_points.vala" + _tmp24_ = _tmp23_.x; +#line 76 "../src/static/static_points.vala" + x = _tmp24_.min + (category_pos * width_between_each_points); +#line 77 "../src/static/static_points.vala" + _tmp25_ = *boundaries; +#line 77 "../src/static/static_points.vala" + _tmp26_ = _tmp25_.y; +#line 77 "../src/static/static_points.vala" + _tmp27_ = *current_value; +#line 77 "../src/static/static_points.vala" + _tmp28_ = config->y_axis; +#line 77 "../src/static/static_points.vala" + y = _tmp26_.max - (_tmp27_.value * live_chart_yaxis_get_ratio (_tmp28_)); +#line 78 "../src/static/static_points.vala" + _tmp29_ = *current_value; +#line 78 "../src/static/static_points.vala" + _tmp30_ = _tmp29_.name; +#line 78 "../src/static/static_points.vala" + _tmp31_ = config->x_axis; +#line 78 "../src/static/static_points.vala" + _tmp32_ = g_strdup_printf ("category %s at pos %d (%f,%f) (width_between_each_points = %d) ratio: " \ +"%f", _tmp30_, (gint) category_pos, (gdouble) x, y, width_between_each_points, live_chart_xaxis_get_ratio (_tmp31_)); +#line 78 "../src/static/static_points.vala" + _tmp33_ = _tmp32_; +#line 78 "../src/static/static_points.vala" + g_message ("static_points.vala:78: %s", _tmp33_); +#line 78 "../src/static/static_points.vala" + _g_free0 (_tmp33_); +#line 79 "../src/static/static_points.vala" + _tmp34_ = *current_value; +#line 79 "../src/static/static_points.vala" + _tmp35_ = config->y_axis; +#line 79 "../src/static/static_points.vala" + memset (&_tmp36_, 0, sizeof (LiveChartPoint)); +#line 79 "../src/static/static_points.vala" + _tmp36_.x = (gdouble) x; +#line 79 "../src/static/static_points.vala" + _tmp36_.y = y; +#line 79 "../src/static/static_points.vala" + _tmp36_.height = _tmp34_.value * live_chart_yaxis_get_ratio (_tmp35_); +#line 79 "../src/static/static_points.vala" + *result = _tmp36_; +#line 79 "../src/static/static_points.vala" + return; +#line 558 "static_points.c" +} + +LiveChartBounds* +live_chart_static_static_points_get_bounds (LiveChartStaticStaticPoints* self) +{ + LiveChartBounds* result; + LiveChartBounds* _tmp0_; +#line 10 "../src/static/static_points.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 10 "../src/static/static_points.vala" + _tmp0_ = self->priv->_bounds; +#line 10 "../src/static/static_points.vala" + result = _tmp0_; +#line 10 "../src/static/static_points.vala" + return result; +#line 574 "static_points.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 10 "../src/static/static_points.vala" + return self ? g_object_ref (self) : NULL; +#line 582 "static_points.c" +} + +void +live_chart_static_static_points_set_bounds (LiveChartStaticStaticPoints* self, + LiveChartBounds* value) +{ + LiveChartBounds* old_value; +#line 10 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 10 "../src/static/static_points.vala" + old_value = live_chart_static_static_points_get_bounds (self); +#line 10 "../src/static/static_points.vala" + if (old_value != value) { +#line 596 "static_points.c" + LiveChartBounds* _tmp0_; +#line 10 "../src/static/static_points.vala" + _tmp0_ = _g_object_ref0 (value); +#line 10 "../src/static/static_points.vala" + _g_object_unref0 (self->priv->_bounds); +#line 10 "../src/static/static_points.vala" + self->priv->_bounds = _tmp0_; +#line 10 "../src/static/static_points.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY]); +#line 606 "static_points.c" + } +} + +gint +live_chart_static_static_points_get_size (LiveChartStaticStaticPoints* self) +{ + gint result; + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; +#line 23 "../src/static/static_points.vala" + g_return_val_if_fail (self != NULL, 0); +#line 24 "../src/static/static_points.vala" + _tmp0_ = self->priv->points; +#line 24 "../src/static/static_points.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 24 "../src/static/static_points.vala" + _tmp2_ = _tmp1_; +#line 24 "../src/static/static_points.vala" + result = _tmp2_; +#line 24 "../src/static/static_points.vala" + return result; +#line 629 "static_points.c" +} + +gdouble +live_chart_static_static_points_get_realtime_delta (LiveChartStaticStaticPoints* self) +{ + gdouble result; +#line 29 "../src/static/static_points.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 29 "../src/static/static_points.vala" + result = self->priv->_realtime_delta; +#line 29 "../src/static/static_points.vala" + return result; +#line 642 "static_points.c" +} + +void +live_chart_static_static_points_set_realtime_delta (LiveChartStaticStaticPoints* self, + gdouble value) +{ + gdouble old_value; +#line 29 "../src/static/static_points.vala" + g_return_if_fail (self != NULL); +#line 29 "../src/static/static_points.vala" + old_value = live_chart_static_static_points_get_realtime_delta (self); +#line 29 "../src/static/static_points.vala" + if (old_value != value) { +#line 29 "../src/static/static_points.vala" + self->priv->_realtime_delta = value; +#line 29 "../src/static/static_points.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY]); +#line 660 "static_points.c" + } +} + +static void +live_chart_static_static_points_class_init (LiveChartStaticStaticPointsClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_points.vala" + live_chart_static_static_points_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_points.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticPoints_private_offset); +#line 6 "../src/static/static_points.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_points_get_property; +#line 6 "../src/static/static_points.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_points_set_property; +#line 6 "../src/static/static_points.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_points_finalize; +#line 6 "../src/static/static_points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY] = g_param_spec_object ("bounds", "bounds", "bounds", LIVE_CHART_TYPE_BOUNDS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 6 "../src/static/static_points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_POINTS_SIZE_PROPERTY, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_SIZE_PROPERTY] = g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); +#line 6 "../src/static/static_points.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY, live_chart_static_static_points_properties[LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY] = g_param_spec_double ("realtime-delta", "realtime-delta", "realtime-delta", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 684 "static_points.c" +} + +static void +live_chart_static_static_points_instance_init (LiveChartStaticStaticPoints * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 6 "../src/static/static_points.vala" + self->priv = live_chart_static_static_points_get_instance_private (self); +#line 8 "../src/static/static_points.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_TYPE_POINT, (GBoxedCopyFunc) live_chart_point_dup, (GDestroyNotify) live_chart_point_free, NULL, NULL, NULL); +#line 8 "../src/static/static_points.vala" + self->priv->points = _tmp0_; +#line 698 "static_points.c" +} + +static void +live_chart_static_static_points_finalize (GObject * obj) +{ + LiveChartStaticStaticPoints * self; +#line 6 "../src/static/static_points.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPoints); +#line 8 "../src/static/static_points.vala" + _g_object_unref0 (self->priv->points); +#line 9 "../src/static/static_points.vala" + _g_object_unref0 (self->priv->_bounds); +#line 6 "../src/static/static_points.vala" + G_OBJECT_CLASS (live_chart_static_static_points_parent_class)->finalize (obj); +#line 713 "static_points.c" +} + +static GType +live_chart_static_static_points_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticPointsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_points_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticPoints), 0, (GInstanceInitFunc) live_chart_static_static_points_instance_init, NULL }; + GType live_chart_static_static_points_type_id; + live_chart_static_static_points_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticPoints", &g_define_type_info, 0); + LiveChartStaticStaticPoints_private_offset = g_type_add_instance_private (live_chart_static_static_points_type_id, sizeof (LiveChartStaticStaticPointsPrivate)); + return live_chart_static_static_points_type_id; +} + +GType +live_chart_static_static_points_get_type (void) +{ + static volatile gsize live_chart_static_static_points_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_points_type_id__once)) { + GType live_chart_static_static_points_type_id; + live_chart_static_static_points_type_id = live_chart_static_static_points_get_type_once (); + g_once_init_leave (&live_chart_static_static_points_type_id__once, live_chart_static_static_points_type_id); + } + return live_chart_static_static_points_type_id__once; +} + +static void +_vala_live_chart_static_static_points_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticPoints * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPoints); +#line 6 "../src/static/static_points.vala" + switch (property_id) { +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY: +#line 6 "../src/static/static_points.vala" + g_value_set_object (value, live_chart_static_static_points_get_bounds (self)); +#line 6 "../src/static/static_points.vala" + break; +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_SIZE_PROPERTY: +#line 6 "../src/static/static_points.vala" + g_value_set_int (value, live_chart_static_static_points_get_size (self)); +#line 6 "../src/static/static_points.vala" + break; +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY: +#line 6 "../src/static/static_points.vala" + g_value_set_double (value, live_chart_static_static_points_get_realtime_delta (self)); +#line 6 "../src/static/static_points.vala" + break; +#line 766 "static_points.c" + default: +#line 6 "../src/static/static_points.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_points.vala" + break; +#line 772 "static_points.c" + } +} + +static void +_vala_live_chart_static_static_points_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticPoints * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_POINTS, LiveChartStaticStaticPoints); +#line 6 "../src/static/static_points.vala" + switch (property_id) { +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_BOUNDS_PROPERTY: +#line 6 "../src/static/static_points.vala" + live_chart_static_static_points_set_bounds (self, g_value_get_object (value)); +#line 6 "../src/static/static_points.vala" + break; +#line 6 "../src/static/static_points.vala" + case LIVE_CHART_STATIC_STATIC_POINTS_REALTIME_DELTA_PROPERTY: +#line 6 "../src/static/static_points.vala" + live_chart_static_static_points_set_realtime_delta (self, g_value_get_double (value)); +#line 6 "../src/static/static_points.vala" + break; +#line 798 "static_points.c" + default: +#line 6 "../src/static/static_points.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_points.vala" + break; +#line 804 "static_points.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/static/static_serie.c b/iPDC/lib/liblivechart.so.p/static/static_serie.c new file mode 100644 index 0000000..93ee52c --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/static/static_serie.c @@ -0,0 +1,619 @@ +/* static_serie.c generated by valac 0.56.0, the Vala compiler + * generated from static_serie.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_SERIE_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_NUM_PROPERTIES]; +#define _g_free0(var) (var = (g_free (var), NULL)) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +enum { + LIVE_CHART_STATIC_STATIC_SERIE_VALUE_ADDED_SIGNAL, + LIVE_CHART_STATIC_STATIC_SERIE_NUM_SIGNALS +}; +static guint live_chart_static_static_serie_signals[LIVE_CHART_STATIC_STATIC_SERIE_NUM_SIGNALS] = {0}; + +struct _LiveChartStaticStaticSeriePrivate { + gchar* _name; + gboolean _visible; + LiveChartStaticStaticSerieRenderer* renderer; +}; + +static gint LiveChartStaticStaticSerie_private_offset; +static gpointer live_chart_static_static_serie_parent_class = NULL; +static LiveChartColorableIface * live_chart_static_static_serie_live_chart_colorable_parent_iface = NULL; +static LiveChartDrawableIface * live_chart_static_static_serie_live_chart_drawable_parent_iface = NULL; + +static void live_chart_static_static_serie_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_static_static_serie_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_static_static_serie_finalize (GObject * obj); +static GType live_chart_static_static_serie_get_type_once (void); +static void _vala_live_chart_static_static_serie_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_serie_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_serie_get_instance_private (LiveChartStaticStaticSerie* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticSerie_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 39 "../src/static/static_serie.vala" + return self ? g_object_ref (self) : NULL; +#line 73 "static_serie.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_serie_construct (GType object_type, + const gchar* name, + LiveChartStaticStaticSerieRenderer* renderer) +{ + LiveChartStaticStaticSerie * self = NULL; + LiveChartStaticStaticSerieRenderer* _tmp0_; +#line 37 "../src/static/static_serie.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 37 "../src/static/static_serie.vala" + g_return_val_if_fail (renderer != NULL, NULL); +#line 37 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) g_object_new (object_type, NULL); +#line 38 "../src/static/static_serie.vala" + live_chart_static_static_serie_set_name (self, name); +#line 39 "../src/static/static_serie.vala" + _tmp0_ = _g_object_ref0 (renderer); +#line 39 "../src/static/static_serie.vala" + _g_object_unref0 (self->priv->renderer); +#line 39 "../src/static/static_serie.vala" + self->priv->renderer = _tmp0_; +#line 37 "../src/static/static_serie.vala" + return self; +#line 99 "static_serie.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_serie_new (const gchar* name, + LiveChartStaticStaticSerieRenderer* renderer) +{ +#line 37 "../src/static/static_serie.vala" + return live_chart_static_static_serie_construct (LIVE_CHART_STATIC_TYPE_STATIC_SERIE, name, renderer); +#line 108 "static_serie.c" +} + +static void +live_chart_static_static_serie_real_draw (LiveChartDrawable* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartStaticStaticSerie * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 42 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 42 "../src/static/static_serie.vala" + g_return_if_fail (ctx != NULL); +#line 42 "../src/static/static_serie.vala" + g_return_if_fail (config != NULL); +#line 43 "../src/static/static_serie.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 43 "../src/static/static_serie.vala" + _tmp1_ = _tmp0_; +#line 43 "../src/static/static_serie.vala" + if (_tmp1_) { +#line 131 "static_serie.c" + LiveChartStaticStaticSerieRenderer* _tmp2_; +#line 44 "../src/static/static_serie.vala" + _tmp2_ = self->priv->renderer; +#line 44 "../src/static/static_serie.vala" + live_chart_static_static_serie_renderer_draw (_tmp2_, ctx, config); +#line 137 "static_serie.c" + } +} + +void +live_chart_static_static_serie_add (LiveChartStaticStaticSerie* self, + const gchar* name, + gdouble value) +{ + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartStaticStaticValues* _tmp1_; + LiveChartStaticStaticValues* _tmp2_; + LiveChartStaticNamedValue _tmp3_ = {0}; +#line 48 "../src/static/static_serie.vala" + g_return_if_fail (self != NULL); +#line 48 "../src/static/static_serie.vala" + g_return_if_fail (name != NULL); +#line 49 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 49 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_values (_tmp0_); +#line 49 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 49 "../src/static/static_serie.vala" + _g_free0 (_tmp3_.name); +#line 49 "../src/static/static_serie.vala" + _tmp3_.name = name; +#line 49 "../src/static/static_serie.vala" + _tmp3_.value = value; +#line 49 "../src/static/static_serie.vala" + live_chart_static_static_values_add (_tmp2_, &_tmp3_); +#line 49 "../src/static/static_serie.vala" + _g_object_unref0 (_tmp2_); +#line 50 "../src/static/static_serie.vala" + g_signal_emit (self, live_chart_static_static_serie_signals[LIVE_CHART_STATIC_STATIC_SERIE_VALUE_ADDED_SIGNAL], 0, value); +#line 172 "static_serie.c" +} + +LiveChartStaticStaticValues* +live_chart_static_static_serie_get_values (LiveChartStaticStaticSerie* self) +{ + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartStaticStaticValues* _tmp1_; + LiveChartStaticStaticValues* result; +#line 53 "../src/static/static_serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 54 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 54 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_values (_tmp0_); +#line 54 "../src/static/static_serie.vala" + result = _tmp1_; +#line 54 "../src/static/static_serie.vala" + return result; +#line 191 "static_serie.c" +} + +void +live_chart_static_static_serie_clear (LiveChartStaticStaticSerie* self) +{ + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartStaticStaticValues* _tmp1_; + LiveChartStaticStaticValues* _tmp2_; +#line 57 "../src/static/static_serie.vala" + g_return_if_fail (self != NULL); +#line 58 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 58 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_values (_tmp0_); +#line 58 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 58 "../src/static/static_serie.vala" + gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp2_); +#line 58 "../src/static/static_serie.vala" + _g_object_unref0 (_tmp2_); +#line 212 "static_serie.c" +} + +static void +live_chart_static_static_serie_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartStaticStaticSerie * self; + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartBoundingBox _tmp1_ = {0}; +#line 61 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 62 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 62 "../src/static/static_serie.vala" + live_chart_drawable_get_bounding_box ((LiveChartDrawable*) _tmp0_, &_tmp1_); +#line 62 "../src/static/static_serie.vala" + *result = _tmp1_; +#line 62 "../src/static/static_serie.vala" + return; +#line 232 "static_serie.c" +} + +const gchar* +live_chart_static_static_serie_get_name (LiveChartStaticStaticSerie* self) +{ + const gchar* result; + const gchar* _tmp0_; +#line 9 "../src/static/static_serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 9 "../src/static/static_serie.vala" + _tmp0_ = self->priv->_name; +#line 9 "../src/static/static_serie.vala" + result = _tmp0_; +#line 9 "../src/static/static_serie.vala" + return result; +#line 248 "static_serie.c" +} + +void +live_chart_static_static_serie_set_name (LiveChartStaticStaticSerie* self, + const gchar* value) +{ + gchar* old_value; +#line 9 "../src/static/static_serie.vala" + g_return_if_fail (self != NULL); +#line 9 "../src/static/static_serie.vala" + old_value = live_chart_static_static_serie_get_name (self); +#line 9 "../src/static/static_serie.vala" + if (g_strcmp0 (value, old_value) != 0) { +#line 262 "static_serie.c" + gchar* _tmp0_; +#line 9 "../src/static/static_serie.vala" + _tmp0_ = g_strdup (value); +#line 9 "../src/static/static_serie.vala" + _g_free0 (self->priv->_name); +#line 9 "../src/static/static_serie.vala" + self->priv->_name = _tmp0_; +#line 9 "../src/static/static_serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY]); +#line 272 "static_serie.c" + } +} + +static void +live_chart_static_static_serie_real_get_main_color (LiveChartColorable* base, + GdkRGBA * result) +{ + LiveChartStaticStaticSerie* self; + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_ = {0}; + GdkRGBA _tmp4_; +#line 13 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 14 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 14 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_line (_tmp0_); +#line 14 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 14 "../src/static/static_serie.vala" + live_chart_path_get_color (_tmp2_, &_tmp3_); +#line 14 "../src/static/static_serie.vala" + _tmp4_ = _tmp3_; +#line 14 "../src/static/static_serie.vala" + *result = _tmp4_; +#line 14 "../src/static/static_serie.vala" + return; +#line 302 "static_serie.c" +} + +static void +live_chart_static_static_serie_real_set_main_color (LiveChartColorable* base, + GdkRGBA * value) +{ + LiveChartStaticStaticSerie* self; + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; + GdkRGBA _tmp3_; +#line 17 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 18 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 18 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_line (_tmp0_); +#line 18 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 18 "../src/static/static_serie.vala" + _tmp3_ = *value; +#line 18 "../src/static/static_serie.vala" + live_chart_path_set_color (_tmp2_, &_tmp3_); +#line 17 "../src/static/static_serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY]); +#line 328 "static_serie.c" +} + +LiveChartPath* +live_chart_static_static_serie_get_line (LiveChartStaticStaticSerie* self) +{ + LiveChartPath* result; + LiveChartStaticStaticSerieRenderer* _tmp0_; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; +#line 22 "../src/static/static_serie.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 23 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 23 "../src/static/static_serie.vala" + _tmp1_ = live_chart_static_static_serie_renderer_get_line (_tmp0_); +#line 23 "../src/static/static_serie.vala" + _tmp2_ = _tmp1_; +#line 23 "../src/static/static_serie.vala" + result = _tmp2_; +#line 23 "../src/static/static_serie.vala" + return result; +#line 350 "static_serie.c" +} + +void +live_chart_static_static_serie_set_line (LiveChartStaticStaticSerie* self, + LiveChartPath* value) +{ + LiveChartStaticStaticSerieRenderer* _tmp0_; +#line 26 "../src/static/static_serie.vala" + g_return_if_fail (self != NULL); +#line 27 "../src/static/static_serie.vala" + _tmp0_ = self->priv->renderer; +#line 27 "../src/static/static_serie.vala" + live_chart_static_static_serie_renderer_set_line (_tmp0_, value); +#line 26 "../src/static/static_serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY]); +#line 366 "static_serie.c" +} + +static gboolean +live_chart_static_static_serie_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartStaticStaticSerie* self; +#line 31 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 31 "../src/static/static_serie.vala" + result = self->priv->_visible; +#line 31 "../src/static/static_serie.vala" + return result; +#line 380 "static_serie.c" +} + +static void +live_chart_static_static_serie_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartStaticStaticSerie* self; + gboolean old_value; +#line 31 "../src/static/static_serie.vala" + self = (LiveChartStaticStaticSerie*) base; +#line 31 "../src/static/static_serie.vala" + old_value = live_chart_static_static_serie_real_get_visible (base); +#line 31 "../src/static/static_serie.vala" + if (old_value != value) { +#line 31 "../src/static/static_serie.vala" + self->priv->_visible = value; +#line 31 "../src/static/static_serie.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY]); +#line 399 "static_serie.c" + } +} + +static void +live_chart_static_static_serie_class_init (LiveChartStaticStaticSerieClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_serie.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticSerie_private_offset); +#line 6 "../src/static/static_serie.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_serie_get_property; +#line 6 "../src/static/static_serie.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_serie_set_property; +#line 6 "../src/static/static_serie.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_serie_finalize; +#line 6 "../src/static/static_serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY] = g_param_spec_boxed ("main-color", "main-color", "main-color", gdk_rgba_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY] = g_param_spec_object ("line", "line", "line", LIVE_CHART_TYPE_PATH, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY, live_chart_static_static_serie_properties[LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_signals[LIVE_CHART_STATIC_STATIC_SERIE_VALUE_ADDED_SIGNAL] = g_signal_new ("value-added", LIVE_CHART_STATIC_TYPE_STATIC_SERIE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); +#line 427 "static_serie.c" +} + +static void +live_chart_static_static_serie_live_chart_colorable_interface_init (LiveChartColorableIface * iface, + gpointer iface_data) +{ +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_live_chart_colorable_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/static/static_serie.vala" + iface->get_main_color = live_chart_static_static_serie_real_get_main_color; +#line 6 "../src/static/static_serie.vala" + iface->set_main_color = live_chart_static_static_serie_real_set_main_color; +#line 440 "static_serie.c" +} + +static void +live_chart_static_static_serie_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/static/static_serie.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_static_static_serie_real_draw; +#line 6 "../src/static/static_serie.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_static_static_serie_real_get_bounding_box; +#line 6 "../src/static/static_serie.vala" + iface->get_visible = live_chart_static_static_serie_real_get_visible; +#line 6 "../src/static/static_serie.vala" + iface->set_visible = live_chart_static_static_serie_real_set_visible; +#line 457 "static_serie.c" +} + +static void +live_chart_static_static_serie_instance_init (LiveChartStaticStaticSerie * self, + gpointer klass) +{ +#line 6 "../src/static/static_serie.vala" + self->priv = live_chart_static_static_serie_get_instance_private (self); +#line 31 "../src/static/static_serie.vala" + self->priv->_visible = TRUE; +#line 468 "static_serie.c" +} + +static void +live_chart_static_static_serie_finalize (GObject * obj) +{ + LiveChartStaticStaticSerie * self; +#line 6 "../src/static/static_serie.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerie); +#line 8 "../src/static/static_serie.vala" + _g_free0 (self->priv->_name); +#line 35 "../src/static/static_serie.vala" + _g_object_unref0 (self->priv->renderer); +#line 6 "../src/static/static_serie.vala" + G_OBJECT_CLASS (live_chart_static_static_serie_parent_class)->finalize (obj); +#line 483 "static_serie.c" +} + +static GType +live_chart_static_static_serie_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticSerieClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_serie_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticSerie), 0, (GInstanceInitFunc) live_chart_static_static_serie_instance_init, NULL }; + static const GInterfaceInfo live_chart_colorable_info = { (GInterfaceInitFunc) live_chart_static_static_serie_live_chart_colorable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_static_static_serie_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_static_static_serie_type_id; + live_chart_static_static_serie_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticSerie", &g_define_type_info, 0); + g_type_add_interface_static (live_chart_static_static_serie_type_id, LIVE_CHART_TYPE_COLORABLE, &live_chart_colorable_info); + g_type_add_interface_static (live_chart_static_static_serie_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartStaticStaticSerie_private_offset = g_type_add_instance_private (live_chart_static_static_serie_type_id, sizeof (LiveChartStaticStaticSeriePrivate)); + return live_chart_static_static_serie_type_id; +} + +GType +live_chart_static_static_serie_get_type (void) +{ + static volatile gsize live_chart_static_static_serie_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_serie_type_id__once)) { + GType live_chart_static_static_serie_type_id; + live_chart_static_static_serie_type_id = live_chart_static_static_serie_get_type_once (); + g_once_init_leave (&live_chart_static_static_serie_type_id__once, live_chart_static_static_serie_type_id); + } + return live_chart_static_static_serie_type_id__once; +} + +static void +_vala_live_chart_static_static_serie_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticSerie * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerie); +#line 6 "../src/static/static_serie.vala" + switch (property_id) { +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY: +#line 6 "../src/static/static_serie.vala" + g_value_set_string (value, live_chart_static_static_serie_get_name (self)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY: +#line 530 "static_serie.c" + { + GdkRGBA boxed; +#line 6 "../src/static/static_serie.vala" + live_chart_colorable_get_main_color ((LiveChartColorable*) self, &boxed); +#line 6 "../src/static/static_serie.vala" + g_value_set_boxed (value, &boxed); +#line 537 "static_serie.c" + } +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY: +#line 6 "../src/static/static_serie.vala" + g_value_set_object (value, live_chart_static_static_serie_get_line (self)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY: +#line 6 "../src/static/static_serie.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 6 "../src/static/static_serie.vala" + break; +#line 553 "static_serie.c" + default: +#line 6 "../src/static/static_serie.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_serie.vala" + break; +#line 559 "static_serie.c" + } +} + +static void +_vala_live_chart_static_static_serie_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticSerie * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_SERIE, LiveChartStaticStaticSerie); +#line 6 "../src/static/static_serie.vala" + switch (property_id) { +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_NAME_PROPERTY: +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_set_name (self, g_value_get_string (value)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_MAIN_COLOR_PROPERTY: +#line 6 "../src/static/static_serie.vala" + live_chart_colorable_set_main_color ((LiveChartColorable*) self, g_value_get_boxed (value)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_LINE_PROPERTY: +#line 6 "../src/static/static_serie.vala" + live_chart_static_static_serie_set_line (self, g_value_get_object (value)); +#line 6 "../src/static/static_serie.vala" + break; +#line 6 "../src/static/static_serie.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_VISIBLE_PROPERTY: +#line 6 "../src/static/static_serie.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 6 "../src/static/static_serie.vala" + break; +#line 597 "static_serie.c" + default: +#line 6 "../src/static/static_serie.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_serie.vala" + break; +#line 603 "static_serie.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/static/static_serie_renderer.c b/iPDC/lib/liblivechart.so.p/static/static_serie_renderer.c new file mode 100644 index 0000000..68535d0 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/static/static_serie_renderer.c @@ -0,0 +1,483 @@ +/* static_serie_renderer.c generated by valac 0.56.0, the Vala compiler + * generated from static_serie_renderer.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#define LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VIRTUAL_LEFT_PADDING -200 + +enum { + LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartStaticStaticSerieRendererPrivate { + gboolean _visible; + LiveChartPath* _line; +}; + +static gint LiveChartStaticStaticSerieRenderer_private_offset; +static gpointer live_chart_static_static_serie_renderer_parent_class = NULL; +static LiveChartDrawableIface * live_chart_static_static_serie_renderer_live_chart_drawable_parent_iface = NULL; + +static void live_chart_static_static_serie_renderer_real_draw (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_static_static_serie_renderer_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result); +static void live_chart_static_static_serie_renderer_finalize (GObject * obj); +static GType live_chart_static_static_serie_renderer_get_type_once (void); +static void _vala_live_chart_static_static_serie_renderer_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_serie_renderer_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_serie_renderer_get_instance_private (LiveChartStaticStaticSerieRenderer* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticSerieRenderer_private_offset); +} + +LiveChartStaticStaticSerieRenderer* +live_chart_static_static_serie_renderer_construct (GType object_type) +{ + LiveChartStaticStaticSerieRenderer * self = NULL; + GdkRGBA _tmp0_ = {0}; + LiveChartPath* _tmp1_; + LiveChartPath* _tmp2_; +#line 14 "../src/static/static_serie_renderer.vala" + self = (LiveChartStaticStaticSerieRenderer*) g_object_new (object_type, NULL); +#line 15 "../src/static/static_serie_renderer.vala" + _tmp0_.red = 1.0; +#line 15 "../src/static/static_serie_renderer.vala" + _tmp0_.green = 1.0; +#line 15 "../src/static/static_serie_renderer.vala" + _tmp0_.blue = 1.0; +#line 15 "../src/static/static_serie_renderer.vala" + _tmp0_.alpha = 1.0; +#line 15 "../src/static/static_serie_renderer.vala" + _tmp1_ = live_chart_path_new ((gdouble) 1, &_tmp0_, TRUE, NULL); +#line 15 "../src/static/static_serie_renderer.vala" + _tmp2_ = _tmp1_; +#line 15 "../src/static/static_serie_renderer.vala" + live_chart_static_static_serie_renderer_set_line (self, _tmp2_); +#line 15 "../src/static/static_serie_renderer.vala" + _g_object_unref0 (_tmp2_); +#line 14 "../src/static/static_serie_renderer.vala" + return self; +#line 87 "static_serie_renderer.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 27 "../src/static/static_serie_renderer.vala" + return self ? g_object_ref (self) : NULL; +#line 95 "static_serie_renderer.c" +} + +LiveChartStaticStaticValues* +live_chart_static_static_serie_renderer_get_values (LiveChartStaticStaticSerieRenderer* self) +{ + LiveChartStaticStaticValues* _tmp0_; + LiveChartStaticStaticValues* _tmp1_; + LiveChartStaticStaticValues* result; +#line 26 "../src/static/static_serie_renderer.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 27 "../src/static/static_serie_renderer.vala" + _tmp0_ = self->values; +#line 27 "../src/static/static_serie_renderer.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 27 "../src/static/static_serie_renderer.vala" + result = _tmp1_; +#line 27 "../src/static/static_serie_renderer.vala" + return result; +#line 114 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_real_draw (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config) +{ +#line 30 "../src/static/static_serie_renderer.vala" + g_critical ("Type `%s' does not implement abstract method `live_chart_static_static_serie_renderer_draw'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 30 "../src/static/static_serie_renderer.vala" + return; +#line 126 "static_serie_renderer.c" +} + +void +live_chart_static_static_serie_renderer_draw (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartStaticStaticSerieRendererClass* _klass_; +#line 30 "../src/static/static_serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 30 "../src/static/static_serie_renderer.vala" + _klass_ = LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_GET_CLASS (self); +#line 30 "../src/static/static_serie_renderer.vala" + if (_klass_->draw) { +#line 30 "../src/static/static_serie_renderer.vala" + _klass_->draw (self, ctx, config); +#line 143 "static_serie_renderer.c" + } +} + +static void +live_chart_static_static_serie_renderer_real_get_bounding_box (LiveChartDrawable* base, + LiveChartBoundingBox* result) +{ + LiveChartStaticStaticSerieRenderer * self; + LiveChartBoundingBox _tmp0_; +#line 31 "../src/static/static_serie_renderer.vala" + self = (LiveChartStaticStaticSerieRenderer*) base; +#line 32 "../src/static/static_serie_renderer.vala" + _tmp0_ = self->bounding_box; +#line 32 "../src/static/static_serie_renderer.vala" + *result = _tmp0_; +#line 32 "../src/static/static_serie_renderer.vala" + return; +#line 161 "static_serie_renderer.c" +} + +void +live_chart_static_static_serie_renderer_debug (LiveChartStaticStaticSerieRenderer* self, + cairo_t* ctx) +{ + gchar* debug = NULL; + const gchar* _tmp0_; + gchar* _tmp1_; + const gchar* _tmp2_; +#line 35 "../src/static/static_serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 35 "../src/static/static_serie_renderer.vala" + g_return_if_fail (ctx != NULL); +#line 36 "../src/static/static_serie_renderer.vala" + _tmp0_ = g_getenv ("LIVE_CHART_DEBUG"); +#line 36 "../src/static/static_serie_renderer.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 36 "../src/static/static_serie_renderer.vala" + debug = _tmp1_; +#line 37 "../src/static/static_serie_renderer.vala" + _tmp2_ = debug; +#line 37 "../src/static/static_serie_renderer.vala" + if (_tmp2_ != NULL) { +#line 186 "static_serie_renderer.c" + LiveChartBoundingBox _tmp3_; + LiveChartBoundingBox _tmp4_; + LiveChartBoundingBox _tmp5_; + LiveChartBoundingBox _tmp6_; +#line 38 "../src/static/static_serie_renderer.vala" + _tmp3_ = self->bounding_box; +#line 38 "../src/static/static_serie_renderer.vala" + _tmp4_ = self->bounding_box; +#line 38 "../src/static/static_serie_renderer.vala" + _tmp5_ = self->bounding_box; +#line 38 "../src/static/static_serie_renderer.vala" + _tmp6_ = self->bounding_box; +#line 38 "../src/static/static_serie_renderer.vala" + cairo_rectangle (ctx, _tmp3_.x, _tmp4_.y, _tmp5_.width, _tmp6_.height); +#line 39 "../src/static/static_serie_renderer.vala" + cairo_stroke (ctx); +#line 203 "static_serie_renderer.c" + } +#line 35 "../src/static/static_serie_renderer.vala" + _g_free0 (debug); +#line 207 "static_serie_renderer.c" +} + +gboolean +live_chart_static_static_serie_renderer_is_out_of_area (LiveChartStaticStaticSerieRenderer* self, + LiveChartPoint* point) +{ + LiveChartPoint _tmp0_; + gboolean result; +#line 43 "../src/static/static_serie_renderer.vala" + g_return_val_if_fail (self != NULL, FALSE); +#line 43 "../src/static/static_serie_renderer.vala" + g_return_val_if_fail (point != NULL, FALSE); +#line 44 "../src/static/static_serie_renderer.vala" + _tmp0_ = *point; +#line 44 "../src/static/static_serie_renderer.vala" + result = _tmp0_.x < ((gdouble) LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VIRTUAL_LEFT_PADDING); +#line 44 "../src/static/static_serie_renderer.vala" + return result; +#line 226 "static_serie_renderer.c" +} + +static gboolean +live_chart_static_static_serie_renderer_real_get_visible (LiveChartDrawable* base) +{ + gboolean result; + LiveChartStaticStaticSerieRenderer* self; +#line 10 "../src/static/static_serie_renderer.vala" + self = (LiveChartStaticStaticSerieRenderer*) base; +#line 10 "../src/static/static_serie_renderer.vala" + result = self->priv->_visible; +#line 10 "../src/static/static_serie_renderer.vala" + return result; +#line 240 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_real_set_visible (LiveChartDrawable* base, + gboolean value) +{ + LiveChartStaticStaticSerieRenderer* self; + gboolean old_value; +#line 10 "../src/static/static_serie_renderer.vala" + self = (LiveChartStaticStaticSerieRenderer*) base; +#line 10 "../src/static/static_serie_renderer.vala" + old_value = live_chart_static_static_serie_renderer_real_get_visible (base); +#line 10 "../src/static/static_serie_renderer.vala" + if (old_value != value) { +#line 10 "../src/static/static_serie_renderer.vala" + self->priv->_visible = value; +#line 10 "../src/static/static_serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY]); +#line 259 "static_serie_renderer.c" + } +} + +LiveChartPath* +live_chart_static_static_serie_renderer_get_line (LiveChartStaticStaticSerieRenderer* self) +{ + LiveChartPath* result; + LiveChartPath* _tmp0_; +#line 12 "../src/static/static_serie_renderer.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 12 "../src/static/static_serie_renderer.vala" + _tmp0_ = self->priv->_line; +#line 12 "../src/static/static_serie_renderer.vala" + result = _tmp0_; +#line 12 "../src/static/static_serie_renderer.vala" + return result; +#line 276 "static_serie_renderer.c" +} + +void +live_chart_static_static_serie_renderer_set_line (LiveChartStaticStaticSerieRenderer* self, + LiveChartPath* value) +{ + LiveChartPath* old_value; +#line 12 "../src/static/static_serie_renderer.vala" + g_return_if_fail (self != NULL); +#line 12 "../src/static/static_serie_renderer.vala" + old_value = live_chart_static_static_serie_renderer_get_line (self); +#line 12 "../src/static/static_serie_renderer.vala" + if (old_value != value) { +#line 290 "static_serie_renderer.c" + LiveChartPath* _tmp0_; +#line 12 "../src/static/static_serie_renderer.vala" + _tmp0_ = _g_object_ref0 (value); +#line 12 "../src/static/static_serie_renderer.vala" + _g_object_unref0 (self->priv->_line); +#line 12 "../src/static/static_serie_renderer.vala" + self->priv->_line = _tmp0_; +#line 12 "../src/static/static_serie_renderer.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY]); +#line 300 "static_serie_renderer.c" + } +} + +static void +live_chart_static_static_serie_renderer_class_init (LiveChartStaticStaticSerieRendererClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_serie_renderer.vala" + live_chart_static_static_serie_renderer_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_serie_renderer.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticSerieRenderer_private_offset); +#line 6 "../src/static/static_serie_renderer.vala" + ((LiveChartStaticStaticSerieRendererClass *) klass)->draw = (void (*) (LiveChartStaticStaticSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_static_static_serie_renderer_real_draw; +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_serie_renderer_get_property; +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_serie_renderer_set_property; +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_serie_renderer_finalize; +#line 6 "../src/static/static_serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY, live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY] = g_param_spec_boolean ("visible", "visible", "visible", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 6 "../src/static/static_serie_renderer.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY, live_chart_static_static_serie_renderer_properties[LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY] = g_param_spec_object ("line", "line", "line", LIVE_CHART_TYPE_PATH, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 324 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_live_chart_drawable_interface_init (LiveChartDrawableIface * iface, + gpointer iface_data) +{ +#line 6 "../src/static/static_serie_renderer.vala" + live_chart_static_static_serie_renderer_live_chart_drawable_parent_iface = g_type_interface_peek_parent (iface); +#line 6 "../src/static/static_serie_renderer.vala" + iface->draw = (void (*) (LiveChartDrawable*, cairo_t*, LiveChartConfig*)) live_chart_static_static_serie_renderer_draw; +#line 6 "../src/static/static_serie_renderer.vala" + iface->get_bounding_box = (void (*) (LiveChartDrawable*, LiveChartBoundingBox*)) live_chart_static_static_serie_renderer_real_get_bounding_box; +#line 6 "../src/static/static_serie_renderer.vala" + iface->get_visible = live_chart_static_static_serie_renderer_real_get_visible; +#line 6 "../src/static/static_serie_renderer.vala" + iface->set_visible = live_chart_static_static_serie_renderer_real_set_visible; +#line 341 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_instance_init (LiveChartStaticStaticSerieRenderer * self, + gpointer klass) +{ + LiveChartBoundingBox _tmp0_ = {0}; +#line 6 "../src/static/static_serie_renderer.vala" + self->priv = live_chart_static_static_serie_renderer_get_instance_private (self); +#line 10 "../src/static/static_serie_renderer.vala" + self->priv->_visible = TRUE; +#line 18 "../src/static/static_serie_renderer.vala" + memset (&_tmp0_, 0, sizeof (LiveChartBoundingBox)); +#line 18 "../src/static/static_serie_renderer.vala" + _tmp0_.x = (gdouble) 0; +#line 18 "../src/static/static_serie_renderer.vala" + _tmp0_.y = (gdouble) 0; +#line 18 "../src/static/static_serie_renderer.vala" + _tmp0_.width = (gdouble) 0; +#line 18 "../src/static/static_serie_renderer.vala" + _tmp0_.height = (gdouble) 0; +#line 18 "../src/static/static_serie_renderer.vala" + self->bounding_box = _tmp0_; +#line 365 "static_serie_renderer.c" +} + +static void +live_chart_static_static_serie_renderer_finalize (GObject * obj) +{ + LiveChartStaticStaticSerieRenderer * self; +#line 6 "../src/static/static_serie_renderer.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRenderer); +#line 12 "../src/static/static_serie_renderer.vala" + _g_object_unref0 (self->priv->_line); +#line 25 "../src/static/static_serie_renderer.vala" + _g_object_unref0 (self->values); +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_CLASS (live_chart_static_static_serie_renderer_parent_class)->finalize (obj); +#line 380 "static_serie_renderer.c" +} + +static GType +live_chart_static_static_serie_renderer_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticSerieRendererClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_serie_renderer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticSerieRenderer), 0, (GInstanceInitFunc) live_chart_static_static_serie_renderer_instance_init, NULL }; + static const GInterfaceInfo live_chart_drawable_info = { (GInterfaceInitFunc) live_chart_static_static_serie_renderer_live_chart_drawable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType live_chart_static_static_serie_renderer_type_id; + live_chart_static_static_serie_renderer_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticSerieRenderer", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (live_chart_static_static_serie_renderer_type_id, LIVE_CHART_TYPE_DRAWABLE, &live_chart_drawable_info); + LiveChartStaticStaticSerieRenderer_private_offset = g_type_add_instance_private (live_chart_static_static_serie_renderer_type_id, sizeof (LiveChartStaticStaticSerieRendererPrivate)); + return live_chart_static_static_serie_renderer_type_id; +} + +GType +live_chart_static_static_serie_renderer_get_type (void) +{ + static volatile gsize live_chart_static_static_serie_renderer_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_serie_renderer_type_id__once)) { + GType live_chart_static_static_serie_renderer_type_id; + live_chart_static_static_serie_renderer_type_id = live_chart_static_static_serie_renderer_get_type_once (); + g_once_init_leave (&live_chart_static_static_serie_renderer_type_id__once, live_chart_static_static_serie_renderer_type_id); + } + return live_chart_static_static_serie_renderer_type_id__once; +} + +static void +_vala_live_chart_static_static_serie_renderer_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticSerieRenderer * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRenderer); +#line 6 "../src/static/static_serie_renderer.vala" + switch (property_id) { +#line 6 "../src/static/static_serie_renderer.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY: +#line 6 "../src/static/static_serie_renderer.vala" + g_value_set_boolean (value, live_chart_drawable_get_visible ((LiveChartDrawable*) self)); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 6 "../src/static/static_serie_renderer.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY: +#line 6 "../src/static/static_serie_renderer.vala" + g_value_set_object (value, live_chart_static_static_serie_renderer_get_line (self)); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 429 "static_serie_renderer.c" + default: +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 435 "static_serie_renderer.c" + } +} + +static void +_vala_live_chart_static_static_serie_renderer_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticSerieRenderer * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_SERIE_RENDERER, LiveChartStaticStaticSerieRenderer); +#line 6 "../src/static/static_serie_renderer.vala" + switch (property_id) { +#line 6 "../src/static/static_serie_renderer.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_VISIBLE_PROPERTY: +#line 6 "../src/static/static_serie_renderer.vala" + live_chart_drawable_set_visible ((LiveChartDrawable*) self, g_value_get_boolean (value)); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 6 "../src/static/static_serie_renderer.vala" + case LIVE_CHART_STATIC_STATIC_SERIE_RENDERER_LINE_PROPERTY: +#line 6 "../src/static/static_serie_renderer.vala" + live_chart_static_static_serie_renderer_set_line (self, g_value_get_object (value)); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 461 "static_serie_renderer.c" + default: +#line 6 "../src/static/static_serie_renderer.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 6 "../src/static/static_serie_renderer.vala" + break; +#line 467 "static_serie_renderer.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/static/static_series.c b/iPDC/lib/liblivechart.so.p/static/static_series.c new file mode 100644 index 0000000..e8aeb29 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/static/static_series.c @@ -0,0 +1,415 @@ +/* static_series.c generated by valac 0.56.0, the Vala compiler + * generated from static_series.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_STATIC_STATIC_SERIES_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_SERIES_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_series_properties[LIVE_CHART_STATIC_STATIC_SERIES_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _LiveChartStaticStaticSeriesPrivate { + GeeArrayList* series; + LiveChartStaticStaticChart* chart; +}; + +static gint LiveChartStaticStaticSeries_private_offset; +static gpointer live_chart_static_static_series_parent_class = NULL; + +static void __lambda15_ (LiveChartStaticStaticSeries* self, + gdouble value); +static void ___lambda15__live_chart_static_static_serie_value_added (LiveChartStaticStaticSerie* _sender, + gdouble value, + gpointer self); +static void live_chart_static_static_series_finalize (GObject * obj); +static GType live_chart_static_static_series_get_type_once (void); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_static_static_series_get_instance_private (LiveChartStaticStaticSeries* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticSeries_private_offset); +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 12 "../src/static/static_series.vala" + return self ? g_object_ref (self) : NULL; +#line 51 "static_series.c" +} + +LiveChartStaticStaticSeries* +live_chart_static_static_series_construct (GType object_type, + LiveChartStaticStaticChart* chart) +{ + LiveChartStaticStaticSeries * self = NULL; + LiveChartStaticStaticChart* _tmp0_; +#line 11 "../src/static/static_series.vala" + g_return_val_if_fail (chart != NULL, NULL); +#line 11 "../src/static/static_series.vala" + self = (LiveChartStaticStaticSeries*) g_object_new (object_type, NULL); +#line 12 "../src/static/static_series.vala" + _tmp0_ = _g_object_ref0 (chart); +#line 12 "../src/static/static_series.vala" + _g_object_unref0 (self->priv->chart); +#line 12 "../src/static/static_series.vala" + self->priv->chart = _tmp0_; +#line 11 "../src/static/static_series.vala" + return self; +#line 72 "static_series.c" +} + +LiveChartStaticStaticSeries* +live_chart_static_static_series_new (LiveChartStaticStaticChart* chart) +{ +#line 11 "../src/static/static_series.vala" + return live_chart_static_static_series_construct (LIVE_CHART_STATIC_TYPE_STATIC_SERIES, chart); +#line 80 "static_series.c" +} + +static void +__lambda15_ (LiveChartStaticStaticSeries* self, + gdouble value) +{ + LiveChartStaticStaticChart* _tmp0_; + LiveChartConfig* _tmp1_; + LiveChartYAxis* _tmp2_; +#line 20 "../src/static/static_series.vala" + _tmp0_ = self->priv->chart; +#line 20 "../src/static/static_series.vala" + _tmp1_ = _tmp0_->config; +#line 20 "../src/static/static_series.vala" + _tmp2_ = _tmp1_->y_axis; +#line 20 "../src/static/static_series.vala" + live_chart_yaxis_update_bounds (_tmp2_, value); +#line 98 "static_series.c" +} + +static void +___lambda15__live_chart_static_static_serie_value_added (LiveChartStaticStaticSerie* _sender, + gdouble value, + gpointer self) +{ +#line 18 "../src/static/static_series.vala" + __lambda15_ ((LiveChartStaticStaticSeries*) self, value); +#line 108 "static_series.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_series_register (LiveChartStaticStaticSeries* self, + LiveChartStaticStaticSerie* serie) +{ + GeeArrayList* _tmp0_; + LiveChartStaticStaticSerie* _tmp1_; + LiveChartStaticStaticSerie* result; +#line 15 "../src/static/static_series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 15 "../src/static/static_series.vala" + g_return_val_if_fail (serie != NULL, NULL); +#line 16 "../src/static/static_series.vala" + _tmp0_ = self->priv->series; +#line 16 "../src/static/static_series.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, serie); +#line 18 "../src/static/static_series.vala" + g_signal_connect_object (serie, "value-added", (GCallback) ___lambda15__live_chart_static_static_serie_value_added, self, 0); +#line 22 "../src/static/static_series.vala" + _tmp1_ = _g_object_ref0 (serie); +#line 22 "../src/static/static_series.vala" + result = _tmp1_; +#line 22 "../src/static/static_series.vala" + return result; +#line 134 "static_series.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_series_get (LiveChartStaticStaticSeries* self, + gint index, + GError** error) +{ + GeeArrayList* _tmp0_; + gint _tmp1_; + gint _tmp2_; + GeeArrayList* _tmp7_; + gpointer _tmp8_; + GError* _inner_error0_ = NULL; + LiveChartStaticStaticSerie* result; +#line 25 "../src/static/static_series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 26 "../src/static/static_series.vala" + _tmp0_ = self->priv->series; +#line 26 "../src/static/static_series.vala" + _tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_); +#line 26 "../src/static/static_series.vala" + _tmp2_ = _tmp1_; +#line 26 "../src/static/static_series.vala" + if (index > (_tmp2_ - 1)) { +#line 159 "static_series.c" + gchar* _tmp3_; + gchar* _tmp4_; + GError* _tmp5_; + GError* _tmp6_; +#line 27 "../src/static/static_series.vala" + _tmp3_ = g_strdup_printf ("Serie at index %d not found", index); +#line 27 "../src/static/static_series.vala" + _tmp4_ = _tmp3_; +#line 27 "../src/static/static_series.vala" + _tmp5_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, _tmp4_); +#line 27 "../src/static/static_series.vala" + _tmp6_ = _tmp5_; +#line 27 "../src/static/static_series.vala" + _g_free0 (_tmp4_); +#line 27 "../src/static/static_series.vala" + _inner_error0_ = _tmp6_; +#line 27 "../src/static/static_series.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 27 "../src/static/static_series.vala" + g_propagate_error (error, _inner_error0_); +#line 27 "../src/static/static_series.vala" + return NULL; +#line 182 "static_series.c" + } else { +#line 27 "../src/static/static_series.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 27 "../src/static/static_series.vala" + g_clear_error (&_inner_error0_); +#line 27 "../src/static/static_series.vala" + return NULL; +#line 190 "static_series.c" + } + } +#line 29 "../src/static/static_series.vala" + _tmp7_ = self->priv->series; +#line 29 "../src/static/static_series.vala" + _tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, index); +#line 29 "../src/static/static_series.vala" + result = (LiveChartStaticStaticSerie*) _tmp8_; +#line 29 "../src/static/static_series.vala" + return result; +#line 201 "static_series.c" +} + +LiveChartStaticStaticSerie* +live_chart_static_static_series_get_by_name (LiveChartStaticStaticSeries* self, + const gchar* name, + GError** error) +{ + gchar* _tmp11_; + gchar* _tmp12_; + GError* _tmp13_; + GError* _tmp14_; + GError* _inner_error0_ = NULL; + LiveChartStaticStaticSerie* result; +#line 32 "../src/static/static_series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 32 "../src/static/static_series.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 219 "static_series.c" + { + GeeArrayList* _serie_list = NULL; + GeeArrayList* _tmp0_; + gint _serie_size = 0; + GeeArrayList* _tmp1_; + gint _tmp2_; + gint _tmp3_; + gint _serie_index = 0; +#line 33 "../src/static/static_series.vala" + _tmp0_ = self->priv->series; +#line 33 "../src/static/static_series.vala" + _serie_list = _tmp0_; +#line 33 "../src/static/static_series.vala" + _tmp1_ = _serie_list; +#line 33 "../src/static/static_series.vala" + _tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_); +#line 33 "../src/static/static_series.vala" + _tmp3_ = _tmp2_; +#line 33 "../src/static/static_series.vala" + _serie_size = _tmp3_; +#line 33 "../src/static/static_series.vala" + _serie_index = -1; +#line 33 "../src/static/static_series.vala" + while (TRUE) { +#line 244 "static_series.c" + gint _tmp4_; + gint _tmp5_; + LiveChartStaticStaticSerie* serie = NULL; + GeeArrayList* _tmp6_; + gpointer _tmp7_; + LiveChartStaticStaticSerie* _tmp8_; + const gchar* _tmp9_; + const gchar* _tmp10_; +#line 33 "../src/static/static_series.vala" + _serie_index = _serie_index + 1; +#line 33 "../src/static/static_series.vala" + _tmp4_ = _serie_index; +#line 33 "../src/static/static_series.vala" + _tmp5_ = _serie_size; +#line 33 "../src/static/static_series.vala" + if (!(_tmp4_ < _tmp5_)) { +#line 33 "../src/static/static_series.vala" + break; +#line 263 "static_series.c" + } +#line 33 "../src/static/static_series.vala" + _tmp6_ = _serie_list; +#line 33 "../src/static/static_series.vala" + _tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, _serie_index); +#line 33 "../src/static/static_series.vala" + serie = (LiveChartStaticStaticSerie*) _tmp7_; +#line 34 "../src/static/static_series.vala" + _tmp8_ = serie; +#line 34 "../src/static/static_series.vala" + _tmp9_ = live_chart_static_static_serie_get_name (_tmp8_); +#line 34 "../src/static/static_series.vala" + _tmp10_ = _tmp9_; +#line 34 "../src/static/static_series.vala" + if (g_strcmp0 (_tmp10_, name) == 0) { +#line 34 "../src/static/static_series.vala" + result = serie; +#line 34 "../src/static/static_series.vala" + return result; +#line 283 "static_series.c" + } +#line 33 "../src/static/static_series.vala" + _g_object_unref0 (serie); +#line 287 "static_series.c" + } + } +#line 36 "../src/static/static_series.vala" + _tmp11_ = g_strdup_printf ("Serie with name %s not found", name); +#line 36 "../src/static/static_series.vala" + _tmp12_ = _tmp11_; +#line 36 "../src/static/static_series.vala" + _tmp13_ = g_error_new_literal (LIVE_CHART_CHART_ERROR, LIVE_CHART_CHART_ERROR_SERIE_NOT_FOUND, _tmp12_); +#line 36 "../src/static/static_series.vala" + _tmp14_ = _tmp13_; +#line 36 "../src/static/static_series.vala" + _g_free0 (_tmp12_); +#line 36 "../src/static/static_series.vala" + _inner_error0_ = _tmp14_; +#line 36 "../src/static/static_series.vala" + if (_inner_error0_->domain == LIVE_CHART_CHART_ERROR) { +#line 36 "../src/static/static_series.vala" + g_propagate_error (error, _inner_error0_); +#line 36 "../src/static/static_series.vala" + return NULL; +#line 308 "static_series.c" + } else { +#line 36 "../src/static/static_series.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); +#line 36 "../src/static/static_series.vala" + g_clear_error (&_inner_error0_); +#line 36 "../src/static/static_series.vala" + return NULL; +#line 316 "static_series.c" + } +} + +GeeIterator* +live_chart_static_static_series_iterator (LiveChartStaticStaticSeries* self) +{ + GeeArrayList* _tmp0_; + GeeListIterator* _tmp1_; + GeeIterator* result; +#line 39 "../src/static/static_series.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 40 "../src/static/static_series.vala" + _tmp0_ = self->priv->series; +#line 40 "../src/static/static_series.vala" + _tmp1_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp0_); +#line 40 "../src/static/static_series.vala" + result = (GeeIterator*) _tmp1_; +#line 40 "../src/static/static_series.vala" + return result; +#line 336 "static_series.c" +} + +static void +live_chart_static_static_series_class_init (LiveChartStaticStaticSeriesClass * klass, + gpointer klass_data) +{ +#line 6 "../src/static/static_series.vala" + live_chart_static_static_series_parent_class = g_type_class_peek_parent (klass); +#line 6 "../src/static/static_series.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticSeries_private_offset); +#line 6 "../src/static/static_series.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_series_finalize; +#line 349 "static_series.c" +} + +static void +live_chart_static_static_series_instance_init (LiveChartStaticStaticSeries * self, + gpointer klass) +{ + GeeArrayList* _tmp0_; +#line 6 "../src/static/static_series.vala" + self->priv = live_chart_static_static_series_get_instance_private (self); +#line 8 "../src/static/static_series.vala" + _tmp0_ = gee_array_list_new (LIVE_CHART_STATIC_TYPE_STATIC_SERIE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL); +#line 8 "../src/static/static_series.vala" + self->priv->series = _tmp0_; +#line 363 "static_series.c" +} + +static void +live_chart_static_static_series_finalize (GObject * obj) +{ + LiveChartStaticStaticSeries * self; +#line 6 "../src/static/static_series.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_SERIES, LiveChartStaticStaticSeries); +#line 8 "../src/static/static_series.vala" + _g_object_unref0 (self->priv->series); +#line 9 "../src/static/static_series.vala" + _g_object_unref0 (self->priv->chart); +#line 6 "../src/static/static_series.vala" + G_OBJECT_CLASS (live_chart_static_static_series_parent_class)->finalize (obj); +#line 378 "static_series.c" +} + +static GType +live_chart_static_static_series_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticSeriesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_series_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticSeries), 0, (GInstanceInitFunc) live_chart_static_static_series_instance_init, NULL }; + GType live_chart_static_static_series_type_id; + live_chart_static_static_series_type_id = g_type_register_static (G_TYPE_OBJECT, "LiveChartStaticStaticSeries", &g_define_type_info, 0); + LiveChartStaticStaticSeries_private_offset = g_type_add_instance_private (live_chart_static_static_series_type_id, sizeof (LiveChartStaticStaticSeriesPrivate)); + return live_chart_static_static_series_type_id; +} + +GType +live_chart_static_static_series_get_type (void) +{ + static volatile gsize live_chart_static_static_series_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_series_type_id__once)) { + GType live_chart_static_static_series_type_id; + live_chart_static_static_series_type_id = live_chart_static_static_series_get_type_once (); + g_once_init_leave (&live_chart_static_static_series_type_id__once, live_chart_static_static_series_type_id); + } + return live_chart_static_static_series_type_id__once; +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/static/static_values.c b/iPDC/lib/liblivechart.so.p/static/static_values.c new file mode 100644 index 0000000..0e6e1f3 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/static/static_values.c @@ -0,0 +1,348 @@ +/* static_values.c generated by valac 0.56.0, the Vala compiler + * generated from static_values.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include + +#define _g_free0(var) (var = (g_free (var), NULL)) +enum { + LIVE_CHART_STATIC_STATIC_VALUES_0_PROPERTY, + LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY, + LIVE_CHART_STATIC_STATIC_VALUES_NUM_PROPERTIES +}; +static GParamSpec* live_chart_static_static_values_properties[LIVE_CHART_STATIC_STATIC_VALUES_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +struct _LiveChartStaticStaticValuesPrivate { + LiveChartBounds* _bounds; +}; + +static gint LiveChartStaticStaticValues_private_offset; +static gpointer live_chart_static_static_values_parent_class = NULL; + +static void live_chart_static_static_values_finalize (GObject * obj); +static GType live_chart_static_static_values_get_type_once (void); +static void _vala_live_chart_static_static_values_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_static_static_values_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +void +live_chart_static_named_value_copy (const LiveChartStaticNamedValue* self, + LiveChartStaticNamedValue* dest) +{ + const gchar* _tmp0_; + gchar* _tmp1_; +#line 6 "../src/static/static_values.vala" + _tmp0_ = (*self).name; +#line 6 "../src/static/static_values.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 6 "../src/static/static_values.vala" + _g_free0 ((*dest).name); +#line 6 "../src/static/static_values.vala" + (*dest).name = _tmp1_; +#line 6 "../src/static/static_values.vala" + (*dest).value = (*self).value; +#line 59 "static_values.c" +} + +void +live_chart_static_named_value_destroy (LiveChartStaticNamedValue* self) +{ +#line 7 "../src/static/static_values.vala" + _g_free0 ((*self).name); +#line 67 "static_values.c" +} + +LiveChartStaticNamedValue* +live_chart_static_named_value_dup (const LiveChartStaticNamedValue* self) +{ + LiveChartStaticNamedValue* dup; +#line 6 "../src/static/static_values.vala" + dup = g_new0 (LiveChartStaticNamedValue, 1); +#line 6 "../src/static/static_values.vala" + live_chart_static_named_value_copy (self, dup); +#line 6 "../src/static/static_values.vala" + return dup; +#line 80 "static_values.c" +} + +void +live_chart_static_named_value_free (LiveChartStaticNamedValue* self) +{ +#line 6 "../src/static/static_values.vala" + live_chart_static_named_value_destroy (self); +#line 6 "../src/static/static_values.vala" + g_free (self); +#line 90 "static_values.c" +} + +static GType +live_chart_static_named_value_get_type_once (void) +{ + GType live_chart_static_named_value_type_id; + live_chart_static_named_value_type_id = g_boxed_type_register_static ("LiveChartStaticNamedValue", (GBoxedCopyFunc) live_chart_static_named_value_dup, (GBoxedFreeFunc) live_chart_static_named_value_free); + return live_chart_static_named_value_type_id; +} + +GType +live_chart_static_named_value_get_type (void) +{ + static volatile gsize live_chart_static_named_value_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_named_value_type_id__once)) { + GType live_chart_static_named_value_type_id; + live_chart_static_named_value_type_id = live_chart_static_named_value_get_type_once (); + g_once_init_leave (&live_chart_static_named_value_type_id__once, live_chart_static_named_value_type_id); + } + return live_chart_static_named_value_type_id__once; +} + +static inline gpointer +live_chart_static_static_values_get_instance_private (LiveChartStaticStaticValues* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartStaticStaticValues_private_offset); +} + +LiveChartStaticStaticValues* +live_chart_static_static_values_construct (GType object_type) +{ + LiveChartStaticStaticValues * self = NULL; + LiveChartBounds* _tmp0_; + LiveChartBounds* _tmp1_; +#line 17 "../src/static/static_values.vala" + self = (LiveChartStaticStaticValues*) gee_linked_list_construct (object_type, LIVE_CHART_STATIC_TYPE_NAMED_VALUE, (GBoxedCopyFunc) live_chart_static_named_value_dup, (GDestroyNotify) live_chart_static_named_value_free, NULL, NULL, NULL); +#line 18 "../src/static/static_values.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 18 "../src/static/static_values.vala" + _tmp1_ = _tmp0_; +#line 18 "../src/static/static_values.vala" + live_chart_static_static_values_set_bounds (self, _tmp1_); +#line 18 "../src/static/static_values.vala" + _g_object_unref0 (_tmp1_); +#line 17 "../src/static/static_values.vala" + return self; +#line 137 "static_values.c" +} + +LiveChartStaticStaticValues* +live_chart_static_static_values_new (void) +{ +#line 17 "../src/static/static_values.vala" + return live_chart_static_static_values_construct (LIVE_CHART_STATIC_TYPE_STATIC_VALUES); +#line 145 "static_values.c" +} + +void +live_chart_static_static_values_add (LiveChartStaticStaticValues* self, + LiveChartStaticNamedValue* value) +{ + LiveChartBounds* _tmp0_; + LiveChartStaticNamedValue _tmp1_; + LiveChartStaticNamedValue _tmp2_; +#line 21 "../src/static/static_values.vala" + g_return_if_fail (self != NULL); +#line 21 "../src/static/static_values.vala" + g_return_if_fail (value != NULL); +#line 22 "../src/static/static_values.vala" + _tmp0_ = self->priv->_bounds; +#line 22 "../src/static/static_values.vala" + _tmp1_ = *value; +#line 22 "../src/static/static_values.vala" + live_chart_bounds_update (_tmp0_, _tmp1_.value); +#line 23 "../src/static/static_values.vala" + _tmp2_ = *value; +#line 23 "../src/static/static_values.vala" + GEE_ABSTRACT_COLLECTION_CLASS (live_chart_static_static_values_parent_class)->add ((GeeAbstractCollection*) G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_LINKED_LIST, GeeLinkedList), &_tmp2_); +#line 169 "static_values.c" +} + +LiveChartBounds* +live_chart_static_static_values_get_bounds (LiveChartStaticStaticValues* self) +{ + LiveChartBounds* result; + LiveChartBounds* _tmp0_; +#line 14 "../src/static/static_values.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 14 "../src/static/static_values.vala" + _tmp0_ = self->priv->_bounds; +#line 14 "../src/static/static_values.vala" + result = _tmp0_; +#line 14 "../src/static/static_values.vala" + return result; +#line 185 "static_values.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 14 "../src/static/static_values.vala" + return self ? g_object_ref (self) : NULL; +#line 193 "static_values.c" +} + +void +live_chart_static_static_values_set_bounds (LiveChartStaticStaticValues* self, + LiveChartBounds* value) +{ + LiveChartBounds* old_value; +#line 14 "../src/static/static_values.vala" + g_return_if_fail (self != NULL); +#line 14 "../src/static/static_values.vala" + old_value = live_chart_static_static_values_get_bounds (self); +#line 14 "../src/static/static_values.vala" + if (old_value != value) { +#line 207 "static_values.c" + LiveChartBounds* _tmp0_; +#line 14 "../src/static/static_values.vala" + _tmp0_ = _g_object_ref0 (value); +#line 14 "../src/static/static_values.vala" + _g_object_unref0 (self->priv->_bounds); +#line 14 "../src/static/static_values.vala" + self->priv->_bounds = _tmp0_; +#line 14 "../src/static/static_values.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_static_static_values_properties[LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY]); +#line 217 "static_values.c" + } +} + +static void +live_chart_static_static_values_class_init (LiveChartStaticStaticValuesClass * klass, + gpointer klass_data) +{ +#line 11 "../src/static/static_values.vala" + live_chart_static_static_values_parent_class = g_type_class_peek_parent (klass); +#line 11 "../src/static/static_values.vala" + g_type_class_adjust_private_offset (klass, &LiveChartStaticStaticValues_private_offset); +#line 11 "../src/static/static_values.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_static_static_values_get_property; +#line 11 "../src/static/static_values.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_static_static_values_set_property; +#line 11 "../src/static/static_values.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_static_static_values_finalize; +#line 11 "../src/static/static_values.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY, live_chart_static_static_values_properties[LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY] = g_param_spec_object ("bounds", "bounds", "bounds", LIVE_CHART_TYPE_BOUNDS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 237 "static_values.c" +} + +static void +live_chart_static_static_values_instance_init (LiveChartStaticStaticValues * self, + gpointer klass) +{ +#line 11 "../src/static/static_values.vala" + self->priv = live_chart_static_static_values_get_instance_private (self); +#line 246 "static_values.c" +} + +static void +live_chart_static_static_values_finalize (GObject * obj) +{ + LiveChartStaticStaticValues * self; +#line 11 "../src/static/static_values.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValues); +#line 13 "../src/static/static_values.vala" + _g_object_unref0 (self->priv->_bounds); +#line 11 "../src/static/static_values.vala" + G_OBJECT_CLASS (live_chart_static_static_values_parent_class)->finalize (obj); +#line 259 "static_values.c" +} + +static GType +live_chart_static_static_values_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartStaticStaticValuesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_static_static_values_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartStaticStaticValues), 0, (GInstanceInitFunc) live_chart_static_static_values_instance_init, NULL }; + GType live_chart_static_static_values_type_id; + live_chart_static_static_values_type_id = g_type_register_static (GEE_TYPE_LINKED_LIST, "LiveChartStaticStaticValues", &g_define_type_info, 0); + LiveChartStaticStaticValues_private_offset = g_type_add_instance_private (live_chart_static_static_values_type_id, sizeof (LiveChartStaticStaticValuesPrivate)); + return live_chart_static_static_values_type_id; +} + +GType +live_chart_static_static_values_get_type (void) +{ + static volatile gsize live_chart_static_static_values_type_id__once = 0; + if (g_once_init_enter (&live_chart_static_static_values_type_id__once)) { + GType live_chart_static_static_values_type_id; + live_chart_static_static_values_type_id = live_chart_static_static_values_get_type_once (); + g_once_init_leave (&live_chart_static_static_values_type_id__once, live_chart_static_static_values_type_id); + } + return live_chart_static_static_values_type_id__once; +} + +static void +_vala_live_chart_static_static_values_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticValues * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValues); +#line 11 "../src/static/static_values.vala" + switch (property_id) { +#line 11 "../src/static/static_values.vala" + case LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY: +#line 11 "../src/static/static_values.vala" + g_value_set_object (value, live_chart_static_static_values_get_bounds (self)); +#line 11 "../src/static/static_values.vala" + break; +#line 300 "static_values.c" + default: +#line 11 "../src/static/static_values.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 11 "../src/static/static_values.vala" + break; +#line 306 "static_values.c" + } +} + +static void +_vala_live_chart_static_static_values_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartStaticStaticValues * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_STATIC_TYPE_STATIC_VALUES, LiveChartStaticStaticValues); +#line 11 "../src/static/static_values.vala" + switch (property_id) { +#line 11 "../src/static/static_values.vala" + case LIVE_CHART_STATIC_STATIC_VALUES_BOUNDS_PROPERTY: +#line 11 "../src/static/static_values.vala" + live_chart_static_static_values_set_bounds (self, g_value_get_object (value)); +#line 11 "../src/static/static_values.vala" + break; +#line 326 "static_values.c" + default: +#line 11 "../src/static/static_values.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 11 "../src/static/static_values.vala" + break; +#line 332 "static_values.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/threshold_line.c b/iPDC/lib/liblivechart.so.p/threshold_line.c new file mode 100644 index 0000000..6b5f6c3 --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/threshold_line.c @@ -0,0 +1,303 @@ +/* threshold_line.c generated by valac 0.56.0, the Vala compiler + * generated from threshold_line.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_THRESHOLD_LINE_0_PROPERTY, + LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY, + LIVE_CHART_THRESHOLD_LINE_NUM_PROPERTIES +}; +static GParamSpec* live_chart_threshold_line_properties[LIVE_CHART_THRESHOLD_LINE_NUM_PROPERTIES]; + +struct _LiveChartThresholdLinePrivate { + gdouble _value; +}; + +static gint LiveChartThresholdLine_private_offset; +static gpointer live_chart_threshold_line_parent_class = NULL; + +static void live_chart_threshold_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config); +static void live_chart_threshold_line_finalize (GObject * obj); +static GType live_chart_threshold_line_get_type_once (void); +static void _vala_live_chart_threshold_line_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_threshold_line_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +static inline gpointer +live_chart_threshold_line_get_instance_private (LiveChartThresholdLine* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartThresholdLine_private_offset); +} + +LiveChartThresholdLine* +live_chart_threshold_line_construct (GType object_type, + gdouble value) +{ + LiveChartThresholdLine * self = NULL; +#line 10 "../src/threshold_line.vala" + self = (LiveChartThresholdLine*) live_chart_serie_renderer_construct (object_type); +#line 11 "../src/threshold_line.vala" + live_chart_threshold_line_set_value (self, value); +#line 9 "../src/threshold_line.vala" + return self; +#line 59 "threshold_line.c" +} + +LiveChartThresholdLine* +live_chart_threshold_line_new (gdouble value) +{ +#line 9 "../src/threshold_line.vala" + return live_chart_threshold_line_construct (LIVE_CHART_TYPE_THRESHOLD_LINE, value); +#line 67 "threshold_line.c" +} + +static void +live_chart_threshold_line_real_draw (LiveChartSerieRenderer* base, + cairo_t* ctx, + LiveChartConfig* config) +{ + LiveChartThresholdLine * self; + gboolean _tmp0_; + gboolean _tmp1_; +#line 14 "../src/threshold_line.vala" + self = (LiveChartThresholdLine*) base; +#line 14 "../src/threshold_line.vala" + g_return_if_fail (ctx != NULL); +#line 14 "../src/threshold_line.vala" + g_return_if_fail (config != NULL); +#line 15 "../src/threshold_line.vala" + _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); +#line 15 "../src/threshold_line.vala" + _tmp1_ = _tmp0_; +#line 15 "../src/threshold_line.vala" + if (_tmp1_) { +#line 90 "threshold_line.c" + LiveChartBoundaries boundaries = {0}; + LiveChartBoundaries _tmp2_ = {0}; + LiveChartPath* _tmp3_; + LiveChartPath* _tmp4_; + gdouble y = 0.0; + LiveChartBoundaries _tmp5_; + LiveChartBoundary _tmp6_; + gdouble _tmp7_; + LiveChartYAxis* _tmp8_; + LiveChartBoundaries _tmp9_; + LiveChartBoundary _tmp10_; + LiveChartBoundaries _tmp11_; + LiveChartBoundary _tmp12_; +#line 16 "../src/threshold_line.vala" + live_chart_config_boundaries (config, &_tmp2_); +#line 16 "../src/threshold_line.vala" + boundaries = _tmp2_; +#line 17 "../src/threshold_line.vala" + _tmp3_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); +#line 17 "../src/threshold_line.vala" + _tmp4_ = _tmp3_; +#line 17 "../src/threshold_line.vala" + live_chart_path_configure (_tmp4_, ctx); +#line 18 "../src/threshold_line.vala" + _tmp5_ = boundaries; +#line 18 "../src/threshold_line.vala" + _tmp6_ = _tmp5_.y; +#line 18 "../src/threshold_line.vala" + _tmp7_ = self->priv->_value; +#line 18 "../src/threshold_line.vala" + _tmp8_ = config->y_axis; +#line 18 "../src/threshold_line.vala" + y = _tmp6_.max - (_tmp7_ * live_chart_yaxis_get_ratio (_tmp8_)); +#line 19 "../src/threshold_line.vala" + _tmp9_ = boundaries; +#line 19 "../src/threshold_line.vala" + _tmp10_ = _tmp9_.x; +#line 19 "../src/threshold_line.vala" + cairo_move_to (ctx, (gdouble) _tmp10_.min, y); +#line 20 "../src/threshold_line.vala" + _tmp11_ = boundaries; +#line 20 "../src/threshold_line.vala" + _tmp12_ = _tmp11_.x; +#line 20 "../src/threshold_line.vala" + cairo_line_to (ctx, (gdouble) _tmp12_.max, y); +#line 21 "../src/threshold_line.vala" + cairo_stroke (ctx); +#line 138 "threshold_line.c" + } +} + +gdouble +live_chart_threshold_line_get_value (LiveChartThresholdLine* self) +{ + gdouble result; +#line 7 "../src/threshold_line.vala" + g_return_val_if_fail (self != NULL, 0.0); +#line 7 "../src/threshold_line.vala" + result = self->priv->_value; +#line 7 "../src/threshold_line.vala" + return result; +#line 152 "threshold_line.c" +} + +void +live_chart_threshold_line_set_value (LiveChartThresholdLine* self, + gdouble value) +{ + gdouble old_value; +#line 7 "../src/threshold_line.vala" + g_return_if_fail (self != NULL); +#line 7 "../src/threshold_line.vala" + old_value = live_chart_threshold_line_get_value (self); +#line 7 "../src/threshold_line.vala" + if (old_value != value) { +#line 7 "../src/threshold_line.vala" + self->priv->_value = value; +#line 7 "../src/threshold_line.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_threshold_line_properties[LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY]); +#line 170 "threshold_line.c" + } +} + +static void +live_chart_threshold_line_class_init (LiveChartThresholdLineClass * klass, + gpointer klass_data) +{ +#line 5 "../src/threshold_line.vala" + live_chart_threshold_line_parent_class = g_type_class_peek_parent (klass); +#line 5 "../src/threshold_line.vala" + g_type_class_adjust_private_offset (klass, &LiveChartThresholdLine_private_offset); +#line 5 "../src/threshold_line.vala" + ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_threshold_line_real_draw; +#line 5 "../src/threshold_line.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_threshold_line_get_property; +#line 5 "../src/threshold_line.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_threshold_line_set_property; +#line 5 "../src/threshold_line.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_threshold_line_finalize; +#line 5 "../src/threshold_line.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY, live_chart_threshold_line_properties[LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY] = g_param_spec_double ("value", "value", "value", -G_MAXDOUBLE, G_MAXDOUBLE, (gdouble) 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); +#line 192 "threshold_line.c" +} + +static void +live_chart_threshold_line_instance_init (LiveChartThresholdLine * self, + gpointer klass) +{ +#line 5 "../src/threshold_line.vala" + self->priv = live_chart_threshold_line_get_instance_private (self); +#line 7 "../src/threshold_line.vala" + self->priv->_value = (gdouble) 0; +#line 203 "threshold_line.c" +} + +static void +live_chart_threshold_line_finalize (GObject * obj) +{ + LiveChartThresholdLine * self; +#line 5 "../src/threshold_line.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLine); +#line 5 "../src/threshold_line.vala" + G_OBJECT_CLASS (live_chart_threshold_line_parent_class)->finalize (obj); +#line 214 "threshold_line.c" +} + +static GType +live_chart_threshold_line_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartThresholdLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_threshold_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartThresholdLine), 0, (GInstanceInitFunc) live_chart_threshold_line_instance_init, NULL }; + GType live_chart_threshold_line_type_id; + live_chart_threshold_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartThresholdLine", &g_define_type_info, 0); + LiveChartThresholdLine_private_offset = g_type_add_instance_private (live_chart_threshold_line_type_id, sizeof (LiveChartThresholdLinePrivate)); + return live_chart_threshold_line_type_id; +} + +GType +live_chart_threshold_line_get_type (void) +{ + static volatile gsize live_chart_threshold_line_type_id__once = 0; + if (g_once_init_enter (&live_chart_threshold_line_type_id__once)) { + GType live_chart_threshold_line_type_id; + live_chart_threshold_line_type_id = live_chart_threshold_line_get_type_once (); + g_once_init_leave (&live_chart_threshold_line_type_id__once, live_chart_threshold_line_type_id); + } + return live_chart_threshold_line_type_id__once; +} + +static void +_vala_live_chart_threshold_line_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartThresholdLine * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLine); +#line 5 "../src/threshold_line.vala" + switch (property_id) { +#line 5 "../src/threshold_line.vala" + case LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY: +#line 5 "../src/threshold_line.vala" + g_value_set_double (value, live_chart_threshold_line_get_value (self)); +#line 5 "../src/threshold_line.vala" + break; +#line 255 "threshold_line.c" + default: +#line 5 "../src/threshold_line.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/threshold_line.vala" + break; +#line 261 "threshold_line.c" + } +} + +static void +_vala_live_chart_threshold_line_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartThresholdLine * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_THRESHOLD_LINE, LiveChartThresholdLine); +#line 5 "../src/threshold_line.vala" + switch (property_id) { +#line 5 "../src/threshold_line.vala" + case LIVE_CHART_THRESHOLD_LINE_VALUE_PROPERTY: +#line 5 "../src/threshold_line.vala" + live_chart_threshold_line_set_value (self, g_value_get_double (value)); +#line 5 "../src/threshold_line.vala" + break; +#line 281 "threshold_line.c" + default: +#line 5 "../src/threshold_line.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 5 "../src/threshold_line.vala" + break; +#line 287 "threshold_line.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/utils.c b/iPDC/lib/liblivechart.so.p/utils.c new file mode 100644 index 0000000..a98ea2b --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/utils.c @@ -0,0 +1,392 @@ +/* utils.c generated by valac 0.56.0, the Vala compiler + * generated from utils.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include +#include + +#define _g_free0(var) (var = (g_free (var), NULL)) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +VALA_EXTERN gint live_chart_num_of_digits (gint value); +static gfloat* _float_dup (gfloat* self); +static gint __lambda4_ (gint a, + gint b); +static gint ___lambda4__gcompare_data_func (gconstpointer a, + gconstpointer b, + gpointer self); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +gfloat +live_chart_cap (gfloat value) +{ + gint num_digits = 0; + gdouble size = 0.0; + gdouble integer_part = 0.0; + gdouble fractional_part = 0.0; + gdouble _tmp0_ = 0.0; + gdouble _tmp1_; + gdouble delta = 0.0; + gfloat result; +#line 6 "../src/utils.vala" + num_digits = live_chart_num_of_digits ((gint) value); +#line 8 "../src/utils.vala" + size = pow ((gdouble) 10, ((gdouble) num_digits) - 1); +#line 10 "../src/utils.vala" + if (fmod (value, size) == ((gdouble) 0)) { +#line 11 "../src/utils.vala" + result = value; +#line 11 "../src/utils.vala" + return result; +#line 48 "utils.c" + } +#line 15 "../src/utils.vala" + _tmp1_ = modf (value / size, &_tmp0_); +#line 15 "../src/utils.vala" + integer_part = _tmp0_; +#line 15 "../src/utils.vala" + fractional_part = _tmp1_ * size; +#line 17 "../src/utils.vala" + delta = size - fractional_part; +#line 19 "../src/utils.vala" + result = (gfloat) (value + delta); +#line 19 "../src/utils.vala" + return result; +#line 62 "utils.c" +} + +gboolean +live_chart_has_fractional_part (gfloat value) +{ + gboolean result; +#line 23 "../src/utils.vala" + result = value != ((gfloat) ((gint) value)); +#line 23 "../src/utils.vala" + return result; +#line 73 "utils.c" +} + +gchar* +live_chart_format_for_y_axis (const gchar* unit, + gfloat value) +{ + gchar* pattern = NULL; + gchar* _tmp0_; + const gchar* _tmp2_; + gchar* _tmp3_; + gchar* result; +#line 26 "../src/utils.vala" + g_return_val_if_fail (unit != NULL, NULL); +#line 27 "../src/utils.vala" + _tmp0_ = g_strdup ("%0.0f%s"); +#line 27 "../src/utils.vala" + pattern = _tmp0_; +#line 28 "../src/utils.vala" + if (live_chart_has_fractional_part (value)) { +#line 93 "utils.c" + gchar* _tmp1_; +#line 29 "../src/utils.vala" + _tmp1_ = g_strdup ("%0.2f%s"); +#line 29 "../src/utils.vala" + _g_free0 (pattern); +#line 29 "../src/utils.vala" + pattern = _tmp1_; +#line 101 "utils.c" + } +#line 31 "../src/utils.vala" + _tmp2_ = pattern; +#line 31 "../src/utils.vala" + _tmp3_ = g_strdup_printf (_tmp2_, value, unit); +#line 31 "../src/utils.vala" + result = _tmp3_; +#line 31 "../src/utils.vala" + _g_free0 (pattern); +#line 31 "../src/utils.vala" + return result; +#line 113 "utils.c" +} + +static gfloat* +_float_dup (gfloat* self) +{ + gfloat* dup; +#line 37 "../src/utils.vala" + dup = g_new0 (gfloat, 1); +#line 37 "../src/utils.vala" + memcpy (dup, self, sizeof (gfloat)); +#line 37 "../src/utils.vala" + return dup; +#line 126 "utils.c" +} + +static gint +__lambda4_ (gint a, + gint b) +{ + gint result; +#line 57 "../src/utils.vala" + result = a - b; +#line 57 "../src/utils.vala" + return result; +#line 138 "utils.c" +} + +static gint +___lambda4__gcompare_data_func (gconstpointer a, + gconstpointer b, + gpointer self) +{ + gint result; + result = __lambda4_ ((gint) ((gintptr) a), (gint) ((gintptr) b)); +#line 56 "../src/utils.vala" + return result; +#line 150 "utils.c" +} + +GeeList* +live_chart_golden_divisors (gfloat value) +{ + gfloat _tmp1_ = 0.0F; + gfloat factor = 0.0F; + gfloat working_value = 0.0F; + gfloat sqrt = 0.0F; + GeeArrayList* divs = NULL; + GeeArrayList* _tmp2_; + GeeArrayList* _tmp7_; + GeeArrayList* ndivs = NULL; + GeeArrayList* _tmp8_; + gint last_div = 0; + GeeArrayList* _tmp9_; + gpointer _tmp10_; + GeeList* result; +#line 36 "../src/utils.vala" + if (value == ((gfloat) 0)) { +#line 171 "utils.c" + GeeArrayList* _tmp0_; +#line 37 "../src/utils.vala" + _tmp0_ = gee_array_list_new (G_TYPE_FLOAT, (GBoxedCopyFunc) _float_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 37 "../src/utils.vala" + result = (GeeList*) _tmp0_; +#line 37 "../src/utils.vala" + return result; +#line 179 "utils.c" + } +#line 41 "../src/utils.vala" + if (value < ((gfloat) 10)) { +#line 41 "../src/utils.vala" + _tmp1_ = live_chart_cap (100 / value); +#line 185 "utils.c" + } else { +#line 41 "../src/utils.vala" + _tmp1_ = 1.f; +#line 189 "utils.c" + } +#line 41 "../src/utils.vala" + factor = _tmp1_; +#line 42 "../src/utils.vala" + working_value = value * factor; +#line 44 "../src/utils.vala" + sqrt = sqrtf (working_value); +#line 45 "../src/utils.vala" + _tmp2_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL, NULL, NULL); +#line 45 "../src/utils.vala" + divs = _tmp2_; +#line 201 "utils.c" + { + gint i = 0; +#line 47 "../src/utils.vala" + i = 1; +#line 206 "utils.c" + { + gboolean _tmp3_ = FALSE; +#line 47 "../src/utils.vala" + _tmp3_ = TRUE; +#line 47 "../src/utils.vala" + while (TRUE) { +#line 47 "../src/utils.vala" + if (!_tmp3_) { +#line 215 "utils.c" + gint _tmp4_; +#line 47 "../src/utils.vala" + _tmp4_ = i; +#line 47 "../src/utils.vala" + i = _tmp4_ + 1; +#line 221 "utils.c" + } +#line 47 "../src/utils.vala" + _tmp3_ = FALSE; +#line 47 "../src/utils.vala" + if (!(((gfloat) i) <= sqrt)) { +#line 47 "../src/utils.vala" + break; +#line 229 "utils.c" + } +#line 48 "../src/utils.vala" + if (fmodf (working_value, i) == ((gfloat) 0)) { +#line 233 "utils.c" + GeeArrayList* _tmp5_; + gfloat tmp = 0.0F; +#line 49 "../src/utils.vala" + _tmp5_ = divs; +#line 49 "../src/utils.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp5_, (gpointer) ((gintptr) i)); +#line 50 "../src/utils.vala" + tmp = working_value / i; +#line 51 "../src/utils.vala" + if (tmp != ((gfloat) i)) { +#line 244 "utils.c" + GeeArrayList* _tmp6_; +#line 52 "../src/utils.vala" + _tmp6_ = divs; +#line 52 "../src/utils.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp6_, (gpointer) ((gintptr) tmp)); +#line 250 "utils.c" + } + } + } + } + } +#line 56 "../src/utils.vala" + _tmp7_ = divs; +#line 56 "../src/utils.vala" + gee_list_sort ((GeeList*) _tmp7_, ___lambda4__gcompare_data_func, NULL, NULL); +#line 60 "../src/utils.vala" + _tmp8_ = gee_array_list_new (G_TYPE_FLOAT, (GBoxedCopyFunc) _float_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); +#line 60 "../src/utils.vala" + ndivs = _tmp8_; +#line 61 "../src/utils.vala" + _tmp9_ = divs; +#line 61 "../src/utils.vala" + _tmp10_ = gee_list_last ((GeeList*) _tmp9_); +#line 61 "../src/utils.vala" + last_div = (gint) ((gintptr) _tmp10_); +#line 270 "utils.c" + { + gint i = 0; + GeeArrayList* _tmp11_; + gint _tmp12_; + gint _tmp13_; +#line 62 "../src/utils.vala" + _tmp11_ = divs; +#line 62 "../src/utils.vala" + _tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_); +#line 62 "../src/utils.vala" + _tmp13_ = _tmp12_; +#line 62 "../src/utils.vala" + i = _tmp13_ - 1; +#line 284 "utils.c" + { + gboolean _tmp14_ = FALSE; +#line 62 "../src/utils.vala" + _tmp14_ = TRUE; +#line 62 "../src/utils.vala" + while (TRUE) { +#line 291 "utils.c" + gint current = 0; + GeeArrayList* _tmp16_; + gpointer _tmp17_; + GeeArrayList* _tmp18_; + gfloat _tmp19_; +#line 62 "../src/utils.vala" + if (!_tmp14_) { +#line 299 "utils.c" + gint _tmp15_; +#line 62 "../src/utils.vala" + _tmp15_ = i; +#line 62 "../src/utils.vala" + i = _tmp15_ - 1; +#line 305 "utils.c" + } +#line 62 "../src/utils.vala" + _tmp14_ = FALSE; +#line 62 "../src/utils.vala" + if (!(i >= 0)) { +#line 62 "../src/utils.vala" + break; +#line 313 "utils.c" + } +#line 63 "../src/utils.vala" + _tmp16_ = divs; +#line 63 "../src/utils.vala" + _tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, i); +#line 63 "../src/utils.vala" + current = (gint) ((gintptr) _tmp17_); +#line 64 "../src/utils.vala" + if ((last_div / current) != 2) { +#line 65 "../src/utils.vala" + continue; +#line 325 "utils.c" + } +#line 67 "../src/utils.vala" + _tmp18_ = ndivs; +#line 67 "../src/utils.vala" + _tmp19_ = (gfloat) current; +#line 67 "../src/utils.vala" + gee_abstract_collection_add ((GeeAbstractCollection*) _tmp18_, &_tmp19_); +#line 68 "../src/utils.vala" + last_div = current; +#line 335 "utils.c" + } + } + } +#line 71 "../src/utils.vala" + result = (GeeList*) ndivs; +#line 71 "../src/utils.vala" + _g_object_unref0 (divs); +#line 71 "../src/utils.vala" + return result; +#line 345 "utils.c" +} + +gint +live_chart_num_of_digits (gint value) +{ + gint num_digits = 0; + gint result; +#line 75 "../src/utils.vala" + num_digits = 0; +#line 76 "../src/utils.vala" + while (TRUE) { +#line 357 "utils.c" + gint _tmp0_; +#line 76 "../src/utils.vala" + if (!(value != 0)) { +#line 76 "../src/utils.vala" + break; +#line 363 "utils.c" + } +#line 77 "../src/utils.vala" + value = value / 10; +#line 78 "../src/utils.vala" + num_digits = num_digits + 1; +#line 78 "../src/utils.vala" + _tmp0_ = num_digits; +#line 371 "utils.c" + } +#line 81 "../src/utils.vala" + result = num_digits; +#line 81 "../src/utils.vala" + return result; +#line 377 "utils.c" +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart.so.p/values.c b/iPDC/lib/liblivechart.so.p/values.c new file mode 100644 index 0000000..b7c273b --- /dev/null +++ b/iPDC/lib/liblivechart.so.p/values.c @@ -0,0 +1,341 @@ +/* values.c generated by valac 0.56.0, the Vala compiler + * generated from values.vala, do not modify */ + +#include "livechart.h" +#include +#include +#include +#include +#include +#include + +enum { + LIVE_CHART_VALUES_0_PROPERTY, + LIVE_CHART_VALUES_BOUNDS_PROPERTY, + LIVE_CHART_VALUES_NUM_PROPERTIES +}; +static GParamSpec* live_chart_values_properties[LIVE_CHART_VALUES_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _live_chart_timestamped_value_free0(var) ((var == NULL) ? NULL : (var = (live_chart_timestamped_value_free (var), NULL))) + +struct _LiveChartValuesPrivate { + LiveChartBounds* _bounds; + gint buffer_size; +}; + +static gint LiveChartValues_private_offset; +static gpointer live_chart_values_parent_class = NULL; + +static void live_chart_values_finalize (GObject * obj); +static GType live_chart_values_get_type_once (void); +static void _vala_live_chart_values_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec); +static void _vala_live_chart_values_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); + +LiveChartTimestampedValue* +live_chart_timestamped_value_dup (const LiveChartTimestampedValue* self) +{ + LiveChartTimestampedValue* dup; +#line 5 "../src/values.vala" + dup = g_new0 (LiveChartTimestampedValue, 1); +#line 5 "../src/values.vala" + memcpy (dup, self, sizeof (LiveChartTimestampedValue)); +#line 5 "../src/values.vala" + return dup; +#line 53 "values.c" +} + +void +live_chart_timestamped_value_free (LiveChartTimestampedValue* self) +{ +#line 5 "../src/values.vala" + g_free (self); +#line 61 "values.c" +} + +static GType +live_chart_timestamped_value_get_type_once (void) +{ + GType live_chart_timestamped_value_type_id; + live_chart_timestamped_value_type_id = g_boxed_type_register_static ("LiveChartTimestampedValue", (GBoxedCopyFunc) live_chart_timestamped_value_dup, (GBoxedFreeFunc) live_chart_timestamped_value_free); + return live_chart_timestamped_value_type_id; +} + +GType +live_chart_timestamped_value_get_type (void) +{ + static volatile gsize live_chart_timestamped_value_type_id__once = 0; + if (g_once_init_enter (&live_chart_timestamped_value_type_id__once)) { + GType live_chart_timestamped_value_type_id; + live_chart_timestamped_value_type_id = live_chart_timestamped_value_get_type_once (); + g_once_init_leave (&live_chart_timestamped_value_type_id__once, live_chart_timestamped_value_type_id); + } + return live_chart_timestamped_value_type_id__once; +} + +static inline gpointer +live_chart_values_get_instance_private (LiveChartValues* self) +{ + return G_STRUCT_MEMBER_P (self, LiveChartValues_private_offset); +} + +LiveChartValues* +live_chart_values_construct (GType object_type, + gint buffer_size) +{ + LiveChartValues * self = NULL; + LiveChartBounds* _tmp0_; + LiveChartBounds* _tmp1_; +#line 17 "../src/values.vala" + self = (LiveChartValues*) gee_linked_list_construct (object_type, LIVE_CHART_TYPE_TIMESTAMPED_VALUE, (GBoxedCopyFunc) live_chart_timestamped_value_dup, (GDestroyNotify) live_chart_timestamped_value_free, NULL, NULL, NULL); +#line 18 "../src/values.vala" + _tmp0_ = live_chart_bounds_new (((double) NAN), ((double) NAN)); +#line 18 "../src/values.vala" + _tmp1_ = _tmp0_; +#line 18 "../src/values.vala" + live_chart_values_set_bounds (self, _tmp1_); +#line 18 "../src/values.vala" + _g_object_unref0 (_tmp1_); +#line 19 "../src/values.vala" + self->priv->buffer_size = buffer_size; +#line 17 "../src/values.vala" + return self; +#line 111 "values.c" +} + +LiveChartValues* +live_chart_values_new (gint buffer_size) +{ +#line 17 "../src/values.vala" + return live_chart_values_construct (LIVE_CHART_TYPE_VALUES, buffer_size); +#line 119 "values.c" +} + +void +live_chart_values_add (LiveChartValues* self, + LiveChartTimestampedValue* value) +{ + gint _tmp0_; + gint _tmp1_; + LiveChartBounds* _tmp4_; + LiveChartTimestampedValue _tmp5_; + LiveChartTimestampedValue _tmp6_; +#line 22 "../src/values.vala" + g_return_if_fail (self != NULL); +#line 22 "../src/values.vala" + g_return_if_fail (value != NULL); +#line 23 "../src/values.vala" + _tmp0_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) self); +#line 23 "../src/values.vala" + _tmp1_ = _tmp0_; +#line 23 "../src/values.vala" + if (_tmp1_ == self->priv->buffer_size) { +#line 141 "values.c" + gpointer _tmp2_; + LiveChartTimestampedValue* _tmp3_; +#line 24 "../src/values.vala" + _tmp2_ = gee_abstract_list_remove_at ((GeeAbstractList*) self, 0); +#line 24 "../src/values.vala" + _tmp3_ = (LiveChartTimestampedValue*) _tmp2_; +#line 24 "../src/values.vala" + _live_chart_timestamped_value_free0 (_tmp3_); +#line 150 "values.c" + } +#line 26 "../src/values.vala" + _tmp4_ = self->priv->_bounds; +#line 26 "../src/values.vala" + _tmp5_ = *value; +#line 26 "../src/values.vala" + live_chart_bounds_update (_tmp4_, _tmp5_.value); +#line 27 "../src/values.vala" + _tmp6_ = *value; +#line 27 "../src/values.vala" + GEE_ABSTRACT_COLLECTION_CLASS (live_chart_values_parent_class)->add ((GeeAbstractCollection*) G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_LINKED_LIST, GeeLinkedList), &_tmp6_); +#line 162 "values.c" +} + +LiveChartBounds* +live_chart_values_get_bounds (LiveChartValues* self) +{ + LiveChartBounds* result; + LiveChartBounds* _tmp0_; +#line 12 "../src/values.vala" + g_return_val_if_fail (self != NULL, NULL); +#line 12 "../src/values.vala" + _tmp0_ = self->priv->_bounds; +#line 12 "../src/values.vala" + result = _tmp0_; +#line 12 "../src/values.vala" + return result; +#line 178 "values.c" +} + +static gpointer +_g_object_ref0 (gpointer self) +{ +#line 12 "../src/values.vala" + return self ? g_object_ref (self) : NULL; +#line 186 "values.c" +} + +void +live_chart_values_set_bounds (LiveChartValues* self, + LiveChartBounds* value) +{ + LiveChartBounds* old_value; +#line 12 "../src/values.vala" + g_return_if_fail (self != NULL); +#line 12 "../src/values.vala" + old_value = live_chart_values_get_bounds (self); +#line 12 "../src/values.vala" + if (old_value != value) { +#line 200 "values.c" + LiveChartBounds* _tmp0_; +#line 12 "../src/values.vala" + _tmp0_ = _g_object_ref0 (value); +#line 12 "../src/values.vala" + _g_object_unref0 (self->priv->_bounds); +#line 12 "../src/values.vala" + self->priv->_bounds = _tmp0_; +#line 12 "../src/values.vala" + g_object_notify_by_pspec ((GObject *) self, live_chart_values_properties[LIVE_CHART_VALUES_BOUNDS_PROPERTY]); +#line 210 "values.c" + } +} + +static void +live_chart_values_class_init (LiveChartValuesClass * klass, + gpointer klass_data) +{ +#line 9 "../src/values.vala" + live_chart_values_parent_class = g_type_class_peek_parent (klass); +#line 9 "../src/values.vala" + g_type_class_adjust_private_offset (klass, &LiveChartValues_private_offset); +#line 9 "../src/values.vala" + G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_values_get_property; +#line 9 "../src/values.vala" + G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_values_set_property; +#line 9 "../src/values.vala" + G_OBJECT_CLASS (klass)->finalize = live_chart_values_finalize; +#line 9 "../src/values.vala" + g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_VALUES_BOUNDS_PROPERTY, live_chart_values_properties[LIVE_CHART_VALUES_BOUNDS_PROPERTY] = g_param_spec_object ("bounds", "bounds", "bounds", LIVE_CHART_TYPE_BOUNDS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); +#line 230 "values.c" +} + +static void +live_chart_values_instance_init (LiveChartValues * self, + gpointer klass) +{ +#line 9 "../src/values.vala" + self->priv = live_chart_values_get_instance_private (self); +#line 239 "values.c" +} + +static void +live_chart_values_finalize (GObject * obj) +{ + LiveChartValues * self; +#line 9 "../src/values.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_VALUES, LiveChartValues); +#line 11 "../src/values.vala" + _g_object_unref0 (self->priv->_bounds); +#line 9 "../src/values.vala" + G_OBJECT_CLASS (live_chart_values_parent_class)->finalize (obj); +#line 252 "values.c" +} + +static GType +live_chart_values_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LiveChartValuesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_values_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartValues), 0, (GInstanceInitFunc) live_chart_values_instance_init, NULL }; + GType live_chart_values_type_id; + live_chart_values_type_id = g_type_register_static (GEE_TYPE_LINKED_LIST, "LiveChartValues", &g_define_type_info, 0); + LiveChartValues_private_offset = g_type_add_instance_private (live_chart_values_type_id, sizeof (LiveChartValuesPrivate)); + return live_chart_values_type_id; +} + +GType +live_chart_values_get_type (void) +{ + static volatile gsize live_chart_values_type_id__once = 0; + if (g_once_init_enter (&live_chart_values_type_id__once)) { + GType live_chart_values_type_id; + live_chart_values_type_id = live_chart_values_get_type_once (); + g_once_init_leave (&live_chart_values_type_id__once, live_chart_values_type_id); + } + return live_chart_values_type_id__once; +} + +static void +_vala_live_chart_values_get_property (GObject * object, + guint property_id, + GValue * value, + GParamSpec * pspec) +{ + LiveChartValues * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_VALUES, LiveChartValues); +#line 9 "../src/values.vala" + switch (property_id) { +#line 9 "../src/values.vala" + case LIVE_CHART_VALUES_BOUNDS_PROPERTY: +#line 9 "../src/values.vala" + g_value_set_object (value, live_chart_values_get_bounds (self)); +#line 9 "../src/values.vala" + break; +#line 293 "values.c" + default: +#line 9 "../src/values.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 9 "../src/values.vala" + break; +#line 299 "values.c" + } +} + +static void +_vala_live_chart_values_set_property (GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ + LiveChartValues * self; + self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_VALUES, LiveChartValues); +#line 9 "../src/values.vala" + switch (property_id) { +#line 9 "../src/values.vala" + case LIVE_CHART_VALUES_BOUNDS_PROPERTY: +#line 9 "../src/values.vala" + live_chart_values_set_bounds (self, g_value_get_object (value)); +#line 9 "../src/values.vala" + break; +#line 319 "values.c" + default: +#line 9 "../src/values.vala" + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +#line 9 "../src/values.vala" + break; +#line 325 "values.c" + } +} + +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff --git a/iPDC/lib/liblivechart_static.a b/iPDC/lib/liblivechart_static.a new file mode 100644 index 0000000000000000000000000000000000000000..5a7b95d76fe18b3702b4e5418d1203e90b2d34ac GIT binary patch literal 20652 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 b@-yrh)Drp{#=Dp=%t?04<~5Z2tp@)KDsV;u literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_area.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_area.c.o new file mode 100644 index 0000000000000000000000000000000000000000..54c527149c052428bbc118dd96644c213a102f35 GIT binary patch literal 45984 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_axis.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_axis.c.o new file mode 100644 index 0000000000000000000000000000000000000000..d92b06f17892f2e91e8604a40815b42a8d170e52 GIT binary patch literal 94952 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_bar.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_bar.c.o new file mode 100644 index 0000000000000000000000000000000000000000..ea25d904b849e22bcf1c39211d5d23a826faed5b GIT binary patch literal 40376 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 E-#|#n7XSbN literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_bezier.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_bezier.c.o new file mode 100644 index 0000000000000000000000000000000000000000..509ba35a8208f380c44264f29155d0a602defea0 GIT binary patch literal 25944 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 literal 0 HcmV?d00001 diff --git a/iPDC/lib/liblivechart_static.a.p/meson-generated_bounds.c.o b/iPDC/lib/liblivechart_static.a.p/meson-generated_bounds.c.o new file mode 100644 index 0000000000000000000000000000000000000000..eb4e3476422acaa817f3bc03d7b7906e6ce2aa2a GIT binary patch literal 33784 zcmd6Q3w)eK)%Wx4CEeW9q@`)8bkl2Enlvq?+%el^lWe=WkPEa3EV*nhG)+pfNhwfT zDew{k(t@b?Rzw9wMMRO;auI8}%BNfeu?k92z;gLM5K;Q7*zcS(=REuD$)@oB^!NR~ z`8D&*{O8P>GiT16nRzbTZQ*E*$F?mAwspFd%n52)d$uOim6WWsW?IEoTiw`ebz@r( zjr$R->wKneJbb9me&*bV|D1o!->7uQ+Z8}@@V)%0;R6uW@2`72e2A#W!v`Ot#Mt9| z@Osc>fWdg%0c6x&mp`ztZtU@cw|jv3c-#IIaJv`5@S&f&+bY0z4q-d*GP`~6CEKa zdgDdtrqmh_??>%p$FJNwG8;w!$9KOoEO}rmK#K;0_z`J;p=e!-dzVJ2JAYaDnbC=j zeA5WzG-4{cl<^GKJd~zpEZHOs)mZrL@$lP|jmG>V>!v&ZoxN`zryw)%6~_H+x{p0bimzm|0I?^r_^k#IcE8xT@iyaad&rB)>iEWYu)iNoc9kK6=12v1!}Z{J_>r;j^P~{a z4XQ`X_+bD^VJ>jI4UpzQOH=cB`1z*jb-BRN3hjZZWjT8JiIdt#BSy=yYum8nk>E~c zg8!<1K%quz(GRVBdr?2r{&x7V=;sJzzeTeD@AQM(wA&G8{? zWYZ>yqkW_Cs^0dY#OlG3fv#a|)6gKmi7i%n`Lf}m&Sf10myfphw}AC4J8 zkZ<~OBVzjUkxgCgi8z*Fm{`9jo;V`^;g2ZC`bTOX>nF=$l0$fB8(j{+bJ$3gjIT~6 zKUOL@3Dsw&S(e|j16Vu{BU&afA>rOkNm*7_fEJ>xz!b#h`}}?h}dU&2s9<-#g}1;hZtq~=weDfIlbJeUpeD=C*4Hp1-A*{UvkuykX{(z77HJS zobO2~&L}THpzwJIs3>q4XDlx`)xlR3{K-kLn&~u{al%aGPeNs!G_?%;aF&m{XrPm) zRw5K|K|T3DaccBV$6cha3!+873n0!Jfyh$}k>$G>^Vdk8!2?)=;<9?FnJM#2z5#Tl z02@&P3yN_`C`O{vdduY1rQ>NJrw&W z4p3Y`agbu{qGfHLgYl(CfXr&|8-UK7g4)T7+OG>g!?l!ZET;GpinmhyDT>df_%w=_ z8pE>bVw;P{T)gJuGZ(+PWSGkoa|xJBrnzL9OSZY>m`kp?z+uDppU`49c4DW!7%hm> zpS2eUV5unl0D3_BEY2BR1^}rrXDI6}+@+YzHh&wKb->iS$zFU4kS#`j#OU+(;wS*L z`UJA?umgRNgMU!`Z99|L7{Z(F#Un|=@7sYJ9Kw6;{HMs2h~pRS#b1M>LM$h?b=jx* z0;dB30KoQi->e}_m|UfA)^kvVoq@8DZ`R9@D=@ig->kPFS8Q@&->eTH7c{vV->eo; zOsUC549^OaTVrx7Om3}jmKW^tM3Zaq&1!>OrRmg{?8S}1vk;{tSu3-B{s4ByP-pn_ zEcvIhKlS3nudn(fc~0_0fM9De~$5tcRApSKsvSk|egjAbqK=luc7PPBZL z&O@ZfE%H2owSb z5Srp3#jJ{>ecr`T>{|n!&xs=!j4U5onD1;z=4?ZdB2(f8*1kaiXJJ#=dn&bjxS^bN zJzx(YM!cp&&O=#DSw6H?-z8P@AB%M%RFXs54&fr>lydLzVtddm*x`IZ+qIWyn#dhCMJfQ#`4c^mBfX2?;SR^FhUkM-&dmmxdrHV~!B%Yl;gP>{FX4q)qs@NzpJhmCVP?0mHUfaUu>P~`j!A`eAm=rlEm+BX1od@mpk zir}K531?{jg2fg{LB-ZAWHb}AIOrbYh*`^r3iTmj&WS>8iZN^XkehEF7Gvj4Tc(B8 zke`n8pa&8(1N_E&{P`vnkG@IG19)t!7#I z6dUg}mC}V27g0QoV(cdfNAV1biz%K-@hpmurWo%KznszVbXi87Lu@DtUKDe;VV}JN>(W2p9 zw6!D?mIE@wV9}T-uo7})hDFzSve2YBH|{xlClnQPwaXS(O0}ztKH~|T>r}hmlaEuH zWiPs?w2!I*P+%7#3$QG(f}$++o1B?O88C5V}-@Mues*b(rAkZ%)02SYd=N!tz}Y$)!O|PCq#H zL%4ih2)Kc;pO&qC2-9q(dZzJW{}hA{I%OmyWpTl_e7Ary4C!cQA+GJ2FydyBCt;7q zhVyQ=a~C2`5jg`hr*S-~_ED$%auGTosi=))guU}5BV1Cr$!(d1xF5O{D`CRuhnmb@ z>(BZu;y4PPS0Um$uX<)6^ld4#jD-KRb00>C93Tltc;?Y|#sS2i1_sH<@XFg`=OV8U zk$^OZLYG)`f!3qL9Vvo?YuCOJlIB z8hi{^6A6?byU?BwQ|+JnhKV6EGO*UcR*Dbc98F{D~-AIn(PP1(yV|^P^+&<)opCE_U=D8 zRbN?!Y0!wN`ukE-waN0KL#O&rN&Oo+Vebxu>6i*nEi+AX{ihewOlHIMK1=@Dv#YlV ztF}R{q=u~NPclYM_-LyTxx$SV=+IBdO!^`xUpm=Q=H%>$LC{X~D?*wU1_b0s3+YW*dO^^0veB zf~D*ujL;kA8O>Lk7B*&MeQ^oi0dDYoQ#vT^o9regK8J?sAJBvzCd6o%imgHv!F2m< zw~XB^ti8Jv*chSCPVM$Nsm-3t&32`;4%5OKcMEZ+g-4wh)}*!&O>Lq6qgx1}7A2hQ zwBU#KO&>x*qgb9?t2ukV(ScpzuHWy}@09v>#eCxf%nY%Yi*XTmdj)6fXe8{F?D%`F z<;cojV&i<2ApXtXZ7MH0*_c2tP?lQWyxF*D_^k+N$D0fJle16ppOhUbIuUSRzLi}P zz#{)qrYIYWV3)JfmG!{+Z;D?50p>*&kXI%(2CG8Wd@DQq^lUFIeA&dcgj<9S{&aiM zOdI&;7TMms>}(?o0(r!)B=3!ghL5jgz}hd z8=JSRIiz6NcLY<(L=z==OrI-)`>CI9!RJl27vvRXd*>WI2jK#6f%AE&U|+J}c+%QJ zun6e?qJ_Y#vP)yjH-i&PX4o`n+{t4}A~4dWcypr65sUhns^W6f3+&}G5|L~| z4@3nFX22*hQiS8SoM}lP!tr7d$yy43uuFwNM*vD;n`_u0=oih{h5I}pVx1DSFAY>3NpQs zz&gsG;+bo&0L0_1dC&6r?2LpzKf|-2$e($+KYOP?^NDUEd(=ABP~E?6BH1kt*|XNE z$N94ZYl-2V+Y-z%E5lP-l+CV8{wOx*-|6>0K!u#YMe>=WMvC`D zidQdlNin|=YVRa5Z@1U|nA(2fvcMW{JTD{gs^1@2U*B|R;cGMx!>97zZ7V$Ttm$v>8Mb1SuIg_e9!~R65+8b+hlaJW*7Z%{SWPrk8>@*lK&xGS z!&W0A&K zxVgEpIkvj3Wj%DRvEzbxXTs{l{>2=&_;lIo=Ki1A-ai6WBLl;Uc3=`2=u6a$40Kx2 z$eH0-Rb8mLHMY93t)aRl*3ecTYie$63OBb#!Y$BRYvbB*1B^yZD~>?8L9}UDj>fwC z2ip@y+mV6pL2G1SxUXj*-USbu6V^cdA}C8rd{$#yv^v%tu4-#;30pmz27w43cy|th zU_&FFiFlXQ15b#1oOWR-8(JeZk#I9e29L=%&>)%tmEKsf#Kuh(F?TzWhBHH82C-0c zZCgEXuxgvyhuSw9bEsu)B*kiIjI}g{s=$cQXxxmN!=dU}V?%Vk8wCBVTOVs^Y>kDY z(Z;jF)$YR9NPQTpw6$8Xj{cFM4(Je^=wN_i1A~da?k%y7EwN3*o8q0x0yA=bI5_?N zu_M?_^7%H{+z33pAKbLX;_C?C$h>8J{p!YOq$(DTG^}+qsB3I#jkPtvV1TWf$?r^pP!z{#y^#!>7y*+yZbd9% z^|Wv5i6!D2H^m0xn?YZ|kZn2C(h4&J&2|7f9|xrmb`D#En+M`UF`Q^t4;iFbr&2); zP86#L+gY{JVHyD=8;TE)^e5m|j)9&aMJaQ^D9JdNP%F7KBTrp;orUhi8F(>om`%>i zkkY>RFc=QG17kLu;_(f!P3=Q*m~Nvn77ERnth}|oqaXTXDztZX0fBJ=GU{lB;1K}t zgLgCH?W5rA=v5T5F!vx-MH^c{zdc=pBgk{2M{{HaIZ!+9%HTR$BcW(4($EAmLpsnK z@7xeG-RNu|PN@Jk(+b`{46Z%4I#ji`t;wpb!pUF5ev|x{tO_lyAy_724Uwv~mYEve zL-Dxr7BP4yrQPE9PE4WE89Setnh(@UitIGqYeHb~Fw>27?>Qsy1|sWAAX zP+M!Ap7?3xNWK7MhRCf3nuIt_%>;0D@2uv=hT2%THI&l2_+WGt4WW8)7NWaUPu1HI zOSD6CX~Z$6fu;#vr%bBpIL1uY!&WsE@97%`-NeAq6MdbQvm%PIL__Ohv^;>#G&aE7 zRehtvcA$M@+`?C)tjSh&bivL9>4kmV6Gc2i_x<)o`gas_Q5Vtlq#_B^2>tnD1X`m&hC5-}D|L6)G3!s(FX|}l$ z9RdulG+WhJkNbdF3oJXZZcS7wD$_W=9`vT|8)LXeOGihc47wGoZHa}qF$5C9*%v2#) zN2`FP-I`-yJdD_3apky=FtAzICU!7QSDbFp{B#W>idh|jON?xsi;#O=dd20D9(1_uU5hRa3< zHunv5l_hX39fm@1ES($5zzP%4>flfr>|JrmmjWD$UMcPy9Dst(ZdcywfDKl1qi$vu zF;AK^>(rQ8br_~m6|98Syfm0yifsJNYU|pI&}Q9CF)|3V-K>oc_C({O@qV)l9*rgU zH^wvIIRLDRR!g&c6h{~9L$8oD?npyTBdXasErC023&%pMVK#)STA|3IMAlIc z$>U-!i)l6N9HIY76^gN&nIJjiWmm&sgxNEYe>B@fUP;-P8S^81BfF$jPpm5r>t@{S z8~gBF=Mu*8(zs8DGa~LbBfPIn?pOzhELu)`jB;J|aU7b%wQbQ*vpGh%%Iaag2-Sv- z65;rUD~DqM=J>ce+6db`$NjCNW3$^DU3QopN4#;6&hg`r;P%V9kmd^6K+3+opS+{v zTMS3paN@p3lwK2U41w*7TRy8U9FBq~lha>(Gf<|~UL9>~UhVE5DkjnZcRb+mdN#WF zWY@!RYooPA93$_AItB+}%RZ1ibJNyES_!Xfg2Pm#6;G;>8n{zHyK*`kiOAtI+F(=O z5~*#l%;}V^g^Yj=6-T#{Y z=CvuOP2(w2jKUe^bxGlpYn_>XFxGgxgk32e`D3wexa|^4xmV#jIW&iBV53-VnGFay zU0I+fC^dB^C(UGaGkKM!NK?`-W$#np7Hy5VM-6V4CD-X_>RkaDaYu)+nXHerwBP{; z?#V8P?WmIih$4Fm)*T*M3LbLoahqY{EcnC#X2Ah!Bs+DE^eFGyG zmGumaEJMR7gH6k_zJbpEk*>HQ<;+C#j=scjDv84Y6O$G3VUxrV-pPu6gQ@jEcikN$ z7hjx;_9Qlx9S4H;bZxMp%T|Z^KxJYA7Mu2DDK-N)4Z8b!%6l!Gxx;YnaT4f{VV8>7 za6fFjF|jc|Jlx)62!}h{2Vff~b?{1y87623VZw9|Q+#yvgId@ zP=5JhM&KbVJmG=YE$Cf1*rwuBt-XlRQzW?3LvOg+7dKn>MFsZJIa2~V;fd31!0-

- + 100 80 @@ -179,7 +179,7 @@ 10 6 - + 80 True @@ -187,7 +187,7 @@ 35 - Voltage + Voltage Magnitude True True True @@ -218,7 +218,7 @@ 0 - 2 + 3 @@ -227,13 +227,14 @@ False 0 - kmeans - simple + Gaussian + kmeans + DTW 0 - 3 + 5 @@ -243,15 +244,52 @@ 0 frequency only - frequency,voltage - voltage + voltage only + frequency,voltage + + 0 + 7 + + + + + dfreq + True + True + True + + + 0 + 2 + + + + + True + False + Algorithm + 0 4 + + + True + False + Dimmensions + + + 0 + 6 + + + + +
0 @@ -281,6 +319,202 @@ 1
+ + + True + False + vertical + + + True + False + Legend + True + + + False + True + 0 + + + + + + True + False + + + True + True + True + red + rgb(238,29,0) + + + 0 + 0 + + + + + True + False + Attack/Event + + + 1 + 0 + + + + + False + True + 1 + + + + + + True + False + + + True + True + True + rgb(0,255,0) + + + 0 + 0 + + + + + True + False + Normal + + + 1 + 0 + + + + + False + True + 2 + + + + + + + + + + + 2 + 0 + + + + + True + True + in + + + True + False + + + True + False + vertical + + + True + False + Graph Legend + + + False + True + 0 + + + + + + True + False + + + True + True + True + rgb(255,120,0) + + + 0 + 0 + + + + + True + False + Pmu + + + 1 + 0 + + + + + False + True + 1 + + + + + True + True + True + + + False + True + 2 + + + + + True + True + True + + + False + True + 3 + + + + + + + + + 2 + 1 + + diff --git a/iPDC/inc/map_vis.h b/iPDC/inc/map_vis.h index ec05f5e..0ae4ba2 100644 --- a/iPDC/inc/map_vis.h +++ b/iPDC/inc/map_vis.h @@ -8,5 +8,15 @@ typedef struct{ int current_selection; } myParameters; +struct vis_data{ + int id; + float lat; + float lon; + GdkPixbuf *last_image; + GTimeVal last_update_time; + struct vis_data *next; +}; + +struct vis_data *head; gboolean update_images(gpointer* pars); \ No newline at end of file diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index 6d947a4..1620e69 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -29,8 +29,8 @@ gboolean update_images(gpointer* pars){ if (curr_measurement==0) { int i = 0, k = 0; - float freq; - unsigned char fmt; + float freq,vol_magnitude,angle, dfreq; + unsigned char freq_fmt, anal_fmt, phas_fmt, polar_fmt; while (df!=NULL){ float lat; float lon; @@ -46,21 +46,36 @@ gboolean update_images(gpointer* pars){ if(id == to_intconvertor(temp_cfg->idcode)){ cfg_match = 1; printf("Matched - id : %d\n",id); - fmt = temp_cfg->pmu[0]->fmt->freq; + freq_fmt = temp_cfg->pmu[0]->fmt->freq; + anal_fmt = temp_cfg->pmu[0]->fmt->analog; + phas_fmt = temp_cfg->pmu[0]->fmt->phasor; + polar_fmt = temp_cfg->pmu[0]->fmt->polar; break; } else { temp_cfg = temp_cfg->cfgnext; } } pthread_mutex_unlock(&mutex_cfg); - if(fmt == '1'){ + + // get data from df. + if(freq_fmt == '1'){ freq = decode_ieee_single(df->dpmu[i]->freq); printf("freq = %f\n",freq); }else{ freq = to_intconvertor(df->dpmu[i]->freq)*1e-6+50; } + + unsigned char first2bytes[2]; + strncpy(first2bytes, df->dpmu[i]->phasors[0], 2); + unsigned char last2bytes[2]; + strncpy(last2bytes, df->dpmu[i]->phasors[0]+2, 2); + vol_magnitude = to_intconvertor(first2bytes); + float imaginary = to_intconvertor(last2bytes); + printf("vol = %f imag = %f\n",vol_magnitude, imaginary); + live_chart_serie_add(serie, freq); + // check lower layer details to get longitude and lattitude. pthread_mutex_lock(&mutex_Lower_Layer_Details); LLptr = LLfirst; match = 0; diff --git a/iPDC/src/utility_tools.c b/iPDC/src/utility_tools.c index bfd4db5..d74478d 100644 --- a/iPDC/src/utility_tools.c +++ b/iPDC/src/utility_tools.c @@ -105,12 +105,15 @@ void utility_tools(GtkButton *but, gpointer udata) "map-source", OSM_GPS_MAP_SOURCE_OSMC_TRAILS, "tile-cache", "/tmp/", NULL); + + // TODO: centering the map osm_gps_map_set_center_and_zoom(utdata->util_map, 15.4589, 75.0078, 10); // TODO: add the points to window. g_last_image = osm_gps_map_image_add(utdata->util_map, 15.4589, 75.0078, g_red_image); g_last_image = osm_gps_map_image_add(utdata->util_map, 15.518597, 74.925584, g_green_image); + curr_measurement = 0; algorithm = 0; dimmension = 0; From 04af82224df42eede7ec22ca9cc51155b9657ed2 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Fri, 28 Oct 2022 18:33:25 +0530 Subject: [PATCH 11/13] fixed merge error --- iPDC/src/map_vis.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index ac14c55..2a28833 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -35,14 +35,6 @@ gboolean update_images(gpointer* pars){ //printf("map_vis A: %Lf, B: %Lf,C: %Lf\n",A,B,C); //gboolean green = kmeans(df); - if(parameters->g_last_image != 0){ - osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); - } - if (DTWfreqDistance(df)){ - parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_green_image); - }else{ - parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,15.518597, 74.925584, parameters->g_red_image); - } if (curr_measurement==0) { int i = 0, k = 0; @@ -110,7 +102,6 @@ gboolean update_images(gpointer* pars){ if(match == 1 && cfg_match == 1){ printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq); - gboolean green =attack_detect(df,&START,&COUNT,&SUM_OF_FREQUENCY); if(parameters->g_last_image != 0){ osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); } From ad4af0adacbecc0a5cc90bf2d6ef015a98d5c9ce Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Fri, 28 Oct 2022 19:14:35 +0530 Subject: [PATCH 12/13] bug fixes --- iPDC/inc/Dynamic_time_warping.h | 4 +-- iPDC/src/Dynamic_time_warping.c | 48 ++++++++++++++++----------------- iPDC/src/map_vis.c | 20 +++++++------- iPDC/src/utility_tools.c | 10 +++---- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/iPDC/inc/Dynamic_time_warping.h b/iPDC/inc/Dynamic_time_warping.h index 1ea8edb..9ee0ea3 100644 --- a/iPDC/inc/Dynamic_time_warping.h +++ b/iPDC/inc/Dynamic_time_warping.h @@ -1,5 +1,5 @@ /*pavan changes*/ -void DTWfreqDistance(struct data_frame *df); +int DTWfreqDistance(struct data_frame *df); -void DTWvolDistance(struct data_frame *df); \ No newline at end of file +int DTWvolDistance(struct data_frame *df); \ No newline at end of file diff --git a/iPDC/src/Dynamic_time_warping.c b/iPDC/src/Dynamic_time_warping.c index ca21b67..2147791 100644 --- a/iPDC/src/Dynamic_time_warping.c +++ b/iPDC/src/Dynamic_time_warping.c @@ -5,7 +5,7 @@ #include #include -typedef struct +struct DTWfreqlist { int idcode; long double *freq1; @@ -14,10 +14,10 @@ typedef struct int count_track2; int flag; int result; - DTWfreqlist *next; -} DTWfreqlist; + struct DTWfreqlist *next; +}; -typedef struct +struct DTWvollist { int idcode; long double *vol1; @@ -26,18 +26,18 @@ typedef struct int count_track2; int flag; int result; - DTWvollist *next; -} DTWvollist; + struct DTWvollist *next; +}; -DTWfreqlist *head = NULL; -DTWvollist *headvol = NULL; +struct DTWfreqlist *head = NULL; +struct DTWvollist *headvol = NULL; -void DTWfreqDistance(struct data_frame *df) +int DTWfreqDistance(struct data_frame *df) { if (head == NULL) { - head = (DTWfreqlist *)malloc(sizeof(DTWfreqlist)); + head = (struct DTWfreqlist *)malloc(sizeof(struct DTWfreqlist)); head->count_track1 = 0; head->count_track2 = 0; head->flag = 0; @@ -48,8 +48,8 @@ void DTWfreqDistance(struct data_frame *df) } else { - DTWfreqlist *temp = head; - DTWfreqlist *previous; + struct DTWfreqlist *temp = head; + struct DTWfreqlist *previous; while (temp != NULL) { if (to_intconvertor(df->idcode) == temp->idcode) @@ -68,7 +68,7 @@ void DTWfreqDistance(struct data_frame *df) // printf("curr_freq: %f\n",CURR_FREQ); if (temp->count_track1 == 0) { - if (tmp->flag == 0) + if (temp->flag == 0) { temp->flag = 1; temp->freq1 = (long double *)malloc(500 * sizeof(long double)); @@ -145,7 +145,7 @@ void DTWfreqDistance(struct data_frame *df) } if (temp == NULL) { - DTWfreqlist *bring = (DTWfreqlist *)malloc(sizeof(DTWfreqlist)); + struct DTWfreqlist *bring = (struct DTWfreqlist *)malloc(sizeof(struct DTWfreqlist)); bring->count_track1 = 0; bring->count_track2 = 0; bring->flag = 0; @@ -159,11 +159,11 @@ void DTWfreqDistance(struct data_frame *df) } } -void DTWvolDistance(struct data_frame *df) +int DTWvolDistance(struct data_frame *df) { if (headvol == NULL) { - headvol = (DTWvollist *)malloc(sizeof(DTWvollist)); + headvol = (struct DTWvollist *)malloc(sizeof(struct DTWvollist)); headvol->count_track1 = 0; headvol->count_track2 = 0; headvol->flag = 0; @@ -174,8 +174,8 @@ void DTWvolDistance(struct data_frame *df) } else { - DTWvollist *temp = headvol; - DTWvollist *previous; + struct DTWvollist *temp = headvol; + struct DTWvollist *previous; while (temp != NULL) { if (to_intconvertor(df->idcode) == temp->idcode) @@ -183,8 +183,8 @@ void DTWvolDistance(struct data_frame *df) float CURR_vol; if (df->dpmu[0]->fmt->phasor == '0') { - unsigned char* s1; - unsigned char* s2; + unsigned char s1[2]; + unsigned char s2[2]; strncpy(s1,df->dpmu[0]->phasors[0],2); strncpy(s2,df->dpmu[0]->phasors[0]+2,2); long double v1 = to_intconvertor(s1); @@ -193,8 +193,8 @@ void DTWvolDistance(struct data_frame *df) } else { - unsigned char* s1; - unsigned char* s2; + unsigned char s1[4]; + unsigned char s2[4]; strncpy(s1,df->dpmu[0]->phasors[0],4); strncpy(s2,df->dpmu[0]->phasors[0]+2,4); long double v1 = decode_ieee_single(s1); @@ -206,7 +206,7 @@ void DTWvolDistance(struct data_frame *df) // printf("curr_vol: %f\n",CURR_vol); if (temp->count_track1 == 0) { - if (tmp->flag == 0) + if (temp->flag == 0) { temp->flag = 1; temp->vol1 = (long double *)malloc(500 * sizeof(long double)); @@ -283,7 +283,7 @@ void DTWvolDistance(struct data_frame *df) } if (temp == NULL) { - DTWvollist *bring = (DTWvollist *)malloc(sizeof(DTWvollist)); + struct DTWvollist *bring = (struct DTWvollist *)malloc(sizeof(struct DTWvollist)); bring->count_track1 = 0; bring->count_track2 = 0; bring->flag = 0; diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index 2a28833..554729d 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -44,17 +44,17 @@ gboolean update_images(gpointer* pars){ float lat; float lon; loops++; - printf("loops: %d\n", loops); + // printf("loops: %d\n", loops); id = to_intconvertor(df->idcode); - printf("id = %d\n",id); + // printf("id = %d\n",id); pthread_mutex_lock(&mutex_cfg); temp_cfg = cfgfirst; // Check for the IDCODE in Configuration Frame while(temp_cfg != NULL){ if(id == to_intconvertor(temp_cfg->idcode)){ cfg_match = 1; - printf("Matched - id : %d\n",id); + // printf("Matched - id : %d\n",id); freq_fmt = temp_cfg->pmu[0]->fmt->freq; anal_fmt = temp_cfg->pmu[0]->fmt->analog; phas_fmt = temp_cfg->pmu[0]->fmt->phasor; @@ -69,7 +69,7 @@ gboolean update_images(gpointer* pars){ // get data from df. if(freq_fmt == '1'){ freq = decode_ieee_single(df->dpmu[i]->freq); - printf("freq = %f\n",freq); + // printf("freq = %f\n",freq); }else{ freq = to_intconvertor(df->dpmu[i]->freq)*1e-6+50; } @@ -80,7 +80,7 @@ gboolean update_images(gpointer* pars){ strncpy(last2bytes, df->dpmu[i]->phasors[0]+2, 2); vol_magnitude = to_intconvertor(first2bytes); float imaginary = to_intconvertor(last2bytes); - printf("vol = %f imag = %f\n",vol_magnitude, imaginary); + // printf("vol = %f imag = %f\n",vol_magnitude, imaginary); live_chart_serie_add(serie, freq); @@ -89,7 +89,7 @@ gboolean update_images(gpointer* pars){ LLptr = LLfirst; match = 0; while(LLptr != NULL){ - printf("pmuid = %d\n",LLptr->pmuid); + // printf("pmuid = %d\n",LLptr->pmuid); if(LLptr->pmuid == id){ match = 1; float lat = LLptr->latitude; @@ -100,17 +100,17 @@ gboolean update_images(gpointer* pars){ } pthread_mutex_unlock(&mutex_Lower_Layer_Details); - if(match == 1 && cfg_match == 1){ - printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq); + // if(match == 1 && cfg_match == 1){ + // printf("lat = %f, lon = %f, freq = %f\n",lat,lon,freq); if(parameters->g_last_image != 0){ osm_gps_map_image_remove(parameters->util_map, parameters->g_last_image); } - if (freq > 50.300){ + if (DTWvolDistance(df)){ parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_green_image); }else{ parameters->g_last_image = osm_gps_map_image_add(parameters->util_map,lat, lon, parameters->g_red_image); } - } + // } df = df->dnext; // i++; k++; diff --git a/iPDC/src/utility_tools.c b/iPDC/src/utility_tools.c index c93c726..25a4b21 100644 --- a/iPDC/src/utility_tools.c +++ b/iPDC/src/utility_tools.c @@ -156,11 +156,11 @@ void utility_tools(GtkButton *but, gpointer udata) g_signal_connect(utdata->util_window, "destroy", G_CALLBACK(on_window_destroy), GUINT_TO_POINTER(pid)); - //g_last_image = osm_gps_map_image_add(util_map,15.4589, 75.0078, g_red_image); - g_last_image = osm_gps_map_image_add(utdata->util_map,15.518597, 74.925584, g_green_image); - myParameters parameters = {utdata->util_map, g_red_image, g_green_image, g_last_image}; - gpointer data = (gpointer) ¶meters; - guint pid = g_timeout_add(20, (GSourceFunc) update_images, data); + // //g_last_image = osm_gps_map_image_add(util_map,15.4589, 75.0078, g_red_image); + // g_last_image = osm_gps_map_image_add(utdata->util_map,15.518597, 74.925584, g_green_image); + // myParameters parameters = {utdata->util_map, g_red_image, g_green_image, g_last_image}; + // gpointer data = (gpointer) ¶meters; + // guint pid = g_timeout_add(20, (GSourceFunc) update_images, data); // gtk_widget_set_vexpand(GTK_WIDGET(utdata->util_map), TRUE); // gtk_widget_set_hexpand(GTK_WIDGET(utdata->util_map), TRUE); gtk_widget_show_all(utdata->util_window); From b8feaae7d51b3fd621b6ec05cf1c2f9b53d97f11 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Fri, 28 Oct 2022 19:19:35 +0530 Subject: [PATCH 13/13] bugfix mutexs --- iPDC/src/map_vis.c | 1 + 1 file changed, 1 insertion(+) diff --git a/iPDC/src/map_vis.c b/iPDC/src/map_vis.c index 554729d..7db20f5 100644 --- a/iPDC/src/map_vis.c +++ b/iPDC/src/map_vis.c @@ -28,6 +28,7 @@ gboolean update_images(gpointer* pars){ struct Lower_Layer_Details *LLptr; if (df == NULL){ + pthread_mutex_unlock(&mutex_on_TSB); return TRUE; } //int freq = to_intconvertor(df->dpmu[0]->freq);