source: smplayer/trunk/src/mpvprocess.h@ 178

Last change on this file since 178 was 176, checked in by Silvan Scherrer, 9 years ago

smplayer: update trunk to version 16.4

File size: 5.0 KB
Line 
1/* smplayer, GUI front-end for mplayer.
2 Copyright (C) 2006-2016 Ricardo Villalba <rvm@users.sourceforge.net>
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17*/
18
19#ifndef MPVPROCESS_H
20#define MPVPROCESS_H
21
22#include <QString>
23#include "playerprocess.h"
24#include "config.h"
25
26class QStringList;
27
28class MPVProcess : public PlayerProcess
29{
30 Q_OBJECT
31
32public:
33 MPVProcess(QObject * parent = 0);
34 ~MPVProcess();
35
36 bool start();
37
38 // Command line options
39 void addArgument(const QString & a);
40 void setMedia(const QString & media, bool is_playlist = false);
41 void disableInput();
42 void setFixedOptions();
43 void setOption(const QString & option_name, const QVariant & value = QVariant());
44 void addUserOption(const QString & option);
45 void addVF(const QString & filter_name, const QVariant & value = QVariant());
46 void addAF(const QString & filter_name, const QVariant & value = QVariant());
47 void addStereo3DFilter(const QString & in, const QString & out);
48 void setSubStyles(const AssStyles & styles, const QString & assStylesFile = QString::null);
49
50 // Slave commands
51 void quit();
52 void setVolume(int v);
53 void setOSD(int o);
54 void setAudio(int ID);
55 void setVideo(int ID);
56 void setSubtitle(int type, int ID);
57 void disableSubtitles();
58 void setSecondarySubtitle(int ID);
59 void disableSecondarySubtitles();
60 void setSubtitlesVisibility(bool b);
61 void seek(double secs, int mode, bool precise);
62 void mute(bool b);
63 void setPause(bool b);
64 void frameStep();
65 void frameBackStep();
66 void showOSDText(const QString & text, int duration, int level);
67 void showFilenameOnOSD();
68 void showTimeOnOSD();
69 void setContrast(int value);
70 void setBrightness(int value);
71 void setHue(int value);
72 void setSaturation(int value);
73 void setGamma(int value);
74 void setChapter(int ID);
75 void nextChapter();
76 void previousChapter();
77 void setExternalSubtitleFile(const QString & filename);
78 void setSubPos(int pos);
79 void setSubScale(double value);
80 void setSubStep(int value);
81 void seekSub(int value);
82 void setSubForcedOnly(bool b);
83 void setSpeed(double value);
84#ifdef MPLAYER_SUPPORT
85 void enableKaraoke(bool b);
86#endif
87 void enableExtrastereo(bool b);
88 void enableVolnorm(bool b, const QString & option);
89 void setAudioEqualizer(const QString & values);
90 void setAudioDelay(double delay);
91 void setSubDelay(double delay);
92 void setLoop(int v);
93 void takeScreenshot(ScreenshotType t, bool include_subtitles = false);
94#ifdef CAPTURE_STREAM
95 void switchCapturing();
96#endif
97 void setTitle(int ID);
98 void changeVF(const QString & filter, bool enable, const QVariant & option = QVariant());
99 void changeStereo3DFilter(bool enable, const QString & in, const QString & out);
100#if DVDNAV_SUPPORT
101 void discSetMousePos(int x, int y);
102 void discButtonPressed(const QString & button_name);
103#endif
104 void setAspect(double aspect);
105 void setFullscreen(bool b);
106#if PROGRAM_SWITCH
107 void setTSProgram(int ID);
108#endif
109 void toggleDeinterlace();
110 void askForLength();
111 void setOSDScale(double value);
112 void setChannelsFile(const QString &);
113
114 void enableScreenshots(const QString & dir, const QString & templ = QString::null, const QString & format = QString::null);
115
116 QString mpvVersion() { return mpv_version; };
117
118protected:
119 bool isOptionAvailable(const QString & option);
120 void addVFIfAvailable(const QString & vf, const QString & value = QString::null);
121 void messageFilterNotSupported(const QString & filter_name);
122
123protected slots:
124 void parseLine(QByteArray ba);
125 void processFinished(int exitCode, QProcess::ExitStatus exitStatus);
126 void gotError(QProcess::ProcessError);
127 void requestChapterInfo();
128 void requestBitrateInfo();
129
130protected:
131#if NOTIFY_AUDIO_CHANGES
132 void updateAudioTrack(int ID, const QString & name, const QString & lang);
133#endif
134#if NOTIFY_SUB_CHANGES
135 void updateSubtitleTrack(int ID, const QString & name, const QString & lang);
136#endif
137
138private:
139 bool notified_mplayer_is_running;
140 bool notified_pause;
141 bool received_end_of_file;
142
143 int last_sub_id;
144
145 int mplayer_svn;
146
147 QString mpv_version;
148 bool verbose;
149
150#if NOTIFY_SUB_CHANGES
151 SubTracks subs;
152
153 bool subtitle_info_received;
154 bool subtitle_info_changed;
155#endif
156
157#if NOTIFY_AUDIO_CHANGES
158 Tracks audios;
159 bool audio_info_changed;
160#endif
161
162#if NOTIFY_VIDEO_CHANGES
163 Tracks videos;
164 bool video_info_changed;
165#endif
166
167#if NOTIFY_CHAPTER_CHANGES
168 Chapters chapters;
169 bool chapter_info_changed;
170#endif
171
172 int dvd_current_title;
173 int br_current_title;
174
175 QString previous_eq;
176
177#ifdef CAPTURE_STREAM
178 bool capturing;
179#endif
180};
181
182#endif
Note: See TracBrowser for help on using the repository browser.