From d84c99122f16c8af085f43b11fb6b0a4b306b1e2 Mon Sep 17 00:00:00 2001 From: Martin Thompson Date: Mon, 22 Jun 2009 21:44:35 +0100 Subject: [PATCH] Displayed video+audio+slider Tweaked some unicode strings --- openlp/core/test/test_render.py | 6 +- openlp/plugins/media/video_render.py | 70 +++++++++++++++++++++ openlp/plugins/songs/test/test_song_text.py | 24 +++---- 3 files changed, 85 insertions(+), 15 deletions(-) create mode 100644 openlp/plugins/media/video_render.py diff --git a/openlp/core/test/test_render.py b/openlp/core/test/test_render.py index a2d7249d6..fd94188c5 100644 --- a/openlp/core/test/test_render.py +++ b/openlp/core/test/test_render.py @@ -50,10 +50,10 @@ class TestRender_base: self.app=None def write_to_file(self, pixmap, name): im=pixmap.toImage() - testpathname=os.path.join(u'test_results", name+".bmp') + testpathname=os.path.join(u'test_results', name+'.bmp') if os.path.exists(testpathname): os.unlink(testpathname) - im.save(testpathname, "bmp') + im.save(testpathname, 'bmp') return im # xxx quitting the app still leaves it hanging aroudn so we die # when trying to start another one. Not quitting doesn't help @@ -218,4 +218,4 @@ if __name__=="__main__": t.setup_method(None) t.test_easy() t.test_splits() - t.teardown_method(None) \ No newline at end of file + t.teardown_method(None) diff --git a/openlp/plugins/media/video_render.py b/openlp/plugins/media/video_render.py new file mode 100644 index 000000000..fa3807d5d --- /dev/null +++ b/openlp/plugins/media/video_render.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 +""" +OpenLP - Open Source Lyrics Projection +Copyright (c) 2008 Raoul Snyman +Portions copyright (c) 2008 Martin Thompson, Tim Bentley, + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; version 2 of the License. + +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., 59 Temple +Place, Suite 330, Boston, MA 02111-1307 USA +""" +import os +from PyQt4 import QtCore, QtGui + +# xxx this needs a try, except once we've decided what to do if it fails +from PyQt4.phonon import Phonon + +# from openlp.core.lib import Plugin, MediaManagerItem, SettingsTab +# from openlp.plugins.media.lib import MediaTab,MediaMediaItem + +"""Renders a video to some surface or other """ + +class w(QtGui.QMainWindow): + def __init__(self, parent=None): + super(QtGui.QMainWindow, self).__init__(parent) + self.resize(640,480) + self.setWindowTitle(u'simple media player') + self.show() + +if __name__==u'__main__': + app = QtGui.QApplication([]) +# widget = QtGui.QWidget() +# widget.resize(320, 240) +# widget.setWindowTitle(u'simple') +# widget.show() +# QCore.QCoreApplication.setApplicationName(u'OpenLP') + mainwindow=w() + widget=QtGui.QWidget(mainwindow) + mainwindow.setCentralWidget(widget) + widget.setLayout(QtGui.QVBoxLayout(widget)) +# videofile=u'r-128.rm' + videofile=u'/extra_space/Download/coa360download56Kbps240x160.mpg' + source=Phonon.MediaSource(videofile) + + media=Phonon.MediaObject(widget) + media.setCurrentSource(source) + + video=Phonon.VideoWidget(widget) + audio=Phonon.AudioOutput(Phonon.MusicCategory) +# controller=Phonon.MediaController(media) + Phonon.createPath(media, video); + Phonon.createPath(media, audio); +# player=Phonon.VideoPlayer(Phonon.VideoCategory, widget) + slider=Phonon.SeekSlider(media, mainwindow) + widget.layout().addWidget(slider) + widget.layout().addWidget(video) + slider.show() + + video.show() + media.play() + app.exec_() + diff --git a/openlp/plugins/songs/test/test_song_text.py b/openlp/plugins/songs/test/test_song_text.py index d52dc0a08..852626592 100644 --- a/openlp/plugins/songs/test/test_song_text.py +++ b/openlp/plugins/songs/test/test_song_text.py @@ -24,7 +24,7 @@ __ThisDir__ = os.path.dirname(__file__) if "" == __ThisDir__ : __ThisDir__ = os.path.abspath(u'.') -sys.path.append(os.path.abspath(u'%s/../../../.."%__ThisDir__)) +sys.path.append(os.path.abspath(u'%s/../../../..'%__ThisDir__)) from openlp.plugins.songs.lib.songxml import * @@ -35,26 +35,26 @@ class Test_Text(object): """OpenSong: parse CCLI example""" global __ThisDir__ s = Song() - s.from_ccli_text_file(u'%s/data_text/CCLI example.txt"%(__ThisDir__)) - assert(s.get_title() == "Song Title Here') - assert(s.get_author_list(True) == "Author, artist name') - assert(s.get_copyright() == "1996 Publisher Info') - assert(s.get_song_cclino() == "1234567') + s.from_ccli_text_file(u'%s/data_text/CCLI example.txt'%(__ThisDir__)) + assert(s.get_title() == 'Song Title Here') + assert(s.get_author_list(True) == 'Author, artist name') + assert(s.get_copyright() == '1996 Publisher Info') + assert(s.get_song_cclino() == '1234567') assert(s.get_number_of_slides() == 4) def test_file2(self): """OpenSong: parse PåEnFjern (danish)""" global __ThisDir__ s = Song() - s.from_ccli_text_file(u'%s/data_text/PåEnFjern.txt"%(__ThisDir__)) - assert(s.get_title() == "På en fjern ensom høj') - assert(s.get_author_list(True) == "Georg Bennard') - assert(s.get_copyright() == "') - assert(s.get_song_cclino() == "') + s.from_ccli_text_file(u'%s/data_text/PåEnFjern.txt'%(__ThisDir__)) + assert(s.get_title() == 'På en fjern ensom høj') + assert(s.get_author_list(True) == 'Georg Bennard') + assert(s.get_copyright() == '') + assert(s.get_song_cclino() == '') assert(s.get_number_of_slides() == 8) if '__main__' == __name__: # for local debugging r = Test_Text() r.test_file1() - r.test_file2() \ No newline at end of file + r.test_file2()