ACMX 2.139.0
Dual-Backend Real-Time GPU Video Synthesis
Loading...
Searching...
No Matches
acmx2::audio::AudioRecorder::Impl Class Reference

Public Member Functions

void capture (const float *samples, unsigned int frame_count, unsigned int input_channels)
bool start (const std::string &filepath, unsigned int new_sample_rate, unsigned int new_channels)
void stop ()
void write_to_disk ()
 ~Impl ()

Public Attributes

std::atomic< unsigned int > active_captures {0}
unsigned int channels = 2
std::atomic< std::uint64_t > data_size {0}
std::atomic< bool > disk_running {false}
std::thread disk_thread
std::atomic< std::uint32_t > fade_position {0}
std::ofstream file
std::atomic< float > gain {1.0f}
std::atomic< bool > recording {false}
std::array< std::int16_t, RING_CAPACITY > ring {}
std::atomic< std::size_t > ring_head {0}
std::atomic< std::size_t > ring_tail {0}
unsigned int sample_rate = 44100

Detailed Description

Definition at line 240 of file ACMX2/audio.cpp.

Constructor & Destructor Documentation

◆ ~Impl()

acmx2::audio::AudioRecorder::Impl::~Impl ( )
inline

Definition at line 242 of file ACMX2/audio.cpp.

References stop().

Member Function Documentation

◆ capture()

void acmx2::audio::AudioRecorder::Impl::capture ( const float * samples,
unsigned int frame_count,
unsigned int input_channels )
inline

Definition at line 286 of file ACMX2/audio.cpp.

References active_captures, fade_position, gain, recording, ring, ring_head, and ring_tail.

◆ start()

bool acmx2::audio::AudioRecorder::Impl::start ( const std::string & filepath,
unsigned int new_sample_rate,
unsigned int new_channels )
inline

◆ stop()

void acmx2::audio::AudioRecorder::Impl::stop ( )
inline

Definition at line 268 of file ACMX2/audio.cpp.

References active_captures, channels, data_size, disk_running, disk_thread, file, recording, and sample_rate.

Referenced by ~Impl().

◆ write_to_disk()

void acmx2::audio::AudioRecorder::Impl::write_to_disk ( )
inline

Definition at line 318 of file ACMX2/audio.cpp.

References data_size, disk_running, file, ring, ring_head, and ring_tail.

Referenced by start().

Member Data Documentation

◆ active_captures

std::atomic<unsigned int> acmx2::audio::AudioRecorder::Impl::active_captures {0}

Definition at line 344 of file ACMX2/audio.cpp.

Referenced by capture(), and stop().

◆ channels

unsigned int acmx2::audio::AudioRecorder::Impl::channels = 2

Definition at line 349 of file ACMX2/audio.cpp.

Referenced by start(), and stop().

◆ data_size

std::atomic<std::uint64_t> acmx2::audio::AudioRecorder::Impl::data_size {0}

Definition at line 345 of file ACMX2/audio.cpp.

Referenced by start(), stop(), and write_to_disk().

◆ disk_running

std::atomic<bool> acmx2::audio::AudioRecorder::Impl::disk_running {false}

Definition at line 343 of file ACMX2/audio.cpp.

Referenced by start(), stop(), and write_to_disk().

◆ disk_thread

std::thread acmx2::audio::AudioRecorder::Impl::disk_thread

Definition at line 354 of file ACMX2/audio.cpp.

Referenced by start(), and stop().

◆ fade_position

std::atomic<std::uint32_t> acmx2::audio::AudioRecorder::Impl::fade_position {0}

Definition at line 346 of file ACMX2/audio.cpp.

Referenced by capture(), and start().

◆ file

std::ofstream acmx2::audio::AudioRecorder::Impl::file

Definition at line 341 of file ACMX2/audio.cpp.

Referenced by start(), stop(), and write_to_disk().

◆ gain

std::atomic<float> acmx2::audio::AudioRecorder::Impl::gain {1.0f}

Definition at line 347 of file ACMX2/audio.cpp.

Referenced by capture().

◆ recording

std::atomic<bool> acmx2::audio::AudioRecorder::Impl::recording {false}

Definition at line 342 of file ACMX2/audio.cpp.

Referenced by capture(), start(), and stop().

◆ ring

std::array<std::int16_t, RING_CAPACITY> acmx2::audio::AudioRecorder::Impl::ring {}

Definition at line 351 of file ACMX2/audio.cpp.

Referenced by capture(), and write_to_disk().

◆ ring_head

std::atomic<std::size_t> acmx2::audio::AudioRecorder::Impl::ring_head {0}

Definition at line 352 of file ACMX2/audio.cpp.

Referenced by capture(), start(), and write_to_disk().

◆ ring_tail

std::atomic<std::size_t> acmx2::audio::AudioRecorder::Impl::ring_tail {0}

Definition at line 353 of file ACMX2/audio.cpp.

Referenced by capture(), start(), and write_to_disk().

◆ sample_rate

unsigned int acmx2::audio::AudioRecorder::Impl::sample_rate = 44100

Definition at line 348 of file ACMX2/audio.cpp.

Referenced by start(), and stop().


The documentation for this class was generated from the following file: