1 /********************************************************************** 2 3 Audacity: A Digital Audio Editor 4 5 TrackControls.cpp 6 7 Paul Licameli split from TrackPanel.cpp 8 9 **********************************************************************/ 10 11 12 #include "TrackControls.h" 13 14 #include "../../Track.h" 15 TrackControls(std::shared_ptr<Track> pTrack)16TrackControls::TrackControls( std::shared_ptr<Track> pTrack ) 17 : CommonTrackCell{ pTrack } 18 { 19 } 20 ~TrackControls()21TrackControls::~TrackControls() 22 { 23 } 24 Get(Track & track)25TrackControls &TrackControls::Get( Track &track ) 26 { 27 auto pControls = 28 std::static_pointer_cast<TrackControls>( track.GetTrackControls() ); 29 if (!pControls) 30 // create on demand 31 track.SetTrackControls( pControls = DoGetControls::Call( track ) ); 32 return *pControls; 33 } 34 Get(const Track & track)35const TrackControls &TrackControls::Get( const Track &track ) 36 { 37 return Get( const_cast< Track& >( track ) ); 38 } 39 DEFINE_ATTACHED_VIRTUAL(DoGetControls)40DEFINE_ATTACHED_VIRTUAL(DoGetControls) { 41 return nullptr; 42 } 43