source: smplayer/trunk/src/subtracks.h@ 142

Last change on this file since 142 was 142, checked in by Silvan Scherrer, 12 years ago

SMPlayer: update trunk to 0.8.5

  • Property svn:eol-style set to LF
File size: 2.7 KB
Line 
1/* smplayer, GUI front-end for mplayer.
2 Copyright (C) 2006-2013 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
20#ifndef _SUBTRACKS_H_
21#define _SUBTRACKS_H_
22
23#include <QString>
24#include <QFileInfo>
25#include <QList>
26
27class SubData
28{
29
30public:
31 enum Type { None = -1, Vob = 0, Sub = 1, File = 2 };
32
33 SubData() { _ID=-1; _lang=""; _name=""; _filename=""; _type = None; };
34 ~SubData() {};
35
36 void setType( Type t ) { _type = t; };
37 void setID(int id) { _ID = id; };
38 void setLang(QString lang) { _lang = lang; };
39 void setName(QString name) { _name = name; };
40 void setFilename(QString f) { _filename = f; };
41
42 Type type() { return _type; };
43 int ID() { return _ID; };
44 QString lang() { return _lang; };
45 QString name() { return _name; };
46 QString filename() { return _filename; };
47
48 QString displayName() {
49 QString dname="";
50
51 if (!_name.isEmpty()) {
52 dname = _name;
53 }
54 else
55 if (!_lang.isEmpty()) {
56 dname = _lang;
57 }
58 else
59 if (!_filename.isEmpty()) {
60 QFileInfo f(_filename);
61 dname = f.fileName();
62 }
63 else
64 dname = QString::number(_ID);
65
66 return dname;
67 };
68
69protected:
70 Type _type;
71 int _ID;
72 QString _lang;
73 QString _name;
74 QString _filename;
75};
76
77typedef QList <SubData> SubList;
78
79
80class SubTracks
81{
82public:
83 enum ParseResult { SubtitleUnchanged = 0, SubtitleAdded = 1, SubtitleChanged = 2 };
84
85 SubTracks();
86 ~SubTracks();
87
88 void clear();
89 int find( SubData::Type t, int ID );
90
91 void add( SubData::Type t, int ID );
92 bool changeLang( SubData::Type t, int ID, QString lang );
93 bool changeName( SubData::Type t, int ID, QString name );
94 bool changeFilename( SubData::Type t, int ID, QString filename );
95
96 int numItems();
97 bool existsItemAt(int n);
98
99 SubData itemAt(int n);
100 SubData findItem( SubData::Type t, int ID );
101
102 int findLang(QString expr);
103 int selectOne(QString preferred_lang, int default_sub=0);
104
105 //! Parses a line from mplayer output with subtitle info
106 ParseResult parse(QString text);
107
108 void list();
109 void listNames();
110 /* void test(); */
111
112protected:
113 SubList subs;
114 int index;
115};
116
117#endif
Note: See TracBrowser for help on using the repository browser.