Jamba C++ API 7.5.0
Loading...
Searching...
No Matches
Timer.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018-2019 pongasoft
3 *
4 * Licensed under the Apache License, Version 2.0 or the MIT license,
5 * at your option. You may not use this file except in compliance with
6 * one of these licenses. You may obtain copies of the licenses at:
7 *
8 * https://www.apache.org/licenses/LICENSE-2.0
9 * https://opensource.org/licenses/MIT
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 *
17 * @author Yan Pujante
18 */
19
20#pragma once
21
22#include <base/source/timer.h>
23#include <memory>
24
25namespace pongasoft::VST {
26
31{
32public:
33 // Constructor
34 explicit AutoReleaseTimer(Steinberg::Timer *iTimer) : fTimer{iTimer} {}
35
36 // Destructor => auto release
38 {
39 stop();
40
41 if(fTimer)
42 fTimer->release();
43 }
44
45 // stops the timer
46 inline void stop()
47 {
48 if(fTimer)
49 fTimer->stop();
50 }
51
55 static std::unique_ptr<AutoReleaseTimer> create(Steinberg::ITimerCallback* iCallback,
56 Steinberg::uint32 iIntervalMilliseconds)
57 {
58 return std::make_unique<AutoReleaseTimer>(Steinberg::Timer::create(iCallback, iIntervalMilliseconds));
59 }
60
61 // disabling copy
64
65private:
66 Steinberg::Timer *fTimer;
67};
68
69}
~AutoReleaseTimer()
Definition Timer.h:37
static std::unique_ptr< AutoReleaseTimer > create(Steinberg::ITimerCallback *iCallback, Steinberg::uint32 iIntervalMilliseconds)
Creates and return an auto release timer.
Definition Timer.h:55
AutoReleaseTimer(AutoReleaseTimer const &)=delete
void stop()
Definition Timer.h:46
AutoReleaseTimer & operator=(AutoReleaseTimer const &)=delete
Steinberg::Timer * fTimer
Definition Timer.h:66
AutoReleaseTimer(Steinberg::Timer *iTimer)
Definition Timer.h:34
Definition Clock.h:24