28 #ifndef OPENSHOT_AUDIOREADERSOURCE_H
29 #define OPENSHOT_AUDIOREADERSOURCE_H
32 #define __JUCE_UNITTEST_JUCEHEADER__
40 #include "JuceLibraryCode/JuceHeader.h"
60 AudioSampleBuffer *buffer;
64 int64 original_frame_number;
66 tr1::shared_ptr<Frame> frame;
68 double estimated_frame;
69 int estimated_samples_per_frame;
72 void GetMoreSamplesFromReader();
75 juce::AudioSampleBuffer* reverse_buffer(juce::AudioSampleBuffer* buffer);
90 void getNextAudioBlock (
const AudioSourceChannelInfo& info);
93 void prepareToPlay(
int,
double);
96 void releaseResources();
100 void setNextReadPosition (
long long newPosition);
103 long long getNextReadPosition()
const;
106 long long getTotalLength()
const;
109 bool isLooping()
const;
113 void setLooping (
bool shouldLoop);
116 void setBuffer (AudioSampleBuffer *audio_buffer);
121 tr1::shared_ptr<Frame>
getFrame()
const {
return frame; }
127 void setSpeed(
int new_speed) { speed = new_speed; }
137 void Seek(int64 new_position) { frame_number = new_position; estimated_frame = new_position; }
Header file for ReaderBase class.
int getEstimatedFrame() const
Get the estimate frame that is playing at this moment.
This abstract class is the base class, used by all readers in libopenshot.
const ReaderInfo & getReaderInfo() const
This struct contains info about a media file, such as height, width, frames per second, etc...
void Reader(ReaderBase *audio_reader)
Set Reader.
tr1::shared_ptr< Frame > getFrame() const
Return the current frame object.
This class is used to expose any ReaderBase derived class as an AudioSource in JUCE.
void Seek(int64 new_position)
Seek to a specific frame.
int getSpeed() const
Get Speed (The speed and direction to playback a reader (1=normal, 2=fast, 3=faster, -1=rewind, etc...)
ReaderBase * Reader() const
Get Reader.
void setSpeed(int new_speed)
Set Speed (The speed and direction to playback a reader (1=normal, 2=fast, 3=faster, -1=rewind, etc...)