1 /****************************************************************************
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
7 ** This file is part of the demonstration applications of the Qt Toolkit.
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** No Commercial Usage
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
16 ** GNU Lesser General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU Lesser
18 ** General Public License version 2.1 as published by the Free Software
19 ** Foundation and appearing in the file LICENSE.LGPL included in the
20 ** packaging of this file. Please review the following information to
21 ** ensure the GNU Lesser General Public License version 2.1 requirements
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ** In addition, as a special exception, Nokia gives you certain additional
25 ** rights. These rights are described in the Nokia Qt LGPL Exception
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
40 ****************************************************************************/
52 // NB! Deleting all movies.
53 qDeleteAll(this->index
);
56 void Score::prepare(Movie
*movie
, RUN_MODE runMode
, LOCK_MODE lockMode
)
58 if (lockMode
== LOCK_ITEMS
){
59 for (int i
=0; i
<movie
->size(); ++i
){
60 if (runMode
== ONLY_IF_VISIBLE
&& !movie
->at(i
)->demoItem()->isVisible())
62 movie
->at(i
)->lockItem(true);
63 movie
->at(i
)->prepare();
66 else if (lockMode
== UNLOCK_ITEMS
){
67 for (int i
=0; i
<movie
->size(); ++i
){
68 if (runMode
== ONLY_IF_VISIBLE
&& !movie
->at(i
)->demoItem()->isVisible())
70 movie
->at(i
)->lockItem(false);
71 movie
->at(i
)->prepare();
75 for (int i
=0; i
<movie
->size(); ++i
){
76 if (runMode
== ONLY_IF_VISIBLE
&& !movie
->at(i
)->demoItem()->isVisible())
78 movie
->at(i
)->prepare();
83 void Score::play(Movie
*movie
, RUN_MODE runMode
)
85 if (runMode
== NEW_ANIMATION_ONLY
){
86 for (int i
=0; i
<movie
->size(); ++i
)
87 if (movie
->at(i
)->notOwnerOfItem())
88 movie
->at(i
)->play(true);
90 else if (runMode
== ONLY_IF_VISIBLE
){
91 for (int i
=0; i
<movie
->size(); ++i
)
92 if (movie
->at(i
)->demoItem()->isVisible())
93 movie
->at(i
)->play(runMode
== FROM_START
);
96 for (int i
=0; i
<movie
->size(); ++i
)
97 movie
->at(i
)->play(runMode
== FROM_START
);
101 void Score::playMovie(const QString
&indexName
, RUN_MODE runMode
, LOCK_MODE lockMode
)
103 MovieIndex::iterator movieIterator
= this->index
.find(indexName
);
104 if (movieIterator
== this->index
.end())
107 Movie
*movie
= *movieIterator
;
108 this->prepare(movie
, runMode
, lockMode
);
109 this->play(movie
, runMode
);
112 void Score::queueMovie(const QString
&indexName
, RUN_MODE runMode
, LOCK_MODE lockMode
)
114 MovieIndex::iterator movieIterator
= this->index
.find(indexName
);
115 if (movieIterator
== this->index
.end()){
117 qDebug() << "Queuing movie:" << indexName
<< "(does not exist)";
121 Movie
*movie
= *movieIterator
;
122 this->prepare(movie
, runMode
, lockMode
);
123 this->playList
.append(PlayListMember(movie
, int(runMode
)));
125 qDebug() << "Queuing movie:" << indexName
;
128 void Score::playQue()
130 int movieCount
= this->playList
.size();
131 for (int i
=0; i
<movieCount
; i
++)
132 this->play(this->playList
.at(i
).movie
, RUN_MODE(this->playList
.at(i
).runMode
));
133 this->playList
.clear();
135 qDebug() << "********* Playing que *********";
138 void Score::insertMovie(const QString
&indexName
, Movie
*movie
)
140 this->index
.insert(indexName
, movie
);
143 Movie
*Score::insertMovie(const QString
&indexName
)
145 Movie
*movie
= new Movie();
146 insertMovie(indexName
, movie
);