/********************************************************************** Audacity: A Digital Audio Editor TrackControls.cpp Paul Licameli split from TrackPanel.cpp **********************************************************************/ #include "../../Audacity.h" #include "TrackControls.h" #include "../../Track.h" TrackControls::TrackControls( std::shared_ptr pTrack ) : CommonTrackCell{ pTrack } { } TrackControls::~TrackControls() { } TrackControls &TrackControls::Get( Track &track ) { auto pControls = std::static_pointer_cast( track.GetTrackControls() ); if (!pControls) // create on demand track.SetTrackControls( pControls = DoGetControls::Call( track ) ); return *pControls; } const TrackControls &TrackControls::Get( const Track &track ) { return Get( const_cast< Track& >( track ) ); } template<> auto DoGetControls::Implementation() -> Function { return nullptr; } static DoGetControls registerDoGetControls;