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)16 TrackControls::TrackControls( std::shared_ptr<Track> pTrack )
17    : CommonTrackCell{ pTrack }
18 {
19 }
20 
~TrackControls()21 TrackControls::~TrackControls()
22 {
23 }
24 
Get(Track & track)25 TrackControls &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)35 const TrackControls &TrackControls::Get( const Track &track )
36 {
37    return Get( const_cast< Track& >( track ) );
38 }
39 
DEFINE_ATTACHED_VIRTUAL(DoGetControls)40 DEFINE_ATTACHED_VIRTUAL(DoGetControls) {
41    return nullptr;
42 }
43