openshot-audio
0.1.7
JuceLibraryCode
modules
juce_core
containers
juce_AbstractFifo.h
Go to the documentation of this file.
1
/*
2
==============================================================================
3
4
This file is part of the juce_core module of the JUCE library.
5
Copyright (c) 2015 - ROLI Ltd.
6
7
Permission to use, copy, modify, and/or distribute this software for any purpose with
8
or without fee is hereby granted, provided that the above copyright notice and this
9
permission notice appear in all copies.
10
11
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
12
TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
13
NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
15
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
16
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17
18
------------------------------------------------------------------------------
19
20
NOTE! This permissive ISC license applies ONLY to files within the juce_core module!
21
All other JUCE modules are covered by a dual GPL/commercial license, so if you are
22
using any other modules, be sure to check that you also comply with their license.
23
24
For more details, visit www.juce.com
25
26
==============================================================================
27
*/
28
29
#ifndef JUCE_ABSTRACTFIFO_H_INCLUDED
30
#define JUCE_ABSTRACTFIFO_H_INCLUDED
31
32
33
//==============================================================================
89
class
JUCE_API
AbstractFifo
90
{
91
public
:
92
//==============================================================================
94
AbstractFifo
(
int
capacity)
noexcept
;
95
97
~
AbstractFifo
();
98
99
//==============================================================================
101
int
getTotalSize()
const
noexcept
;
102
104
int
getFreeSpace()
const
noexcept
;
105
107
int
getNumReady()
const
noexcept
;
108
110
void
reset()
noexcept
;
111
116
void
setTotalSize (
int
newSize)
noexcept
;
117
118
//==============================================================================
158
void
prepareToWrite (
int
numToWrite,
int
& startIndex1,
int
& blockSize1,
int
& startIndex2,
int
& blockSize2)
const
noexcept
;
159
163
void
finishedWrite (
int
numWritten)
noexcept
;
164
203
void
prepareToRead (
int
numWanted,
int
& startIndex1,
int
& blockSize1,
int
& startIndex2,
int
& blockSize2)
const
noexcept
;
204
208
void
finishedRead (
int
numRead)
noexcept
;
209
210
211
private
:
212
//==============================================================================
213
int
bufferSize;
214
Atomic <int>
validStart, validEnd;
215
216
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR
(
AbstractFifo
)
217
};
218
219
220
#endif // JUCE_ABSTRACTFIFO_H_INCLUDED
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
Definition:
juce_PlatformDefs.h:198
JUCE_API
#define JUCE_API
Definition:
juce_StandardHeader.h:139
noexcept
#define noexcept
Definition:
juce_CompilerSupport.h:141
AbstractFifo
Definition:
juce_AbstractFifo.h:89
Atomic< int >
Generated by
1.8.17