bool SetTrackStatusCommand::ApplyInner(const CommandContext & context, Track * t ) { //auto wt = dynamic_cast<WaveTrack *>(t); //auto pt = dynamic_cast<PlayableTrack *>(t); // You can get some intriguing effects by setting R and L channels to // different values. if( bHasTrackName ) t->SetName(mTrackName); // In stereo tracks, both channels need selecting/deselecting. if( bHasSelected ) t->SetSelected(bSelected); // These ones don't make sense on the second channel of a stereo track. if( !bIsSecondChannel ){ if( bHasFocused ) { TrackPanel *panel = context.GetProject()->GetTrackPanel(); if( bFocused) panel->SetFocusedTrack( t ); else if( t== panel->GetFocusedTrack() ) panel->SetFocusedTrack( nullptr ); } } return true; }