X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fexport.h;h=141786873d2db5302158e3613cb8b2f25428c28f;hb=022818b4a796f52c0a91eea42e65aec0bc7bed43;hp=075464767e3a7f1f0acd1bdedf5a288c4014f185;hpb=433d9a5fc3538aa170d3ad1cb11929c0e5e94567;p=ardour.git diff --git a/libs/ardour/ardour/export.h b/libs/ardour/ardour/export.h index 075464767e..141786873d 100644 --- a/libs/ardour/ardour/export.h +++ b/libs/ardour/ardour/export.h @@ -1,3 +1,22 @@ +/* + Copyright (C) 2000-2007 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef __ardour_export_h__ #define __ardour_export_h__ @@ -23,66 +42,66 @@ namespace ARDOUR class Port; typedef pair PortChannelPair; - typedef map > AudioExportPortMap; + typedef map > ExportPortMap; - struct AudioExportSpecification : public SF_INFO, public sigc::trackable { + struct ExportSpecification : public SF_INFO, public sigc::trackable { - AudioExportSpecification(); - ~AudioExportSpecification (); + ExportSpecification(); + ~ExportSpecification (); void init (); void clear (); - int prepare (jack_nframes_t blocksize, jack_nframes_t frame_rate); + int prepare (nframes_t blocksize, nframes_t frame_rate); - int process (jack_nframes_t nframes); + int process (nframes_t nframes); /* set by the user */ string path; - jack_nframes_t sample_rate; + nframes_t sample_rate; - int src_quality; - SNDFILE* out; + int src_quality; + SNDFILE* out; uint32_t channels; - AudioExportPortMap port_map; - jack_nframes_t start_frame; - jack_nframes_t end_frame; - GDitherType dither_type; - bool do_freewheel; + ExportPortMap port_map; + nframes_t start_frame; + nframes_t end_frame; + GDitherType dither_type; + bool do_freewheel; /* used exclusively during export */ - jack_nframes_t frame_rate; - GDither dither; - float* dataF; - float* dataF2; - float* leftoverF; - jack_nframes_t leftover_frames; - jack_nframes_t max_leftover_frames; - void* output_data; - jack_nframes_t out_samples_max; - uint32_t sample_bytes; - uint32_t data_width; - - jack_nframes_t total_frames; - SF_INFO sfinfo; - SRC_DATA src_data; - SRC_STATE* src_state; - jack_nframes_t pos; - - sigc::connection freewheel_connection; + nframes_t frame_rate; + GDither dither; + float* dataF; + float* dataF2; + float* leftoverF; + nframes_t leftover_frames; + nframes_t max_leftover_frames; + void* output_data; + nframes_t out_samples_max; + uint32_t sample_bytes; + uint32_t data_width; + + nframes_t total_frames; + SF_INFO sfinfo; + SRC_DATA src_data; + SRC_STATE* src_state; + nframes_t pos; + + sigc::connection freewheel_connection; /* shared between UI thread and audio thread */ - float progress; /* audio thread sets this */ - bool stop; /* UI sets this */ - bool running; /* audio thread sets to false when export is done */ - - int status; + volatile float progress; /* audio thread sets this */ + volatile bool stop; /* UI sets this */ + volatile bool running; /* audio thread sets to false when export is done */ + int status; }; + } // namespace ARDOUR #endif /* __ardour_export_h__ */