summaryrefslogtreecommitdiff
path: root/src/inforeader.h
diff options
context:
space:
mode:
authorMaia Kozheva <sikon@ubuntu.com>2009-11-20 18:22:19 +0600
committerMaia Kozheva <sikon@ubuntu.com>2009-11-20 18:22:19 +0600
commit263b32f108c15cd1c55a8f4eb4704fac6553f1ac (patch)
tree1c49e7848aa2d3d64a9d9b96b8852cb1884da2f7 /src/inforeader.h
Imported Upstream version 0.6.8
Diffstat (limited to 'src/inforeader.h')
-rw-r--r--src/inforeader.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/inforeader.h b/src/inforeader.h
new file mode 100644
index 0000000..4d0a40b
--- /dev/null
+++ b/src/inforeader.h
@@ -0,0 +1,109 @@
+/* smplayer, GUI front-end for mplayer.
+ Copyright (C) 2006-2009 Ricardo Villalba <rvm@escomposlinux.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.
+
+ 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
+*/
+
+
+#ifndef _INFOREADER_H_
+#define _INFOREADER_H_
+
+#include <QObject>
+#include <QList>
+
+#define USE_QPROCESS 1
+
+#if USE_QPROCESS
+class QProcess;
+#else
+class MyProcess;
+#endif
+
+class InfoData {
+
+public:
+ InfoData() {};
+ InfoData( QString name, QString desc) {
+ _name = name;
+ _desc = desc;
+ };
+ ~InfoData() {};
+
+ void setName(QString name) { _name = name; };
+ void setDesc(QString desc) { _desc = desc; };
+
+ QString name() { return _name; };
+ QString desc() { return _desc; };
+
+private:
+ QString _name, _desc;
+};
+
+
+typedef QList<InfoData> InfoList;
+
+
+class InfoReader : QObject {
+ Q_OBJECT
+
+public:
+ InfoReader( QString mplayer_bin, QObject * parent = 0 );
+ ~InfoReader();
+
+ void getInfo();
+
+ InfoList voList() { return vo_list; };
+ InfoList aoList() { return ao_list; };
+ InfoList demuxerList() { return demuxer_list; };
+ InfoList vcList() { return vc_list; };
+ InfoList acList() { return ac_list; };
+
+ int mplayerVersion() { return mplayer_svn; };
+
+ //! Returns an InfoReader objects. If it didn't exist before, one
+ //! is created and getInfo() is called.
+ static InfoReader * obj();
+
+protected slots:
+ virtual void readLine(QByteArray);
+
+protected:
+ bool run(QString options);
+ void list();
+
+protected:
+#if USE_QPROCESS
+ QProcess * proc;
+#else
+ MyProcess * proc;
+#endif
+ QString mplayerbin;
+
+ InfoList vo_list;
+ InfoList ao_list;
+ InfoList demuxer_list;
+ InfoList vc_list;
+ InfoList ac_list;
+
+ int mplayer_svn;
+
+private:
+ bool waiting_for_key;
+ int reading_type;
+
+ static InfoReader * static_obj;
+};
+
+#endif