Developer World
Spresense SDK Library v3.2.0-ebc0364
al_nodecomm.h
1/****************************************************************************
2 * modules/include/audiolite/al_nodecomm.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_NODECOMM_H
37#define __INCLUDE_AUDIOLITE_NODECOMM_H
38
39#include <stdlib.h>
40
41/****************************************************************************
42 * Class Pre-definitions
43 ****************************************************************************/
44
47
48/****************************************************************************
49 * Class Definitions
50 ****************************************************************************/
51
52/****************************************************************************
53 * class: audiolite_nodecomm_if
54 ****************************************************************************/
55
57{
58 public:
59 virtual ~audiolite_nodecomm_if(){};
60 virtual int start(audiolite_inputnode *node) = 0;
61 virtual void cancel(audiolite_inputnode *node) = 0;
62 virtual void stop(audiolite_inputnode *node) = 0;
63 virtual int start(audiolite_outputnode *node) = 0;
64 virtual void cancel(audiolite_outputnode *node) = 0;
65 virtual void stop(audiolite_outputnode *node) = 0;
66
67 virtual void reflesh(audiolite_inputnode *node) = 0;
68 virtual void reflesh(audiolite_outputnode *node) = 0;
69};
70
71/****************************************************************************
72 * class: audiolite_nodecomm
73 ****************************************************************************/
74
76{
77 private:
79 audiolite_inputnode *_innode;
80 audiolite_outputnode *_outnode;
81
82 public:
84 : _if(i), _innode(n), _outnode(NULL) {};
86 : _if(i), _innode(NULL), _outnode(n) {};
87
88 int start(){ if (_if) return _if->start(_innode); return 0;};
89 void cancel(){ _if->cancel(_innode); };
90 void stop(){ _if->stop(_innode); };
91 void reflesh(){ _if->reflesh(_innode); };
92
93 int rstart(){ if (_if) return _if->start(_outnode); return 0;};
94 void rcancel(){ if (_if) _if->cancel(_outnode); };
95 void rstop(){ if (_if) _if->stop(_outnode); };
96 void rreflesh(){ if (_if) _if->reflesh(_outnode); };
97};
98
99#endif /* __INCLUDE_AUDIOLITE_NODECOMM_H */
Definition: al_inputnode.h:71
Definition: al_nodecomm.h:57
Definition: al_nodecomm.h:76
Definition: al_outputnode.h:65