Spresense SDK Library
v3.4.5-e9a4f17
Loading...
Searching...
No Matches
al_decoder.h
1
/****************************************************************************
2
* modules/include/audiolite/al_decoder.h
3
*
4
* Copyright 2023 Sony Semiconductor Solutions Corporation
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
8
* are met:
9
*
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in
14
* the documentation and/or other materials provided with the
15
* distribution.
16
* 3. Neither the name of Sony Semiconductor Solutions Corporation nor
17
* the names of its contributors may be used to endorse or promote
18
* products derived from this software without specific prior written
19
* permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
28
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*
34
****************************************************************************/
35
36
#ifndef __INCLUDE_AUDIOLITE_DECODER_H
37
#define __INCLUDE_AUDIOLITE_DECODER_H
38
39
/****************************************************************************
40
* Included Files
41
****************************************************************************/
42
43
#include <nuttx/config.h>
44
#include <audiolite/al_component.h>
45
#include <audiolite/al_stream.h>
46
47
/****************************************************************************
48
* Class Definitions
49
****************************************************************************/
50
51
/****************************************************************************
52
* class: audiolite_decoder
53
****************************************************************************/
54
55
class
audiolite_decoder :
public
audiolite_component
56
{
57
protected
:
58
audiolite_stream
*_stream;
59
audiolite_mempoolapbuf
*_omempool;
60
int
_prio;
61
int
_stacksz;
62
mossfw_thread_t _tid;
63
const
char
*_tname;
64
volatile
bool
_isplay;
65
volatile
bool
_ispause;
66
volatile
bool
_is_thrdrun;
67
68
int
start_thread(
const
char
*name);
69
void
stop_thread();
70
virtual
void
decode_runner() = 0;
71
72
static
void
*inject_worker(
void
*arg);
73
74
public
:
75
audiolite_decoder(
const
char
*name,
76
int
prio = -1,
int
stack_sz = -1);
77
~audiolite_decoder();
78
79
int
start();
80
void
stop();
81
void
pause();
82
int
resume();
83
84
virtual
int
start_decode() = 0;
85
virtual
int
stop_decode() = 0;
86
virtual
int
pause_decode() = 0;
87
virtual
int
resume_decode() = 0;
88
89
void
set_stream(
audiolite_stream
*st) { _stream = st; };
90
void
set_outputmempool(
audiolite_mempoolapbuf
*pool)
91
{
92
_omempool = pool;
93
}
94
};
95
96
#endif
/* __INCLUDE_AUDIOLITE_DECODER_H */
audiolite_mempoolapbuf
Definition
al_memalloc.h:183
audiolite_stream
Definition
al_stream.h:59
spresense
sdk
modules
include
audiolite
al_decoder.h
Generated by
1.13.2