+ /* this is a private enum, but setup_enum_writer() needs it,
+ and i can't find a way to give that function
+ friend access. sigh.
+ */
+
+ enum PostTransportWork {
+ PostTransportStop = 0x1,
+ PostTransportDuration = 0x2,
+ PostTransportLocate = 0x4,
+ PostTransportRoll = 0x8,
+ PostTransportAbort = 0x10,
+ PostTransportOverWrite = 0x20,
+ PostTransportSpeed = 0x40,
+ PostTransportAudition = 0x80,
+ PostTransportReverse = 0x100,
+ PostTransportInputChange = 0x200,
+ PostTransportCurveRealloc = 0x400,
+ PostTransportClearSubstate = 0x800,
+ PostTransportAdjustPlaybackBuffering = 0x1000,
+ PostTransportAdjustCaptureBuffering = 0x2000
+ };
+
+ enum SlaveState {
+ Stopped,
+ Waiting,
+ Running
+ };
+
+ SlaveState slave_state() const { return _slave_state; }
+ Slave* slave() const { return _slave; }
+
+ boost::shared_ptr<SessionPlaylists> playlists;
+
+ void send_mmc_locate (framepos_t);
+ int send_full_time_code (framepos_t);
+
+ bool step_editing() const { return (_step_editors > 0); }
+
+ void request_suspend_timecode_transmission ();
+ void request_resume_timecode_transmission ();
+ bool timecode_transmission_suspended () const;
+
+ std::string source_search_path(DataType) const;
+ void ensure_search_path_includes (const std::string& path, DataType type);
+
+ std::list<std::string> unknown_processors () const;
+
+ /** Emitted when a feedback cycle has been detected within Ardour's signal
+ processing path. Until it is fixed (by the user) some (unspecified)
+ routes will not be run.
+ */
+ static PBD::Signal0<void> FeedbackDetected;
+
+ /** Emitted when a graph sort has successfully completed, which means
+ that it has no feedback cycles.
+ */
+ static PBD::Signal0<void> SuccessfulGraphSort;
+
+ /* handlers can return an integer value:
+ 0: config.set_audio_search_path() or config.set_midi_search_path() was used
+ to modify the search path and we should try to find it again.
+ 1: quit entire session load
+ 2: as 0, but don't ask about other missing files
+ 3: don't ask about other missing files, and just mark this one missing
+ -1: just mark this one missing
+ any other value: as -1
+ */
+ static PBD::Signal3<int,Session*,std::string,DataType> MissingFile;
+
+ /** Emitted when the session wants Ardour to quit */
+ static PBD::Signal0<void> Quit;
+
+ boost::shared_ptr<Port> ltc_input_port() const;
+ boost::shared_ptr<Port> ltc_output_port() const;
+
+ boost::shared_ptr<IO> ltc_input_io() { return _ltc_input; }
+ boost::shared_ptr<IO> ltc_output_io() { return _ltc_output; }