'libs/ardour' - Non-visibility stuff changed for MSVC (mostly alterations to #include...
[ardour.git] / libs / ardour / ardour / session.h
index d8004e850598455e3d200d585278c8387381d989..71703b5c36194e82c22c0b87583c6a3b6ddd3e3f 100644 (file)
@@ -36,6 +36,8 @@
 
 #include <glibmm/threads.h>
 
+#include "ltc/ltc.h"
+
 #include "pbd/error.h"
 #include "pbd/event_loop.h"
 #include "pbd/rcu.h"
@@ -48,7 +50,6 @@
 #include "midi++/types.h"
 
 #include "timecode/time.h"
-#include "ltc/ltc.h"
 
 #include "ardour/ardour.h"
 #include "ardour/chan_count.h"
@@ -140,7 +141,7 @@ class WindowsVSTPlugin;
 
 extern void setup_enum_writer ();
 
-class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionList, public SessionEventManager
+class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionList, public SessionEventManager
 {
   public:
        enum RecordState {
@@ -237,12 +238,13 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
                return _bundles.reader ();
        }
 
-       struct RoutePublicOrderSorter {
+       struct LIBARDOUR_API RoutePublicOrderSorter {
                bool operator() (boost::shared_ptr<Route>, boost::shared_ptr<Route> b);
        };
 
+       void set_order_hint (uint32_t order_hint) {_order_hint = order_hint;};
         void notify_remote_id_change ();
-        void sync_order_keys (RouteSortOrderKey);
+        void sync_order_keys ();
 
        template<class T> void foreach_route (T *obj, void (T::*func)(Route&));
        template<class T> void foreach_route (T *obj, void (T::*func)(boost::shared_ptr<Route>));
@@ -502,7 +504,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
        void timecode_time_subframes (framepos_t when, Timecode::Time&);
 
        void timecode_duration (framecnt_t, Timecode::Time&) const;
-       void timecode_duration_string (char *, framecnt_t) const;
+        void timecode_duration_string (char *, size_t len, framecnt_t) const;
 
        framecnt_t convert_to_frames (AnyTime const & position);
        framecnt_t any_duration_to_frames (framepos_t position, AnyTime const & duration);
@@ -881,15 +883,6 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
 
     MIDI::MachineControl& mmc() { return *_mmc; }
 
-        /* Callbacks specifically related to JACK, and called directly
-        * from the JACK audio backend.
-         */
-
-#ifdef HAVE_JACK_SESSION
-       void jack_session_event (jack_session_event_t* event);
-#endif
-        void jack_timebase_callback (jack_transport_state_t, pframes_t, jack_position_t*, int);
-
   protected:
        friend class AudioEngine;
        void set_block_size (pframes_t nframes);
@@ -1603,6 +1596,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
        GraphEdges _current_route_graph;
 
        uint32_t next_control_id () const;
+       uint32_t _order_hint;
        bool ignore_route_processor_changes;
 
        MidiClockTicker* midi_clock;
@@ -1619,7 +1613,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
 
     void setup_ltc ();
     void setup_click ();
-    void setup_click_state (const XMLNode&);
+    void setup_click_state (const XMLNode*);
     void setup_bundles ();
 
     static int get_session_info_from_path (XMLTree& state_tree, const std::string& xmlpath);