Make import GUI report if you are importing a file of a name that
[ardour.git] / libs / ardour / ardour / route.h
index d4f94ed7445fe3d3956b8b2afe8f66c3b1f1e009..49ced51f88dbfce75e2c33b3485261e3ff822501 100644 (file)
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #ifndef __ardour_route_h__
@@ -75,6 +74,8 @@ class Route : public IO
        Route (Session&, const XMLNode&, DataType default_type = DataType::AUDIO);
        virtual ~Route();
 
+       static std::string ensure_track_or_route_name(std::string, Session &);
+
        std::string comment() { return _comment; }
        void set_comment (std::string str, void *src);
 
@@ -110,9 +111,6 @@ class Route : public IO
        void set_gain (gain_t val, void *src);
        void inc_gain (gain_t delta, void *src);
 
-       bool active() const { return _active; }
-       void set_active (bool yn);
-
        void set_solo (bool yn, void *src);
        bool soloed() const { return _soloed; }
 
@@ -121,12 +119,17 @@ class Route : public IO
 
        void set_mute (bool yn, void *src);
        bool muted() const { return _muted; }
+       bool solo_muted() const { return desired_solo_gain == 0.0; }
 
        void set_mute_config (mute_type, bool, void *src);
        bool get_mute_config (mute_type);
 
        void set_phase_invert (bool yn, void *src);
        bool phase_invert() const { return _phase_invert; }
+
+       void set_denormal_protection (bool yn, void *src);
+       bool denormal_protection() const { return _denormal_protection; }
+
        
        void       set_edit_group (RouteGroup *, void *);
        void       drop_edit_group (void *);
@@ -169,9 +172,9 @@ class Route : public IO
        int copy_redirects (const Route&, Placement, uint32_t* err_streams = 0);
        int sort_redirects (uint32_t* err_streams = 0);
 
-       void clear_redirects (void *src);
+       void clear_redirects (Placement, void *src);
        void all_redirects_flip();
-       void all_redirects_active (bool state);
+       void all_redirects_active (Placement, bool state);
 
        virtual nframes_t update_total_latency();
        nframes_t signal_latency() const { return _own_latency; }
@@ -189,7 +192,6 @@ class Route : public IO
        sigc::signal<void,void*> record_enable_changed;
        sigc::signal<void,void*> edit_group_changed;
        sigc::signal<void,void*> mix_group_changed;
-       sigc::signal<void>       active_changed;
        sigc::signal<void,void*> meter_change;
 
        /* gui's call this for their own purposes. */
@@ -232,13 +234,16 @@ class Route : public IO
                return _mute_control;
        }
        
-       void automation_snapshot (nframes_t now);
+       void automation_snapshot (nframes_t now, bool force);
        void protect_automation ();
        
        void set_remote_control_id (uint32_t id);
        uint32_t remote_control_id () const;
        sigc::signal<void> RemoteControlIDChanged;
 
+       void sync_order_keys ();
+       static sigc::signal<void> SyncOrderKeys;
+
   protected:
        friend class Session;
 
@@ -256,11 +261,10 @@ class Route : public IO
 
        bool                     _muted : 1;
        bool                     _soloed : 1;
-       bool                     _solo_muted : 1;
        bool                     _solo_safe : 1;
        bool                     _phase_invert : 1;
+       bool                     _denormal_protection : 1;
        bool                     _recordable : 1;
-       bool                     _active : 1;
        bool                     _mute_affects_pre_fader : 1;
        bool                     _mute_affects_post_fader : 1;
        bool                     _mute_affects_control_outs : 1;
@@ -315,7 +319,8 @@ class Route : public IO
        uint32_t pans_required() const;
        uint32_t n_process_buffers ();
 
-       virtual int _set_state (const XMLNode&, bool call_base);
+       virtual int  _set_state (const XMLNode&, bool call_base);
+       virtual void _set_redirect_states (const XMLNodeList&);
 
   private:
        void init ();