From 12bdbfc9487505d3802bd85f6ce5ca23dd7c7807 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Fri, 30 Dec 2022 15:41:22 -0500 Subject: [PATCH] 2022-12-30 Fred Gleason * Added a 'RDLIBRARY.IS_SINGLETON' field to the database. * Added a 'RDLOGEDIT.IS_SINGLETON' field to the database. * Incremented the database version to 367. * Added 'RDLibraryConf::isSingleton()' and 'RDLibraryConf::setIsSingleton()' methods. * Added 'RDLogeditConf::isSingleton()' and 'RDLogeditConf::setIsSingleton()' methods. * Modified rdcartslots(1), rdcastmanager(1), rdcatch(1), rdlogmanager(1) and rdpanel(1) to allow only a single instance to run at a time. * Modified rdlibrary(1) and rdlogedit(1) to conditionally allow only a single instance to run at a time. * Added an rdsinglestart(1) utility. * Added a 'wmctrl' dependency to the 'rivendell' RPM package. Signed-off-by: Fred Gleason --- .gitignore | 1 + ChangeLog | 15 ++ configure.ac | 1 + docs/manpages/Makefile.am | 4 + docs/manpages/rdsinglestart.xml | 77 +++++++++ .../rdadmin.configure_rdlibrary_dialog.png | Bin 62974 -> 65064 bytes .../rdadmin.configure_rdlogedit_dialog.png | Bin 48340 -> 51192 bytes docs/opsguide/rdadmin.xml | 16 +- docs/tables/rd_library.txt | 1 + docs/tables/rd_logedit.txt | 1 + importers/nexgen_filter.cpp | 2 +- importers/wings_filter.cpp | 2 +- lib/dbversion.h | 2 +- lib/rdapplication.cpp | 82 +++++++++- lib/rdapplication.h | 7 +- lib/rdcoreapplication.cpp | 12 ++ lib/rdcoreapplication.h | 6 +- lib/rdlibrary_conf.cpp | 13 ++ lib/rdlibrary_conf.h | 2 + lib/rdlogedit_conf.cpp | 13 ++ lib/rdlogedit_conf.h | 2 + lib/rdstation.cpp | 24 ++- rdadmin/edit_rdlibrary.cpp | 106 ++++++------- rdadmin/edit_rdlibrary.h | 3 +- rdadmin/edit_rdlogedit.cpp | 19 ++- rdadmin/edit_rdlogedit.h | 3 +- rdairplay/rdairplay.cpp | 15 +- rdairplay/rdairplay.h | 2 - rdcartslots/rdcartslots.cpp | 11 +- rdcastmanager/rdcastmanager.cpp | 11 +- rdcatch/rdcatch.cpp | 11 +- rdlibrary/rdlibrary.cpp | 13 +- rdlogedit/rdlogedit.cpp | 13 +- rdlogin/rdlogin.cpp | 16 +- rdlogmanager/commandline_ops.cpp | 5 +- rdlogmanager/logobject.cpp | 2 +- rdlogmanager/rdlogmanager.cpp | 11 +- rdpanel/rdpanel.cpp | 13 +- rivendell.spec.in | 4 +- tests/audio_convert_test.cpp | 4 +- tests/audio_export_test.cpp | 4 +- tests/audio_import_test.cpp | 4 +- tests/audio_metadata_test.cpp | 4 +- tests/db_charset_test.cpp | 4 +- tests/delete_test.cpp | 2 +- tests/download_test.cpp | 4 +- tests/feed_image_test.cpp | 4 +- tests/metadata_wildcard_test.cpp | 4 +- tests/meterstrip_test.cpp | 4 +- tests/notification_test.cpp | 2 +- tests/upload_test.cpp | 2 +- tests/wavefactory_test.cpp | 4 +- tests/wavescene_test.cpp | 4 +- tests/wavewidget_test.cpp | 4 +- utils/Makefile.am | 3 +- utils/rdalsaconfig/rdalsaconfig.cpp | 2 +- utils/rdcheckcuts/rdcheckcuts.cpp | 4 +- utils/rdclilogedit/rdclilogedit.cpp | 2 +- utils/rdconvert/rdconvert.cpp | 4 +- utils/rddbmgr/revertschema.cpp | 10 ++ utils/rddbmgr/schemamap.cpp | 2 +- utils/rddbmgr/updateschema.cpp | 19 +++ utils/rddelete/rddelete.cpp | 4 +- utils/rdexport/rdexport.cpp | 4 +- utils/rdgpimon/rdgpimon.cpp | 2 +- utils/rdimport/rdimport.cpp | 2 +- utils/rdmarkerset/rdmarkerset.cpp | 4 +- utils/rdmetadata/rdmetadata.cpp | 4 +- utils/rdrender/rdrender.cpp | 2 +- utils/rdsinglestart/Makefile.am | 48 ++++++ utils/rdsinglestart/rdsinglestart.cpp | 149 ++++++++++++++++++ utils/rdsinglestart/rdsinglestart.h | 41 +++++ web/webget/webget.cpp | 4 +- 73 files changed, 759 insertions(+), 146 deletions(-) create mode 100644 docs/manpages/rdsinglestart.xml create mode 100644 utils/rdsinglestart/Makefile.am create mode 100644 utils/rdsinglestart/rdsinglestart.cpp create mode 100644 utils/rdsinglestart/rdsinglestart.h diff --git a/.gitignore b/.gitignore index 94894e57..3b6af1c3 100644 --- a/.gitignore +++ b/.gitignore @@ -198,6 +198,7 @@ utils/rdselect_helper/rdconfig.h utils/rdselect_helper/rdprofile.cpp utils/rdselect_helper/rdprofile.h utils/rdselect_helper/rdselect_helper +utils/rdsinglestart/rdsinglestart utils/sas_shim/sas_shim xdg/install_usermode.sh xdg/rdalsaconfig-root-consolehelper diff --git a/ChangeLog b/ChangeLog index c56bac79..2bae3e53 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23873,3 +23873,18 @@ 2022-12-27 Fred Gleason * Incremented the package version to 4.0.0rc1. * Incremented the Python API version to 4.0.0rc1. +2022-12-30 Fred Gleason + * Added a 'RDLIBRARY.IS_SINGLETON' field to the database. + * Added a 'RDLOGEDIT.IS_SINGLETON' field to the database. + * Incremented the database version to 367. + * Added 'RDLibraryConf::isSingleton()' and + 'RDLibraryConf::setIsSingleton()' methods. + * Added 'RDLogeditConf::isSingleton()' and + 'RDLogeditConf::setIsSingleton()' methods. + * Modified rdcartslots(1), rdcastmanager(1), rdcatch(1), + rdlogmanager(1) and rdpanel(1) to allow only a single instance to + run at a time. + * Modified rdlibrary(1) and rdlogedit(1) to conditionally allow + only a single instance to run at a time. + * Added an rdsinglestart(1) utility. + * Added a 'wmctrl' dependency to the 'rivendell' RPM package. diff --git a/configure.ac b/configure.ac index 1912eea0..2f6ab252 100644 --- a/configure.ac +++ b/configure.ac @@ -703,6 +703,7 @@ AC_CONFIG_FILES([rivendell.spec \ utils/rdpopup/Makefile \ utils/rdrender/Makefile \ utils/rdselect_helper/Makefile \ + utils/rdsinglestart/Makefile \ utils/rdsoftkeys/Makefile \ utils/rmlsend/Makefile \ xdg/Makefile \ diff --git a/docs/manpages/Makefile.am b/docs/manpages/Makefile.am index e0880a42..2c289b3d 100644 --- a/docs/manpages/Makefile.am +++ b/docs/manpages/Makefile.am @@ -47,6 +47,7 @@ all-local: rdairplay.1\ rdrender.1\ rmlsend.1\ rdservice.8\ + rdsinglestart.1\ rdsoftkeys.1 man_MANS = rdairplay.1\ @@ -63,6 +64,7 @@ man_MANS = rdairplay.1\ rdrender.1\ rmlsend.1\ rdservice.8\ + rdsinglestart.1\ rdsoftkeys.1 EXTRA_DIST = exitcodes.xml\ @@ -94,6 +96,8 @@ EXTRA_DIST = exitcodes.xml\ rmlsend.xml\ rdservice.8\ rdservice.xml\ + rdsinglestart.1\ + rdsinglestart.xml\ rdsoftkeys.1\ rdsoftkeys.xml diff --git a/docs/manpages/rdsinglestart.xml b/docs/manpages/rdsinglestart.xml new file mode 100644 index 00000000..a77d6bf1 --- /dev/null +++ b/docs/manpages/rdsinglestart.xml @@ -0,0 +1,77 @@ + + + + + rdsinglestart + 1 + December 2022 + Linux Audio Manual + + + rdsinglestart + + Start an X11 client program so as to ensure that only a + single instance is run + + + + + + Fred + Gleason + fredg@paravelsystems.com + + Application Author + + + + + + + rdsinglestart + cmd-name + cmd-opt1 + .. + + + + + Description + + rdsinglestart1 is used to start + an X11 client program so as to ensure that only a single instance is run. + When invoked, rdsinglestart1 + will first look for existing windows whose title begins with the + string specified in cmd-name (case-insensitive). + If found, such windows will be raised, following which + rdsinglestart1 will exit. + If no matching windows are found, + rdsinglestart1 + will attempt to start cmd-name, using any + added options specified, following which it will exit. + + + + Notes + + rdsinglestart1 uses + wmctrl1 to query and interact + with the X11 windowing system. As such, it will work only with X11 + client programs. Attempts to use it with non-X11 programs will have + undefined results. + + + + See Also + + + wmctrl1 + + + + + diff --git a/docs/opsguide/rdadmin.configure_rdlibrary_dialog.png b/docs/opsguide/rdadmin.configure_rdlibrary_dialog.png index 41ba33033490c402ca6bcfe6dd371dd75228f914..339f248236000de47da5ae07973cbb2a84519378 100644 GIT binary patch literal 65064 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

ew6eZQcPxkh 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

IKqYL-yV>hm{{1I;kykIK%s&skP8kg z@9-Ub{7!@7QiZPk`_M0{CGH&%t9DUR8(G4>SNl2?<=-pI@%slh%m4 z+#qDjIR6bYYh7>(5GoWLQC-k=L3jQ1L^PD3tOHIrfrp2VU}=9E$8G2^aM~`L`UPw? z3c!DzoF~^{b}xVrgP6FWltDvmD?(C6$ZdmIkqqDy!T@2=%^|TN0EIna#O=)k<`)RO z-0_lKK%Wp;SXfk4Vz=`YAZ^G_L}a8nNOa`FElgtZlBfok_qy+Y!!Kc~C&1f%_Vnz9 zh#^?>=!j$lzy@jgrhV{(SGG`uV0S_LLUb8&VI+xxh;?uj3G^=kM@M#NXJ^o7bKxKj z68QkOfpkp>p#Ubw1hNR<+W`v#Tm%y=c*y$*ef;zgpz5)jvyt_2$DJ?Nr1L61Gj#9ypm(u=fZQ2l}D-jGbN<}GIHw^ z6`}?P@&px-$ze(_0B2x(5w4Nm@$e&ap=u3-90W-7CLBM668-Ib#>!+m@e`s#@VxO|k<5zA3V8Wb z6$cZuuujN%&Hwm4VN4|GJQMIxg&^N?9d-f4G67J`f_8)WnZd!qOzAcd23%TR)`SDP zK=xcSDe0RcM`V1y+y^-mbS!wz-j3`2K5tF5y?yK-@CW`Ze#9IZ83|I(B}GO*VwOPQ zxtBCFHERKzJX@@QI)v=pGXihN-oCj5NnK|Golo4LdqI=_!Rvv|J#ZJ@{A4*Tg$dzD zxw$V8s}rCV>`QcTo&7!f+uLcP4t5PDcM^X%8u-0~uWe{r_9<-_2~qn}>au4lA|&LA z$aml-{4c`ZI}q#lZyUe(G&N94g$RjCN>R23LRO?uG>n9lkv&VpCL?5rWMwC-foz4$ zLS~YknejW$`hM@4Mu*q6UXD^0((U&j}kO!G2C`;Yv=;*i`B5=0HP6rfp}1YgM&qBBbhM# zt$x$c@c7LeNrdh^;^Vm>Os~v=Sa1jf;WlB5>(Rd-Llhog?ZYauDnoDux>Gc?*^r+6 z7b!sRjIW`4WJLRNXlOI*k0VK1B6YF*Z#ryTvnJ|lsXG7{*?cG?oyAHJ1D>lTZXzok z_;Z43VLmDsVf-8>3wPNWJW%i=4q%obAw?4tlN{sLcZ6cZke8U42!;D>`qff<6XMaw z%|?ucpqPu6m+Wj<)^y>@B51&jr4rfDyK!;5LqbACZGSz#CoRJ!8fJD1cPX)UAh!~Q z?JsX++djjE#l=MRlpQb`Of+eL&Y2rIaAXPYJi@bIt6%SQZI|pq8c`j=BCDf|qbV5YYwH561W% z&O+w>%7wO;WUPkx{;9b+0hhQjO(*i>M`b9SPe8^ZC8q~}2D~dtl3D~tBlU&r3kKj@ zSC_Mw*9L4tD>DkBpaKLAx93j&8dSBgv?N3iY!Td_4(+Yu1{wT}N0sZJsFX{I&OfQ& z=6?W5B)|CeI(DmHgEMQv1PImd&}s^n(3v0B^!^0}apS3B8>5ae$+4W%@>QCQ+OKZ; zJ(1qLrjq9W2Z*&9f?iy7y$}BU`IQ#@jMxp)v)`#QXA$TIT_A=HleH2`QPZ!_!D z!vLd_wuXGKKQF|41PUCtiE5<)IQvy}u9M#E|3Za^MaLy6u-X8Ku1mL(p*Io);AG>z zP4FGHOH>JfD&3kDuA5{YDr}Gbi>0tdV!?ffL0RjU%+%1Vn3$OSr^=tG#X+USr_Y~D zOG@x+tGDuM2JpIHz0I?3aS=Wc+}UTnCvhdRnHR?uwjI_#<9C&&Fy+ol*Lq33b}Ukk z&>~S^Sn|$o-6K!W6&X2hwy>FF@^|_Yzo1RG_8`S9kr-v`{kg zUZ`f3^~bX7xNos)G?yNibe$*_aX zLmxB#Tn>o0hHpzh9l#I4vG*lJHecsobN+JcyKvnv^|j){Lg^r z8!TLAq5r~O#V2iTg|Xnp;NcK;m=6GB(U4`RN_<@4E7=F^#=BPnSj9sIC)f-73apVr zz#ecqxBh_NXg9=Q3Q-S%L!)D3PikuJfR>K`fv@Z&jH;9glNm?`gu?*I+7Ktt2!fu> z|6pWcY6$>?RXK+U*2~;n12A4Fj#`6d1LHSIe_jV5g@J3rdhLqcZggS%(ti_~J>X6u zf`~7Sy|#Tvr2s7C}q+V$FWuaR#XcRR0Dt zofNoFnygDKSLliDW-bTCif2GXVL@1rW`W&eV&S;pF-b}CAS2Bh#o#vx+OKf}o=No8 zUWSVY84JwEgUxBIN|EAvpfZSq02?`+3BTU0w~8Q~3f@voVj>AhC91@(0>5>+Du@?B z?^Ct8fF)$M2O}utv?L0d0^#f8tQ()*p$-Z0_nH? z^&dan%GP;@iufh~tH4Qd^6)%D8vs3`Ys3w4>=qk5lD?B=rKRvdya&)g4dxbnmk_Av zP$WRsW9$P=Ucr*eblpN>{P#)D-v+!KG8Fus3xL}R0O7EB5+@`y$GIO#X%h;g_^?>l z@a1!zc|y@uC>6DtxCdwOr2|7L_qG2vsPn`0=1^-;e3mAWSMUUSG1$;ZmQyMpFXAE+vIar}< z<4-iT#0%-{l-I9cugqE31#1`x9hd#LbJNqoOi5Gh=LZuO1|*ihL8+&H1CRW47Iqtg zmH|X0gFfu;h+yM3yw?(N2t5+kFz3zzZH`Y)#sX4e(~ziJfQ(78IZ!zelsc`A8x5By z%3k|VPmc-i>J@A{o-|dst~^ScTie?iTfC8hz?&h38c6z4uxVd>CivL|w{L~(s&Yol zDci@KvTj?MvFNzFSN89I;YKOvx(~aSlamulheKl{0C}$&7<@o3V$IsMeqxWo9iPQF zq@gy!k#>j5!onh>HF;z*>3Q9`7r*#>^HH+nJ&FfpWg9zP!P=`kQarExEvq0~Ikq8q zxj8x)0G}>nusahbxPh&G$7$_B+}F==f5A(ci98GDmiK^Y4}*gl+uGWsa%^BgC0062 zHb`FZ!HVn?8+*-VSnav83)MfXNJ{{Qzfu`ihk%5aFA|>qH*7Lk?`yH7}4rks+J0o>GP+MvX??!Q2E3JTy9 z;Sm3cg2aQ>ia3`+DgzS#V|G*Y*6rK7*w`eC4#9Nl=rUZSh;iW<9=zhE`F#`uVPqe3 zkr0j4ZH{1bdTG11X3_wP%)43nbCzfCV03U>%qz91|vt4re08!{IrGSWLWt9-kS@c~-r~Z097}dEl)(OQkkbF8vcZUl`w|-+xUYK#;IYu5YmPzFCR|Ec z7&|}whuUrWYvk7K5_C255q6Zjb?X+7*4ZL@KjBUjf-7{_dcXRJo#Vj;@MnK$trBUx z+KS!Y1TU4_9?r0qxG>1xWZXgidZpNn=0pboGxnCW7?tiA7xYeQZ z=Pw|$_R5L>9Rm6{ZPxxLfJXwq$R3EH8YE-gMyqs=b67w`Wfy;h_=74CI_9=W(pfI4u*9QdHa zV{}SdI!0~p_^)64&01lU!OtP$?7plq!qBWeb)+pxrfO@>F%e6&kX8(6=H5`WUog$< z=Ns&K=XT8Y^|3&?b~o{fZB_4fx>_-QYYkwJbeP^w!KEuhf56F;?~QM((VUc)UZttI zd**OxSXfVApBv(4kFr(N%ZI%e1{?O=8~t+JCqiRaj91>)Zs(8a{2NbqRnB;?7f4uj|U(M;vmQjUe(txgR!CS7iP7Ocu{zB zt~WlXkBEpc`#BFM5=d4oj?`?}W|)|mFk^x5eG6MI?xQV9%a|KTE)e`R`f|$4z!!c9F_lP zE9w}QCa%s}&HF`eY)Fzh`dUPU|9X_j(NrB75C%$-G3R{{zb>^X^W0I}nwh?S`@-6F z{dI9^Mzp9jl>JyXb#HWms=4DpmT9wlp&fhg9f`1Rg;DLVw+BbcpM2t&9ZHiitug1` zP#5oF^Hr1+$vOy4-#d#XaF4^l131ix#})lW z_Nju+5NSaCVN4_L8u)*Jb6%7?VD%LtP)}2H6VhMsUEdHxc)Kx5F@aKRM;M)3KFgo_oDf@Mtx__TKcX2&;GRqM((rQqJAL%Ig41!^8} zeeObfub^H<0;UIt~41q`(4SL`o3}|-@q}j5Uj+yxk z0yfx+LG$?g`o6&gk6tt$i%u)_Iq9aPV@arF3H}!Abx-IO9Zc;-8l}Ypg zkq`<|nWjMr#GV26qw1Zyi>X-%EG9!`KUg6DCr`?;jgf{YtOZ~m9{c;B4ltkliZyMQpRk0p7XhKbd0^?NmY*DRvR{e zY0SIB>tbnie)7_HTEhQv$ZX8Kve;H!xawR;XH0l!(}2!_OQkQ;R~BD<9cr{wc5nXT zrUIc8#&UjOM+Y97M+OD0Dqy$=PGjo@pVyv2L0du7qLE>Y9FPI zo1}H%A)_i+HTtjkk2pFpF+Y6x(6>2IyASXP#OlWst)nMSoR~;ITRC-gkL+Gf*;1!6 zJN`E*e1n67Y_cs!vcFYz9x$J}A&MTs1-hK@`Tl;j6ioqn>t{cwWKWM-UE-@NoW68+ z9QP7P#IsOE@Dd$j^nAnRn)EykjD5|&e+e@>dDR`hWGy%0z1+w5Oyw3 zI}(cMe*%RxpF0a+=L!5V{QZsp#?{SX&L!Tdh6Vzt^Sv6PghFxQ-EWy-0j zSX;U`>1^WcpfUqAC5L?JwQ^orS!$H62QG4oGPzJDCX81|^?8Xh9a{z2u`5Boo;$anX#?h||H0+_ok1^ydD)Nq}eO2hPl z;_1`eCWqx1(z)2V75)Ra8Cw{Jon^byesZuO*D1a7=9iZ{h$^W@M+8t#PR_2S3c3hX zCbq>hz|?#rec0m8?cHWGwD>r2t^~J(7ne8SevDY|lL-TWSFD}vD^L!2y&Ll?Ba z>0H(TN;`Y%p_e4ZY(;g3H)kS#^-^F!eo7rw5>PwbT`Bf@KBFX902{KLW17PJ(GZ@pR4}PR@@IU+~9} zzAhF=*j?}R@5e5JXAM2SaOhZ)K!vFGkMZZYThOu>4UG}(mN`7>?76WK(yFXI%ZKml z$p@Erp4+?SuILxIw^Y3gmcRRXq(}*^aIKH|^2jUHadDowwZN@l1?1%C&&X1^O4M=; zG!PJo$s7wLrtz!Z55sI)BmDi}VY8|RaFfUEOia}zRs>tCsQv8A)1Y26+#rcT^g5xY z#(+0f;WzO4bmZ>02sFt6GYH-8UV)4#=Ao;)x+U;9XY`rhxl;za_=XJ|FtiUMg9%r- zfnU3-OqUwctxx+t%ygQ33)VRhb2f1e9u0k4FCEqDfMbJ* zUZB>9Pnk$$dt_!o10Dwx`R$wEXiM=3Rl!VzKVQ+)QUle3JjcZy`_9|HXI@@ODX<=Q zwJ|R)%g$XV_S(sFG>ZrC9G#v?=Tl1Zw9ebkSi}R}ekooycw{HIp?av_W=);6vO0I} zRYIv^pCltS>dI*)7U-P8p!N(86NmzFjd%iwhN^(>Da1xjZZ+g2u}_mMDCXyXbZv-e zBdMbk3BfHBqa}OmF9=uvz#t_HD&n@4)gHLdKIQ;-?Qn*%J{EfIKyzc`GbllbW)Yrh zer8k&aG2CbK)$L{al-vJ2rCDLL)w$j8D?#NMb!f!V1)3fg5L1L!hXfnv<|5Vl12p_ zAeL{l5DWwpP!dR}8j>!`6vVLD!|iMiD>i0nvz9TK=^q12p^ypmUu(VgaC;IwE#F2) zHon0lZC>-3HO-EiMZ~f!BYOAZ{I8ORDkcngKodslPIz*JjoXVJvwZU-%EX4D=81*Y z!%b;gCtGOqTbAA*IFWNR)^=)#X=|pR+0%UH$lnYDeX~RFGU)@hR}QbDf@(512^Q24 zH!TJGH8r4;KWqzgtVe`}$ph^d5m5_9h}5+vCTggBM;4QUz$_gFJXIXXH1zI=QT?-u zp^XbhPtw`}zJVAO0Fw;BFp~(((xQ%dd2sOXN)=RB=lT3Kt!Wk=E0#k=8c@|9{3ej^ zIFx8_+8me&H)NLQT+?!l;Hp$hQuhM!NBZzUm25-x5(S##WvnWoaW?JTNt~pFTqlK| zQ0%~ua43asp^=K7kC!gAPCd|!l3K)}K7A}-F4~(WvaIyLs|yUmtJl+k4Jb`mCEMLt zv6=ELJ`R-7wY@itu7N_IdA8QRv59K+gN>lRi$8nVYimXFE#C1e3!2Jwa1x7zLScCJ zrWg|panN->HZ_&ObBD*1if?(>Kuy>O+;s?zd;^vtK8Am3oDmXEim35}4{W7xvs$Cx zzH^l{Y2nQ**4kL@=)hEClPrg;9zN*3WA)c~%J1OMD1cO_<>enw8tCiexD{_?(@|f$ zemnmP$e_5(W>O15d?CRUz<`WXK9m2 z>0>MkbIs+qE>93WeWs+acpu||r+g@tbXYJO+)E)4^FydYYo`e|JD%JKFZ6f7x=Ta= zBxy((37%>>ICmdCe8|Sly#}iffOreS`4FIEp$AAdNoAaklf$xOkVF)9qFn=ooz1>+ z4jw6O&ak4{?scGm{uplUMho|hz9wxl0mIOkNi-MEtp@mk*^si_jH9jX_J~PFg-e z!}ASoxub99r;J{vXG=jN2I?cu3@{5Q$9<$<^YeOBwfDa9;Ji(&N{_kJg@$;!R!Y4q zm^HGG7$naqSD(6ZBX+n=+qRYC{wINZpoBh9{n!@n1ArrRa~D1rSZAZ5bHdQz2Ymf8 z*Hi~ihme$1JejwU6e2PvY<0I$7mfIoTTUsm74Tth-nz96nhd-E?}11$rfjL4#vPRj z`V{66CDfmgbu>|J0znjFZzPH+I|m0z4FQOw2Pl|CrL?Y7{%^vpRxit~w4RX>@6^-- z&?m9D!dyzIR6O{VL426Xpd_Q&jieQE;iYtRicg#9nV8nv98zC&aB&ncX&F;_7XPff zqnH+>A}=qmXkkI3X14I-0#R9;C1$r1E*gdN7M2#3*&W^NiQIR9R#(J5dWXX-LizRh zDQ#_ma;?lRU6BSL7JrTO)b@OE3e4eInejiP)fG0Frv>^7Z+&C`1_zyQu7PTkHAh{) z&PR#2`5u2rxwsIg_tdt>jRfa{wlrM-1LUHg9edg6>_-*R^*sT+$(p_khb(k2_5{H+qV3vAp%mBWx+ zp=izy0CE0H$@G#0+bD+__b-qwSw#hU@YT_@vLl-oe$(fVR&K?|?%SFDaXpLR>nsKO z0_m1%<@sO3I=9L$w!FF`;7s?FAK3JG9_m7=W|Z!aVL+)Dlp5Osa9Fx@>FK45kG?G4 zg)H_5z!uz1SSuG?;99!nMe?jz6>$erOLpr8C>?J-&ayxC0!X?59)Q*rl(XY}H(dQs z`m13^ps%cHGQg;gfo}GDtk1!N2T3LZy(VTzrC3G#inXJTV6Vvr0UU_Ul1^SlW9;f*FXOBU{L=Z zg~6_ms~+UAc8|+C-RyjQ?&@%0D~C^K{L2SXKb3EmltGbCR81gpPE2RDz-g7>A0Byl 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

2pxeOH_b!X9zfe9o;VpOdf`Zls= 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 Db={_q literal 62974 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

QSxi#sYLMiC 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 o6Vg|oOFc)1^-i!Q8}I}b;j%e1E?n>{Qv*} diff --git a/docs/opsguide/rdadmin.configure_rdlogedit_dialog.png b/docs/opsguide/rdadmin.configure_rdlogedit_dialog.png index 96256731b45cb696242d296a9cf5947651f220e0..f69f5404591f9b286ad1aed398a2f239dee7fb76 100644 GIT binary patch literal 51192 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 literal 48340 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 - + The Configure RDLibrary Dialog @@ -1177,6 +1177,12 @@ Show Only First 100 Matches box to be ticked when starting a new instance of rdlibrary(1). + + The Allow Multiple Instances, if set + to Yes, will allow multiple, independent + instances of rdlibrary1 to + be run simultaneously. + The Channels: dropdown sets the default value of the Channels: @@ -1658,7 +1664,7 @@ - + The Configure RDLogEdit Dialog @@ -1733,6 +1739,12 @@ the transition type to use by default when adding a new log event. + + The Allow Multiple Instances, if set + to Yes, will allow multiple, independent + instances of rdlogedit1 to + be run simultaneously. + Configuring RDCartSlots diff --git a/docs/tables/rd_library.txt b/docs/tables/rd_library.txt index 38c0b9c3..c3a0813d 100644 --- a/docs/tables/rd_library.txt +++ b/docs/tables/rd_library.txt @@ -31,3 +31,4 @@ ENABLE_EDITOR enum('N','Y') SRC_CONVERTER int(11) LIMIT_SEARCH int(11) 0 = No, 1 = Yes, 2 = Previous SEARCH_LIMITED enum('N','Y') +IS_SINGLETON enum('N','Y') diff --git a/docs/tables/rd_logedit.txt b/docs/tables/rd_logedit.txt index a7d969c8..571dc7b4 100644 --- a/docs/tables/rd_logedit.txt +++ b/docs/tables/rd_logedit.txt @@ -24,3 +24,4 @@ REC_STOP_CART int(10) unsigned TRIM_THRESHOLD int(11) RIPPER_LEVEL int(11) DEFAULT_TRANS_TYPE int(11) +IS_SINGLETON enum('N','Y') diff --git a/importers/nexgen_filter.cpp b/importers/nexgen_filter.cpp index 97794703..0555dd93 100644 --- a/importers/nexgen_filter.cpp +++ b/importers/nexgen_filter.cpp @@ -63,7 +63,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("nexgen_filter","nexgen_filter",NEXGEN_FILTER_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,false)) { fprintf(stderr,"nexgen_filter: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/importers/wings_filter.cpp b/importers/wings_filter.cpp index bf407fc4..f9193947 100644 --- a/importers/wings_filter.cpp +++ b/importers/wings_filter.cpp @@ -51,7 +51,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("wings_filter","wings_filter",WINGS_FILTER_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,false)) { fprintf(stderr,"wings_filter: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/lib/dbversion.h b/lib/dbversion.h index aa1b0bae..67ecf000 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 366 +#define RD_VERSION_DATABASE 367 #endif // DBVERSION_H diff --git a/lib/rdapplication.cpp b/lib/rdapplication.cpp index 5bdc5308..6bc92c70 100644 --- a/lib/rdapplication.cpp +++ b/lib/rdapplication.cpp @@ -2,7 +2,7 @@ // // Base GUI Application Class // -// (C) Copyright 2021 Fred Gleason +// (C) Copyright 2021-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -18,6 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include + #include "rdapplication.h" RDApplication *rda=NULL; @@ -36,6 +38,54 @@ RDApplication::~RDApplication() } +bool RDApplication::makeSingleInstance(QString *err_msg) +{ + // + // If we're already running, then just raise the window. + // + QStringList args; + args.clear(); + args.push_back("-l"); + QProcess *proc=new QProcess(this); + proc->start("wmctrl",args); + proc->waitForFinished(); + if(proc->exitStatus()!=QProcess::NormalExit) { + *err_msg=tr("wmctrl(1) process crashed"); + delete proc; + return false; + } + if(proc->exitCode()!=0) { + QString errs=QString::fromUtf8(proc->readAllStandardError()); + if(errs.isEmpty()) { + *err_msg=tr("wmctrl(1) not found\n"); + } + else { + *err_msg=QString::asprintf("wmctrl(1) process returned error [%s]", + errs.toUtf8().constData()); + } + delete proc; + return false; + } + bool found=false; + QStringList f0=QString::fromUtf8(proc->readAllStandardOutput()). + split("\n",QString::SkipEmptyParts); + for(int i=0;i=4) { + if(f1.at(3).trimmed().toLower()==commandName()) { + Raise(f1.at(0)); + found=true; + } + } + } + delete proc; + if(found) { + exit(0); + } + return true; +} + + RDIconEngine *RDApplication::iconEngine() const { return app_icon_engine; @@ -51,3 +101,33 @@ QString RDApplication::locale() } return ret; } + + +void RDApplication::Raise(const QString win_id) +{ + QStringList args; + QProcess *proc=NULL; + + args.push_back("-i"); + args.push_back("-R"); + args.push_back(win_id); + proc=new QProcess(this); + proc->start("wmctrl",args); + proc->waitForFinished(); + if(proc->exitStatus()!=QProcess::NormalExit) { + perror("wmctrl(1) process crashed"); + exit(1); + } + if(proc->exitCode()!=0) { + QString errs=QString::fromUtf8(proc->readAllStandardError()); + if(errs.isEmpty()) { + fprintf(stderr,"rdsinglestart: wmctrl(1) not found\n"); + } + else { + fprintf(stderr,"rdsinglestart: wmctrl(1) process returned error [%s]\n", + errs.toUtf8().constData()); + } + exit(1); + } + delete proc; +} diff --git a/lib/rdapplication.h b/lib/rdapplication.h index 57aa2bcf..07cb5abc 100644 --- a/lib/rdapplication.h +++ b/lib/rdapplication.h @@ -2,7 +2,7 @@ // // Base GUI Application Class // -// (C) Copyright 2021 Fred Gleason +// (C) Copyright 2021-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -29,12 +29,15 @@ class RDApplication : public RDCoreApplication Q_OBJECT; public: RDApplication(const QString &module_name,const QString &cmdname, - const QString &usage,QObject *parent=0); + const QString &usage,QObject *parent); ~RDApplication(); + bool makeSingleInstance(QString *err_msg); RDIconEngine *iconEngine() const; static QString locale(); private: + void Raise(const QString win_id); + bool app_singleton; RDIconEngine *app_icon_engine; }; diff --git a/lib/rdcoreapplication.cpp b/lib/rdcoreapplication.cpp index a8db6f03..3826c1e6 100644 --- a/lib/rdcoreapplication.cpp +++ b/lib/rdcoreapplication.cpp @@ -620,6 +620,18 @@ void RDCoreApplication::userChangedData() } +QString RDCoreApplication::moduleName() const +{ + return app_module_name; +} + + +QString RDCoreApplication::commandName() const +{ + return app_command_name; +} + + bool RDCoreApplication::CheckService(QString *err_msg) { bool ret=false; diff --git a/lib/rdcoreapplication.h b/lib/rdcoreapplication.h index fb0723aa..5d7ea835 100644 --- a/lib/rdcoreapplication.h +++ b/lib/rdcoreapplication.h @@ -58,7 +58,7 @@ class RDCoreApplication : public QObject RDCoreApplication(const QString &module_name,const QString &cmdname, const QString &usage,QObject *parent=0); ~RDCoreApplication(); - bool open(QString *err_msg,ErrorType *err_type=NULL,bool check_svc=true); + bool open(QString *err_msg,ErrorType *err_type,bool check_svc); RDAirPlayConf *airplayConf(); RDCae *cae(); RDCmdSwitch *cmdSwitch(); @@ -94,6 +94,10 @@ class RDCoreApplication : public QObject signals: void userChanged(); + protected: + QString moduleName() const; + QString commandName() const; + private: bool CheckService(QString *err_msg); RDAirPlayConf *app_airplay_conf; diff --git a/lib/rdlibrary_conf.cpp b/lib/rdlibrary_conf.cpp index 9d39d1bb..a0ff6567 100644 --- a/lib/rdlibrary_conf.cpp +++ b/lib/rdlibrary_conf.cpp @@ -370,6 +370,19 @@ void RDLibraryConf::setSearchLimited(bool state) const } +bool RDLibraryConf::isSingleton() const +{ + return RDBool(RDGetSqlValue("RDLIBRARY","ID",lib_id,"IS_SINGLETON"). + toString()); +} + + +void RDLibraryConf::setIsSingleton(bool state) const +{ + SetRow("IS_SINGLETON",RDYesNo(state)); +} + + void RDLibraryConf::getSettings(RDSettings *s) const { QString sql; diff --git a/lib/rdlibrary_conf.h b/lib/rdlibrary_conf.h index 1cd4dcec..22bc970c 100644 --- a/lib/rdlibrary_conf.h +++ b/lib/rdlibrary_conf.h @@ -83,6 +83,8 @@ class RDLibraryConf void setLimitSearch(RDLibraryConf::SearchLimit lmt) const; bool searchLimited() const; void setSearchLimited(bool state) const; + bool isSingleton() const; + void setIsSingleton(bool state) const; static QString cdServerTypeText(CdServerType type); static QPixmap cdServerLogo(CdServerType type); diff --git a/lib/rdlogedit_conf.cpp b/lib/rdlogedit_conf.cpp index 687b80d0..13a4dc3d 100644 --- a/lib/rdlogedit_conf.cpp +++ b/lib/rdlogedit_conf.cpp @@ -328,6 +328,19 @@ void RDLogeditConf::getSettings(RDSettings *s) const } +bool RDLogeditConf::isSingleton() const +{ + return RDBool(RDGetSqlValue("RDLOGEDIT","STATION",lib_station,"IS_SINGLETON"). + toString()); +} + + +void RDLogeditConf::setIsSingleton(bool state) const +{ + SetRow("IS_SINGLETON",RDYesNo(state)); +} + + void RDLogeditConf::SetRow(const QString ¶m,int value) const { RDSqlQuery *q; diff --git a/lib/rdlogedit_conf.h b/lib/rdlogedit_conf.h index 6c0e6d45..00cc0304 100644 --- a/lib/rdlogedit_conf.h +++ b/lib/rdlogedit_conf.h @@ -70,6 +70,8 @@ class RDLogeditConf RDLogLine::TransType defaultTransType() const; void setDefaultTransType(RDLogLine::TransType type); void getSettings(RDSettings *s) const; + bool isSingleton() const; + void setIsSingleton(bool state) const; private: void SetRow(const QString ¶m,int value) const; diff --git a/lib/rdstation.cpp b/lib/rdstation.cpp index 556d0cb1..1178703e 100644 --- a/lib/rdstation.cpp +++ b/lib/rdstation.cpp @@ -843,6 +843,20 @@ bool RDStation::create(const QString &name,QString *err_msg, QString::asprintf("`MACHINE`=%d",i); RDSqlQuery::apply(sql); } + + // + // RDLibrary Parameters + // + sql=QString("insert into `RDLIBRARY` set ")+ + "`STATION`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + // + // RDLogEdit Parameters + // + sql=QString("insert into `RDLOGEDIT` set ")+ + "`STATION`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } else { // Use Template Host sql=QString("select ")+ @@ -964,7 +978,8 @@ bool RDStation::create(const QString &name,QString *err_msg, "`ENABLE_EDITOR`,"+ // 20 "`SRC_CONVERTER`,"+ // 21 "`LIMIT_SEARCH`,"+ // 22 - "`SEARCH_LIMITED` "+ // 23 + "`SEARCH_LIMITED`,"+ // 23 + "`IS_SINGLETON` "+ // 24 "from `RDLIBRARY` where "+ "`STATION`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); @@ -994,6 +1009,7 @@ bool RDStation::create(const QString &name,QString *err_msg, QString::asprintf("`SRC_CONVERTER`=%d,",q->value(21).toInt())+ QString::asprintf("`LIMIT_SEARCH`=%d,",q->value(22).toInt())+ "`SEARCH_LIMITED`='"+RDEscapeString(q->value(23).toString())+"',"+ + "`IS_SINGLETON`='"+q->value(24).toString()+"',"+ "`STATION`='"+RDEscapeString(name)+"'"; RDSqlQuery::apply(sql); } @@ -1020,7 +1036,8 @@ bool RDStation::create(const QString &name,QString *err_msg, "`TRIM_THRESHOLD`,"+ // 14 "`RIPPER_LEVEL`,"+ // 15 "`DEFAULT_TRANS_TYPE`,"+ // 16 - "`ENABLE_SECOND_START` "+ // 17 + "`ENABLE_SECOND_START`,"+ // 17 + "`IS_SINGLETON` "+ // 18 "from `RDLOGEDIT` where "+ "`STATION`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); @@ -1044,7 +1061,8 @@ bool RDStation::create(const QString &name,QString *err_msg, QString::asprintf("`TRIM_THRESHOLD`=%d,",q->value(14).toInt())+ QString::asprintf("`RIPPER_LEVEL`=%d,",q->value(15).toInt())+ QString::asprintf("`DEFAULT_TRANS_TYPE`=%d,",q->value(16).toInt())+ - "`ENABLE_SECOND_START`='"+RDEscapeString(q->value(17).toString())+"'"; + "`ENABLE_SECOND_START`='"+RDEscapeString(q->value(17).toString())+"',"+ + "`IS_SINGLETON`='"+q->value(18).toString()+"'"; RDSqlQuery::apply(sql); } delete q; diff --git a/rdadmin/edit_rdlibrary.cpp b/rdadmin/edit_rdlibrary.cpp index 26788eda..b10a8d30 100644 --- a/rdadmin/edit_rdlibrary.cpp +++ b/rdadmin/edit_rdlibrary.cpp @@ -91,8 +91,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_maxlength_label=new QLabel(tr("Max Record Time:"),this); lib_maxlength_label->setFont(labelFont()); lib_maxlength_label->setGeometry(25,101,160,19); - lib_maxlength_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_maxlength_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // VOX threshold @@ -104,13 +103,11 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_vox_spin_label=new QLabel(tr("VOX Threshold:"),this); lib_vox_spin_label->setFont(labelFont()); lib_vox_spin_label->setGeometry(25,122,160,19); - lib_vox_spin_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_vox_spin_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); QLabel *lib_vox_spin_unit=new QLabel(tr("dbFS"),this); lib_vox_spin_unit->setFont(labelFont()); lib_vox_spin_unit->setGeometry(235,122,120,19); - lib_vox_spin_unit-> - setAlignment(Qt::AlignLeft|Qt::AlignVCenter); + lib_vox_spin_unit->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); // // AutoTrim threshold @@ -122,13 +119,11 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_trim_spin_label=new QLabel(tr("AutoTrim Threshold:"),this); lib_trim_spin_label->setFont(labelFont()); lib_trim_spin_label->setGeometry(25,144,160,19); - lib_trim_spin_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_trim_spin_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); QLabel *lib_trim_spin_unit=new QLabel(tr("dbFS"),this); lib_trim_spin_unit->setFont(labelFont()); lib_trim_spin_unit->setGeometry(235,144,120,19); - lib_trim_spin_unit-> - setAlignment(Qt::AlignLeft|Qt::AlignVCenter); + lib_trim_spin_unit->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); // // Tail Preroll @@ -141,13 +136,11 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_preroll_spin_label=new QLabel(tr("Tail Preroll:"),this); lib_preroll_spin_label->setFont(labelFont()); lib_preroll_spin_label->setGeometry(25,166,160,19); - lib_preroll_spin_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_preroll_spin_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); QLabel *lib_preroll_spin_unit=new QLabel(tr("milliseconds"),this); lib_preroll_spin_unit->setFont(labelFont()); lib_preroll_spin_unit->setGeometry(245,166,120,19); - lib_preroll_spin_unit-> - setAlignment(Qt::AlignLeft|Qt::AlignVCenter); + lib_preroll_spin_unit->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); // // Ripper Device @@ -158,8 +151,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_ripdev_label=new QLabel(tr("Ripper Device:"),this); lib_ripdev_label->setFont(labelFont()); lib_ripdev_label->setGeometry(25,188,160,19); - lib_ripdev_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_ripdev_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Paranoia Level @@ -169,8 +161,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_paranoia_label=new QLabel(tr("Paranoia Level:"),this); lib_paranoia_label->setFont(labelFont()); lib_paranoia_label->setGeometry(25,210,160,19); - lib_paranoia_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_paranoia_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Read ISRC @@ -180,8 +171,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_isrc_label=new QLabel(tr("Read ISRCs from CD:"),this); lib_isrc_label->setFont(labelFont()); lib_isrc_label->setGeometry(25,232,160,19); - lib_isrc_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_isrc_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // CD Server Type @@ -195,12 +185,10 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, } connect(lib_cd_server_type_box,SIGNAL(activated(int)), this,SLOT(cdServerTypeData(int))); - lib_cd_server_label= - new QLabel(tr("CD Metadata Source:"),this); + lib_cd_server_label=new QLabel(tr("CD Metadata Source:"),this); lib_cd_server_label->setFont(labelFont()); lib_cd_server_label->setGeometry(25,256,160,19); - lib_cd_server_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_cd_server_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // CD Server @@ -214,8 +202,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, lib_cd_server_label=new QLabel(tr("CDDB Server:"),this); lib_cd_server_label->setFont(labelFont()); lib_cd_server_label->setGeometry(25,278,160,19); - lib_cd_server_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_cd_server_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Format @@ -226,8 +213,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_format_label=new QLabel(tr("Format:"),this); lib_format_label->setFont(labelFont()); lib_format_label->setGeometry(25,302,160,19); - lib_format_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_format_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Bitrate @@ -242,8 +228,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_bitrate_unit=new QLabel("kbps/chan",this); lib_bitrate_unit->setFont(labelFont()); lib_bitrate_unit->setGeometry(245,326,160,19); - lib_bitrate_unit-> - setAlignment(Qt::AlignLeft|Qt::AlignVCenter); + lib_bitrate_unit->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); // // Enable Editor @@ -255,8 +240,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_editor_label=new QLabel(tr("Allow External Editing:"),this); lib_editor_label->setFont(labelFont()); lib_editor_label->setGeometry(25,350,160,19); - lib_editor_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_editor_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Sample Rate Converter @@ -271,8 +255,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, QLabel *lib_converter_label=new QLabel(tr("Sample Rate Converter:"),this); lib_converter_label->setFont(labelFont()); lib_converter_label->setGeometry(10,374,175,19); - lib_converter_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_converter_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Limit Searches at Startup @@ -286,14 +269,26 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, new QLabel(tr("Limit Searches at Startup")+":",this); lib_limit_search_label->setFont(labelFont()); lib_limit_search_label->setGeometry(10,398,175,19); - lib_limit_search_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_limit_search_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); + + // + // Allow Multiple Instances + // + lib_singleton_box=new QComboBox(this); + lib_singleton_box->setGeometry(190,422,80,19); + lib_singleton_box->insertItem(0,tr("No")); + lib_singleton_box->insertItem(1,tr("Yes")); + QLabel *lib_singleton_label= + new QLabel(tr("Allow Multiple Instances")+":",this); + lib_singleton_label->setFont(labelFont()); + lib_singleton_label->setGeometry(10,422,175,19); + lib_singleton_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Defaults // QLabel *default_label=new QLabel(tr("Defaults"),this); - default_label->setGeometry(25,436,120,19); + default_label->setGeometry(25,460,120,19); default_label->setFont(sectionLabelFont()); default_label->setAlignment(Qt::AlignRight); @@ -301,52 +296,47 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, // Default Channels // lib_channels_box=new QComboBox(this); - lib_channels_box->setGeometry(190,454,60,19); + lib_channels_box->setGeometry(190,478,60,19); QLabel *lib_channels_label=new QLabel(tr("Channels:"),this); lib_channels_label->setFont(labelFont()); - lib_channels_label->setGeometry(25,454,160,19); - lib_channels_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_channels_label->setGeometry(25,478,160,19); + lib_channels_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Default Record Mode // lib_recmode_box=new QComboBox(this); - lib_recmode_box->setGeometry(190,478,100,19); + lib_recmode_box->setGeometry(190,502,100,19); QLabel *lib_recmode_label=new QLabel(tr("Record Mode:"),this); lib_recmode_label->setFont(labelFont()); - lib_recmode_label->setGeometry(25,478,160,19); - lib_recmode_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_recmode_label->setGeometry(25,502,160,19); + lib_recmode_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Default Trim State // lib_trimstate_box=new QComboBox(this); - lib_trimstate_box->setGeometry(190,502,100,19); + lib_trimstate_box->setGeometry(190,526,100,19); QLabel *lib_trimstate_label=new QLabel(tr("AutoTrim:"),this); lib_trimstate_label->setFont(labelFont()); - lib_trimstate_label->setGeometry(25,502,160,19); - lib_trimstate_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_trimstate_label->setGeometry(25,526,160,19); + lib_trimstate_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); // // Normalization Level // lib_riplevel_spin=new QSpinBox(this); - lib_riplevel_spin->setGeometry(190,526,40,19); + lib_riplevel_spin->setGeometry(190,550,40,19); lib_riplevel_spin->setMinimum(-99); lib_riplevel_spin->setMaximum(0); QLabel *lib_riplevel_spin_label=new QLabel(tr("Normalization Level:"),this); lib_riplevel_spin_label->setFont(labelFont()); - lib_riplevel_spin_label->setGeometry(25,526,160,19); - lib_riplevel_spin_label-> - setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_riplevel_spin_label->setGeometry(25,550,160,19); + lib_riplevel_spin_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); QLabel *lib_riplevel_spin_unit=new QLabel(tr("dbFS"),this); lib_riplevel_spin_unit->setFont(labelFont()); - lib_riplevel_spin_unit->setGeometry(235,526,120,19); - lib_riplevel_spin_unit-> - setAlignment(Qt::AlignLeft|Qt::AlignVCenter); + lib_riplevel_spin_unit->setGeometry(235,550,120,19); + lib_riplevel_spin_unit->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); // // Ok Button @@ -450,6 +440,7 @@ EditRDLibrary::EditRDLibrary(RDStation *station,RDStation *cae_station, lib_editor_box->setCurrentIndex(lib_lib->enableEditor()); lib_converter_box->setCurrentIndex(lib_lib->srcConverter()); lib_limit_search_box->setCurrentIndex((int)lib_lib->limitSearch()); + lib_singleton_box->setCurrentIndex(!lib_lib->isSingleton()); } @@ -466,7 +457,7 @@ EditRDLibrary::~EditRDLibrary() QSize EditRDLibrary::sizeHint() const { - return QSize(405,630); + return QSize(405,654); } @@ -574,6 +565,7 @@ void EditRDLibrary::okData() lib_lib->setSrcConverter(lib_converter_box->currentIndex()); lib_lib->setLimitSearch((RDLibraryConf::SearchLimit) lib_limit_search_box->currentIndex()); + lib_lib->setIsSingleton(lib_singleton_box->currentIndex()==0); done(0); } diff --git a/rdadmin/edit_rdlibrary.h b/rdadmin/edit_rdlibrary.h index 4db19cba..030d8ad6 100644 --- a/rdadmin/edit_rdlibrary.h +++ b/rdadmin/edit_rdlibrary.h @@ -2,7 +2,7 @@ // // Edit an RDLibrry Configuration // -// (C) Copyright 2002-2021 Fred Gleason +// (C) Copyright 2002-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -71,6 +71,7 @@ class EditRDLibrary : public RDDialog QComboBox *lib_editor_box; QComboBox *lib_converter_box; QComboBox *lib_limit_search_box; + QComboBox *lib_singleton_box; }; diff --git a/rdadmin/edit_rdlogedit.cpp b/rdadmin/edit_rdlogedit.cpp index 6ea7d18d..cc0150aa 100644 --- a/rdadmin/edit_rdlogedit.cpp +++ b/rdadmin/edit_rdlogedit.cpp @@ -282,6 +282,20 @@ EditRDLogedit::EditRDLogedit(RDStation *station,RDStation *cae_station, lib_default_transtype_box->insertItem(1,tr("Segue")); lib_default_transtype_box->insertItem(2,tr("Stop")); + // + // Allow Multiple Instances + // + lib_singleton_box=new QComboBox(this); + lib_singleton_box->setGeometry(180,434,100,19); + QLabel *lib_singleton_label= + new QLabel(tr("Allow Multiple Instances")+":",this); + lib_singleton_label->setFont(labelFont()); + lib_singleton_label->setGeometry(0,434,175,19); + lib_singleton_label-> + setAlignment(Qt::AlignRight|Qt::AlignVCenter); + lib_singleton_box->insertItem(0,tr("No")); + lib_singleton_box->insertItem(1,tr("Yes")); + // // Ok Button // @@ -365,6 +379,7 @@ EditRDLogedit::EditRDLogedit(RDStation *station,RDStation *cae_station, ShowBitRates(lib_format_box->currentIndex(),lib_lib->bitrate()); lib_enable_second_start_box->setCurrentIndex(lib_lib->enableSecondStart()); lib_default_transtype_box->setCurrentIndex(lib_lib->defaultTransType()); + lib_singleton_box->setCurrentIndex(!lib_lib->isSingleton()); } @@ -381,7 +396,7 @@ EditRDLogedit::~EditRDLogedit() QSize EditRDLogedit::sizeHint() const { - return QSize(395,500); + return QSize(395,524); } @@ -493,6 +508,8 @@ void EditRDLogedit::okData() lib_lib->setEnableSecondStart(lib_enable_second_start_box->currentIndex()); lib_lib->setDefaultTransType( (RDLogLine::TransType)lib_default_transtype_box->currentIndex()); + lib_lib->setIsSingleton(lib_singleton_box->currentIndex()==0); + done(0); } diff --git a/rdadmin/edit_rdlogedit.h b/rdadmin/edit_rdlogedit.h index 36cb1894..5401bafd 100644 --- a/rdadmin/edit_rdlogedit.h +++ b/rdadmin/edit_rdlogedit.h @@ -2,7 +2,7 @@ // // Edit an RDLogEdit Configuration // -// (C) Copyright 2002-2021 Fred Gleason +// (C) Copyright 2002-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -66,6 +66,7 @@ class EditRDLogedit : public RDDialog QLineEdit *lib_recstartcart_edit; QLineEdit *lib_recendcart_edit; QComboBox *lib_default_transtype_box; + QComboBox *lib_singleton_box; QString lib_filter; QString lib_group; }; diff --git a/rdairplay/rdairplay.cpp b/rdairplay/rdairplay.cpp index 77455b8d..d50b5b5f 100644 --- a/rdairplay/rdairplay.cpp +++ b/rdairplay/rdairplay.cpp @@ -67,19 +67,18 @@ MainWidget::MainWidget(RDConfig *config,QWidget *parent) // Open the Database // rda=new RDApplication("RDAirPlay","rdairplay",RDAIRPLAY_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"RDAirPlay - "+tr("Error"),err_msg); exit(1); } // - // Ensure Single Instance + // Ensure that we're the only instance // - air_lock=new RDInstanceLock(RDHomeDir()+"/.rdairplaylock"); - if(!air_lock->lock()) { - QMessageBox::information(this,tr("RDAirPlay"), - tr("Multiple instances not allowed!")); - exit(1); + if(!rda->makeSingleInstance(&err_msg)) { + QMessageBox::critical(this,"RDAirPlay - "+tr("Error"), + tr("Startup error")+": "+err_msg+"."); + exit(RDCoreApplication::ExitPriorInstance); } // @@ -1767,7 +1766,6 @@ void MainWidget::closeEvent(QCloseEvent *e) } rda->airplayConf()->setExitCode(RDAirPlayConf::ExitClean); rda->syslog(LOG_INFO,"RDAirPlay exiting"); - air_lock->unlock(); saveSettings(); exit(0); } @@ -1782,7 +1780,6 @@ void MainWidget::closeEvent(QCloseEvent *e) } rda->airplayConf()->setExitCode(RDAirPlayConf::ExitClean); rda->syslog(LOG_INFO,"RDAirPlay exiting"); - air_lock->unlock(); saveSettings(); exit(0); } diff --git a/rdairplay/rdairplay.h b/rdairplay/rdairplay.h index afcf7ee5..4dacec5a 100644 --- a/rdairplay/rdairplay.h +++ b/rdairplay/rdairplay.h @@ -22,7 +22,6 @@ #define RDAIRPLAY_H #include -#include #include #include @@ -142,7 +141,6 @@ class MainWidget : public RDMainWindow int air_cue_card; int air_cue_port; RDLogLine::TransType air_default_trans_type; - RDInstanceLock *air_lock; bool air_clear_filter; RDAirPlayConf::BarAction air_bar_action; bool air_pause_enabled; diff --git a/rdcartslots/rdcartslots.cpp b/rdcartslots/rdcartslots.cpp index a061ce30..2b341232 100644 --- a/rdcartslots/rdcartslots.cpp +++ b/rdcartslots/rdcartslots.cpp @@ -35,11 +35,20 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) // Open the Database // rda=new RDApplication("RDCartSlots","rdcartslots",RDCARTSLOTS_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,false)) { QMessageBox::critical(this,"RDCartSlots - "+tr("Error"),err_msg); exit(1); } + // + // Ensure that we're the only instance + // + if(!rda->makeSingleInstance(&err_msg)) { + QMessageBox::critical(this,"RDCartSlots - "+tr("Error"), + tr("Startup error")+": "+err_msg+"."); + exit(RDCoreApplication::ExitPriorInstance); + } + // // Read Command Options // diff --git a/rdcastmanager/rdcastmanager.cpp b/rdcastmanager/rdcastmanager.cpp index 57e9081d..9689941e 100644 --- a/rdcastmanager/rdcastmanager.cpp +++ b/rdcastmanager/rdcastmanager.cpp @@ -59,13 +59,22 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) // rda=new RDApplication("RDCastManager","rdcastmanager",RDCASTMANAGER_USAGE, this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"RDCastManager - "+tr("Error"),err_msg); exit(1); } setWindowIcon(rda->iconEngine()-> applicationIcon(RDIconEngine::RdCastManager,22)); + // + // Ensure that we're the only instance + // + if(!rda->makeSingleInstance(&err_msg)) { + QMessageBox::critical(this,"RDCastManager - "+tr("Error"), + tr("Startup error")+": "+err_msg+"."); + exit(RDCoreApplication::ExitPriorInstance); + } + // // Read Command Options // diff --git a/rdcatch/rdcatch.cpp b/rdcatch/rdcatch.cpp index aa5ae6fc..43ca574a 100644 --- a/rdcatch/rdcatch.cpp +++ b/rdcatch/rdcatch.cpp @@ -67,11 +67,20 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) // Open the Database // rda=new RDApplication("RDCatch","rdcatch",RDCATCH_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"RDCatch - "+tr("Error"),err_msg); exit(1); } + // + // Ensure that we're the only instance + // + if(!rda->makeSingleInstance(&err_msg)) { + QMessageBox::critical(this,"RDCatch - "+tr("Error"), + tr("Startup error")+": "+err_msg+"."); + exit(RDCoreApplication::ExitPriorInstance); + } + // // Read Command Options // diff --git a/rdlibrary/rdlibrary.cpp b/rdlibrary/rdlibrary.cpp index a2d55c88..33b59045 100644 --- a/rdlibrary/rdlibrary.cpp +++ b/rdlibrary/rdlibrary.cpp @@ -87,12 +87,23 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) // Open the Database // rda=new RDApplication("RDLibrary","rdlibrary",RDLIBRARY_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"RDLibrary - "+tr("Error"),err_msg); exit(1); } setWindowIcon(rda->iconEngine()->applicationIcon(RDIconEngine::RdLibrary,22)); + if(rda->libraryConf()->isSingleton()) { + // + // Ensure that we're the only instance + // + if(!rda->makeSingleInstance(&err_msg)) { + QMessageBox::critical(this,"RDLibrary - "+tr("Error"), + tr("Startup error")+": "+err_msg+"."); + exit(RDCoreApplication::ExitPriorInstance); + } + } + // // Read Command Options // diff --git a/rdlogedit/rdlogedit.cpp b/rdlogedit/rdlogedit.cpp index 549b0c04..ae12a1ea 100644 --- a/rdlogedit/rdlogedit.cpp +++ b/rdlogedit/rdlogedit.cpp @@ -61,12 +61,23 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) // Open the Database // rda=new RDApplication("RDLogEdit","rdlogedit",RDLOGEDIT_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"RDLogEdit - "+tr("Error"),err_msg); exit(1); } log_import_path=RDGetHomeDir(); + if(rda->logeditConf()->isSingleton()) { + // + // Ensure that we're the only instance + // + if(!rda->makeSingleInstance(&err_msg)) { + QMessageBox::critical(this,"RDLogEdit - "+tr("Error"), + tr("Startup error")+": "+err_msg+"."); + exit(RDCoreApplication::ExitPriorInstance); + } + } + // // Read Command Options // diff --git a/rdlogin/rdlogin.cpp b/rdlogin/rdlogin.cpp index 4d89cd3d..5e365c9d 100644 --- a/rdlogin/rdlogin.cpp +++ b/rdlogin/rdlogin.cpp @@ -2,7 +2,7 @@ // // The User Login/Logout Utility for Rivendell. // -// (C) Copyright 2002-2021 Fred Gleason +// (C) Copyright 2002-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -44,13 +44,25 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) setMinimumSize(sizeHint()); setMaximumHeight(sizeHint().height()); + // + // Open the database + // rda=new RDApplication("RDLogin","rdlogin",RDLOGIN_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"RDLogin - "+tr("Error"),err_msg); exit(1); } setWindowIcon(rda->iconEngine()->applicationIcon(RDIconEngine::Rivendell,22)); + // + // Ensure that we're the only instance + // + if(!rda->makeSingleInstance(&err_msg)) { + QMessageBox::critical(this,"RDLogin - "+tr("Error"), + tr("Startup error")+": "+err_msg+"."); + exit(RDCoreApplication::ExitPriorInstance); + } + // // Read Command Options // diff --git a/rdlogmanager/commandline_ops.cpp b/rdlogmanager/commandline_ops.cpp index 3d48a3c7..3b2ed6cd 100644 --- a/rdlogmanager/commandline_ops.cpp +++ b/rdlogmanager/commandline_ops.cpp @@ -45,8 +45,9 @@ int RunReportOperation(int argc,char *argv[],const QString &rptname, return 256; } - rda=static_cast(new RDCoreApplication("RDLogManager","rdlogmanager",RDLOGMANAGER_USAGE)); - if(!rda->open(&err_msg)) { + rda=static_cast(new RDCoreApplication("RDLogManager", + "rdlogmanager",RDLOGMANAGER_USAGE)); + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rdlogmanager: %s\n",err_msg.toUtf8().constData()); exit(RDApplication::ExitNoDb); } diff --git a/rdlogmanager/logobject.cpp b/rdlogmanager/logobject.cpp index 22713f32..1c76b7d1 100644 --- a/rdlogmanager/logobject.cpp +++ b/rdlogmanager/logobject.cpp @@ -45,7 +45,7 @@ LogObject::LogObject(const QString &svcname,int start_offset, // Open the Database // rda=static_cast(new RDCoreApplication("RDLogManager","rdlogmanager","")); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,false)) { fprintf(stderr,"rdlogmanager: %s\n",err_msg.toUtf8().constData()); exit(RDApplication::ExitNoDb); } diff --git a/rdlogmanager/rdlogmanager.cpp b/rdlogmanager/rdlogmanager.cpp index b19894e8..7f6b4ea6 100644 --- a/rdlogmanager/rdlogmanager.cpp +++ b/rdlogmanager/rdlogmanager.cpp @@ -53,7 +53,7 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) // Open the Database // rda=new RDApplication("RDLogManager","rdlogmanager",RDLOGMANAGER_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"RDLogManager - "+tr("Error"),err_msg); exit(RDApplication::ExitNoDb); } @@ -61,6 +61,15 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) applicationIcon(RDIconEngine::RdLogManager,22)); setWindowTitle(tr("RDLogManager")); + // + // Ensure that we're the only instance + // + if(!rda->makeSingleInstance(&err_msg)) { + QMessageBox::critical(this,"RDLogManager - "+tr("Error"), + tr("Startup error")+": "+err_msg+"."); + exit(RDCoreApplication::ExitPriorInstance); + } + // // CAE Connection // diff --git a/rdpanel/rdpanel.cpp b/rdpanel/rdpanel.cpp index e6e30556..ee95d396 100644 --- a/rdpanel/rdpanel.cpp +++ b/rdpanel/rdpanel.cpp @@ -54,12 +54,21 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) // Open the Database // rda=new RDApplication("RDPanel","rdpanel",RDPANEL_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"RDPanel - "+tr("Error"),err_msg); exit(1); } setWindowIcon(rda->iconEngine()->applicationIcon(RDIconEngine::RdPanel,22)); + // + // Ensure that we're the only instance + // + if(!rda->makeSingleInstance(&err_msg)) { + QMessageBox::critical(this,"RDPanel - "+tr("Error"), + tr("Startup error")+": "+err_msg+"."); + exit(RDCoreApplication::ExitPriorInstance); + } + // // Read Command Options // @@ -191,14 +200,12 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) int next_output=1; for(int i=0;iportNames()->portName(panel_panel->card(i),panel_panel->port(i)); for(int j=0;jcard(i)==panel_panel->card(j))&& (panel_panel->port(i)==panel_panel->port(j))) { unique=false; - output=panel_panel->outputText(j).toInt(); } } if(unique) { diff --git a/rivendell.spec.in b/rivendell.spec.in index e1184f24..80289d4d 100644 --- a/rivendell.spec.in +++ b/rivendell.spec.in @@ -30,7 +30,7 @@ Release: @RPM_RELEASE@ License: GPL Packager: Fred Gleason Source: rivendell-@VERSION@.tar.gz -Requires: @MYSQL_PKG@ @QT_MYSQL_PKG@ @APACHE_PKG@ curl @USERMODE_PKG@ rsyslog qt5-qtstyleplugins qt5-qttranslations @PYPAD_DEPS@ libxslt icedax +Requires: @MYSQL_PKG@ @QT_MYSQL_PKG@ @APACHE_PKG@ curl @USERMODE_PKG@ rsyslog qt5-qtstyleplugins qt5-qttranslations @PYPAD_DEPS@ libxslt icedax wmctrl BuildRequires: qt5-qtbase-devel qt5-linguist BuildRoot: /var/tmp/rivendell-@VERSION@ Obsoletes: rivendell-base < 4.0.0 rivendell-opsguide < 4.0.0 rivendell-pypad < 4.0.0 @@ -465,6 +465,7 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/rdmetadata.1.gz %{_mandir}/man1/rdrender.1.gz %{_mandir}/man1/rmlsend.1.gz +%{_mandir}/man1/rdsinglestart.1.gz %{_mandir}/man1/rdsoftkeys.1.gz %{_mandir}/man5/rd.conf.5.gz %{_mandir}/man8/rddbmgr.8.gz @@ -488,6 +489,7 @@ rm -rf $RPM_BUILD_ROOT %{_sbindir}/rdrssd %{_sbindir}/rdmarkerset %{_sbindir}/rdcleandirs +%{_bindir}/rdsinglestart %{_sbindir}/rddbmgr @HPI_FILE1@ @HPI_FILE2@ diff --git a/tests/audio_convert_test.cpp b/tests/audio_convert_test.cpp index 6690510f..a0595356 100644 --- a/tests/audio_convert_test.cpp +++ b/tests/audio_convert_test.cpp @@ -2,7 +2,7 @@ // // Test the Rivendell file format converter. // -// (C) Copyright 2010-2021 Fred Gleason +// (C) Copyright 2010-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -43,7 +43,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("audio_convert_test","audio_convert_test",AUDIO_CONVERT_TEST_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"audio_convert_test: %s\n",(const char *)err_msg.toUtf8()); exit(1); } diff --git a/tests/audio_export_test.cpp b/tests/audio_export_test.cpp index 050de6d5..06d793a8 100644 --- a/tests/audio_export_test.cpp +++ b/tests/audio_export_test.cpp @@ -2,7 +2,7 @@ // // Test the Rivendell file format exporter. // -// (C) Copyright 2010-2021 Fred Gleason +// (C) Copyright 2010-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -45,7 +45,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("audio_export_test","audio_export_test",AUDIO_EXPORT_TEST_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"audio_export_test: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/tests/audio_import_test.cpp b/tests/audio_import_test.cpp index 810d2ef3..95ac2761 100644 --- a/tests/audio_import_test.cpp +++ b/tests/audio_import_test.cpp @@ -2,7 +2,7 @@ // // Test Rivendell file importing. // -// (C) Copyright 2010-2021 Fred Gleason +// (C) Copyright 2010-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -46,7 +46,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("audio_import_test","audio_import_test",AUDIO_IMPORT_TEST_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"audio_import_test: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/tests/audio_metadata_test.cpp b/tests/audio_metadata_test.cpp index e64da2e0..ceb02ae0 100644 --- a/tests/audio_metadata_test.cpp +++ b/tests/audio_metadata_test.cpp @@ -2,7 +2,7 @@ // // Test the Rivendell audio file metadata reader. // -// (C) Copyright 2018-2021 Fred Gleason +// (C) Copyright 2018-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -36,7 +36,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("audio_metadata_test","audio_metadata_test",AUDIO_METADATA_TEST_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"audio_metadata_test: %s\n",(const char *)err_msg.toUtf8()); exit(1); } diff --git a/tests/db_charset_test.cpp b/tests/db_charset_test.cpp index 453579ce..ad7b848a 100644 --- a/tests/db_charset_test.cpp +++ b/tests/db_charset_test.cpp @@ -2,7 +2,7 @@ // // Display charset/collation parameters for a DB connection // -// (C) Copyright 2018-2021 Fred Gleason +// (C) Copyright 2018-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -43,7 +43,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDApplication("db_charset_test","rdvairplayd",DB_CHARSET_TEST_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"db_charset_test: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/tests/delete_test.cpp b/tests/delete_test.cpp index 554d7c1d..93905bd1 100644 --- a/tests/delete_test.cpp +++ b/tests/delete_test.cpp @@ -40,7 +40,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=new RDApplication("delete_test","delete_test",DELETE_TEST_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"delete_test: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/tests/download_test.cpp b/tests/download_test.cpp index 97496566..95a24bf4 100644 --- a/tests/download_test.cpp +++ b/tests/download_test.cpp @@ -2,7 +2,7 @@ // // Test Rivendell file downloading. // -// (C) Copyright 2010-2021 Fred Gleason +// (C) Copyright 2010-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -42,7 +42,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=new RDApplication("download_test","download_test",DOWNLOAD_TEST_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"download_test: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/tests/feed_image_test.cpp b/tests/feed_image_test.cpp index 68cc3729..2547a6d4 100644 --- a/tests/feed_image_test.cpp +++ b/tests/feed_image_test.cpp @@ -2,7 +2,7 @@ // // Test Rivendell image storage // -// (C) Copyright 2010-2021 Fred Gleason +// (C) Copyright 2010-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -46,7 +46,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=new RDApplication("feed_image_test","feed_image_test",FEED_IMAGE_TEST_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"feed_image_test: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/tests/metadata_wildcard_test.cpp b/tests/metadata_wildcard_test.cpp index b6033fcc..c6edc3ea 100644 --- a/tests/metadata_wildcard_test.cpp +++ b/tests/metadata_wildcard_test.cpp @@ -2,7 +2,7 @@ // // Test the Rivendell multicast receiver routines // -// (C) Copyright 2018-2021 Fred Gleason +// (C) Copyright 2018-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -41,7 +41,7 @@ MainObject::MainObject(QObject *parent) // rda=new RDApplication("metadata_wildcard_test","metadata_wildcard_test", METADATA_WILDCARD_TEST_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"metadata_wildcard_test: %s\n",(const char *)err_msg.toUtf8()); exit(1); } diff --git a/tests/meterstrip_test.cpp b/tests/meterstrip_test.cpp index e00f091a..418d0f62 100644 --- a/tests/meterstrip_test.cpp +++ b/tests/meterstrip_test.cpp @@ -2,7 +2,7 @@ // // Test harness for RDWaveWidget // -// (C) Copyright 2021 Fred Gleason +// (C) Copyright 2021-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -36,7 +36,7 @@ MainWidget::MainWidget(QWidget *parent) // rda=new RDApplication("meterstrip_test","meterstrip_test",METERSTRIP_TEST_USAGE, this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"meterstrip_test - "+tr("Error"),err_msg); exit(RDApplication::ExitNoDb); } diff --git a/tests/notification_test.cpp b/tests/notification_test.cpp index 7a9e60bd..fa423877 100644 --- a/tests/notification_test.cpp +++ b/tests/notification_test.cpp @@ -30,7 +30,7 @@ MainObject::MainObject(QObject *parent) QString err_msg; rda=new RDApplication("notification_test","notification_test",NOTIFICATION_TEST_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"notification_test: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/tests/upload_test.cpp b/tests/upload_test.cpp index b05d6e4e..4b393982 100644 --- a/tests/upload_test.cpp +++ b/tests/upload_test.cpp @@ -41,7 +41,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=new RDApplication("upload_test","upload_test",UPLOAD_TEST_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"upload_test: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/tests/wavefactory_test.cpp b/tests/wavefactory_test.cpp index 203b667a..44b158d0 100644 --- a/tests/wavefactory_test.cpp +++ b/tests/wavefactory_test.cpp @@ -2,7 +2,7 @@ // // Test harness for RDWavefactory // -// (C) Copyright 2021 Fred Gleason +// (C) Copyright 2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -44,7 +44,7 @@ MainWidget::MainWidget(QWidget *parent) // rda=new RDApplication("wavefactory_test","wavefactory_test",WAVEFACTORY_TEST_USAGE, this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"wavefactory_test - "+tr("Error"),err_msg); exit(RDApplication::ExitNoDb); } diff --git a/tests/wavescene_test.cpp b/tests/wavescene_test.cpp index 7f952c03..4f17cd4b 100644 --- a/tests/wavescene_test.cpp +++ b/tests/wavescene_test.cpp @@ -2,7 +2,7 @@ // // Test harness for RDWaveScene // -// (C) Copyright 2021 Fred Gleason +// (C) Copyright 2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -43,7 +43,7 @@ MainWidget::MainWidget(QWidget *parent) // rda=new RDApplication("wavescene_test","wavescene_test",WAVESCENE_TEST_USAGE, this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"wavescene_test - "+tr("Error"),err_msg); exit(RDApplication::ExitNoDb); } diff --git a/tests/wavewidget_test.cpp b/tests/wavewidget_test.cpp index 90df7721..d971a849 100644 --- a/tests/wavewidget_test.cpp +++ b/tests/wavewidget_test.cpp @@ -2,7 +2,7 @@ // // Test harness for RDWaveWidget // -// (C) Copyright 2021 Fred Gleason +// (C) Copyright 2021-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -42,7 +42,7 @@ MainWidget::MainWidget(QWidget *parent) // rda=new RDApplication("wavewidget_test","wavewidget_test",WAVEWIDGET_TEST_USAGE, this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"wavewidget_test - "+tr("Error"),err_msg); exit(RDApplication::ExitNoDb); } diff --git a/utils/Makefile.am b/utils/Makefile.am index f89c6aea..38e5675e 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -2,7 +2,7 @@ ## ## Automake.am for rivendell/utils ## -## (C) Copyright 2002-2021 Fred Gleason +## (C) Copyright 2002-2022 Fred Gleason ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as @@ -42,6 +42,7 @@ SUBDIRS = $(ALSACONFIG_RD_OPT)\ rdpopup\ rdrender\ rdselect_helper\ + rdsinglestart\ rdsoftkeys\ rmlsend diff --git a/utils/rdalsaconfig/rdalsaconfig.cpp b/utils/rdalsaconfig/rdalsaconfig.cpp index 67db7844..97cbee8f 100644 --- a/utils/rdalsaconfig/rdalsaconfig.cpp +++ b/utils/rdalsaconfig/rdalsaconfig.cpp @@ -362,7 +362,7 @@ Autogen::Autogen() // // Open the Database // - rda=new RDApplication("RDAlsaConfig","rdalsaconfig",RDALSACONFIG_USAGE); + rda=new RDApplication("RDAlsaConfig","rdalsaconfig",RDALSACONFIG_USAGE,this); if(!rda->open(&err_msg,NULL,false)) { fprintf(stderr,"rdalsaconfig: unable to open database [%s]\n", (const char *)err_msg.toUtf8()); diff --git a/utils/rdcheckcuts/rdcheckcuts.cpp b/utils/rdcheckcuts/rdcheckcuts.cpp index eedf6dff..58378821 100644 --- a/utils/rdcheckcuts/rdcheckcuts.cpp +++ b/utils/rdcheckcuts/rdcheckcuts.cpp @@ -2,7 +2,7 @@ // // Check Rivendell Cuts for Valid Audio // -// (C) Copyright 2012-2021 Fred Gleason +// (C) Copyright 2012-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -43,7 +43,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("rdcheckcuts","rdcheckcuts",RDCHECKCUTS_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rdcheckcuts: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/utils/rdclilogedit/rdclilogedit.cpp b/utils/rdclilogedit/rdclilogedit.cpp index 621980bf..7bec5c0a 100644 --- a/utils/rdclilogedit/rdclilogedit.cpp +++ b/utils/rdclilogedit/rdclilogedit.cpp @@ -49,7 +49,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("rdclilogedit","rdclilogedit",RDCLILOGEDIT_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rdclilogedit: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/utils/rdconvert/rdconvert.cpp b/utils/rdconvert/rdconvert.cpp index afa312f1..acb12704 100644 --- a/utils/rdconvert/rdconvert.cpp +++ b/utils/rdconvert/rdconvert.cpp @@ -2,7 +2,7 @@ // // Rivendell file format converter. // -// (C) Copyright 2017-2021 Fred Gleason +// (C) Copyright 2017-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -43,7 +43,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("rdconvert","rdconvert",RDCONVERT_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rdconvert: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/utils/rddbmgr/revertschema.cpp b/utils/rddbmgr/revertschema.cpp index 68821998..dfc595bb 100644 --- a/utils/rddbmgr/revertschema.cpp +++ b/utils/rddbmgr/revertschema.cpp @@ -41,6 +41,16 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) // NEW SCHEMA REVERSIONS GO HERE... + // + // Revert 367 + // + if((cur_schema==367)&&(set_schemacur_schema)) { + sql=QString("alter table `RDLIBRARY` ")+ + "add column `IS_SINGLETON` enum('N','Y') not null default 'Y' "+ + "after `SEARCH_LIMITED`"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + + sql=QString("alter table `RDLOGEDIT` ")+ + "add column `IS_SINGLETON` enum('N','Y') not null default 'Y' "+ + "after `DEFAULT_TRANS_TYPE`"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + WriteSchemaVersion(++cur_schema); } diff --git a/utils/rddelete/rddelete.cpp b/utils/rddelete/rddelete.cpp index 1a2e640c..1725ed10 100644 --- a/utils/rddelete/rddelete.cpp +++ b/utils/rddelete/rddelete.cpp @@ -2,7 +2,7 @@ // // A Batch Deleter for Rivendell. // -// (C) Copyright 2013-2021 Fred Gleason +// (C) Copyright 2013-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -44,7 +44,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("rddelete","rddelete",RDDELETE_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rddelete: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/utils/rdexport/rdexport.cpp b/utils/rdexport/rdexport.cpp index 631339c4..168dde29 100644 --- a/utils/rdexport/rdexport.cpp +++ b/utils/rdexport/rdexport.cpp @@ -2,7 +2,7 @@ // // A Batch Exporter for Rivendell. // -// (C) Copyright 2016-2021 Fred Gleason +// (C) Copyright 2016-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -57,7 +57,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("rdexport","rdexport",RDEXPORT_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rdexport: %s\n",(const char *)err_msg.toUtf8()); exit(1); } diff --git a/utils/rdgpimon/rdgpimon.cpp b/utils/rdgpimon/rdgpimon.cpp index 02277b9c..ee194af2 100644 --- a/utils/rdgpimon/rdgpimon.cpp +++ b/utils/rdgpimon/rdgpimon.cpp @@ -39,7 +39,7 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) // Open the Database // rda=new RDApplication("RDGpiMon","rdgpimon",RDGPIMON_USAGE,this); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { QMessageBox::critical(this,"RDGpiMon - "+tr("Error"),err_msg); exit(1); } diff --git a/utils/rdimport/rdimport.cpp b/utils/rdimport/rdimport.cpp index cb02b9f8..bbefd6e5 100644 --- a/utils/rdimport/rdimport.cpp +++ b/utils/rdimport/rdimport.cpp @@ -109,7 +109,7 @@ MainObject::MainObject(QObject *parent) // rda=static_cast(new RDCoreApplication("rdimport","rdimport", RDIMPORT_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rdimport: %s\n",err_msg.toUtf8().constData()); ErrorExit(RDApplication::ExitNoDb); } diff --git a/utils/rdmarkerset/rdmarkerset.cpp b/utils/rdmarkerset/rdmarkerset.cpp index 27b6d0c0..bc582775 100644 --- a/utils/rdmarkerset/rdmarkerset.cpp +++ b/utils/rdmarkerset/rdmarkerset.cpp @@ -2,7 +2,7 @@ // // Command-line tool for setting Rivendell Cut Markers // -// (C) Copyright 2014-2021 Fred Gleason +// (C) Copyright 2014-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -58,7 +58,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("rdmarkerset","rdmarkerset",RDMARKERSET_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rdmarkerset: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/utils/rdmetadata/rdmetadata.cpp b/utils/rdmetadata/rdmetadata.cpp index 8ee80a8f..b11f00fb 100644 --- a/utils/rdmetadata/rdmetadata.cpp +++ b/utils/rdmetadata/rdmetadata.cpp @@ -3,7 +3,7 @@ // Command-line tool for setting Rivendell Cart Metadata // // Patrick Linstruth -// (C) Copyright 2019-2021 Fred Gleason +// (C) Copyright 2019-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -50,7 +50,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("rdmetadata","rdmetadata",RDMETADATA_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rdmetadata: %s\n",err_msg.toUtf8().constData()); exit(1); } diff --git a/utils/rdrender/rdrender.cpp b/utils/rdrender/rdrender.cpp index b9720068..8c54f2a2 100644 --- a/utils/rdrender/rdrender.cpp +++ b/utils/rdrender/rdrender.cpp @@ -68,7 +68,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("rdrender","rdrender",RDRENDER_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { fprintf(stderr,"rdrender: %s\n",(const char *)err_msg.toUtf8()); exit(1); } diff --git a/utils/rdsinglestart/Makefile.am b/utils/rdsinglestart/Makefile.am new file mode 100644 index 00000000..4fb11411 --- /dev/null +++ b/utils/rdsinglestart/Makefile.am @@ -0,0 +1,48 @@ +## Makefile.am +## +## (C) Copyright 2022 Fred Gleason +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License version 2 as +## published by the Free Software Foundation. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public +## License along with this program; if not, write to the Free Software +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +## +## Use automake to process this into a Makefile.in + +AM_CPPFLAGS = -Wall -DPREFIX=\"$(prefix)\" -Wno-strict-aliasing -std=c++11 -fPIC -I$(top_srcdir)/lib @QT5_CFLAGS@ @MUSICBRAINZ_CFLAGS@ @IMAGEMAGICK_CFLAGS@ +LIBS = -L$(top_srcdir)/lib +MOC = @QT_MOC@ + +# The dependency for qt's Meta Object Compiler (moc) +moc_%.cpp: %.h + $(MOC) $< -o $@ + +bin_PROGRAMS = rdsinglestart + +dist_rdsinglestart_SOURCES = rdsinglestart.cpp rdsinglestart.h + +rdsinglestart_LDADD = @LIB_RDLIBS@ @LIBVORBIS@ @QT5_LIBS@ @MUSICBRAINZ_LIBS@ @IMAGEMAGICK_LIBS@ + +CLEANFILES = *~\ + *.exe\ + *.idb\ + *ilk\ + *.obj\ + *.pdb\ + *.qm\ + moc_* + +MAINTAINERCLEANFILES = *~\ + *.tar.gz\ + aclocal.m4\ + configure\ + Makefile.in\ + moc_* diff --git a/utils/rdsinglestart/rdsinglestart.cpp b/utils/rdsinglestart/rdsinglestart.cpp new file mode 100644 index 00000000..62f1070a --- /dev/null +++ b/utils/rdsinglestart/rdsinglestart.cpp @@ -0,0 +1,149 @@ +// rdsinglestart.cpp +// +// Start a program so as to allow only a single instance. +// +// (C) Copyright 2022 Fred Gleason +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2 as +// published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public +// License along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// + +#include +#include + +#include +#include + +#include "rdsinglestart.h" + +MainObject::MainObject(QObject *parent) + :QObject(parent) +{ + QStringList args; + QProcess *proc=NULL; + + // + // Read Command Options + // + RDCmdSwitch *cmd=new RDCmdSwitch("rdsinglestart",RDSINGLESTART_USAGE); + if(cmd->keys()<1) { + perror("missing argument"); + exit(1); + } + for(unsigned i=0;i<(cmd->keys()-1);i++) { + } + QStringList f0=cmd->key(cmd->keys()-1).split("/",QString::SkipEmptyParts); + QString program=f0.last().trimmed(); + + // + // If we're already running, then just raise the window. + // + args.clear(); + args.push_back("-l"); + proc=new QProcess(this); + proc->start("wmctrl",args); + proc->waitForFinished(); + if(proc->exitStatus()!=QProcess::NormalExit) { + perror("wmctrl(1) process crashed"); + exit(1); + } + if(proc->exitCode()!=0) { + QString errs=QString::fromUtf8(proc->readAllStandardError()); + if(errs.isEmpty()) { + fprintf(stderr,"rdsinglestart: wmctrl(1) not found\n"); + } + else { + fprintf(stderr,"rdsinglestart: wmctrl(1) process returned error [%s]\n", + errs.toUtf8().constData()); + } + exit(1); + } + bool found=false; + f0=QString::fromUtf8(proc->readAllStandardOutput()). + split("\n",QString::SkipEmptyParts); + for(int i=0;i=4) { + if(f1.at(3).trimmed().toLower()==program) { + Raise(f1.at(0)); + found=true; + } + } + } + delete proc; + if(found) { + exit(0); + } + + // + // Otherwise, start a new process + // + Start(cmd); + + exit(0); +} + + +void MainObject::Raise(const QString win_id) +{ + QStringList args; + QProcess *proc=NULL; + + args.push_back("-i"); + args.push_back("-R"); + args.push_back(win_id); + proc=new QProcess(this); + proc->start("wmctrl",args); + proc->waitForFinished(); + if(proc->exitStatus()!=QProcess::NormalExit) { + perror("wmctrl(1) process crashed"); + exit(1); + } + if(proc->exitCode()!=0) { + QString errs=QString::fromUtf8(proc->readAllStandardError()); + if(errs.isEmpty()) { + fprintf(stderr,"rdsinglestart: wmctrl(1) not found\n"); + } + else { + fprintf(stderr,"rdsinglestart: wmctrl(1) process returned error [%s]\n", + errs.toUtf8().constData()); + } + exit(1); + } + delete proc; +} + + +void MainObject::Start(RDCmdSwitch *cmd) +{ + char *args[cmd->keys()+1]; + memset(args,0,sizeof(char *)*(cmd->keys()+1)); + + for(unsigned i=0;ikeys();i++) { + args[i]=(char *)malloc(cmd->key(i).toUtf8().size()+1); + strcpy(args[i],cmd->key(i).toUtf8().constData()); + } + if(fork()==0) { + execvp(args[0],args); + perror("rdsinglestart"); + } + exit(0); +} + + +int main(int argc,char *argv[]) +{ + QApplication a(argc,argv,false); + new MainObject(); + return a.exec(); +} diff --git a/utils/rdsinglestart/rdsinglestart.h b/utils/rdsinglestart/rdsinglestart.h new file mode 100644 index 00000000..e75301df --- /dev/null +++ b/utils/rdsinglestart/rdsinglestart.h @@ -0,0 +1,41 @@ +// rdsinglestart.h +// +// Start a program so as to allow only a single instance. +// +// (C) Copyright 2022 Fred Gleason +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2 as +// published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public +// License along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// + +#ifndef RDSINGLESTART_H +#define RDSINGLESTART_H + +#include + +#include + +#define RDSINGLESTART_USAGE "\n" + +class MainObject : public QObject +{ + public: + MainObject(QObject *parent=0); + + private: + void Raise(const QString win_id); + void Start(RDCmdSwitch *cmd); +}; + + +#endif // RDSINGLESTART_H diff --git a/web/webget/webget.cpp b/web/webget/webget.cpp index ea35ec12..1445d811 100644 --- a/web/webget/webget.cpp +++ b/web/webget/webget.cpp @@ -2,7 +2,7 @@ // // Rivendell upload/download utility // -// (C) Copyright 2018-2021 Fred Gleason +// (C) Copyright 2018-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -51,7 +51,7 @@ MainObject::MainObject(QObject *parent) // Open the Database // rda=static_cast(new RDCoreApplication("webget.cgi","webget.cgi",WEBGET_CGI_USAGE,this)); - if(!rda->open(&err_msg)) { + if(!rda->open(&err_msg,NULL,true)) { TextExit(err_msg,500,LINE_NUMBER); }