bool SetTrackAudioCommand::ApplyInner(const CommandContext & context, Track * t ) { static_cast<void>(context); auto wt = dynamic_cast<WaveTrack *>(t); auto pt = dynamic_cast<PlayableTrack *>(t); if( wt && bHasGain ) wt->SetGain(DB_TO_LINEAR(mGain)); if( wt && bHasPan ) wt->SetPan(mPan/100.0); // These ones don't make sense on the second channel of a stereo track. if( !bIsSecondChannel ){ if( pt && bHasSolo ) pt->SetSolo(bSolo); if( pt && bHasMute ) pt->SetMute(bMute); } return true; }
void CMixereView::OnToggleSolo() { SetSolo(-1); }