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

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

smplayer: update trunk to version 16.4

  • Property svn:eol-style set to LF
File size: 2.7 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
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 if (!_lang.isEmpty()) {
54 dname += " ["+ _lang + "]";
55 }
56 }
57 else
58 if (!_lang.isEmpty()) {
59 dname = _lang;
60 }
61 else
62 if (!_filename.isEmpty()) {
63 QFileInfo f(_filename);
64 dname = f.fileName();
65 }
66 else
67 dname = QString::number(_ID);
68
69 return dname;
70 };
71
72protected:
73 Type _type;
74 int _ID;
75 QString _lang;
76 QString _name;
77 QString _filename;
78};
79
80typedef QList <SubData> SubList;
81
82
83class SubTracks
84{
85public:
86 enum ParseResult { SubtitleUnchanged = 0, SubtitleAdded = 1, SubtitleChanged = 2 };
87
88 SubTracks();
89 ~SubTracks();
90
91 void clear();
92 int find( SubData::Type t, int ID );
93
94 void add( SubData::Type t, int ID );
95 bool changeLang( SubData::Type t, int ID, QString lang );
96 bool changeName( SubData::Type t, int ID, QString name );
97 bool changeFilename( SubData::Type t, int ID, QString filename );
98
99 int numItems();
100 bool existsItemAt(int n);
101
102 SubData itemAt(int n);
103 SubData findItem( SubData::Type t, int ID );
104
105 int findLang(QString expr);
106 int selectOne(QString preferred_lang, int default_sub=0);
107
108 //! Parses a line from mplayer output with subtitle info
109 ParseResult parse(QString text);
110
111 void list();
112 void listNames();
113 /* void test(); */
114
115protected:
116 SubList subs;
117 int index;
118};
119
120#endif
Note: See TracBrowser for help on using the repository browser.