bool in_process_thread ();
uint32_t process_thread_count ();
+ int backend_reset_requested();
void request_backend_reset();
void request_device_list_update();
void launch_device_control_app();
PBD::Signal0<void> Running;
PBD::Signal0<void> Stopped;
+ /* these two are emitted when a device reset is initiated/finished
+ */
+
+ PBD::Signal0<void> DeviceResetStarted;
+ PBD::Signal0<void> DeviceResetFinished;
+
static AudioEngine* instance() { return _instance; }
static void destroy();
void died ();
LatencyMeasurement measuring_latency () const { return _measuring_latency; }
+ /* These two are used only in builds where SILENCE_AFTER_SECONDS was
+ * set. BecameSilent will be emitted when the audioengine goes silent.
+ * reset_silence_countdown() can be used to reset the silence
+ * countdown, whose duration will be reduced to half of its previous
+ * value.
+ */
+
+ PBD::Signal0<void> BecameSilent;
+ void reset_silence_countdown ();
+
private:
AudioEngine ();
void do_reset_backend();
void do_devicelist_update();
- void meter_thread ();
- void start_metering_thread ();
- void stop_metering_thread ();
-
- static gint m_meter_exit;
-
typedef std::map<std::string,AudioBackendInfo*> BackendMap;
BackendMap _backends;
AudioBackendInfo* backend_discover (const std::string&);
void drop_backend ();
+
+#ifdef SILENCE_AFTER
+ framecnt_t _silence_countdown;
+ uint32_t _silence_hit_cnt;
+#endif
+
};
} // namespace ARDOUR