Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
modules
audioplayer
SkAudioPlayer.h
Go to the documentation of this file.
1
/*
2
* Copyright 2020 Google Inc.
3
*
4
* Use of this source code is governed by a BSD-style license that can be
5
* found in the LICENSE file.
6
*/
7
#pragma once
8
9
#include "
include/core/SkData.h
"
10
#include <memory>
11
12
class
SK_API
SkAudioPlayer
{
13
public
:
14
virtual
~SkAudioPlayer
();
15
16
// Returns null on failure (possibly unknown format?)
17
static
std::unique_ptr<SkAudioPlayer>
Make
(
sk_sp<SkData>
);
18
19
// in seconds
20
double
duration
()
const
{
return
this->onGetDuration(); }
21
double
time
()
const
{
return
this->onGetTime(); }
// 0...duration()
22
double
setTime(
double
);
// returns actual time
23
24
double
normalizedTime
()
const
{
return
this->time() / this->
duration
(); }
25
double
setNormalizedTime(
double
t);
26
27
enum class
State
{
28
kPlaying,
29
kStopped,
30
kPaused,
31
};
32
State
state
()
const
{
return
fState; }
33
float
volume
()
const
{
return
fVolume; }
// 0...1
34
float
rate
()
const
{
return
fRate; }
// multiplier (e.g. 1.0 is default)
35
36
State
setState(
State
);
// returns actual State
37
float
setRate(
float
);
// returns actual rate
38
float
setVolume(
float
);
// returns actual volume
39
40
void
play
() { this->setState(State::kPlaying); }
41
void
pause
() { this->setState(State::kPaused); }
42
void
stop
() { this->setState(State::kStopped); }
43
44
bool
isPlaying
()
const
{
return
this->
state
() == State::kPlaying; }
45
bool
isPaused
()
const
{
return
this->
state
() == State::kPaused; }
46
bool
isStopped
()
const
{
return
this->
state
() == State::kStopped; }
47
48
protected
:
49
SkAudioPlayer
() {}
// only called by subclasses
50
51
virtual
double
onGetDuration
()
const
= 0;
52
virtual
double
onGetTime
()
const
= 0;
53
virtual
double
onSetTime
(
double
) = 0;
54
55
virtual
State
onSetState
(
State
) = 0;
56
virtual
float
onSetRate
(
float
) = 0;
57
virtual
float
onSetVolume
(
float
) = 0;
58
59
private
:
60
State
fState = State::kStopped;
61
float
fRate = 1.0f;
62
float
fVolume = 1.0f;
63
};
SK_API
#define SK_API
Definition
SkAPI.h:35
SkData.h
Make
static std::unique_ptr< SkEncoder > Make(SkWStream *dst, const SkPixmap *src, const SkYUVAPixmaps *srcYUVA, const SkColorSpace *srcYUVAColorSpace, const SkJpegEncoder::Options &options)
Definition
SkJpegEncoderImpl.cpp:259
SkAudioPlayer
Definition
SkAudioPlayer.h:12
SkAudioPlayer::stop
void stop()
Definition
SkAudioPlayer.h:42
SkAudioPlayer::onSetTime
virtual double onSetTime(double)=0
SkAudioPlayer::pause
void pause()
Definition
SkAudioPlayer.h:41
SkAudioPlayer::play
void play()
Definition
SkAudioPlayer.h:40
SkAudioPlayer::SkAudioPlayer
SkAudioPlayer()
Definition
SkAudioPlayer.h:49
SkAudioPlayer::onGetDuration
virtual double onGetDuration() const =0
SkAudioPlayer::time
double time() const
Definition
SkAudioPlayer.h:21
SkAudioPlayer::normalizedTime
double normalizedTime() const
Definition
SkAudioPlayer.h:24
SkAudioPlayer::isPlaying
bool isPlaying() const
Definition
SkAudioPlayer.h:44
SkAudioPlayer::rate
float rate() const
Definition
SkAudioPlayer.h:34
SkAudioPlayer::duration
double duration() const
Definition
SkAudioPlayer.h:20
SkAudioPlayer::onGetTime
virtual double onGetTime() const =0
SkAudioPlayer::onSetVolume
virtual float onSetVolume(float)=0
SkAudioPlayer::isPaused
bool isPaused() const
Definition
SkAudioPlayer.h:45
SkAudioPlayer::onSetState
virtual State onSetState(State)=0
SkAudioPlayer::onSetRate
virtual float onSetRate(float)=0
SkAudioPlayer::isStopped
bool isStopped() const
Definition
SkAudioPlayer.h:46
SkAudioPlayer::volume
float volume() const
Definition
SkAudioPlayer.h:33
SkAudioPlayer::state
State state() const
Definition
SkAudioPlayer.h:32
sk_sp
Definition
SkRefCnt.h:220
duration
double duration
Definition
examples.cpp:30
state
AtkStateType state
Definition
fl_accessible_node.cc:10
State
Definition
SerialProcsTest.cpp:46
Generated on Fri Apr 26 2024 06:16:15 for Flutter Engine by
1.9.8