Spresense SDK Library
v3.4.5-e9a4f17
Loading...
Searching...
No Matches
al_wavenc.h
1
/****************************************************************************
2
* modules/include/audiolite/al_wavenc.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_WAVENC_H
37
#define __INCLUDE_AUDIOLITE_WAVENC_H
38
39
/****************************************************************************
40
* Included Files
41
****************************************************************************/
42
43
#include <nuttx/config.h>
44
45
#include <audiolite/al_wavheader.h>
46
#include <audiolite/al_encoder.h>
47
#include <audiolite/al_stream.h>
48
49
#define AL_WAVENC_FNAMELEN (64)
50
51
/****************************************************************************
52
* Class Definitions
53
****************************************************************************/
54
55
/****************************************************************************
56
* class: audiolite_wavenc
57
****************************************************************************/
58
59
class
audiolite_wavenc :
public
audiolite_encoder
60
{
61
private
:
62
int
_max_filelen;
63
int
_prefixlen;
64
int
_crnt_idx;
65
int
_crnt_sz;
66
mossfw_lock_t _lock;
67
68
char
_fname[AL_WAVENC_FNAMELEN];
69
70
void
*construct_wavheader(
al_wavhdr
*hdr);
71
void
create_fname();
72
void
terminate_wavfile();
73
74
void
create_wav_file();
75
76
public
:
77
audiolite_wavenc();
78
~audiolite_wavenc();
79
80
void
on_data();
81
int
on_starting(
audiolite_inputnode
*inode,
82
audiolite_outputnode
*onode);
83
void
on_started(
audiolite_inputnode
*inode,
84
audiolite_outputnode
*onode);
85
void
on_canceled(
audiolite_inputnode
*inode,
86
audiolite_outputnode
*onode);
87
void
on_stop(
audiolite_inputnode
*inode,
88
audiolite_outputnode
*onode);
89
90
void
set_max_filesize(
int
sz) { _max_filelen = sz; };
91
int
set_fileprefix(
const
char
*pfx);
92
};
93
94
#endif
/* __INCLUDE_AUDIOLITE_WAVENC_H */
audiolite_inputnode
Definition
al_inputnode.h:71
audiolite_outputnode
Definition
al_outputnode.h:65
al_wavhdr
Definition
al_wavheader.h:61
spresense
sdk
modules
include
audiolite
al_wavenc.h
Generated by
1.13.2