diff options
author | David Robillard <d@drobilla.net> | 2006-07-14 03:43:32 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2006-07-14 03:43:32 +0000 |
commit | 50a3102b9b533d7f8786d220f8df67421b9227c8 (patch) | |
tree | 669f84631ba1d9a1d312e3f76b226ca938c75c0f /libs/ardour | |
parent | edd841895b873b14c4aa814a80de5dc20ff30618 (diff) |
Merge big changes (mostly Controllable) from trunk
git-svn-id: svn://localhost/ardour2/branches/midi@682 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
70 files changed, 1627 insertions, 2790 deletions
diff --git a/libs/ardour/SConscript b/libs/ardour/SConscript index c93a7c4593..83849884ff 100644 --- a/libs/ardour/SConscript +++ b/libs/ardour/SConscript @@ -94,7 +94,6 @@ sndfile_helpers.cc sndfilesource.cc source.cc state_manager.cc -stateful.cc tempo.cc utils.cc version.cc diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h index c0dfea9a95..dba588702f 100644 --- a/libs/ardour/ardour/ardour.h +++ b/libs/ardour/ardour/ardour.h @@ -58,7 +58,7 @@ namespace ARDOUR { const layer_t max_layer = UCHAR_MAX; - id_t new_id(); + microseconds_t get_microseconds (); Change new_change (); diff --git a/libs/ardour/ardour/audio_diskstream.h b/libs/ardour/ardour/audio_diskstream.h index d1833d01a5..8e0f892e5a 100644 --- a/libs/ardour/ardour/audio_diskstream.h +++ b/libs/ardour/ardour/audio_diskstream.h @@ -33,7 +33,7 @@ #include <pbd/fastlog.h> #include <pbd/ringbufferNPT.h> - +#include <pbd/stateful.h> #include <ardour/ardour.h> #include <ardour/configuration.h> @@ -44,6 +44,7 @@ #include <ardour/utils.h> #include <ardour/diskstream.h> #include <ardour/audioplaylist.h> + struct tm; namespace ARDOUR { @@ -160,6 +161,17 @@ class AudioDiskstream : public Diskstream //static sigc::signal<void,AudioDiskstream*> AudioDiskstreamCreated; // XXX use a ref with sigc2 static sigc::signal<void,list<AudioFileSource*>*> DeleteSources; + int set_loop (Location *loc); + sigc::signal<void,Location *> LoopSet; + + std::list<Region*>& last_capture_regions () { + return _last_capture_regions; + } + + void handle_input_change (IOChange, void *src); + + const PBD::ID& id() const { return _id; } + protected: friend class Session; @@ -284,10 +296,11 @@ class AudioDiskstream : public Diskstream void set_align_style_from_io(); void setup_destructive_playlist (); void use_destructive_playlist (); - ChannelList channels; AudioPlaylist* _playlist; + void engage_record_enable (void* src); + void disengage_record_enable (void* src); }; }; /* namespace ARDOUR */ diff --git a/libs/ardour/ardour/audio_library.h b/libs/ardour/ardour/audio_library.h index 2f9e84551b..3d4585fbd8 100644 --- a/libs/ardour/ardour/audio_library.h +++ b/libs/ardour/ardour/audio_library.h @@ -28,18 +28,23 @@ #include <sigc++/signal.h> +#include <pbd/stateful.h> + using std::vector; using std::string; using std::map; namespace ARDOUR { -class AudioLibrary +class AudioLibrary : public Stateful { public: AudioLibrary (); ~AudioLibrary (); + XMLNode& get_state (void); + int set_state (const XMLNode&); + void set_paths (vector<string> paths); vector<string> get_paths (); void scan_paths (); diff --git a/libs/ardour/ardour/audio_track.h b/libs/ardour/ardour/audio_track.h index 9d06f9425d..e92c11faff 100644 --- a/libs/ardour/ardour/audio_track.h +++ b/libs/ardour/ardour/audio_track.h @@ -55,7 +55,7 @@ class AudioTrack : public Route AudioDiskstream& disk_stream() const { return *_diskstream; } int set_diskstream (AudioDiskstream&, void *); int use_diskstream (string name); - int use_diskstream (id_t id); + int use_diskstream (const PBD::ID& id); TrackMode mode() const { return _mode; } void set_mode (TrackMode m); @@ -88,13 +88,10 @@ class AudioTrack : public Route XMLNode& get_template(); int set_state(const XMLNode& node); - MIDI::Controllable& midi_rec_enable_control() { - return _midi_rec_enable_control; + PBD::Controllable& rec_enable_control() { + return _rec_enable_control; } - void reset_midi_control (MIDI::Port*, bool); - void send_all_midi_feedback (); - bool record_enabled() const; void set_meter_point (MeterPoint, void* src); @@ -116,9 +113,9 @@ class AudioTrack : public Route FreezeRecordInsertInfo(XMLNode& st) : state (st), insert (0) {} - XMLNode state; - Insert* insert; - id_t id; + XMLNode state; + Insert* insert; + PBD::ID id; UndoAction memento; }; @@ -151,17 +148,16 @@ class AudioTrack : public Route void set_state_part_two (); void set_state_part_three (); - struct MIDIRecEnableControl : public MIDI::Controllable { - MIDIRecEnableControl (AudioTrack&, MIDI::Port *); - void set_value (float); - void send_feedback (bool); - MIDI::byte* write_feedback (MIDI::byte* buf, int32_t& bufsize, bool val, bool force = false); - AudioTrack& track; - bool setting; - bool last_written; + struct RecEnableControllable : public PBD::Controllable { + RecEnableControllable (AudioTrack&); + + void set_value (float); + float get_value (void) const; + + AudioTrack& track; }; - MIDIRecEnableControl _midi_rec_enable_control; + RecEnableControllable _rec_enable_control; bool _destructive; }; diff --git a/libs/ardour/ardour/audiofilesource.h b/libs/ardour/ardour/audiofilesource.h index 36251c07ff..b793ed14f0 100644 --- a/libs/ardour/ardour/audiofilesource.h +++ b/libs/ardour/ardour/audiofilesource.h @@ -95,7 +95,7 @@ class AudioFileSource : public AudioSource { static void set_bwf_serial_number (int); static void set_search_path (string); - static void set_header_position_offset (jack_nframes_t offset, bool negative); + static void set_header_position_offset (jack_nframes_t offset ); static sigc::signal<void> HeaderPositionOffsetChanged; @@ -107,7 +107,7 @@ class AudioFileSource : public AudioSource { to cause issues. */ - void handle_header_position_change (); + virtual void handle_header_position_change (); protected: @@ -141,7 +141,6 @@ class AudioFileSource : public AudioSource { static char bwf_serial_number[13]; static uint64_t header_position_offset; - static bool header_position_negative; virtual void set_timeline_position (jack_nframes_t pos); virtual void set_header_timeline_position () = 0; diff --git a/libs/ardour/ardour/audiosource.h b/libs/ardour/ardour/audiosource.h index 1dcf5b42f3..35158a24e7 100644 --- a/libs/ardour/ardour/audiosource.h +++ b/libs/ardour/ardour/audiosource.h @@ -33,7 +33,7 @@ #include <ardour/source.h> #include <ardour/ardour.h> -#include <ardour/stateful.h> +#include <pbd/stateful.h> #include <pbd/xml++.h> using std::list; @@ -51,6 +51,13 @@ class AudioSource : public Source AudioSource (const XMLNode&); virtual ~AudioSource (); + /* one could argue that this should belong to Source, but other data types + generally do not come with a model of "offset along an audio timeline" + so its here in AudioSource for now. + */ + + virtual jack_nframes_t natural_position() const { return 0; } + /* returns the number of items in this `audio_source' */ virtual jack_nframes_t length() const { diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h index 60b5e8a2c3..cc4376f781 100644 --- a/libs/ardour/ardour/configuration.h +++ b/libs/ardour/ardour/configuration.h @@ -27,8 +27,9 @@ #include <sys/types.h> #include <string> +#include <pbd/stateful.h> + #include <ardour/types.h> -#include <ardour/stateful.h> #include <ardour/utils.h> #include <ardour/configuration_variable.h> diff --git a/libs/ardour/ardour/connection.h b/libs/ardour/ardour/connection.h index 899bffc06a..da4d4e2684 100644 --- a/libs/ardour/ardour/connection.h +++ b/libs/ardour/ardour/connection.h @@ -25,7 +25,7 @@ #include <string> #include <sigc++/signal.h> #include <glibmm/thread.h> -#include <ardour/stateful.h> +#include <pbd/stateful.h> using std::vector; using std::string; diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h index 03b21a299c..8eda7a4555 100644 --- a/libs/ardour/ardour/control_protocol_manager.h +++ b/libs/ardour/ardour/control_protocol_manager.h @@ -8,7 +8,7 @@ #include <glibmm/thread.h> -#include <ardour/stateful.h> +#include <pbd/stateful.h> namespace ARDOUR { @@ -23,6 +23,7 @@ struct ControlProtocolInfo { std::string path; bool requested; bool mandatory; + XMLNode* state; }; class ControlProtocolManager : public sigc::trackable, public Stateful diff --git a/libs/ardour/ardour/destructive_filesource.h b/libs/ardour/ardour/destructive_filesource.h index 2d10528ac8..947367f754 100644 --- a/libs/ardour/ardour/destructive_filesource.h +++ b/libs/ardour/ardour/destructive_filesource.h @@ -49,6 +49,8 @@ class DestructiveFileSource : public SndFileSource { protected: jack_nframes_t write_unlocked (Sample *src, jack_nframes_t cnt, char * workbuf); + virtual void handle_header_position_change (); + private: static jack_nframes_t xfade_frames; static gain_t* out_coefficient; diff --git a/libs/ardour/ardour/diskstream.h b/libs/ardour/ardour/diskstream.h index a72289acd1..f9c662203c 100644 --- a/libs/ardour/ardour/diskstream.h +++ b/libs/ardour/ardour/diskstream.h @@ -33,7 +33,7 @@ #include <pbd/fastlog.h> #include <pbd/ringbufferNPT.h> - +#include <pbd/stateful.h> #include <ardour/ardour.h> #include <ardour/configuration.h> @@ -42,7 +42,7 @@ #include <ardour/route.h> #include <ardour/port.h> #include <ardour/utils.h> -#include <ardour/stateful.h> + struct tm; @@ -67,9 +67,6 @@ class Diskstream : public Stateful, public sigc::trackable Destructive = 0x4 }; - Diskstream (Session &, const string& name, Flag f = Recordable); - Diskstream (Session &, const XMLNode&); - string name () const { return _name; } virtual int set_name (string str, void* src); @@ -99,11 +96,11 @@ class Diskstream : public Stateful, public sigc::trackable bool destructive() const { return _flags & Destructive; } virtual void set_destructive (bool yn); - id_t id() const { return _id; } - bool hidden() const { return _flags & Hidden; } - bool recordable() const { return _flags & Recordable; } - bool reversed() const { return _actual_speed < 0.0f; } - double speed() const { return _visible_speed; } + const PBD::ID& id() const { return _id; } + bool hidden() const { return _flags & Hidden; } + bool recordable() const { return _flags & Recordable; } + bool reversed() const { return _actual_speed < 0.0f; } + double speed() const { return _visible_speed; } virtual void punch_in() {} virtual void punch_out() {} @@ -165,6 +162,9 @@ class Diskstream : public Stateful, public sigc::trackable protected: friend class Session; + Diskstream (Session &, const string& name, Flag f = Recordable); + Diskstream (Session &, const XMLNode&); + /* the Session is the only point of access for these because they require that the Session is "inactive" while they are called. @@ -280,7 +280,7 @@ class Diskstream : public Stateful, public sigc::trackable ARDOUR::Session& _session; ARDOUR::IO* _io; uint32_t _n_channels; - id_t _id; + PBD::ID _id; mutable gint _record_enabled; double _visible_speed; diff --git a/libs/ardour/ardour/insert.h b/libs/ardour/ardour/insert.h index 803e16497d..2d6b672064 100644 --- a/libs/ardour/ardour/insert.h +++ b/libs/ardour/ardour/insert.h @@ -133,9 +133,6 @@ class PluginInsert : public Insert bool is_generator() const; - void reset_midi_control (MIDI::Port*, bool); - void send_all_midi_feedback (); - void set_parameter (uint32_t port, float val); AutoState get_port_automation_state (uint32_t port); diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h index fa2fe9851d..f696295b58 100644 --- a/libs/ardour/ardour/io.h +++ b/libs/ardour/ardour/io.h @@ -31,11 +31,10 @@ #include <pbd/fastlog.h> #include <pbd/undo.h> - -#include <midi++/controllable.h> +#include <pbd/stateful.h> +#include <pbd/controllable.h> #include <ardour/ardour.h> -#include <ardour/stateful.h> #include <ardour/utils.h> #include <ardour/state_manager.h> #include <ardour/curve.h> @@ -186,25 +185,10 @@ class IO : public Stateful, public ARDOUR::StateManager static sigc::signal<void,uint32_t> MoreOutputs; static sigc::signal<int> PortsCreated; - /* MIDI control */ - - void set_midi_to_gain_function (gain_t (*function)(double val)) { - _midi_gain_control.midi_to_gain = function; - } - - void set_gain_to_midi_function (double (*function)(gain_t gain)) { - _midi_gain_control.gain_to_midi = function; - } - - MIDI::Controllable& midi_gain_control() { - return _midi_gain_control; + PBD::Controllable& gain_control() { + return _gain_control; } - virtual void reset_midi_control (MIDI::Port*, bool on); - - virtual void send_all_midi_feedback (); - virtual MIDI::byte* write_midi_feedback (MIDI::byte*, int32_t& bufsize); - /* Peak metering */ float peak_input_power (uint32_t n) { @@ -266,7 +250,7 @@ public: void start_pan_touch (uint32_t which); void end_pan_touch (uint32_t which); - id_t id() const { return _id; } + const PBD::ID& id() const { return _id; } void defer_pan_reset (); void allow_pan_reset (); @@ -295,7 +279,7 @@ public: string _name; Connection* _input_connection; Connection* _output_connection; - id_t _id; + PBD::ID _id; bool no_panner_reset; XMLNode* deferred_state; Buffer::Type _default_type; @@ -310,31 +294,22 @@ public: static void apply_declick (vector<Sample*>&, uint32_t nbufs, jack_nframes_t nframes, gain_t initial, gain_t target, bool invert_polarity); - struct MIDIGainControl : public MIDI::Controllable { - MIDIGainControl (IO&, MIDI::Port *); - void set_value (float); - - void send_feedback (gain_t); - MIDI::byte* write_feedback (MIDI::byte* buf, int32_t& bufsize, gain_t val, bool force = false); - + struct GainControllable : public PBD::Controllable { + GainControllable (IO& i) : io (i) {} + + void set_value (float val); + float get_value (void) const; + IO& io; - bool setting; - MIDI::byte last_written; - - gain_t (*midi_to_gain) (double val); - double (*gain_to_midi) (gain_t gain); }; - MIDIGainControl _midi_gain_control; + GainControllable _gain_control; /* state management */ Change restore_state (State&); StateManager::State* state_factory (std::string why) const; - bool get_midi_node_info (XMLNode * node, MIDI::eventType & ev, MIDI::channel_t & chan, MIDI::byte & additional); - bool set_midi_node_info (XMLNode * node, MIDI::eventType ev, MIDI::channel_t chan, MIDI::byte additional); - /* automation */ jack_nframes_t last_automation_snapshot; diff --git a/libs/ardour/ardour/ladspa_plugin.h b/libs/ardour/ardour/ladspa_plugin.h index 2451953ce5..e4aba93ef6 100644 --- a/libs/ardour/ardour/ladspa_plugin.h +++ b/libs/ardour/ardour/ladspa_plugin.h @@ -27,12 +27,12 @@ #include <string> #include <dlfcn.h> -#include <midi++/controllable.h> #include <sigc++/signal.h> +#include <pbd/stateful.h> + #include <jack/types.h> #include <ardour/ladspa.h> -#include <ardour/stateful.h> #include <ardour/plugin_state.h> #include <ardour/plugin.h> #include <ardour/ladspa_plugin.h> diff --git a/libs/ardour/ardour/location.h b/libs/ardour/ardour/location.h index 75f4c5d12a..2c9f947541 100644 --- a/libs/ardour/ardour/location.h +++ b/libs/ardour/ardour/location.h @@ -32,10 +32,10 @@ #include <glibmm/thread.h> #include <pbd/undo.h> +#include <pbd/stateful.h> -#include "ardour.h" -#include "stateful.h" -#include "state_manager.h" +#include <ardour/ardour.h> +#include <ardour/state_manager.h> using std::string; diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h index 735ebba447..8e4da44082 100644 --- a/libs/ardour/ardour/midi_source.h +++ b/libs/ardour/ardour/midi_source.h @@ -30,7 +30,7 @@ #include <ardour/source.h> #include <ardour/ardour.h> -#include <ardour/stateful.h> +#include <pbd/stateful.h> #include <pbd/xml++.h> using std::string; diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h index 1ef9bedf8d..090ca6b729 100644 --- a/libs/ardour/ardour/midi_track.h +++ b/libs/ardour/ardour/midi_track.h @@ -54,11 +54,11 @@ public: void set_record_enable (bool yn, void *src); - MidiDiskstream& disk_stream() const { return *diskstream; } + MidiDiskstream& disk_stream() const { return *_diskstream; } int set_diskstream (MidiDiskstream&, void *); int use_diskstream (string name); - int use_diskstream (id_t id); + int use_diskstream (const PBD::ID& id); TrackMode mode() const { return _mode; } @@ -93,16 +93,13 @@ public: XMLNode& get_template(); int set_state(const XMLNode& node); - MIDI::Controllable& midi_rec_enable_control() { return _midi_rec_enable_control; } - - void reset_midi_control (MIDI::Port*, bool); - void send_all_midi_feedback (); + PBD::Controllable& rec_enable_control() { return _rec_enable_control; } bool record_enabled() const; void set_meter_point (MeterPoint, void* src); protected: - MidiDiskstream *diskstream; + MidiDiskstream *_diskstream; MeterPoint _saved_meter_point; TrackMode _mode; @@ -123,7 +120,7 @@ private: XMLNode state; Insert* insert; - id_t id; + PBD::ID id; UndoAction memento; }; @@ -158,18 +155,16 @@ private: void set_state_part_two (); void set_state_part_three (); - struct MIDIRecEnableControl : public MIDI::Controllable - { - MIDIRecEnableControl (MidiTrack&, MIDI::Port *); - void set_value (float); - void send_feedback (bool); - MIDI::byte* write_feedback (MIDI::byte* buf, int32_t& bufsize, bool val, bool force = false); - MidiTrack& track; - bool setting; - bool last_written; + struct MIDIRecEnableControllable : public PBD::Controllable { + MIDIRecEnableControllable (MidiTrack&); + + void set_value (float); + float get_value (void) const; + + MidiTrack& track; }; - MIDIRecEnableControl _midi_rec_enable_control; + MIDIRecEnableControllable _rec_enable_control; bool _destructive; }; diff --git a/libs/ardour/ardour/named_selection.h b/libs/ardour/ardour/named_selection.h index 91bb816181..87b71e73ff 100644 --- a/libs/ardour/ardour/named_selection.h +++ b/libs/ardour/ardour/named_selection.h @@ -24,7 +24,7 @@ #include <string> #include <list> -#include <ardour/stateful.h> +#include <pbd/stateful.h> class XMLNode; diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h index 806f350e03..37c985a2ef 100644 --- a/libs/ardour/ardour/panner.h +++ b/libs/ardour/ardour/panner.h @@ -27,10 +27,10 @@ #include <iostream> #include <sigc++/signal.h> -#include <midi++/controllable.h> +#include <pbd/stateful.h> +#include <pbd/controllable.h> #include <ardour/types.h> -#include <ardour/stateful.h> #include <ardour/curve.h> using std::istream; @@ -75,24 +75,7 @@ class StreamPanner : public sigc::trackable, public Stateful virtual void set_automation_state (AutoState) = 0; virtual void set_automation_style (AutoStyle) = 0; - /* MIDI control */ - - struct MIDIControl : public MIDI::Controllable { - MIDIControl (StreamPanner&, MIDI::Port *); - void set_value (float); - void send_feedback (gain_t); - MIDI::byte* write_feedback (MIDI::byte* buf, int32_t& bufsize, gain_t val, bool force = false); - - pan_t (*midi_to_pan)(double val); - double (*pan_to_midi)(pan_t p); - - StreamPanner& sp; - bool setting; - gain_t last_written; - }; - - MIDIControl& midi_control() { return _midi_control; } - void reset_midi_control (MIDI::Port *, bool); + PBD::Controllable& control() { return _control; } /* XXX this is wrong. for multi-dimensional panners, there must surely be more than 1 automation curve. @@ -100,7 +83,6 @@ class StreamPanner : public sigc::trackable, public Stateful virtual Curve& automation() = 0; - virtual int load (istream&, string path, uint32_t&) = 0; virtual int save (ostream&) const = 0; @@ -130,12 +112,20 @@ class StreamPanner : public sigc::trackable, public Stateful float effective_z; bool _muted; - MIDIControl _midi_control; - void add_state (XMLNode&); - bool get_midi_node_info (XMLNode * node, MIDI::eventType & ev, MIDI::channel_t & chan, MIDI::byte & additional); - bool set_midi_node_info (XMLNode * node, MIDI::eventType ev, MIDI::channel_t chan, MIDI::byte additional); + struct PanControllable : public PBD::Controllable { + PanControllable (StreamPanner& p) : panner (p) {} + + StreamPanner& panner; + + void set_value (float); + float get_value (void) const; + bool can_send_feedback() const; + }; + PanControllable _control; + + void add_state (XMLNode&); virtual void update () = 0; }; @@ -290,10 +280,6 @@ class Panner : public std::vector<StreamPanner*>, public Stateful, public sigc:: std::vector<Output> outputs; Session& session() const { return _session; } - void reset_midi_control (MIDI::Port *, bool); - void send_all_midi_feedback (); - MIDI::byte* write_midi_feedback (MIDI::byte*, int32_t& bufsize); - enum LinkDirection { SameDirection, OppositeDirection diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index 0a988b3c10..69b6a1fbc3 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -31,12 +31,13 @@ #include <glib.h> #include <sigc++/signal.h> + #include <pbd/undo.h> +#include <pbd/stateful.h> #include <ardour/ardour.h> #include <ardour/crossfade_compare.h> #include <ardour/location.h> -#include <ardour/stateful.h> #include <ardour/state_manager.h> namespace ARDOUR { @@ -86,7 +87,7 @@ class Playlist : public Stateful, public StateManager { void duplicate (Region&, jack_nframes_t position, float times); void nudge_after (jack_nframes_t start, jack_nframes_t distance, bool forwards); - Region* find_region (id_t) const; + Region* find_region (const PBD::ID&) const; Playlist* cut (list<AudioRange>&, bool result_is_hidden = true); Playlist* copy (list<AudioRange>&, bool result_is_hidden = true); @@ -135,8 +136,8 @@ class Playlist : public Stateful, public StateManager { Session& session() { return _session; } - id_t get_orig_diskstream_id () const { return _orig_diskstream_id; } - void set_orig_diskstream_id (id_t did) { _orig_diskstream_id = did; } + const PBD::ID& get_orig_diskstream_id () const { return _orig_diskstream_id; } + void set_orig_diskstream_id (const PBD::ID& did) { _orig_diskstream_id = did; } /* destructive editing */ @@ -190,7 +191,7 @@ class Playlist : public Stateful, public StateManager { bool _frozen; uint32_t subcnt; uint32_t _read_data_count; - id_t _orig_diskstream_id; + PBD::ID _orig_diskstream_id; uint64_t layer_op_counter; jack_nframes_t freeze_length; diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h index 211b00d0bb..e7d05aa352 100644 --- a/libs/ardour/ardour/plugin.h +++ b/libs/ardour/ardour/plugin.h @@ -21,12 +21,13 @@ #ifndef __ardour_ladspa_h__ #define __ardour_ladspa_h__ -#include <midi++/controllable.h> #include <sigc++/signal.h> +#include <pbd/stateful.h> +#include <pbd/controllable.h> + #include <jack/types.h> #include <ardour/types.h> -#include <ardour/stateful.h> #include <ardour/plugin_state.h> #include <ardour/cycles.h> @@ -136,10 +137,7 @@ class Plugin : public Stateful, public sigc::trackable sigc::signal<void,uint32_t,float> ParameterChanged; sigc::signal<void,Plugin *> GoingAway; - void reset_midi_control (MIDI::Port*, bool); - void send_all_midi_feedback (); - MIDI::byte* write_midi_feedback (MIDI::byte*, int32_t& bufsize); - MIDI::Controllable *get_nth_midi_control (uint32_t); + PBD::Controllable *get_nth_control (uint32_t); PluginInfo & get_info() { return _info; } void set_info (const PluginInfo &inf) { _info = inf; } @@ -158,16 +156,14 @@ class Plugin : public Stateful, public sigc::trackable map<string,string> presets; bool save_preset(string name, string domain /* vst, ladspa etc. */); - void setup_midi_controls (); - + void setup_controls (); - struct MIDIPortControl : public MIDI::Controllable { - MIDIPortControl (Plugin&, uint32_t abs_port_id, MIDI::Port *, - float lower, float upper, bool toggled, bool logarithmic); + struct PortControllable : public PBD::Controllable { + PortControllable (Plugin&, uint32_t abs_port_id, + float lower, float upper, bool toggled, bool logarithmic); void set_value (float); - void send_feedback (float); - MIDI::byte* write_feedback (MIDI::byte* buf, int32_t& bufsize, float val, bool force = false); + float get_value () const; Plugin& plugin; uint32_t absolute_port; @@ -176,14 +172,9 @@ class Plugin : public Stateful, public sigc::trackable float range; bool toggled; bool logarithmic; - - bool setting; - float last_written; }; - vector<MIDIPortControl*> midi_controls; - - + vector<PortControllable*> controls; }; /* this is actually defined in plugin_manager.cc */ diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h index 67b5b3d9dd..d58f98adca 100644 --- a/libs/ardour/ardour/region.h +++ b/libs/ardour/ardour/region.h @@ -97,7 +97,7 @@ class Region : public Stateful, public StateManager Region (const XMLNode&); ~Region(); - ARDOUR::id_t id() const { return _id; } + const PBD::ID& id() const { return _id; } /* Note: changing the name of a Region does not constitute an edit */ @@ -222,7 +222,7 @@ class Region : public Stateful, public StateManager mutable RegionEditState _first_edit; int _frozen; Glib::Mutex lock; - ARDOUR::id_t _id; + PBD::ID _id; ARDOUR::Playlist* _playlist; mutable uint32_t _read_data_count; // modified in read() Change pending_changed; diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index 747dae939c..d30138640a 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -31,10 +31,10 @@ #include <glibmm/thread.h> #include <pbd/xml++.h> #include <pbd/undo.h> -#include <midi++/controllable.h> +#include <pbd/stateful.h> +#include <pbd/controllable.h> #include <ardour/ardour.h> -#include <ardour/stateful.h> #include <ardour/io.h> #include <ardour/session.h> #include <ardour/redirect.h> @@ -215,34 +215,28 @@ class Route : public IO bool feeds (Route *); set<Route *> fed_by; - struct MIDIToggleControl : public MIDI::Controllable { - enum ToggleType { - MuteControl = 0, - SoloControl - }; - - MIDIToggleControl (Route&, ToggleType, MIDI::Port *); - void set_value (float); - void send_feedback (bool); - MIDI::byte* write_feedback (MIDI::byte* buf, int32_t& bufsize, bool val, bool force = false); - - Route& route; - ToggleType type; - bool setting; - bool last_written; + struct ToggleControllable : public PBD::Controllable { + enum ToggleType { + MuteControl = 0, + SoloControl + }; + + ToggleControllable (Route&, ToggleType); + void set_value (float); + float get_value (void) const; + + Route& route; + ToggleType type; }; - MIDI::Controllable& midi_solo_control() { - return _midi_solo_control; + PBD::Controllable& solo_control() { + return _solo_control; } - MIDI::Controllable& midi_mute_control() { - return _midi_mute_control; + + PBD::Controllable& mute_control() { + return _mute_control; } - virtual void reset_midi_control (MIDI::Port*, bool); - virtual void send_all_midi_feedback (); - virtual MIDI::byte* write_midi_feedback (MIDI::byte*, int32_t& bufsize); - void automation_snapshot (jack_nframes_t now); void protect_automation (); @@ -302,8 +296,8 @@ class Route : public IO std::string _comment; bool _have_internal_generator; - MIDIToggleControl _midi_solo_control; - MIDIToggleControl _midi_mute_control; + ToggleControllable _solo_control; + ToggleControllable _mute_control; void passthru (jack_nframes_t start_frame, jack_nframes_t end_frame, jack_nframes_t nframes, jack_nframes_t offset, int declick, bool meter_inputs); diff --git a/libs/ardour/ardour/route_group.h b/libs/ardour/ardour/route_group.h index c9f966666f..19374b4f65 100644 --- a/libs/ardour/ardour/route_group.h +++ b/libs/ardour/ardour/route_group.h @@ -26,7 +26,7 @@ #include <string> #include <stdint.h> #include <sigc++/signal.h> -#include <ardour/stateful.h> +#include <pbd/stateful.h> #include <ardour/types.h> using std::string; diff --git a/libs/ardour/ardour/send.h b/libs/ardour/ardour/send.h index a94318f2a5..54d4cbd7a9 100644 --- a/libs/ardour/ardour/send.h +++ b/libs/ardour/ardour/send.h @@ -24,12 +24,12 @@ #include <sigc++/signal.h> #include <string> + +#include <pbd/stateful.h> #include <ardour/ardour.h> #include <ardour/audioengine.h> - -#include "io.h" -#include "stateful.h" -#include "redirect.h" +#include <ardour/io.h> +#include <ardour/redirect.h> namespace ARDOUR { diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 0e1b7627be..6192fe4abd 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -40,10 +40,11 @@ #include <midi++/types.h> #include <midi++/mmc.h> +#include <pbd/stateful.h> + #include <ardour/ardour.h> #include <ardour/configuration.h> #include <ardour/location.h> -#include <ardour/stateful.h> #include <ardour/gain.h> #include <ardour/io.h> @@ -57,6 +58,10 @@ namespace MIDI { class Port; } +namespace PBD { + class Controllable; +} + namespace ARDOUR { class Port; @@ -274,7 +279,7 @@ class Session : public sigc::trackable, public Stateful vector<Sample*>& get_silent_buffers (uint32_t howmany); vector<Sample*>& get_send_buffers () { return _send_buffers; } - Diskstream *diskstream_by_id (id_t id); + Diskstream *diskstream_by_id (const PBD::ID& id); Diskstream *diskstream_by_name (string name); bool have_captured() const { return _have_captured; } @@ -706,7 +711,7 @@ class Session : public sigc::trackable, public Stateful AudioFileSource *create_audio_source_for_session (ARDOUR::AudioDiskstream&, uint32_t which_channel, bool destructive); - Source *get_source (ARDOUR::id_t); + Source *source_by_id (const PBD::ID&); /* playlist management */ @@ -967,7 +972,13 @@ class Session : public sigc::trackable, public Stateful static apply_gain_to_buffer_t apply_gain_to_buffer; static mix_buffers_with_gain_t mix_buffers_with_gain; static mix_buffers_no_gain_t mix_buffers_no_gain; - + + static sigc::signal<void> SendFeedback; + + /* Controllables */ + + PBD::Controllable* controllable_by_id (const PBD::ID&); + protected: friend class AudioEngine; void set_block_size (jack_nframes_t nframes); @@ -1502,7 +1513,7 @@ class Session : public sigc::trackable, public Stateful /* REGION MANAGEMENT */ mutable Glib::Mutex region_lock; - typedef map<ARDOUR::id_t,AudioRegion *> AudioRegionList; + typedef map<PBD::ID,AudioRegion *> AudioRegionList; AudioRegionList audio_regions; void region_renamed (Region *); @@ -1515,7 +1526,7 @@ class Session : public sigc::trackable, public Stateful /* SOURCES */ mutable Glib::Mutex audio_source_lock; - typedef std::map<id_t, AudioSource *> AudioSourceList; + typedef std::map<PBD::ID,AudioSource *> AudioSourceList; AudioSourceList audio_sources; @@ -1743,6 +1754,13 @@ class Session : public sigc::trackable, public Stateful LayerModel layer_model; CrossfadeModel xfade_model; + + typedef std::list<PBD::Controllable*> Controllables; + Glib::Mutex controllables_lock; + Controllables controllables; + + void add_controllable (PBD::Controllable*); + void remove_controllable (PBD::Controllable*); }; }; /* namespace ARDOUR */ diff --git a/libs/ardour/ardour/session_region.h b/libs/ardour/ardour/session_region.h index 13d88a9aa4..4f0fb92e3b 100644 --- a/libs/ardour/ardour/session_region.h +++ b/libs/ardour/ardour/session_region.h @@ -10,7 +10,7 @@ template<class T> void Session::foreach_audio_region (T *obj, void (T::*func)(Au { Glib::Mutex::Lock lm (region_lock); for (AudioRegionList::iterator i = audio_regions.begin(); i != audio_regions.end(); i++) { - (obj->*func) ((*i).second); + (obj->*func) (i->second); } } diff --git a/libs/ardour/ardour/sndfilesource.h b/libs/ardour/ardour/sndfilesource.h index 5e3c1f621d..55a0e990a0 100644 --- a/libs/ardour/ardour/sndfilesource.h +++ b/libs/ardour/ardour/sndfilesource.h @@ -51,7 +51,7 @@ class SndFileSource : public AudioFileSource { int update_header (jack_nframes_t when, struct tm&, time_t); int flush_header (); - void handle_smpte_offset_change (jack_nframes_t offset, bool negative); + jack_nframes_t natural_position () const; protected: void set_header_timeline_position (); diff --git a/libs/ardour/ardour/source.h b/libs/ardour/ardour/source.h index f3133c71cd..f57ea79854 100644 --- a/libs/ardour/ardour/source.h +++ b/libs/ardour/ardour/source.h @@ -25,8 +25,9 @@ #include <sigc++/signal.h> +#include <pbd/stateful.h> + #include <ardour/ardour.h> -#include <ardour/stateful.h> namespace ARDOUR { @@ -40,7 +41,7 @@ class Source : public Stateful, public sigc::trackable std::string name() const { return _name; } int set_name (std::string str, bool destructive); - ARDOUR::id_t id() const { return _id; } + const PBD::ID& id() const { return _id; } uint32_t use_cnt() const { return _use_cnt; } void use (); @@ -60,7 +61,7 @@ class Source : public Stateful, public sigc::trackable time_t _timestamp; private: - ARDOUR::id_t _id; + PBD::ID _id; }; } diff --git a/libs/ardour/ardour/stateful.h b/libs/ardour/ardour/stateful.h deleted file mode 100644 index 4f4cb20b39..0000000000 --- a/libs/ardour/ardour/stateful.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2000 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. - - $Id$ -*/ - -#ifndef __ardour_stateful_h__ -#define __ardour_stateful_h__ - -#include <string> - -class XMLNode; - -class Stateful { - public: - Stateful(); - virtual ~Stateful(); - - virtual XMLNode& get_state (void) = 0; - - virtual int set_state (const XMLNode&) = 0; - - /* Extra XML nodes */ - - void add_extra_xml (XMLNode&); - XMLNode *extra_xml (const std::string& str); - - virtual void add_instant_xml (XMLNode&, const std::string& dir); - XMLNode *instant_xml (const std::string& str, const std::string& dir); - - protected: - XMLNode *_extra_xml; - XMLNode *_instant_xml; -}; - -#endif /* __ardour_stateful_h__ */ - diff --git a/libs/ardour/ardour/tempo.h b/libs/ardour/ardour/tempo.h index 13e8eb6348..db06894607 100644 --- a/libs/ardour/ardour/tempo.h +++ b/libs/ardour/ardour/tempo.h @@ -27,10 +27,10 @@ #include <cmath> #include <glibmm/thread.h> #include <pbd/undo.h> +#include <pbd/stateful.h> #include <sigc++/signal.h> #include <ardour/ardour.h> -#include <ardour/stateful.h> #include <ardour/state_manager.h> class XMLNode; diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h index e729bbe956..1ae58039d9 100644 --- a/libs/ardour/ardour/types.h +++ b/libs/ardour/ardour/types.h @@ -30,6 +30,8 @@ #include <inttypes.h> #include <jack/types.h> #include <control_protocol/smpte.h> +#include <pbd/id.h> + #include <map> #if __GNUC__ < 3 @@ -45,7 +47,7 @@ namespace ARDOUR { typedef float pan_t; typedef float gain_t; typedef uint32_t layer_t; - typedef uint64_t id_t; + typedef uint64_t microseconds_t; typedef unsigned char RawMidi; diff --git a/libs/ardour/ardour/utils.h b/libs/ardour/ardour/utils.h index 3a9905b3ac..ad471085b5 100644 --- a/libs/ardour/ardour/utils.h +++ b/libs/ardour/ardour/utils.h @@ -50,8 +50,6 @@ int tokenize_fullpath (std::string fullpath, std::string& path, std::string& nam int touch_file(std::string path); -uint32_t long get_uid(); - std::string region_name_from_path (std::string path); std::string path_expand (std::string); diff --git a/libs/ardour/ardour/vst_plugin.h b/libs/ardour/ardour/vst_plugin.h index ee8e6e986b..3cb10d1779 100644 --- a/libs/ardour/ardour/vst_plugin.h +++ b/libs/ardour/ardour/vst_plugin.h @@ -28,11 +28,9 @@ #include <string> #include <dlfcn.h> -#include <midi++/controllable.h> #include <sigc++/signal.h> - +#include <pbd/stateful.h> #include <jack/types.h> -#include <ardour/stateful.h> #include <ardour/plugin_state.h> #include <ardour/plugin.h> diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc index f24993b87b..20dbb915b0 100644 --- a/libs/ardour/audio_diskstream.cc +++ b/libs/ardour/audio_diskstream.cc @@ -65,7 +65,7 @@ AudioDiskstream::AudioDiskstream (Session &sess, const string &name, Diskstream: in_set_state = true; - init (flag); + init(flag); use_new_playlist (); in_set_state = false; @@ -185,7 +185,7 @@ AudioDiskstream::~AudioDiskstream () channels.clear(); } -/* + void AudioDiskstream::handle_input_change (IOChange change, void *src) { @@ -196,7 +196,7 @@ AudioDiskstream::handle_input_change (IOChange change, void *src) _session.request_input_change_handling (); } } -*/ + void AudioDiskstream::non_realtime_input_change () { @@ -421,8 +421,10 @@ AudioDiskstream::setup_destructive_playlist () /* a single full-sized region */ + cerr << "setup DS using " << srcs.front()->natural_position () << endl; + AudioRegion* region = new AudioRegion (srcs, 0, max_frames, _name); - _playlist->add_region (*region, 0); + _playlist->add_region (*region, srcs.front()->natural_position()); } void @@ -1040,6 +1042,12 @@ AudioDiskstream::seek (jack_nframes_t frame, bool complete_refill) (*chan).capture_buf->reset (); } + /* can't rec-enable in destructive mode if transport is before start */ + + if (destructive() && record_enabled() && frame < _session.current_start_frame()) { + disengage_record_enable (this); + } + playback_sample = frame; file_frame = frame; @@ -1451,7 +1459,6 @@ AudioDiskstream::do_flush (char * workbuf, bool force_flush) to_write = min (disk_io_chunk_frames, (jack_nframes_t) vector.len[0]); - // check the transition buffer when recording destructive // important that we get this after the capture buf @@ -1773,15 +1780,15 @@ AudioDiskstream::finish_capture (bool rec_monitors_input) void AudioDiskstream::set_record_enabled (bool yn, void* src) { - bool rolling = _session.transport_speed() != 0.0f; - if (!recordable() || !_session.record_enabling_legal()) { return; } - - /* if we're turning on rec-enable, there needs to be an - input connection. - */ + + /* can't rec-enable in destructive mode if transport is before start */ + + if (destructive() && yn && _session.transport_frame() < _session.current_start_frame()) { + return; + } if (yn && channels[0].source == 0) { @@ -1798,36 +1805,51 @@ AudioDiskstream::set_record_enabled (bool yn, void* src) if (record_enabled() != yn) { if (yn) { - g_atomic_int_set (&_record_enabled, 1); - capturing_sources.clear (); - if (Config->get_use_hardware_monitoring()) { - for (ChannelList::iterator chan = channels.begin(); chan != channels.end(); ++chan) { - if ((*chan).source) { - (*chan).source->request_monitor_input (!(_session.get_auto_input() && rolling)); - } - capturing_sources.push_back ((*chan).write_source); - } - } else { - for (ChannelList::iterator chan = channels.begin(); chan != channels.end(); ++chan) { - capturing_sources.push_back ((*chan).write_source); - } - } - + engage_record_enable (src); } else { - g_atomic_int_set (&_record_enabled, 0); - if (Config->get_use_hardware_monitoring()) { - for (ChannelList::iterator chan = channels.begin(); chan != channels.end(); ++chan) { - if ((*chan).source) { - (*chan).source->request_monitor_input (false); - } - } + disengage_record_enable (src); + } + } +} + +void +AudioDiskstream::engage_record_enable (void* src) +{ + bool rolling = _session.transport_speed() != 0.0f; + + g_atomic_int_set (&_record_enabled, 1); + capturing_sources.clear (); + if (Config->get_use_hardware_monitoring()) { + for (ChannelList::iterator chan = channels.begin(); chan != channels.end(); ++chan) { + if ((*chan).source) { + (*chan).source->request_monitor_input (!(_session.get_auto_input() && rolling)); } - capturing_sources.clear (); + capturing_sources.push_back ((*chan).write_source); + } + } else { + for (ChannelList::iterator chan = channels.begin(); chan != channels.end(); ++chan) { + capturing_sources.push_back ((*chan).write_source); } + } + + record_enable_changed (src); /* EMIT SIGNAL */ +} - record_enable_changed (src); /* EMIT SIGNAL */ +void +AudioDiskstream::disengage_record_enable (void* src) +{ + g_atomic_int_set (&_record_enabled, 0); + if (Config->get_use_hardware_monitoring()) { + for (ChannelList::iterator chan = channels.begin(); chan != channels.end(); ++chan) { + if ((*chan).source) { + (*chan).source->request_monitor_input (false); + } + } } + capturing_sources.clear (); + record_enable_changed (src); /* EMIT SIGNAL */ } + XMLNode& AudioDiskstream::get_state () @@ -1848,7 +1870,7 @@ AudioDiskstream::get_state () node->add_property ("speed", buf); node->add_property("name", _name); - snprintf (buf, sizeof(buf), "%" PRIu64, id()); + id().print (buf); node->add_property("id", buf); if (!capturing_sources.empty() && _session.get_record_enabled()) { @@ -1915,11 +1937,11 @@ AudioDiskstream::set_state (const XMLNode& node) if (deprecated_io_node) { if ((prop = deprecated_io_node->property ("id")) != 0) { - sscanf (prop->value().c_str(), "%" PRIu64, &_id); + _id = prop->value (); } } else { if ((prop = node.property ("id")) != 0) { - sscanf (prop->value().c_str(), "%" PRIu64, &_id); + _id = prop->value (); } } @@ -2238,6 +2260,21 @@ AudioDiskstream::capture_buffer_load () const (double) channels.front().capture_buf->bufsize()); } +int +AudioDiskstream::set_loop (Location *location) +{ + if (location) { + if (location->start() >= location->end()) { + error << string_compose(_("Location \"%1\" not valid for track loop (start >= end)"), location->name()) << endl; + return -1; + } + } + + loop_location = location; + + LoopSet (location); /* EMIT SIGNAL */ + return 0; +} int AudioDiskstream::use_pending_capture_data (XMLNode& node) diff --git a/libs/ardour/audio_library.cc b/libs/ardour/audio_library.cc index 7f421e86c8..168a1dcf5d 100644 --- a/libs/ardour/audio_library.cc +++ b/libs/ardour/audio_library.cc @@ -75,11 +75,16 @@ AudioLibrary::AudioLibrary () lrdf_free_statements(matches); + XMLNode* state = instant_xml(X_("AudioLibrary"), get_user_ardour_path()); + if (state) { + set_state(*state); + } scan_paths(); } AudioLibrary::~AudioLibrary () { + add_instant_xml(get_state(), get_user_ardour_path()); } void @@ -429,5 +434,50 @@ AudioLibrary::safe_file_extension(string file) file.rfind(".maud")== string::npos && file.rfind(".vwe") == string::npos && file.rfind(".paf") == string::npos && +#ifdef HAVE_COREAUDIO + file.rfind(".mp3") == string::npos && + file.rfind(".aac") == string::npos && + file.rfind(".mp4") == string::npos && +#endif // HAVE_COREAUDIO file.rfind(".voc") == string::npos); } + +XMLNode& +AudioLibrary::get_state () +{ + XMLNode* root = new XMLNode(X_("AudioLibrary")); + + for (vector<string>::iterator i = sfdb_paths.begin(); i != sfdb_paths.end(); ++i) { + XMLNode* node = new XMLNode(X_("Path")); + node->add_property("value", *i); + root->add_child_nocopy(*node); + } + + return *root; +} + +int +AudioLibrary::set_state (const XMLNode& node) +{ + if (node.name() != X_("AudioLibrary")) { + fatal << "programming error: AudioLibrary: incorrect XML node sent to set_state()" << endmsg; + return -1; + } + + XMLNodeList nodes = node.children(X_("Path")); + + vector<string> paths; + XMLProperty* prop; + XMLNode* child; + for (XMLNodeConstIterator iter = nodes.begin(); iter != nodes.end(); ++iter) { + child = *iter; + + if ((prop = child->property(X_("value"))) != 0) { + paths.push_back(prop->value()); + } + } + + sfdb_paths = paths; + + return 0; +} diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc index 82a2a38c2c..b3727937e2 100644 --- a/libs/ardour/audio_track.cc +++ b/libs/ardour/audio_track.cc @@ -43,7 +43,7 @@ using namespace PBD; AudioTrack::AudioTrack (Session& sess, string name, Route::Flag flag, TrackMode mode) : Route (sess, name, 1, -1, -1, -1, flag), _diskstream (0), - _midi_rec_enable_control (*this, _session.midi_port()) + _rec_enable_control (*this) { AudioDiskstream::Flag dflags = AudioDiskstream::Flag (0); @@ -65,26 +65,17 @@ AudioTrack::AudioTrack (Session& sess, string name, Route::Flag flag, TrackMode _mode = mode; set_diskstream (*ds, this); - - // session.SMPTEOffsetChanged.connect (mem_fun (*this, &AudioTrack::handle_smpte_offset_change)); - - // we do this even though Route already did it in it's init - reset_midi_control (_session.midi_port(), _session.get_midi_control()); - } AudioTrack::AudioTrack (Session& sess, const XMLNode& node) : Route (sess, "to be renamed", 0, 0, -1, -1), _diskstream (0), - _midi_rec_enable_control (*this, _session.midi_port()) + _rec_enable_control (*this) { _freeze_record.state = NoFreeze; set_state (node); _declickable = true; _saved_meter_point = _meter_point; - - // we do this even though Route already did it in it's init - reset_midi_control (_session.midi_port(), _session.get_midi_control()); } AudioTrack::~AudioTrack () @@ -191,7 +182,7 @@ AudioTrack::use_diskstream (string name) } int -AudioTrack::use_diskstream (id_t id) +AudioTrack::use_diskstream (const PBD::ID& id) { AudioDiskstream *dstream; @@ -235,10 +226,7 @@ AudioTrack::set_record_enable (bool yn, void *src) set_meter_point (_saved_meter_point, this); } - if (_session.get_midi_feedback()) { - _midi_rec_enable_control.send_feedback (record_enabled()); - } - + _rec_enable_control.Changed (); } void @@ -252,7 +240,6 @@ AudioTrack::set_state (const XMLNode& node) { const XMLProperty *prop; XMLNodeConstIterator iter; - XMLNodeList midi_kids; if (Route::set_state (node)) { return -1; @@ -271,36 +258,6 @@ AudioTrack::set_state (const XMLNode& node) _mode = Normal; } - midi_kids = node.children ("MIDI"); - - for (iter = midi_kids.begin(); iter != midi_kids.end(); ++iter) { - - XMLNodeList kids; - XMLNodeConstIterator miter; - XMLNode* child; - - kids = (*iter)->children (); - - for (miter = kids.begin(); miter != kids.end(); ++miter) { - - child =* miter; - - if (child->name() == "rec_enable") { - - MIDI::eventType ev = MIDI::on; /* initialize to keep gcc happy */ - MIDI::byte additional = 0; /* ditto */ - MIDI::channel_t chn = 0; /* ditto */ - - if (get_midi_node_info (child, ev, chn, additional)) { - _midi_rec_enable_control.set_control_type (chn, ev, additional); - } else { - error << string_compose(_("MIDI rec_enable control specification for %1 is incomplete, so it has been ignored"), _name) << endmsg; - } - } - } - } - - if ((prop = node.property ("diskstream-id")) == 0) { /* some old sessions use the diskstream name rather than the ID */ @@ -317,7 +274,7 @@ AudioTrack::set_state (const XMLNode& node) } else { - id_t id = strtoull (prop->value().c_str(), 0, 10); + PBD::ID id (prop->value()); if (use_diskstream (id)) { return -1; @@ -366,7 +323,7 @@ AudioTrack::state(bool full_state) { XMLNode& root (Route::state(full_state)); XMLNode* freeze_node; - char buf[32]; + char buf[64]; if (_freeze_record.playlist) { XMLNode* inode; @@ -378,7 +335,7 @@ AudioTrack::state(bool full_state) for (vector<FreezeRecordInsertInfo*>::iterator i = _freeze_record.insert_info.begin(); i != _freeze_record.insert_info.end(); ++i) { inode = new XMLNode (X_("insert")); - snprintf (buf, sizeof (buf), "%" PRIu64, (*i)->id); + (*i)->id.print (buf); inode->add_property (X_("id"), buf); inode->add_child_copy ((*i)->state); @@ -402,29 +359,6 @@ AudioTrack::state(bool full_state) align_node->add_property (X_("style"), buf); root.add_child_nocopy (*align_node); - /* MIDI control */ - - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte additional; - XMLNode* midi_node = 0; - XMLNode* child; - XMLNodeList midikids; - - midikids = root.children ("MIDI"); - if (!midikids.empty()) { - midi_node = midikids.front(); - } - else { - midi_node = root.add_child ("MIDI"); - } - - if (_midi_rec_enable_control.get_control_info (chn, ev, additional) && midi_node) { - - child = midi_node->add_child ("rec_enable"); - set_midi_node_info (child, ev, chn, additional); - } - XMLNode* remote_control_node = new XMLNode (X_("remote_control")); snprintf (buf, sizeof (buf), "%d", _remote_control_id); remote_control_node->add_property (X_("id"), buf); @@ -445,7 +379,7 @@ AudioTrack::state(bool full_state) diskstream. */ - snprintf (buf, sizeof (buf), "%" PRIu64, _diskstream->id()); + _diskstream->id().print (buf); root.add_property ("diskstream-id", buf); return root; @@ -506,7 +440,7 @@ AudioTrack::set_state_part_two () FreezeRecordInsertInfo* frii = new FreezeRecordInsertInfo (*((*citer)->children().front())); frii->insert = 0; - sscanf (prop->value().c_str(), "%" PRIu64, &frii->id); + frii->id = prop->value (); _freeze_record.insert_info.push_back (frii); } } @@ -1054,93 +988,23 @@ AudioTrack::freeze_state() const return _freeze_record.state; } - -void -AudioTrack::reset_midi_control (MIDI::Port* port, bool on) +AudioTrack::RecEnableControllable::RecEnableControllable (AudioTrack& s) + : track (s) { - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte extra; - - Route::reset_midi_control (port, on); - - _midi_rec_enable_control.get_control_info (chn, ev, extra); - if (!on) { - chn = -1; - } - _midi_rec_enable_control.midi_rebind (port, chn); } void -AudioTrack::send_all_midi_feedback () -{ - if (_session.get_midi_feedback()) { - - Route::send_all_midi_feedback(); - - _midi_rec_enable_control.send_feedback (record_enabled()); - } -} - - -AudioTrack::MIDIRecEnableControl::MIDIRecEnableControl (AudioTrack& s, MIDI::Port* port) - : MIDI::Controllable (port, 0), track (s), setting(false) -{ - last_written = false; /* XXX need a good out of bound value */ -} - -void -AudioTrack::MIDIRecEnableControl::set_value (float val) +AudioTrack::RecEnableControllable::set_value (float val) { bool bval = ((val >= 0.5f) ? true: false); - - setting = true; track.set_record_enable (bval, this); - setting = false; -} - -void -AudioTrack::MIDIRecEnableControl::send_feedback (bool value) -{ - - if (!setting && get_midi_feedback()) { - MIDI::byte val = (MIDI::byte) (value ? 127: 0); - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - MIDI::EventTwoBytes data; - - if (get_control_info (ch, ev, additional)) { - data.controller_number = additional; - data.value = val; - - track._session.send_midi_message (get_port(), ev, ch, data); - } - } - } -MIDI::byte* -AudioTrack::MIDIRecEnableControl::write_feedback (MIDI::byte* buf, int32_t& bufsize, bool val, bool force) +float +AudioTrack::RecEnableControllable::get_value (void) const { - if (get_midi_feedback()) { - - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - - if (get_control_info (ch, ev, additional)) { - if (val != last_written || force) { - *buf++ = ev & ch; - *buf++ = additional; /* controller number */ - *buf++ = (MIDI::byte) (val ? 127: 0); - last_written = val; - bufsize -= 3; - } - } - } - - return buf; + if (track.record_enabled()) { return 1.0f; } + return 0.0f; } void diff --git a/libs/ardour/audiofilesource.cc b/libs/ardour/audiofilesource.cc index 0663f5f9b1..87700cedb3 100644 --- a/libs/ardour/audiofilesource.cc +++ b/libs/ardour/audiofilesource.cc @@ -56,8 +56,7 @@ string AudioFileSource::peak_dir = ""; string AudioFileSource::search_path; sigc::signal<void> AudioFileSource::HeaderPositionOffsetChanged; -bool AudioFileSource::header_position_negative; -uint64_t AudioFileSource::header_position_offset; +uint64_t AudioFileSource::header_position_offset = 0; char AudioFileSource::bwf_country_code[3] = "US"; char AudioFileSource::bwf_organization_code[4] = "LAS"; @@ -592,11 +591,10 @@ AudioFileSource::set_search_path (string p) } void -AudioFileSource::set_header_position_offset (jack_nframes_t offset, bool negative) +AudioFileSource::set_header_position_offset (jack_nframes_t offset) { header_position_offset = offset; - header_position_negative = negative; - + cerr << "hpo set to " << offset << endl; HeaderPositionOffsetChanged (); } diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index 6b118faa51..4a8593cd63 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -267,8 +267,6 @@ AudioRegion::AudioRegion (SourceList& srcs, const XMLNode& node) _fade_out (0.0, 2.0, 1.0, false), _envelope (0.0, 2.0, 1.0, false) { - /* basic AudioRegion constructor */ - set<AudioSource*> unique_srcs; for (SourceList::iterator i=srcs.begin(); i != srcs.end(); ++i) { @@ -657,7 +655,7 @@ AudioRegion::state (bool full) for (uint32_t n=0; n < sources.size(); ++n) { snprintf (buf2, sizeof(buf2), "source-%d", n); - snprintf (buf, sizeof(buf), "%" PRIu64, sources[n]->id()); + sources[n]->id().print (buf); node.add_property (buf2, buf); } diff --git a/libs/ardour/control_protocol_manager.cc b/libs/ardour/control_protocol_manager.cc index c2fb188953..0370886a35 100644 --- a/libs/ardour/control_protocol_manager.cc +++ b/libs/ardour/control_protocol_manager.cc @@ -49,6 +49,10 @@ ControlProtocolManager::set_session (Session& s) if ((*i)->requested || (*i)->mandatory) { instantiate (**i); (*i)->requested = false; + + if ((*i)->state) { + (*i)->protocol->set_state (*(*i)->state); + } } } } @@ -181,6 +185,7 @@ ControlProtocolManager::control_protocol_discover (string path) cpi->protocol = 0; cpi->requested = false; cpi->mandatory = descriptor->mandatory; + cpi->state = 0; control_protocol_info.push_back (cpi); diff --git a/libs/ardour/crossfade.cc b/libs/ardour/crossfade.cc index 5d36c63f01..bbe0c63b0a 100644 --- a/libs/ardour/crossfade.cc +++ b/libs/ardour/crossfade.cc @@ -112,7 +112,6 @@ Crossfade::Crossfade (const Playlist& playlist, XMLNode& node) { Region* r; XMLProperty* prop; - id_t id; LocaleGuard lg (X_("POSIX")); /* we have to find the in/out regions before we can do anything else */ @@ -122,7 +121,7 @@ Crossfade::Crossfade (const Playlist& playlist, XMLNode& node) throw failed_constructor(); } - sscanf (prop->value().c_str(), "%" PRIu64, &id); + PBD::ID id (prop->value()); if ((r = playlist.find_region (id)) == 0) { error << string_compose (_("Crossfade: no \"in\" region %1 found in playlist %2"), id, playlist.name()) @@ -139,10 +138,10 @@ Crossfade::Crossfade (const Playlist& playlist, XMLNode& node) throw failed_constructor(); } - sscanf (prop->value().c_str(), "%" PRIu64, &id); + PBD::ID id2 (prop->value()); - if ((r = playlist.find_region (id)) == 0) { - error << string_compose (_("Crossfade: no \"out\" region %1 found in playlist %2"), id, playlist.name()) + if ((r = playlist.find_region (id2)) == 0) { + error << string_compose (_("Crossfade: no \"out\" region %1 found in playlist %2"), id2, playlist.name()) << endmsg; throw failed_constructor(); } @@ -680,9 +679,9 @@ Crossfade::get_state () char buf[64]; LocaleGuard lg (X_("POSIX")); - snprintf (buf, sizeof(buf), "%" PRIu64, _out->id()); + _out->id().print (buf); node->add_property ("out", buf); - snprintf (buf, sizeof(buf), "%" PRIu64, _in->id()); + _in->id().print (buf); node->add_property ("in", buf); node->add_property ("active", (_active ? "yes" : "no")); node->add_property ("follow-overlap", (_follow_overlap ? "yes" : "no")); diff --git a/libs/ardour/destructive_filesource.cc b/libs/ardour/destructive_filesource.cc index cce757509a..68eeded9b2 100644 --- a/libs/ardour/destructive_filesource.cc +++ b/libs/ardour/destructive_filesource.cc @@ -75,6 +75,9 @@ DestructiveFileSource::DestructiveFileSource (string path, SampleFormat samp_for _capture_start = false; _capture_end = false; file_pos = 0; + + timeline_position = header_position_offset; + AudioFileSource::HeaderPositionOffsetChanged.connect (mem_fun (*this, &DestructiveFileSource::handle_header_position_change)); } DestructiveFileSource::DestructiveFileSource (const XMLNode& node) @@ -85,6 +88,9 @@ DestructiveFileSource::DestructiveFileSource (const XMLNode& node) _capture_start = false; _capture_end = false; file_pos = 0; + + timeline_position = header_position_offset; + AudioFileSource::HeaderPositionOffsetChanged.connect (mem_fun (*this, &DestructiveFileSource::handle_header_position_change)); } DestructiveFileSource::~DestructiveFileSource() @@ -124,8 +130,12 @@ DestructiveFileSource::setup_standard_crossfades (jack_nframes_t rate) void DestructiveFileSource::mark_capture_start (jack_nframes_t pos) { - _capture_start = true; - capture_start_frame = pos; + if (pos < timeline_position) { + _capture_start = false; + } else { + _capture_start = true; + capture_start_frame = pos; + } } void @@ -265,6 +275,11 @@ DestructiveFileSource::write_unlocked (Sample* data, jack_nframes_t cnt, char * } if (_capture_start && _capture_end) { + + /* start and end of capture both occur within the data we are writing, + so do both crossfades. + */ + _capture_start = false; _capture_end = false; @@ -290,8 +305,12 @@ DestructiveFileSource::write_unlocked (Sample* data, jack_nframes_t cnt, char * } file_pos = ofilepos; // adjusted below - } - else if (_capture_start) { + + } else if (_capture_start) { + + /* start of capture both occur within the data we are writing, + so do the fade in + */ _capture_start = false; _capture_end = false; @@ -305,6 +324,10 @@ DestructiveFileSource::write_unlocked (Sample* data, jack_nframes_t cnt, char * } else if (_capture_end) { + /* end of capture both occur within the data we are writing, + so do the fade out + */ + _capture_start = false; _capture_end = false; @@ -314,6 +337,8 @@ DestructiveFileSource::write_unlocked (Sample* data, jack_nframes_t cnt, char * } else { + /* in the middle of recording */ + if (write_float (data, file_pos, cnt) != cnt) { return 0; } @@ -366,8 +391,19 @@ DestructiveFileSource::get_state () } void +DestructiveFileSource::handle_header_position_change () +{ + if ( _length != 0 ) { + error << string_compose(_("Filesource: start time is already set for existing file (%1): Cannot change start time."), _path ) << endmsg; + //in the future, pop up a dialog here that allows user to regenerate file with new start offset + } else if (writable()) { + timeline_position = header_position_offset; + set_header_timeline_position (); //this will get flushed if/when the file is recorded to + } +} + +void DestructiveFileSource::set_timeline_position (jack_nframes_t pos) { - /* destructive tracks always start at where our reference frame zero is */ - timeline_position = 0; + //destructive track timeline postion does not change except at instantion or when header_position_offset (session start) changes } diff --git a/libs/ardour/diskstream.cc b/libs/ardour/diskstream.cc index 050f23497b..8b7edae6b4 100644 --- a/libs/ardour/diskstream.cc +++ b/libs/ardour/diskstream.cc @@ -63,48 +63,24 @@ sigc::signal<void> Diskstream::DiskOverrun; sigc::signal<void> Diskstream::DiskUnderrun; Diskstream::Diskstream (Session &sess, const string &name, Flag flag) - : _name (name) + : deprecated_io_node(NULL) + , _name (name) , _session (sess) { -#if 0 - /* prevent any write sources from being created */ - - in_set_state = true; - init (flag); - //use_new_playlist (); - - in_set_state = false; - DiskstreamCreated (this); /* EMIT SIGNAL */ -#endif } Diskstream::Diskstream (Session& sess, const XMLNode& node) - : _session (sess) + : deprecated_io_node(NULL) + , _session (sess) { -#if 0 - in_set_state = true; init (Recordable); - - /*if (set_state (node)) { - in_set_state = false; - throw failed_constructor(); - }*/ - - in_set_state = false; - - //if (destructive()) { - // use_destructive_playlist (); - //} - DiskstreamCreated (this); /* EMIT SIGNAL */ -#endif } void Diskstream::init (Flag f) { - _id = new_id(); _refcnt = 0; _flags = f; _io = 0; diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index f3e6e1b947..951d155d9e 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -32,6 +32,7 @@ #include <lrdf.h> #include <pbd/error.h> +#include <pbd/id.h> #include <pbd/strsplit.h> #include <midi++/port.h> @@ -198,6 +199,8 @@ ARDOUR::init (AudioEngine& engine, bool use_vst, bool try_optimization) (void) bindtextdomain(PACKAGE, LOCALEDIR); + PBD::ID::init (); + Config = new Configuration; if (Config->load_state ()) { @@ -295,7 +298,7 @@ ARDOUR::init (AudioEngine& engine, bool use_vst, bool try_optimization) info << "No H/W specific optimizations in use" << endmsg; } - + lrdf_init(); Library = new AudioLibrary; @@ -325,10 +328,15 @@ ARDOUR::cleanup () return 0; } -ARDOUR::id_t -ARDOUR::new_id () + +microseconds_t +ARDOUR::get_microseconds () { - return get_uid(); + /* XXX need JACK to export its functionality */ + + struct timeval now; + gettimeofday (&now, 0); + return now.tv_sec * 1000000ULL + now.tv_usec; } ARDOUR::Change diff --git a/libs/ardour/insert.cc b/libs/ardour/insert.cc index fc05355d4a..a2b03ad38d 100644 --- a/libs/ardour/insert.cc +++ b/libs/ardour/insert.cc @@ -599,7 +599,7 @@ PluginInsert::state (bool full) node->add_property("id", string(buf)); if (_plugins[0]->state_node_name() == "ladspa") { char buf[32]; - snprintf (buf, 31, "%ld", _plugins[0]->get_info().unique_id); + snprintf (buf, sizeof (buf), "%ld", _plugins[0]->get_info().unique_id); node->add_property("unique-id", string(buf)); } node->add_property("count", string_compose("%1", _plugins.size())); @@ -780,18 +780,6 @@ PluginInsert::describe_parameter (uint32_t what) return _plugins[0]->describe_parameter (what); } -void -PluginInsert::reset_midi_control (MIDI::Port* port, bool on) -{ - _plugins[0]->reset_midi_control (port, on); -} - -void -PluginInsert::send_all_midi_feedback () -{ - _plugins[0]->send_all_midi_feedback(); -} - jack_nframes_t PluginInsert::latency() { diff --git a/libs/ardour/io.cc b/libs/ardour/io.cc index 8225396486..1c8de5008a 100644 --- a/libs/ardour/io.cc +++ b/libs/ardour/io.cc @@ -74,17 +74,17 @@ sigc::signal<int> IO::PortsCreated; Glib::StaticMutex IO::m_meter_signal_lock = GLIBMM_STATIC_MUTEX_INIT; -/* this is a default mapper of MIDI control values to a gain coefficient. - others can be imagined. see IO::set_midi_to_gain_function(). +/* this is a default mapper of [0 .. 1.0] control values to a gain coefficient. + others can be imagined. */ -static gain_t direct_midi_to_gain (double fract) { +static gain_t direct_control_to_gain (double fract) { /* XXX Marcus writes: this doesn't seem right to me. but i don't have a better answer ... */ /* this maxes at +6dB */ return pow (2.0,(sqrt(sqrt(sqrt(fract)))*198.0-192.0)/6.0); } -static double direct_gain_to_midi (gain_t gain) { +static double direct_gain_to_control (gain_t gain) { /* XXX Marcus writes: this doesn't seem right to me. but i don't have a better answer ... */ if (gain == 0) return 0.0; @@ -97,11 +97,8 @@ static bool sort_ports_by_name (Port* a, Port* b) } -/** The 'default_type' argument here isn't very good, but port creation is too - * brufty and all over the place to make anything else feasible without massive - * changes. The default typed passed is the type of port that will be created - * by ensure_io and friends. This is a temporary compatibility hack to get - * multiple data types off the gound and should be removed. +/** @param default_type The type of port that will be created by ensure_io + * and friends if no type is explicitly requested (to avoid breakage). */ IO::IO (Session& s, string name, int input_min, int input_max, int output_min, int output_max, @@ -109,14 +106,13 @@ IO::IO (Session& s, string name, : _session (s), _name (name), _default_type(default_type), - _midi_gain_control (*this, _session.midi_port()), + _gain_control (*this), _gain_automation_curve (0.0, 2.0, 1.0), _input_minimum (input_min), _input_maximum (input_max), _output_minimum (output_min), _output_maximum (output_max) { - _id = new_id(); _panner = new Panner (name, _session); _gain = 1.0; _desired_gain = 1.0; @@ -128,9 +124,6 @@ IO::IO (Session& s, string name, no_panner_reset = false; deferred_state = 0; - _midi_gain_control.midi_to_gain = direct_midi_to_gain; - _midi_gain_control.gain_to_midi = direct_gain_to_midi; - apply_gain_automation = false; last_automation_snapshot = 0; @@ -1429,7 +1422,7 @@ XMLNode& IO::state (bool full_state) { XMLNode* node = new XMLNode (state_node_name); - char buf[32]; + char buf[64]; string str; bool need_ins = true; bool need_outs = true; @@ -1437,7 +1430,7 @@ IO::state (bool full_state) Glib::Mutex::Lock lm (io_lock); node->add_property("name", _name); - snprintf (buf, sizeof(buf), "%" PRIu64, id()); + id().print (buf); node->add_property("id", buf); str = ""; @@ -1531,22 +1524,6 @@ IO::state (bool full_state) node->add_property ("iolimits", buf); - /* MIDI control */ - - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte additional; - XMLNode* midi_node = 0; - XMLNode* child; - - if (_midi_gain_control.get_control_info (chn, ev, additional)) { - - midi_node = node->add_child ("MIDI"); - - child = midi_node->add_child ("gain"); - set_midi_node_info (child, ev, chn, additional); - } - /* automation */ if (full_state) { @@ -1615,7 +1592,6 @@ IO::set_state (const XMLNode& node) { const XMLProperty* prop; XMLNodeConstIterator iter; - XMLNodeList midi_kids; LocaleGuard lg (X_("POSIX")); /* force use of non-localized representation of decimal point, @@ -1633,7 +1609,7 @@ IO::set_state (const XMLNode& node) } if ((prop = node.property ("id")) != 0) { - sscanf (prop->value().c_str(), "%" PRIu64, &_id); + _id = prop->value (); } if ((prop = node.property ("iolimits")) != 0) { @@ -1655,35 +1631,6 @@ IO::set_state (const XMLNode& node) } } - midi_kids = node.children ("MIDI"); - - for (iter = midi_kids.begin(); iter != midi_kids.end(); ++iter) { - - XMLNodeList kids; - XMLNodeConstIterator miter; - XMLNode* child; - - kids = (*iter)->children (); - - for (miter = kids.begin(); miter != kids.end(); ++miter) { - - child =* miter; - - if (child->name() == "gain") { - - MIDI::eventType ev = MIDI::on; /* initialize to keep gcc happy */ - MIDI::byte additional = 0; /* ditto */ - MIDI::channel_t chn = 0; /* ditto */ - - if (get_midi_node_info (child, ev, chn, additional)) { - _midi_gain_control.set_control_type (chn, ev, additional); - } else { - error << string_compose(_("MIDI gain control specification for %1 is incomplete, so it has been ignored"), _name) << endmsg; - } - } - } - } - if ((prop = node.property ("automation-state")) != 0) { long int x; @@ -1801,50 +1748,6 @@ IO::create_ports (const XMLNode& node) return 0; } -bool -IO::get_midi_node_info (XMLNode * node, MIDI::eventType & ev, MIDI::channel_t & chan, MIDI::byte & additional) -{ - bool ok = true; - const XMLProperty* prop; - int xx; - - if ((prop = node->property ("event")) != 0) { - sscanf (prop->value().c_str(), "0x%x", &xx); - ev = (MIDI::eventType) xx; - } else { - ok = false; - } - - if (ok && ((prop = node->property ("channel")) != 0)) { - sscanf (prop->value().c_str(), "%d", &xx); - chan = (MIDI::channel_t) xx; - } else { - ok = false; - } - - if (ok && ((prop = node->property ("additional")) != 0)) { - sscanf (prop->value().c_str(), "0x%x", &xx); - additional = (MIDI::byte) xx; - } - - return ok; -} - -bool -IO::set_midi_node_info (XMLNode * node, MIDI::eventType ev, MIDI::channel_t chan, MIDI::byte additional) -{ - char buf[32]; - - snprintf (buf, sizeof(buf), "0x%x", ev); - node->add_property ("event", buf); - snprintf (buf, sizeof(buf), "%d", chan); - node->add_property ("channel", buf); - snprintf (buf, sizeof(buf), "0x%x", additional); - node->add_property ("additional", buf); - - return true; -} - int IO::make_connections (const XMLNode& node) @@ -2371,69 +2274,16 @@ IO::output_connection_configuration_changed () use_output_connection (*_output_connection, this); } -IO::MIDIGainControl::MIDIGainControl (IO& i, MIDI::Port* port) - : MIDI::Controllable (port, 0), io (i), setting(false) -{ - midi_to_gain = 0; - gain_to_midi = 0; - setting = false; - last_written = 0; /* XXX need a good out-of-bound-value */ -} - void -IO::MIDIGainControl::set_value (float val) +IO::GainControllable::set_value (float val) { - if (midi_to_gain == 0) return; - - setting = true; - io.set_gain (midi_to_gain (val), this); - setting = false; -} - -void -IO::MIDIGainControl::send_feedback (gain_t gain) -{ - if (!setting && get_midi_feedback() && gain_to_midi) { - MIDI::byte val = (MIDI::byte) (gain_to_midi (gain) * 127.0); - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - MIDI::EventTwoBytes data; - - if (get_control_info (ch, ev, additional)) { - data.controller_number = additional; - data.value = val; - last_written = val; - - io._session.send_midi_message (get_port(), ev, ch, data); - } - //send_midi_feedback (gain_to_midi (gain)); - } + io.set_gain (direct_control_to_gain (val), this); } -MIDI::byte* -IO::MIDIGainControl::write_feedback (MIDI::byte* buf, int32_t& bufsize, gain_t val, bool force) +float +IO::GainControllable::get_value (void) const { - if (get_midi_feedback() && gain_to_midi && bufsize > 2) { - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - MIDI::byte gm; - - if (get_control_info (ch, ev, additional)) { - gm = (MIDI::byte) (gain_to_midi (val) * 127.0); - - if (gm != last_written) { - *buf++ = (0xF0 & ev) | (0xF & ch); - *buf++ = additional; /* controller number */ - *buf++ = gm; - last_written = gm; - bufsize -= 3; - } - } - } - - return buf; + return direct_gain_to_control (io.effective_gain()); } void @@ -2525,23 +2375,6 @@ IO::meter () } } -void -IO::reset_midi_control (MIDI::Port* port, bool on) -{ - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte extra; - - _midi_gain_control.get_control_info (chn, ev, extra); - if (!on) { - chn = -1; - } - _midi_gain_control.midi_rebind (port, chn); - - _panner->reset_midi_control (port, on); -} - - int IO::save_automation (const string& path) { @@ -2731,10 +2564,7 @@ IO::set_gain (gain_t val, void *src) } gain_changed (src); - - if (_session.get_midi_feedback()) { - _midi_gain_control.send_feedback (_desired_gain); - } + _gain_control.Changed (); /* EMIT SIGNAL */ if (_session.transport_stopped() && src != 0 && src != this && gain_automation_recording()) { _gain_automation_curve.add (_session.transport_frame(), val); @@ -2745,30 +2575,6 @@ IO::set_gain (gain_t val, void *src) } void -IO::send_all_midi_feedback () -{ - if (_session.get_midi_feedback()) { - _midi_gain_control.send_feedback (_effective_gain); - - // panners - _panner->send_all_midi_feedback(); - } -} - -MIDI::byte* -IO::write_midi_feedback (MIDI::byte* buf, int32_t& bufsize) -{ - if (_session.get_midi_feedback()) { - if (gain_automation_playback ()) { - buf = _midi_gain_control.write_feedback (buf, bufsize, _effective_gain); - } - buf = _panner->write_midi_feedback (buf, bufsize); - } - - return buf; -} - -void IO::start_gain_touch () { _gain_automation_curve.start_touch (); diff --git a/libs/ardour/ladspa_plugin.cc b/libs/ardour/ladspa_plugin.cc index 11001655d2..fa19a682e7 100644 --- a/libs/ardour/ladspa_plugin.cc +++ b/libs/ardour/ladspa_plugin.cc @@ -133,20 +133,9 @@ LadspaPlugin::init (void *mod, uint32_t index, jack_nframes_t rate) } } - Plugin::setup_midi_controls (); + Plugin::setup_controls (); latency_compute_run (); - - MIDI::Controllable *mcontrol; - - for (uint32_t i = 0; i < parameter_count(); ++i) { - if (LADSPA_IS_PORT_INPUT(port_descriptor (i)) && - LADSPA_IS_PORT_CONTROL(port_descriptor (i))) { - if ((mcontrol = get_nth_midi_control (i)) != 0) { - mcontrol->midi_rebind (_session.midi_port(), 0); - } - } - } } LadspaPlugin::~LadspaPlugin () @@ -318,17 +307,14 @@ LadspaPlugin::set_parameter (uint32_t which, float val) shadow_data[which] = (LADSPA_Data) val; ParameterChanged (which, val); /* EMIT SIGNAL */ - if (session().get_midi_feedback()) { - - if (which < parameter_count() && midi_controls[which]) { - midi_controls[which]->send_feedback (val); - } + if (which < parameter_count() && controls[which]) { + controls[which]->Changed (); } - + } else { warning << string_compose (_("illegal parameter number used with plugin \"%1\". This may" - "indicate a change in the plugin design, and presets may be" - "invalid"), name()) + "indicate a change in the plugin design, and presets may be" + "invalid"), name()) << endmsg; } } @@ -380,28 +366,6 @@ LadspaPlugin::get_state() snprintf(buf, sizeof(buf), "%+f", shadow_data[i]); child->add_property("value", string(buf)); root->add_child_nocopy (*child); - - MIDI::Controllable *pcontrol = get_nth_midi_control (i); - - if (pcontrol) { - - MIDI::eventType ev; - MIDI::byte additional; - MIDI::channel_t chn; - XMLNode* midi_node; - - if (pcontrol->get_control_info (chn, ev, additional)) { - - midi_node = child->add_child ("midi-control"); - - snprintf (buf, sizeof(buf), "0x%x", ev); - midi_node->add_property ("event", buf); - snprintf (buf, sizeof(buf), "%d", chn); - midi_node->add_property ("channel", buf); - snprintf (buf, sizeof(buf), "0x%x", additional); - midi_node->add_property ("additional", buf); - } - } } } @@ -452,52 +416,6 @@ LadspaPlugin::set_state(const XMLNode& node) sscanf (port, "%" PRIu32, &port_id); set_parameter (port_id, atof(data)); - - XMLNodeList midi_kids; - XMLNodeConstIterator iter; - - midi_kids = child->children ("midi-control"); - - for (iter = midi_kids.begin(); iter != midi_kids.end(); ++iter) { - - child = *iter; - - MIDI::eventType ev = MIDI::on; /* initialize to keep gcc happy */ - MIDI::byte additional = 0; /* initialize to keep gcc happy */ - MIDI::channel_t chn = 0; /* initialize to keep gcc happy */ - bool ok = true; - int xx; - - if ((prop = child->property ("event")) != 0) { - sscanf (prop->value().c_str(), "0x%x", &xx); - ev = (MIDI::eventType) xx; - } else { - ok = false; - } - - if (ok && ((prop = child->property ("channel")) != 0)) { - sscanf (prop->value().c_str(), "%d", &xx); - chn = (MIDI::channel_t) xx; - } else { - ok = false; - } - - if (ok && ((prop = child->property ("additional")) != 0)) { - sscanf (prop->value().c_str(), "0x%x", &xx); - additional = (MIDI::byte) xx; - } - - if (ok) { - MIDI::Controllable* pcontrol = get_nth_midi_control (port_id); - - if (pcontrol) { - pcontrol->set_control_type (chn, ev, additional); - } - - } else { - error << string_compose(_("LADSPA LadspaPlugin MIDI control specification for port %1 is incomplete, so it has been ignored"), port) << endl; - } - } } latency_compute_run (); diff --git a/libs/ardour/location.cc b/libs/ardour/location.cc index b2af52284e..5b5f733138 100644 --- a/libs/ardour/location.cc +++ b/libs/ardour/location.cc @@ -30,6 +30,7 @@ #include <pbd/xml++.h> #include <ardour/location.h> +#include <ardour/audiofilesource.h> #include "i18n.h" @@ -44,6 +45,10 @@ Location::Location (const Location& other) _end (other._end), _flags (other._flags) { + /* start and end flags can never be copied, because there can only ever be one of each */ + + _flags = Flags (_flags & ~IsStart); + _flags = Flags (_flags & ~IsEnd); } Location* @@ -71,6 +76,9 @@ Location::set_start (jack_nframes_t s) _start = s; _end = s; start_changed(this); /* EMIT SIGNAL */ + if ( is_start() ) { + AudioFileSource::set_header_position_offset ( s ); + } } return 0; } diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index fdf9092308..05584d0b5e 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -65,7 +65,7 @@ MidiDiskstream::MidiDiskstream (Session &sess, const string &name, Diskstream::F in_set_state = true; - init (flag); + init(flag); use_new_playlist (); in_set_state = false; @@ -432,7 +432,7 @@ MidiDiskstream::get_state () node->add_property ("speed", buf); node->add_property("name", _name); - snprintf (buf, sizeof(buf), "%" PRIu64, id()); + id().print(buf); node->add_property("id", buf); if (!_capturing_sources.empty() && _session.get_record_enabled()) { @@ -499,11 +499,11 @@ MidiDiskstream::set_state (const XMLNode& node) if (deprecated_io_node) { if ((prop = deprecated_io_node->property ("id")) != 0) { - sscanf (prop->value().c_str(), "%" PRIu64, &_id); + _id = prop->value (); } } else { if ((prop = node.property ("id")) != 0) { - sscanf (prop->value().c_str(), "%" PRIu64, &_id); + _id = prop->value (); } } diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc index 4a9febcdca..af086d7c61 100644 --- a/libs/ardour/midi_track.cc +++ b/libs/ardour/midi_track.cc @@ -37,11 +37,12 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; MidiTrack::MidiTrack (Session& sess, string name, Route::Flag flag, TrackMode mode) : Route (sess, name, 1, -1, -1, -1, flag, Buffer::MIDI), - diskstream (0), - _midi_rec_enable_control (*this, _session.midi_port()) + _diskstream (0), + _rec_enable_control (*this) { MidiDiskstream::Flag dflags = MidiDiskstream::Flag (0); @@ -63,32 +64,23 @@ MidiTrack::MidiTrack (Session& sess, string name, Route::Flag flag, TrackMode mo _mode = mode; set_diskstream (*ds, this); - - // session.SMPTEOffsetChanged.connect (mem_fun (*this, &MidiTrack::handle_smpte_offset_change)); - - // we do this even though Route already did it in it's init - reset_midi_control (_session.midi_port(), _session.get_midi_control()); - } MidiTrack::MidiTrack (Session& sess, const XMLNode& node) : Route (sess, "to be renamed", 0, 0, -1, -1), - diskstream (0), - _midi_rec_enable_control (*this, _session.midi_port()) + _diskstream (0), + _rec_enable_control (*this) { _freeze_record.state = NoFreeze; set_state (node); _declickable = true; _saved_meter_point = _meter_point; - - // we do this even though Route already did it in it's init - reset_midi_control (_session.midi_port(), _session.get_midi_control()); } MidiTrack::~MidiTrack () { - if (diskstream) { - diskstream->unref(); + if (_diskstream) { + _diskstream->unref(); } } @@ -103,16 +95,16 @@ MidiTrack::handle_smpte_offset_change () int MidiTrack::deprecated_use_diskstream_connections () { - if (diskstream->deprecated_io_node == 0) { + if (_diskstream->deprecated_io_node == 0) { return 0; } const XMLProperty* prop; - XMLNode& node (*diskstream->deprecated_io_node); + XMLNode& node (*_diskstream->deprecated_io_node); /* don't do this more than once. */ - diskstream->deprecated_io_node = 0; + _diskstream->deprecated_io_node = 0; set_input_minimum (-1); set_input_maximum (-1); @@ -155,15 +147,15 @@ MidiTrack::deprecated_use_diskstream_connections () int MidiTrack::set_diskstream (MidiDiskstream& ds, void *src) { - if (diskstream) { - diskstream->unref(); + if (_diskstream) { + _diskstream->unref(); } - diskstream = &ds.ref(); - diskstream->set_io (*this); - diskstream->set_destructive (_mode == Destructive); + _diskstream = &ds.ref(); + _diskstream->set_io (*this); + _diskstream->set_destructive (_mode == Destructive); - if (diskstream->deprecated_io_node) { + if (_diskstream->deprecated_io_node) { if (!connecting_legal) { ConnectingLegal.connect (mem_fun (*this, &MidiTrack::deprecated_use_diskstream_connections)); @@ -172,11 +164,11 @@ MidiTrack::set_diskstream (MidiDiskstream& ds, void *src) } } - diskstream->set_record_enabled (false, this); - //diskstream->monitor_input (false); + _diskstream->set_record_enabled (false, this); + //_diskstream->monitor_input (false); ic_connection.disconnect(); - ic_connection = input_changed.connect (mem_fun (*diskstream, &MidiDiskstream::handle_input_change)); + ic_connection = input_changed.connect (mem_fun (*_diskstream, &MidiDiskstream::handle_input_change)); diskstream_changed (src); /* EMIT SIGNAL */ @@ -189,34 +181,30 @@ MidiTrack::use_diskstream (string name) MidiDiskstream *dstream; if ((dstream = dynamic_cast<MidiDiskstream*>(_session.diskstream_by_name (name))) == 0) { - PBD::error << string_compose(_("MidiTrack: diskstream \"%1\" not known by session"), name) << endmsg; + error << string_compose(_("MidiTrack: midi diskstream \"%1\" not known by session"), name) << endmsg; return -1; } - - return set_diskstream (*dstream, this); - return 0; + return set_diskstream (*dstream, this); } int -MidiTrack::use_diskstream (id_t id) +MidiTrack::use_diskstream (const PBD::ID& id) { MidiDiskstream *dstream; if ((dstream = dynamic_cast<MidiDiskstream*>(_session.diskstream_by_id (id))) == 0) { - PBD::error << string_compose(_("MidiTrack: diskstream \"%1\" not known by session"), id) << endmsg; + error << string_compose(_("MidiTrack: midi diskstream \"%1\" not known by session"), id) << endmsg; return -1; } return set_diskstream (*dstream, this); - - return 0; } bool MidiTrack::record_enabled () const { - return diskstream->record_enabled (); + return _diskstream->record_enabled (); } void @@ -262,7 +250,6 @@ MidiTrack::set_state (const XMLNode& node) { const XMLProperty *prop; XMLNodeConstIterator iter; - XMLNodeList midi_kids; if (Route::set_state (node)) { return -1; @@ -274,49 +261,19 @@ MidiTrack::set_state (const XMLNode& node) } else if (prop->value() == X_("destructive")) { _mode = Destructive; } else { - PBD::warning << string_compose ("unknown midi track mode \"%1\" seen and ignored", prop->value()) << endmsg; + warning << string_compose ("unknown midi track mode \"%1\" seen and ignored", prop->value()) << endmsg; _mode = Normal; } } else { _mode = Normal; } - midi_kids = node.children ("MIDI"); - - for (iter = midi_kids.begin(); iter != midi_kids.end(); ++iter) { - - XMLNodeList kids; - XMLNodeConstIterator miter; - XMLNode* child; - - kids = (*iter)->children (); - - for (miter = kids.begin(); miter != kids.end(); ++miter) { - - child =* miter; - - if (child->name() == "rec_enable") { - - MIDI::eventType ev = MIDI::on; /* initialize to keep gcc happy */ - MIDI::byte additional = 0; /* ditto */ - MIDI::channel_t chn = 0; /* ditto */ - - if (get_midi_node_info (child, ev, chn, additional)) { - _midi_rec_enable_control.set_control_type (chn, ev, additional); - } else { - PBD::error << string_compose(_("MIDI rec_enable control specification for %1 is incomplete, so it has been ignored"), _name) << endmsg; - } - } - } - } - - if ((prop = node.property ("diskstream-id")) == 0) { /* some old sessions use the diskstream name rather than the ID */ if ((prop = node.property ("diskstream")) == 0) { - PBD::fatal << _("programming error: MidiTrack given state without diskstream!") << endmsg; + fatal << _("programming error: MidiTrack given state without diskstream!") << endmsg; /*NOTREACHED*/ return -1; } @@ -327,7 +284,7 @@ MidiTrack::set_state (const XMLNode& node) } else { - id_t id = strtoull (prop->value().c_str(), 0, 10); + PBD::ID id (prop->value()); if (use_diskstream (id)) { return -1; @@ -376,7 +333,7 @@ MidiTrack::state(bool full_state) { XMLNode& root (Route::state(full_state)); XMLNode* freeze_node; - char buf[32]; + char buf[64]; if (_freeze_record.playlist) { XMLNode* inode; @@ -388,7 +345,7 @@ MidiTrack::state(bool full_state) for (vector<FreezeRecordInsertInfo*>::iterator i = _freeze_record.insert_info.begin(); i != _freeze_record.insert_info.end(); ++i) { inode = new XMLNode (X_("insert")); - snprintf (buf, sizeof (buf), "%" PRIu64, (*i)->id); + (*i)->id.print (buf); inode->add_property (X_("id"), buf); inode->add_child_copy ((*i)->state); @@ -401,7 +358,7 @@ MidiTrack::state(bool full_state) /* Alignment: act as a proxy for the diskstream */ XMLNode* align_node = new XMLNode (X_("alignment")); - switch (diskstream->alignment_style()) { + switch (_diskstream->alignment_style()) { case ExistingMaterial: snprintf (buf, sizeof (buf), X_("existing")); break; @@ -412,29 +369,6 @@ MidiTrack::state(bool full_state) align_node->add_property (X_("style"), buf); root.add_child_nocopy (*align_node); - /* MIDI control */ - - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte additional; - XMLNode* midi_node = 0; - XMLNode* child; - XMLNodeList midikids; - - midikids = root.children ("MIDI"); - if (!midikids.empty()) { - midi_node = midikids.front(); - } - else { - midi_node = root.add_child ("MIDI"); - } - - if (_midi_rec_enable_control.get_control_info (chn, ev, additional) && midi_node) { - - child = midi_node->add_child ("rec_enable"); - set_midi_node_info (child, ev, chn, additional); - } - XMLNode* remote_control_node = new XMLNode (X_("remote_control")); snprintf (buf, sizeof (buf), "%d", _remote_control_id); remote_control_node->add_property (X_("id"), buf); @@ -455,7 +389,7 @@ MidiTrack::state(bool full_state) diskstream. */ - snprintf (buf, sizeof (buf), "%" PRIu64, diskstream->id()); + _diskstream->id().print (buf); root.add_property ("diskstream-id", buf); return root; @@ -516,7 +450,7 @@ MidiTrack::set_state_part_two () FreezeRecordInsertInfo* frii = new FreezeRecordInsertInfo (*((*citer)->children().front())); frii->insert = 0; - sscanf (prop->value().c_str(), "%" PRIu64, &frii->id); + frii->id = prop->value (); _freeze_record.insert_info.push_back (frii); } } @@ -527,9 +461,9 @@ MidiTrack::set_state_part_two () if ((prop = fnode->property (X_("style"))) != 0) { if (prop->value() == "existing") { - diskstream->set_persistent_align_style (ExistingMaterial); + _diskstream->set_persistent_align_style (ExistingMaterial); } else if (prop->value() == "capture") { - diskstream->set_persistent_align_style (CaptureTime); + _diskstream->set_persistent_align_style (CaptureTime); } } } @@ -539,7 +473,7 @@ MidiTrack::set_state_part_two () uint32_t MidiTrack::n_process_buffers () { - return max ((uint32_t) diskstream->n_channels(), redirect_max_outs); + return max ((uint32_t) _diskstream->n_channels(), redirect_max_outs); } void @@ -570,7 +504,7 @@ MidiTrack::no_roll (jack_nframes_t nframes, jack_nframes_t start_frame, jack_nfr return 0; } - diskstream->check_record_status (start_frame, nframes, can_record); + _diskstream->check_record_status (start_frame, nframes, can_record); bool send_silence; @@ -589,7 +523,7 @@ MidiTrack::no_roll (jack_nframes_t nframes, jack_nframes_t start_frame, jack_nfr send_silence = true; } } else { - if (diskstream->record_enabled()) { + if (_diskstream->record_enabled()) { if (Config->get_use_sw_monitoring()) { send_silence = false; } else { @@ -759,7 +693,7 @@ MidiTrack::silent_roll (jack_nframes_t nframes, jack_nframes_t start_frame, jack silence (nframes, offset); - return diskstream->process (_session.transport_frame() + offset, nframes, offset, can_record, rec_monitors_input); + return _diskstream->process (_session.transport_frame() + offset, nframes, offset, can_record, rec_monitors_input); } void @@ -780,7 +714,7 @@ MidiTrack::set_name (string str, void *src) return -1; } - if (diskstream->set_name (str, src)) { + if (_diskstream->set_name (str, src)) { return -1; } @@ -893,7 +827,7 @@ void MidiTrack::set_latency_delay (jack_nframes_t longest_session_latency) { Route::set_latency_delay (longest_session_latency); - diskstream->set_roll_delay (_roll_delay); + _diskstream->set_roll_delay (_roll_delay); } jack_nframes_t @@ -1064,101 +998,32 @@ MidiTrack::freeze_state() const } -void -MidiTrack::reset_midi_control (MIDI::Port* port, bool on) -{ - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte extra; - - Route::reset_midi_control (port, on); - - _midi_rec_enable_control.get_control_info (chn, ev, extra); - if (!on) { - chn = -1; - } - _midi_rec_enable_control.midi_rebind (port, chn); -} - -void -MidiTrack::send_all_midi_feedback () -{ - if (_session.get_midi_feedback()) { - - Route::send_all_midi_feedback(); - - _midi_rec_enable_control.send_feedback (record_enabled()); - } -} - - -MidiTrack::MIDIRecEnableControl::MIDIRecEnableControl (MidiTrack& s, MIDI::Port* port) - : MIDI::Controllable (port, 0), track (s), setting(false) +MidiTrack::MIDIRecEnableControllable::MIDIRecEnableControllable (MidiTrack& s) + : track(s) { - last_written = false; /* XXX need a good out of bound value */ } void -MidiTrack::MIDIRecEnableControl::set_value (float val) +MidiTrack::MIDIRecEnableControllable::set_value (float val) { bool bval = ((val >= 0.5f) ? true: false); - - setting = true; track.set_record_enable (bval, this); - setting = false; -} - -void -MidiTrack::MIDIRecEnableControl::send_feedback (bool value) -{ - - if (!setting && get_midi_feedback()) { - MIDI::byte val = (MIDI::byte) (value ? 127: 0); - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - MIDI::EventTwoBytes data; - - if (get_control_info (ch, ev, additional)) { - data.controller_number = additional; - data.value = val; - - track._session.send_midi_message (get_port(), ev, ch, data); - } - } - } -MIDI::byte* -MidiTrack::MIDIRecEnableControl::write_feedback (MIDI::byte* buf, int32_t& bufsize, bool val, bool force) +float +MidiTrack::MIDIRecEnableControllable::get_value (void) const { - if (get_midi_feedback()) { - - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - - if (get_control_info (ch, ev, additional)) { - if (val != last_written || force) { - *buf++ = ev & ch; - *buf++ = additional; /* controller number */ - *buf++ = (MIDI::byte) (val ? 127: 0); - last_written = val; - bufsize -= 3; - } - } - } - - return buf; + if (track.record_enabled()) { return 1.0f; } + return 0.0f; } void MidiTrack::set_mode (TrackMode m) { - if (diskstream) { + if (_diskstream) { if (_mode != m) { _mode = m; - diskstream->set_destructive (m == Destructive); + _diskstream->set_destructive (m == Destructive); ModeChanged(); } } diff --git a/libs/ardour/panner.cc b/libs/ardour/panner.cc index 83c9e6eb4d..a56424cfea 100644 --- a/libs/ardour/panner.cc +++ b/libs/ardour/panner.cc @@ -53,21 +53,21 @@ float Panner::current_automation_version_number = 1.0; string EqualPowerStereoPanner::name = "Equal Power Stereo"; string Multi2dPanner::name = "Multiple (2D)"; -/* this is a default mapper of MIDI control values to a pan position - others can be imagined. see Panner::set_midi_to_pan_function(). +/* this is a default mapper of control values to a pan position + others can be imagined. */ -static pan_t direct_midi_to_pan (double fract) { +static pan_t direct_control_to_pan (double fract) { return fract; } -static double direct_pan_to_midi (pan_t val) { +static double direct_pan_to_control (pan_t val) { return val; } StreamPanner::StreamPanner (Panner& p) : parent (p), - _midi_control (*this, (MIDI::Port*) 0) + _control (*this) { _muted = false; @@ -80,84 +80,30 @@ StreamPanner::~StreamPanner () { } -StreamPanner::MIDIControl::MIDIControl (StreamPanner& s, MIDI::Port* port) - : MIDI::Controllable (port, 0), sp (s), setting(false) -{ - midi_to_pan = direct_midi_to_pan; - pan_to_midi = direct_pan_to_midi; - last_written = 0; /* XXX need a good out-of-bound-value */ -} - void -StreamPanner::MIDIControl::set_value (float val) +StreamPanner::PanControllable::set_value (float val) { - setting = true; - sp.set_position (midi_to_pan (val)); - setting = false; -} - -void -StreamPanner::MIDIControl::send_feedback (pan_t value) -{ - - if (!setting && get_midi_feedback() && pan_to_midi) { - MIDI::byte val = (MIDI::byte) (pan_to_midi (value) * 127.0f); - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - MIDI::EventTwoBytes data; - - if (get_control_info (ch, ev, additional)) { - data.controller_number = additional; - data.value = val; - last_written = val; - - sp.get_parent().session().send_midi_message (get_port(), ev, ch, data); - } - - // send_midi_feedback (pan_to_midi (val)); - } - + panner.set_position (direct_control_to_pan (val)); } -MIDI::byte* -StreamPanner::MIDIControl::write_feedback (MIDI::byte* buf, int32_t& bufsize, pan_t val, bool force) +float +StreamPanner::PanControllable::get_value (void) const { - if (get_midi_feedback() && pan_to_midi && bufsize > 2) { - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - MIDI::byte pm; - if (get_control_info (ch, ev, additional)) { - - pm = (MIDI::byte) (pan_to_midi (val) * 127.0); - - if (pm != last_written || force) { - *buf++ = (0xF0 & ev) | (0xF & ch); - *buf++ = additional; /* controller number */ - *buf++ = pm; - last_written = pm; - bufsize -= 3; - } - } - } - - return buf; + float xpos; + panner.get_effective_position (xpos); + return direct_pan_to_control (xpos); } - -void -StreamPanner::reset_midi_control (MIDI::Port* port, bool on) +bool +StreamPanner::PanControllable::can_send_feedback () const { - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte extra; + AutoState astate = panner.get_parent().automation_state (); - _midi_control.get_control_info (chn, ev, extra); - if (!on) { - chn = -1; + if ((astate == Play) || (astate == Touch && !panner.get_parent().touching())) { + return true; } - _midi_control.midi_rebind (port, chn); + + return false; } void @@ -180,10 +126,7 @@ StreamPanner::set_position (float xpos, bool link_call) x = xpos; update (); Changed (); - - if (parent.session().get_midi_feedback()) { - _midi_control.send_feedback (x); - } + _control.Changed (); } } @@ -224,42 +167,11 @@ StreamPanner::set_state (const XMLNode& node) { const XMLProperty* prop; XMLNodeConstIterator iter; - XMLNodeList midi_kids; if ((prop = node.property (X_("muted")))) { set_muted (prop->value() == "yes"); } - midi_kids = node.children ("MIDI"); - - for (iter = midi_kids.begin(); iter != midi_kids.end(); ++iter) { - - XMLNodeList kids; - XMLNodeConstIterator miter; - XMLNode* child; - - kids = (*iter)->children (); - - for (miter = kids.begin(); miter != kids.end(); ++miter) { - - child =* miter; - - if (child->name() == "pan") { - - MIDI::eventType ev = MIDI::on; /* initialize to keep gcc happy */ - MIDI::byte additional = 0; /* ditto */ - MIDI::channel_t chn = 0; /* ditto */ - - if (get_midi_node_info (child, ev, chn, additional)) { - _midi_control.set_control_type (chn, ev, additional); - } else { - error << _("MIDI pan control specification is incomplete, so it has been ignored") << endmsg; - } - } - } - } - - return 0; } @@ -267,68 +179,6 @@ void StreamPanner::add_state (XMLNode& node) { node.add_property (X_("muted"), (muted() ? "yes" : "no")); - - /* MIDI control */ - - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte additional; - XMLNode* midi_node = 0; - XMLNode* child; - - if (_midi_control.get_control_info (chn, ev, additional)) { - - midi_node = node.add_child ("MIDI"); - - child = midi_node->add_child ("pan"); - set_midi_node_info (child, ev, chn, additional); - } - -} - - -bool -StreamPanner::get_midi_node_info (XMLNode * node, MIDI::eventType & ev, MIDI::channel_t & chan, MIDI::byte & additional) -{ - bool ok = true; - const XMLProperty* prop; - int xx; - - if ((prop = node->property ("event")) != 0) { - sscanf (prop->value().c_str(), "0x%x", &xx); - ev = (MIDI::eventType) xx; - } else { - ok = false; - } - - if (ok && ((prop = node->property ("channel")) != 0)) { - sscanf (prop->value().c_str(), "%d", &xx); - chan = (MIDI::channel_t) xx; - } else { - ok = false; - } - - if (ok && ((prop = node->property ("additional")) != 0)) { - sscanf (prop->value().c_str(), "0x%x", &xx); - additional = (MIDI::byte) xx; - } - - return ok; -} - -bool -StreamPanner::set_midi_node_info (XMLNode * node, MIDI::eventType ev, MIDI::channel_t chan, MIDI::byte additional) -{ - char buf[32]; - - snprintf (buf, sizeof(buf), "0x%x", ev); - node->add_property ("event", buf); - snprintf (buf, sizeof(buf), "%d", chan); - node->add_property ("channel", buf); - snprintf (buf, sizeof(buf), "0x%x", additional); - node->add_property ("additional", buf); - - return true; } /*---------------------------------------------------------------------- */ @@ -959,8 +809,6 @@ Panner::Panner (string name, Session& s) _linked = false; _link_direction = SameDirection; _bypassed = false; - - reset_midi_control (_session.mmc_port(), _session.get_mmc_control()); } Panner::~Panner () @@ -1107,8 +955,6 @@ Panner::reset (uint32_t nouts, uint32_t npans) (*x)->update (); } - reset_midi_control (_session.mmc_port(), _session.get_mmc_control()); - /* force hard left/right panning in a common case: 2in/2out */ @@ -1490,14 +1336,6 @@ Panner::touching () const } void -Panner::reset_midi_control (MIDI::Port* port, bool on) -{ - for (vector<StreamPanner*>::const_iterator i = begin(); i != end(); ++i) { - (*i)->reset_midi_control (port, on); - } -} - -void Panner::set_position (float xpos, StreamPanner& orig) { float xnow; @@ -1639,42 +1477,3 @@ Panner::set_position (float xpos, float ypos, float zpos, StreamPanner& orig) } } } - -void -Panner::send_all_midi_feedback () -{ - if (_session.get_midi_feedback()) { - float xpos; - - // do feedback for all panners - for (vector<StreamPanner*>::iterator i = begin(); i != end(); ++i) { - (*i)->get_effective_position (xpos); - - (*i)->midi_control().send_feedback (xpos); - } - - } -} - -MIDI::byte* -Panner::write_midi_feedback (MIDI::byte* buf, int32_t& bufsize) -{ - AutoState astate = automation_state (); - - if (_session.get_midi_feedback() && - (astate == Play || (astate == Touch && !touching()))) { - - float xpos; - - // do feedback for all panners - for (vector<StreamPanner*>::iterator i = begin(); i != end(); ++i) { - (*i)->get_effective_position (xpos); - - buf = (*i)->midi_control().write_feedback (buf, bufsize, xpos); - } - - } - - return buf; -} - diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index 7dee866767..fc1dd84066 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -77,7 +77,6 @@ Playlist::Playlist (Session& sess, string nom, bool hide) { init (hide); _name = nom; - _orig_diskstream_id = 0; } @@ -86,7 +85,6 @@ Playlist::Playlist (Session& sess, const XMLNode& node, bool hide) { init (hide); _name = "unnamed"; /* reset by set_state */ - _orig_diskstream_id = 0; if (set_state (node)) { throw failed_constructor(); @@ -1343,7 +1341,7 @@ Playlist::set_state (const XMLNode& node) if (prop->name() == X_("name")) { _name = prop->value(); } else if (prop->name() == X_("orig_diskstream_id")) { - sscanf (prop->value().c_str(), "%" PRIu64, &_orig_diskstream_id); + _orig_diskstream_id = prop->value (); } else if (prop->name() == X_("frozen")) { _frozen = (prop->value() == X_("yes")); } @@ -1404,7 +1402,7 @@ Playlist::state (bool full_state) node->add_property (X_("name"), _name); - snprintf (buf, sizeof(buf), "%" PRIu64, _orig_diskstream_id); + _orig_diskstream_id.print (buf); node->add_property (X_("orig_diskstream_id"), buf); node->add_property (X_("frozen"), _frozen ? "yes" : "no"); @@ -1725,7 +1723,7 @@ Playlist::nudge_after (jack_nframes_t start, jack_nframes_t distance, bool forwa } Region* -Playlist::find_region (id_t id) const +Playlist::find_region (const ID& id) const { RegionLock rlock (const_cast<Playlist*> (this)); RegionList::const_iterator i; diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc index 9fc6c57909..6763e7f508 100644 --- a/libs/ardour/plugin.cc +++ b/libs/ardour/plugin.cc @@ -35,8 +35,6 @@ #include <pbd/pathscanner.h> #include <pbd/xml++.h> -#include <midi++/manager.h> - #include <ardour/ardour.h> #include <ardour/session.h> #include <ardour/audioengine.h> @@ -61,64 +59,59 @@ Plugin::Plugin (const Plugin& other) } void -Plugin::setup_midi_controls () +Plugin::setup_controls () { - uint32_t port_cnt; - - port_cnt = parameter_count(); + uint32_t port_cnt = parameter_count(); - /* set up a vector of null pointers for the MIDI controls. + /* set up a vector of null pointers for the controls. we'll fill this in on an as-needed basis. */ for (uint32_t i = 0; i < port_cnt; ++i) { - midi_controls.push_back (0); + controls.push_back (0); } } Plugin::~Plugin () { - for (vector<MIDIPortControl*>::iterator i = midi_controls.begin(); i != midi_controls.end(); ++i) { + for (vector<PortControllable*>::iterator i = controls.begin(); i != controls.end(); ++i) { if (*i) { delete *i; } } } -MIDI::Controllable * -Plugin::get_nth_midi_control (uint32_t n) +Controllable * +Plugin::get_nth_control (uint32_t n) { if (n >= parameter_count()) { return 0; } - if (midi_controls[n] == 0) { + if (controls[n] == 0) { Plugin::ParameterDescriptor desc; get_parameter_descriptor (n, desc); - - midi_controls[n] = new MIDIPortControl (*this, n, _session.midi_port(), desc.lower, desc.upper, desc.toggled, desc.logarithmic); + + controls[n] = new PortControllable (*this, n, desc.lower, desc.upper, desc.toggled, desc.logarithmic); } - return midi_controls[n]; + return controls[n]; } -Plugin::MIDIPortControl::MIDIPortControl (Plugin& p, uint32_t port_id, MIDI::Port *port, - float low, float up, bool t, bool loga) - : MIDI::Controllable (port, 0), plugin (p), absolute_port (port_id) +Plugin::PortControllable::PortControllable (Plugin& p, uint32_t port_id, float low, float up, bool t, bool loga) + : plugin (p), absolute_port (port_id) { toggled = t; logarithmic = loga; lower = low; upper = up; range = upper - lower; - last_written = 0; /* XXX need a good out-of-bound-value */ - setting = false; } void -Plugin::MIDIPortControl::set_value (float value) +Plugin::PortControllable::set_value (float value) { if (toggled) { if (value > 0.5) { @@ -140,138 +133,27 @@ Plugin::MIDIPortControl::set_value (float value) } } - setting = true; plugin.set_parameter (absolute_port, value); - setting = false; -} - -void -Plugin::MIDIPortControl::send_feedback (float value) -{ - - if (!setting && get_midi_feedback()) { - MIDI::byte val; - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - MIDI::EventTwoBytes data; - - if (toggled) { - val = (MIDI::byte) (value * 127.0f); - } else { - if (logarithmic) { - value = log(value); - } - - val = (MIDI::byte) (((value - lower) / range) * 127.0f); - } - - if (get_control_info (ch, ev, additional)) { - data.controller_number = additional; - data.value = val; - last_written = val; - - plugin.session().send_midi_message (get_port(), ev, ch, data); - } - } - } -MIDI::byte* -Plugin::MIDIPortControl::write_feedback (MIDI::byte* buf, int32_t& bufsize, float value, bool force) +float +Plugin::PortControllable::get_value (void) const { - if (get_midi_feedback() && bufsize > 2) { - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - - if (get_control_info (ch, ev, additional)) { - - MIDI::byte val; - - if (toggled) { + float val = plugin.get_parameter (absolute_port); - val = (MIDI::byte) (value * 127.0f); - - } else { - - if (logarithmic) { - value = log(value); - } - - val = (MIDI::byte) (((value - lower) / range) * 127.0f); - } - - if (val != last_written || force) { - *buf++ = MIDI::controller & ch; - *buf++ = additional; /* controller number */ - *buf++ = val; - last_written = val; - bufsize -= 3; - } - } - } - - return buf; -} - - -void -Plugin::reset_midi_control (MIDI::Port* port, bool on) -{ - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte extra; - - for (vector<MIDIPortControl*>::iterator i = midi_controls.begin(); i != midi_controls.end(); ++i) { - if (*i == 0) - continue; - (*i)->get_control_info (chn, ev, extra); - if (!on) { - chn = -1; - } - (*i)->midi_rebind (port, chn); - } -} - -void -Plugin::send_all_midi_feedback () -{ - if (_session.get_midi_feedback()) { - float val = 0.0; - uint32_t n = 0; + if (toggled) { - for (vector<MIDIPortControl*>::iterator i = midi_controls.begin(); i != midi_controls.end(); ++i, ++n) { - if (*i == 0) { - continue; - } - - val = (*i)->plugin.get_parameter (n); - (*i)->send_feedback (val); - } + return val; - } -} - -MIDI::byte* -Plugin::write_midi_feedback (MIDI::byte* buf, int32_t& bufsize) -{ - if (_session.get_midi_feedback()) { - float val = 0.0; - uint32_t n = 0; + } else { - for (vector<MIDIPortControl*>::iterator i = midi_controls.begin(); i != midi_controls.end(); ++i, ++n) { - if (*i == 0) { - continue; - } - - val = (*i)->plugin.get_parameter (n); - buf = (*i)->write_feedback (buf, bufsize, val); + if (logarithmic) { + val = log(val); } + + return ((val - lower) / range); } - - return buf; -} +} vector<string> Plugin::get_presets() diff --git a/libs/ardour/po/el_GR.po b/libs/ardour/po/el_GR.po index a7aefa2cca..5d8adef7d0 100644 --- a/libs/ardour/po/el_GR.po +++ b/libs/ardour/po/el_GR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: libardour 0.664.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-06-20 16:23-0400\n" +"POT-Creation-Date: 2006-06-29 21:03-0400\n" "PO-Revision-Date: 2003-05-21 12:50+0500\n" "Last-Translator: Muadibas\n" "Language-Team: Hellenic(Greek)\n" @@ -15,23 +15,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: libs/ardour/audio_diskstream.cc:336 +#: libs/ardour/audio_diskstream.cc:337 #, fuzzy msgid "AudioDiskstream: Session doesn't know about a Playlist called \"%1\"" msgstr "" "DiskStream: Η ΣυνεδÏία δεν γνωÏίζει για την λίστα ΑναπαÏ/γής με όνομα \"%1\"" -#: libs/ardour/audio_diskstream.cc:341 +#: libs/ardour/audio_diskstream.cc:342 #, fuzzy msgid "AudioDiskstream: Playlist \"%1\" isn't an audio playlist" msgstr "DiskStream: Η Λίστα \"%1\" δεν είναι ηχητική λίστα αναπαÏ/γής" -#: libs/ardour/audio_diskstream.cc:432 +#: libs/ardour/audio_diskstream.cc:433 #, fuzzy msgid "AudioDiskstream %1: there is no existing playlist to make a copy of!" msgstr "DiskStream %1: δεν υπάÏχει λίστα αναπαÏ/γής για να γίνει αντιγÏαφή!" -#: libs/ardour/audio_diskstream.cc:1113 libs/ardour/audio_diskstream.cc:1124 +#: libs/ardour/audio_diskstream.cc:1114 libs/ardour/audio_diskstream.cc:1125 #, fuzzy msgid "" "AudioDiskstream %1: when refilling, cannot read %2 from playlist at frame %3" @@ -39,100 +39,100 @@ msgstr "" "DiskStream %1: κατα την αναγόμωση, δεν μπόÏεσα να διαβάσω %2 από τη λίστα " "αναπαÏ/γής στο frame %3" -#: libs/ardour/audio_diskstream.cc:1253 +#: libs/ardour/audio_diskstream.cc:1254 #, fuzzy msgid "AudioDiskstream %1: cannot read %2 from playlist at frame %3" msgstr "" "DiskStream %1: δεν μπόÏεσα να διαβάσω %2 από τη λίστα αναπαÏ/γής στο frame %3" -#: libs/ardour/audio_diskstream.cc:1620 libs/ardour/audio_diskstream.cc:1637 +#: libs/ardour/audio_diskstream.cc:1621 libs/ardour/audio_diskstream.cc:1638 #, fuzzy msgid "AudioDiskstream %1: cannot write to disk" msgstr "DiskStream %1: δεν μποÏÏŽ να γÏάψω στο δίσκο" -#: libs/ardour/audio_diskstream.cc:1697 +#: libs/ardour/audio_diskstream.cc:1698 #, fuzzy msgid "AudioDiskstream \"%1\": cannot flush captured data to disk!" msgstr "" "DiskStream \"%1\": δεν γίνεται να αποÏÏιφθοÏν δειγματοληψίες στο δίσκο!" -#: libs/ardour/audio_diskstream.cc:1794 +#: libs/ardour/audio_diskstream.cc:1796 msgid "%1: could not create region for complete audio file" msgstr "%1: δεν μπόÏεσα να δημιουÏγήσω πεÏιοχή για ολόκληÏο audio file" -#: libs/ardour/audio_diskstream.cc:1817 +#: libs/ardour/audio_diskstream.cc:1819 #, fuzzy msgid "AudioDiskstream: could not create region for captured audio!" msgstr "DiskStream: δεν μπόÏεσα να δημιουÏγήσω πεÏιοχή για δειγματοληψίες!" -#: libs/ardour/audio_diskstream.cc:1872 +#: libs/ardour/audio_diskstream.cc:1874 #, fuzzy msgid "programmer error: %1" msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: %1" -#: libs/ardour/audio_diskstream.cc:2144 +#: libs/ardour/audio_diskstream.cc:2146 #, fuzzy msgid "AudioDiskstream: channel %1 out of range" msgstr "DiskStream: κανάλι εκτός διαστήματος" -#: libs/ardour/audio_diskstream.cc:2169 +#: libs/ardour/audio_diskstream.cc:2171 msgid "%1:%2 new capture file not initialized correctly" msgstr "%1:%2 νÎα δειγματοληψία δεν εκκινήθη σωστά" -#: libs/ardour/audio_diskstream.cc:2402 +#: libs/ardour/audio_diskstream.cc:2404 msgid "Location \"%1\" not valid for track loop (start >= end)" msgstr "Η Τοποθεσία \"%1\" δεν είναι ικανή για track loop (αÏχή >= Ï„Îλος)" -#: libs/ardour/audio_diskstream.cc:2483 +#: libs/ardour/audio_diskstream.cc:2485 #, fuzzy msgid "%1: cannot restore pending capture source file %2" msgstr "Εισαγωγή: δεν μποÏÏŽ να ανοίξω το εισαγμÎνο αÏχείο ήχου \"%1\"" -#: libs/ardour/audio_diskstream.cc:2505 +#: libs/ardour/audio_diskstream.cc:2507 msgid "%1: incorrect number of pending sources listed - ignoring them all" msgstr "" -#: libs/ardour/audio_diskstream.cc:2521 +#: libs/ardour/audio_diskstream.cc:2523 msgid "%1: cannot create whole-file region from pending capture sources" msgstr "" -#: libs/ardour/audio_diskstream.cc:2533 +#: libs/ardour/audio_diskstream.cc:2535 #, fuzzy msgid "%1: cannot create region from pending capture sources" msgstr "%1: δεν μπόÏεσα να δημιουÏγήσω πεÏιοχή για ολόκληÏο audio file" -#: libs/ardour/audio_library.cc:91 +#: libs/ardour/audio_library.cc:92 msgid "channels" msgstr "" -#: libs/ardour/audio_library.cc:92 +#: libs/ardour/audio_library.cc:93 #, fuzzy msgid "samplerate" msgstr "ξεχωÏιστό" -#: libs/ardour/audio_library.cc:93 +#: libs/ardour/audio_library.cc:94 msgid "resolution" msgstr "" -#: libs/ardour/audio_library.cc:94 +#: libs/ardour/audio_library.cc:95 #, fuzzy msgid "format" msgstr "float" -#: libs/ardour/audio_library.cc:101 +#: libs/ardour/audio_library.cc:102 msgid "Could not open %1. Audio Library not saved" msgstr "Δεν μπόÏεσα να ανοίξω το %1. Η Audio Library δεν αποθηκεÏθηκε" -#: libs/ardour/audio_playlist.cc:52 libs/ardour/audio_playlist.cc:62 -#: libs/ardour/audio_playlist.cc:73 libs/ardour/audio_playlist.cc:120 +#: libs/ardour/audio_playlist.cc:53 libs/ardour/audio_playlist.cc:63 +#: libs/ardour/audio_playlist.cc:74 libs/ardour/audio_playlist.cc:121 #: libs/ardour/insert.cc:76 libs/ardour/insert.cc:95 libs/ardour/insert.cc:120 -#: libs/ardour/insert.cc:838 libs/ardour/insert.cc:846 libs/ardour/send.cc:38 -#: libs/ardour/send.cc:52 libs/ardour/send.cc:61 -#: libs/ardour/session_state.cc:1620 libs/ardour/session_state.cc:1666 +#: libs/ardour/insert.cc:838 libs/ardour/insert.cc:846 libs/ardour/send.cc:39 +#: libs/ardour/send.cc:53 libs/ardour/send.cc:62 +#: libs/ardour/session_state.cc:1621 libs/ardour/session_state.cc:1667 msgid "initial state" msgstr "Ï€ÏωταÏχική κατάσταση" -#: libs/ardour/audio_playlist.cc:274 libs/ardour/audio_playlist.cc:768 +#: libs/ardour/audio_playlist.cc:275 libs/ardour/audio_playlist.cc:769 msgid "" "programming error: non-audio Region passed to remove_overlap in audio " "playlist" @@ -140,51 +140,51 @@ msgstr "" "σφάλμα Ï€ÏογÏαμματισμοÏ: μη-ηχητική ΠεÏιοχή Ï€ÎÏασε σε remove_overlap στην " "audio playlist" -#: libs/ardour/audio_playlist.cc:401 +#: libs/ardour/audio_playlist.cc:402 msgid "" "programming error: non-audio Region tested for overlap in audio playlist" msgstr "" "σφάλμα Ï€ÏογÏαμματισμοÏ: μη-ηχητική ΠεÏιοχή ελÎγχθη για υπεÏπήδηση(overlap) " "στην λίστα αναπαÏ/γής του ήχου" -#: libs/ardour/audio_playlist.cc:877 +#: libs/ardour/audio_playlist.cc:878 msgid "xfade change" msgstr "αλλαγή xfade" -#: libs/ardour/audio_playlist.cc:932 +#: libs/ardour/audio_playlist.cc:933 msgid "region modified" msgstr "η πεÏιοχή μετεβλήθη" -#: libs/ardour/audio_track.cc:132 libs/ardour/io.cc:1715 -#: libs/ardour/io.cc:1825 +#: libs/ardour/audio_track.cc:125 libs/ardour/io.cc:1716 +#: libs/ardour/io.cc:1826 msgid "Unknown connection \"%1\" listed for input of %2" msgstr "Άγνωστη σÏνδεση \"%1\" στη λίστα εισόδου του %2" -#: libs/ardour/audio_track.cc:134 libs/ardour/io.cc:1717 -#: libs/ardour/io.cc:1827 +#: libs/ardour/audio_track.cc:127 libs/ardour/io.cc:1718 +#: libs/ardour/io.cc:1828 #, fuzzy msgid "in 1" msgstr "in %lu" -#: libs/ardour/audio_track.cc:135 libs/ardour/io.cc:1718 -#: libs/ardour/io.cc:1828 +#: libs/ardour/audio_track.cc:128 libs/ardour/io.cc:1719 +#: libs/ardour/io.cc:1829 msgid "No input connections available as a replacement" msgstr "" -#: libs/ardour/audio_track.cc:139 libs/ardour/io.cc:1722 -#: libs/ardour/io.cc:1832 +#: libs/ardour/audio_track.cc:132 libs/ardour/io.cc:1723 +#: libs/ardour/io.cc:1833 msgid "Connection %1 was not available - \"in 1\" used instead" msgstr "" -#: libs/ardour/audio_track.cc:148 libs/ardour/io.cc:1841 +#: libs/ardour/audio_track.cc:141 libs/ardour/io.cc:1842 msgid "improper input channel list in XML node (%1)" msgstr "ακατάλληλη λίστα καναλιών εισόδου στον κόμβο XML (%1)" -#: libs/ardour/audio_track.cc:193 libs/ardour/audio_track.cc:206 +#: libs/ardour/audio_track.cc:186 libs/ardour/audio_track.cc:199 msgid "AudioTrack: diskstream \"%1\" not known by session" msgstr "AudioTrack: το diskstream \"%1\" είναι μή αναγνωÏίσιμο από τη συνεδÏία" -#: libs/ardour/audio_track.cc:304 +#: libs/ardour/audio_track.cc:297 #, fuzzy msgid "" "MIDI rec_enable control specification for %1 is incomplete, so it has been " @@ -193,95 +193,95 @@ msgstr "" "Η Ï€ÏοδιαγÏαφή ελÎγχου του MIDI gain για το %1 είναι ημιτελής, με αποτÎλεσμα " "να αγνοηθεί" -#: libs/ardour/audio_track.cc:316 +#: libs/ardour/audio_track.cc:309 msgid "programming error: AudioTrack given state without diskstream!" msgstr "" "σφάλμα Ï€ÏογÏαμματισμοÏ: εδόθη κατάσταση στην AudioTrack δίχως diskstream!" -#: libs/ardour/audioengine.cc:149 +#: libs/ardour/audioengine.cc:144 msgid "cannot activate JACK client" msgstr "Ο JACK δεν μποÏεί να ενεÏγοποιηθεί" -#: libs/ardour/audioengine.cc:400 +#: libs/ardour/audioengine.cc:395 msgid "register audio input port called before engine was started" msgstr "η register audio input port εκλήθη Ï€Ïιν να εκκινηθεί η engine" -#: libs/ardour/audioengine.cc:431 +#: libs/ardour/audioengine.cc:426 msgid "register audio output port called before engine was started" msgstr "η register audio output port εκλήθη Ï€Ïίν να εκκινηθεί η engine" -#: libs/ardour/audioengine.cc:492 +#: libs/ardour/audioengine.cc:487 msgid "connect called before engine was started" msgstr "η σÏνδεση εκλήθη Ï€Ïιν να εκκινηθεί η engine" -#: libs/ardour/audioengine.cc:508 +#: libs/ardour/audioengine.cc:503 msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)" msgstr "" -#: libs/ardour/audioengine.cc:521 libs/ardour/audioengine.cc:550 +#: libs/ardour/audioengine.cc:516 libs/ardour/audioengine.cc:545 msgid "disconnect called before engine was started" msgstr "η αποσÏνδεση εκλήθη Ï€Ïιν να εκκινηθεί η engine" -#: libs/ardour/audioengine.cc:608 +#: libs/ardour/audioengine.cc:603 msgid "get_port_by_name() called before engine was started" msgstr "η Ïουτίνα get_port_by_name() εκλήθη Ï€Ïιν να εκκινηθεί η engine" -#: libs/ardour/audioengine.cc:641 +#: libs/ardour/audioengine.cc:636 msgid "get_ports called before engine was started" msgstr "η Ïουτίνα get_ports εκλήθη Ï€Ïιν να εκκινηθεί η engine" -#: libs/ardour/audioengine.cc:716 +#: libs/ardour/audioengine.cc:711 msgid "get_nth_physical called before engine was started" msgstr "η Ïουτίνα get_nth_physical εκλήθη Ï€Ïιν να εκκινηθεί η engine" -#: libs/ardour/audioengine.cc:744 +#: libs/ardour/audioengine.cc:739 #, fuzzy msgid "get_port_total_latency() called with no JACK client connection" msgstr "η Ïουτίνα get_port_total_latency() εκλήθη Ï€Ïιν να εκκινηθεί η engine" -#: libs/ardour/audioengine.cc:750 +#: libs/ardour/audioengine.cc:745 msgid "get_port_total_latency() called before engine was started" msgstr "η Ïουτίνα get_port_total_latency() εκλήθη Ï€Ïιν να εκκινηθεί η engine" -#: libs/ardour/audioengine.cc:874 +#: libs/ardour/audioengine.cc:869 msgid "Unable to connect to JACK server" msgstr "" -#: libs/ardour/audioengine.cc:877 +#: libs/ardour/audioengine.cc:872 msgid "Could not connect to JACK server as \"%1\"" msgstr "" -#: libs/ardour/audioengine.cc:882 +#: libs/ardour/audioengine.cc:877 msgid "JACK server started" msgstr "" -#: libs/ardour/audioengine.cc:916 +#: libs/ardour/audioengine.cc:911 msgid "cannot shutdown connection to JACK" msgstr "" -#: libs/ardour/audioengine.cc:941 +#: libs/ardour/audioengine.cc:936 msgid "failed to connect to JACK" msgstr "" -#: libs/ardour/audioengine.cc:957 +#: libs/ardour/audioengine.cc:952 #, fuzzy msgid "could not reregister %1" msgstr "Σφάλμα: δεν μπόÏεσα να γÏάψω %1" -#: libs/ardour/audioengine.cc:1014 +#: libs/ardour/audioengine.cc:1009 msgid "could not reconnect %1 and %2 (err = %3)" msgstr "" -#: libs/ardour/audiofilesource.cc:444 libs/ardour/session_state.cc:3094 +#: libs/ardour/audiofilesource.cc:444 libs/ardour/session_state.cc:3095 msgid "" "there are already 1000 files with names like %1; versioning discontinued" msgstr "ΥπάÏχουν ήδη 1000 αÏχεία με ονόματα όπως %1; μη-συνεχÎÏ‚ versioning" -#: libs/ardour/audiofilesource.cc:458 libs/ardour/session_state.cc:3108 +#: libs/ardour/audiofilesource.cc:458 libs/ardour/session_state.cc:3109 msgid "cannot rename audio file source from %1 to %2 (%3)" msgstr "δεν μποÏÏŽ να μετονομάσω την πηγή του audio file από %1 σε %2 (%3)" -#: libs/ardour/audiofilesource.cc:465 libs/ardour/session_state.cc:3123 +#: libs/ardour/audiofilesource.cc:465 libs/ardour/session_state.cc:3124 msgid "cannot remove peakfile %1 for %2 (%3)" msgstr "δεν μποÏÏŽ να απαλοίψω το peakfile %1 για %2 (%3)" @@ -310,23 +310,23 @@ msgstr "Filesource: δεν ευÏÎθη το απαιτοÏμενο αÏχείο msgid "Filesource: cannot check for existing file (%1): %2" msgstr "Filesource: δεν μποÏÏŽ να ελÎγξω για το υπάÏχον αÏχείο (%1): %2" -#: libs/ardour/audiofilesource.cc:639 libs/ardour/insert.cc:525 -#: libs/ardour/sndfilesource.cc:111 +#: libs/ardour/audiofilesource.cc:636 libs/ardour/insert.cc:525 +#: libs/ardour/sndfilesource.cc:113 msgid "programming error: %1" msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: %1" -#: libs/ardour/audiofilesource.cc:644 +#: libs/ardour/audiofilesource.cc:641 #, fuzzy msgid "cannot rename audio file for %1 to %2" msgstr "δεν μποÏÏŽ να μετονομάσω την πηγή του audio file από %1 σε %2 (%3)" -#: libs/ardour/audiofilter.cc:44 +#: libs/ardour/audiofilter.cc:45 msgid "audiofilter: error creating name for new audio file based on %1" msgstr "" "audiofilter: σφάλμα στη δημιουÏγία ονόματος για νÎο audio file βασισμÎνο σε %" "1" -#: libs/ardour/audiofilter.cc:57 +#: libs/ardour/audiofilter.cc:58 msgid "audiofilter: error creating new audio file %1 (%2)" msgstr "audiofilter: σφάλμα στη δημιουÏγία νÎου audio file %1 (%2)" @@ -412,152 +412,152 @@ msgstr "" msgid "%1: could not write peak file data (%2)" msgstr "%1: δεν μπόÏεσα να γÏάψω δεδομÎνα του αÏχείου peak (%2)" -#: libs/ardour/automation_event.cc:64 libs/ardour/location.cc:344 -#: libs/ardour/tempo.cc:225 +#: libs/ardour/automation_event.cc:65 libs/ardour/location.cc:345 +#: libs/ardour/tempo.cc:226 msgid "initial" msgstr "Ï€ÏωταÏχικό" -#: libs/ardour/automation_event.cc:231 +#: libs/ardour/automation_event.cc:232 msgid "cleared" msgstr "εκκαθαÏίσθη" -#: libs/ardour/automation_event.cc:403 +#: libs/ardour/automation_event.cc:404 msgid "added event" msgstr "συμβάν Ï€ÏοστÎθηκε" -#: libs/ardour/automation_event.cc:420 +#: libs/ardour/automation_event.cc:421 msgid "removed event" msgstr "συμβάν απαλοίφθηκε" -#: libs/ardour/automation_event.cc:435 +#: libs/ardour/automation_event.cc:436 msgid "removed multiple events" msgstr "πολλαπλά συμβάντα απαλοίφθηκαν" -#: libs/ardour/automation_event.cc:466 libs/ardour/automation_event.cc:497 +#: libs/ardour/automation_event.cc:467 libs/ardour/automation_event.cc:498 msgid "removed range" msgstr "διάστημα απαλοίφθηκε" -#: libs/ardour/automation_event.cc:527 +#: libs/ardour/automation_event.cc:528 msgid "event range adjusted" msgstr "διάστημα συμβάντων Ïυθμίστηκε" -#: libs/ardour/automation_event.cc:549 +#: libs/ardour/automation_event.cc:550 msgid "event adjusted" msgstr "συμβάν Ïυθμίστηκε" -#: libs/ardour/automation_event.cc:664 libs/ardour/automation_event.cc:769 +#: libs/ardour/automation_event.cc:665 libs/ardour/automation_event.cc:770 #: libs/ardour/panner.cc:1041 msgid "programming error:" msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ:" -#: libs/ardour/automation_event.cc:1078 +#: libs/ardour/automation_event.cc:1079 msgid "cut/copy/clear" msgstr "κοπή/αντιγÏαφή/εκκαθάÏιση" -#: libs/ardour/automation_event.cc:1111 +#: libs/ardour/automation_event.cc:1112 msgid "copy" msgstr "αντιγÏαφή" -#: libs/ardour/automation_event.cc:1179 libs/ardour/playlist.cc:939 +#: libs/ardour/automation_event.cc:1180 libs/ardour/playlist.cc:939 msgid "paste" msgstr "επικόλληση" -#: libs/ardour/automation_event.cc:1234 +#: libs/ardour/automation_event.cc:1235 msgid "" "automation list: no x-coordinate stored for control point (point ignored)" msgstr "" "λίστα αυτοματισμοÏ: καμία x-συντεταγμÎνη αποθηκευμÎνη για σημείο ελÎγχου (το " "σημείο αγνοήθηκε)" -#: libs/ardour/automation_event.cc:1240 +#: libs/ardour/automation_event.cc:1241 msgid "" "automation list: no y-coordinate stored for control point (point ignored)" msgstr "" "λίστα αυτοματισμοÏ: καμία y-συντεταγμÎνη αποθηκευμÎνη για σημείο ελÎγχου (το " "σημείο αγνοήθηκε)" -#: libs/ardour/configuration.cc:79 +#: libs/ardour/configuration.cc:80 #, fuzzy msgid "loading system configuration file %1" msgstr "" "Ardour: δεν μποÏÏŽ να διαβάσω το αÏχείο διαÏÏυθμίσεως του συστήματος \"%1\"" -#: libs/ardour/configuration.cc:82 +#: libs/ardour/configuration.cc:83 msgid "Ardour: cannot read system configuration file \"%1\"" msgstr "" "Ardour: δεν μποÏÏŽ να διαβάσω το αÏχείο διαÏÏυθμίσεως του συστήματος \"%1\"" -#: libs/ardour/configuration.cc:87 +#: libs/ardour/configuration.cc:88 msgid "Ardour: system configuration file \"%1\" not loaded successfully." msgstr "" "Ardour: το αÏχείο διαÏÏυθμίσεως του συστήματος \"%1\" δεν φοÏτώθηκε επιτυχώς." -#: libs/ardour/configuration.cc:104 +#: libs/ardour/configuration.cc:105 #, fuzzy msgid "loading user configuration file %1" msgstr "Ardour: αÏχείο διαÏÏυθμίσεως μή αναγνώσιμο \"%1\"" -#: libs/ardour/configuration.cc:107 +#: libs/ardour/configuration.cc:108 msgid "Ardour: cannot read configuration file \"%1\"" msgstr "Ardour: αÏχείο διαÏÏυθμίσεως μή αναγνώσιμο \"%1\"" -#: libs/ardour/configuration.cc:112 +#: libs/ardour/configuration.cc:113 #, fuzzy msgid "Ardour: user configuration file \"%1\" not loaded successfully." msgstr "Ardour: αÏχείο διαÏÏυθμίσεως \"%1\" δεν φοÏτώθηκε επιτυχώς." -#: libs/ardour/configuration.cc:136 +#: libs/ardour/configuration.cc:137 #, fuzzy msgid "Config file %1 not saved" msgstr "ΑÏχείο διαÏÏυθμίσεως δεν αποθηκεÏθηκε" -#: libs/ardour/configuration.cc:209 +#: libs/ardour/configuration.cc:210 msgid "ill-formed MIDI port specification in ardour rcfile (ignored)" msgstr "κακοσχηματισμÎνος καθοÏισμός MIDI θÏÏας στο ardour rcfile (αγνοήθηκε)" -#: libs/ardour/connection.cc:182 +#: libs/ardour/connection.cc:183 msgid "Node for Connection has no \"name\" property" msgstr "Κόμβος Ï€Ïος ΣÏνδεση δεν Îχει \"όνομα\" ιδιότητα" -#: libs/ardour/connection.cc:190 +#: libs/ardour/connection.cc:191 msgid "Node for Connection has no \"connections\" property" msgstr "Κόμβος Ï€Ïος ΣÏνδεση δεν Îχει \"συνδÎσεις\" ιδιότητα" -#: libs/ardour/connection.cc:226 libs/ardour/io.cc:1901 +#: libs/ardour/connection.cc:227 libs/ardour/io.cc:1902 msgid "IO: badly formed string in XML node for inputs \"%1\"" msgstr "IO: κακοφτιαγμÎνη γÏαμμή στον XML κόμβο για εισόδους \"%1\"" -#: libs/ardour/connection.cc:231 libs/ardour/io.cc:1906 +#: libs/ardour/connection.cc:232 libs/ardour/io.cc:1907 msgid "bad input string in XML node \"%1\"" msgstr "κακή γÏαμμή εισόδου στον XML κόμβο \"%1\"" -#: libs/ardour/control_protocol_manager.cc:82 +#: libs/ardour/control_protocol_manager.cc:80 msgid "control protocol name \"%1\" has no descriptor" msgstr "" -#: libs/ardour/control_protocol_manager.cc:87 +#: libs/ardour/control_protocol_manager.cc:85 msgid "control protocol name \"%1\" could not be initialized" msgstr "" -#: libs/ardour/control_protocol_manager.cc:143 +#: libs/ardour/control_protocol_manager.cc:141 msgid "Instantiating mandatory control protocol %1" msgstr "" -#: libs/ardour/control_protocol_manager.cc:177 +#: libs/ardour/control_protocol_manager.cc:175 #, fuzzy msgid "Control protocol %1 not usable" msgstr "ΧωÏίς Îλεγχο MMC (θÏÏα MIDI \"%1\" μη διαθÎσιμη)" -#: libs/ardour/control_protocol_manager.cc:189 +#: libs/ardour/control_protocol_manager.cc:187 msgid "Control surface protocol discovered: \"%1\"" msgstr "" -#: libs/ardour/control_protocol_manager.cc:207 +#: libs/ardour/control_protocol_manager.cc:205 #, fuzzy msgid "ControlProtocolManager: cannot load module \"%1\" (%2)" msgstr "LADSPA: δεν μποÏÏŽ να φοÏτώσω το module \"%1\" (%2)" -#: libs/ardour/control_protocol_manager.cc:215 +#: libs/ardour/control_protocol_manager.cc:213 #, fuzzy msgid "ControlProtocolManager: module \"%1\" has no descriptor function." msgstr "LADSPA: το module \"%1\" δεν Îχει λειτουÏγία πεÏιγÏαφής." @@ -591,104 +591,104 @@ msgstr "αλλαγή ενεÏγοÏ" msgid "old-style crossfade information - no position information" msgstr "Ο κόμβος XML για την Τοποθεσία δεν Îχει πληÏοφοÏίες ενάÏξεως" -#: libs/ardour/curve.cc:111 libs/ardour/globals.cc:339 +#: libs/ardour/curve.cc:112 libs/ardour/globals.cc:340 #: libs/ardour/insert.cc:454 libs/ardour/session.cc:2466 #: libs/ardour/session.cc:2518 msgid "programming error: " msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: " -#: libs/ardour/cycle_timer.cc:35 +#: libs/ardour/cycle_timer.cc:37 msgid "CycleTimer::get_mhz(): can't open /proc/cpuinfo" msgstr "CycleTimer::get_mhz(): δεν ανοίγει το /proc/cpuinfo" -#: libs/ardour/cycle_timer.cc:47 +#: libs/ardour/cycle_timer.cc:49 msgid "CycleTimer::get_mhz(): cannot locate cpu MHz in /proc/cpuinfo" msgstr "CycleTimer::get_mhz(): δεν ευÏÎθη το cpu MHz στο /proc/cpuinfo" -#: libs/ardour/cycle_timer.cc:70 +#: libs/ardour/cycle_timer.cc:72 msgid "cannot locate cpu MHz in /proc/cpuinfo" msgstr "δεν ευÏÎθη το cpu MHz στο /proc/cpuinfo" -#: libs/ardour/destructive_filesource.cc:187 +#: libs/ardour/destructive_filesource.cc:188 msgid "DestructiveFileSource: \"%1\" bad read retval: %2 of %5 (%3: %4)" msgstr "" -#: libs/ardour/destructive_filesource.cc:200 -#: libs/ardour/destructive_filesource.cc:242 -#: libs/ardour/destructive_filesource.cc:249 +#: libs/ardour/destructive_filesource.cc:201 +#: libs/ardour/destructive_filesource.cc:243 +#: libs/ardour/destructive_filesource.cc:250 #, fuzzy msgid "DestructiveFileSource: \"%1\" bad write (%2)" msgstr "FileSource: \"%1\" κακή εγγÏαφή (%2)" -#: libs/ardour/globals.cc:108 +#: libs/ardour/globals.cc:109 msgid "no MIDI ports specified: no MMC or MTC control possible" msgstr "καμία MIDI θÏÏα δεν επελÎχθη: Îλεγχος MMC ή MTC αδÏνατος" -#: libs/ardour/globals.cc:123 +#: libs/ardour/globals.cc:124 msgid "MIDI port specifications for \"%1\" are not understandable." msgstr "Οι Ï€ÏοδιαγÏαφÎÏ‚ της θÏÏας MIDI για το \"%1\" δεν είναι κατανοητÎÏ‚." -#: libs/ardour/globals.cc:136 libs/ardour/globals.cc:140 -#: libs/ardour/globals.cc:144 +#: libs/ardour/globals.cc:137 libs/ardour/globals.cc:141 +#: libs/ardour/globals.cc:145 msgid "default" msgstr "Ï€ÏοκαθοÏισμÎνο" -#: libs/ardour/globals.cc:172 +#: libs/ardour/globals.cc:173 msgid "No MMC control (MIDI port \"%1\" not available)" msgstr "ΧωÏίς Îλεγχο MMC (θÏÏα MIDI \"%1\" μη διαθÎσιμη)" -#: libs/ardour/globals.cc:178 +#: libs/ardour/globals.cc:179 msgid "No MTC support (MIDI port \"%1\" not available)" msgstr "ΧωÏίς Îλεγχο MTC (θÏÏα MIDI \"%1\" μη διαθÎσιμη)" -#: libs/ardour/globals.cc:183 +#: libs/ardour/globals.cc:184 #, fuzzy msgid "No MIDI parameter support (MIDI port \"%1\" not available)" msgstr "ΧωÏίς Îλεγχο MTC (θÏÏα MIDI \"%1\" μη διαθÎσιμη)" -#: libs/ardour/import.cc:74 +#: libs/ardour/import.cc:75 msgid "Import: cannot open input sound file \"%1\"" msgstr "Εισαγωγή: δεν μποÏÏŽ να ανοίξω το εισαγμÎνο αÏχείο ήχου \"%1\"" -#: libs/ardour/import.cc:79 +#: libs/ardour/import.cc:80 msgid "resampling audio" msgstr "επανά-ληψη(resampling) ήχου" -#: libs/ardour/import.cc:83 +#: libs/ardour/import.cc:84 msgid "Import: cannot open converted sound file \"%1\"" msgstr "Εισαγωγή: δεν μποÏÏŽ να ανοίξω το Ï„ÏοποποιημÎνο αÏχείο ήχου \"%1\"" -#: libs/ardour/import.cc:88 +#: libs/ardour/import.cc:89 msgid "Import: error while resampling sound file \"%1\"" msgstr "Εισαγωγή: σφάλμα κατά την Ï„Ïοποποίηση αÏχείου \"%1\"" -#: libs/ardour/import.cc:147 +#: libs/ardour/import.cc:148 msgid "Session::import_audiofile: cannot open new file source for channel %1" msgstr "" "ΣυνεδÏία::εισαγωγή_αÏχείου: δεν μποÏÏŽ να ανοίξω νÎα πηγή αÏχείου για το " "κανάλι %1" -#: libs/ardour/import.cc:166 +#: libs/ardour/import.cc:167 msgid "converting audio" msgstr "μετατÏοπή ήχου" -#: libs/ardour/import.cc:198 +#: libs/ardour/import.cc:199 msgid "building region" msgstr "χτίσιμο πεÏιοχής" -#: libs/ardour/import.cc:200 +#: libs/ardour/import.cc:201 msgid "building regions" msgstr "χτίσιμο πεÏιοχών" -#: libs/ardour/import.cc:324 +#: libs/ardour/import.cc:325 msgid "Import: could not open temp file: %1" msgstr "Εισαγωγή: δεν μπόÏεσα να ανοίξω το temp αÏχείο: %1" -#: libs/ardour/import.cc:333 +#: libs/ardour/import.cc:334 msgid "Import: src_new() failed : %1" msgstr "Εισαγωγή: src_new() απÎτυχε : %1" -#: libs/ardour/import.cc:361 +#: libs/ardour/import.cc:362 msgid "Import: %1" msgstr "Εισαγωγή: %1" @@ -747,153 +747,153 @@ msgstr "PortInsert: δεν μποÏεί να Ï€Ïοστεθεί θÏÏα εξόΠmsgid "non-port insert XML used for port plugin insert" msgstr "εισαγωγή μη-θÏÏας XML για χÏήση σε εισαγωγή plugin θÏÏας" -#: libs/ardour/io.cc:597 +#: libs/ardour/io.cc:598 msgid "IO: cannot disconnect input port %1 from %2" msgstr "IO: δεν μποÏει να αποσυνδεθεί η θÏÏα εισόδου %1 από %2" -#: libs/ardour/io.cc:665 +#: libs/ardour/io.cc:666 msgid "IO: cannot disconnect output port %1 from %2" msgstr "IO: δεν μποÏεί να αποσυνδεθεί η θÏÏα εξόδου %1 από %2" -#: libs/ardour/io.cc:806 libs/ardour/io.cc:1150 libs/ardour/io.cc:1276 +#: libs/ardour/io.cc:807 libs/ardour/io.cc:1151 libs/ardour/io.cc:1277 #, c-format msgid "%s/out" msgstr "%s/out" -#: libs/ardour/io.cc:808 libs/ardour/io.cc:1152 libs/ardour/io.cc:1278 -#: libs/ardour/io.cc:2848 +#: libs/ardour/io.cc:809 libs/ardour/io.cc:1153 libs/ardour/io.cc:1279 +#: libs/ardour/io.cc:2849 #, c-format msgid "%s/out %u" msgstr "%s/out %u" -#: libs/ardour/io.cc:812 libs/ardour/io.cc:1157 libs/ardour/io.cc:1282 +#: libs/ardour/io.cc:813 libs/ardour/io.cc:1158 libs/ardour/io.cc:1283 msgid "IO: cannot register output port %1" msgstr "IO: δεν μποÏει να καταχώÏηθεί η θÏÏα εξόδου %1" -#: libs/ardour/io.cc:907 libs/ardour/io.cc:1010 libs/ardour/io.cc:1116 +#: libs/ardour/io.cc:908 libs/ardour/io.cc:1011 libs/ardour/io.cc:1117 #, c-format msgid "%s/in" msgstr "%s/in" -#: libs/ardour/io.cc:909 libs/ardour/io.cc:1013 libs/ardour/io.cc:1119 -#: libs/ardour/io.cc:2818 +#: libs/ardour/io.cc:910 libs/ardour/io.cc:1014 libs/ardour/io.cc:1120 +#: libs/ardour/io.cc:2819 #, c-format msgid "%s/in %u" msgstr "%s/in %u" -#: libs/ardour/io.cc:913 libs/ardour/io.cc:1019 libs/ardour/io.cc:1124 +#: libs/ardour/io.cc:914 libs/ardour/io.cc:1020 libs/ardour/io.cc:1125 msgid "IO: cannot register input port %1" msgstr "IO: δεν μποÏεί να καταχώÏηθεί η θÏÏα εισόδου %1" -#: libs/ardour/io.cc:1540 +#: libs/ardour/io.cc:1541 msgid "IO::connecting_became_legal() called without a pending state node" msgstr "" "IO::connecting_became_legal() εκλήθη χωÏίς κόμβο καταστάσεως εν αναμονή" -#: libs/ardour/io.cc:1563 +#: libs/ardour/io.cc:1564 msgid "IO::ports_became_legal() called without a pending state node" msgstr "IO::ports_became_legal() εκλήθη χωÏίς κόμβο καταστάσεως εν αναμονή" -#: libs/ardour/io.cc:1593 +#: libs/ardour/io.cc:1594 msgid "incorrect XML node \"%1\" passed to IO object" msgstr "μη-σωστός κόμβος XML \"%1\" Ï€ÎÏασε στο IO αντικείμενο" -#: libs/ardour/io.cc:1648 +#: libs/ardour/io.cc:1649 msgid "" "MIDI gain control specification for %1 is incomplete, so it has been ignored" msgstr "" "Η Ï€ÏοδιαγÏαφή ελÎγχου του MIDI gain για το %1 είναι ημιτελής, με αποτÎλεσμα " "να αγνοηθεί" -#: libs/ardour/io.cc:1738 libs/ardour/io.cc:1850 +#: libs/ardour/io.cc:1739 libs/ardour/io.cc:1851 msgid "Unknown connection \"%1\" listed for output of %2" msgstr "Άγνωστη σÏνδεση \"%1\" καταχωÏήθη για την Îξοδο του %2" -#: libs/ardour/io.cc:1740 libs/ardour/io.cc:1852 +#: libs/ardour/io.cc:1741 libs/ardour/io.cc:1853 #, fuzzy msgid "out 1" msgstr "out %lu" -#: libs/ardour/io.cc:1741 libs/ardour/io.cc:1853 +#: libs/ardour/io.cc:1742 libs/ardour/io.cc:1854 msgid "No output connections available as a replacement" msgstr "" -#: libs/ardour/io.cc:1745 libs/ardour/io.cc:1857 +#: libs/ardour/io.cc:1746 libs/ardour/io.cc:1858 msgid "Connection %1 was not available - \"out 1\" used instead" msgstr "" -#: libs/ardour/io.cc:1759 +#: libs/ardour/io.cc:1760 msgid "%1: cannot create I/O ports" msgstr "%1: θÏÏες I/O δεν μποÏοÏν να δημιουÏγηθοÏν" -#: libs/ardour/io.cc:1866 +#: libs/ardour/io.cc:1867 msgid "improper output channel list in XML node (%1)" msgstr "ασαφής λίστα καναλιών εξόδου στον κόμβο XML (%1)" -#: libs/ardour/io.cc:1951 +#: libs/ardour/io.cc:1952 msgid "IO: badly formed string in XML node for outputs \"%1\"" msgstr "IO: δÏσμοÏφη γÏαμμή στον κόμβο XML για τις εξόδους \"%1\"" -#: libs/ardour/io.cc:1956 +#: libs/ardour/io.cc:1957 msgid "IO: bad output string in XML node \"%1\"" msgstr "IO: κακή γÏαμμή εξόδουστον κόμβο XML \"%1\"" -#: libs/ardour/io.cc:2524 +#: libs/ardour/io.cc:2525 msgid "%1: could not open automation event file \"%2\"" msgstr "%1: δεν μπόÏεσα να ανοίξω το αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï \"%2\"" -#: libs/ardour/io.cc:2563 +#: libs/ardour/io.cc:2564 msgid "%1: cannot open automation event file \"%2\"" msgstr "%1: δεν μποÏÏŽ να ανοίξω το αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï \"%2\"" -#: libs/ardour/io.cc:2578 +#: libs/ardour/io.cc:2579 msgid "badly formed version number in automation event file \"%1\"" msgstr "δÏσμοÏφος αÏιθμός εκδόσεως στο αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï \"%1\"" -#: libs/ardour/io.cc:2582 +#: libs/ardour/io.cc:2583 msgid "no version information in automation event file \"%1\"" msgstr "" "δεν υπάÏχουν πληÏοφοÏίες πεÏί εκδόσεων στο αÏχείο συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï \"%1" "\"" -#: libs/ardour/io.cc:2587 +#: libs/ardour/io.cc:2588 msgid "mismatched automation event file version (%1)" msgstr "αταίÏιαστη Îκδοση αÏχείου συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï (%1)" -#: libs/ardour/io.cc:2595 +#: libs/ardour/io.cc:2596 msgid "badly formatted automation event record at line %1 of %2 (ignored)" msgstr "" "κακώς φοÏμαÏισμÎνη καταγÏαφή συμβάντων Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏƒÏ„Î· γÏαμμή %1 of %2 " "(αγνοήθηκε)" -#: libs/ardour/io.cc:2615 +#: libs/ardour/io.cc:2616 msgid "dubious automation event found (and ignored)" msgstr "αβÎβαιο συμβάν Î±Ï…Ï„Î¿Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÎµÏ…ÏÎθηκε (και αγνοήθηκε)" -#: libs/ardour/io.cc:2619 libs/ardour/panner.cc:438 +#: libs/ardour/io.cc:2620 libs/ardour/panner.cc:438 #: libs/ardour/redirect.cc:148 msgid "loaded from disk" msgstr "φοÏτώθηκε από το δίσκο" -#: libs/ardour/io.cc:2790 +#: libs/ardour/io.cc:2791 msgid "automation write/touch" msgstr "αυτοματισμός εγγÏαφή/αφή(write/touch)" -#: libs/ardour/ladspa_plugin.cc:86 +#: libs/ardour/ladspa_plugin.cc:87 msgid "LADSPA: module has no descriptor function." msgstr "LADSPA: το module δεν Îχει ενδεικτική λειτουÏγία." -#: libs/ardour/ladspa_plugin.cc:91 +#: libs/ardour/ladspa_plugin.cc:92 msgid "LADSPA: plugin has gone away since discovery!" msgstr "LADSPA: το plugin την 'κοπάνισε' μετά την ανακάλυψη του!" -#: libs/ardour/ladspa_plugin.cc:98 +#: libs/ardour/ladspa_plugin.cc:99 msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing" msgstr "" "LADSPA: \"%1\" δεν μποÏεί να χÏησιμοποιηθεί, εφ'όσον δεν μποÏεί να κάνει επι " "τόπου επεξεÏγασία" -#: libs/ardour/ladspa_plugin.cc:328 +#: libs/ardour/ladspa_plugin.cc:329 msgid "" "illegal parameter number used with plugin \"%1\". This mayindicate a change " "in the plugin design, and presets may beinvalid" @@ -902,20 +902,20 @@ msgstr "" "ενδείκνυται αλλαγή στο σχεδιασμό του plugin, και οι Ïυθμίσεις ίσως να είναι " "άκυÏες" -#: libs/ardour/ladspa_plugin.cc:429 +#: libs/ardour/ladspa_plugin.cc:430 #, fuzzy msgid "Bad node sent to LadspaPlugin::set_state" msgstr "Κακή αποστολή κόμβου εστάλη στο LadspaPlugin::set_state" -#: libs/ardour/ladspa_plugin.cc:442 +#: libs/ardour/ladspa_plugin.cc:443 msgid "LADSPA: no ladspa port number" msgstr "LADSPA: κανείς αÏιθμός θÏÏας ladspa" -#: libs/ardour/ladspa_plugin.cc:448 +#: libs/ardour/ladspa_plugin.cc:449 msgid "LADSPA: no ladspa port data" msgstr "LADSPA: κανÎνα δεδομÎνο θÏÏας ladspa" -#: libs/ardour/ladspa_plugin.cc:497 +#: libs/ardour/ladspa_plugin.cc:498 msgid "" "LADSPA LadspaPlugin MIDI control specification for port %1 is incomplete, so " "it has been ignored" @@ -923,66 +923,66 @@ msgstr "" "Ο καθοÏισμός ελÎγχου LADSPA LadspaPlugin για MIDI για την θÏÏα %1 είναι " "ημιτελής, Îτσι αγνοήθηκε." -#: libs/ardour/location.cc:268 +#: libs/ardour/location.cc:269 msgid "incorrect XML node passed to Location::set_state" msgstr "λανθασμÎνος κόμβος XML Ï€ÎÏασε στην Τοποθεσία::set_state" -#: libs/ardour/location.cc:275 +#: libs/ardour/location.cc:276 msgid "XML node for Location has no name information" msgstr "Ο κόμβος XML για την Τοποθεσία δεν Îχει πληÏοφοÏίες ονόματος" -#: libs/ardour/location.cc:282 +#: libs/ardour/location.cc:283 msgid "XML node for Location has no start information" msgstr "Ο κόμβος XML για την Τοποθεσία δεν Îχει πληÏοφοÏίες ενάÏξεως" -#: libs/ardour/location.cc:293 +#: libs/ardour/location.cc:294 msgid "XML node for Location has no end information" msgstr "Ο κόμβος XML για την Τοποθεσία δεν Îχει πληÏοφοÏίες Ï„Îλους" -#: libs/ardour/location.cc:302 +#: libs/ardour/location.cc:303 msgid "XML node for Location has no flags information" msgstr "Ο κόμβος XML για την Τοποθεσία δεν Îχει πληÏοφοÏίες για σημαίες(flags)" -#: libs/ardour/location.cc:390 +#: libs/ardour/location.cc:391 msgid "Locations: attempt to use unknown location as selected location" msgstr "" "Τοποθεσίες: απόπειÏα να χÏησιμοποιηθεί άγνωστη τοποθεσία σαν επιλεγμÎνη " "τοποθεσία" -#: libs/ardour/location.cc:417 libs/ardour/playlist.cc:1187 +#: libs/ardour/location.cc:418 libs/ardour/playlist.cc:1187 msgid "clear" msgstr "εκκαθάÏιση" -#: libs/ardour/location.cc:442 +#: libs/ardour/location.cc:443 msgid "clear markers" msgstr "εκκαθάÏιση στιγμάτων" -#: libs/ardour/location.cc:470 +#: libs/ardour/location.cc:471 msgid "clear ranges" msgstr "εκκαθάÏιση διαστημάτων" -#: libs/ardour/location.cc:488 +#: libs/ardour/location.cc:489 msgid "add" msgstr "Ï€Ïόσθεση" -#: libs/ardour/location.cc:526 +#: libs/ardour/location.cc:527 msgid "remove" msgstr "απαλοιφή" -#: libs/ardour/location.cc:566 +#: libs/ardour/location.cc:567 msgid "incorrect XML mode passed to Locations::set_state" msgstr "λανθασμÎνο XML mode Ï€ÎÏασε στις Τοποθεσίες::set_state" -#: libs/ardour/mtc_slave.cc:195 +#: libs/ardour/mtc_slave.cc:196 msgid "MTC Slave: atomic read of current time failed, sleeping!" msgstr "" "MTC Slave: ατομική ανάγνωση του Ï„ÏÎχοντος χÏόνου απÎτυχε, πίσω για Ïπνο!" -#: libs/ardour/named_selection.cc:76 +#: libs/ardour/named_selection.cc:77 msgid "Chunk %1 uses an unknown playlist \"%2\"" msgstr "Το κομμάτι %1 χÏησιμοποιεί άγνωστη λίστα αναπαÏ/γής \"%2\"" -#: libs/ardour/named_selection.cc:79 +#: libs/ardour/named_selection.cc:80 msgid "Chunk %1 contains misformed playlist information" msgstr "Το κομμάτι %1 πεÏιÎχει δÏσμοÏφες πληÏοφοÏίες για τη λίστα αναπαÏ/γής" @@ -1102,63 +1102,63 @@ msgstr "Playlist: δεν μποÏÏŽ να δημιουÏγήσω ΠεÏιοχή Î msgid "nudged" msgstr "νυχθÎν" -#: libs/ardour/playlist_factory.cc:26 libs/ardour/playlist_factory.cc:41 +#: libs/ardour/playlist_factory.cc:49 libs/ardour/playlist_factory.cc:64 msgid "" "programming error: Playlist::createRegion called with unknown Region type" msgstr "" "σφάλμα Ï€ÏογÏαμματισμοÏ: Playlist::createRegion εκλήθη με άγνωστο Ï„Ïπο Πε" -#: libs/ardour/playlist_factory.cc:63 +#: libs/ardour/playlist_factory.cc:86 msgid "" "programming error: Playlist::copyPlaylist called with unknown Playlist type" msgstr "" "σφάλμα Ï€ÏογÏαμματισμοÏ: Playlist::copyPlaylist με άγνωστο Ï„Ïπο Playlist" -#: libs/ardour/plugin.cc:327 +#: libs/ardour/plugin.cc:328 msgid "Could not locate HOME. Preset not saved." msgstr "Δεν μπόÏεσα να βÏÏŽ το HOME. Î Ïο-ÏÏθμιση δεν αποθηκεÏθηκε." -#: libs/ardour/plugin.cc:337 libs/ardour/plugin.cc:343 +#: libs/ardour/plugin.cc:338 libs/ardour/plugin.cc:344 msgid "Could not create %1. Preset not saved. (%2)" msgstr "Δεν μπόÏεσα να δημιουÏγήσω το %1. Î Ïο-ÏÏθμιση δεν αποθηκεÏθηκε. (%2)" -#: libs/ardour/plugin.cc:348 +#: libs/ardour/plugin.cc:349 msgid "Error saving presets file %1." msgstr "Σφάλμα στην αποθήκευση αÏχείου Ï€Ïο-Ïυθμίσεων %1." -#: libs/ardour/plugin_manager.cc:193 +#: libs/ardour/plugin_manager.cc:194 msgid "Could not parse rdf file: %1" msgstr "Δεν μπόÏεσα να αναλÏσω το αÏχείο rdf: %1" -#: libs/ardour/plugin_manager.cc:234 +#: libs/ardour/plugin_manager.cc:235 msgid "LADSPA: cannot load module \"%1\" (%2)" msgstr "LADSPA: δεν μποÏÏŽ να φοÏτώσω το module \"%1\" (%2)" -#: libs/ardour/plugin_manager.cc:241 +#: libs/ardour/plugin_manager.cc:242 msgid "LADSPA: module \"%1\" has no descriptor function." msgstr "LADSPA: το module \"%1\" δεν Îχει λειτουÏγία πεÏιγÏαφής." -#: libs/ardour/plugin_manager.cc:296 +#: libs/ardour/plugin_manager.cc:297 msgid "VST: cannot load module from \"%1\"" msgstr "VST: δεν μποÏÏŽ να φοÏτώσω module από \"%1\"" -#: libs/ardour/plugin_manager.cc:301 +#: libs/ardour/plugin_manager.cc:302 msgid "You asked ardour to not use any VST plugins" msgstr "" -#: libs/ardour/plugin_manager.cc:304 +#: libs/ardour/plugin_manager.cc:305 msgid "This version of ardour has no support for VST plugins" msgstr "Η παÏοÏσα Îκδοση του ardour δεν υποστηÏίζει VST plugins" -#: libs/ardour/plugin_manager.cc:311 +#: libs/ardour/plugin_manager.cc:312 msgid "LADSPA: cannot load module from \"%1\"" msgstr "LADSPA: δεν μποÏÏŽ να φοÏτώσω module από \"%1\"" -#: libs/ardour/plugin_manager.cc:373 libs/ardour/plugin_manager.cc:385 +#: libs/ardour/plugin_manager.cc:374 libs/ardour/plugin_manager.cc:386 msgid "Unknown" msgstr "Άγνωστο" -#: libs/ardour/plugin_manager.cc:463 +#: libs/ardour/plugin_manager.cc:464 msgid "" "VST plugin %1 does not support processReplacing, and so cannot be used in " "ardour at this time" @@ -1174,11 +1174,11 @@ msgstr "δεν μποÏÏŽ να ανοίξω το Ï€Ïόσφατο αÏχείο Ï msgid "programming error: unknown Redirect type in Redirect::Clone!\n" msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: άγνωστος Ï„Ïπος Redirect στο Redirect::Clone!\n" -#: libs/ardour/redirect.cc:102 libs/ardour/utils.cc:202 +#: libs/ardour/redirect.cc:102 libs/ardour/utils.cc:203 msgid "pre" msgstr "pre" -#: libs/ardour/redirect.cc:104 libs/ardour/utils.cc:205 +#: libs/ardour/redirect.cc:104 libs/ardour/utils.cc:206 msgid "post" msgstr "post" @@ -1235,11 +1235,11 @@ msgstr "" msgid "active_changed" msgstr "αλλαγή_ενεÏγοÏ" -#: libs/ardour/region.cc:884 +#: libs/ardour/region.cc:885 msgid "Session: XMLNode describing a Region is incomplete (no id)" msgstr "ΣυνεδÏία: XMLΚόμβος που πεÏιγÏάφει ΠεÏιοχή είναι ημιτελής (χωÏίς id)" -#: libs/ardour/region.cc:891 +#: libs/ardour/region.cc:892 msgid "Session: XMLNode describing a Region is incomplete (no name)" msgstr "" "ΣυνεδÏία: XMLΚόμβος που πεÏιγÏάφει ΠεÏιοχή είναι ημιτελής (χωÏίς όνομα)" @@ -1303,7 +1303,7 @@ msgstr "" "Η Ï€ÏοδιαγÏαφή ελÎγχου του MIDI gain για το %1 είναι ημιτελής, με αποτÎλεσμα " "να αγνοηθεί" -#: libs/ardour/send.cc:98 +#: libs/ardour/send.cc:99 msgid "XML node describing a send is missing a Redirect node" msgstr "Στον κόμβο XML όπου πεÏιγÏάφεται Îνα send λείπει Îνας κόμβος Redirect" @@ -1447,11 +1447,11 @@ msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: άγνωστος Ï„Ïπος msgid "programming error: unknown type of Redirect deleted!" msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: άγνωστος Ï„Ïπος of Redirect διεγÏάφη!" -#: libs/ardour/session.cc:3634 +#: libs/ardour/session.cc:3636 msgid "too many bounced versions of playlist \"%1\"" msgstr "πάÏα πολλÎÏ‚ bounced εκδόσεις της Playlist \"%1\"" -#: libs/ardour/session.cc:3647 +#: libs/ardour/session.cc:3649 msgid "cannot create new audio file \"%1\" for %2" msgstr "δεν μποÏÏŽ να δημιουÏγήσω νÎο αÏχείο ήχου \"%1\" για %2" @@ -1486,19 +1486,19 @@ msgstr "Αποτυχία Ï€Ïοανάγνωσης Butler στο dstream %1" msgid "Butler write-behind failure on dstream %1" msgstr "Αποτυχία οπισθεγγÏαφής Butler στο dstream %1" -#: libs/ardour/session_click.cc:157 +#: libs/ardour/session_click.cc:158 msgid "cannot open click soundfile %1 (%2)" msgstr "δεν μποÏÏŽ να ανοίξω τοsoundfile μετÏονόμου%1 (%2)" -#: libs/ardour/session_click.cc:166 +#: libs/ardour/session_click.cc:167 msgid "cannot read data from click soundfile" msgstr "δεν μποÏÏŽ να διαβάσω δεδομÎνα από το soundfile μετÏονόμου" -#: libs/ardour/session_click.cc:191 +#: libs/ardour/session_click.cc:192 msgid "cannot open click emphasis soundfile %1 (%2)" msgstr "δεν μποÏÏŽ να ανοίξω το soundfile εμφάσεως μετÏονόμου %1 (%2)" -#: libs/ardour/session_click.cc:199 +#: libs/ardour/session_click.cc:200 msgid "cannot read data from click emphasis soundfile" msgstr "δεν μποÏÏŽ να διαβάσω δεδομÎνα από το soundfile εμφάσεως μετÏονόμου" @@ -1607,168 +1607,168 @@ msgstr "Σφάλμα στην ανάγνωση από transport request pipe" msgid "Session: error in no roll for %1" msgstr "ΣυνεδÏία: σφάλμα στο no roll για %1" -#: libs/ardour/session_state.cc:100 +#: libs/ardour/session_state.cc:101 #, fuzzy msgid "Could not use path %1 (%s)" msgstr "Source: δεν μποÏÏŽ να ανοίξω το peakpath \"%1\" (%2)" -#: libs/ardour/session_state.cc:128 +#: libs/ardour/session_state.cc:129 msgid "end" msgstr "Ï„Îλος" -#: libs/ardour/session_state.cc:129 +#: libs/ardour/session_state.cc:130 #, fuzzy msgid "start" msgstr "ξεχωÏιστό" -#: libs/ardour/session_state.cc:501 +#: libs/ardour/session_state.cc:502 msgid "Session: cannot create session dir \"%1\" (%2)" msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\" (%2)" -#: libs/ardour/session_state.cc:512 +#: libs/ardour/session_state.cc:513 #, fuzzy msgid "Session: cannot create session peakfile dir \"%1\" (%2)" msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\" (%2)" -#: libs/ardour/session_state.cc:521 +#: libs/ardour/session_state.cc:522 msgid "Session: cannot create session sounds dir \"%1\" (%2)" msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο ήχων συνεδÏίας \"%1\" (%2)" -#: libs/ardour/session_state.cc:530 +#: libs/ardour/session_state.cc:531 #, fuzzy msgid "Session: cannot create session tape dir \"%1\" (%2)" msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\" (%2)" -#: libs/ardour/session_state.cc:539 +#: libs/ardour/session_state.cc:540 msgid "Session: cannot create session dead sounds dir \"%1\" (%2)" msgstr "" "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο 'νεκÏών' ήχων συνεδÏίας \"%1\" (%2)" -#: libs/ardour/session_state.cc:548 +#: libs/ardour/session_state.cc:549 msgid "Session: cannot create session automation dir \"%1\" (%2)" msgstr "" "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω φάκελο αυτοματισμών της συνεδÏίας \"%1" "\" (%2)" -#: libs/ardour/session_state.cc:579 +#: libs/ardour/session_state.cc:580 msgid "Could not open %1 for writing mix template" msgstr "Δεν μπόÏεσα να ανοίξω %1 για γÏάψιμο του Ï€Ïοσχεδίου μίξεως" -#: libs/ardour/session_state.cc:585 +#: libs/ardour/session_state.cc:586 msgid "Could not open mix template %1 for reading" msgstr "Δεν μπόÏεσα να ανοίξω Ï€ÏοσχÎδιο μίξεως %1 για ανάγνωση" -#: libs/ardour/session_state.cc:592 +#: libs/ardour/session_state.cc:593 msgid "Session already exists. Not overwriting" msgstr "Η ΣυνεδÏία ήδη υπάÏχει. ΑκÏÏωση overwriting" -#: libs/ardour/session_state.cc:635 +#: libs/ardour/session_state.cc:636 msgid "Session: could not load diskstream via XML state" msgstr "ΣυνεδÏία: δεν μπόÏεσα να φοÏτώσω diskstream μÎσω καταστάσεως XML" -#: libs/ardour/session_state.cc:684 +#: libs/ardour/session_state.cc:685 msgid "could not backup old state file, current state not saved." msgstr "" "δεν μπόÏεσα να διασώσω το παλαιό αÏχείο καταστάσεως, η Ï„ÏÎχουσα κατάσταση " "δεν αποθηκεÏτηκε." -#: libs/ardour/session_state.cc:697 +#: libs/ardour/session_state.cc:698 msgid "state could not be saved to %1" msgstr "η κατάσταση δεν μποÏοÏσε να σωθεί στο %1" -#: libs/ardour/session_state.cc:704 +#: libs/ardour/session_state.cc:705 #, fuzzy msgid "could not remove corrupt state file %1" msgstr "Δεν μπόÏεσα να αναλÏσω το αÏχείο rdf: %1" -#: libs/ardour/session_state.cc:708 +#: libs/ardour/session_state.cc:709 #, fuzzy msgid "could not restore state file from backup %1" msgstr "Σφάλμα: δεν μπόÏεσα να γÏάψω %1" -#: libs/ardour/session_state.cc:777 +#: libs/ardour/session_state.cc:778 msgid "%1: session state information file \"%2\" doesn't exist!" msgstr "%1: το αÏχείο πληÏοφοÏιών καταστάσεως συνεδÏίας \"%2\" δεν υπάÏχει!" -#: libs/ardour/session_state.cc:788 +#: libs/ardour/session_state.cc:789 msgid "Could not understand ardour file %1" msgstr "Δεν μπόÏεσα να κατανοήσω το ardour αÏχείο %1" -#: libs/ardour/session_state.cc:1492 +#: libs/ardour/session_state.cc:1493 msgid "programming error: Session: incorrect XML node sent to set_state()" msgstr "" "σφάλμα Ï€ÏογÏαμματισμοÏ: ΣυνεδÏία: λανθασμÎνος κόμβος XML εστάλη στην " "set_state()" -#: libs/ardour/session_state.cc:1538 +#: libs/ardour/session_state.cc:1539 msgid "Session: XML state has no options section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα επιλογών(options)" -#: libs/ardour/session_state.cc:1543 +#: libs/ardour/session_state.cc:1544 msgid "Session: XML state has no sources section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα πηγών" -#: libs/ardour/session_state.cc:1550 +#: libs/ardour/session_state.cc:1551 msgid "Session: XML state has no Regions section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα ΠεÏιοχών" -#: libs/ardour/session_state.cc:1557 +#: libs/ardour/session_state.cc:1558 msgid "Session: XML state has no playlists section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα playlists" -#: libs/ardour/session_state.cc:1576 +#: libs/ardour/session_state.cc:1577 msgid "Session: XML state has no diskstreams section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα diskstreams" -#: libs/ardour/session_state.cc:1583 +#: libs/ardour/session_state.cc:1584 msgid "Session: XML state has no connections section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα συνδÎσεων" -#: libs/ardour/session_state.cc:1590 +#: libs/ardour/session_state.cc:1591 msgid "Session: XML state has no locations section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα τοποθεσιών" -#: libs/ardour/session_state.cc:1623 +#: libs/ardour/session_state.cc:1624 msgid "Session: XML state has no edit groups section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα επεξεÏ/σίας ομάδων" -#: libs/ardour/session_state.cc:1630 +#: libs/ardour/session_state.cc:1631 msgid "Session: XML state has no mix groups section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα μίξεως ομάδων" -#: libs/ardour/session_state.cc:1637 +#: libs/ardour/session_state.cc:1638 msgid "Session: XML state has no Tempo Map section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα Tempo Map" -#: libs/ardour/session_state.cc:1644 +#: libs/ardour/session_state.cc:1645 msgid "Session: XML state has no routes section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα διαδÏομών" -#: libs/ardour/session_state.cc:1651 +#: libs/ardour/session_state.cc:1652 msgid "Session: XML state has no click section" msgstr "ΣυνεδÏία: η XML κατάσταση δεν Îχει τομÎα μετÏονόμου" -#: libs/ardour/session_state.cc:1696 +#: libs/ardour/session_state.cc:1697 msgid "Session: cannot create Route from XML description." msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω ΔιαδÏομή από XML πεÏιγÏαφή." -#: libs/ardour/session_state.cc:1734 +#: libs/ardour/session_state.cc:1735 msgid "Session: cannot create Region from XML description." msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω ΠεÏιοχή από XML πεÏιγÏαφή." -#: libs/ardour/session_state.cc:1763 +#: libs/ardour/session_state.cc:1764 msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)" msgstr "" "ΣυνεδÏία: Ο XMLΚόμβος που πεÏιγÏάφει AudioΠεÏιοχή είναι ημιτελής (δίχως πηγή)" -#: libs/ardour/session_state.cc:1771 libs/ardour/session_state.cc:1791 +#: libs/ardour/session_state.cc:1772 libs/ardour/session_state.cc:1792 msgid "" "Session: XMLNode describing a AudioRegion references an unknown source id =%1" msgstr "" "ΣυνεδÏία: Ο XMLΚόμβος που πεÏιγÏάφει AudioΠεÏιοχή αναφÎÏει άγνωστο id πηγής =" "%1" -#: libs/ardour/session_state.cc:1777 libs/ardour/session_state.cc:1797 +#: libs/ardour/session_state.cc:1778 libs/ardour/session_state.cc:1798 #, fuzzy msgid "" "Session: XMLNode describing a AudioRegion references a non-audio source id =%" @@ -1777,11 +1777,11 @@ msgstr "" "ΣυνεδÏία: Ο XMLΚόμβος που πεÏιγÏάφει AudioΠεÏιοχή αναφÎÏει άγνωστο id πηγής =" "%1" -#: libs/ardour/session_state.cc:1867 +#: libs/ardour/session_state.cc:1868 msgid "Session: cannot create Source from XML description." msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω Πηγή από XML πεÏιγÏαφή." -#: libs/ardour/session_state.cc:1888 +#: libs/ardour/session_state.cc:1889 #, fuzzy msgid "" "Found a sound file that cannot be used by Ardour. Talk to the progammers." @@ -1789,85 +1789,85 @@ msgstr "" "Î’Ïήκα Îνα sound file που δεν μποÏεί να χÏησιμοποιηθεί από τον Ardour. " "Επικοινωνήστε με τους Ï€ÏογÏαμματιστÎÏ‚." -#: libs/ardour/session_state.cc:1912 +#: libs/ardour/session_state.cc:1913 msgid "Could not create mix templates directory \"%1\" (%2)" msgstr "Δεν μπόÏεσα να δημιουÏγήσω φάκελο Ï€Ïοσχεδίων μίξεως \"%1\" (%2)" -#: libs/ardour/session_state.cc:1926 +#: libs/ardour/session_state.cc:1927 msgid "Template \"%1\" already exists - new version not created" msgstr "Το Ï€ÏοσχÎδιο \"%1\" ήδη υπάÏχει - νÎα Îκδοση δεν δημιουÏγήθηκε" -#: libs/ardour/session_state.cc:1933 +#: libs/ardour/session_state.cc:1934 msgid "mix template not saved" msgstr "Ï€ÏοσχÎδιο μίξεως δεν αποθηκεÏτηκε" -#: libs/ardour/session_state.cc:1993 +#: libs/ardour/session_state.cc:1994 msgid "cannot create session directory \"%1\"; ignored" msgstr "δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\"; αγνοήθηκε" -#: libs/ardour/session_state.cc:2006 +#: libs/ardour/session_state.cc:2007 msgid "cannot create sounds directory \"%1\"; ignored" msgstr "δεν μποÏÏŽ να δημιουÏγήσω τον φάκελο 'sounds' \"%1\"; αγνοήθηκε" -#: libs/ardour/session_state.cc:2017 +#: libs/ardour/session_state.cc:2018 msgid "cannot create dead sounds directory \"%1\"; ignored" msgstr "δεν μποÏÏŽ να δημιουÏγήσω τον φάκελο 'dead sounds' \"%1\"; αγνοήθηκε" -#: libs/ardour/session_state.cc:2028 +#: libs/ardour/session_state.cc:2029 #, fuzzy msgid "cannot create peak file directory \"%1\"; ignored" msgstr "δεν μποÏÏŽ να δημιουÏγήσω φάκελο συνεδÏίας \"%1\"; αγνοήθηκε" -#: libs/ardour/session_state.cc:2167 libs/ardour/session_state.cc:2188 +#: libs/ardour/session_state.cc:2168 libs/ardour/session_state.cc:2189 msgid "Session: cannot create Playlist from XML description." msgstr "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω την Playlist από την XML πεÏιγÏαφή." -#: libs/ardour/session_state.cc:2227 +#: libs/ardour/session_state.cc:2228 msgid "Session: cannot create Named Selection from XML description." msgstr "" "ΣυνεδÏία: δεν μποÏÏŽ να δημιουÏγήσω την ονομασμÎνη επιλογή από την XML " "πεÏιγÏαφή." -#: libs/ardour/session_state.cc:2359 +#: libs/ardour/session_state.cc:2360 msgid "Unknown node \"%1\" found in Connections list from state file" msgstr "" "Άγνωστος κόμβος \"%1\" ευÏÎθη στη λίστα 'ΣυνδÎσεις' από το αÏχείο καταστάσεως" -#: libs/ardour/session_state.cc:3196 +#: libs/ardour/session_state.cc:3197 msgid "cannot remove dead sound file %1 (%2)" msgstr "δεν μποÏÏŽ να απαλοίψω το 'νεκÏο' ηχο-αÏχείο %1 (%2)" -#: libs/ardour/session_time.cc:375 +#: libs/ardour/session_time.cc:374 msgid "Unknown JACK transport state %1 in sync callback" msgstr "Άγνωστη κατάσταση του JACK transport %1 στην ανάκληση sync" -#: libs/ardour/session_timefx.cc:76 +#: libs/ardour/session_timefx.cc:77 msgid "tempoize: error creating name for new audio file based on %1" msgstr "" "tempoize: σφάλμα στη δημιουÏγία ονόματος για νÎο αÏχείο ήχου βασισμÎνο σε %1" -#: libs/ardour/session_timefx.cc:87 +#: libs/ardour/session_timefx.cc:88 msgid "tempoize: error creating new audio file %1 (%2)" msgstr "tempoize: σφάλμα στη δημιουÏγία νÎου αÏχείου ήχου %1 (%2)" -#: libs/ardour/session_timefx.cc:113 +#: libs/ardour/session_timefx.cc:114 msgid "tempoize: error reading data from %1" msgstr "tempoize: σφάλμα στην ανάγνωση δεδομÎνων από %1" -#: libs/ardour/session_timefx.cc:126 libs/ardour/session_timefx.cc:138 +#: libs/ardour/session_timefx.cc:127 libs/ardour/session_timefx.cc:139 msgid "error writing tempo-adjusted data to %1" msgstr "σφάλμα στην εγγÏαφή χÏονο-ÏυθμισμÎνων δεδομÎνων στο %1" -#: libs/ardour/session_timefx.cc:144 +#: libs/ardour/session_timefx.cc:145 msgid "timefx code failure. please notify ardour-developers." msgstr "" "αποτυχία κώδικα timefx. παÏακαλώ ειδοποιήστε τους Ï€ÏογÏαμματιστÎÏ‚ του ardour." -#: libs/ardour/session_transport.cc:116 +#: libs/ardour/session_transport.cc:117 msgid "Cannot loop - no loop range defined" msgstr "Δεν γίνεται loop - κανÎνα διάστημα loop δεν Ï€ÏοσδιοÏίστηκε" -#: libs/ardour/session_transport.cc:478 +#: libs/ardour/session_transport.cc:479 msgid "" "Seamless looping cannot be supported while Ardour is using JACK transport.\n" "Recommend changing the configured options" @@ -1876,7 +1876,7 @@ msgstr "" "transport.\n" "ΣυνιστοÏμε την αλλαγή των διαμοÏφωμÎνων Ïυθμίσεων" -#: libs/ardour/session_transport.cc:754 +#: libs/ardour/session_transport.cc:755 msgid "" "Global varispeed cannot be supported while Ardour is connected to JACK " "transport control" @@ -1884,12 +1884,12 @@ msgstr "" "Η Global varispeed δεν μποÏεί να υποστηÏιχθεί ενώ ο Ardour είναι " "συνδεδεμÎνος με τον JACK transport control" -#: libs/ardour/session_transport.cc:954 +#: libs/ardour/session_transport.cc:955 msgid "please stop the transport before adjusting slave settings" msgstr "" "παÏακαλώ σταματήστε το transport Ï€Ïιν την ÏÏθμιση των επιλογων εξαÏτήσεως" -#: libs/ardour/session_transport.cc:990 +#: libs/ardour/session_transport.cc:991 msgid "No MTC port defined: MTC slaving is impossible." msgstr "" "Καμμία θÏÏα MTC δεν Ï€ÏοσδιοÏίστηκε: η εξάÏτηση του MTC (slaving) είναι " @@ -1979,24 +1979,24 @@ msgstr "Little-endian (Intel)" msgid "Big-endian (Mac)" msgstr "Big-endian (Mac)" -#: libs/ardour/sndfilesource.cc:145 +#: libs/ardour/sndfilesource.cc:147 msgid "FileSource: cannot get host information for BWF header (%1)" msgstr "" "FileSource: δεν μποÏÏŽ να βÏÏŽ πληÏοφοÏίες οικοδεσπότη(host) για επικεφαλίδα " "BWF (%1)" -#: libs/ardour/sndfilesource.cc:167 +#: libs/ardour/sndfilesource.cc:169 msgid "" "cannot set broadcast info for audio file %1 (%2); dropping broadcast info " "for this file" msgstr "" -#: libs/ardour/sndfilesource.cc:223 +#: libs/ardour/sndfilesource.cc:220 #, fuzzy msgid "SndFileSource: cannot open file \"%1\" for %2 (%3)" msgstr "SndFileSource: δεν μποÏÏŽ να ανοίξω το αÏχείο \"%1\" (%2)" -#: libs/ardour/sndfilesource.cc:229 +#: libs/ardour/sndfilesource.cc:226 msgid "" "SndFileSource: file only contains %1 channels; %2 is invalid as a channel " "number" @@ -2004,32 +2004,32 @@ msgstr "" "SndFileSource: το αÏχείο πεÏιÎχει μόνο %1 κανάλια; %2 δεν Îχει αξία σαν " "κανάλι number" -#: libs/ardour/sndfilesource.cc:306 +#: libs/ardour/sndfilesource.cc:327 msgid "SndFileSource: could not seek to frame %1 within %2 (%3)" msgstr "SndFileSource: δεν μποÏοÏσα να αναζητήσω στο frame %1 μÎσα στο %2 (%3)" -#: libs/ardour/sndfilesource.cc:357 +#: libs/ardour/sndfilesource.cc:378 #, fuzzy msgid "programming error: %1 %2" msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: %1" -#: libs/ardour/sndfilesource.cc:457 +#: libs/ardour/sndfilesource.cc:487 libs/ardour/sndfilesource.cc:533 msgid "" "cannot set broadcast info for audio file %1; Dropping broadcast info for " "this file" msgstr "" -#: libs/ardour/sndfilesource.cc:499 +#: libs/ardour/sndfilesource.cc:544 #, fuzzy msgid "%1: cannot seek to %2" msgstr "%1: δεν μποÏÏŽ να αναζητήσω στο %2 για εξαγωγή" -#: libs/ardour/state_manager.cc:46 +#: libs/ardour/state_manager.cc:47 #, fuzzy msgid "cleared history" msgstr "εκκαθαÏίσθη" -#: libs/ardour/state_manager.cc:59 +#: libs/ardour/state_manager.cc:60 #, fuzzy msgid "" "programming error: illegal state ID (%1) passed to StateManager::set_state() " @@ -2038,135 +2038,135 @@ msgstr "" "σφάλμα Ï€ÏογÏαμματισμοÏ: αθÎμιτη κατάσταση ID (%1) Ï€ÎÏασε στον StateManager::" "set_state() (range = 0-%3)" -#: libs/ardour/stateful.cc:100 +#: libs/ardour/stateful.cc:102 msgid "Error: could not write %1" msgstr "Σφάλμα: δεν μπόÏεσα να γÏάψω %1" -#: libs/ardour/stateful.cc:114 +#: libs/ardour/stateful.cc:116 msgid "Could not understand XML file %1" msgstr "Δεν μπόÏεσα να κατανοήσω το XML αÏχείο %1" -#: libs/ardour/tempo.cc:66 +#: libs/ardour/tempo.cc:67 msgid "TempoSection XML node has no \"start\" property" msgstr "Κόμβος του TempoSection XML δεν Îχει ιδιότητα \"ÎναÏξη\"" -#: libs/ardour/tempo.cc:74 +#: libs/ardour/tempo.cc:75 msgid "TempoSection XML node has an illegal \"start\" value" msgstr "Κόμβος του TempoSection XML Îχει αθÎμιτη αξία \"ÎναÏξη\"" -#: libs/ardour/tempo.cc:81 +#: libs/ardour/tempo.cc:82 msgid "TempoSection XML node has no \"beats-per-minute\" property" msgstr "Κόμβος του TempoSection XML δεν Îχει \"κτÏπων-ανά-λεπτό\" ιδιότητα" -#: libs/ardour/tempo.cc:86 +#: libs/ardour/tempo.cc:87 msgid "TempoSection XML node has an illegal \"beats_per_minute\" value" msgstr "Κόμβος του TempoSection XML Îχει αθÎμιτη \"κτÏπων_ανά_λεπτό\" αξία" -#: libs/ardour/tempo.cc:91 +#: libs/ardour/tempo.cc:92 msgid "TempoSection XML node has no \"movable\" property" msgstr "Κόμβος του TempoSection XML δεν Îχει \"κινητή\" ιδιότητα" -#: libs/ardour/tempo.cc:130 +#: libs/ardour/tempo.cc:131 msgid "MeterSection XML node has no \"start\" property" msgstr "Κόμβος του MeterSection XML δεν Îχει \"ÎναÏξη\" ιδιότητα" -#: libs/ardour/tempo.cc:138 +#: libs/ardour/tempo.cc:139 msgid "MeterSection XML node has an illegal \"start\" value" msgstr "Κόμβος του MeterSection XML Îχει αθÎμιτη \"ÎναÏξη\" αξία" -#: libs/ardour/tempo.cc:145 +#: libs/ardour/tempo.cc:146 msgid "MeterSection XML node has no \"beats-per-bar\" property" msgstr "Κόμβος του MeterSection XML δεν Îχει \"κτÏπων-ανά-μπάÏα\" ιδιότητα" -#: libs/ardour/tempo.cc:150 +#: libs/ardour/tempo.cc:151 msgid "MeterSection XML node has an illegal \"beats-per-bar\" value" msgstr "Κόμβος του MeterSection XML Îχει αθÎμιτη \"κτÏπων-ανά-μπάÏα\" αξία" -#: libs/ardour/tempo.cc:155 +#: libs/ardour/tempo.cc:156 msgid "MeterSection XML node has no \"note-type\" property" msgstr "Κόμβος του MeterSection XML δεν Îχει \"Ï„Ïπος-νότας\" ιδιότητα" -#: libs/ardour/tempo.cc:160 +#: libs/ardour/tempo.cc:161 msgid "MeterSection XML node has an illegal \"note-type\" value" msgstr "Κόμβος του MeterSection XML Îχει αθÎμιτη \"Ï„Ïπος-νότας\" αξία" -#: libs/ardour/tempo.cc:165 +#: libs/ardour/tempo.cc:166 msgid "MeterSection XML node has no \"movable\" property" msgstr "Κόμβος του MeterSection XML δεν Îχει \"κινητή\" ιδιότητα" -#: libs/ardour/tempo.cc:258 +#: libs/ardour/tempo.cc:259 msgid "move metric" msgstr "μετακίνηση μετÏικοÏ" -#: libs/ardour/tempo.cc:329 +#: libs/ardour/tempo.cc:330 msgid "metric removed" msgstr "μετÏικό απεσÏÏθη" -#: libs/ardour/tempo.cc:372 +#: libs/ardour/tempo.cc:373 msgid "add tempo" msgstr "Ï€Ïόσθεση ÏυθμοÏ" -#: libs/ardour/tempo.cc:401 +#: libs/ardour/tempo.cc:402 msgid "replace tempo" msgstr "αντικατάσταση ÏυθμοÏ" -#: libs/ardour/tempo.cc:434 +#: libs/ardour/tempo.cc:435 msgid "add meter" msgstr "Ï€Ïόσθεση μετÏητή" -#: libs/ardour/tempo.cc:462 +#: libs/ardour/tempo.cc:463 msgid "replaced meter" msgstr "αντικατεστημÎνος μετÏητής" -#: libs/ardour/tempo.cc:482 libs/ardour/tempo.cc:498 +#: libs/ardour/tempo.cc:483 libs/ardour/tempo.cc:499 msgid "programming error: no tempo section in tempo map!" msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: κανÎνας τομÎας ÏÏ…Î¸Î¼Î¿Ï ÏƒÏ„Î¿ χάÏτη Ïυθμών!" -#: libs/ardour/tempo.cc:537 +#: libs/ardour/tempo.cc:538 msgid "programming error: unhandled MetricSection type" msgstr "σφάλμα Ï€ÏογÏαμματισμοÏ: αχείÏιστος Ï„Ïπος MetricSection" -#: libs/ardour/tempo.cc:1225 libs/ardour/tempo.cc:1237 +#: libs/ardour/tempo.cc:1226 libs/ardour/tempo.cc:1238 msgid "Tempo map: could not set new state, restoring old one." msgstr "" "ΧάÏτης Ïυθμών: δεν μπόÏεσα να θÎσω νÎα κατάσταση, επιστÏοφή Ï€ÏοηγοÏμενης." -#: libs/ardour/tempo.cc:1261 +#: libs/ardour/tempo.cc:1262 msgid "load XML data" msgstr "" -#: libs/ardour/utils.cc:245 +#: libs/ardour/utils.cc:246 #, fuzzy msgid "illegal or badly-formed string used for path (%1)" msgstr "παÏάνομη ή κακοσχηματισμÎνη γÏαμμή για το μονοπάτι RAID" -#: libs/ardour/utils.cc:250 +#: libs/ardour/utils.cc:251 #, fuzzy msgid "path (%1) is ambiguous" msgstr "Το μονοπάτι αναζήτησης του RAID είναι αμφίβολο" -#: libs/ardour/vst_plugin.cc:186 +#: libs/ardour/vst_plugin.cc:187 msgid "cannot create VST chunk directory: %1" msgstr "δεν μποÏÏŽ να δημιουÏγήσω φάκελο κομματιών VST: %1" -#: libs/ardour/vst_plugin.cc:194 +#: libs/ardour/vst_plugin.cc:195 msgid "cannot check VST chunk directory: %1" msgstr "δεν μποÏÏŽ να ελÎγξω το φάκελο κομματιών VST: %1" -#: libs/ardour/vst_plugin.cc:201 +#: libs/ardour/vst_plugin.cc:202 msgid "%1 exists but is not a directory" msgstr "%1 υπάÏχει αλλά δεν είναι φάκελος" -#: libs/ardour/vst_plugin.cc:239 +#: libs/ardour/vst_plugin.cc:240 msgid "Bad node sent to VSTPlugin::set_state" msgstr "Κακός κόμβος εστάλη στο VSTPlugin::set_state" -#: libs/ardour/vst_plugin.cc:342 libs/ardour/vst_plugin.cc:353 +#: libs/ardour/vst_plugin.cc:343 libs/ardour/vst_plugin.cc:354 msgid "no support for presets using chunks at this time" msgstr "" "καμμία υποστήÏιξη αυτή τη στιγμή για Ïυθμίσεις που χÏησιμοποιοÏν κομμάτια" -#: libs/ardour/coreaudio_source.cc:98 +#: libs/ardour/coreaudiosource.cc:97 #, fuzzy msgid "" "CoreAudioSource: file only contains %1 channels; %2 is invalid as a channel " @@ -2175,7 +2175,7 @@ msgstr "" "SndFileSource: το αÏχείο πεÏιÎχει μόνο %1 κανάλια; %2 δεν Îχει αξία σαν " "κανάλι number" -#: libs/ardour/coreaudio_source.cc:163 +#: libs/ardour/coreaudiosource.cc:162 #, fuzzy msgid "CoreAudioSource: could not seek to frame %1 within %2 (%3)" msgstr "SndFileSource: δεν μποÏοÏσα να αναζητήσω στο frame %1 μÎσα στο %2 (%3)" diff --git a/libs/ardour/po/it_IT.po b/libs/ardour/po/it_IT.po index 708a965a4c..2ce02827bd 100644 --- a/libs/ardour/po/it_IT.po +++ b/libs/ardour/po/it_IT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: libardour 0.664.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-06-20 16:23-0400\n" +"POT-Creation-Date: 2006-06-29 21:03-0400\n" "PO-Revision-Date: 2003-05-21 12:50+0500\n" "Last-Translator: Filippo Pappalardo <filippo@email.it>\n" "Language-Team: Italian\n" @@ -15,270 +15,270 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: libs/ardour/audio_diskstream.cc:336 +#: libs/ardour/audio_diskstream.cc:337 #, fuzzy msgid "AudioDiskstream: Session doesn't know about a Playlist called \"%1\"" msgstr "DiskStream: La sessione non riconosce la Playlist chiamata \"%1\"" -#: libs/ardour/audio_diskstream.cc:341 +#: libs/ardour/audio_diskstream.cc:342 msgid "AudioDiskstream: Playlist \"%1\" isn't an audio playlist" msgstr "" -#: libs/ardour/audio_diskstream.cc:432 +#: libs/ardour/audio_diskstream.cc:433 #, fuzzy msgid "AudioDiskstream %1: there is no existing playlist to make a copy of!" msgstr "DiskStream %1: non esiste alcuna playlist di cui fare una copia!" -#: libs/ardour/audio_diskstream.cc:1113 libs/ardour/audio_diskstream.cc:1124 +#: libs/ardour/audio_diskstream.cc:1114 libs/ardour/audio_diskstream.cc:1125 #, fuzzy msgid "" "AudioDiskstream %1: when refilling, cannot read %2 from playlist at frame %3" msgstr "DiskStream %1: impossibile leggere %2 dalla playlista al frame %3" -#: libs/ardour/audio_diskstream.cc:1253 +#: libs/ardour/audio_diskstream.cc:1254 #, fuzzy msgid "AudioDiskstream %1: cannot read %2 from playlist at frame %3" msgstr "DiskStream %1: impossibile leggere %2 dalla playlista al frame %3" -#: libs/ardour/audio_diskstream.cc:1620 libs/ardour/audio_diskstream.cc:1637 +#: libs/ardour/audio_diskstream.cc:1621 libs/ardour/audio_diskstream.cc:1638 #, fuzzy msgid "AudioDiskstream %1: cannot write to disk" msgstr "DiskStream %1: impossibile scrivere sul disco" -#: libs/ardour/audio_diskstream.cc:1697 +#: libs/ardour/audio_diskstream.cc:1698 #, fuzzy msgid "AudioDiskstream \"%1\": cannot flush captured data to disk!" msgstr "DiskStream \"%1\": impossibile scaricare i dati acquisiti sul disco!" -#: libs/ardour/audio_diskstream.cc:1794 +#: libs/ardour/audio_diskstream.cc:1796 msgid "%1: could not create region for complete audio file" msgstr "%1: impossibile creare una regione per il file audio completo" -#: libs/ardour/audio_diskstream.cc:1817 +#: libs/ardour/audio_diskstream.cc:1819 #, fuzzy msgid "AudioDiskstream: could not create region for captured audio!" msgstr "DiskStream: impossibile creare una regione per l'audio registrato!" -#: libs/ardour/audio_diskstream.cc:1872 +#: libs/ardour/audio_diskstream.cc:1874 #, fuzzy msgid "programmer error: %1" msgstr "errore di programmazione: %1" -#: libs/ardour/audio_diskstream.cc:2144 +#: libs/ardour/audio_diskstream.cc:2146 #, fuzzy msgid "AudioDiskstream: channel %1 out of range" msgstr "DiskStream: canale fuori margine" -#: libs/ardour/audio_diskstream.cc:2169 +#: libs/ardour/audio_diskstream.cc:2171 msgid "%1:%2 new capture file not initialized correctly" msgstr "%1:%2 nuovo file di registrazione non è stato avviato correttamente" -#: libs/ardour/audio_diskstream.cc:2402 +#: libs/ardour/audio_diskstream.cc:2404 msgid "Location \"%1\" not valid for track loop (start >= end)" msgstr "La Location \"%1\" non valida per il loop (inizio >= fine)" -#: libs/ardour/audio_diskstream.cc:2483 +#: libs/ardour/audio_diskstream.cc:2485 #, fuzzy msgid "%1: cannot restore pending capture source file %2" msgstr "Import: impossibile aprire il file audio di input \"%1\"" -#: libs/ardour/audio_diskstream.cc:2505 +#: libs/ardour/audio_diskstream.cc:2507 msgid "%1: incorrect number of pending sources listed - ignoring them all" msgstr "" -#: libs/ardour/audio_diskstream.cc:2521 +#: libs/ardour/audio_diskstream.cc:2523 #, fuzzy msgid "%1: cannot create whole-file region from pending capture sources" msgstr "Playlist: impossibile creare la Regione dal file di stato" -#: libs/ardour/audio_diskstream.cc:2533 +#: libs/ardour/audio_diskstream.cc:2535 #, fuzzy msgid "%1: cannot create region from pending capture sources" msgstr "Playlist: impossibile creare la Regione dal file di stato" -#: libs/ardour/audio_library.cc:91 +#: libs/ardour/audio_library.cc:92 msgid "channels" msgstr "" -#: libs/ardour/audio_library.cc:92 +#: libs/ardour/audio_library.cc:93 #, fuzzy msgid "samplerate" msgstr "separa" -#: libs/ardour/audio_library.cc:93 +#: libs/ardour/audio_library.cc:94 msgid "resolution" msgstr "" -#: libs/ardour/audio_library.cc:94 +#: libs/ardour/audio_library.cc:95 msgid "format" msgstr "" -#: libs/ardour/audio_library.cc:101 +#: libs/ardour/audio_library.cc:102 msgid "Could not open %1. Audio Library not saved" msgstr "Impossibile accedere a %1. Libreria Audio non salvata" -#: libs/ardour/audio_playlist.cc:52 libs/ardour/audio_playlist.cc:62 -#: libs/ardour/audio_playlist.cc:73 libs/ardour/audio_playlist.cc:120 +#: libs/ardour/audio_playlist.cc:53 libs/ardour/audio_playlist.cc:63 +#: libs/ardour/audio_playlist.cc:74 libs/ardour/audio_playlist.cc:121 #: libs/ardour/insert.cc:76 libs/ardour/insert.cc:95 libs/ardour/insert.cc:120 -#: libs/ardour/insert.cc:838 libs/ardour/insert.cc:846 libs/ardour/send.cc:38 -#: libs/ardour/send.cc:52 libs/ardour/send.cc:61 -#: libs/ardour/session_state.cc:1620 libs/ardour/session_state.cc:1666 +#: libs/ardour/insert.cc:838 libs/ardour/insert.cc:846 libs/ardour/send.cc:39 +#: libs/ardour/send.cc:53 libs/ardour/send.cc:62 +#: libs/ardour/session_state.cc:1621 libs/ardour/session_state.cc:1667 msgid "initial state" msgstr "stato iniziale" -#: libs/ardour/audio_playlist.cc:274 libs/ardour/audio_playlist.cc:768 +#: libs/ardour/audio_playlist.cc:275 libs/ardour/audio_playlist.cc:769 msgid "" "programming error: non-audio Region passed to remove_overlap in audio " "playlist" msgstr "" -#: libs/ardour/audio_playlist.cc:401 +#: libs/ardour/audio_playlist.cc:402 msgid "" "programming error: non-audio Region tested for overlap in audio playlist" msgstr "" -#: libs/ardour/audio_playlist.cc:877 +#: libs/ardour/audio_playlist.cc:878 msgid "xfade change" msgstr "cambio dello smorzamento incrociato" -#: libs/ardour/audio_playlist.cc:932 +#: libs/ardour/audio_playlist.cc:933 msgid "region modified" msgstr "regione modificata" -#: libs/ardour/audio_track.cc:132 libs/ardour/io.cc:1715 -#: libs/ardour/io.cc:1825 +#: libs/ardour/audio_track.cc:125 libs/ardour/io.cc:1716 +#: libs/ardour/io.cc:1826 msgid "Unknown connection \"%1\" listed for input of %2" msgstr "Connessione sconosciuta \"%1\" come input di %2" -#: libs/ardour/audio_track.cc:134 libs/ardour/io.cc:1717 -#: libs/ardour/io.cc:1827 +#: libs/ardour/audio_track.cc:127 libs/ardour/io.cc:1718 +#: libs/ardour/io.cc:1828 msgid "in 1" msgstr "" -#: libs/ardour/audio_track.cc:135 libs/ardour/io.cc:1718 -#: libs/ardour/io.cc:1828 +#: libs/ardour/audio_track.cc:128 libs/ardour/io.cc:1719 +#: libs/ardour/io.cc:1829 msgid "No input connections available as a replacement" msgstr "" -#: libs/ardour/audio_track.cc:139 libs/ardour/io.cc:1722 -#: libs/ardour/io.cc:1832 +#: libs/ardour/audio_track.cc:132 libs/ardour/io.cc:1723 +#: libs/ardour/io.cc:1833 msgid "Connection %1 was not available - \"in 1\" used instead" msgstr "" -#: libs/ardour/audio_track.cc:148 libs/ardour/io.cc:1841 +#: libs/ardour/audio_track.cc:141 libs/ardour/io.cc:1842 msgid "improper input channel list in XML node (%1)" msgstr "" -#: libs/ardour/audio_track.cc:193 libs/ardour/audio_track.cc:206 +#: libs/ardour/audio_track.cc:186 libs/ardour/audio_track.cc:199 msgid "AudioTrack: diskstream \"%1\" not known by session" msgstr "AudioTrack: diskstream \"%1\" non riconosciuto dalla sessione" -#: libs/ardour/audio_track.cc:304 +#: libs/ardour/audio_track.cc:297 msgid "" "MIDI rec_enable control specification for %1 is incomplete, so it has been " "ignored" msgstr "" -#: libs/ardour/audio_track.cc:316 +#: libs/ardour/audio_track.cc:309 msgid "programming error: AudioTrack given state without diskstream!" msgstr "" -#: libs/ardour/audioengine.cc:149 +#: libs/ardour/audioengine.cc:144 msgid "cannot activate JACK client" msgstr "impossibile attivare il client JACK" -#: libs/ardour/audioengine.cc:400 +#: libs/ardour/audioengine.cc:395 msgid "register audio input port called before engine was started" msgstr "" "la richiesta di registrazione di una porta di entrata avvenuta prima " "dell'avvio dell'applicazione" -#: libs/ardour/audioengine.cc:431 +#: libs/ardour/audioengine.cc:426 msgid "register audio output port called before engine was started" msgstr "" "la richiesta di registrazione di una porta di uscita avvenuta prima " "dell'avvio dell'applicazione" -#: libs/ardour/audioengine.cc:492 +#: libs/ardour/audioengine.cc:487 msgid "connect called before engine was started" msgstr "richiesta di connessione avvenuta prima dell'avvio dell'applicazione" -#: libs/ardour/audioengine.cc:508 +#: libs/ardour/audioengine.cc:503 msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)" msgstr "" -#: libs/ardour/audioengine.cc:521 libs/ardour/audioengine.cc:550 +#: libs/ardour/audioengine.cc:516 libs/ardour/audioengine.cc:545 msgid "disconnect called before engine was started" msgstr "" "richiesta di disconnessione avvenuta prima dell'avvio dell'applicazione" -#: libs/ardour/audioengine.cc:608 +#: libs/ardour/audioengine.cc:603 msgid "get_port_by_name() called before engine was started" msgstr "" "richiesta get_port_by_name() avvenuta prima dell'avvio dell'applicazione" -#: libs/ardour/audioengine.cc:641 +#: libs/ardour/audioengine.cc:636 msgid "get_ports called before engine was started" msgstr "richiesta di get_ports avvenuta prima dell'avvio dell'applicazione" -#: libs/ardour/audioengine.cc:716 +#: libs/ardour/audioengine.cc:711 msgid "get_nth_physical called before engine was started" msgstr "" "richiesta di get_nth_physical avvenuta prima dell'avvio dell'applicazione" -#: libs/ardour/audioengine.cc:744 +#: libs/ardour/audioengine.cc:739 #, fuzzy msgid "get_port_total_latency() called with no JACK client connection" msgstr "" "richiesta di get_port_total_latency() avvenuta prima dell'avvio " "dell'applicazione" -#: libs/ardour/audioengine.cc:750 +#: libs/ardour/audioengine.cc:745 msgid "get_port_total_latency() called before engine was started" msgstr "" "richiesta di get_port_total_latency() avvenuta prima dell'avvio " "dell'applicazione" -#: libs/ardour/audioengine.cc:874 +#: libs/ardour/audioengine.cc:869 msgid "Unable to connect to JACK server" msgstr "" -#: libs/ardour/audioengine.cc:877 +#: libs/ardour/audioengine.cc:872 msgid "Could not connect to JACK server as \"%1\"" msgstr "" -#: libs/ardour/audioengine.cc:882 +#: libs/ardour/audioengine.cc:877 msgid "JACK server started" msgstr "" -#: libs/ardour/audioengine.cc:916 +#: libs/ardour/audioengine.cc:911 msgid "cannot shutdown connection to JACK" msgstr "" -#: libs/ardour/audioengine.cc:941 +#: libs/ardour/audioengine.cc:936 msgid "failed to connect to JACK" msgstr "" -#: libs/ardour/audioengine.cc:957 +#: libs/ardour/audioengine.cc:952 #, fuzzy msgid "could not reregister %1" msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)" -#: libs/ardour/audioengine.cc:1014 +#: libs/ardour/audioengine.cc:1009 msgid "could not reconnect %1 and %2 (err = %3)" msgstr "" -#: libs/ardour/audiofilesource.cc:444 libs/ardour/session_state.cc:3094 +#: libs/ardour/audiofilesource.cc:444 libs/ardour/session_state.cc:3095 msgid "" "there are already 1000 files with names like %1; versioning discontinued" msgstr "" "ci sono gia' 1000 file con nomi come %1; tracciamento di versione interrotto" -#: libs/ardour/audiofilesource.cc:458 libs/ardour/session_state.cc:3108 +#: libs/ardour/audiofilesource.cc:458 libs/ardour/session_state.cc:3109 msgid "cannot rename audio file source from %1 to %2 (%3)" msgstr "impossibile rinominare file audio sorgente da %1 a %2 (%3)" -#: libs/ardour/audiofilesource.cc:465 libs/ardour/session_state.cc:3123 +#: libs/ardour/audiofilesource.cc:465 libs/ardour/session_state.cc:3124 msgid "cannot remove peakfile %1 for %2 (%3)" msgstr "impossibile eliminare il peakfile %1 per %2 (%3)" @@ -307,22 +307,22 @@ msgstr "FileSource: impossibile trovare il file richiesto (%1): %2" msgid "Filesource: cannot check for existing file (%1): %2" msgstr "FileSource: impossibile controllare il file esistente (%1): %2" -#: libs/ardour/audiofilesource.cc:639 libs/ardour/insert.cc:525 -#: libs/ardour/sndfilesource.cc:111 +#: libs/ardour/audiofilesource.cc:636 libs/ardour/insert.cc:525 +#: libs/ardour/sndfilesource.cc:113 msgid "programming error: %1" msgstr "errore di programmazione: %1" -#: libs/ardour/audiofilesource.cc:644 +#: libs/ardour/audiofilesource.cc:641 #, fuzzy msgid "cannot rename audio file for %1 to %2" msgstr "impossibile rinominare file audio sorgente da %1 a %2 (%3)" -#: libs/ardour/audiofilter.cc:44 +#: libs/ardour/audiofilter.cc:45 msgid "audiofilter: error creating name for new audio file based on %1" msgstr "" "audiofilter: errore nel creare il nome per il nuovo file audio basato su %1" -#: libs/ardour/audiofilter.cc:57 +#: libs/ardour/audiofilter.cc:58 msgid "audiofilter: error creating new audio file %1 (%2)" msgstr "audiofilter: errore nel creare un nuovo file audio %1 (%2)" @@ -401,155 +401,155 @@ msgstr "" msgid "%1: could not write peak file data (%2)" msgstr "" -#: libs/ardour/automation_event.cc:64 libs/ardour/location.cc:344 -#: libs/ardour/tempo.cc:225 +#: libs/ardour/automation_event.cc:65 libs/ardour/location.cc:345 +#: libs/ardour/tempo.cc:226 msgid "initial" msgstr "iniziale" -#: libs/ardour/automation_event.cc:231 +#: libs/ardour/automation_event.cc:232 msgid "cleared" msgstr "pulito" -#: libs/ardour/automation_event.cc:403 +#: libs/ardour/automation_event.cc:404 msgid "added event" msgstr "aggiunto evento" -#: libs/ardour/automation_event.cc:420 +#: libs/ardour/automation_event.cc:421 msgid "removed event" msgstr "rimosso evento" -#: libs/ardour/automation_event.cc:435 +#: libs/ardour/automation_event.cc:436 msgid "removed multiple events" msgstr "rimossi molteplici eventi" -#: libs/ardour/automation_event.cc:466 libs/ardour/automation_event.cc:497 +#: libs/ardour/automation_event.cc:467 libs/ardour/automation_event.cc:498 msgid "removed range" msgstr "rimosso intervallo" -#: libs/ardour/automation_event.cc:527 +#: libs/ardour/automation_event.cc:528 msgid "event range adjusted" msgstr "" -#: libs/ardour/automation_event.cc:549 +#: libs/ardour/automation_event.cc:550 msgid "event adjusted" msgstr "" -#: libs/ardour/automation_event.cc:664 libs/ardour/automation_event.cc:769 +#: libs/ardour/automation_event.cc:665 libs/ardour/automation_event.cc:770 #: libs/ardour/panner.cc:1041 msgid "programming error:" msgstr "errore di programmazione:" -#: libs/ardour/automation_event.cc:1078 +#: libs/ardour/automation_event.cc:1079 msgid "cut/copy/clear" msgstr "taglia/copia/pulisci" -#: libs/ardour/automation_event.cc:1111 +#: libs/ardour/automation_event.cc:1112 msgid "copy" msgstr "copia" -#: libs/ardour/automation_event.cc:1179 libs/ardour/playlist.cc:939 +#: libs/ardour/automation_event.cc:1180 libs/ardour/playlist.cc:939 msgid "paste" msgstr "incolla" -#: libs/ardour/automation_event.cc:1234 +#: libs/ardour/automation_event.cc:1235 msgid "" "automation list: no x-coordinate stored for control point (point ignored)" msgstr "" "lista automazione: nessuna coordinata X salvata per punto di controllo " "(ignorato)" -#: libs/ardour/automation_event.cc:1240 +#: libs/ardour/automation_event.cc:1241 msgid "" "automation list: no y-coordinate stored for control point (point ignored)" msgstr "" "lista automazione: nessuna coordinata Y salvata per punto di controllo " "(ignorato)" -#: libs/ardour/configuration.cc:79 +#: libs/ardour/configuration.cc:80 #, fuzzy msgid "loading system configuration file %1" msgstr "" "Ardour: impossibile leggere il file di configurazione di sistema \"%1\"" -#: libs/ardour/configuration.cc:82 +#: libs/ardour/configuration.cc:83 msgid "Ardour: cannot read system configuration file \"%1\"" msgstr "" "Ardour: impossibile leggere il file di configurazione di sistema \"%1\"" -#: libs/ardour/configuration.cc:87 +#: libs/ardour/configuration.cc:88 msgid "Ardour: system configuration file \"%1\" not loaded successfully." msgstr "" "Ardour: il file di configurazione di sistema \"%1\" non stato caricato con " "successo" -#: libs/ardour/configuration.cc:104 +#: libs/ardour/configuration.cc:105 #, fuzzy msgid "loading user configuration file %1" msgstr "Ardour: impossibile la lettura del file di configurazione \"%1\"" -#: libs/ardour/configuration.cc:107 +#: libs/ardour/configuration.cc:108 msgid "Ardour: cannot read configuration file \"%1\"" msgstr "Ardour: impossibile la lettura del file di configurazione \"%1\"" -#: libs/ardour/configuration.cc:112 +#: libs/ardour/configuration.cc:113 #, fuzzy msgid "Ardour: user configuration file \"%1\" not loaded successfully." msgstr "" "Ardour: il file di configurazione \"%1\" non stato caricato con successo" -#: libs/ardour/configuration.cc:136 +#: libs/ardour/configuration.cc:137 #, fuzzy msgid "Config file %1 not saved" msgstr "File di configurazione non salvato" -#: libs/ardour/configuration.cc:209 +#: libs/ardour/configuration.cc:210 msgid "ill-formed MIDI port specification in ardour rcfile (ignored)" msgstr "" "porta MIDI mal configurata nel file di configurazione di ardour (ignorato)" -#: libs/ardour/connection.cc:182 +#: libs/ardour/connection.cc:183 msgid "Node for Connection has no \"name\" property" msgstr "Il nodo per la connessione non possiede l'attributo \"nome\"" -#: libs/ardour/connection.cc:190 +#: libs/ardour/connection.cc:191 msgid "Node for Connection has no \"connections\" property" msgstr "Il nodo per la connessione non ha l'attributo \"connessioni\"" -#: libs/ardour/connection.cc:226 libs/ardour/io.cc:1901 +#: libs/ardour/connection.cc:227 libs/ardour/io.cc:1902 msgid "IO: badly formed string in XML node for inputs \"%1\"" msgstr "IO: stringa malformata nel nodo XML per le entrate \"%1\"" -#: libs/ardour/connection.cc:231 libs/ardour/io.cc:1906 +#: libs/ardour/connection.cc:232 libs/ardour/io.cc:1907 msgid "bad input string in XML node \"%1\"" msgstr "stringa malformata nel nodo XML \"%1\"" -#: libs/ardour/control_protocol_manager.cc:82 +#: libs/ardour/control_protocol_manager.cc:80 msgid "control protocol name \"%1\" has no descriptor" msgstr "" -#: libs/ardour/control_protocol_manager.cc:87 +#: libs/ardour/control_protocol_manager.cc:85 msgid "control protocol name \"%1\" could not be initialized" msgstr "" -#: libs/ardour/control_protocol_manager.cc:143 +#: libs/ardour/control_protocol_manager.cc:141 msgid "Instantiating mandatory control protocol %1" msgstr "" -#: libs/ardour/control_protocol_manager.cc:177 +#: libs/ardour/control_protocol_manager.cc:175 #, fuzzy msgid "Control protocol %1 not usable" msgstr "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile" -#: libs/ardour/control_protocol_manager.cc:189 +#: libs/ardour/control_protocol_manager.cc:187 msgid "Control surface protocol discovered: \"%1\"" msgstr "" -#: libs/ardour/control_protocol_manager.cc:207 +#: libs/ardour/control_protocol_manager.cc:205 #, fuzzy msgid "ControlProtocolManager: cannot load module \"%1\" (%2)" msgstr "LADSPA: impossibile caricare il modulo \"%1\" (%2)" -#: libs/ardour/control_protocol_manager.cc:215 +#: libs/ardour/control_protocol_manager.cc:213 #, fuzzy msgid "ControlProtocolManager: module \"%1\" has no descriptor function." msgstr "LADSPA: il modulo \"%1\" non ha alcuna funzione descriptor." @@ -580,103 +580,103 @@ msgstr "livello cambiato" msgid "old-style crossfade information - no position information" msgstr "il nodo XML per la Location non ha informazioni sull'inizio" -#: libs/ardour/curve.cc:111 libs/ardour/globals.cc:339 +#: libs/ardour/curve.cc:112 libs/ardour/globals.cc:340 #: libs/ardour/insert.cc:454 libs/ardour/session.cc:2466 #: libs/ardour/session.cc:2518 msgid "programming error: " msgstr "errore di programmazione: " -#: libs/ardour/cycle_timer.cc:35 +#: libs/ardour/cycle_timer.cc:37 msgid "CycleTimer::get_mhz(): can't open /proc/cpuinfo" msgstr "CycleTimer::get_mhz(): impossibile accedere a /proc/cpuinfo" -#: libs/ardour/cycle_timer.cc:47 +#: libs/ardour/cycle_timer.cc:49 msgid "CycleTimer::get_mhz(): cannot locate cpu MHz in /proc/cpuinfo" msgstr "" "CycleTimer::get_mhz(): impossibile localizzare \"cpu MHz\" in /proc/cpuinfo" -#: libs/ardour/cycle_timer.cc:70 +#: libs/ardour/cycle_timer.cc:72 msgid "cannot locate cpu MHz in /proc/cpuinfo" msgstr "impossibile localizzare \"cpu MHz\" in /proc/cpuinfo" -#: libs/ardour/destructive_filesource.cc:187 +#: libs/ardour/destructive_filesource.cc:188 msgid "DestructiveFileSource: \"%1\" bad read retval: %2 of %5 (%3: %4)" msgstr "" -#: libs/ardour/destructive_filesource.cc:200 -#: libs/ardour/destructive_filesource.cc:242 -#: libs/ardour/destructive_filesource.cc:249 +#: libs/ardour/destructive_filesource.cc:201 +#: libs/ardour/destructive_filesource.cc:243 +#: libs/ardour/destructive_filesource.cc:250 msgid "DestructiveFileSource: \"%1\" bad write (%2)" msgstr "" -#: libs/ardour/globals.cc:108 +#: libs/ardour/globals.cc:109 msgid "no MIDI ports specified: no MMC or MTC control possible" msgstr "Nessuna porta MIDI specificata: impossibile alcun controllo MMC o MTC" -#: libs/ardour/globals.cc:123 +#: libs/ardour/globals.cc:124 msgid "MIDI port specifications for \"%1\" are not understandable." msgstr "Le specifiche per la porta MIDI \"%1\" non sono state capite" -#: libs/ardour/globals.cc:136 libs/ardour/globals.cc:140 -#: libs/ardour/globals.cc:144 +#: libs/ardour/globals.cc:137 libs/ardour/globals.cc:141 +#: libs/ardour/globals.cc:145 msgid "default" msgstr "" -#: libs/ardour/globals.cc:172 +#: libs/ardour/globals.cc:173 msgid "No MMC control (MIDI port \"%1\" not available)" msgstr "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile" -#: libs/ardour/globals.cc:178 +#: libs/ardour/globals.cc:179 msgid "No MTC support (MIDI port \"%1\" not available)" msgstr "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile" -#: libs/ardour/globals.cc:183 +#: libs/ardour/globals.cc:184 #, fuzzy msgid "No MIDI parameter support (MIDI port \"%1\" not available)" msgstr "La porta MIDI \"%1\" non disponibile: nessun controllo MTC possibile" -#: libs/ardour/import.cc:74 +#: libs/ardour/import.cc:75 msgid "Import: cannot open input sound file \"%1\"" msgstr "Import: impossibile aprire il file audio di input \"%1\"" -#: libs/ardour/import.cc:79 +#: libs/ardour/import.cc:80 msgid "resampling audio" msgstr "" -#: libs/ardour/import.cc:83 +#: libs/ardour/import.cc:84 msgid "Import: cannot open converted sound file \"%1\"" msgstr "Import: impossibile aprire il file audio convertito \"%1\"" -#: libs/ardour/import.cc:88 +#: libs/ardour/import.cc:89 msgid "Import: error while resampling sound file \"%1\"" msgstr "Import: errore nel resampling deil file audio \"%1\"" -#: libs/ardour/import.cc:147 +#: libs/ardour/import.cc:148 msgid "Session::import_audiofile: cannot open new file source for channel %1" msgstr "" "Session::import_audiofile: impossibile aprire il nuovo file per il canale %1" -#: libs/ardour/import.cc:166 +#: libs/ardour/import.cc:167 msgid "converting audio" msgstr "conversione dell'audio" -#: libs/ardour/import.cc:198 +#: libs/ardour/import.cc:199 msgid "building region" msgstr "costruzione della regione" -#: libs/ardour/import.cc:200 +#: libs/ardour/import.cc:201 msgid "building regions" msgstr "costruzione delle regioni" -#: libs/ardour/import.cc:324 +#: libs/ardour/import.cc:325 msgid "Import: could not open temp file: %1" msgstr "Import: impossibile aprire il file audio temporaneo \"%1\"" -#: libs/ardour/import.cc:333 +#: libs/ardour/import.cc:334 msgid "Import: src_new() failed : %1" msgstr "" -#: libs/ardour/import.cc:361 +#: libs/ardour/import.cc:362 msgid "Import: %1" msgstr "" @@ -733,223 +733,223 @@ msgstr "PortInsert: impossibile aggiungere una porta d'uscita" msgid "non-port insert XML used for port plugin insert" msgstr "insert non-port XML usato per insert di plugin di porta" -#: libs/ardour/io.cc:597 +#: libs/ardour/io.cc:598 msgid "IO: cannot disconnect input port %1 from %2" msgstr "IO: impossibile disconnettere la porta d'entrata %1 da %2" -#: libs/ardour/io.cc:665 +#: libs/ardour/io.cc:666 msgid "IO: cannot disconnect output port %1 from %2" msgstr "IO: impossibile disconnettere la porta d'uscita %1 da %2" -#: libs/ardour/io.cc:806 libs/ardour/io.cc:1150 libs/ardour/io.cc:1276 +#: libs/ardour/io.cc:807 libs/ardour/io.cc:1151 libs/ardour/io.cc:1277 #, c-format msgid "%s/out" msgstr "" -#: libs/ardour/io.cc:808 libs/ardour/io.cc:1152 libs/ardour/io.cc:1278 -#: libs/ardour/io.cc:2848 +#: libs/ardour/io.cc:809 libs/ardour/io.cc:1153 libs/ardour/io.cc:1279 +#: libs/ardour/io.cc:2849 #, c-format msgid "%s/out %u" msgstr "" -#: libs/ardour/io.cc:812 libs/ardour/io.cc:1157 libs/ardour/io.cc:1282 +#: libs/ardour/io.cc:813 libs/ardour/io.cc:1158 libs/ardour/io.cc:1283 msgid "IO: cannot register output port %1" msgstr "IO: impossibile registrare la porta %1" -#: libs/ardour/io.cc:907 libs/ardour/io.cc:1010 libs/ardour/io.cc:1116 +#: libs/ardour/io.cc:908 libs/ardour/io.cc:1011 libs/ardour/io.cc:1117 #, c-format msgid "%s/in" msgstr "" -#: libs/ardour/io.cc:909 libs/ardour/io.cc:1013 libs/ardour/io.cc:1119 -#: libs/ardour/io.cc:2818 +#: libs/ardour/io.cc:910 libs/ardour/io.cc:1014 libs/ardour/io.cc:1120 +#: libs/ardour/io.cc:2819 #, c-format msgid "%s/in %u" msgstr "" -#: libs/ardour/io.cc:913 libs/ardour/io.cc:1019 libs/ardour/io.cc:1124 +#: libs/ardour/io.cc:914 libs/ardour/io.cc:1020 libs/ardour/io.cc:1125 msgid "IO: cannot register input port %1" msgstr "IO: impossibile registrare la porta %1" -#: libs/ardour/io.cc:1540 +#: libs/ardour/io.cc:1541 msgid "IO::connecting_became_legal() called without a pending state node" msgstr "" -#: libs/ardour/io.cc:1563 +#: libs/ardour/io.cc:1564 msgid "IO::ports_became_legal() called without a pending state node" msgstr "" -#: libs/ardour/io.cc:1593 +#: libs/ardour/io.cc:1594 msgid "incorrect XML node \"%1\" passed to IO object" msgstr "" -#: libs/ardour/io.cc:1648 +#: libs/ardour/io.cc:1649 msgid "" "MIDI gain control specification for %1 is incomplete, so it has been ignored" msgstr "" -#: libs/ardour/io.cc:1738 libs/ardour/io.cc:1850 +#: libs/ardour/io.cc:1739 libs/ardour/io.cc:1851 msgid "Unknown connection \"%1\" listed for output of %2" msgstr "" -#: libs/ardour/io.cc:1740 libs/ardour/io.cc:1852 +#: libs/ardour/io.cc:1741 libs/ardour/io.cc:1853 msgid "out 1" msgstr "" -#: libs/ardour/io.cc:1741 libs/ardour/io.cc:1853 +#: libs/ardour/io.cc:1742 libs/ardour/io.cc:1854 msgid "No output connections available as a replacement" msgstr "" -#: libs/ardour/io.cc:1745 libs/ardour/io.cc:1857 +#: libs/ardour/io.cc:1746 libs/ardour/io.cc:1858 msgid "Connection %1 was not available - \"out 1\" used instead" msgstr "" -#: libs/ardour/io.cc:1759 +#: libs/ardour/io.cc:1760 msgid "%1: cannot create I/O ports" msgstr "" -#: libs/ardour/io.cc:1866 +#: libs/ardour/io.cc:1867 msgid "improper output channel list in XML node (%1)" msgstr "" -#: libs/ardour/io.cc:1951 +#: libs/ardour/io.cc:1952 msgid "IO: badly formed string in XML node for outputs \"%1\"" msgstr "IO: stringa mal formata nel nodo XML per le uscite \"%1\"" -#: libs/ardour/io.cc:1956 +#: libs/ardour/io.cc:1957 msgid "IO: bad output string in XML node \"%1\"" msgstr "IO: stringa mal formata nel nodo XML \"%1\"" -#: libs/ardour/io.cc:2524 +#: libs/ardour/io.cc:2525 msgid "%1: could not open automation event file \"%2\"" msgstr "" -#: libs/ardour/io.cc:2563 +#: libs/ardour/io.cc:2564 msgid "%1: cannot open automation event file \"%2\"" msgstr "" -#: libs/ardour/io.cc:2578 +#: libs/ardour/io.cc:2579 msgid "badly formed version number in automation event file \"%1\"" msgstr "" -#: libs/ardour/io.cc:2582 +#: libs/ardour/io.cc:2583 msgid "no version information in automation event file \"%1\"" msgstr "" -#: libs/ardour/io.cc:2587 +#: libs/ardour/io.cc:2588 msgid "mismatched automation event file version (%1)" msgstr "" -#: libs/ardour/io.cc:2595 +#: libs/ardour/io.cc:2596 msgid "badly formatted automation event record at line %1 of %2 (ignored)" msgstr "" -#: libs/ardour/io.cc:2615 +#: libs/ardour/io.cc:2616 msgid "dubious automation event found (and ignored)" msgstr "" -#: libs/ardour/io.cc:2619 libs/ardour/panner.cc:438 +#: libs/ardour/io.cc:2620 libs/ardour/panner.cc:438 #: libs/ardour/redirect.cc:148 msgid "loaded from disk" msgstr "" -#: libs/ardour/io.cc:2790 +#: libs/ardour/io.cc:2791 msgid "automation write/touch" msgstr "" -#: libs/ardour/ladspa_plugin.cc:86 +#: libs/ardour/ladspa_plugin.cc:87 msgid "LADSPA: module has no descriptor function." msgstr "LADSPA: il modulo non ha alcuna funzione descriptor." -#: libs/ardour/ladspa_plugin.cc:91 +#: libs/ardour/ladspa_plugin.cc:92 msgid "LADSPA: plugin has gone away since discovery!" msgstr "LADSPA: il plugin è stato rimosso" -#: libs/ardour/ladspa_plugin.cc:98 +#: libs/ardour/ladspa_plugin.cc:99 msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing" msgstr "" -#: libs/ardour/ladspa_plugin.cc:328 +#: libs/ardour/ladspa_plugin.cc:329 msgid "" "illegal parameter number used with plugin \"%1\". This mayindicate a change " "in the plugin design, and presets may beinvalid" msgstr "" -#: libs/ardour/ladspa_plugin.cc:429 +#: libs/ardour/ladspa_plugin.cc:430 msgid "Bad node sent to LadspaPlugin::set_state" msgstr "" -#: libs/ardour/ladspa_plugin.cc:442 +#: libs/ardour/ladspa_plugin.cc:443 msgid "LADSPA: no ladspa port number" msgstr "" -#: libs/ardour/ladspa_plugin.cc:448 +#: libs/ardour/ladspa_plugin.cc:449 msgid "LADSPA: no ladspa port data" msgstr "" -#: libs/ardour/ladspa_plugin.cc:497 +#: libs/ardour/ladspa_plugin.cc:498 msgid "" "LADSPA LadspaPlugin MIDI control specification for port %1 is incomplete, so " "it has been ignored" msgstr "" -#: libs/ardour/location.cc:268 +#: libs/ardour/location.cc:269 msgid "incorrect XML node passed to Location::set_state" msgstr "" -#: libs/ardour/location.cc:275 +#: libs/ardour/location.cc:276 msgid "XML node for Location has no name information" msgstr "il nodo XML per la Location non ha informazioni sul nome" -#: libs/ardour/location.cc:282 +#: libs/ardour/location.cc:283 msgid "XML node for Location has no start information" msgstr "il nodo XML per la Location non ha informazioni sull'inizio" -#: libs/ardour/location.cc:293 +#: libs/ardour/location.cc:294 msgid "XML node for Location has no end information" msgstr "il nodo XML per la Location non ha informazioni sulla fine" -#: libs/ardour/location.cc:302 +#: libs/ardour/location.cc:303 msgid "XML node for Location has no flags information" msgstr "il nodo XML per la Location non ha informazioni sui flags" -#: libs/ardour/location.cc:390 +#: libs/ardour/location.cc:391 msgid "Locations: attempt to use unknown location as selected location" msgstr "" -#: libs/ardour/location.cc:417 libs/ardour/playlist.cc:1187 +#: libs/ardour/location.cc:418 libs/ardour/playlist.cc:1187 msgid "clear" msgstr "pulisci" -#: libs/ardour/location.cc:442 +#: libs/ardour/location.cc:443 msgid "clear markers" msgstr "" -#: libs/ardour/location.cc:470 +#: libs/ardour/location.cc:471 msgid "clear ranges" msgstr "" -#: libs/ardour/location.cc:488 +#: libs/ardour/location.cc:489 msgid "add" msgstr "" -#: libs/ardour/location.cc:526 +#: libs/ardour/location.cc:527 msgid "remove" msgstr "rimuovi" -#: libs/ardour/location.cc:566 +#: libs/ardour/location.cc:567 msgid "incorrect XML mode passed to Locations::set_state" msgstr "" -#: libs/ardour/mtc_slave.cc:195 +#: libs/ardour/mtc_slave.cc:196 msgid "MTC Slave: atomic read of current time failed, sleeping!" msgstr "" -#: libs/ardour/named_selection.cc:76 +#: libs/ardour/named_selection.cc:77 msgid "Chunk %1 uses an unknown playlist \"%2\"" msgstr "Lo spezzone %1 usa una playlist sconosciuta \"%2\"" -#: libs/ardour/named_selection.cc:79 +#: libs/ardour/named_selection.cc:80 msgid "Chunk %1 contains misformed playlist information" msgstr "Lo spezzone %1 contiene informazioni sulla playlist mal formate" @@ -1060,63 +1060,63 @@ msgstr "Playlist: impossibile creare la Regione dal file di stato" msgid "nudged" msgstr "spostato" -#: libs/ardour/playlist_factory.cc:26 libs/ardour/playlist_factory.cc:41 +#: libs/ardour/playlist_factory.cc:49 libs/ardour/playlist_factory.cc:64 msgid "" "programming error: Playlist::createRegion called with unknown Region type" msgstr "" -#: libs/ardour/playlist_factory.cc:63 +#: libs/ardour/playlist_factory.cc:86 msgid "" "programming error: Playlist::copyPlaylist called with unknown Playlist type" msgstr "" -#: libs/ardour/plugin.cc:327 +#: libs/ardour/plugin.cc:328 msgid "Could not locate HOME. Preset not saved." msgstr "impossibile localizzare HOME. Preset non salvato." -#: libs/ardour/plugin.cc:337 libs/ardour/plugin.cc:343 +#: libs/ardour/plugin.cc:338 libs/ardour/plugin.cc:344 msgid "Could not create %1. Preset not saved. (%2)" msgstr "Impossibile creare %1 . Preset non salvato. (%2)" -#: libs/ardour/plugin.cc:348 +#: libs/ardour/plugin.cc:349 msgid "Error saving presets file %1." msgstr "Errore nel salvare il file di preset %1." -#: libs/ardour/plugin_manager.cc:193 +#: libs/ardour/plugin_manager.cc:194 #, fuzzy msgid "Could not parse rdf file: %1" msgstr "IO: impossibile registrare la porta %1" -#: libs/ardour/plugin_manager.cc:234 +#: libs/ardour/plugin_manager.cc:235 msgid "LADSPA: cannot load module \"%1\" (%2)" msgstr "LADSPA: impossibile caricare il modulo \"%1\" (%2)" -#: libs/ardour/plugin_manager.cc:241 +#: libs/ardour/plugin_manager.cc:242 msgid "LADSPA: module \"%1\" has no descriptor function." msgstr "LADSPA: il modulo \"%1\" non ha alcuna funzione descriptor." -#: libs/ardour/plugin_manager.cc:296 +#: libs/ardour/plugin_manager.cc:297 #, fuzzy msgid "VST: cannot load module from \"%1\"" msgstr "LADPSA: impossibile caricare il modulo da \"%1\"" -#: libs/ardour/plugin_manager.cc:301 +#: libs/ardour/plugin_manager.cc:302 msgid "You asked ardour to not use any VST plugins" msgstr "" -#: libs/ardour/plugin_manager.cc:304 +#: libs/ardour/plugin_manager.cc:305 msgid "This version of ardour has no support for VST plugins" msgstr "" -#: libs/ardour/plugin_manager.cc:311 +#: libs/ardour/plugin_manager.cc:312 msgid "LADSPA: cannot load module from \"%1\"" msgstr "LADPSA: impossibile caricare il modulo da \"%1\"" -#: libs/ardour/plugin_manager.cc:373 libs/ardour/plugin_manager.cc:385 +#: libs/ardour/plugin_manager.cc:374 libs/ardour/plugin_manager.cc:386 msgid "Unknown" msgstr "" -#: libs/ardour/plugin_manager.cc:463 +#: libs/ardour/plugin_manager.cc:464 msgid "" "VST plugin %1 does not support processReplacing, and so cannot be used in " "ardour at this time" @@ -1131,11 +1131,11 @@ msgstr "impossibile accedere al file di sessione recente %1 (%2)" msgid "programming error: unknown Redirect type in Redirect::Clone!\n" msgstr "" -#: libs/ardour/redirect.cc:102 libs/ardour/utils.cc:202 +#: libs/ardour/redirect.cc:102 libs/ardour/utils.cc:203 msgid "pre" msgstr "" -#: libs/ardour/redirect.cc:104 libs/ardour/utils.cc:205 +#: libs/ardour/redirect.cc:104 libs/ardour/utils.cc:206 #, fuzzy msgid "post" msgstr "incolla" @@ -1190,11 +1190,11 @@ msgstr "" msgid "active_changed" msgstr "livello cambiato" -#: libs/ardour/region.cc:884 +#: libs/ardour/region.cc:885 msgid "Session: XMLNode describing a Region is incomplete (no id)" msgstr "" -#: libs/ardour/region.cc:891 +#: libs/ardour/region.cc:892 msgid "Session: XMLNode describing a Region is incomplete (no name)" msgstr "" @@ -1248,7 +1248,7 @@ msgid "" "MIDI mute control specification for %1 is incomplete, so it has been ignored" msgstr "" -#: libs/ardour/send.cc:98 +#: libs/ardour/send.cc:99 msgid "XML node describing a send is missing a Redirect node" msgstr "" @@ -1394,11 +1394,11 @@ msgstr "" msgid "programming error: unknown type of Redirect deleted!" msgstr "" -#: libs/ardour/session.cc:3634 +#: libs/ardour/session.cc:3636 msgid "too many bounced versions of playlist \"%1\"" msgstr "" -#: libs/ardour/session.cc:3647 +#: libs/ardour/session.cc:3649 msgid "cannot create new audio file \"%1\" for %2" msgstr "impossibile creare un nuovo file audio \"%1\" per %2" @@ -1431,19 +1431,19 @@ msgstr "" msgid "Butler write-behind failure on dstream %1" msgstr "" -#: libs/ardour/session_click.cc:157 +#: libs/ardour/session_click.cc:158 msgid "cannot open click soundfile %1 (%2)" msgstr "impossibile accedere al file audio per il click %1 (%2)" -#: libs/ardour/session_click.cc:166 +#: libs/ardour/session_click.cc:167 msgid "cannot read data from click soundfile" msgstr "impossibile leggere dati dal file audio per il click" -#: libs/ardour/session_click.cc:191 +#: libs/ardour/session_click.cc:192 msgid "cannot open click emphasis soundfile %1 (%2)" msgstr "impossibile accedere al file audio di enfasi per il click %1 (%2)" -#: libs/ardour/session_click.cc:199 +#: libs/ardour/session_click.cc:200 msgid "cannot read data from click emphasis soundfile" msgstr "impossibile leggere dati dal file audio di enfasi per il click" @@ -1547,168 +1547,168 @@ msgstr "" msgid "Session: error in no roll for %1" msgstr "" -#: libs/ardour/session_state.cc:100 +#: libs/ardour/session_state.cc:101 #, fuzzy msgid "Could not use path %1 (%s)" msgstr "impossibile controllare il percorso %1 (%2)" -#: libs/ardour/session_state.cc:128 +#: libs/ardour/session_state.cc:129 msgid "end" msgstr "" -#: libs/ardour/session_state.cc:129 +#: libs/ardour/session_state.cc:130 #, fuzzy msgid "start" msgstr "separa" -#: libs/ardour/session_state.cc:501 +#: libs/ardour/session_state.cc:502 msgid "Session: cannot create session dir \"%1\" (%2)" msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)" -#: libs/ardour/session_state.cc:512 +#: libs/ardour/session_state.cc:513 #, fuzzy msgid "Session: cannot create session peakfile dir \"%1\" (%2)" msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)" -#: libs/ardour/session_state.cc:521 +#: libs/ardour/session_state.cc:522 msgid "Session: cannot create session sounds dir \"%1\" (%2)" msgstr "" "Sessione: impossibile creare la cartella sounds per la sessione \"%1\" (%2)" -#: libs/ardour/session_state.cc:530 +#: libs/ardour/session_state.cc:531 #, fuzzy msgid "Session: cannot create session tape dir \"%1\" (%2)" msgstr "Sessione: impossibile creare la cartella per la sessione \"%1\" (%2)" -#: libs/ardour/session_state.cc:539 +#: libs/ardour/session_state.cc:540 #, fuzzy msgid "Session: cannot create session dead sounds dir \"%1\" (%2)" msgstr "" "Sessione: impossibile creare la cartella sounds per la sessione \"%1\" (%2)" -#: libs/ardour/session_state.cc:548 +#: libs/ardour/session_state.cc:549 msgid "Session: cannot create session automation dir \"%1\" (%2)" msgstr "" "Sessione: impossibile creare la cartella automation per la sessione \"%1\" (%" "2)" -#: libs/ardour/session_state.cc:579 +#: libs/ardour/session_state.cc:580 #, fuzzy msgid "Could not open %1 for writing mix template" msgstr "Impossibile accedere a %1 per scrivere il modello di mixaggio" -#: libs/ardour/session_state.cc:585 +#: libs/ardour/session_state.cc:586 #, fuzzy msgid "Could not open mix template %1 for reading" msgstr "Impossibile aprire il modello di mixaggio %1 per leggere" -#: libs/ardour/session_state.cc:592 +#: libs/ardour/session_state.cc:593 msgid "Session already exists. Not overwriting" msgstr "La sessione esiste già. Non sovrascrivo" -#: libs/ardour/session_state.cc:635 +#: libs/ardour/session_state.cc:636 msgid "Session: could not load diskstream via XML state" msgstr "" -#: libs/ardour/session_state.cc:684 +#: libs/ardour/session_state.cc:685 msgid "could not backup old state file, current state not saved." msgstr "" "impossibile fare copia di sicurezza del file di stato, stato attuale non " "salvato" -#: libs/ardour/session_state.cc:697 +#: libs/ardour/session_state.cc:698 #, fuzzy msgid "state could not be saved to %1" msgstr "stato non salvato" -#: libs/ardour/session_state.cc:704 +#: libs/ardour/session_state.cc:705 #, fuzzy msgid "could not remove corrupt state file %1" msgstr "IO: impossibile registrare la porta %1" -#: libs/ardour/session_state.cc:708 +#: libs/ardour/session_state.cc:709 #, fuzzy msgid "could not restore state file from backup %1" msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)" -#: libs/ardour/session_state.cc:777 +#: libs/ardour/session_state.cc:778 msgid "%1: session state information file \"%2\" doesn't exist!" msgstr "" "%1: il file di informazioni sullo stato della sessione \"%2\" non esiste!" -#: libs/ardour/session_state.cc:788 +#: libs/ardour/session_state.cc:789 #, fuzzy msgid "Could not understand ardour file %1" msgstr "IO: impossibile registrare la porta %1" -#: libs/ardour/session_state.cc:1492 +#: libs/ardour/session_state.cc:1493 msgid "programming error: Session: incorrect XML node sent to set_state()" msgstr "" -#: libs/ardour/session_state.cc:1538 +#: libs/ardour/session_state.cc:1539 msgid "Session: XML state has no options section" msgstr "Sessione: il file di stato XML non ha alcuna sezione option" -#: libs/ardour/session_state.cc:1543 +#: libs/ardour/session_state.cc:1544 msgid "Session: XML state has no sources section" msgstr "Sessione: il file di stato XML non ha alcuna sezione sources" -#: libs/ardour/session_state.cc:1550 +#: libs/ardour/session_state.cc:1551 msgid "Session: XML state has no Regions section" msgstr "Sessione: il file di stato XML non ha alcuna sezione Regions" -#: libs/ardour/session_state.cc:1557 +#: libs/ardour/session_state.cc:1558 msgid "Session: XML state has no playlists section" msgstr "Sessione: il file di stato XML non ha alcuna sezione playlist" -#: libs/ardour/session_state.cc:1576 +#: libs/ardour/session_state.cc:1577 msgid "Session: XML state has no diskstreams section" msgstr "Sessione: il file di stato XML non ha alcuna sezione diskstream" -#: libs/ardour/session_state.cc:1583 +#: libs/ardour/session_state.cc:1584 msgid "Session: XML state has no connections section" msgstr "Sessione: il file di stato XML non ha alcuna sezione connections" -#: libs/ardour/session_state.cc:1590 +#: libs/ardour/session_state.cc:1591 msgid "Session: XML state has no locations section" msgstr "Sessione: il file di stato XML non ha alcuna sezione locations" -#: libs/ardour/session_state.cc:1623 +#: libs/ardour/session_state.cc:1624 msgid "Session: XML state has no edit groups section" msgstr "Sessione: il file di stato XML non ha alcuna sezione edit groups" -#: libs/ardour/session_state.cc:1630 +#: libs/ardour/session_state.cc:1631 msgid "Session: XML state has no mix groups section" msgstr "Sessione: il file di stato XML non ha alcuna sezione mix groups" -#: libs/ardour/session_state.cc:1637 +#: libs/ardour/session_state.cc:1638 msgid "Session: XML state has no Tempo Map section" msgstr "Sessione: il file di stato XML non ha alcuna sezione Tempo Map" -#: libs/ardour/session_state.cc:1644 +#: libs/ardour/session_state.cc:1645 msgid "Session: XML state has no routes section" msgstr "Sessione: il file di stato XML non ha alcuna sezione routes" -#: libs/ardour/session_state.cc:1651 +#: libs/ardour/session_state.cc:1652 #, fuzzy msgid "Session: XML state has no click section" msgstr "Sessione: il file di stato XML non ha alcuna sezione click" -#: libs/ardour/session_state.cc:1696 +#: libs/ardour/session_state.cc:1697 msgid "Session: cannot create Route from XML description." msgstr "Sessione: impossibile creare Route dalla descrizione XML" -#: libs/ardour/session_state.cc:1734 +#: libs/ardour/session_state.cc:1735 msgid "Session: cannot create Region from XML description." msgstr "Sessione: impossibile creare regione dalla descrizione XML" -#: libs/ardour/session_state.cc:1763 +#: libs/ardour/session_state.cc:1764 #, fuzzy msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)" msgstr "" "Sessione: il nodo XML descrivente una Regione è incompleto (nessun source)" -#: libs/ardour/session_state.cc:1771 libs/ardour/session_state.cc:1791 +#: libs/ardour/session_state.cc:1772 libs/ardour/session_state.cc:1792 #, fuzzy msgid "" "Session: XMLNode describing a AudioRegion references an unknown source id =%1" @@ -1716,7 +1716,7 @@ msgstr "" "Sessione: il nodo XML descrivente una Regione fa riferimento ad un source " "con id sconosciuto =%1" -#: libs/ardour/session_state.cc:1777 libs/ardour/session_state.cc:1797 +#: libs/ardour/session_state.cc:1778 libs/ardour/session_state.cc:1798 #, fuzzy msgid "" "Session: XMLNode describing a AudioRegion references a non-audio source id =%" @@ -1725,109 +1725,109 @@ msgstr "" "Sessione: il nodo XML descrivente una Regione fa riferimento ad un source " "con id sconosciuto =%1" -#: libs/ardour/session_state.cc:1867 +#: libs/ardour/session_state.cc:1868 msgid "Session: cannot create Source from XML description." msgstr "Sessione: impossibile creare Source dalla descrizione XML" -#: libs/ardour/session_state.cc:1888 +#: libs/ardour/session_state.cc:1889 #, fuzzy msgid "" "Found a sound file that cannot be used by Ardour. Talk to the progammers." msgstr "E' stato trovato un file audio che non può essere usato da Ardour." -#: libs/ardour/session_state.cc:1912 +#: libs/ardour/session_state.cc:1913 msgid "Could not create mix templates directory \"%1\" (%2)" msgstr "Impossibile creare la cartella per i modelli di mixaggio \"%1\" (%2)" -#: libs/ardour/session_state.cc:1926 +#: libs/ardour/session_state.cc:1927 msgid "Template \"%1\" already exists - new version not created" msgstr "Il modello \"%1\" esiste già - non è stata creata una nuova versione" -#: libs/ardour/session_state.cc:1933 +#: libs/ardour/session_state.cc:1934 msgid "mix template not saved" msgstr "modello di mixaggio non salvato" -#: libs/ardour/session_state.cc:1993 +#: libs/ardour/session_state.cc:1994 msgid "cannot create session directory \"%1\"; ignored" msgstr "impossibile creare la cartella per la sessione %1; ignorato" -#: libs/ardour/session_state.cc:2006 +#: libs/ardour/session_state.cc:2007 msgid "cannot create sounds directory \"%1\"; ignored" msgstr "impossibile creare la cartella sounds \"%1\"; ignorato" -#: libs/ardour/session_state.cc:2017 +#: libs/ardour/session_state.cc:2018 #, fuzzy msgid "cannot create dead sounds directory \"%1\"; ignored" msgstr "impossibile creare la cartella sounds \"%1\"; ignorato" -#: libs/ardour/session_state.cc:2028 +#: libs/ardour/session_state.cc:2029 #, fuzzy msgid "cannot create peak file directory \"%1\"; ignored" msgstr "impossibile creare la cartella per la sessione %1; ignorato" -#: libs/ardour/session_state.cc:2167 libs/ardour/session_state.cc:2188 +#: libs/ardour/session_state.cc:2168 libs/ardour/session_state.cc:2189 msgid "Session: cannot create Playlist from XML description." msgstr "Sessione: impossibile creare Playlist dalla descrizione XML" -#: libs/ardour/session_state.cc:2227 +#: libs/ardour/session_state.cc:2228 msgid "Session: cannot create Named Selection from XML description." msgstr "Sessione: impossibile creare Named Selection dalla descizione XML" -#: libs/ardour/session_state.cc:2359 +#: libs/ardour/session_state.cc:2360 msgid "Unknown node \"%1\" found in Connections list from state file" msgstr "Nodo sconosciuto \"%1\" trovato in Connections list dal file di stato" -#: libs/ardour/session_state.cc:3196 +#: libs/ardour/session_state.cc:3197 #, fuzzy msgid "cannot remove dead sound file %1 (%2)" msgstr "impossibile accedere al file audio per il click %1 (%2)" -#: libs/ardour/session_time.cc:375 +#: libs/ardour/session_time.cc:374 msgid "Unknown JACK transport state %1 in sync callback" msgstr "" -#: libs/ardour/session_timefx.cc:76 +#: libs/ardour/session_timefx.cc:77 msgid "tempoize: error creating name for new audio file based on %1" msgstr "" "tempoize: errore nel creare il nome per il nuovo file audio basato su %1" -#: libs/ardour/session_timefx.cc:87 +#: libs/ardour/session_timefx.cc:88 msgid "tempoize: error creating new audio file %1 (%2)" msgstr "tempoize: errore nel creare un nuovo file audio %1 (%2)" -#: libs/ardour/session_timefx.cc:113 +#: libs/ardour/session_timefx.cc:114 msgid "tempoize: error reading data from %1" msgstr "tempoize: errore nel leggere dati da %1" -#: libs/ardour/session_timefx.cc:126 libs/ardour/session_timefx.cc:138 +#: libs/ardour/session_timefx.cc:127 libs/ardour/session_timefx.cc:139 msgid "error writing tempo-adjusted data to %1" msgstr "" -#: libs/ardour/session_timefx.cc:144 +#: libs/ardour/session_timefx.cc:145 msgid "timefx code failure. please notify ardour-developers." msgstr "" -#: libs/ardour/session_transport.cc:116 +#: libs/ardour/session_transport.cc:117 msgid "Cannot loop - no loop range defined" msgstr "" -#: libs/ardour/session_transport.cc:478 +#: libs/ardour/session_transport.cc:479 msgid "" "Seamless looping cannot be supported while Ardour is using JACK transport.\n" "Recommend changing the configured options" msgstr "" -#: libs/ardour/session_transport.cc:754 +#: libs/ardour/session_transport.cc:755 msgid "" "Global varispeed cannot be supported while Ardour is connected to JACK " "transport control" msgstr "" -#: libs/ardour/session_transport.cc:954 +#: libs/ardour/session_transport.cc:955 msgid "please stop the transport before adjusting slave settings" msgstr "" -#: libs/ardour/session_transport.cc:990 +#: libs/ardour/session_transport.cc:991 msgid "No MTC port defined: MTC slaving is impossible." msgstr "" @@ -1915,22 +1915,22 @@ msgstr "" msgid "Big-endian (Mac)" msgstr "" -#: libs/ardour/sndfilesource.cc:145 +#: libs/ardour/sndfilesource.cc:147 msgid "FileSource: cannot get host information for BWF header (%1)" msgstr "FileSource: impossibile ottenere info sull'host dall'header BWF (%1)" -#: libs/ardour/sndfilesource.cc:167 +#: libs/ardour/sndfilesource.cc:169 msgid "" "cannot set broadcast info for audio file %1 (%2); dropping broadcast info " "for this file" msgstr "" -#: libs/ardour/sndfilesource.cc:223 +#: libs/ardour/sndfilesource.cc:220 #, fuzzy msgid "SndFileSource: cannot open file \"%1\" for %2 (%3)" msgstr "SndFileSource: impossibile accedere al file \"%1\" (%2)" -#: libs/ardour/sndfilesource.cc:229 +#: libs/ardour/sndfilesource.cc:226 msgid "" "SndFileSource: file only contains %1 channels; %2 is invalid as a channel " "number" @@ -1938,169 +1938,169 @@ msgstr "" "SndFileSource: il file contiene solo %1 canali; %2 non è valido come numero " "di canale" -#: libs/ardour/sndfilesource.cc:306 +#: libs/ardour/sndfilesource.cc:327 msgid "SndFileSource: could not seek to frame %1 within %2 (%3)" msgstr "" -#: libs/ardour/sndfilesource.cc:357 +#: libs/ardour/sndfilesource.cc:378 #, fuzzy msgid "programming error: %1 %2" msgstr "errore di programmazione: %1" -#: libs/ardour/sndfilesource.cc:457 +#: libs/ardour/sndfilesource.cc:487 libs/ardour/sndfilesource.cc:533 msgid "" "cannot set broadcast info for audio file %1; Dropping broadcast info for " "this file" msgstr "" -#: libs/ardour/sndfilesource.cc:499 +#: libs/ardour/sndfilesource.cc:544 msgid "%1: cannot seek to %2" msgstr "" -#: libs/ardour/state_manager.cc:46 +#: libs/ardour/state_manager.cc:47 #, fuzzy msgid "cleared history" msgstr "pulito" -#: libs/ardour/state_manager.cc:59 +#: libs/ardour/state_manager.cc:60 msgid "" "programming error: illegal state ID (%1) passed to StateManager::set_state() " "(range = 0-%2)" msgstr "" -#: libs/ardour/stateful.cc:100 +#: libs/ardour/stateful.cc:102 #, fuzzy msgid "Error: could not write %1" msgstr "Esportazione: impossibile scrivere dati sul file di output (%1)" -#: libs/ardour/stateful.cc:114 +#: libs/ardour/stateful.cc:116 msgid "Could not understand XML file %1" msgstr "" -#: libs/ardour/tempo.cc:66 +#: libs/ardour/tempo.cc:67 msgid "TempoSection XML node has no \"start\" property" msgstr "" -#: libs/ardour/tempo.cc:74 +#: libs/ardour/tempo.cc:75 msgid "TempoSection XML node has an illegal \"start\" value" msgstr "" -#: libs/ardour/tempo.cc:81 +#: libs/ardour/tempo.cc:82 msgid "TempoSection XML node has no \"beats-per-minute\" property" msgstr "" -#: libs/ardour/tempo.cc:86 +#: libs/ardour/tempo.cc:87 msgid "TempoSection XML node has an illegal \"beats_per_minute\" value" msgstr "" -#: libs/ardour/tempo.cc:91 +#: libs/ardour/tempo.cc:92 msgid "TempoSection XML node has no \"movable\" property" msgstr "" -#: libs/ardour/tempo.cc:130 +#: libs/ardour/tempo.cc:131 msgid "MeterSection XML node has no \"start\" property" msgstr "" -#: libs/ardour/tempo.cc:138 +#: libs/ardour/tempo.cc:139 msgid "MeterSection XML node has an illegal \"start\" value" msgstr "" -#: libs/ardour/tempo.cc:145 +#: libs/ardour/tempo.cc:146 msgid "MeterSection XML node has no \"beats-per-bar\" property" msgstr "" -#: libs/ardour/tempo.cc:150 +#: libs/ardour/tempo.cc:151 msgid "MeterSection XML node has an illegal \"beats-per-bar\" value" msgstr "" -#: libs/ardour/tempo.cc:155 +#: libs/ardour/tempo.cc:156 msgid "MeterSection XML node has no \"note-type\" property" msgstr "" -#: libs/ardour/tempo.cc:160 +#: libs/ardour/tempo.cc:161 msgid "MeterSection XML node has an illegal \"note-type\" value" msgstr "" -#: libs/ardour/tempo.cc:165 +#: libs/ardour/tempo.cc:166 msgid "MeterSection XML node has no \"movable\" property" msgstr "" -#: libs/ardour/tempo.cc:258 +#: libs/ardour/tempo.cc:259 msgid "move metric" msgstr "" -#: libs/ardour/tempo.cc:329 +#: libs/ardour/tempo.cc:330 msgid "metric removed" msgstr "" -#: libs/ardour/tempo.cc:372 +#: libs/ardour/tempo.cc:373 #, fuzzy msgid "add tempo" msgstr "aggiungi regione" -#: libs/ardour/tempo.cc:401 +#: libs/ardour/tempo.cc:402 #, fuzzy msgid "replace tempo" msgstr "sostituisci la regione" -#: libs/ardour/tempo.cc:434 +#: libs/ardour/tempo.cc:435 msgid "add meter" msgstr "" -#: libs/ardour/tempo.cc:462 +#: libs/ardour/tempo.cc:463 #, fuzzy msgid "replaced meter" msgstr "sostituisci la regione" -#: libs/ardour/tempo.cc:482 libs/ardour/tempo.cc:498 +#: libs/ardour/tempo.cc:483 libs/ardour/tempo.cc:499 msgid "programming error: no tempo section in tempo map!" msgstr "" -#: libs/ardour/tempo.cc:537 +#: libs/ardour/tempo.cc:538 msgid "programming error: unhandled MetricSection type" msgstr "" -#: libs/ardour/tempo.cc:1225 libs/ardour/tempo.cc:1237 +#: libs/ardour/tempo.cc:1226 libs/ardour/tempo.cc:1238 msgid "Tempo map: could not set new state, restoring old one." msgstr "" -#: libs/ardour/tempo.cc:1261 +#: libs/ardour/tempo.cc:1262 msgid "load XML data" msgstr "" -#: libs/ardour/utils.cc:245 +#: libs/ardour/utils.cc:246 #, fuzzy msgid "illegal or badly-formed string used for path (%1)" msgstr "il percorso indicato per il RAID è non valido o malformato" -#: libs/ardour/utils.cc:250 +#: libs/ardour/utils.cc:251 #, fuzzy msgid "path (%1) is ambiguous" msgstr "il percorso indicato per la ricerca RAID è ambiguo" -#: libs/ardour/vst_plugin.cc:186 +#: libs/ardour/vst_plugin.cc:187 #, fuzzy msgid "cannot create VST chunk directory: %1" msgstr "impossibile creare la cartella sounds \"%1\"; ignorato" -#: libs/ardour/vst_plugin.cc:194 +#: libs/ardour/vst_plugin.cc:195 #, fuzzy msgid "cannot check VST chunk directory: %1" msgstr "impossibile determinare la cartella di lavoro corrente (%1)" -#: libs/ardour/vst_plugin.cc:201 +#: libs/ardour/vst_plugin.cc:202 msgid "%1 exists but is not a directory" msgstr "" -#: libs/ardour/vst_plugin.cc:239 +#: libs/ardour/vst_plugin.cc:240 msgid "Bad node sent to VSTPlugin::set_state" msgstr "" -#: libs/ardour/vst_plugin.cc:342 libs/ardour/vst_plugin.cc:353 +#: libs/ardour/vst_plugin.cc:343 libs/ardour/vst_plugin.cc:354 msgid "no support for presets using chunks at this time" msgstr "" -#: libs/ardour/coreaudio_source.cc:98 +#: libs/ardour/coreaudiosource.cc:97 #, fuzzy msgid "" "CoreAudioSource: file only contains %1 channels; %2 is invalid as a channel " @@ -2109,7 +2109,7 @@ msgstr "" "SndFileSource: il file contiene solo %1 canali; %2 non è valido come numero " "di canale" -#: libs/ardour/coreaudio_source.cc:163 +#: libs/ardour/coreaudiosource.cc:162 msgid "CoreAudioSource: could not seek to frame %1 within %2 (%3)" msgstr "" diff --git a/libs/ardour/po/ru_RU.po b/libs/ardour/po/ru_RU.po index be5221722a..aeeb1bf547 100644 --- a/libs/ardour/po/ru_RU.po +++ b/libs/ardour/po/ru_RU.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: libardour 0.716.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-06-20 16:23-0400\n" +"POT-Creation-Date: 2006-06-29 21:03-0400\n" "PO-Revision-Date: 2004-03-31 00:55+0300\n" "Last-Translator: Igor Blinov pitstop@nm.ru\n" "Language-Team: Russian\n" @@ -14,245 +14,245 @@ msgstr "" "Content-Type: text/plain; charset=koi8-r\n" "Content-Transfer-Encoding: 8bit\n" -#: libs/ardour/audio_diskstream.cc:336 +#: libs/ardour/audio_diskstream.cc:337 msgid "AudioDiskstream: Session doesn't know about a Playlist called \"%1\"" msgstr "" -#: libs/ardour/audio_diskstream.cc:341 +#: libs/ardour/audio_diskstream.cc:342 msgid "AudioDiskstream: Playlist \"%1\" isn't an audio playlist" msgstr "" -#: libs/ardour/audio_diskstream.cc:432 +#: libs/ardour/audio_diskstream.cc:433 msgid "AudioDiskstream %1: there is no existing playlist to make a copy of!" msgstr "" -#: libs/ardour/audio_diskstream.cc:1113 libs/ardour/audio_diskstream.cc:1124 +#: libs/ardour/audio_diskstream.cc:1114 libs/ardour/audio_diskstream.cc:1125 msgid "" "AudioDiskstream %1: when refilling, cannot read %2 from playlist at frame %3" msgstr "" -#: libs/ardour/audio_diskstream.cc:1253 +#: libs/ardour/audio_diskstream.cc:1254 msgid "AudioDiskstream %1: cannot read %2 from playlist at frame %3" msgstr "" -#: libs/ardour/audio_diskstream.cc:1620 libs/ardour/audio_diskstream.cc:1637 +#: libs/ardour/audio_diskstream.cc:1621 libs/ardour/audio_diskstream.cc:1638 msgid "AudioDiskstream %1: cannot write to disk" msgstr "" -#: libs/ardour/audio_diskstream.cc:1697 +#: libs/ardour/audio_diskstream.cc:1698 msgid "AudioDiskstream \"%1\": cannot flush captured data to disk!" msgstr "" -#: libs/ardour/audio_diskstream.cc:1794 +#: libs/ardour/audio_diskstream.cc:1796 msgid "%1: could not create region for complete audio file" msgstr "" -#: libs/ardour/audio_diskstream.cc:1817 +#: libs/ardour/audio_diskstream.cc:1819 msgid "AudioDiskstream: could not create region for captured audio!" msgstr "" -#: libs/ardour/audio_diskstream.cc:1872 +#: libs/ardour/audio_diskstream.cc:1874 #, fuzzy msgid "programmer error: %1" msgstr "ÏÛÉÂËÁ ÐÒÏÇÒÁÍÍÙ: " -#: libs/ardour/audio_diskstream.cc:2144 +#: libs/ardour/audio_diskstream.cc:2146 msgid "AudioDiskstream: channel %1 out of range" msgstr "" -#: libs/ardour/audio_diskstream.cc:2169 +#: libs/ardour/audio_diskstream.cc:2171 msgid "%1:%2 new capture file not initialized correctly" msgstr "" -#: libs/ardour/audio_diskstream.cc:2402 +#: libs/ardour/audio_diskstream.cc:2404 msgid "Location \"%1\" not valid for track loop (start >= end)" msgstr "" -#: libs/ardour/audio_diskstream.cc:2483 +#: libs/ardour/audio_diskstream.cc:2485 msgid "%1: cannot restore pending capture source file %2" msgstr "" -#: libs/ardour/audio_diskstream.cc:2505 +#: libs/ardour/audio_diskstream.cc:2507 msgid "%1: incorrect number of pending sources listed - ignoring them all" msgstr "" -#: libs/ardour/audio_diskstream.cc:2521 +#: libs/ardour/audio_diskstream.cc:2523 msgid "%1: cannot create whole-file region from pending capture sources" msgstr "" -#: libs/ardour/audio_diskstream.cc:2533 +#: libs/ardour/audio_diskstream.cc:2535 msgid "%1: cannot create region from pending capture sources" msgstr "" -#: libs/ardour/audio_library.cc:91 +#: libs/ardour/audio_library.cc:92 msgid "channels" msgstr "" -#: libs/ardour/audio_library.cc:92 +#: libs/ardour/audio_library.cc:93 #, fuzzy msgid "samplerate" msgstr "ÒÁÚÄÅÌÉÔØ" -#: libs/ardour/audio_library.cc:93 +#: libs/ardour/audio_library.cc:94 msgid "resolution" msgstr "" -#: libs/ardour/audio_library.cc:94 +#: libs/ardour/audio_library.cc:95 msgid "format" msgstr "" -#: libs/ardour/audio_library.cc:101 +#: libs/ardour/audio_library.cc:102 msgid "Could not open %1. Audio Library not saved" msgstr "" -#: libs/ardour/audio_playlist.cc:52 libs/ardour/audio_playlist.cc:62 -#: libs/ardour/audio_playlist.cc:73 libs/ardour/audio_playlist.cc:120 +#: libs/ardour/audio_playlist.cc:53 libs/ardour/audio_playlist.cc:63 +#: libs/ardour/audio_playlist.cc:74 libs/ardour/audio_playlist.cc:121 #: libs/ardour/insert.cc:76 libs/ardour/insert.cc:95 libs/ardour/insert.cc:120 -#: libs/ardour/insert.cc:838 libs/ardour/insert.cc:846 libs/ardour/send.cc:38 -#: libs/ardour/send.cc:52 libs/ardour/send.cc:61 -#: libs/ardour/session_state.cc:1620 libs/ardour/session_state.cc:1666 +#: libs/ardour/insert.cc:838 libs/ardour/insert.cc:846 libs/ardour/send.cc:39 +#: libs/ardour/send.cc:53 libs/ardour/send.cc:62 +#: libs/ardour/session_state.cc:1621 libs/ardour/session_state.cc:1667 msgid "initial state" msgstr "" -#: libs/ardour/audio_playlist.cc:274 libs/ardour/audio_playlist.cc:768 +#: libs/ardour/audio_playlist.cc:275 libs/ardour/audio_playlist.cc:769 msgid "" "programming error: non-audio Region passed to remove_overlap in audio " "playlist" msgstr "" -#: libs/ardour/audio_playlist.cc:401 +#: libs/ardour/audio_playlist.cc:402 msgid "" "programming error: non-audio Region tested for overlap in audio playlist" msgstr "" -#: libs/ardour/audio_playlist.cc:877 +#: libs/ardour/audio_playlist.cc:878 msgid "xfade change" msgstr "" -#: libs/ardour/audio_playlist.cc:932 +#: libs/ardour/audio_playlist.cc:933 msgid "region modified" msgstr "" -#: libs/ardour/audio_track.cc:132 libs/ardour/io.cc:1715 -#: libs/ardour/io.cc:1825 +#: libs/ardour/audio_track.cc:125 libs/ardour/io.cc:1716 +#: libs/ardour/io.cc:1826 msgid "Unknown connection \"%1\" listed for input of %2" msgstr "" -#: libs/ardour/audio_track.cc:134 libs/ardour/io.cc:1717 -#: libs/ardour/io.cc:1827 +#: libs/ardour/audio_track.cc:127 libs/ardour/io.cc:1718 +#: libs/ardour/io.cc:1828 msgid "in 1" msgstr "" -#: libs/ardour/audio_track.cc:135 libs/ardour/io.cc:1718 -#: libs/ardour/io.cc:1828 +#: libs/ardour/audio_track.cc:128 libs/ardour/io.cc:1719 +#: libs/ardour/io.cc:1829 msgid "No input connections available as a replacement" msgstr "" -#: libs/ardour/audio_track.cc:139 libs/ardour/io.cc:1722 -#: libs/ardour/io.cc:1832 +#: libs/ardour/audio_track.cc:132 libs/ardour/io.cc:1723 +#: libs/ardour/io.cc:1833 msgid "Connection %1 was not available - \"in 1\" used instead" msgstr "" -#: libs/ardour/audio_track.cc:148 libs/ardour/io.cc:1841 +#: libs/ardour/audio_track.cc:141 libs/ardour/io.cc:1842 msgid "improper input channel list in XML node (%1)" msgstr "" -#: libs/ardour/audio_track.cc:193 libs/ardour/audio_track.cc:206 +#: libs/ardour/audio_track.cc:186 libs/ardour/audio_track.cc:199 msgid "AudioTrack: diskstream \"%1\" not known by session" msgstr "" -#: libs/ardour/audio_track.cc:304 +#: libs/ardour/audio_track.cc:297 msgid "" "MIDI rec_enable control specification for %1 is incomplete, so it has been " "ignored" msgstr "" -#: libs/ardour/audio_track.cc:316 +#: libs/ardour/audio_track.cc:309 msgid "programming error: AudioTrack given state without diskstream!" msgstr "" -#: libs/ardour/audioengine.cc:149 +#: libs/ardour/audioengine.cc:144 msgid "cannot activate JACK client" msgstr "ÎÅ ÕÄÁÌÏÓØ ÁËÔÉ×ÉÒÏ×ÁÔØ ËÌÉÅÎÔÁ JACK ÓÅÒ×ÅÒÁ" -#: libs/ardour/audioengine.cc:400 +#: libs/ardour/audioengine.cc:395 msgid "register audio input port called before engine was started" msgstr "" -#: libs/ardour/audioengine.cc:431 +#: libs/ardour/audioengine.cc:426 msgid "register audio output port called before engine was started" msgstr "" -#: libs/ardour/audioengine.cc:492 +#: libs/ardour/audioengine.cc:487 msgid "connect called before engine was started" msgstr "" -#: libs/ardour/audioengine.cc:508 +#: libs/ardour/audioengine.cc:503 msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)" msgstr "" -#: libs/ardour/audioengine.cc:521 libs/ardour/audioengine.cc:550 +#: libs/ardour/audioengine.cc:516 libs/ardour/audioengine.cc:545 msgid "disconnect called before engine was started" msgstr "" -#: libs/ardour/audioengine.cc:608 +#: libs/ardour/audioengine.cc:603 msgid "get_port_by_name() called before engine was started" msgstr "" -#: libs/ardour/audioengine.cc:641 +#: libs/ardour/audioengine.cc:636 msgid "get_ports called before engine was started" msgstr "" -#: libs/ardour/audioengine.cc:716 +#: libs/ardour/audioengine.cc:711 msgid "get_nth_physical called before engine was started" msgstr "" -#: libs/ardour/audioengine.cc:744 +#: libs/ardour/audioengine.cc:739 msgid "get_port_total_latency() called with no JACK client connection" msgstr "" -#: libs/ardour/audioengine.cc:750 +#: libs/ardour/audioengine.cc:745 msgid "get_port_total_latency() called before engine was started" msgstr "" -#: libs/ardour/audioengine.cc:874 +#: libs/ardour/audioengine.cc:869 msgid "Unable to connect to JACK server" msgstr "" -#: libs/ardour/audioengine.cc:877 +#: libs/ardour/audioengine.cc:872 msgid "Could not connect to JACK server as \"%1\"" msgstr "" -#: libs/ardour/audioengine.cc:882 +#: libs/ardour/audioengine.cc:877 msgid "JACK server started" msgstr "" -#: libs/ardour/audioengine.cc:916 +#: libs/ardour/audioengine.cc:911 msgid "cannot shutdown connection to JACK" msgstr "" -#: libs/ardour/audioengine.cc:941 +#: libs/ardour/audioengine.cc:936 msgid "failed to connect to JACK" msgstr "" -#: libs/ardour/audioengine.cc:957 +#: libs/ardour/audioengine.cc:952 msgid "could not reregister %1" msgstr "" -#: libs/ardour/audioengine.cc:1014 +#: libs/ardour/audioengine.cc:1009 msgid "could not reconnect %1 and %2 (err = %3)" msgstr "" -#: libs/ardour/audiofilesource.cc:444 libs/ardour/session_state.cc:3094 +#: libs/ardour/audiofilesource.cc:444 libs/ardour/session_state.cc:3095 msgid "" "there are already 1000 files with names like %1; versioning discontinued" msgstr "" -#: libs/ardour/audiofilesource.cc:458 libs/ardour/session_state.cc:3108 +#: libs/ardour/audiofilesource.cc:458 libs/ardour/session_state.cc:3109 msgid "cannot rename audio file source from %1 to %2 (%3)" msgstr "" -#: libs/ardour/audiofilesource.cc:465 libs/ardour/session_state.cc:3123 +#: libs/ardour/audiofilesource.cc:465 libs/ardour/session_state.cc:3124 msgid "cannot remove peakfile %1 for %2 (%3)" msgstr "" @@ -278,21 +278,21 @@ msgstr "" msgid "Filesource: cannot check for existing file (%1): %2" msgstr "" -#: libs/ardour/audiofilesource.cc:639 libs/ardour/insert.cc:525 -#: libs/ardour/sndfilesource.cc:111 +#: libs/ardour/audiofilesource.cc:636 libs/ardour/insert.cc:525 +#: libs/ardour/sndfilesource.cc:113 #, fuzzy msgid "programming error: %1" msgstr "ÏÛÉÂËÁ ÐÒÏÇÒÁÍÍÙ: " -#: libs/ardour/audiofilesource.cc:644 +#: libs/ardour/audiofilesource.cc:641 msgid "cannot rename audio file for %1 to %2" msgstr "" -#: libs/ardour/audiofilter.cc:44 +#: libs/ardour/audiofilter.cc:45 msgid "audiofilter: error creating name for new audio file based on %1" msgstr "" -#: libs/ardour/audiofilter.cc:57 +#: libs/ardour/audiofilter.cc:58 msgid "audiofilter: error creating new audio file %1 (%2)" msgstr "" @@ -365,147 +365,147 @@ msgstr "" msgid "%1: could not write peak file data (%2)" msgstr "" -#: libs/ardour/automation_event.cc:64 libs/ardour/location.cc:344 -#: libs/ardour/tempo.cc:225 +#: libs/ardour/automation_event.cc:65 libs/ardour/location.cc:345 +#: libs/ardour/tempo.cc:226 msgid "initial" msgstr "" -#: libs/ardour/automation_event.cc:231 +#: libs/ardour/automation_event.cc:232 msgid "cleared" msgstr "" -#: libs/ardour/automation_event.cc:403 +#: libs/ardour/automation_event.cc:404 msgid "added event" msgstr "" -#: libs/ardour/automation_event.cc:420 +#: libs/ardour/automation_event.cc:421 #, fuzzy msgid "removed event" msgstr "ÕÄÁÌÉÔØ ÏÂÌÁÓÔØ" -#: libs/ardour/automation_event.cc:435 +#: libs/ardour/automation_event.cc:436 msgid "removed multiple events" msgstr "" -#: libs/ardour/automation_event.cc:466 libs/ardour/automation_event.cc:497 +#: libs/ardour/automation_event.cc:467 libs/ardour/automation_event.cc:498 #, fuzzy msgid "removed range" msgstr "ÕÄÁÌÉÔØ ÏÂÌÁÓÔØ" -#: libs/ardour/automation_event.cc:527 +#: libs/ardour/automation_event.cc:528 msgid "event range adjusted" msgstr "" -#: libs/ardour/automation_event.cc:549 +#: libs/ardour/automation_event.cc:550 msgid "event adjusted" msgstr "" -#: libs/ardour/automation_event.cc:664 libs/ardour/automation_event.cc:769 +#: libs/ardour/automation_event.cc:665 libs/ardour/automation_event.cc:770 #: libs/ardour/panner.cc:1041 #, fuzzy msgid "programming error:" msgstr "ÏÛÉÂËÁ ÐÒÏÇÒÁÍÍÙ: " -#: libs/ardour/automation_event.cc:1078 +#: libs/ardour/automation_event.cc:1079 msgid "cut/copy/clear" msgstr "" -#: libs/ardour/automation_event.cc:1111 +#: libs/ardour/automation_event.cc:1112 msgid "copy" msgstr "" -#: libs/ardour/automation_event.cc:1179 libs/ardour/playlist.cc:939 +#: libs/ardour/automation_event.cc:1180 libs/ardour/playlist.cc:939 msgid "paste" msgstr "×ÓÔÁ×ÉÔØ" -#: libs/ardour/automation_event.cc:1234 +#: libs/ardour/automation_event.cc:1235 msgid "" "automation list: no x-coordinate stored for control point (point ignored)" msgstr "" -#: libs/ardour/automation_event.cc:1240 +#: libs/ardour/automation_event.cc:1241 msgid "" "automation list: no y-coordinate stored for control point (point ignored)" msgstr "" -#: libs/ardour/configuration.cc:79 +#: libs/ardour/configuration.cc:80 #, fuzzy msgid "loading system configuration file %1" msgstr "Ardour: ÎÅ ÕÄÁÌÏÓØ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÒÏÇÒÁÍÍÙ \"%1\"" -#: libs/ardour/configuration.cc:82 +#: libs/ardour/configuration.cc:83 msgid "Ardour: cannot read system configuration file \"%1\"" msgstr "Ardour: ÎÅ ÕÄÁÌÏÓØ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÒÏÇÒÁÍÍÙ \"%1\"" -#: libs/ardour/configuration.cc:87 +#: libs/ardour/configuration.cc:88 msgid "Ardour: system configuration file \"%1\" not loaded successfully." msgstr "Ardour: ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÒÏÇÒÁÍÍÙ \"%1\"." -#: libs/ardour/configuration.cc:104 +#: libs/ardour/configuration.cc:105 #, fuzzy msgid "loading user configuration file %1" msgstr "Ardour: ÎÅ ÕÄÁÌÏÓØ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÏÌØÚÏ×ÁÔÅÌÑ \"%1\"" -#: libs/ardour/configuration.cc:107 +#: libs/ardour/configuration.cc:108 msgid "Ardour: cannot read configuration file \"%1\"" msgstr "Ardour: ÎÅ ÕÄÁÌÏÓØ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÏÌØÚÏ×ÁÔÅÌÑ \"%1\"" -#: libs/ardour/configuration.cc:112 +#: libs/ardour/configuration.cc:113 #, fuzzy msgid "Ardour: user configuration file \"%1\" not loaded successfully." msgstr "Ardour: ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ ÐÏÌØÚÏ×ÁÔÅÌÑ \"%1\"." -#: libs/ardour/configuration.cc:136 +#: libs/ardour/configuration.cc:137 #, fuzzy msgid "Config file %1 not saved" msgstr "æÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ ÎÅ ÓÏÈÒÁΣÎ" -#: libs/ardour/configuration.cc:209 +#: libs/ardour/configuration.cc:210 msgid "ill-formed MIDI port specification in ardour rcfile (ignored)" msgstr "" -#: libs/ardour/connection.cc:182 +#: libs/ardour/connection.cc:183 msgid "Node for Connection has no \"name\" property" msgstr "" -#: libs/ardour/connection.cc:190 +#: libs/ardour/connection.cc:191 msgid "Node for Connection has no \"connections\" property" msgstr "" -#: libs/ardour/connection.cc:226 libs/ardour/io.cc:1901 +#: libs/ardour/connection.cc:227 libs/ardour/io.cc:1902 msgid "IO: badly formed string in XML node for inputs \"%1\"" msgstr "" -#: libs/ardour/connection.cc:231 libs/ardour/io.cc:1906 +#: libs/ardour/connection.cc:232 libs/ardour/io.cc:1907 msgid "bad input string in XML node \"%1\"" msgstr "" -#: libs/ardour/control_protocol_manager.cc:82 +#: libs/ardour/control_protocol_manager.cc:80 msgid "control protocol name \"%1\" has no descriptor" msgstr "" -#: libs/ardour/control_protocol_manager.cc:87 +#: libs/ardour/control_protocol_manager.cc:85 msgid "control protocol name \"%1\" could not be initialized" msgstr "" -#: libs/ardour/control_protocol_manager.cc:143 +#: libs/ardour/control_protocol_manager.cc:141 msgid "Instantiating mandatory control protocol %1" msgstr "" -#: libs/ardour/control_protocol_manager.cc:177 +#: libs/ardour/control_protocol_manager.cc:175 msgid "Control protocol %1 not usable" msgstr "" -#: libs/ardour/control_protocol_manager.cc:189 +#: libs/ardour/control_protocol_manager.cc:187 msgid "Control surface protocol discovered: \"%1\"" msgstr "" -#: libs/ardour/control_protocol_manager.cc:207 +#: libs/ardour/control_protocol_manager.cc:205 #, fuzzy msgid "ControlProtocolManager: cannot load module \"%1\" (%2)" msgstr "LADSPA: ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÍÏÄÕÌØ \"%1\" (%2)" -#: libs/ardour/control_protocol_manager.cc:215 +#: libs/ardour/control_protocol_manager.cc:213 msgid "ControlProtocolManager: module \"%1\" has no descriptor function." msgstr "" @@ -533,100 +533,100 @@ msgstr "" msgid "old-style crossfade information - no position information" msgstr "" -#: libs/ardour/curve.cc:111 libs/ardour/globals.cc:339 +#: libs/ardour/curve.cc:112 libs/ardour/globals.cc:340 #: libs/ardour/insert.cc:454 libs/ardour/session.cc:2466 #: libs/ardour/session.cc:2518 msgid "programming error: " msgstr "ÏÛÉÂËÁ ÐÒÏÇÒÁÍÍÙ: " -#: libs/ardour/cycle_timer.cc:35 +#: libs/ardour/cycle_timer.cc:37 msgid "CycleTimer::get_mhz(): can't open /proc/cpuinfo" msgstr "" -#: libs/ardour/cycle_timer.cc:47 +#: libs/ardour/cycle_timer.cc:49 msgid "CycleTimer::get_mhz(): cannot locate cpu MHz in /proc/cpuinfo" msgstr "" -#: libs/ardour/cycle_timer.cc:70 +#: libs/ardour/cycle_timer.cc:72 msgid "cannot locate cpu MHz in /proc/cpuinfo" msgstr "" -#: libs/ardour/destructive_filesource.cc:187 +#: libs/ardour/destructive_filesource.cc:188 msgid "DestructiveFileSource: \"%1\" bad read retval: %2 of %5 (%3: %4)" msgstr "" -#: libs/ardour/destructive_filesource.cc:200 -#: libs/ardour/destructive_filesource.cc:242 -#: libs/ardour/destructive_filesource.cc:249 +#: libs/ardour/destructive_filesource.cc:201 +#: libs/ardour/destructive_filesource.cc:243 +#: libs/ardour/destructive_filesource.cc:250 msgid "DestructiveFileSource: \"%1\" bad write (%2)" msgstr "" -#: libs/ardour/globals.cc:108 +#: libs/ardour/globals.cc:109 msgid "no MIDI ports specified: no MMC or MTC control possible" msgstr "" -#: libs/ardour/globals.cc:123 +#: libs/ardour/globals.cc:124 msgid "MIDI port specifications for \"%1\" are not understandable." msgstr "" -#: libs/ardour/globals.cc:136 libs/ardour/globals.cc:140 -#: libs/ardour/globals.cc:144 +#: libs/ardour/globals.cc:137 libs/ardour/globals.cc:141 +#: libs/ardour/globals.cc:145 msgid "default" msgstr "" -#: libs/ardour/globals.cc:172 +#: libs/ardour/globals.cc:173 msgid "No MMC control (MIDI port \"%1\" not available)" msgstr "" -#: libs/ardour/globals.cc:178 +#: libs/ardour/globals.cc:179 msgid "No MTC support (MIDI port \"%1\" not available)" msgstr "" -#: libs/ardour/globals.cc:183 +#: libs/ardour/globals.cc:184 msgid "No MIDI parameter support (MIDI port \"%1\" not available)" msgstr "" -#: libs/ardour/import.cc:74 +#: libs/ardour/import.cc:75 msgid "Import: cannot open input sound file \"%1\"" msgstr "" -#: libs/ardour/import.cc:79 +#: libs/ardour/import.cc:80 msgid "resampling audio" msgstr "" -#: libs/ardour/import.cc:83 +#: libs/ardour/import.cc:84 msgid "Import: cannot open converted sound file \"%1\"" msgstr "" -#: libs/ardour/import.cc:88 +#: libs/ardour/import.cc:89 msgid "Import: error while resampling sound file \"%1\"" msgstr "" -#: libs/ardour/import.cc:147 +#: libs/ardour/import.cc:148 msgid "Session::import_audiofile: cannot open new file source for channel %1" msgstr "" -#: libs/ardour/import.cc:166 +#: libs/ardour/import.cc:167 msgid "converting audio" msgstr "" -#: libs/ardour/import.cc:198 +#: libs/ardour/import.cc:199 msgid "building region" msgstr "" -#: libs/ardour/import.cc:200 +#: libs/ardour/import.cc:201 msgid "building regions" msgstr "" -#: libs/ardour/import.cc:324 +#: libs/ardour/import.cc:325 msgid "Import: could not open temp file: %1" msgstr "" -#: libs/ardour/import.cc:333 +#: libs/ardour/import.cc:334 msgid "Import: src_new() failed : %1" msgstr "" -#: libs/ardour/import.cc:361 +#: libs/ardour/import.cc:362 msgid "Import: %1" msgstr "éÍÐÏÒÔ: %1" @@ -680,223 +680,223 @@ msgstr "" msgid "non-port insert XML used for port plugin insert" msgstr "" -#: libs/ardour/io.cc:597 +#: libs/ardour/io.cc:598 msgid "IO: cannot disconnect input port %1 from %2" msgstr "" -#: libs/ardour/io.cc:665 +#: libs/ardour/io.cc:666 msgid "IO: cannot disconnect output port %1 from %2" msgstr "" -#: libs/ardour/io.cc:806 libs/ardour/io.cc:1150 libs/ardour/io.cc:1276 +#: libs/ardour/io.cc:807 libs/ardour/io.cc:1151 libs/ardour/io.cc:1277 #, c-format msgid "%s/out" msgstr "" -#: libs/ardour/io.cc:808 libs/ardour/io.cc:1152 libs/ardour/io.cc:1278 -#: libs/ardour/io.cc:2848 +#: libs/ardour/io.cc:809 libs/ardour/io.cc:1153 libs/ardour/io.cc:1279 +#: libs/ardour/io.cc:2849 #, c-format msgid "%s/out %u" msgstr "" -#: libs/ardour/io.cc:812 libs/ardour/io.cc:1157 libs/ardour/io.cc:1282 +#: libs/ardour/io.cc:813 libs/ardour/io.cc:1158 libs/ardour/io.cc:1283 msgid "IO: cannot register output port %1" msgstr "" -#: libs/ardour/io.cc:907 libs/ardour/io.cc:1010 libs/ardour/io.cc:1116 +#: libs/ardour/io.cc:908 libs/ardour/io.cc:1011 libs/ardour/io.cc:1117 #, c-format msgid "%s/in" msgstr "" -#: libs/ardour/io.cc:909 libs/ardour/io.cc:1013 libs/ardour/io.cc:1119 -#: libs/ardour/io.cc:2818 +#: libs/ardour/io.cc:910 libs/ardour/io.cc:1014 libs/ardour/io.cc:1120 +#: libs/ardour/io.cc:2819 #, c-format msgid "%s/in %u" msgstr "" -#: libs/ardour/io.cc:913 libs/ardour/io.cc:1019 libs/ardour/io.cc:1124 +#: libs/ardour/io.cc:914 libs/ardour/io.cc:1020 libs/ardour/io.cc:1125 msgid "IO: cannot register input port %1" msgstr "" -#: libs/ardour/io.cc:1540 +#: libs/ardour/io.cc:1541 msgid "IO::connecting_became_legal() called without a pending state node" msgstr "" -#: libs/ardour/io.cc:1563 +#: libs/ardour/io.cc:1564 msgid "IO::ports_became_legal() called without a pending state node" msgstr "" -#: libs/ardour/io.cc:1593 +#: libs/ardour/io.cc:1594 msgid "incorrect XML node \"%1\" passed to IO object" msgstr "" -#: libs/ardour/io.cc:1648 +#: libs/ardour/io.cc:1649 msgid "" "MIDI gain control specification for %1 is incomplete, so it has been ignored" msgstr "" -#: libs/ardour/io.cc:1738 libs/ardour/io.cc:1850 +#: libs/ardour/io.cc:1739 libs/ardour/io.cc:1851 msgid "Unknown connection \"%1\" listed for output of %2" msgstr "" -#: libs/ardour/io.cc:1740 libs/ardour/io.cc:1852 +#: libs/ardour/io.cc:1741 libs/ardour/io.cc:1853 msgid "out 1" msgstr "" -#: libs/ardour/io.cc:1741 libs/ardour/io.cc:1853 +#: libs/ardour/io.cc:1742 libs/ardour/io.cc:1854 msgid "No output connections available as a replacement" msgstr "" -#: libs/ardour/io.cc:1745 libs/ardour/io.cc:1857 +#: libs/ardour/io.cc:1746 libs/ardour/io.cc:1858 msgid "Connection %1 was not available - \"out 1\" used instead" msgstr "" -#: libs/ardour/io.cc:1759 +#: libs/ardour/io.cc:1760 msgid "%1: cannot create I/O ports" msgstr "" -#: libs/ardour/io.cc:1866 +#: libs/ardour/io.cc:1867 msgid "improper output channel list in XML node (%1)" msgstr "" -#: libs/ardour/io.cc:1951 +#: libs/ardour/io.cc:1952 msgid "IO: badly formed string in XML node for outputs \"%1\"" msgstr "" -#: libs/ardour/io.cc:1956 +#: libs/ardour/io.cc:1957 msgid "IO: bad output string in XML node \"%1\"" msgstr "" -#: libs/ardour/io.cc:2524 +#: libs/ardour/io.cc:2525 msgid "%1: could not open automation event file \"%2\"" msgstr "" -#: libs/ardour/io.cc:2563 +#: libs/ardour/io.cc:2564 msgid "%1: cannot open automation event file \"%2\"" msgstr "" -#: libs/ardour/io.cc:2578 +#: libs/ardour/io.cc:2579 msgid "badly formed version number in automation event file \"%1\"" msgstr "" -#: libs/ardour/io.cc:2582 +#: libs/ardour/io.cc:2583 msgid "no version information in automation event file \"%1\"" msgstr "" -#: libs/ardour/io.cc:2587 +#: libs/ardour/io.cc:2588 msgid "mismatched automation event file version (%1)" msgstr "" -#: libs/ardour/io.cc:2595 +#: libs/ardour/io.cc:2596 msgid "badly formatted automation event record at line %1 of %2 (ignored)" msgstr "" -#: libs/ardour/io.cc:2615 +#: libs/ardour/io.cc:2616 msgid "dubious automation event found (and ignored)" msgstr "" -#: libs/ardour/io.cc:2619 libs/ardour/panner.cc:438 +#: libs/ardour/io.cc:2620 libs/ardour/panner.cc:438 #: libs/ardour/redirect.cc:148 msgid "loaded from disk" msgstr "" -#: libs/ardour/io.cc:2790 +#: libs/ardour/io.cc:2791 msgid "automation write/touch" msgstr "" -#: libs/ardour/ladspa_plugin.cc:86 +#: libs/ardour/ladspa_plugin.cc:87 msgid "LADSPA: module has no descriptor function." msgstr "" -#: libs/ardour/ladspa_plugin.cc:91 +#: libs/ardour/ladspa_plugin.cc:92 msgid "LADSPA: plugin has gone away since discovery!" msgstr "" -#: libs/ardour/ladspa_plugin.cc:98 +#: libs/ardour/ladspa_plugin.cc:99 msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing" msgstr "" -#: libs/ardour/ladspa_plugin.cc:328 +#: libs/ardour/ladspa_plugin.cc:329 msgid "" "illegal parameter number used with plugin \"%1\". This mayindicate a change " "in the plugin design, and presets may beinvalid" msgstr "" -#: libs/ardour/ladspa_plugin.cc:429 +#: libs/ardour/ladspa_plugin.cc:430 msgid "Bad node sent to LadspaPlugin::set_state" msgstr "" -#: libs/ardour/ladspa_plugin.cc:442 +#: libs/ardour/ladspa_plugin.cc:443 msgid "LADSPA: no ladspa port number" msgstr "" -#: libs/ardour/ladspa_plugin.cc:448 +#: libs/ardour/ladspa_plugin.cc:449 msgid "LADSPA: no ladspa port data" msgstr "" -#: libs/ardour/ladspa_plugin.cc:497 +#: libs/ardour/ladspa_plugin.cc:498 msgid "" "LADSPA LadspaPlugin MIDI control specification for port %1 is incomplete, so " "it has been ignored" msgstr "" -#: libs/ardour/location.cc:268 +#: libs/ardour/location.cc:269 msgid "incorrect XML node passed to Location::set_state" msgstr "" -#: libs/ardour/location.cc:275 +#: libs/ardour/location.cc:276 msgid "XML node for Location has no name information" msgstr "" -#: libs/ardour/location.cc:282 +#: libs/ardour/location.cc:283 msgid "XML node for Location has no start information" msgstr "" -#: libs/ardour/location.cc:293 +#: libs/ardour/location.cc:294 msgid "XML node for Location has no end information" msgstr "" -#: libs/ardour/location.cc:302 +#: libs/ardour/location.cc:303 msgid "XML node for Location has no flags information" msgstr "" -#: libs/ardour/location.cc:390 +#: libs/ardour/location.cc:391 msgid "Locations: attempt to use unknown location as selected location" msgstr "" -#: libs/ardour/location.cc:417 libs/ardour/playlist.cc:1187 +#: libs/ardour/location.cc:418 libs/ardour/playlist.cc:1187 msgid "clear" msgstr "" -#: libs/ardour/location.cc:442 +#: libs/ardour/location.cc:443 msgid "clear markers" msgstr "" -#: libs/ardour/location.cc:470 +#: libs/ardour/location.cc:471 msgid "clear ranges" msgstr "" -#: libs/ardour/location.cc:488 +#: libs/ardour/location.cc:489 msgid "add" msgstr "ÄÏÂÁ×ÉÔØ" -#: libs/ardour/location.cc:526 +#: libs/ardour/location.cc:527 msgid "remove" msgstr "ÕÄÁÌÉÔØ" -#: libs/ardour/location.cc:566 +#: libs/ardour/location.cc:567 msgid "incorrect XML mode passed to Locations::set_state" msgstr "" -#: libs/ardour/mtc_slave.cc:195 +#: libs/ardour/mtc_slave.cc:196 msgid "MTC Slave: atomic read of current time failed, sleeping!" msgstr "" -#: libs/ardour/named_selection.cc:76 +#: libs/ardour/named_selection.cc:77 msgid "Chunk %1 uses an unknown playlist \"%2\"" msgstr "" -#: libs/ardour/named_selection.cc:79 +#: libs/ardour/named_selection.cc:80 msgid "Chunk %1 contains misformed playlist information" msgstr "" @@ -1003,62 +1003,62 @@ msgstr "" msgid "nudged" msgstr "" -#: libs/ardour/playlist_factory.cc:26 libs/ardour/playlist_factory.cc:41 +#: libs/ardour/playlist_factory.cc:49 libs/ardour/playlist_factory.cc:64 msgid "" "programming error: Playlist::createRegion called with unknown Region type" msgstr "" -#: libs/ardour/playlist_factory.cc:63 +#: libs/ardour/playlist_factory.cc:86 msgid "" "programming error: Playlist::copyPlaylist called with unknown Playlist type" msgstr "" -#: libs/ardour/plugin.cc:327 +#: libs/ardour/plugin.cc:328 msgid "Could not locate HOME. Preset not saved." msgstr "" -#: libs/ardour/plugin.cc:337 libs/ardour/plugin.cc:343 +#: libs/ardour/plugin.cc:338 libs/ardour/plugin.cc:344 msgid "Could not create %1. Preset not saved. (%2)" msgstr "" -#: libs/ardour/plugin.cc:348 +#: libs/ardour/plugin.cc:349 msgid "Error saving presets file %1." msgstr "" -#: libs/ardour/plugin_manager.cc:193 +#: libs/ardour/plugin_manager.cc:194 msgid "Could not parse rdf file: %1" msgstr "" -#: libs/ardour/plugin_manager.cc:234 +#: libs/ardour/plugin_manager.cc:235 msgid "LADSPA: cannot load module \"%1\" (%2)" msgstr "LADSPA: ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÍÏÄÕÌØ \"%1\" (%2)" -#: libs/ardour/plugin_manager.cc:241 +#: libs/ardour/plugin_manager.cc:242 msgid "LADSPA: module \"%1\" has no descriptor function." msgstr "" -#: libs/ardour/plugin_manager.cc:296 +#: libs/ardour/plugin_manager.cc:297 #, fuzzy msgid "VST: cannot load module from \"%1\"" msgstr "LADSPA: ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÍÏÄÕÌØ \"%1\" (%2)" -#: libs/ardour/plugin_manager.cc:301 +#: libs/ardour/plugin_manager.cc:302 msgid "You asked ardour to not use any VST plugins" msgstr "" -#: libs/ardour/plugin_manager.cc:304 +#: libs/ardour/plugin_manager.cc:305 msgid "This version of ardour has no support for VST plugins" msgstr "" -#: libs/ardour/plugin_manager.cc:311 +#: libs/ardour/plugin_manager.cc:312 msgid "LADSPA: cannot load module from \"%1\"" msgstr "" -#: libs/ardour/plugin_manager.cc:373 libs/ardour/plugin_manager.cc:385 +#: libs/ardour/plugin_manager.cc:374 libs/ardour/plugin_manager.cc:386 msgid "Unknown" msgstr "" -#: libs/ardour/plugin_manager.cc:463 +#: libs/ardour/plugin_manager.cc:464 msgid "" "VST plugin %1 does not support processReplacing, and so cannot be used in " "ardour at this time" @@ -1072,11 +1072,11 @@ msgstr "" msgid "programming error: unknown Redirect type in Redirect::Clone!\n" msgstr "" -#: libs/ardour/redirect.cc:102 libs/ardour/utils.cc:202 +#: libs/ardour/redirect.cc:102 libs/ardour/utils.cc:203 msgid "pre" msgstr "ÐÒÅ" -#: libs/ardour/redirect.cc:104 libs/ardour/utils.cc:205 +#: libs/ardour/redirect.cc:104 libs/ardour/utils.cc:206 msgid "post" msgstr "ÐÏÓÔ" @@ -1128,11 +1128,11 @@ msgstr "" msgid "active_changed" msgstr "" -#: libs/ardour/region.cc:884 +#: libs/ardour/region.cc:885 msgid "Session: XMLNode describing a Region is incomplete (no id)" msgstr "" -#: libs/ardour/region.cc:891 +#: libs/ardour/region.cc:892 msgid "Session: XMLNode describing a Region is incomplete (no name)" msgstr "" @@ -1186,7 +1186,7 @@ msgid "" "MIDI mute control specification for %1 is incomplete, so it has been ignored" msgstr "" -#: libs/ardour/send.cc:98 +#: libs/ardour/send.cc:99 msgid "XML node describing a send is missing a Redirect node" msgstr "" @@ -1327,11 +1327,11 @@ msgstr "" msgid "programming error: unknown type of Redirect deleted!" msgstr "" -#: libs/ardour/session.cc:3634 +#: libs/ardour/session.cc:3636 msgid "too many bounced versions of playlist \"%1\"" msgstr "" -#: libs/ardour/session.cc:3647 +#: libs/ardour/session.cc:3649 msgid "cannot create new audio file \"%1\" for %2" msgstr "" @@ -1363,19 +1363,19 @@ msgstr "" msgid "Butler write-behind failure on dstream %1" msgstr "" -#: libs/ardour/session_click.cc:157 +#: libs/ardour/session_click.cc:158 msgid "cannot open click soundfile %1 (%2)" msgstr "" -#: libs/ardour/session_click.cc:166 +#: libs/ardour/session_click.cc:167 msgid "cannot read data from click soundfile" msgstr "" -#: libs/ardour/session_click.cc:191 +#: libs/ardour/session_click.cc:192 msgid "cannot open click emphasis soundfile %1 (%2)" msgstr "" -#: libs/ardour/session_click.cc:199 +#: libs/ardour/session_click.cc:200 msgid "cannot read data from click emphasis soundfile" msgstr "" @@ -1479,256 +1479,256 @@ msgstr "" msgid "Session: error in no roll for %1" msgstr "" -#: libs/ardour/session_state.cc:100 +#: libs/ardour/session_state.cc:101 msgid "Could not use path %1 (%s)" msgstr "" -#: libs/ardour/session_state.cc:128 +#: libs/ardour/session_state.cc:129 msgid "end" msgstr "" -#: libs/ardour/session_state.cc:129 +#: libs/ardour/session_state.cc:130 #, fuzzy msgid "start" msgstr "ÒÁÚÄÅÌÉÔØ" -#: libs/ardour/session_state.cc:501 +#: libs/ardour/session_state.cc:502 msgid "Session: cannot create session dir \"%1\" (%2)" msgstr "" -#: libs/ardour/session_state.cc:512 +#: libs/ardour/session_state.cc:513 msgid "Session: cannot create session peakfile dir \"%1\" (%2)" msgstr "" -#: libs/ardour/session_state.cc:521 +#: libs/ardour/session_state.cc:522 msgid "Session: cannot create session sounds dir \"%1\" (%2)" msgstr "" -#: libs/ardour/session_state.cc:530 +#: libs/ardour/session_state.cc:531 msgid "Session: cannot create session tape dir \"%1\" (%2)" msgstr "" -#: libs/ardour/session_state.cc:539 +#: libs/ardour/session_state.cc:540 msgid "Session: cannot create session dead sounds dir \"%1\" (%2)" msgstr "" -#: libs/ardour/session_state.cc:548 +#: libs/ardour/session_state.cc:549 msgid "Session: cannot create session automation dir \"%1\" (%2)" msgstr "" -#: libs/ardour/session_state.cc:579 +#: libs/ardour/session_state.cc:580 msgid "Could not open %1 for writing mix template" msgstr "" -#: libs/ardour/session_state.cc:585 +#: libs/ardour/session_state.cc:586 msgid "Could not open mix template %1 for reading" msgstr "" -#: libs/ardour/session_state.cc:592 +#: libs/ardour/session_state.cc:593 msgid "Session already exists. Not overwriting" msgstr "" -#: libs/ardour/session_state.cc:635 +#: libs/ardour/session_state.cc:636 msgid "Session: could not load diskstream via XML state" msgstr "" -#: libs/ardour/session_state.cc:684 +#: libs/ardour/session_state.cc:685 msgid "could not backup old state file, current state not saved." msgstr "" -#: libs/ardour/session_state.cc:697 +#: libs/ardour/session_state.cc:698 msgid "state could not be saved to %1" msgstr "" -#: libs/ardour/session_state.cc:704 +#: libs/ardour/session_state.cc:705 msgid "could not remove corrupt state file %1" msgstr "" -#: libs/ardour/session_state.cc:708 +#: libs/ardour/session_state.cc:709 msgid "could not restore state file from backup %1" msgstr "" -#: libs/ardour/session_state.cc:777 +#: libs/ardour/session_state.cc:778 msgid "%1: session state information file \"%2\" doesn't exist!" msgstr "" -#: libs/ardour/session_state.cc:788 +#: libs/ardour/session_state.cc:789 msgid "Could not understand ardour file %1" msgstr "" -#: libs/ardour/session_state.cc:1492 +#: libs/ardour/session_state.cc:1493 msgid "programming error: Session: incorrect XML node sent to set_state()" msgstr "" -#: libs/ardour/session_state.cc:1538 +#: libs/ardour/session_state.cc:1539 msgid "Session: XML state has no options section" msgstr "" -#: libs/ardour/session_state.cc:1543 +#: libs/ardour/session_state.cc:1544 msgid "Session: XML state has no sources section" msgstr "" -#: libs/ardour/session_state.cc:1550 +#: libs/ardour/session_state.cc:1551 msgid "Session: XML state has no Regions section" msgstr "" -#: libs/ardour/session_state.cc:1557 +#: libs/ardour/session_state.cc:1558 msgid "Session: XML state has no playlists section" msgstr "" -#: libs/ardour/session_state.cc:1576 +#: libs/ardour/session_state.cc:1577 msgid "Session: XML state has no diskstreams section" msgstr "" -#: libs/ardour/session_state.cc:1583 +#: libs/ardour/session_state.cc:1584 msgid "Session: XML state has no connections section" msgstr "" -#: libs/ardour/session_state.cc:1590 +#: libs/ardour/session_state.cc:1591 msgid "Session: XML state has no locations section" msgstr "" -#: libs/ardour/session_state.cc:1623 +#: libs/ardour/session_state.cc:1624 msgid "Session: XML state has no edit groups section" msgstr "" -#: libs/ardour/session_state.cc:1630 +#: libs/ardour/session_state.cc:1631 msgid "Session: XML state has no mix groups section" msgstr "" -#: libs/ardour/session_state.cc:1637 +#: libs/ardour/session_state.cc:1638 msgid "Session: XML state has no Tempo Map section" msgstr "" -#: libs/ardour/session_state.cc:1644 +#: libs/ardour/session_state.cc:1645 msgid "Session: XML state has no routes section" msgstr "" -#: libs/ardour/session_state.cc:1651 +#: libs/ardour/session_state.cc:1652 msgid "Session: XML state has no click section" msgstr "" -#: libs/ardour/session_state.cc:1696 +#: libs/ardour/session_state.cc:1697 msgid "Session: cannot create Route from XML description." msgstr "" -#: libs/ardour/session_state.cc:1734 +#: libs/ardour/session_state.cc:1735 msgid "Session: cannot create Region from XML description." msgstr "" -#: libs/ardour/session_state.cc:1763 +#: libs/ardour/session_state.cc:1764 msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)" msgstr "" -#: libs/ardour/session_state.cc:1771 libs/ardour/session_state.cc:1791 +#: libs/ardour/session_state.cc:1772 libs/ardour/session_state.cc:1792 msgid "" "Session: XMLNode describing a AudioRegion references an unknown source id =%1" msgstr "" -#: libs/ardour/session_state.cc:1777 libs/ardour/session_state.cc:1797 +#: libs/ardour/session_state.cc:1778 libs/ardour/session_state.cc:1798 msgid "" "Session: XMLNode describing a AudioRegion references a non-audio source id =%" "1" msgstr "" -#: libs/ardour/session_state.cc:1867 +#: libs/ardour/session_state.cc:1868 msgid "Session: cannot create Source from XML description." msgstr "" -#: libs/ardour/session_state.cc:1888 +#: libs/ardour/session_state.cc:1889 msgid "" "Found a sound file that cannot be used by Ardour. Talk to the progammers." msgstr "" -#: libs/ardour/session_state.cc:1912 +#: libs/ardour/session_state.cc:1913 msgid "Could not create mix templates directory \"%1\" (%2)" msgstr "" -#: libs/ardour/session_state.cc:1926 +#: libs/ardour/session_state.cc:1927 msgid "Template \"%1\" already exists - new version not created" msgstr "" -#: libs/ardour/session_state.cc:1933 +#: libs/ardour/session_state.cc:1934 msgid "mix template not saved" msgstr "" -#: libs/ardour/session_state.cc:1993 +#: libs/ardour/session_state.cc:1994 msgid "cannot create session directory \"%1\"; ignored" msgstr "" -#: libs/ardour/session_state.cc:2006 +#: libs/ardour/session_state.cc:2007 msgid "cannot create sounds directory \"%1\"; ignored" msgstr "" -#: libs/ardour/session_state.cc:2017 +#: libs/ardour/session_state.cc:2018 msgid "cannot create dead sounds directory \"%1\"; ignored" msgstr "" -#: libs/ardour/session_state.cc:2028 +#: libs/ardour/session_state.cc:2029 msgid "cannot create peak file directory \"%1\"; ignored" msgstr "" -#: libs/ardour/session_state.cc:2167 libs/ardour/session_state.cc:2188 +#: libs/ardour/session_state.cc:2168 libs/ardour/session_state.cc:2189 msgid "Session: cannot create Playlist from XML description." msgstr "" -#: libs/ardour/session_state.cc:2227 +#: libs/ardour/session_state.cc:2228 msgid "Session: cannot create Named Selection from XML description." msgstr "" -#: libs/ardour/session_state.cc:2359 +#: libs/ardour/session_state.cc:2360 msgid "Unknown node \"%1\" found in Connections list from state file" msgstr "" -#: libs/ardour/session_state.cc:3196 +#: libs/ardour/session_state.cc:3197 msgid "cannot remove dead sound file %1 (%2)" msgstr "" -#: libs/ardour/session_time.cc:375 +#: libs/ardour/session_time.cc:374 msgid "Unknown JACK transport state %1 in sync callback" msgstr "" -#: libs/ardour/session_timefx.cc:76 +#: libs/ardour/session_timefx.cc:77 msgid "tempoize: error creating name for new audio file based on %1" msgstr "" -#: libs/ardour/session_timefx.cc:87 +#: libs/ardour/session_timefx.cc:88 msgid "tempoize: error creating new audio file %1 (%2)" msgstr "" -#: libs/ardour/session_timefx.cc:113 +#: libs/ardour/session_timefx.cc:114 msgid "tempoize: error reading data from %1" msgstr "" -#: libs/ardour/session_timefx.cc:126 libs/ardour/session_timefx.cc:138 +#: libs/ardour/session_timefx.cc:127 libs/ardour/session_timefx.cc:139 msgid "error writing tempo-adjusted data to %1" msgstr "" -#: libs/ardour/session_timefx.cc:144 +#: libs/ardour/session_timefx.cc:145 msgid "timefx code failure. please notify ardour-developers." msgstr "" -#: libs/ardour/session_transport.cc:116 +#: libs/ardour/session_transport.cc:117 msgid "Cannot loop - no loop range defined" msgstr "" -#: libs/ardour/session_transport.cc:478 +#: libs/ardour/session_transport.cc:479 msgid "" "Seamless looping cannot be supported while Ardour is using JACK transport.\n" "Recommend changing the configured options" msgstr "" -#: libs/ardour/session_transport.cc:754 +#: libs/ardour/session_transport.cc:755 msgid "" "Global varispeed cannot be supported while Ardour is connected to JACK " "transport control" msgstr "" -#: libs/ardour/session_transport.cc:954 +#: libs/ardour/session_transport.cc:955 msgid "please stop the transport before adjusting slave settings" msgstr "" -#: libs/ardour/session_transport.cc:990 +#: libs/ardour/session_transport.cc:991 msgid "No MTC port defined: MTC slaving is impossible." msgstr "" @@ -1816,185 +1816,185 @@ msgstr "" msgid "Big-endian (Mac)" msgstr "" -#: libs/ardour/sndfilesource.cc:145 +#: libs/ardour/sndfilesource.cc:147 msgid "FileSource: cannot get host information for BWF header (%1)" msgstr "" -#: libs/ardour/sndfilesource.cc:167 +#: libs/ardour/sndfilesource.cc:169 msgid "" "cannot set broadcast info for audio file %1 (%2); dropping broadcast info " "for this file" msgstr "" -#: libs/ardour/sndfilesource.cc:223 +#: libs/ardour/sndfilesource.cc:220 msgid "SndFileSource: cannot open file \"%1\" for %2 (%3)" msgstr "" -#: libs/ardour/sndfilesource.cc:229 +#: libs/ardour/sndfilesource.cc:226 msgid "" "SndFileSource: file only contains %1 channels; %2 is invalid as a channel " "number" msgstr "" -#: libs/ardour/sndfilesource.cc:306 +#: libs/ardour/sndfilesource.cc:327 msgid "SndFileSource: could not seek to frame %1 within %2 (%3)" msgstr "" -#: libs/ardour/sndfilesource.cc:357 +#: libs/ardour/sndfilesource.cc:378 #, fuzzy msgid "programming error: %1 %2" msgstr "ÏÛÉÂËÁ ÐÒÏÇÒÁÍÍÙ: " -#: libs/ardour/sndfilesource.cc:457 +#: libs/ardour/sndfilesource.cc:487 libs/ardour/sndfilesource.cc:533 msgid "" "cannot set broadcast info for audio file %1; Dropping broadcast info for " "this file" msgstr "" -#: libs/ardour/sndfilesource.cc:499 +#: libs/ardour/sndfilesource.cc:544 msgid "%1: cannot seek to %2" msgstr "" -#: libs/ardour/state_manager.cc:46 +#: libs/ardour/state_manager.cc:47 msgid "cleared history" msgstr "" -#: libs/ardour/state_manager.cc:59 +#: libs/ardour/state_manager.cc:60 msgid "" "programming error: illegal state ID (%1) passed to StateManager::set_state() " "(range = 0-%2)" msgstr "" -#: libs/ardour/stateful.cc:100 +#: libs/ardour/stateful.cc:102 msgid "Error: could not write %1" msgstr "" -#: libs/ardour/stateful.cc:114 +#: libs/ardour/stateful.cc:116 msgid "Could not understand XML file %1" msgstr "" -#: libs/ardour/tempo.cc:66 +#: libs/ardour/tempo.cc:67 msgid "TempoSection XML node has no \"start\" property" msgstr "" -#: libs/ardour/tempo.cc:74 +#: libs/ardour/tempo.cc:75 msgid "TempoSection XML node has an illegal \"start\" value" msgstr "" -#: libs/ardour/tempo.cc:81 +#: libs/ardour/tempo.cc:82 msgid "TempoSection XML node has no \"beats-per-minute\" property" msgstr "" -#: libs/ardour/tempo.cc:86 +#: libs/ardour/tempo.cc:87 msgid "TempoSection XML node has an illegal \"beats_per_minute\" value" msgstr "" -#: libs/ardour/tempo.cc:91 +#: libs/ardour/tempo.cc:92 msgid "TempoSection XML node has no \"movable\" property" msgstr "" -#: libs/ardour/tempo.cc:130 +#: libs/ardour/tempo.cc:131 msgid "MeterSection XML node has no \"start\" property" msgstr "" -#: libs/ardour/tempo.cc:138 +#: libs/ardour/tempo.cc:139 msgid "MeterSection XML node has an illegal \"start\" value" msgstr "" -#: libs/ardour/tempo.cc:145 +#: libs/ardour/tempo.cc:146 msgid "MeterSection XML node has no \"beats-per-bar\" property" msgstr "" -#: libs/ardour/tempo.cc:150 +#: libs/ardour/tempo.cc:151 msgid "MeterSection XML node has an illegal \"beats-per-bar\" value" msgstr "" -#: libs/ardour/tempo.cc:155 +#: libs/ardour/tempo.cc:156 msgid "MeterSection XML node has no \"note-type\" property" msgstr "" -#: libs/ardour/tempo.cc:160 +#: libs/ardour/tempo.cc:161 msgid "MeterSection XML node has an illegal \"note-type\" value" msgstr "" -#: libs/ardour/tempo.cc:165 +#: libs/ardour/tempo.cc:166 msgid "MeterSection XML node has no \"movable\" property" msgstr "" -#: libs/ardour/tempo.cc:258 +#: libs/ardour/tempo.cc:259 msgid "move metric" msgstr "" -#: libs/ardour/tempo.cc:329 +#: libs/ardour/tempo.cc:330 msgid "metric removed" msgstr "" -#: libs/ardour/tempo.cc:372 +#: libs/ardour/tempo.cc:373 msgid "add tempo" msgstr "" -#: libs/ardour/tempo.cc:401 +#: libs/ardour/tempo.cc:402 msgid "replace tempo" msgstr "" -#: libs/ardour/tempo.cc:434 +#: libs/ardour/tempo.cc:435 msgid "add meter" msgstr "" -#: libs/ardour/tempo.cc:462 +#: libs/ardour/tempo.cc:463 msgid "replaced meter" msgstr "" -#: libs/ardour/tempo.cc:482 libs/ardour/tempo.cc:498 +#: libs/ardour/tempo.cc:483 libs/ardour/tempo.cc:499 msgid "programming error: no tempo section in tempo map!" msgstr "" -#: libs/ardour/tempo.cc:537 +#: libs/ardour/tempo.cc:538 msgid "programming error: unhandled MetricSection type" msgstr "" -#: libs/ardour/tempo.cc:1225 libs/ardour/tempo.cc:1237 +#: libs/ardour/tempo.cc:1226 libs/ardour/tempo.cc:1238 msgid "Tempo map: could not set new state, restoring old one." msgstr "" -#: libs/ardour/tempo.cc:1261 +#: libs/ardour/tempo.cc:1262 msgid "load XML data" msgstr "" -#: libs/ardour/utils.cc:245 +#: libs/ardour/utils.cc:246 msgid "illegal or badly-formed string used for path (%1)" msgstr "" -#: libs/ardour/utils.cc:250 +#: libs/ardour/utils.cc:251 msgid "path (%1) is ambiguous" msgstr "" -#: libs/ardour/vst_plugin.cc:186 +#: libs/ardour/vst_plugin.cc:187 msgid "cannot create VST chunk directory: %1" msgstr "" -#: libs/ardour/vst_plugin.cc:194 +#: libs/ardour/vst_plugin.cc:195 msgid "cannot check VST chunk directory: %1" msgstr "" -#: libs/ardour/vst_plugin.cc:201 +#: libs/ardour/vst_plugin.cc:202 msgid "%1 exists but is not a directory" msgstr "" -#: libs/ardour/vst_plugin.cc:239 +#: libs/ardour/vst_plugin.cc:240 msgid "Bad node sent to VSTPlugin::set_state" msgstr "" -#: libs/ardour/vst_plugin.cc:342 libs/ardour/vst_plugin.cc:353 +#: libs/ardour/vst_plugin.cc:343 libs/ardour/vst_plugin.cc:354 msgid "no support for presets using chunks at this time" msgstr "" -#: libs/ardour/coreaudio_source.cc:98 +#: libs/ardour/coreaudiosource.cc:97 msgid "" "CoreAudioSource: file only contains %1 channels; %2 is invalid as a channel " "number" msgstr "" -#: libs/ardour/coreaudio_source.cc:163 +#: libs/ardour/coreaudiosource.cc:162 msgid "CoreAudioSource: could not seek to frame %1 within %2 (%3)" msgstr "" diff --git a/libs/ardour/redirect.cc b/libs/ardour/redirect.cc index 33fec5088f..9800c5b1a2 100644 --- a/libs/ardour/redirect.cc +++ b/libs/ardour/redirect.cc @@ -231,9 +231,9 @@ Redirect::state (bool full_state) string path; string legal_name; - snprintf (buf, sizeof(buf), "%" PRIu64, id()); path = _session.snap_name(); path += "-redirect-"; + id().print (buf); path += buf; path += ".automation"; diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc index 8c27a3bebc..f195e42148 100644 --- a/libs/ardour/region.cc +++ b/libs/ardour/region.cc @@ -53,7 +53,6 @@ Region::Region (jack_nframes_t start, jack_nframes_t length, const string& name, { /* basic Region constructor */ - _id = ARDOUR::new_id(); _flags = flags; _playlist = 0; _read_data_count = 0; @@ -76,7 +75,6 @@ Region::Region (const Region& other, jack_nframes_t offset, jack_nframes_t lengt { /* create a new Region from part of an existing one */ - _id = ARDOUR::new_id(); _frozen = 0; pending_changed = Change (0); _playlist = 0; @@ -102,7 +100,6 @@ Region::Region (const Region &other) { /* Pure copy constructor */ - _id = ARDOUR::new_id(); _frozen = 0; pending_changed = Change (0); _playlist = 0; @@ -130,7 +127,6 @@ Region::Region (const Region &other) Region::Region (const XMLNode& node) { - _id = 0; _frozen = 0; pending_changed = Change (0); _playlist = 0; @@ -844,7 +840,7 @@ Region::state (bool full_state) XMLNode *node = new XMLNode ("Region"); char buf[64]; - snprintf (buf, sizeof (buf), "%" PRIu64, _id); + _id.print (buf); node->add_property ("id", buf); node->add_property ("name", _name); snprintf (buf, sizeof (buf), "%u", _start); @@ -886,7 +882,7 @@ Region::set_state (const XMLNode& node) return -1; } - sscanf (prop->value().c_str(), "%" PRIu64, &_id); + _id = prop->value(); if ((prop = node.property ("name")) == 0) { error << _("Session: XMLNode describing a Region is incomplete (no name)") << endmsg; diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 8ad402c66a..fb5c175bba 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -54,16 +54,16 @@ uint32_t Route::order_key_cnt = 0; Route::Route (Session& sess, string name, int input_min, int input_max, int output_min, int output_max, Flag flg, Buffer::Type default_type) : IO (sess, name, input_min, input_max, output_min, output_max, default_type), _flags (flg), - _midi_solo_control (*this, MIDIToggleControl::SoloControl, _session.midi_port()), - _midi_mute_control (*this, MIDIToggleControl::MuteControl, _session.midi_port()) + _solo_control (*this, ToggleControllable::SoloControl), + _mute_control (*this, ToggleControllable::MuteControl) { init (); } Route::Route (Session& sess, const XMLNode& node) : IO (sess, "route"), - _midi_solo_control (*this, MIDIToggleControl::SoloControl, _session.midi_port()), - _midi_mute_control (*this, MIDIToggleControl::MuteControl, _session.midi_port()) + _solo_control (*this, ToggleControllable::SoloControl), + _mute_control (*this, ToggleControllable::MuteControl) { init (); set_state (node); @@ -106,8 +106,6 @@ Route::init () input_changed.connect (mem_fun (this, &Route::input_change_handler)); output_changed.connect (mem_fun (this, &Route::output_change_handler)); - - reset_midi_control (_session.midi_port(), _session.get_midi_control()); } Route::~Route () @@ -713,11 +711,8 @@ Route::set_solo (bool yn, void *src) if (_soloed != yn) { _soloed = yn; - solo_changed (src); /* EMIT SIGNAL */ - - if (_session.get_midi_feedback()) { - _midi_solo_control.send_feedback (_soloed); - } + solo_changed (src); /* EMIT SIGNAL */ + _solo_control.Changed (); /* EMIT SIGNAL */ } } @@ -754,9 +749,7 @@ Route::set_mute (bool yn, void *src) _muted = yn; mute_changed (src); /* EMIT SIGNAL */ - if (_session.get_midi_feedback()) { - _midi_mute_control.send_feedback (_muted); - } + _mute_control.Changed (); /* EMIT SIGNAL */ Glib::Mutex::Lock lm (declick_lock); desired_mute_gain = (yn?0.0f:1.0f); @@ -1367,26 +1360,6 @@ Route::state(bool full_state) node->add_property("mix-group", _mix_group->name()); } - /* MIDI control */ - - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte additional; - XMLNode* midi_node = 0; - XMLNode* child; - - midi_node = node->add_child ("MIDI"); - - if (_midi_mute_control.get_control_info (chn, ev, additional)) { - child = midi_node->add_child ("mute"); - set_midi_node_info (child, ev, chn, additional); - } - if (_midi_solo_control.get_control_info (chn, ev, additional)) { - child = midi_node->add_child ("solo"); - set_midi_node_info (child, ev, chn, additional); - } - - string order_string; OrderKeys::iterator x = order_keys.begin(); @@ -1531,8 +1504,6 @@ Route::set_state (const XMLNode& node) XMLNode *child; XMLPropertyList plist; const XMLProperty *prop; - XMLNodeList midi_kids; - if (node.name() != "Route"){ error << string_compose(_("Bad node sent to Route::set_state() [%1]"), node.name()) << endmsg; @@ -1726,45 +1697,6 @@ Route::set_state (const XMLNode& node) } } - midi_kids = node.children ("MIDI"); - - for (niter = midi_kids.begin(); niter != midi_kids.end(); ++niter) { - - XMLNodeList kids; - XMLNodeConstIterator miter; - XMLNode* child; - - kids = (*niter)->children (); - - for (miter = kids.begin(); miter != kids.end(); ++miter) { - - child =* miter; - - MIDI::eventType ev = MIDI::on; /* initialize to keep gcc happy */ - MIDI::byte additional = 0; /* ditto */ - MIDI::channel_t chn = 0; /* ditto */ - - if (child->name() == "mute") { - - if (get_midi_node_info (child, ev, chn, additional)) { - _midi_mute_control.set_control_type (chn, ev, additional); - } else { - error << string_compose(_("MIDI mute control specification for %1 is incomplete, so it has been ignored"), _name) << endmsg; - } - } - else if (child->name() == "solo") { - - if (get_midi_node_info (child, ev, chn, additional)) { - _midi_solo_control.set_control_type (chn, ev, additional); - } else { - error << string_compose(_("MIDI mute control specification for %1 is incomplete, so it has been ignored"), _name) << endmsg; - } - } - - } - } - - return 0; } @@ -2221,67 +2153,6 @@ Route::has_external_redirects () const } void -Route::reset_midi_control (MIDI::Port* port, bool on) -{ - MIDI::channel_t chn; - MIDI::eventType ev; - MIDI::byte extra; - - for (RedirectList::iterator i = _redirects.begin(); i != _redirects.end(); ++i) { - (*i)->reset_midi_control (port, on); - } - - IO::reset_midi_control (port, on); - - _midi_solo_control.get_control_info (chn, ev, extra); - if (!on) { - chn = -1; - } - _midi_solo_control.midi_rebind (port, chn); - - _midi_mute_control.get_control_info (chn, ev, extra); - if (!on) { - chn = -1; - } - _midi_mute_control.midi_rebind (port, chn); -} - -void -Route::send_all_midi_feedback () -{ - if (_session.get_midi_feedback()) { - - { - Glib::RWLock::ReaderLock lm (redirect_lock); - for (RedirectList::iterator i = _redirects.begin(); i != _redirects.end(); ++i) { - (*i)->send_all_midi_feedback (); - } - } - - IO::send_all_midi_feedback(); - - _midi_solo_control.send_feedback (_soloed); - _midi_mute_control.send_feedback (_muted); - } -} - -MIDI::byte* -Route::write_midi_feedback (MIDI::byte* buf, int32_t& bufsize) -{ - buf = _midi_solo_control.write_feedback (buf, bufsize, _soloed); - buf = _midi_mute_control.write_feedback (buf, bufsize, _muted); - - { - Glib::RWLock::ReaderLock lm (redirect_lock); - for (RedirectList::iterator i = _redirects.begin(); i != _redirects.end(); ++i) { - buf = (*i)->write_midi_feedback (buf, bufsize); - } - } - - return IO::write_midi_feedback (buf, bufsize); -} - -void Route::flush_redirects () { /* XXX shouldn't really try to take this lock, since @@ -2351,106 +2222,46 @@ Route::automation_snapshot (jack_nframes_t now) } } -Route::MIDIToggleControl::MIDIToggleControl (Route& s, ToggleType tp, MIDI::Port* port) - : MIDI::Controllable (port, true), route (s), type(tp), setting(false) +Route::ToggleControllable::ToggleControllable (Route& s, ToggleType tp) + : route (s), type(tp) { - last_written = false; /* XXX need a good out-of-bound-value */ + } void -Route::MIDIToggleControl::set_value (float val) +Route::ToggleControllable::set_value (float val) { - MIDI::eventType et; - MIDI::channel_t chn; - MIDI::byte additional; - - get_control_info (chn, et, additional); - - setting = true; - -#ifdef HOLD_TOGGLE_VALUES - if (et == MIDI::off || et == MIDI::on) { - - /* literal toggle */ - - switch (type) { - case MuteControl: - route.set_mute (!route.muted(), this); - break; - case SoloControl: - route.set_solo (!route.soloed(), this); - break; - default: - break; - } - - } else { -#endif - - /* map full control range to a boolean */ - - bool bval = ((val >= 0.5f) ? true: false); - - switch (type) { - case MuteControl: - route.set_mute (bval, this); - break; - case SoloControl: - route.set_solo (bval, this); - break; - default: - break; - } - -#ifdef HOLD_TOGGLE_VALUES + bool bval = ((val >= 0.5f) ? true: false); + + switch (type) { + case MuteControl: + route.set_mute (bval, this); + break; + case SoloControl: + route.set_solo (bval, this); + break; + default: + break; } -#endif - - setting = false; } -void -Route::MIDIToggleControl::send_feedback (bool value) +float +Route::ToggleControllable::get_value (void) const { - - if (!setting && get_midi_feedback()) { - MIDI::byte val = (MIDI::byte) (value ? 127: 0); - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - MIDI::EventTwoBytes data; - - if (get_control_info (ch, ev, additional)) { - data.controller_number = additional; - data.value = val; - last_written = value; - - route._session.send_midi_message (get_port(), ev, ch, data); - } - } + float val = 0.0f; -} - -MIDI::byte* -Route::MIDIToggleControl::write_feedback (MIDI::byte* buf, int32_t& bufsize, bool val, bool force) -{ - if (get_midi_feedback() && bufsize > 2) { - MIDI::channel_t ch = 0; - MIDI::eventType ev = MIDI::none; - MIDI::byte additional = 0; - - if (get_control_info (ch, ev, additional)) { - if (val != last_written || force) { - *buf++ = (0xF0 & ev) | (0xF & ch); - *buf++ = additional; /* controller number */ - *buf++ = (MIDI::byte) (val ? 127 : 0); - bufsize -= 3; - last_written = val; - } - } + switch (type) { + case MuteControl: + val = route.muted() ? 1.0f : 0.0f; + break; + case SoloControl: + val = route.soloed() ? 1.0f : 0.0f; + break; + default: + break; } - return buf; + return val; } void diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 2fcd09a31c..c115870db0 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -95,6 +95,8 @@ Session::mix_buffers_no_gain_t Session::mix_buffers_no_gain = 0; sigc::signal<int> Session::AskAboutPendingState; sigc::signal<void> Session::SMPTEOffsetChanged; +sigc::signal<void> Session::SendFeedback; + int Session::find_session (string str, string& path, string& snapshot, bool& isnew) @@ -445,7 +447,7 @@ Session::~Session () tmp =i; ++tmp; - delete (*i).second; + delete i->second; i = tmp; } @@ -484,7 +486,7 @@ Session::~Session () tmp = i; ++tmp; - delete (*i).second; + delete i->second; i = tmp; } @@ -2502,7 +2504,7 @@ Session::diskstream_by_name (string name) } Diskstream * -Session::diskstream_by_id (id_t id) +Session::diskstream_by_id (const PBD::ID& id) { Glib::RWLock::ReaderLock lm (diskstream_lock); @@ -2551,7 +2553,7 @@ Session::new_region_name (string old) sbuf = buf; for (i = audio_regions.begin(); i != audio_regions.end(); ++i) { - if ((*i).second->name() == sbuf) { + if (i->second->name() == sbuf) { break; } } @@ -2616,7 +2618,7 @@ Session::region_name (string& result, string base, bool newlevel) const name_taken = false; for (AudioRegionList::const_iterator i = audio_regions.begin(); i != audio_regions.end(); ++i) { - if ((*i).second->name() == result) { + if (i->second->name() == result) { name_taken = true; break; } @@ -2661,8 +2663,8 @@ Session::add_region (Region* region) if (x == audio_regions.end()) { - pair<AudioRegionList::key_type, AudioRegionList::mapped_type> entry; - + pair<AudioRegionList::key_type,AudioRegionList::mapped_type> entry; + entry.first = region->id(); entry.second = ar; @@ -2719,16 +2721,18 @@ Session::remove_region (Region* region) AudioRegionList::iterator i; AudioRegion* ar = 0; bool removed = false; - + { Glib::Mutex::Lock lm (region_lock); - if ((ar = dynamic_cast<AudioRegion*> (region)) != 0) { + if ((ar = dynamic_cast<AudioRegion*> (region)) != 0) { if ((i = audio_regions.find (region->id())) != audio_regions.end()) { audio_regions.erase (i); removed = true; - } + } + } else { + fatal << _("programming error: ") << X_("unknown region type passed to Session::remove_region()") << endmsg; @@ -2756,7 +2760,7 @@ Session::find_whole_file_parent (AudioRegion& child) for (i = audio_regions.begin(); i != audio_regions.end(); ++i) { - region = (*i).second; + region = i->second; if (region->whole_file()) { @@ -2860,12 +2864,12 @@ Session::add_audio_source (AudioSource* source) { pair<AudioSourceList::key_type, AudioSourceList::mapped_type> entry; - { - Glib::Mutex::Lock lm (audio_source_lock); + { + Glib::Mutex::Lock lm (audio_source_lock); entry.first = source->id(); entry.second = source; audio_sources.insert (entry); - } + } source->GoingAway.connect (mem_fun (this, &Session::remove_source)); set_dirty(); @@ -2883,7 +2887,7 @@ Session::remove_source (Source* source) if ((i = audio_sources.find (source->id())) != audio_sources.end()) { audio_sources.erase (i); - } + } } if (!_state_of_the_state & InCleanup) { @@ -2899,23 +2903,19 @@ Session::remove_source (Source* source) } Source * -Session::get_source (ARDOUR::id_t id) +Session::source_by_id (const PBD::ID& id) { Glib::Mutex::Lock lm (audio_source_lock); AudioSourceList::iterator i; Source* source = 0; if ((i = audio_sources.find (id)) != audio_sources.end()) { - source = (*i).second; - } - - if (source) { - return source; + source = i->second; } /* XXX search MIDI or other searches here */ - return 0; + return source; } string diff --git a/libs/ardour/session_midi.cc b/libs/ardour/session_midi.cc index bd68d24517..f7f1d79bbe 100644 --- a/libs/ardour/session_midi.cc +++ b/libs/ardour/session_midi.cc @@ -112,13 +112,6 @@ Session::set_midi_control (bool yn) midi_control = yn; set_dirty(); poke_midi_thread (); - - if (_midi_port) { - Glib::RWLock::ReaderLock guard (route_lock); - for (RouteList::iterator i = routes.begin(); i != routes.end(); ++i) { - (*i)->reset_midi_control (_midi_port, midi_control); - } - } #endif ControlChanged (MidiControl); /* EMIT SIGNAL */ } diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc index 9e3809f6b8..b8929d3eca 100644 --- a/libs/ardour/session_process.cc +++ b/libs/ardour/session_process.cc @@ -48,8 +48,6 @@ using namespace std; void Session::process (jack_nframes_t nframes) { - //cerr << "CYCLE START " << _transport_frame << "-------------------" << endl; - MIDI::Manager::instance()->cycle_start(nframes); if (synced_to_jack() && waiting_to_start) { @@ -67,8 +65,8 @@ Session::process (jack_nframes_t nframes) (this->*process_function) (nframes); MIDI::Manager::instance()->cycle_end(); - - //cerr << "CYCLE END " << _transport_frame << "-----------------------" << endl; + + SendFeedback (); /* EMIT SIGNAL */ } void diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index a8cbd7bd78..78d8aa6ac7 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -275,6 +275,9 @@ Session::first_stage_init (string fullpath, string snapshot_name) Diskstream::DiskstreamCreated.connect (mem_fun (*this, &Session::add_diskstream)); NamedSelection::NamedSelectionCreated.connect (mem_fun (*this, &Session::add_named_selection)); + Controllable::Created.connect (mem_fun (*this, &Session::add_controllable)); + Controllable::GoingAway.connect (mem_fun (*this, &Session::remove_controllable)); + IO::MoreOutputs.connect (mem_fun (*this, &Session::ensure_passthru_buffers)); /* stop IO objects from doing stuff until we're ready for them */ @@ -639,7 +642,7 @@ Session::load_diskstreams (const XMLNode& node) } catch (failed_constructor& err) { - error << _("Session: could not load diskstream via XML state") << endmsg; + error << _("Session: could not load diskstream via XML state") << endmsg; return -1; } } @@ -1336,6 +1339,13 @@ Session::state(bool full_state) } } + /* save the ID counter */ + + snprintf (buf, sizeof (buf), "%" PRIu64, ID::counter()); + node->add_property ("id-counter", buf); + + /* various options */ + node->add_child_nocopy (get_options()); child = node->add_child ("Sources"); @@ -1349,7 +1359,7 @@ Session::state(bool full_state) AudioFileSource* fs; - if ((fs = dynamic_cast<AudioFileSource*> ((*siter).second)) != 0) { + if ((fs = dynamic_cast<AudioFileSource*> (siter->second)) != 0) { DestructiveFileSource* dfs = dynamic_cast<DestructiveFileSource*> (fs); /* destructive file sources are OK if they are empty, because @@ -1363,7 +1373,7 @@ Session::state(bool full_state) } } - child->add_child_nocopy ((*siter).second->get_state()); + child->add_child_nocopy (siter->second->get_state()); } } @@ -1376,7 +1386,7 @@ Session::state(bool full_state) /* only store regions not attached to playlists */ - if ((*i).second->playlist() == 0) { + if (i->second->playlist() == 0) { child->add_child_nocopy (i->second->state (true)); } } @@ -1495,7 +1505,7 @@ Session::set_state (const XMLNode& node) _state_of_the_state = StateOfTheState (_state_of_the_state|CannotSave); - if (node.name() != "Session"){ + if (node.name() != X_("Session")){ fatal << _("programming error: Session: incorrect XML node sent to set_state()") << endmsg; return -1; } @@ -1505,6 +1515,21 @@ Session::set_state (const XMLNode& node) if ((prop = node.property ("name")) != 0) { _name = prop->value (); } + + if ((prop = node.property (X_("id-counter"))) != 0) { + uint64_t x; + sscanf (prop->value().c_str(), "%" PRIu64, &x); + ID::init_counter (x); + } else { + /* old sessions used a timebased counter, so fake + the startup ID counter based on a standard + timestamp. + */ + time_t now; + time (&now); + ID::init_counter (now); + } + IO::disable_ports (); IO::disable_connecting (); @@ -1748,12 +1773,10 @@ Session::load_regions (const XMLNode& node) set_dirty(); for (niter = nlist.begin(); niter != nlist.end(); ++niter) { - if ((region = XMLRegionFactory (**niter, false)) == 0) { error << _("Session: cannot create Region from XML description.") << endmsg; } } - return 0; } @@ -1761,7 +1784,6 @@ AudioRegion * Session::XMLRegionFactory (const XMLNode& node, bool full) { const XMLProperty* prop; - id_t s_id; Source* source; AudioSource* as; AudioRegion::SourceList sources; @@ -1784,9 +1806,9 @@ Session::XMLRegionFactory (const XMLNode& node, bool full) } } - sscanf (prop->value().c_str(), "%" PRIu64, &s_id); + PBD::ID s_id (prop->value()); - if ((source = get_source (s_id)) == 0) { + if ((source = source_by_id (s_id)) == 0) { error << string_compose(_("Session: XMLNode describing a AudioRegion references an unknown source id =%1"), s_id) << endmsg; return 0; } @@ -1804,23 +1826,23 @@ Session::XMLRegionFactory (const XMLNode& node, bool full) for (uint32_t n=1; n < nchans; ++n) { snprintf (buf, sizeof(buf), X_("source-%d"), n); if ((prop = node.property (buf)) != 0) { - sscanf (prop->value().c_str(), "%" PRIu64, &s_id); - if ((source = get_source (s_id)) == 0) { - error << string_compose(_("Session: XMLNode describing a AudioRegion references an unknown source id =%1"), s_id) << endmsg; + PBD::ID id2 (prop->value()); + + if ((source = source_by_id (id2)) == 0) { + error << string_compose(_("Session: XMLNode describing a AudioRegion references an unknown source id =%1"), id2) << endmsg; return 0; } as = dynamic_cast<AudioSource*>(source); if (!as) { - error << string_compose(_("Session: XMLNode describing a AudioRegion references a non-audio source id =%1"), s_id) << endmsg; + error << string_compose(_("Session: XMLNode describing a AudioRegion references a non-audio source id =%1"), id2) << endmsg; return 0; } sources.push_back (as); } } - try { return new AudioRegion (sources, node); } @@ -1838,7 +1860,7 @@ Session::get_sources_as_xml () Glib::Mutex::Lock lm (audio_source_lock); for (AudioSourceList::iterator i = audio_sources.begin(); i != audio_sources.end(); ++i) { - node->add_child_nocopy ((*i).second->get_state()); + node->add_child_nocopy (i->second->get_state()); } /* XXX get MIDI and other sources here */ @@ -2964,7 +2986,7 @@ Session::cleanup_sources (Session::cleanup_report& rep) capture files. */ - if ((*i).second->use_cnt() == 0 && (*i).second->length() > 0) { + if (i->second->use_cnt() == 0 && i->second->length() > 0) { dead_sources.push_back (i->second); /* remove this source from our own list to avoid us @@ -2991,7 +3013,7 @@ Session::cleanup_sources (Session::cleanup_report& rep) tmp = r; ++tmp; - ar = (*r).second; + ar = r->second; for (uint32_t n = 0; n < ar->n_channels(); ++n) { if (&ar->source (n) == (*i)) { @@ -3044,7 +3066,7 @@ Session::cleanup_sources (Session::cleanup_report& rep) for (AudioSourceList::iterator i = audio_sources.begin(); i != audio_sources.end(); ++i) { AudioFileSource* fs; - if ((fs = dynamic_cast<AudioFileSource*> ((*i).second)) != 0) { + if ((fs = dynamic_cast<AudioFileSource*> (i->second)) != 0) { all_sources.insert (fs->path()); } } @@ -3253,3 +3275,30 @@ Session::set_clean () } } +void +Session::add_controllable (Controllable* c) +{ + Glib::Mutex::Lock lm (controllables_lock); + controllables.push_back (c); +} + +void +Session::remove_controllable (Controllable* c) +{ + Glib::Mutex::Lock lm (controllables_lock); + controllables.remove (c); +} + +Controllable* +Session::controllable_by_id (const PBD::ID& id) +{ + Glib::Mutex::Lock lm (controllables_lock); + + for (Controllables::iterator i = controllables.begin(); i != controllables.end(); ++i) { + if ((*i)->id() == id) { + return *i; + } + } + + return 0; +} diff --git a/libs/ardour/session_time.cc b/libs/ardour/session_time.cc index 494a78ae88..945dfbe48b 100644 --- a/libs/ardour/session_time.cc +++ b/libs/ardour/session_time.cc @@ -32,7 +32,6 @@ #include <ardour/audioengine.h> #include <ardour/session.h> #include <ardour/tempo.h> -#include <ardour/audiofilesource.h> #include "i18n.h" @@ -97,8 +96,6 @@ Session::set_smpte_offset (jack_nframes_t off) _smpte_offset = off; last_smpte_valid = false; - AudioFileSource::set_header_position_offset (_smpte_offset, _smpte_offset_negative); - SMPTEOffsetChanged (); /* EMIT SIGNAL */ } @@ -108,8 +105,6 @@ Session::set_smpte_offset_negative (bool neg) _smpte_offset_negative = neg; last_smpte_valid = false; - AudioFileSource::set_header_position_offset (_smpte_offset, _smpte_offset_negative); - SMPTEOffsetChanged (); /* EMIT SIGNAL */ } diff --git a/libs/ardour/sndfilesource.cc b/libs/ardour/sndfilesource.cc index 443a24e3c2..5936f62570 100644 --- a/libs/ardour/sndfilesource.cc +++ b/libs/ardour/sndfilesource.cc @@ -156,6 +156,8 @@ SndFileSource::SndFileSource (string idstr, SampleFormat sfmt, HeaderFormat hf, utsinfo.version); _broadcast_info->version = 1; + _broadcast_info->time_reference_low = 0; + _broadcast_info->time_reference_high = 0; /* XXX do something about this field */ @@ -183,6 +185,7 @@ SndFileSource::SndFileSource (string idstr, SampleFormat sfmt, HeaderFormat hf, } AudioSourceCreated (this); /* EMIT SIGNAL */ + } void @@ -246,21 +249,19 @@ SndFileSource::open () _flags = Flag (_flags & ~Broadcast); } + set_timeline_position (header_position_offset); + } else { /* XXX 64 bit alert: when JACK switches to a 64 bit frame count, this needs to use the high bits of the time reference. */ - - set_timeline_position (_broadcast_info->time_reference_low); + + set_timeline_position ( _broadcast_info->time_reference_low ); } if (writable()) { sf_command (sf, SFC_SET_UPDATE_HEADER_AUTO, 0, SF_FALSE); - - /* update header if header offset info changes */ - - AudioFileSource::HeaderPositionOffsetChanged.connect (mem_fun (*this, &AudioFileSource::handle_header_position_change)); } return 0; @@ -280,7 +281,7 @@ SndFileSource::~SndFileSource () } if (_broadcast_info) { - free (_broadcast_info); + delete _broadcast_info; } } @@ -472,7 +473,7 @@ SndFileSource::setup_broadcast_info (jack_nframes_t when, struct tm& now, time_t now.tm_mon, now.tm_mday); - snprintf (_broadcast_info->origination_time, sizeof (_broadcast_info->origination_time), "%02d-%02d-%02d", + snprintf (_broadcast_info->origination_time, sizeof (_broadcast_info->origination_time), "%02d:%02d:%02d", now.tm_hour, now.tm_min, now.tm_sec); @@ -495,33 +496,12 @@ SndFileSource::setup_broadcast_info (jack_nframes_t when, struct tm& now, time_t void SndFileSource::set_header_timeline_position () { - uint64_t pos; - if (!(_flags & Broadcast)) { return; } - _broadcast_info->time_reference_high = 0; - - if (header_position_negative) { - - if (ULONG_LONG_MAX - header_position_offset < timeline_position) { - pos = ULONG_LONG_MAX; // impossible - } else { - pos = timeline_position + header_position_offset; - } - - } else { - - if (timeline_position < header_position_offset) { - pos = 0; - } else { - pos = timeline_position - header_position_offset; - } - } - - _broadcast_info->time_reference_high = (pos >> 32); - _broadcast_info->time_reference_low = (pos & 0xffffffff); + _broadcast_info->time_reference_high = (timeline_position >> 32); + _broadcast_info->time_reference_low = (timeline_position & 0xffffffff); if (sf_command (sf, SFC_SET_BROADCAST_INFO, _broadcast_info, sizeof (*_broadcast_info)) != SF_TRUE) { error << string_compose (_("cannot set broadcast info for audio file %1; Dropping broadcast info for this file"), _path) << endmsg; @@ -545,3 +525,9 @@ SndFileSource::write_float (Sample* data, jack_nframes_t frame_pos, jack_nframes return cnt; } + +jack_nframes_t +SndFileSource::natural_position() const +{ + return timeline_position; +} diff --git a/libs/ardour/source.cc b/libs/ardour/source.cc index 0d32ea4a21..eebc64d463 100644 --- a/libs/ardour/source.cc +++ b/libs/ardour/source.cc @@ -45,7 +45,6 @@ using namespace ARDOUR; Source::Source (string name) { _name = name; - _id = ARDOUR::new_id(); _use_cnt = 0; _timestamp = 0; } @@ -71,7 +70,7 @@ Source::get_state () char buf[64]; node->add_property ("name", _name); - snprintf (buf, sizeof(buf)-1, "%" PRIu64, _id); + _id.print (buf); node->add_property ("id", buf); if (_timestamp != 0) { @@ -94,7 +93,7 @@ Source::set_state (const XMLNode& node) } if ((prop = node.property ("id")) != 0) { - sscanf (prop->value().c_str(), "%" PRIu64, &_id); + _id = prop->value (); } else { return -1; } diff --git a/libs/ardour/stateful.cc b/libs/ardour/stateful.cc deleted file mode 100644 index b8e301b273..0000000000 --- a/libs/ardour/stateful.cc +++ /dev/null @@ -1,135 +0,0 @@ -/* - Copyright (C) 2000-2001 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. - - $Id$ -*/ - -#include <cstdio> -#include <unistd.h> - -#include <ardour/stateful.h> -#include <ardour/utils.h> -#include <pbd/xml++.h> - -#include "i18n.h" - -using namespace PBD; - -Stateful::Stateful () -{ - _extra_xml = 0; - _instant_xml = 0; -} - -Stateful::~Stateful () -{ - // Do not delete _extra_xml. The use of add_child_nocopy() - // means it needs to live on indefinately. - delete _instant_xml; -} - -void -Stateful::add_extra_xml (XMLNode& node) -{ - if (_extra_xml == 0) { - _extra_xml = new XMLNode ("extra"); - } - - _extra_xml->remove_nodes (node.name()); - _extra_xml->add_child_nocopy (node); -} - -XMLNode * -Stateful::extra_xml (const string& str) -{ - if (_extra_xml == 0) { - return 0; - } - - const XMLNodeList& nlist = _extra_xml->children(); - XMLNodeConstIterator i; - - for (i = nlist.begin(); i != nlist.end(); ++i) { - if ((*i)->name() == str) { - return (*i); - } - } - - return 0; -} - -void -Stateful::add_instant_xml (XMLNode& node, const string& dir) -{ - if (_instant_xml == 0) { - _instant_xml = new XMLNode ("instant"); - } - - _instant_xml->remove_nodes_and_delete (node.name()); - _instant_xml->add_child_copy (node); - - XMLTree tree; - tree.set_filename(dir+"/instant.xml"); - - /* Important: the destructor for an XMLTree deletes - all of its nodes, starting at _root. We therefore - cannot simply hand it our persistent _instant_xml - node as its _root, because we will lose it whenever - the Tree goes out of scope. - - So instead, copy the _instant_xml node (which does - a deep copy), and hand that to the tree. - */ - - XMLNode* copy = new XMLNode (*_instant_xml); - tree.set_root (copy); - - if (!tree.write()) { - error << string_compose(_("Error: could not write %1"), dir+"/instant.xml") << endmsg; - } -} - -XMLNode * -Stateful::instant_xml (const string& str, const string& dir) -{ - if (_instant_xml == 0) { - string instant_file = dir + "/instant.xml"; - if (access(instant_file.c_str(), F_OK) == 0) { - XMLTree tree; - if (tree.read(dir+"/instant.xml")) { - _instant_xml = new XMLNode(*(tree.root())); - } else { - warning << string_compose(_("Could not understand XML file %1"), instant_file) << endmsg; - return 0; - } - } else { - return 0; - } - } - - const XMLNodeList& nlist = _instant_xml->children(); - XMLNodeConstIterator i; - - for (i = nlist.begin(); i != nlist.end(); ++i) { - if ((*i)->name() == str) { - return (*i); - } - } - - return 0; -} - diff --git a/libs/ardour/utils.cc b/libs/ardour/utils.cc index 9adc7c72cd..f021639028 100644 --- a/libs/ardour/utils.cc +++ b/libs/ardour/utils.cc @@ -186,15 +186,6 @@ touch_file (string path) return 1; } -uint32_t long -get_uid() -{ - struct timeval tv; - gettimeofday(&tv, 0); - - return (uint32_t long) tv.tv_sec * 1000000 + tv.tv_usec; -} - string placement_as_string (Placement p) { diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc index 80c36dab95..352b887e13 100644 --- a/libs/ardour/vst_plugin.cc +++ b/libs/ardour/vst_plugin.cc @@ -41,8 +41,6 @@ #include <vst/aeffectx.h> -#include <midi++/manager.h> - #include <ardour/ardour.h> #include <ardour/session.h> #include <ardour/audioengine.h> @@ -81,7 +79,7 @@ VSTPlugin::VSTPlugin (AudioEngine& e, Session& session, FSTHandle* h) _plugin->dispatcher (_plugin, effSetProgram, 0, 0, NULL, 0.0f); - Plugin::setup_midi_controls (); + Plugin::setup_controls (); } VSTPlugin::VSTPlugin (const VSTPlugin &other) @@ -94,7 +92,7 @@ VSTPlugin::VSTPlugin (const VSTPlugin &other) } _plugin = _fst->plugin; - Plugin::setup_midi_controls (); + Plugin::setup_controls (); } VSTPlugin::~VSTPlugin () @@ -133,13 +131,6 @@ VSTPlugin::set_parameter (uint32_t which, float val) { _plugin->setParameter (_plugin, which, val); ParameterChanged (which, val); /* EMIT SIGNAL */ - - if (session().get_midi_feedback()) { - - if (which < parameter_count() && midi_controls[which]) { - midi_controls[which]->send_feedback (val); - } - } } float |