1 /*  smplayer, GUI front-end for mplayer.
2     Copyright (C) 2006-2021 Ricardo Villalba <ricardo@smplayer.info>
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 #include "titletracks.h"
20 
TitleTracks()21 TitleTracks::TitleTracks() {
22 	clear();
23 }
24 
~TitleTracks()25 TitleTracks::~TitleTracks() {
26 }
27 
clear()28 void TitleTracks::clear() {
29 	tm.clear();
30 }
31 
addName(int ID,QString name)32 void TitleTracks::addName(int ID, QString name) {
33 	tm[ID].setName(name);
34 	tm[ID].setID(ID);
35 }
36 
addDuration(int ID,double duration)37 void TitleTracks::addDuration(int ID, double duration) {
38 	tm[ID].setDuration(duration);
39 	tm[ID].setID(ID);
40 }
41 
addChapters(int ID,int n)42 void TitleTracks::addChapters(int ID, int n) {
43 	tm[ID].setChapters(n);
44 	tm[ID].setID(ID);
45 }
46 
addAngles(int ID,int n)47 void TitleTracks::addAngles(int ID, int n) {
48 	tm[ID].setAngles(n);
49 	tm[ID].setID(ID);
50 }
51 
addID(int ID)52 void TitleTracks::addID(int ID) {
53 	tm[ID].setID(ID);
54 }
55 
56 
numItems()57 int TitleTracks::numItems() {
58 	return tm.count();
59 }
60 
existsItemAt(int n)61 bool TitleTracks::existsItemAt(int n) {
62 	return ((n > 0) && (n < numItems()));
63 }
64 
itemAt(int n)65 TitleData TitleTracks::itemAt(int n) {
66 	return tm.values()[n];
67 }
68 
item(int ID)69 TitleData TitleTracks::item(int ID) {
70 	return tm[ID];
71 }
72 
find(int ID)73 int TitleTracks::find(int ID) {
74 	for (int n=0; n < numItems(); n++) {
75 		if (itemAt(n).ID() == ID) return n;
76 	}
77 	return -1;
78 }
79 
list()80 void TitleTracks::list() {
81 	QMapIterator<int, TitleData> i(tm);
82 	while (i.hasNext()) {
83 		i.next();
84 		TitleData d = i.value();
85         qDebug("TitleTracks::list: item %d: ID: %d name: '%s' duration %f chapters: %d angles: %d",
86                i.key(), d.ID(), d.name().toUtf8().constData(), d.duration(), d.chapters(), d.angles() );
87 	}
88 }
89