Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::ExportHandler Class Reference

#include <export_handler.h>

Inheritance diagram for ARDOUR::ExportHandler:
[legend]

Classes

struct  CDMarkerStatus
 
struct  FileSpec
 

Public Member Functions

 ~ExportHandler ()
 
bool add_export_config (ExportTimespanPtr timespan, ExportChannelConfigPtr channel_config, ExportFormatSpecPtr format, ExportFilenamePtr filename, BroadcastInfoPtr broadcast_info)
 
int do_export ()
 
std::string get_cd_marker_filename (std::string filename, CDMarkerFormat format)
 
void reset ()
 
- Public Member Functions inherited from ARDOUR::ExportElementFactory
 ExportElementFactory (Session &session)
 
 ~ExportElementFactory ()
 
ExportTimespanPtr add_timespan ()
 
ExportChannelConfigPtr add_channel_config ()
 
ExportFormatSpecPtr add_format ()
 
ExportFormatSpecPtr add_format (XMLNode const &state)
 
ExportFormatSpecPtr add_format_copy (ExportFormatSpecPtr other)
 
ExportFilenamePtr add_filename ()
 
ExportFilenamePtr add_filename_copy (ExportFilenamePtr other)
 

Public Attributes

PBD::Signal< void(double, double, std::string)> SoundcloudProgress
 
std::string soundcloud_username
 
std::string soundcloud_password
 
bool soundcloud_make_public
 
bool soundcloud_open_page
 
bool soundcloud_downloadable
 

Private Types

typedef std::multimap< ExportTimespanPtr, FileSpecConfigMap
 
typedef std::pair< ConfigMap::iterator, ConfigMap::iterator > TimespanBounds
 

Private Member Functions

 ExportHandler (Session &session)
 
void command_output (std::string output, size_t size)
 
void handle_duplicate_format_extensions ()
 
int process (samplecnt_t samples)
 
void timespan_thread_wakeup ()
 
int start_timespan ()
 
int process_timespan (samplecnt_t samples)
 
int post_process ()
 
void finish_timespan ()
 
void export_cd_marker_file (ExportTimespanPtr timespan, ExportFormatSpecPtr file_format, std::string filename, CDMarkerFormat format)
 
void write_cue_header (CDMarkerStatus &status)
 
void write_toc_header (CDMarkerStatus &status)
 
void write_mp4ch_header (CDMarkerStatus &status)
 
void write_track_info_cue (CDMarkerStatus &status)
 
void write_track_info_toc (CDMarkerStatus &status)
 
void write_track_info_mp4ch (CDMarkerStatus &status)
 
void write_index_info_cue (CDMarkerStatus &status)
 
void write_index_info_toc (CDMarkerStatus &status)
 
void write_index_info_mp4ch (CDMarkerStatus &status)
 
void samples_to_cd_frame_string (char *buf, samplepos_t when)
 
void samples_to_chapter_marks_string (char *buf, samplepos_t when)
 
std::string toc_escape_cdtext (const std::string &)
 
std::string toc_escape_filename (const std::string &)
 
std::string cue_escape_cdtext (const std::string &txt)
 

Static Private Member Functions

static void * _timespan_thread_run (void *)
 

Private Attributes

Sessionsession
 
std::shared_ptr< ExportGraphBuildergraph_builder
 
ExportStatusPtr export_status
 
ConfigMap config_map
 
bool post_processing
 
PBD::Thread_timespan_thread
 
std::atomic< int > _timespan_thread_active
 
pthread_mutex_t _timespan_mutex
 
pthread_cond_t _timespan_cond
 
ExportTimespanPtr current_timespan
 
TimespanBounds timespan_bounds
 
PBD::ScopedConnection process_connection
 
samplepos_t process_position
 
int cue_tracknum
 
int cue_indexnum
 

Friends

std::shared_ptr< ExportHandlerSession::get_export_handler ()
 

Detailed Description

Export Handler

Definition at line 77 of file export_handler.h.

Member Typedef Documentation

◆ ConfigMap

Definition at line 142 of file export_handler.h.

◆ TimespanBounds

typedef std::pair<ConfigMap::iterator, ConfigMap::iterator> ARDOUR::ExportHandler::TimespanBounds
private

Definition at line 162 of file export_handler.h.

Constructor & Destructor Documentation

◆ ExportHandler()

ARDOUR::ExportHandler::ExportHandler ( Session session)
private

◆ ~ExportHandler()

ARDOUR::ExportHandler::~ExportHandler ( )

Member Function Documentation

◆ _timespan_thread_run()

static void* ARDOUR::ExportHandler::_timespan_thread_run ( void *  )
staticprivate

◆ add_export_config()

bool ARDOUR::ExportHandler::add_export_config ( ExportTimespanPtr  timespan,
ExportChannelConfigPtr  channel_config,
ExportFormatSpecPtr  format,
ExportFilenamePtr  filename,
BroadcastInfoPtr  broadcast_info 
)

◆ command_output()

void ARDOUR::ExportHandler::command_output ( std::string  output,
size_t  size 
)
private

◆ cue_escape_cdtext()

std::string ARDOUR::ExportHandler::cue_escape_cdtext ( const std::string &  txt)
private

◆ do_export()

int ARDOUR::ExportHandler::do_export ( )

◆ export_cd_marker_file()

void ARDOUR::ExportHandler::export_cd_marker_file ( ExportTimespanPtr  timespan,
ExportFormatSpecPtr  file_format,
std::string  filename,
CDMarkerFormat  format 
)
private

◆ finish_timespan()

void ARDOUR::ExportHandler::finish_timespan ( )
private

◆ get_cd_marker_filename()

std::string ARDOUR::ExportHandler::get_cd_marker_filename ( std::string  filename,
CDMarkerFormat  format 
)

◆ handle_duplicate_format_extensions()

void ARDOUR::ExportHandler::handle_duplicate_format_extensions ( )
private

◆ post_process()

int ARDOUR::ExportHandler::post_process ( )
private

◆ process()

int ARDOUR::ExportHandler::process ( samplecnt_t  samples)
private

◆ process_timespan()

int ARDOUR::ExportHandler::process_timespan ( samplecnt_t  samples)
private

◆ reset()

void ARDOUR::ExportHandler::reset ( )

◆ samples_to_cd_frame_string()

void ARDOUR::ExportHandler::samples_to_cd_frame_string ( char *  buf,
samplepos_t  when 
)
private

◆ samples_to_chapter_marks_string()

void ARDOUR::ExportHandler::samples_to_chapter_marks_string ( char *  buf,
samplepos_t  when 
)
private

◆ start_timespan()

int ARDOUR::ExportHandler::start_timespan ( )
private

◆ timespan_thread_wakeup()

void ARDOUR::ExportHandler::timespan_thread_wakeup ( )
private

◆ toc_escape_cdtext()

std::string ARDOUR::ExportHandler::toc_escape_cdtext ( const std::string &  )
private

◆ toc_escape_filename()

std::string ARDOUR::ExportHandler::toc_escape_filename ( const std::string &  )
private

◆ write_cue_header()

void ARDOUR::ExportHandler::write_cue_header ( CDMarkerStatus status)
private

◆ write_index_info_cue()

void ARDOUR::ExportHandler::write_index_info_cue ( CDMarkerStatus status)
private

◆ write_index_info_mp4ch()

void ARDOUR::ExportHandler::write_index_info_mp4ch ( CDMarkerStatus status)
private

◆ write_index_info_toc()

void ARDOUR::ExportHandler::write_index_info_toc ( CDMarkerStatus status)
private

◆ write_mp4ch_header()

void ARDOUR::ExportHandler::write_mp4ch_header ( CDMarkerStatus status)
private

◆ write_toc_header()

void ARDOUR::ExportHandler::write_toc_header ( CDMarkerStatus status)
private

◆ write_track_info_cue()

void ARDOUR::ExportHandler::write_track_info_cue ( CDMarkerStatus status)
private

◆ write_track_info_mp4ch()

void ARDOUR::ExportHandler::write_track_info_mp4ch ( CDMarkerStatus status)
private

◆ write_track_info_toc()

void ARDOUR::ExportHandler::write_track_info_toc ( CDMarkerStatus status)
private

Friends And Related Function Documentation

◆ Session::get_export_handler

std::shared_ptr<ExportHandler> Session::get_export_handler ( )
friend

Member Data Documentation

◆ _timespan_cond

pthread_cond_t ARDOUR::ExportHandler::_timespan_cond
private

Definition at line 155 of file export_handler.h.

◆ _timespan_mutex

pthread_mutex_t ARDOUR::ExportHandler::_timespan_mutex
private

Definition at line 154 of file export_handler.h.

◆ _timespan_thread

PBD::Thread* ARDOUR::ExportHandler::_timespan_thread
private

Definition at line 152 of file export_handler.h.

◆ _timespan_thread_active

std::atomic<int> ARDOUR::ExportHandler::_timespan_thread_active
private

Definition at line 153 of file export_handler.h.

◆ config_map

ConfigMap ARDOUR::ExportHandler::config_map
private

Definition at line 143 of file export_handler.h.

◆ cue_indexnum

int ARDOUR::ExportHandler::cue_indexnum
private

Definition at line 234 of file export_handler.h.

◆ cue_tracknum

int ARDOUR::ExportHandler::cue_tracknum
private

Definition at line 233 of file export_handler.h.

◆ current_timespan

ExportTimespanPtr ARDOUR::ExportHandler::current_timespan
private

Definition at line 163 of file export_handler.h.

◆ export_status

ExportStatusPtr ARDOUR::ExportHandler::export_status
private

Definition at line 137 of file export_handler.h.

◆ graph_builder

std::shared_ptr<ExportGraphBuilder> ARDOUR::ExportHandler::graph_builder
private

Definition at line 136 of file export_handler.h.

◆ post_processing

bool ARDOUR::ExportHandler::post_processing
private

Definition at line 145 of file export_handler.h.

◆ process_connection

PBD::ScopedConnection ARDOUR::ExportHandler::process_connection
private

Definition at line 166 of file export_handler.h.

◆ process_position

samplepos_t ARDOUR::ExportHandler::process_position
private

Definition at line 167 of file export_handler.h.

◆ session

Session& ARDOUR::ExportHandler::session
private

Definition at line 135 of file export_handler.h.

◆ soundcloud_downloadable

bool ARDOUR::ExportHandler::soundcloud_downloadable

Definition at line 126 of file export_handler.h.

◆ soundcloud_make_public

bool ARDOUR::ExportHandler::soundcloud_make_public

Definition at line 124 of file export_handler.h.

◆ soundcloud_open_page

bool ARDOUR::ExportHandler::soundcloud_open_page

Definition at line 125 of file export_handler.h.

◆ soundcloud_password

std::string ARDOUR::ExportHandler::soundcloud_password

Definition at line 123 of file export_handler.h.

◆ soundcloud_username

std::string ARDOUR::ExportHandler::soundcloud_username

Definition at line 122 of file export_handler.h.

◆ SoundcloudProgress

PBD::Signal<void(double, double, std::string)> ARDOUR::ExportHandler::SoundcloudProgress

signal emitted when soundcloud export reports progress updates during upload. The parameters are total and current bytes downloaded, and the current filename

Definition at line 119 of file export_handler.h.

◆ timespan_bounds

TimespanBounds ARDOUR::ExportHandler::timespan_bounds
private

Definition at line 164 of file export_handler.h.


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