summaryrefslogtreecommitdiffstats
path: root/juk/gstreamerplayer.h
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commite2de64d6f1beb9e492daf5b886e19933c1fa41dd (patch)
tree9047cf9e6b5c43878d5bf82660adae77ceee097a /juk/gstreamerplayer.h
downloadtdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.tar.gz
tdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdemultimedia@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'juk/gstreamerplayer.h')
-rw-r--r--juk/gstreamerplayer.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/juk/gstreamerplayer.h b/juk/gstreamerplayer.h
new file mode 100644
index 00000000..1d15562b
--- /dev/null
+++ b/juk/gstreamerplayer.h
@@ -0,0 +1,81 @@
+/***************************************************************************
+ copyright : (C) 2004 Scott Wheeler
+ email : wheeler@kde.org
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+
+#ifndef GSTREAMERPLAYER_H
+#define GSTREAMERPLAYER_H
+
+#include "config.h"
+
+#if HAVE_GSTREAMER
+
+#include <gst/gst.h>
+#include <qstring.h>
+#include "player.h"
+
+class GStreamerPlayer : public Player
+{
+ Q_OBJECT
+
+public:
+ GStreamerPlayer();
+ virtual ~GStreamerPlayer();
+
+ virtual void play(const FileHandle &file = FileHandle::null());
+
+ virtual void setVolume(float volume = 1.0);
+ virtual float volume() const;
+
+ virtual bool playing() const;
+ virtual bool paused() const;
+
+ virtual int totalTime() const;
+ virtual int currentTime() const;
+ virtual int position() const; // in this case not really the percent
+
+ virtual void seek(int seekTime);
+ virtual void seekPosition(int position);
+
+ virtual void pause();
+public slots:
+ virtual void stop();
+
+private:
+ void setupPipeline();
+
+#if GSTREAMER_VERSION == 8
+
+ void readConfig();
+ long long time(GstQueryType type) const;
+
+ QString m_sinkName;
+ GstElement *m_pipeline;
+ GstElement *m_source;
+ GstElement *m_decoder;
+ GstElement *m_volume;
+ GstElement *m_sink;
+
+#else
+
+ enum TimeQuery { CurrentPosition, TotalLength };
+ long long time(TimeQuery type) const;
+
+ GstState state() const;
+ GstElement *m_playbin;
+
+#endif
+};
+
+#endif
+#endif