~ubuntu-branches/ubuntu/wily/smplayer/wily

« back to all changes in this revision

Viewing changes to src/chapters.cpp

  • Committer: Package Import Robot
  • Author(s): Maia Kozheva, Maia Kozheva, Alessio Treglia
  • Date: 2012-04-14 12:01:57 UTC
  • mfrom: (1.1.13)
  • mto: (20.2.1 sid)
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: package-import@ubuntu.com-20120414120157-mndwobcslgisomso
[ Maia Kozheva ]
* New upstream release:
  - Changes since 0.7.1:
    + A toolbar editor has been added. Now it's possible to select the
      buttons and controls that want to appear in the toolbars.
    + New video filters: gradfun, blur and sharpen.
    + Now it's possible to change the GUI (default, mini, mpc) at runtime,
      no restart required.
    + sub files from opensubtitles should work again.
    + (Youtube) Recognize short urls (like this one:
      http://y2u.be/F5OcZBVPwOA)
    + Better support for chapters in video files.
    + Bug fix: remote m3u files work from the favorites menu or command line.
    + Internal changes in the single instance option (switch to 
      QtSingleApplication).
  - Fixes since 0.7.0:
    + SMPlayer took more than 10 seconds to show when running for the very
      first time.
    + The links to download subtitles from Opensubtitles were wrong.
    + SMPlayer crashed in the favorite editor when trying to select a file
      if the KDE open dialog was used.
  - Changes since 0.7.0:
    + By default the screenshots are saved in the user's pictures folder
      instead of the SMPlayer's config folder.
    + Now it's possible to change the opensubtitles server.
    + Youtube: seeking is slow with flv videos, so now flv videos have the
      lowest priority.
    + Youtube: now it's possible to search and download videos from youtube.
      This is provided by an external application (in linux you have to
      install an independent package: smtube).
* debian/copyright:
  - Rewrite according to DEP-5 specification.
* debian/control:
  - Depend on mplayer2 | mplayer. (Closes: #638279)
  - Update Standards-Version to 3.9.3.
* Remove debian/patches/handle_local_urls.diff, merged upstream.

[ Alessio Treglia ]
* Mention smplayer is also a front-end for MPlayer2.
* Fix small typo in the description.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*  smplayer, GUI front-end for mplayer.
 
2
    Copyright (C) 2006-2012 Ricardo Villalba <rvm@escomposlinux.org>
 
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 "chapters.h"
 
20
 
 
21
Chapters::Chapters() {
 
22
        clear();
 
23
}
 
24
 
 
25
Chapters::~Chapters() {
 
26
}
 
27
 
 
28
void Chapters::clear() {
 
29
        cm.clear();
 
30
}
 
31
 
 
32
void Chapters::addName(int ID, QString name) {
 
33
        cm[ID].setName(name);
 
34
        cm[ID].setID(ID);
 
35
}
 
36
 
 
37
void Chapters::addStart(int ID, double start) {
 
38
        cm[ID].setStart(start);
 
39
        cm[ID].setID(ID);
 
40
}
 
41
 
 
42
void Chapters::addEnd(int ID, double end) {
 
43
        cm[ID].setEnd(end);
 
44
        cm[ID].setID(ID);
 
45
}
 
46
 
 
47
void Chapters::addID(int ID) {
 
48
        cm[ID].setID(ID);
 
49
}
 
50
 
 
51
int Chapters::numItems() {
 
52
        return cm.count();
 
53
}
 
54
 
 
55
bool Chapters::existsItemAt(int n) {
 
56
        return ((n > 0) && (n < numItems()));
 
57
}
 
58
 
 
59
ChapterData Chapters::itemAt(int n) {
 
60
        return cm.values()[n];
 
61
}
 
62
 
 
63
ChapterData Chapters::item(int ID) {
 
64
        return cm[ID];
 
65
}
 
66
 
 
67
ChapterData Chapters::itemFromTime(double sec)
 
68
{
 
69
        QMapIterator<int, ChapterData> i(cm);
 
70
        while(i.hasNext()) {
 
71
                i.next();
 
72
                ChapterData d = i.value();
 
73
                if(d.start() <= sec && d.end() >= sec)
 
74
                        return d;
 
75
        }
 
76
        return cm[-1];
 
77
}
 
78
 
 
79
ChapterData Chapters::itemAfterTime(double sec)
 
80
{
 
81
        QMapIterator<int, ChapterData> i(cm);
 
82
        int ID = -1;
 
83
        double min_time = 1.7976931348623158e+308;
 
84
        while(i.hasNext()) {
 
85
                i.next();
 
86
                ChapterData d = i.value();
 
87
                if(d.start() > sec && d.start() < min_time)
 
88
                {
 
89
                        ID = d.ID();
 
90
                        min_time = d.start();
 
91
                }
 
92
        }
 
93
        return cm[ID];
 
94
}
 
95
 
 
96
ChapterData Chapters::itemBeforeTime(double sec)
 
97
{
 
98
        QMapIterator<int, ChapterData> i(cm);
 
99
        int ID = -1;
 
100
        double max_time = 0;
 
101
        while(i.hasNext()) {
 
102
                i.next();
 
103
                ChapterData d = i.value();
 
104
                if(d.end() < sec && d.end() > max_time)
 
105
                {
 
106
                        ID = d.ID();
 
107
                        max_time = d.end();
 
108
                }
 
109
        }
 
110
        return cm[ID];
 
111
}
 
112
 
 
113
int Chapters::find(int ID) {
 
114
        for (int n=0; n < numItems(); n++) {
 
115
                if (itemAt(n).ID() == ID) return n;
 
116
        }
 
117
        return -1;
 
118
}
 
119
 
 
120
void Chapters::list() {
 
121
        QMapIterator<int, ChapterData> i(cm);
 
122
        while (i.hasNext()) {
 
123
                i.next();
 
124
                ChapterData d = i.value();
 
125
        qDebug("Chapters::list: item %d: ID: %d name: '%s' start: %g end: %g",
 
126
               i.key(), d.ID(), d.name().toUtf8().constData(), d.start(), d.end() );
 
127
        }
 
128
}