From 680f9b694dc6344db094b83b6226740647a11e14 Mon Sep 17 00:00:00 2001 From: markmental Date: Sat, 28 Mar 2026 21:09:09 -0400 Subject: [PATCH] Change for novelty: randomize channel programming order on launch --- src/app.c | 1 + src/app.o | Bin 19280 -> 19336 bytes src/channel.c | 8 +++++++- src/channel.o | Bin 9872 -> 9912 bytes 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/app.c b/src/app.c index b318fab..5644175 100644 --- a/src/app.c +++ b/src/app.c @@ -396,6 +396,7 @@ int app_init(App *app) { app->app_start_time = time(NULL); app->app_start_ticks = SDL_GetTicks64(); + srand((unsigned int)app->app_start_time); if (TTF_Init() != 0) { fprintf(stderr, "SDL_ttf init failed: %s\n", TTF_GetError()); diff --git a/src/app.o b/src/app.o index 247eeec81e391b67ba99f9fe27e388c7715543ff..0da551db89f08223492699ebb5b3a7779c562bf9 100644 GIT binary patch delta 1095 zcmY+CUr1AN6vyuox2fDs8|2RgVWSky>D+_mb?(pIvQ0}Avlyl=OA)amP3l3!0)(zo$wVe8neNQBgTOC-k1wXPuFqLl%o}h-ZF+OifkVI@7{D7gG0Db7Uj%wb7}+b zX8_e$?O~j)9w)x_$T;pPhZ=mxT`m6LuG}k|+tO$T4XHzqm*E+1rvzJ%XSp5aHZIs> zIOcVt!zbe#Z#_h?(8sXRC!4>^ThD92Cf@`cM}t2Ejacn>LId{t8Q$~D=8u-G+zFia zhip+UHa9Wy_rIdQ`bjja`s?MWQCq!`c_m~{;TX@H#z(3X*Hqb@VcmLqEB;m)Is&q} zK(K9C7~sE{+kJv<*O~$^l2fx>iT0T03S9yi$H{OXT-Nd{eE{dNy($E&I8(JhHS9>_ SUSgcDvh>f*YZ5y{*?$1{Og3o% delta 1144 zcmYk4TS!z<6ozL{&XqGWYS3{)Q$t15ab_OOnbEl&skvy_jl86e7E)0}fng70k}0Sp z2n({nLZKHSiZ~GlPWe`Z#=HblFA5R)&ntZ9DV}T+CBN%YFtiSydIvYQGDUC?`i+& zLFm>Nu-|Y)Tgdjp1FfXD6b>sUmAtAgW9pY%kkpmRHhqmXcbgf_;% zMD8p8q-C4%vrJ@0m@OAs0kM+kB}RxX#4chl@e=WxLhBGdFjvJ?i+Z|R^=D@sC(m8t zW8z!lXW|Ai8;TEztdv+oY$o;+hlo?eIbwpCB(4)Ti53V}imZ(2gR3}?(!7m$nK($C zBt9fQC%%%MRXVlot6ovddCnr8b6k^ZBnt;W=HKm9JloN+UsWNezkp*dk-dYPE-~_p ztCcv9PKyf+rM3t&eWqncSMF-ybQ`R>L}w$ndx+cZ=X4jR$06vhgM7CDqwW%j<2aA` z2s7y}F-17%7UZ}^$nyxWgz4}MTlw8S9a=GzR~?3BkEpmz_c%2Q|2#4L$endaIZ^kT zS)0(DZmZj%l&218g8N=OOnU`b@z%qVS1^6!cALTGv$Lbn=@X&DCzxi8nablZf$D8k z-*f6oNT9ml6JXU>!cKw4AG5Y#QTpy(Lgs{481Rb__X{xNpJwgg4TRWf7zx;|ZCu4e zbEcvLmIK&sK!6{Cde#NDplFS8-di~tFSZ|yu@jI$PY>t$z@~ diff --git a/src/channel.c b/src/channel.c index 34c4f74..fd0da12 100644 --- a/src/channel.c +++ b/src/channel.c @@ -213,7 +213,13 @@ static int load_channel_programs(Channel *channel, const char *channel_dir) { return 0; } - qsort(channel->programs, (size_t) channel->program_count, sizeof(ProgramEntry), compare_programs); + for (int i = channel->program_count - 1; i > 0; i--) { + int j = rand() % (i + 1); + ProgramEntry temp = channel->programs[i]; + channel->programs[i] = channel->programs[j]; + channel->programs[j] = temp; + } + channel->total_duration_seconds = 0.0; for (int i = 0; i < channel->program_count; ++i) { channel->programs[i].start_offset_seconds = channel->total_duration_seconds; diff --git a/src/channel.o b/src/channel.o index 1732d0439172ddb50231e282a063231535d80a1d..f0dff1a8a309fcf040532e25ab61ddbf644a9121 100644 GIT binary patch delta 3478 zcmZ`*eQZ-z6o0Q;qZ1i42&0Oa`>jk)e_dMYA!T%s+I4p`w^> zSr={U$mSsdBQBtbm`tIWkq-$Bj85DiYz7h#j4lBpBH087sLXorefQzvncd`_`|j^| zzIyJx@3gb>P-SPHc&97>`PhMM!_(_Mg5ZyAQC$8=vr^=5k4xc?ClRRqmK5$LFUM*` zK{##}1mPF*2>$3=s+!Qhm_kIYPYS<6^`l#qB2^<&p`%oQDP#Fvmfwyre@LSKQQR+{^Ajq>Ie(--7`a6>+s4IBy8?A;T7mws;wLfaASrIWOy2zs zUsL-)N0&gRdTFFD7#Z-3gZ1@=k~7Ry@vG#l5QH0&?NRd$soLOgJ;{R4J-O-HjdIBr zwle?3%c*+F_pQ`63JvDWg5`h3D_U)CzaWJ-&L0A((DO$u&&YFxkxHRwh4WvWLkSlLx6RKCZ=0Qq$2+#6^yGa(oug zcAQ!{Oe9O1?I36Ob2bZhr^>6`oNakPg+Jx&LXHEegy{ zo6)-|ty4_gQ2XMukeGhSNHuF=*d;r*t42a1nbXO0m)s*d_ENU?E@z1=!Gzf9JT|p* zAp9YOXCV9;gv$uu0JRR;aSXB8+j;16$h96CoD3Rk8hNw~izdK#Al!xYk09KQ@GIcX zkOMjVQc)$+O72DRaa{jP=OLWl8!fA0Sd}3=#*jC9A2rqtF%m0-IwM2x)6H?31KoVh zDj(@92oHiSQ!ZYI*y)IU3wfhQM)L+xo+&%J5lat_#_nZo46(_GJxtl+vxvo~;s=h? z3Gd@gXv&lWR(9&>_wD|(l*)0vm4fhmltUqOWy#(EVqJ)BMtBaqpCyOzIo!ipnuCO_ zdXQBv!Ve;SE5eUYp#L4xCrz1FHN>vd_Y)ZWhz!Wzi+kH}c>?`Wq;E(1cP7yHnjmFb zTF6JYi41*>=OG-Q;x{?2->a{XKHlN86X;)5@q+&aPNH{=CsaUY?f7Lt(=<6WpR+VP zZLS)-99hv;sp0Doo`dk05k3>)F@zT)e5cx(o@D7_NBeopqV>a$E+E{89F_AXO!bQp zz8Ow9WwDh?aJeRjFqh4{fj&kq!n2XDxf9?^5sq_Rjd1=QHL<=M&5L2 z5)Y$bM>tM*g!KM+B9XecVy?^L%t@WB|KtV`iKY_jvLV3=J zVR15)cxGD`(HldC6`DMyhPGrFvZg_wCy&3rqvVNgkgqH>4$`ube?4|+A=uCGi9&k6 z1ivZ^3@(XTE%N4BT=WA*MmjWkOD$Dyb>)JXw={JQ{rHg4$Uh783!et#-WisCX^ap6 Ril>)a8gtZD8^k=$e*uKx$)^AS delta 3313 zcmZ`*Yiv|S6u#3JyOs9tqx9}=yKEo3eE@B@L@ZL37K`rM^4O4=0wQgy#S$JZiUuJr zg*K#?>bA#_5Q(UNAOQkR0UPB}P^pSWiZO~Nn#vzmNst;05@0=N?%XnL(v#dX_kQ1b z&6(Mm9ae!OxZ{cL1;FtcHT%Ke4E#ASajEV zT^t`vfz(7Fn*;vDEeRKs2M;BF&sYeyCVN=P;QPr=#-18Hnv%xC$Gr`hB-nGxyA(&t z{34E@+Uyv&H?9A6EXE@To8L1GM>@R$G$84^tiE#?-vh0e$voJzkH=_HZwv=|cPbQt zomV~8%D8H;wv4L{N+6lXef<39>*F=59Ydv~KRSHfqLzQ9?u^1Wmh2f9@5Ev>CzqIY ztv9!)!P51s+Bui9HUAUnc>x>IoAxfKR^3$==&|+I%^sSKCCNR8`PQt2hJ09Qot<|Q zxnOrEug{!Hboaej%v=*VX{}*L;I_50H38Fa&NpWh-5SGcx<_~|Q58SxyN#B}CE^-# zgU^tUMWgp=0#sv96^AP@Le*b?NYznW20u(aoTTISQ2h9iIE_K^;#dnIwTP{QEovPb zf-lwbR2~YMrYUe=El7$iOq>Nio2QhzLPB078Tix->`?-qO}8yew{ZR?Xtx!y-LTh| z%?`o|+e&v*0+}evOk<$!s<;I9Dpc6t2$@xtB9ovnrA=7&iSbE++eFS=0uS*qS$sVh zo`*5J2Gx!fC+_h$X#%@L(_1(?h1Vh*tb-b4+c}i1OqVHqe;wM9-744_aqM>Z$f5N+ zE%teF#M>~6ZV}57XYo27&w2jBj%r?lQB$-prY5^TzdUO`Bd`-L`4tnoUjX2hV5rGg$7r z8tyQ>lq4Ko_}rx*Aj&5au1oj@37742L^+sMp}w1Oo)I|3&yw(E1|H^#vnAp!$w5xg zFX1_o{cjR3C-_go-ID#&R3Qo#WH%hL3eL<(kvE5OlY z7r@OdEx1Ht<>FRIIBgo!i&0f5l#=$8iBE&PY>gE|C|lF#2^$*Zm^CnfHbLmf)+*LX zHic509THw7;Rj(1eFvdEM`LHej`{+<>!ZS+>QN>8E5wFxNvyo)ccd(Gg-&sl5nUoh z^9!7^$Z_UK_HvwB19$K>q+`l#(_&z5jkUsPjs`CGRG+*c$E9HMe)|HN+?xKa#1=~t ze}X<_f1iZ?6V4$!J_&mdZo0K_vN-f;(sE>*z-iKS;h1x9O=7=LvbRX~OC)=_Nh=K8 zXp&cQH~@LmHT~)&ZnrplcM^66j7`_rJg|E-eHASg3Qb@dKIR10LXAfY?+`3aTV94e z5?&^Got5x%39q8LqQu8pEa7sTHw_#Pc zqg5P|Y~;KrCc)2=SAXu*G&xZj^kKkVTqnZ0TupyYoa)rfOsS*+VtsCLwo}1#BzC{R zxfhh?X;80EWvih^*I;R$KO8_?65{DG|9F_AiJN~sPLVOn1Wqp~*NtHU-!AYc#2IVa zoA)676GjP7IG7jVD{&6y6&Q)b&C8Ge9g~;|%*)Rr3NUf=^2>P$$3wOeTJvut{E!AK z3Ldjwqx%G<81@!aGAE1{%tvkak`AG6gg(@5Fp4^Y8k=ZOf>}Nx!};mKRpC0Q40W{SWX3R#E@}