[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-multimedia
Subject: PATCH: Arts::VideoPlayObject + mpeglib adapted
From: Nikolas Zimmermann <wildfox () kde ! org>
Date: 2001-07-11 10:31:51
[Download RAW message or body]
Hi guys,
here is a patch, which adds support for Video Embedding,
ie. into Konqueror.
It's not stable, but this is a mpeglib issue!
This patch is definately _not_ for KDE 2.2
but a kind of RFC and technology preview.
Comments?
Bye
Bye
Niko
--
Nikolas Zimmermann
wildfox@kde.org
["mpeglib.diff" (text/x-diff)]
Index: lib/decoder/decoderPlugin.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/decoder/decoderPlugin.h,v
retrieving revision 1.3
diff -u -p -b -r1.3 decoderPlugin.h
--- lib/decoder/decoderPlugin.h 2000/11/23 18:43:20 1.3
+++ lib/decoder/decoderPlugin.h 2001/07/11 10:39:08
@@ -120,6 +120,9 @@ class DecoderPlugin {
int waitForStreamState(int state);
PluginInfo* getPluginInfo();
+ // Needed for Video Embedding
+ int x11WindowId() { return output->x11WindowId(); }
+
// never use this!
void* idleThread();
Index: lib/output/artsOutputStream.cpp
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/output/artsOutputStream.cpp,v
retrieving revision 1.9
diff -u -p -b -r1.9 artsOutputStream.cpp
--- lib/output/artsOutputStream.cpp 2001/06/10 13:43:49 1.9
+++ lib/output/artsOutputStream.cpp 2001/07/11 10:39:08
@@ -141,6 +141,9 @@ int ArtsOutputStream::openWindow(int wid
return back;
}
+int ArtsOutputStream::x11WindowId() {
+ return x11Window->x11WindowId();
+}
void ArtsOutputStream::closeWindow() {
threadQueue->waitForExclusiveAccess();
Index: lib/output/artsOutputStream.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/output/artsOutputStream.h,v
retrieving revision 1.4
diff -u -p -b -r1.4 artsOutputStream.h
--- lib/output/artsOutputStream.h 2000/12/05 15:28:59 1.4
+++ lib/output/artsOutputStream.h 2001/07/11 10:39:08
@@ -93,6 +93,7 @@ class ArtsOutputStream : public OutputSt
// Video part
int openWindow(int width, int height,const char *title);
+ int x11WindowId();
void closeWindow();
void flushWindow();
Index: lib/output/dspX11OutputStream.cpp
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/output/dspX11OutputStream.cpp,v
retrieving revision 1.9
diff -u -p -b -r1.9 dspX11OutputStream.cpp
--- lib/output/dspX11OutputStream.cpp 2001/06/05 18:55:39 1.9
+++ lib/output/dspX11OutputStream.cpp 2001/07/11 10:39:08
@@ -138,6 +138,10 @@ int DspX11OutputStream::openWindow(int w
return back;
}
+int DspX11OutputStream::x11WindowId() {
+ return x11Window->x11WindowId();
+}
+
void DspX11OutputStream::closeWindow() {
x11Window->closeWindow();
Index: lib/output/dspX11OutputStream.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/output/dspX11OutputStream.h,v
retrieving revision 1.4
diff -u -p -b -r1.4 dspX11OutputStream.h
--- lib/output/dspX11OutputStream.h 2001/05/01 16:12:51 1.4
+++ lib/output/dspX11OutputStream.h 2001/07/11 10:39:08
@@ -63,6 +63,7 @@ class DspX11OutputStream : public Output
// Video Output
int openWindow(int width, int height,const char *title);
+ int x11WindowId();
void closeWindow();
void flushWindow();
Index: lib/output/outputStream.cpp
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/output/outputStream.cpp,v
retrieving revision 1.7
diff -u -p -b -r1.7 outputStream.cpp
--- lib/output/outputStream.cpp 2001/06/10 13:43:49 1.7
+++ lib/output/outputStream.cpp 2001/07/11 10:39:08
@@ -130,6 +130,10 @@ int OutputStream::openWindow(int , int ,
return true;
}
+int OutputStream::x11WindowId() {
+ cout << "direct virtual call OutputStream::x11WindowId()" << endl;
+ return -1;
+}
void OutputStream::closeWindow() {
cerr << "direct virtual call OutputStream::closeWindow"<<endl;
Index: lib/output/outputStream.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/output/outputStream.h,v
retrieving revision 1.3
diff -u -p -b -r1.3 outputStream.h
--- lib/output/outputStream.h 2000/11/23 18:43:21 1.3
+++ lib/output/outputStream.h 2001/07/11 10:39:08
@@ -118,6 +118,7 @@ class OutputStream {
// Video Output
virtual int videoInit();
virtual int openWindow(int width, int height,const char *title);
+ virtual int x11WindowId();
virtual void closeWindow();
virtual void flushWindow();
Index: lib/output/windowOut.cpp
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/output/windowOut.cpp,v
retrieving revision 1.2
diff -u -p -b -r1.2 windowOut.cpp
--- lib/output/windowOut.cpp 2000/08/08 16:21:28 1.2
+++ lib/output/windowOut.cpp 2001/07/11 10:39:08
@@ -34,6 +34,9 @@ int WindowOut::openWindow(int width, int
return renderMachine->openWindow(width,height,title);
}
+int WindowOut::x11WindowId() {
+ return renderMachine->x11WindowId();
+}
void WindowOut::flushWindow() {
renderMachine->flushWindow();
Index: lib/output/windowOut.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/output/windowOut.h,v
retrieving revision 1.3
diff -u -p -b -r1.3 windowOut.h
--- lib/output/windowOut.h 2000/08/08 16:21:28 1.3
+++ lib/output/windowOut.h 2001/07/11 10:39:08
@@ -35,6 +35,7 @@ class WindowOut {
~WindowOut();
int openWindow(int width, int height,const char *title);
+ int x11WindowId();
void closeWindow();
void flushWindow();
Index: lib/util/render/renderMachine.cpp
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/util/render/renderMachine.cpp,v
retrieving revision 1.10
diff -u -p -b -r1.10 renderMachine.cpp
--- lib/util/render/renderMachine.cpp 2001/01/07 19:56:24 1.10
+++ lib/util/render/renderMachine.cpp 2001/07/11 10:39:09
@@ -58,13 +58,15 @@ void RenderMachine::waitRestTime() {
}
+int RenderMachine::x11WindowId()
+{
+ return surface->x11WindowId();
+}
-
int RenderMachine::openWindow(int width,
int height,const char *title) {
-
- if (surface->open(width,height,title)) {
+if (surface->open(width,height,title)) {
pictureArray=new PictureArray(width, height);
return switchToMode(initialMode);
Index: lib/util/render/renderMachine.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/util/render/renderMachine.h,v
retrieving revision 1.5
diff -u -p -b -r1.5 renderMachine.h
--- lib/util/render/renderMachine.h 2000/12/06 18:42:07 1.5
+++ lib/util/render/renderMachine.h 2001/07/11 10:39:09
@@ -70,6 +70,7 @@ class RenderMachine {
~RenderMachine();
int openWindow(int width, int height,const char *title);
+ int x11WindowId();
void closeWindow();
void flushWindow();
Index: lib/util/render/surface.cpp
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/util/render/surface.cpp,v
retrieving revision 1.4
diff -u -p -b -r1.4 surface.cpp
--- lib/util/render/surface.cpp 2000/12/06 18:42:07 1.4
+++ lib/util/render/surface.cpp 2001/07/11 10:39:09
@@ -65,6 +65,11 @@ int Surface::getImageMode() {
return 0;
}
+int Surface::x11WindowId() {
+ cout << "direct virtual call Surface::x11WindowId " << endl;
+ return -1;
+}
+
ImageBase *Surface::findImage(int)
{
cout << "direct virtual call: Surface::findImage "<<endl;
Index: lib/util/render/surface.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/util/render/surface.h,v
retrieving revision 1.3
diff -u -p -b -r1.3 surface.h
--- lib/util/render/surface.h 2000/12/06 18:42:07 1.3
+++ lib/util/render/surface.h 2001/07/11 10:39:09
@@ -37,6 +37,7 @@ class Surface {
virtual int getWidth();
virtual int getDepth();
virtual int getImageMode();
+ virtual int x11WindowId();
virtual ImageBase *findImage(int imageMode);
Index: lib/util/render/x11/x11Surface.cpp
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/util/render/x11/x11Surface.cpp,v
retrieving revision 1.17
diff -u -p -b -r1.17 x11Surface.cpp
--- lib/util/render/x11/x11Surface.cpp 2001/02/25 19:17:27 1.17
+++ lib/util/render/x11/x11Surface.cpp 2001/07/11 10:39:09
@@ -38,10 +38,11 @@ static int dummy(Display* , XErrorEvent*
#endif
X11Surface::X11Surface() {
-
xWindow=(XWindow *)malloc(sizeof(XWindow));
xWindow->lOpen=false;
xWindow->x = xWindow->y = 0;
+ xWindow->window = 0;
+ m_windowIdAvailable = false;
imageMode=_IMAGE_NONE;
@@ -91,6 +92,12 @@ int X11Surface::isOpen() {
return xWindow->lOpen;
}
+int X11Surface::x11WindowId() {
+ if(m_windowIdAvailable)
+ return xWindow->window;
+ else
+ return -1;
+}
int X11Surface::open(int width, int height,const char *title, bool border) {
@@ -147,6 +154,7 @@ int X11Surface::open(int width, int heig
(border) ? CWBackingStore : CWBackPixel|CWOverrideRedirect,
&attributes);
+ m_windowIdAvailable = true;
if(!xWindow->window) {
printf("\nX initialisation error:\n *** %s\n",ERR_XI_STR[ERR_XI_WINDOW]);
printf("check ipcs and delete resources with ipcrm\n");
Index: lib/util/render/x11/x11Surface.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/lib/util/render/x11/x11Surface.h,v
retrieving revision 1.4
diff -u -p -b -r1.4 x11Surface.h
--- lib/util/render/x11/x11Surface.h 2000/12/06 18:42:08 1.4
+++ lib/util/render/x11/x11Surface.h 2001/07/11 10:39:09
@@ -52,6 +52,7 @@ class X11Surface : public Surface {
int getWidth();
int getDepth();
int getImageMode();
+ int x11WindowId();
ImageBase *findImage(int mode);
@@ -73,5 +74,6 @@ class X11Surface : public Surface {
private:
int initX11();
+ bool m_windowIdAvailable;
};
#endif
["mpeglib_artsplug.diff" (text/x-diff)]
Index: decoderBaseObject.idl
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib_artsplug/decoderBaseObject.idl,v
retrieving revision 1.6
diff -u -p -b -r1.6 decoderBaseObject.idl
--- decoderBaseObject.idl 2001/06/13 19:38:56 1.6
+++ decoderBaseObject.idl 2001/07/11 10:38:49
@@ -29,7 +29,7 @@ interface WAVPlayObject : DecoderBaseObj
};
-interface MPGPlayObject : DecoderBaseObject
+interface MPGPlayObject : DecoderBaseObject, Arts::VideoPlayObject
{
out audio stream left,right;
};
Index: decoderBaseObject_impl.cpp
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib_artsplug/decoderBaseObject_impl.cpp,v
retrieving revision 1.22
diff -u -p -b -r1.22 decoderBaseObject_impl.cpp
--- decoderBaseObject_impl.cpp 2001/06/13 19:38:56 1.22
+++ decoderBaseObject_impl.cpp 2001/07/11 10:38:52
@@ -464,8 +464,6 @@ void DecoderBaseObject_impl::shudownPlug
setStreamState(_THREADSTATE_CLOSED);
}
-
-
void DecoderBaseObject_impl::setStreamState(int state) {
switch (state) {
Index: decoderBaseObject_impl.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib_artsplug/decoderBaseObject_impl.h,v
retrieving revision 1.10
diff -u -p -b -r1.10 decoderBaseObject_impl.h
--- decoderBaseObject_impl.h 2001/06/13 19:38:56 1.10
+++ decoderBaseObject_impl.h 2001/07/11 10:38:52
@@ -48,11 +48,10 @@ class DecoderBaseObject_impl :
virtual public Arts::StdSynthModule,
virtual public DecoderBaseObject_skel {
-
poState _state;
- DecoderPlugin* decoderPlugin;
InputStream* inputStream;
ArtsOutputStream* outputStream;
+
double flpos;
float startTime;
int instance;
@@ -96,6 +95,8 @@ public:
void calculateBlock(unsigned long samples,float* left,float* right);
void streamEnd();
+ DecoderPlugin* decoderPlugin;
+
private:
void shudownPlugins();
int getBufferSize();
Index: mpgPlayObject_impl.cpp
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib_artsplug/mpgPlayObject_impl.cpp,v
retrieving revision 1.2
diff -u -p -b -r1.2 mpgPlayObject_impl.cpp
--- mpgPlayObject_impl.cpp 2000/09/30 20:45:10 1.2
+++ mpgPlayObject_impl.cpp 2001/07/11 10:38:52
@@ -20,6 +20,7 @@
MPGPlayObject_impl::MPGPlayObject_impl() {
arts_debug("MPGPlayObject_impl");
+ m_fullscreen = false;
}
MPGPlayObject_impl::~MPGPlayObject_impl() {
@@ -35,6 +36,17 @@ void MPGPlayObject_impl::calculateBlock(
DecoderBaseObject_impl::calculateBlock(samples,left,right);
}
+long int MPGPlayObject_impl::x11WindowId() {
+ return decoderPlugin->x11WindowId();
+}
+
+bool MPGPlayObject_impl::fullscreen() {
+ return m_fullscreen;
+}
+
+void MPGPlayObject_impl::fullscreen(bool value) {
+ m_fullscreen = value;
+}
REGISTER_IMPLEMENTATION(MPGPlayObject_impl);
Index: mpgPlayObject_impl.h
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib_artsplug/mpgPlayObject_impl.h,v
retrieving revision 1.3
diff -u -p -b -r1.3 mpgPlayObject_impl.h
--- mpgPlayObject_impl.h 2001/05/01 11:07:15 1.3
+++ mpgPlayObject_impl.h 2001/07/11 10:38:52
@@ -33,9 +33,14 @@ public:
DecoderPlugin* createPlugin();
+ long int x11WindowId();
+ void fullscreen(bool value);
+ bool fullscreen();
-
void calculateBlock(unsigned long samples);
+
+private:
+ bool m_fullscreen;
};
["kaboodle.diff" (text/x-diff)]
? videoembed.cpp
? videoembed.h
Index: Makefile.am
===================================================================
RCS file: /home/kde/kdenonbeta/kaboodle/Makefile.am,v
retrieving revision 1.11
diff -u -p -b -r1.11 Makefile.am
--- Makefile.am 2001/07/11 03:24:22 1.11
+++ Makefile.am 2001/07/11 10:38:08
@@ -9,7 +9,8 @@ libkaboodlepart_la_SOURCES = conf.cpp \
engine.cpp \
kaboodle_factory.cpp \
kaboodle_part.cpp \
- player.cpp
+ player.cpp \
+ videoembed.cpp
libkaboodlepart_la_LDFLAGS = $(KDE_RPATH) $(KDE_PLUGIN) $(all_libraries)
libkaboodlepart_la_LIBADD = $(LIB_KFILE) $(LIB_KPARTS) -lqtmcop -lkmedia2_idl \
-lsoundserver_idl -lartskde
Index: engine.cpp
===================================================================
RCS file: /home/kde/kdenonbeta/kaboodle/engine.cpp,v
retrieving revision 1.15
diff -u -p -b -r1.15 engine.cpp
--- engine.cpp 2001/07/06 21:30:53 1.15
+++ engine.cpp 2001/07/11 10:38:10
@@ -33,6 +33,7 @@ extern "C"
#include <kmimetype.h>
#include <kstddirs.h>
#include <kurl.h>
+#include <qtimer.h>
#include <qfile.h>
#include <qdir.h>
@@ -79,6 +80,8 @@ Engine::Engine(QObject *parent)
KMessageBox::error(0, i18n("There was an error communicating to the aRts \
daemon."), i18n("Danger, Will Robinson!")); exit(0);
}
+
+ m_videoEmbeddable = false;
}
Engine::~Engine()
@@ -104,9 +107,26 @@ bool Engine::reload(void)
if(!initArts()) return false;
KPlayObjectFactory factory(d->server);
d->playobj = factory.createPlayObject(d->file, true);
+
+ // Embeddable Video Support
+ Arts::VideoPlayObject po = Arts::DynamicCast(d->playobj->object());
+ if(!po.isNull())
+ m_videoEmbeddable = true;
+ else
+ m_videoEmbeddable = false;
+
return !d->playobj->object().isNull();
}
+void Engine::getVideoId()
+{
+ Arts::VideoPlayObject po = Arts::DynamicCast(d->playobj->object());
+ if(po.x11WindowId() != -1)
+ emit x11WindowId(po.x11WindowId());
+ else
+ QTimer::singleShot(0, this, SLOT(getVideoId()));
+}
+
void Engine::play()
{
if(!d->playobj->object().isNull())
@@ -114,8 +134,19 @@ void Engine::play()
switch(d->playobj->state())
{
case Arts::posIdle:
+ {
reload();
- // fallthrough
+ Arts::VideoPlayObject po = Arts::DynamicCast(d->playobj->object());
+ d->playobj->play();
+ if(!po.isNull())
+ {
+ if(po.x11WindowId() != -1)
+ emit x11WindowId(po.x11WindowId());
+ else
+ QTimer::singleShot(0, this, SLOT(getVideoId()));
+ }
+ }
+ break;
case Arts::posPaused:
d->playobj->play();
break;
Index: engine.h
===================================================================
RCS file: /home/kde/kdenonbeta/kaboodle/engine.h,v
retrieving revision 1.3
diff -u -p -b -r1.3 engine.h
--- engine.h 2001/04/23 19:00:30 1.3
+++ engine.h 2001/07/11 10:38:10
@@ -85,10 +85,18 @@ public:
long position(); // NOT unsigned
unsigned long length();
+signals:
+ void x11WindowId(int);
+
+private slots:
+ void getVideoId();
+
private:
bool initArts();
bool reload(void);
+ bool m_videoEmbeddable;
+
class EnginePrivate;
EnginePrivate *d;
};
Index: kaboodle_part.cpp
===================================================================
RCS file: /home/kde/kdenonbeta/kaboodle/kaboodle_part.cpp,v
retrieving revision 1.18
diff -u -p -b -r1.18 kaboodle_part.cpp
--- kaboodle_part.cpp 2001/07/06 21:27:26 1.18
+++ kaboodle_part.cpp 2001/07/11 10:38:10
@@ -35,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE
#include <qtooltip.h>
#include <qwidget.h>
+#include "engine.h"
#include "kaboodle_part.h"
static QButton *createButton(const QIconSet &_iconset, const QString &_tip, QObject \
*_receiver, const char *_slot, QWidget *_parent) @@ -54,41 +55,47 @@ \
KaboodlePart::KaboodlePart(QWidget *pare , mPlayButton(0)
, mPauseButton(0)
, mStopButton(0)
+ , m_videoEmbed(0)
{
setInstance(KaboodleFactory::instance());
player = new Player(this);
- QWidget *box = new QWidget(parent);
- box->setFocusPolicy(QWidget::ClickFocus);
- box->setAcceptDrops(true);
- box->show();
+ m_hbox = new QHBox(parent);
+ m_hbox->setSpacing(KDialog::spacingHint());
+ m_hbox->setMargin(KDialog::marginHint());
+
+ m_box = new QWidget(m_hbox);
+ m_box->setFocusPolicy(QWidget::ClickFocus);
+ m_box->setAcceptDrops(true);
- KParts::Part::setWidget(box);
+ QHBoxLayout *layout = new QHBoxLayout(m_box);
+ layout->setSpacing(KDialog::spacingHint());
+ layout->setMargin(KDialog::marginHint());
+ layout->setAutoAdd(true);
+
+ KParts::Part::setWidget(m_hbox);
if(viaBrowser)
{
mExtension = new KaboodleBrowserExtension(this);
mExtension->setURLDropHandlingEnabled(true);
- }
- QHBoxLayout *layout = new QHBoxLayout(box);
- layout->setSpacing(KDialog::spacingHint());
- layout->setMargin(KDialog::marginHint());
- layout->setAutoAdd(true);
+ connect(player->engine(), SIGNAL(x11WindowId(int)), SLOT(embedVideo(int)));
+ }
if(showButtons)
{
- mPlayButton = createButton(BarIconSet("1rightarrow"), i18n("Play"), player, \
SLOT(play()), box);
- mPauseButton = createButton(BarIconSet("player_pause"), i18n("Pause"), player, \
SLOT(pause()), box);
- mStopButton = createButton(BarIconSet("player_stop"), i18n("Stop"), this, \
SLOT(stop()), box); + mPlayButton = createButton(BarIconSet("1rightarrow"), \
i18n("Play"), player, SLOT(play()), m_box); + mPauseButton = \
createButton(BarIconSet("player_pause"), i18n("Pause"), player, SLOT(pause()), \
m_box); + mStopButton = createButton(BarIconSet("player_stop"), i18n("Stop"), this, \
SLOT(stop()), m_box); }
- mSeeker = new L33tSlider(0, 1000, 10, 0, L33tSlider::Horizontal, box);
+ mSeeker = new L33tSlider(0, 1000, 10, 0, L33tSlider::Horizontal, m_box);
mSeeker->setTickmarks(QSlider::NoMarks);
mSeeker->show();
- mElapsed = new QLCDNumber(5, box);
+ mElapsed = new QLCDNumber(5, m_box);
mElapsed->setSegmentStyle(QLCDNumber::Flat);
mElapsed->setFrameStyle(QFrame::Panel);
mElapsed->setFrameShadow(QFrame::Sunken);
@@ -136,6 +143,13 @@ KaboodlePart::~KaboodlePart()
delete player;
}
+void KaboodlePart::embedVideo(int wid)
+{
+ m_videoEmbed = new VideoEmbed(m_hbox);
+ m_videoEmbed->embed(wid);
+ m_videoEmbed->show();
+}
+
void KaboodlePart::openFile(const KURL &url)
{
player->openFile(url);
@@ -247,6 +261,12 @@ void KaboodlePart::skipToWrapper(int sec
void KaboodlePart::stop()
{
player->stop();
+
+ if(m_videoEmbed != 0)
+ {
+ delete m_videoEmbed;
+ m_videoEmbed = 0;
+ }
}
void KaboodlePart::loop()
Index: kaboodle_part.h
===================================================================
RCS file: /home/kde/kdenonbeta/kaboodle/kaboodle_part.h,v
retrieving revision 1.10
diff -u -p -b -r1.10 kaboodle_part.h
--- kaboodle_part.h 2001/07/06 21:27:26 1.10
+++ kaboodle_part.h 2001/07/11 10:38:10
@@ -30,9 +30,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE
#include <kstdaction.h>
#include <qwidget.h>
#include <qhbox.h>
+#include <qlayout.h>
#include <qlcdnumber.h>
#include <qevent.h>
+#include "videoembed.h"
#include "kaboodle_factory.h"
#include "controls.h"
#include "player.h"
@@ -79,6 +81,8 @@ public slots:
void sliderMoved(int);
void skipToWrapper(int);
+ void embedVideo(int);
+
signals:
void skipTo(unsigned long);
@@ -99,6 +103,10 @@ private:
L33tSlider *mSeeker;
QLCDNumber *mElapsed;
+ QHBox *m_hbox;
+ QHBoxLayout *m_layout;
+ QWidget *m_box;
+ VideoEmbed *m_videoEmbed;
KAction *mPlay, *mPause, *mStop;
QButton *mPlayButton, *mPauseButton, *mStopButton;
KToggleAction *mLoop;
Index: player.h
===================================================================
RCS file: /home/kde/kdenonbeta/kaboodle/player.h,v
retrieving revision 1.8
diff -u -p -b -r1.8 player.h
--- player.h 2001/04/20 00:22:43 1.8
+++ player.h 2001/07/11 10:38:10
@@ -37,6 +37,7 @@ class Player : public QObject
{
Q_OBJECT
+friend class KaboodlePart;
public:
Player(QObject *parent = 0);
~Player();
@@ -159,6 +160,9 @@ signals:
private slots:
void tickerTimeout();
+
+protected:
+ Engine *engine() { return mEngine; }
private:
Engine *mEngine;
["arts.diff" (text/x-diff)]
Index: kmedia2.idl
===================================================================
RCS file: /home/kde/kdelibs/arts/soundserver/kmedia2.idl,v
retrieving revision 1.9
diff -u -p -b -r1.9 kmedia2.idl
--- kmedia2.idl 2001/06/12 21:00:29 1.9
+++ kmedia2.idl 2001/07/11 10:40:45
@@ -117,6 +117,14 @@ interface PlayObject : PlayObject_privat
void halt();
};
+interface VideoPlayObject {
+ attribute boolean fullscreen;
+ /**
+ * returns the X11 Window Id
+ */
+ long x11WindowId();
+};
+
/**
* use this to create new PlayObjects for media
*/
_______________________________________________
Kde-multimedia mailing list
Kde-multimedia@master.kde.org
http://master.kde.org/mailman/listinfo/kde-multimedia
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic