From 0674549168d16c2c127a092a53876bef46bcae73 Mon Sep 17 00:00:00 2001 From: Philip Ridout Date: Wed, 3 Oct 2012 20:54:00 +0100 Subject: [PATCH 1/8] fixed alert dialog's icon --- openlp/plugins/alerts/forms/alertdialog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py index df4209e9d..09c098cf4 100644 --- a/openlp/plugins/alerts/forms/alertdialog.py +++ b/openlp/plugins/alerts/forms/alertdialog.py @@ -35,7 +35,7 @@ class Ui_AlertDialog(object): def setupUi(self, alertDialog): alertDialog.setObjectName(u'alertDialog') alertDialog.resize(400, 300) - alertDialog.setWindowIcon(build_icon(u':/icon/openlp.org-icon-32.bmp')) + alertDialog.setWindowIcon(build_icon(u':/icon/openlp-logo-16x16.png')) self.alertDialogLayout = QtGui.QGridLayout(alertDialog) self.alertDialogLayout.setObjectName(u'alertDialogLayout') self.alertTextLayout = QtGui.QFormLayout() From 17217062f4c594553e591bd95f7763488e383a6b Mon Sep 17 00:00:00 2001 From: Philip Ridout Date: Thu, 4 Oct 2012 19:18:24 +0100 Subject: [PATCH 2/8] Removed openlp.org-icon-32.bmp from resources. Found annother instance of the icon being used and corrected it. --- openlp/plugins/custom/forms/editcustomdialog.py | 2 +- resources/images/openlp.org-icon-32.bmp | Bin 10854 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 resources/images/openlp.org-icon-32.bmp diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py index e29f4431a..fe20108e1 100644 --- a/openlp/plugins/custom/forms/editcustomdialog.py +++ b/openlp/plugins/custom/forms/editcustomdialog.py @@ -36,7 +36,7 @@ class Ui_CustomEditDialog(object): customEditDialog.setObjectName(u'customEditDialog') customEditDialog.resize(450, 350) customEditDialog.setWindowIcon( - build_icon(u':/icon/openlp.org-icon-32.bmp')) + build_icon(u':/icon/openlp-logo-16x16.png')) self.dialogLayout = QtGui.QVBoxLayout(customEditDialog) self.dialogLayout.setObjectName(u'dialogLayout') self.titleLayout = QtGui.QHBoxLayout() diff --git a/resources/images/openlp.org-icon-32.bmp b/resources/images/openlp.org-icon-32.bmp deleted file mode 100644 index be77f45b7508f8f40eeda40cfaa64a150b39c17b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10854 zcmdU#cTkk)zQ@m&`Td^98Fn1f{`gPK z$5(j$5TBcspa1ozWz6?K!=L}}|FECTH}KNi)|?pX{|2QpPnsMaxbe^b{RYKa>(m>~ zTvwRgRxEw3v=>WTN^=`z!q-ZBdH(pw(Cg;*VE>^t@4|=qJ-5h&&Hkp%{$|W8-YlH} z(`F_OfoAE>H^MJ$XR;&w!taX2$AY~6$I~ZI)IMGLdzohmSWCksMilu;gTD!pf?Af!KnHhEv@7=pMH8sV)$2Xrpe~$OT!NDmh zDPv<}J9g~A`&TeCkmfI=&V!t57;jnw&6|QO&@-*{6_A&9fs=RXySZfhSqcOKH8nMm zSXx@HTD5BR>ec4v=J;~UmMz)Y*?3b^Q-g1A+O%oIh7ERhcKD9!p7VqZlKFfvmJN8y z1ev$a3&X6-K6)P5XnteEdp>e`_xwa&-ksxb_3+`tp`oGf?(VnVdTV@q{K10L^ zQ&ZEYpMIK|nF+#u`}R3GIZaPbuUoh7Rm?JmIpAex_D5)CihYTEKC_a1VWliKeVs=R zW>Db+(ym;&QlU`bJ=D$0$^vsjLIS>AyLK%LfA;LzS254_yZ{dk&np)1+kz~V;aD_t zEQKz*^Sk9=UVw*IBenO;B}#iw)RnzC0oIh55VXB~`Eo9o8y6S1Y}vAji3u=o-MSU# zoI7{!#EBC{MMW!CtoVJ*s!d>kUuG7~GQUhaiyC!h4~q&~B>L*!oIoWrup1g0G&MCf zG&CSEzI1hU_3-d8GBN_cHuK@*qWyzXQ*{+h)sr@UbIqF<)fc1R!N9r5rGbJ2#MD{oX@fU z1AAtgw0hYAMgs~NVoejOOjnpqTc~ZOyZ)>OtOE;CDXkJULGN&a-jPIowSwS3kXh8= zZ`$B*)(~LIrV%$cdU;c(2?rlN`)HaGjzxWt1$>UaagfQOm>V>)Y;+FC=^{r2dQ9|> z2=vvEc!Q&VpwFFEh3&$K#pw`o7lqd$!8SIExaflO=72+%jMO>s|E|M_3x@ONM+%+fM4UxCiFTV4)<_VdF zV9n|}Uxuzw8z=!8knS+s?r@r(aJ!B$`%nY*8(;q!(b@19nvHMkZv3n6#<%spS*EvX znf|6_2Alte7;af^wDldt_}dj>#-}XzuD-ebUDF-!neAL@w(}q6-~H19+5NuNp8rFv z_pY|thkRgr;6udjz(@86KWfSss$^!2rFfJuloGxK3C^AfyI!t+Z-jjx*P$!IA=FSE zgi6S7=0mLp;^L@H+8Db77`RW=b1stD@eB*?JjZ(Dv~h2KbIW zJg0EOlMsM$V7bAT<%V0{0WIn^*|x$2-EMyuj~>A0yYTeiXP*8lp4nLkwY6-wXmzew zm!oSL)Xx~s^+5GL`4!@G`fDGJ4J}1tRm>trR9YznP&&Z2%5wl@Ki_eH?=%qUG#KTK z$fI5QqMW(Lr$MNMq^;6QO?LotC95dVtm*^9%f;>QTQ-J1X&V{W=@WpK*m$tVTt6*-+6EXEtNLE_b z0m>PQ#JP{ey5AOf492u0QCf_HU z9_uR4QOV3M1XkVo^+E$=uHM^Vj&mQ4_mm4f_@-yDz7V>*=z_&I_<$}10As$e3XU?X z;MiyGKhPzBZsYB>1I}*&FrI$!#cw$mz74y)BjO6}7Oh6!*aupH;bDQ%k))g7BPnLb z(=61xD{@sb(-EV^(h);`D>hbH?5MyKsAGxV$V8IQ?ZjJA=9*|#SuD2JykemN_A2HJ zn~Je?BSZ~4zct1Adf1iS7%L^D&b~N5L!(zR!cQMo?`Zc(CTD{twyG;hSc%A6wEFc^V}}=RjXvqU{SHeSPdX8 z^)`-jDp3=?$CGYNCi@~&ss4A8{bDT7Lj%O|@EUr4(H%=yfv5U+T0CT&49|sDo2vb6Vqco|EKCr1-bwIM%8=|ck?eCf#qVBPz*L(517XlaT0orjMW7<| zoQ1SlwkN3!SO`G%*W5H~EHwf1g(Z;bZ4__vJ!ny>$oe!)0B5%Ig5O zX3D_44cOG)YrC-)un@%FMhWb2nIF%vIW4k2g?e+GFUnjm6?WAD*54fKm2-L@!!H+V7rzK(cGlLWC zE`yVz;vhTqHBbZ3ZN@Rl&K{cQw?(b%`Qn~kR|gq3MVL2+o3%yRbj8|t$2klnyA3A04X1gHio9<(moM&_G7CJ|DWg8nDZ7Qx zZd3iHQvCpYUl{mM#Ca?Zd7K&YlO+6sID|5*ulG2<9_q5ofv((hTX1sGDZ8=@%NA3H z%>ZEdkZyS*C%`<@P7~c?xQe{47J6PShp|D1HNnQsT+5~ii;ig9Zh>P@ypufD1Gz2q zzLViI+ETHYxvL_-JC)O&8r+*2(wi32n;z1i9*PVI!v;j*gQ9SG23MZR9TM|KviQht zNz_mlKRd)xV0#HkaJZc4pq=D+6{`$McheEN>54q`#omU9)aPc7ziCc@X&%R_OyFA( zVp9@kU&?i;jC85wyVS{=Tq#plI^t8owS86S2J9%Nj-J5Jauw?4Dm zihEWaKhascn7N}!jFpRE*09HzS)<-gXN7^2MSUWRe3l=rD2{tk6idnyW{Tn<0K7#o zXc)H`y#qKJ;_2z2o{poz=5&tp1<+#OmfX6IWeaJmqTOnlLBo{EQ#=Nf-N!Qh?n(pi z!;ZA=nQrGk~Au zMWSBHTpUNr5-GF09`+c5dU0F8RUy&jD6rEkPB2HX1_q6-7Y9U{pKfi4Np*~SeS|p% ztw-QEoaTus8_)8e$_{!U3;Crq64+0x1pt20kWAV$Xu2ed9_eJS3g*tDEUX2(88SGi z7qmY~!;xQdxRh2F`MfaZd10)gSU}1X0Zgh>XUY;YJPi1df!PeW*Z>%`xYFRZAfa3L z0zD=?uiz}J;TQq9m2X`i@7*44H<09tB{nGuoXGNjR1p4CF%KHNs7rcYn?PF9Nr#wp zW|09I&2XV&q-e6gX>re;#aT*kvqFLTvozw@Tt4zNKk7wcENDq-0(>A9Nu(x?RHu=K zjG3A=@h#&x!^3d~hm%czpw}C#lUWX$S@vgTZkON#&Il~A$^Zi#4N$i|%BDZjr6t9` zKiPd;>^GIe0qT!M+^1Cn$e?IUp`4)Yr<`P@h)h(_Ow}mv*G>+!yn^{hFiU8|Gr2tE zX*D*W|v1h??4 zaGdoeIJYGG_a(t$-@DSF=_2mq!U!sGZGr+a02ng#NsELu;~~msnj|=g(=1OQs25iq=4gY! zS1WK9bByXjZ^8#y(Hrk9PjSb@LExUu&`Bxh=Mw&t%2-8XDy_FuOo5^9ol-Jdf?~~ z*k~XaHvpq#EQeBGo!Vey+;DIfV>xui(w#Oc@_`Qz@i|dD>0$qF3>vZ*sU}F>_C;6sYVfqo`1~GKEwolNzR5TCbF}W|NLw z(pyM+3W>aIrl$a>aE{AGx*xo+72mp!{eW(K0@S7Mih#X$>A>5%=yub60wRB z0i8GiSAaQbX`uz^#s zCH(K@20xI6&Xh$Bfw?qV(UeL{#)`ni!3Vk@swwc}Ch}_sdDcU*$sof#tWXRu#SB#C z#DNwiW89F&Op1zh<&my@(pyA^%26`8Q!_JIRvd0m?`B?C*~?^o=uI@t2<(KLB!F?i zu^SlY#Y}lL>>Vu%LWY>!Ap{vyD8?p-yBGJ| zTb50IVC%&yV>U1qxLHC4M&JXi7$_wpRb-@+Ow`W|SC(=eng0RZsNopn{(zfgXRLik zj2(0D^@PJvg4x4#;+|Crpu}i#!gOOQbr>rGN}%CKjns-?+Nlq;UMMj_$ZgOvnNTRk zmt@8Phg79dhijRghP4KVJ7qL|#iYN4$ji|%8LcLF8)rtU%lJ7anlp!qb;?rz&l_OUfP=)Q2CNn4#-oXi+bK;R8#1 zmk=6-Vsc4l_JFGsQHOzzg@!=mz9O383W|-A?>3=i@~C5Gq5;fxAvck>NE=|&hEwU# z!C~gw6AFi6@{77e(ws)`X}#HZD$}MrCDi1*RTLN||Jq51jxGuS!(=dzGuZ!zxuHNJ zFPF&6B=QQWyb{TlSLZU3$!qgy>I-NZ3gu13G%cn5O~uW5sZCk2NNaX{TTVh-ZenL% zGSX9+)?1X`TPz$b%NQulkXK~MtEBR3sk}C~uUgh$n=5b3mp2v2Tk!7`%iBuj?Pc-~ nq=HGMyrYUqwY-B(Rewk0;@_cqQ+~y6{_lOgLCkOB?_T~t4=o)@ From 717cd68998c87c40b283c61d1336db2389f74acc Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 6 Oct 2012 10:21:28 +0100 Subject: [PATCH 3/8] Fix media icons --- openlp/plugins/media/lib/mediaitem.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index fe66b90d8..7e8ec6ff2 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -42,7 +42,7 @@ from openlp.core.ui.media import get_media_players, set_media_players log = logging.getLogger(__name__) -CLAPPERBOARD = QtGui.QImage(u':/media/media_video.png') +CLAPPERBOARD = QtGui.QImage(u':/media/image_clapperboard.png') #TODO: Add an appropriate Icon for DVDs, CDs, ... DVD_ICON = QtGui.QImage(u':/media/media_video.png') @@ -225,7 +225,7 @@ class MediaMediaItem(MediaManagerItem): def initialise(self): self.listView.clear() - self.listView.setIconSize(QtCore.QSize(88, 50)) + self.listView.setIconSize(QtCore.QSize(44, 25)) self.loadList(SettingsManager.load_list(self.settingsSection, u'media')) self.populateDisplayTypes() @@ -290,7 +290,7 @@ class MediaMediaItem(MediaManagerItem): key=lambda filename: os.path.split(unicode(filename))[1].lower()) for track in media: track_info = QtCore.QFileInfo(track) - if not track_info.isFile(): + if track_info.isFile(): filename = os.path.split(unicode(track))[1] item_name = QtGui.QListWidgetItem(filename) item_name.setIcon(build_icon(CLAPPERBOARD)) From 1aa51ad5c44c92e12c9934e28f30db1fa49eece0 Mon Sep 17 00:00:00 2001 From: Erik Lundin Date: Mon, 8 Oct 2012 02:47:10 +0200 Subject: [PATCH 4/8] Fixed bug #1038694 'Change in service order not reflected in stage view' Fixes: https://launchpad.net/bugs/1038694 --- openlp/plugins/remotes/html/stage.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/remotes/html/stage.js b/openlp/plugins/remotes/html/stage.js index 38bd0fe01..6c5f35e1e 100644 --- a/openlp/plugins/remotes/html/stage.js +++ b/openlp/plugins/remotes/html/stage.js @@ -139,8 +139,10 @@ window.OpenLP = { "/api/poll", function (data, status) { OpenLP.updateClock(data); - if (OpenLP.currentItem != data.results.item) { + if (OpenLP.currentItem != data.results.item || + OpenLP.currentService != data.results.service) { OpenLP.currentItem = data.results.item; + OpenLP.currentService = data.results.service; OpenLP.loadSlides(); } else if (OpenLP.currentSlide != data.results.slide) { From 4a5b845cd01b8b5cf7fef18ea4c15e7a8118eec7 Mon Sep 17 00:00:00 2001 From: Olivier Aubert Date: Mon, 8 Oct 2012 17:44:42 +0200 Subject: [PATCH 5/8] updated from master --- openlp/core/ui/media/vlc.py | 84 ++++++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 15 deletions(-) diff --git a/openlp/core/ui/media/vlc.py b/openlp/core/ui/media/vlc.py index db041f658..9948fcd81 100644 --- a/openlp/core/ui/media/vlc.py +++ b/openlp/core/ui/media/vlc.py @@ -48,7 +48,7 @@ import sys from inspect import getargspec __version__ = "N/A" -build_date = "Fri Sep 28 22:48:50 2012" +build_date = "Fri Oct 5 21:35:59 2012" if sys.version_info[0] > 2: str = str @@ -680,6 +680,19 @@ class LogCb(ctypes.c_void_p): \note Log message handlers must be thread-safe. """ pass +class VideoLockCb(ctypes.c_void_p): + """Callback prototype to allocate and lock a picture buffer. +Whenever a new video frame needs to be decoded, the lock callback is +invoked. Depending on the video chroma, one or three pixel planes of +adequate dimensions must be returned via the second parameter. Those +planes must be aligned on 32-bytes boundaries. +\param opaque private pointer as passed to L{libvlc_video_set_callbacks}() [IN] +\param planes start address of the pixel planes (LibVLC allocates the array + of void pointers, this callback must initialize the array) [OUT] +\return a private pointer for the display and unlock callbacks to identify + the picture buffers + """ + pass class VideoUnlockCb(ctypes.c_void_p): """Callback prototype to unlock a picture buffer. When the video frame decoding is complete, the unlock callback is invoked. @@ -687,7 +700,7 @@ This callback might not be needed at all. It is only an indication that the application can now read the pixel values if it needs to. \warning A picture buffer is unlocked after the picture is decoded, but before the picture is displayed. -\param opaque private pointer as passed to libvlc_video_set_callbacks() [IN] +\param opaque private pointer as passed to L{libvlc_video_set_callbacks}() [IN] \param picture private pointer returned from the @ref libvlc_video_lock_cb callback [IN] \param planes pixel planes as defined by the @ref libvlc_video_lock_cb @@ -698,7 +711,7 @@ class VideoDisplayCb(ctypes.c_void_p): """Callback prototype to display a picture. When the video frame needs to be shown, as determined by the media playback clock, the display callback is invoked. -\param opaque private pointer as passed to libvlc_video_set_callbacks() [IN] +\param opaque private pointer as passed to L{libvlc_video_set_callbacks}() [IN] \param picture private pointer returned from the @ref libvlc_video_lock_cb callback [IN] """ @@ -710,7 +723,7 @@ and the chain of video filters (if any). It can opt to change any parameter as it needs. In that case, LibVLC will attempt to convert the video format (rescaling and chroma conversion) but these operations can be CPU intensive. \param opaque pointer to the private pointer passed to - libvlc_video_set_callbacks() [IN/OUT] + L{libvlc_video_set_callbacks}() [IN/OUT] \param chroma pointer to the 4 bytes video format identifier [IN/OUT] \param width pointer to the pixel width [IN/OUT] \param height pointer to the pixel height [IN/OUT] @@ -730,7 +743,7 @@ in the video decoders, video filters and/or video converters. pass class VideoCleanupCb(ctypes.c_void_p): """Callback prototype to configure picture buffers format. -\param opaque private pointer as passed to libvlc_video_set_callbacks() +\param opaque private pointer as passed to L{libvlc_video_set_callbacks}() (and possibly modified by @ref libvlc_video_format_cb) [IN] """ pass @@ -806,6 +819,18 @@ class CallbackDecorators(object): \param args variable argument list for the format \note Log message handlers must be thread-safe. ''' + VideoLockCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ListPOINTER(ctypes.c_void_p)) + VideoLockCb.__doc__ = '''Callback prototype to allocate and lock a picture buffer. +Whenever a new video frame needs to be decoded, the lock callback is +invoked. Depending on the video chroma, one or three pixel planes of +adequate dimensions must be returned via the second parameter. Those +planes must be aligned on 32-bytes boundaries. +\param opaque private pointer as passed to L{libvlc_video_set_callbacks}() [IN] +\param planes start address of the pixel planes (LibVLC allocates the array + of void pointers, this callback must initialize the array) [OUT] +\return a private pointer for the display and unlock callbacks to identify + the picture buffers + ''' VideoUnlockCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ListPOINTER(ctypes.c_void_p)) VideoUnlockCb.__doc__ = '''Callback prototype to unlock a picture buffer. When the video frame decoding is complete, the unlock callback is invoked. @@ -813,7 +838,7 @@ This callback might not be needed at all. It is only an indication that the application can now read the pixel values if it needs to. \warning A picture buffer is unlocked after the picture is decoded, but before the picture is displayed. -\param opaque private pointer as passed to libvlc_video_set_callbacks() [IN] +\param opaque private pointer as passed to L{libvlc_video_set_callbacks}() [IN] \param picture private pointer returned from the @ref libvlc_video_lock_cb callback [IN] \param planes pixel planes as defined by the @ref libvlc_video_lock_cb @@ -823,7 +848,7 @@ but before the picture is displayed. VideoDisplayCb.__doc__ = '''Callback prototype to display a picture. When the video frame needs to be shown, as determined by the media playback clock, the display callback is invoked. -\param opaque private pointer as passed to libvlc_video_set_callbacks() [IN] +\param opaque private pointer as passed to L{libvlc_video_set_callbacks}() [IN] \param picture private pointer returned from the @ref libvlc_video_lock_cb callback [IN] ''' @@ -834,7 +859,7 @@ and the chain of video filters (if any). It can opt to change any parameter as it needs. In that case, LibVLC will attempt to convert the video format (rescaling and chroma conversion) but these operations can be CPU intensive. \param opaque pointer to the private pointer passed to - libvlc_video_set_callbacks() [IN/OUT] + L{libvlc_video_set_callbacks}() [IN/OUT] \param chroma pointer to the 4 bytes video format identifier [IN/OUT] \param width pointer to the pixel width [IN/OUT] \param height pointer to the pixel height [IN/OUT] @@ -853,7 +878,7 @@ in the video decoders, video filters and/or video converters. ''' VideoCleanupCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p) VideoCleanupCb.__doc__ = '''Callback prototype to configure picture buffers format. -\param opaque private pointer as passed to libvlc_video_set_callbacks() +\param opaque private pointer as passed to L{libvlc_video_set_callbacks}() (and possibly modified by @ref libvlc_video_format_cb) [IN] ''' AudioPlayCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint, ctypes.c_int64) @@ -2483,9 +2508,22 @@ class MediaPlayer(_Ctype): ''' return libvlc_media_player_stop(self) + def video_set_callbacks(self, lock, unlock, display, opaque): + '''Set callbacks and private data to render decoded video to a custom area + in memory. + Use L{video_set_format}() or L{video_set_format_callbacks}() + to configure the decoded format. + @param lock: callback to lock video memory (must not be NULL). + @param unlock: callback to unlock video memory (or NULL if not needed). + @param display: callback to display video (or NULL if not needed). + @param opaque: private pointer for the three callbacks (as first parameter). + @version: LibVLC 1.1.1 or later. + ''' + return libvlc_video_set_callbacks(self, lock, unlock, display, opaque) + def video_set_format(self, chroma, width, height, pitch): '''Set decoded video chroma and dimensions. - This only works in combination with libvlc_video_set_callbacks(), + This only works in combination with L{video_set_callbacks}(), and is mutually exclusive with L{video_set_format_callbacks}(). @param chroma: a four-characters string identifying the chroma (e.g. "RV32" or "YUYV"). @param width: pixel width. @@ -2498,7 +2536,7 @@ class MediaPlayer(_Ctype): def video_set_format_callbacks(self, setup, cleanup): '''Set decoded video chroma and dimensions. This only works in combination with - libvlc_video_set_callbacks(). + L{video_set_callbacks}(). @param setup: callback to select the video format (cannot be NULL). @param cleanup: callback to release any allocated resources (or NULL). @version: LibVLC 2.0.0 or later. @@ -4382,9 +4420,26 @@ def libvlc_media_player_stop(p_mi): None, MediaPlayer) return f(p_mi) +def libvlc_video_set_callbacks(mp, lock, unlock, display, opaque): + '''Set callbacks and private data to render decoded video to a custom area + in memory. + Use L{libvlc_video_set_format}() or L{libvlc_video_set_format_callbacks}() + to configure the decoded format. + @param mp: the media player. + @param lock: callback to lock video memory (must not be NULL). + @param unlock: callback to unlock video memory (or NULL if not needed). + @param display: callback to display video (or NULL if not needed). + @param opaque: private pointer for the three callbacks (as first parameter). + @version: LibVLC 1.1.1 or later. + ''' + f = _Cfunctions.get('libvlc_video_set_callbacks', None) or \ + _Cfunction('libvlc_video_set_callbacks', ((1,), (1,), (1,), (1,), (1,),), None, + None, MediaPlayer, VideoLockCb, VideoUnlockCb, VideoDisplayCb, ctypes.c_void_p) + return f(mp, lock, unlock, display, opaque) + def libvlc_video_set_format(mp, chroma, width, height, pitch): '''Set decoded video chroma and dimensions. - This only works in combination with libvlc_video_set_callbacks(), + This only works in combination with L{libvlc_video_set_callbacks}(), and is mutually exclusive with L{libvlc_video_set_format_callbacks}(). @param mp: the media player. @param chroma: a four-characters string identifying the chroma (e.g. "RV32" or "YUYV"). @@ -4401,7 +4456,7 @@ def libvlc_video_set_format(mp, chroma, width, height, pitch): def libvlc_video_set_format_callbacks(mp, setup, cleanup): '''Set decoded video chroma and dimensions. This only works in combination with - libvlc_video_set_callbacks(). + L{libvlc_video_set_callbacks}(). @param mp: the media player. @param setup: callback to select the video format (cannot be NULL). @param cleanup: callback to release any allocated resources (or NULL). @@ -5878,10 +5933,9 @@ def libvlc_vlm_get_event_manager(p_instance): return f(p_instance) -# 3 function(s) blacklisted: +# 2 function(s) blacklisted: # libvlc_printerr # libvlc_set_exit_handler -# libvlc_video_set_callbacks # 17 function(s) not wrapped as methods: # libvlc_audio_output_list_release From 51b7f7f028e0a4384a91836c34625f6ecf686f56 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 9 Oct 2012 18:37:35 +0100 Subject: [PATCH 6/8] Image files --- resources/images/media_audio.png | Bin 0 -> 1763 bytes resources/images/media_video.png | Bin 0 -> 1838 bytes resources/images/openlp-2.qrc | 4 +++- resources/images/slidecontroller_multimedia.png | Bin 0 -> 13217 bytes 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 resources/images/media_audio.png create mode 100644 resources/images/media_video.png create mode 100644 resources/images/slidecontroller_multimedia.png diff --git a/resources/images/media_audio.png b/resources/images/media_audio.png new file mode 100644 index 0000000000000000000000000000000000000000..f05a5bf559842cda3f3c39aafab7aa045d25920d GIT binary patch literal 1763 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 media_time.png media_stop.png - image_clapperboard.png + media_audio.png + media_video.png + slidecontroller_multimedia.png messagebox_critical.png diff --git a/resources/images/slidecontroller_multimedia.png b/resources/images/slidecontroller_multimedia.png new file mode 100644 index 0000000000000000000000000000000000000000..55f63d880b96a51cebfd1b7f90a8aba6887584c2 GIT binary patch literal 13217 zcmV;SGhWPzP)|FqcRp2FI2&Ey07_nvpKe1EUuqfTt|`)N}tEabrv zY7w+zbEQrQ8KM!KMl^Ej;9(<9xc!F7UIqq!9>)$Hb_syjjtD>tqA#~p^(6$SYJ{BT z^=K#Y;{tvR{)^!wN8`GiZ^P4%KLny_sH!-4#SsB${#xFN5W)e+sfp67lMaMe_%C=} zmOz6LT>PUeQ2Om={QZOXv3K{b}ujz@C&a>k{}r3gAPP>Np;c;f9}1#@5Z7ap~n(^tk=j8@9F}3qXk1>p^jD z5P3cyXpCY1&M?AtF_@5o&2T$_31|j%`+biVlA~{yi}vo>Idtphjm7a;47$gI-hKLF*r?;P0jx?TAT~ki z*s&d^{q}ymKJ)bn0B%XNGfpic1|WpMqwCNUtQig+K)`StfF>aT%QjUe0=Ltid34&8 zkKcResQS7vAw&bw2oj~&>l6Re@9&+8Kg^hgPMte9UI>W05DXo1EUGIj@}@uaum?cA zMFoL`vnG(%#4)jpz^UY?WGH)@EysVDzSvaRsUc`flwJ?%kO1V;Nk7HXh5tZ29!~tEuj=Vu@%6tV-WWp@VzFzV~;R@GEjE!eSR`zJ5Yc>Yr)N#ks`7y;0T zCYjjKPsxKOtiTWOZ>FUiD~dEiP8QR%WTf85Npst^ZHxOJdIGmxdo@hcbQFSJJ9gla z2Y-Wmrab^%BiXb(Q8Es8>GsmnFITKszT)Yp|G4O@uf946pq}#q&XhAtl!O!G)ZAwQ zr0AIt?bWdr@`FKytD^XJ;{hDpRR^PrHp~Jl;6V{|Q25Xfk7L8X@_$~sp(02K8Lerl zNPTbum&OKZAG|vUkN$R=1l=YCqMY=TtMTJ2E_WO!TwA+;+qSK1zg)g-)k`nExN^yo zB^3aooD;yuw6SNj~(=#Oezju#8-M=u+7CXMw;KRefD53@I2)2Hw9biBlCi-DIw#W;C#?Vi1oI0Vh;=twm%61>WZOg`XreToB zo_`%Zd-YME+W>ETkVZ`txBlW6Si5FTrV#Kl5DcJO*RJ7$!o1CU_wJbY=9_PpQc6t# z`_oMNPFb3q_okh%k)=x>O!Ks0&au4Mc*|zC$NG_2MiP6c$cs(8~u$&Je1X@O&m6h$;`}LaDTe@^> zw|nI~pKn^Y=%ZQy6$(tD;id$2hdj?zAHnr0L6GDId<(MxxwK#B_9zSnQC$_mrf>G~ zY+y~w0+80I(TnuFP%91+B?wo&6WmYLTSd@5C(k zG{;QZ=o80a(ltNBt1mt$LAMLRoVRDAU;lnMZR}Wk48Z^JB4I_s8#k=qx@5`cTi<%~ zjcrRl|GZLyctDmr(m*anl869YkudL)<4VcDy9T$AOdw96p>$$ykqfVi6P+wZyyH%*y>9ox4%34!1l z&%anVY{aoEKA89Z_P@M6dv|?(y(y<=rUG0LNi*xa6tEc@9#w+k?$iIL1>l;Se%-w; zTyrfM22ROLVA9}b27)Z{Lm4O)NAUV}bnH}!xIr;@^XoXN+vzx`_XW^}d6#C}VhQ|t zIhgjl2XW(+pCKHsOSlX^Mkk}Bq_DiYs&dOG|M+m_qD3Evr%#t4D&I|IeXBgT2Z}1w z0FOXWcEJB<1z^FtgF%hp_=cQ%VL{Q5Id8l|FiiSeDFjwxjBy62$zYmP2tr<-552mz zLM(3L?u9?c@J=JpwVjOF=WN5=4H=l=$;&p!mAQxRe89Pch<0H(J;484wiBZZK zFyj<)!$iz9U=oVftwQJ>ZH2G5?!`@izZ&mc@FBdqaszeYaQ*sqYqu|6v~b5?|ME8X z=gX=AR9TZRc0Vr7x(x6n*STmo#ebPRO-#%C$(6H2igir-9yh1*mZ|sR<4>Ez=?M61hTfP9eYk6n2$4zK?d-s(td+GCr)M_AfQ96;Z z037^y)I=m|pe`CmI1ocl$cO$t+VXk~Pp^7hdve~R8?XQ?(gHN9Ou8g>%;dZs7A=p< z(s7!0L;xf`@zOhMhmAV1|9!uhA~IwVYW2 zck<^)1i*pjzxP(4bLY++l&Iha1zPm?kFbCDZd`TUb@1op9CCF{G>AgZ0*IdMZ$+Om zz+^D$O++IG>LM}J_;mQZ9xi-33W@^g+pP^E-x|Kkiy}W_&$GW_8)^XTOLGAtTW0~C zS^#f$q~X6rty{JEr*~l-Gw*OQUGhIv3sA6(Jb%bjBpyD5q|h zyd_S?b~*JwPM-!59hsKI(P0n`|=+3 z{Cs%#-e{ehkBZ7#tXT6cc9m8jUS&WS@it(>M0kJ%lMtZiYVhUj2hKXYFU8Akb6QIABI7V!8|uz+f_7H%-(Be9(Ow z3W|e>>@!-&i1|E#v(N}S;sOqz^rGUTHxmG-*l=f#d!M##yNwS7LKSjOzL037R6s5g zL6TviZ*VH&n4JpPs1$-aifFBYx^NsdwNX^oMsTpU4%M*;JRuGKkOvwe6Y&tPB7__f zfPVwgcV^F=Z5nYjmUWFB)9ZWv?(EQ^%N_u`G@rHuAkYbC0lveYzy7lO)gJ?e}YydfRBSLB!<#N8+)gdA}J|3V@OUcY|bf&Tpl z<1nd9*DgIidh^XcWB7>U(D}tSQuEcy9D$IAIU5E+%xgmP5oqA-=YJ_{b<>zzD(hLU#)->jXm>hTzAv0X=5^3s^o+^VSkUs3;uyi z&Oej<*DU~JEVVz~FypYZ;mTu98ihVb^}y9vPr-~CuY!9NmY#u=}n*k1ye(i+q=#A_37Az={=MCuHflmdj|k87U9_Ucmb&Gy*Ca}>-;lRRFG z8-FG!O9D@m!XX&46m2TKDEo4j9k-WmQ{dZ)2g2vcahQA$Ij$_lAJLZf9#DPe&3(HG zSO6si1|ftc{QKcheSHkATem_i7R5IkHUPb$cIkk#B?w%%euKCIBSwuxQE>^VL}7G? z6ENrO_i*E9*I`BZvQ%uq679UCIxltcQbf!M?pk^W=qtd=m8+y?3lJoDz&Yogk5F#D zSY~D!+Mc1Ms?DmU40!5^$FO3Bvj7Y^ZUowO?v6;zOw)G9ab(Fd&TZbf9OWur1|B<9nSQ~_G%J&xaXzE} z+i%Q5ZH@Ezty;I?{{Nh8@5g zeaZqj<%7>U_Z+DeN$_=#hqDe%Pp}3M4P!c-iYG=q3!mn5|E%5Oi1&)YN|#=KrQ^kC zuz_WZ5hQcd{0!Xa!b`3YF^20nkmI-r+??67P*)djq5@zTjpD9dyW)WdAHZp+jpg76 z9Qecq%WIMKU}< zen9~yoPD0FwzI5S%CKbd0&Lo_-Zc|?;boJuYr8sc5eDGTuL-~3R0SaJ%BJKYLypBg z_uh@sqmM@*7y_XFVIl>9NVXuyBmYy76Ur6YK5=mxZX(e2rF(JjsA@x&f!`vgczD^uK#7V=%Z9b8l7eYd^1E-q<$# zK-8fquYhYUC?^j&oD+V~i8KO~qXrseDwyaX#A;!RrPz>U8_`mW zN8*67WNrYW6hgox`xp4J`{M03?KTTc=tp@G+!>S?UgZOLDeDRZ)h=Cu0yDi`a_Th- z%!W1~)ejIX>rn3xni^Z3Q{y)|0gxYFGDRqqgOcJl9Q+)v{YCJ&fX{>lU}@XIobL

IT%HU|*pE%nGyu%eh_lvA3%} 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 T2B!7~00000NkvXXu0mjfAmt4? literal 0 HcmV?d00001 From f1e04b6d6253946b736c01fd074038e503411360 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 9 Oct 2012 19:00:33 +0100 Subject: [PATCH 7/8] Adjust output to use new images --- openlp/core/ui/slidecontroller.py | 6 +++++- openlp/plugins/media/lib/mediaitem.py | 11 ++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 2d108e72c..0f0f15a3d 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -855,7 +855,11 @@ class SlideController(Controller): else: label = QtGui.QLabel() label.setMargin(4) - label.setScaledContents(True) + if serviceItem.is_media(): + label.setAlignment(QtCore.Qt.AlignHCenter | + QtCore.Qt.AlignVCenter) + else: + label.setScaledContents(True) if self.serviceItem.is_command(): label.setPixmap(QtGui.QPixmap(frame[u'image'])) else: diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 7e8ec6ff2..bd987e79d 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -42,8 +42,9 @@ from openlp.core.ui.media import get_media_players, set_media_players log = logging.getLogger(__name__) -CLAPPERBOARD = QtGui.QImage(u':/media/image_clapperboard.png') -#TODO: Add an appropriate Icon for DVDs, CDs, ... +CLAPPERBOARD = u':/media/slidecontroller_multimedia.png' +VIDEO = QtGui.QImage(u':/media/media_video.png') +AUDIO = QtGui.QImage(u':/media/media_audio.png') DVD_ICON = QtGui.QImage(u':/media/media_video.png') class MediaMediaItem(MediaManagerItem): @@ -218,14 +219,14 @@ class MediaMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.RequiresMedia) # force a non-existent theme service_item.theme = -1 - frame = u':/media/image_clapperboard.png' + frame = CLAPPERBOARD (path, name) = os.path.split(filename) service_item.add_from_command(path, name, frame) return True def initialise(self): self.listView.clear() - self.listView.setIconSize(QtCore.QSize(44, 25)) + self.listView.setIconSize(QtCore.QSize(88, 50)) self.loadList(SettingsManager.load_list(self.settingsSection, u'media')) self.populateDisplayTypes() @@ -293,7 +294,7 @@ class MediaMediaItem(MediaManagerItem): if track_info.isFile(): filename = os.path.split(unicode(track))[1] item_name = QtGui.QListWidgetItem(filename) - item_name.setIcon(build_icon(CLAPPERBOARD)) + item_name.setIcon(build_icon(VIDEO)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(track)) else: filename = os.path.split(unicode(track))[1] From 57101afef29c84e98d936985119d2486b6da556f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 10 Oct 2012 17:33:44 +0200 Subject: [PATCH 8/8] fixed bug #1065106 'Change in mainwindow are not reflected in remote' Fixes: https://launchpad.net/bugs/1065106 --- openlp/plugins/remotes/html/openlp.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/remotes/html/openlp.js b/openlp/plugins/remotes/html/openlp.js index 26c13d2f1..87c82c5b4 100644 --- a/openlp/plugins/remotes/html/openlp.js +++ b/openlp/plugins/remotes/html/openlp.js @@ -55,7 +55,9 @@ window.OpenLP = { ); }, loadService: function (event) { - event.preventDefault(); + if (event) { + event.preventDefault(); + } $.getJSON( "/api/service/list", function (data, status) { @@ -150,6 +152,10 @@ window.OpenLP = { OpenLP.currentSlide = data.results.slide; OpenLP.currentItem = data.results.item; if ($("#service-manager").is(":visible")) { + if (OpenLP.currentService != data.results.service) { + OpenLP.currentService = data.results.service; + OpenLP.loadService(); + } $("#service-manager div[data-role=content] ul[data-role=listview] li").attr("data-theme", "c").removeClass("ui-btn-up-e").addClass("ui-btn-up-c"); $("#service-manager div[data-role=content] ul[data-role=listview] li a").each(function () { var item = $(this); @@ -307,7 +313,7 @@ window.OpenLP = { } ); }, - escapeString: function (string) { + escapeString: function (string) { return string.replace(/\\/g, "\\\\").replace(/"/g, "\\\"") } }