1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_DISCRETEACTIVITYBASE_HXX
21 #define INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_DISCRETEACTIVITYBASE_HXX
23 #include "activitybase.hxx"
24 #include "wakeupevent.hxx"
33 /** Specialization of ActivityBase for discrete time activities.
35 A discrete time activity is one where time proceeds in
36 discrete steps, i.e. at given time instants.
38 class DiscreteActivityBase
: public ActivityBase
41 DiscreteActivityBase( const ActivityParameters
& rParms
);
43 /** Hook for derived classes.
45 This method is called for each discrete time
46 instant, with nFrame denoting the frame number
53 Number of full repeats already performed
55 virtual void perform( sal_uInt32 nFrame
, sal_uInt32 nRepeatCount
) const = 0;
56 virtual void dispose() SAL_OVERRIDE
;
57 virtual bool perform() SAL_OVERRIDE
;
60 virtual void startAnimation() SAL_OVERRIDE
;
62 sal_uInt32
calcFrameIndex( sal_uInt32 nCurrCalls
,
63 ::std::size_t nVectorSize
) const;
65 sal_uInt32
calcRepeatCount( sal_uInt32 nCurrCalls
,
66 ::std::size_t nVectorSize
) const;
68 ::std::size_t getNumberOfKeyTimes() const { return maDiscreteTimes
.size(); }
71 WakeupEventSharedPtr mpWakeupEvent
;
72 const ::std::vector
< double > maDiscreteTimes
;
73 const double mnSimpleDuration
;
74 sal_uInt32 mnCurrPerformCalls
;
79 #endif // INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_DISCRETEACTIVITYBASE_HXX
81 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */