1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-14 15:48:21 +02:00
Benjamin Drung 787f2afd10 Introduce end-of-line normalization
Ensures that all files that Git considers to be text will have
normalized (LF) line endings in the repository. When core.eol is set to
native (which is the default), Git will convert the line endings of
normalized files in your working directory back to your platform's
native line ending.

See also https://git-scm.com/docs/gitattributes
2016-05-17 01:05:05 +02:00

83 lines
2.1 KiB
C++

#ifndef INCLUDED_PORTAUDIO_STREAM_HXX
#define INCLUDED_PORTAUDIO_STREAM_HXX
#include "portaudio.h"
// ---------------------------------------------------------------------------------------
// Forward declaration(s):
namespace portaudio
{
class StreamParameters;
}
// ---------------------------------------------------------------------------------------
// Declaration(s):
namespace portaudio
{
//////
/// @brief A Stream represents an active or inactive input and/or output data
/// stream in the System.
///
/// Concrete Stream classes should ensure themselves being in a closed state at
/// destruction (i.e. by calling their own close() method in their deconstructor).
/// Following good C++ programming practices, care must be taken to ensure no
/// exceptions are thrown by the deconstructor of these classes. As a consequence,
/// clients need to explicitly call close() to ensure the stream closed successfully.
///
/// The Stream object can be used to manipulate the Stream's state. Also, time-constant
/// and time-varying information about the Stream can be retreived.
//////
class Stream
{
public:
// Opening/closing:
virtual ~Stream();
virtual void close();
bool isOpen() const;
// Additional set up:
void setStreamFinishedCallback(PaStreamFinishedCallback *callback);
// State management:
void start();
void stop();
void abort();
bool isStopped() const;
bool isActive() const;
// Stream info (time-constant, but might become time-variant soon):
PaTime inputLatency() const;
PaTime outputLatency() const;
double sampleRate() const;
// Stream info (time-varying):
PaTime time() const;
// Accessors for PortAudio PaStream, useful for interfacing
// with PortAudio add-ons (such as PortMixer) for instance:
const PaStream *paStream() const;
PaStream *paStream();
protected:
Stream(); // abstract class
PaStream *stream_;
private:
Stream(const Stream &); // non-copyable
Stream &operator=(const Stream &); // non-copyable
};
} // namespace portaudio
#endif // INCLUDED_PORTAUDIO_STREAM_HXX