diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.h index c12509669d..34b0c53085 100644 --- a/libs/ardour/ardour/rc_configuration_vars.h +++ b/libs/ardour/ardour/rc_configuration_vars.h @@ -95,6 +95,7 @@ CONFIG_VARIABLE (bool, automation_follows_regions, "automation-follows-regions", CONFIG_VARIABLE (bool, region_boundaries_from_selected_tracks, "region-boundaries-from-selected-tracks", true) CONFIG_VARIABLE (bool, region_boundaries_from_onscreen_tracks, "region-boundaries-from-onscreen_tracks", true) CONFIG_VARIABLE (bool, autoscroll_editor, "autoscroll-editor", true) +CONFIG_VARIABLE (FadeShape, default_fade_shape, "default-fade-shape", FadeLinear) /* monitoring, mute, solo etc */ diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h index 07ff29ff8a..4c748c226c 100644 --- a/libs/ardour/ardour/types.h +++ b/libs/ardour/ardour/types.h @@ -638,6 +638,7 @@ std::istream& operator>>(std::istream& o, ARDOUR::DenormalModel& sf); std::istream& operator>>(std::istream& o, ARDOUR::WaveformScale& sf); std::istream& operator>>(std::istream& o, ARDOUR::WaveformShape& sf); std::istream& operator>>(std::istream& o, ARDOUR::PositionLockStyle& sf); +std::istream& operator>>(std::istream& o, ARDOUR::FadeShape& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::SampleFormat& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::HeaderFormat& sf); @@ -662,6 +663,7 @@ std::ostream& operator<<(std::ostream& o, const ARDOUR::DenormalModel& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::WaveformScale& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::WaveformShape& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::PositionLockStyle& sf); +std::ostream& operator<<(std::ostream& o, const ARDOUR::FadeShape& sf); static inline ARDOUR::framepos_t session_frame_to_track_frame (ARDOUR::framepos_t session_frame, double speed) diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index 45454b0909..63530e2f01 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -1211,14 +1211,14 @@ void AudioRegion::set_default_fade_in () { _fade_in_suspended = 0; - set_fade_in (FadeLinear, 64); + set_fade_in (Config->get_default_fade_shape(), 64); } void AudioRegion::set_default_fade_out () { _fade_out_suspended = 0; - set_fade_out (FadeLinear, 64); + set_fade_out (Config->get_default_fade_shape(), 64); } void diff --git a/libs/ardour/enums.cc b/libs/ardour/enums.cc index 2300dbc7a5..e5ce383728 100644 --- a/libs/ardour/enums.cc +++ b/libs/ardour/enums.cc @@ -962,3 +962,16 @@ std::ostream& operator<<(std::ostream& o, const Evoral::OverlapType& var) std::string s = enum_2_string (var); return o << s; } +std::istream& operator>>(std::istream& o, FadeShape& var) +{ + std::string s; + o >> s; + var = (FadeShape) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const FadeShape& var) +{ + std::string s = enum_2_string (var); + return o << s; +}