/** * Called when a track is changed (instrument id, muted status...) */ void TranzportClient::trackChanged(const Composition *c, Track* track) { RG_DEBUG << "TranzportClient, CompostionObserver::trackChanged"; if (device_online) { const Track* track2 = c->getTrackById(c->getSelectedTrack()); // If the changed track is the selected track if (track == track2) { RG_DEBUG << "TranzportClient, CompostionObserver::trackChanged updateing"; if (track->isArmed()) { LightOn(LightTrackrec); } else { LightOff(LightTrackrec); } if (track->isMuted()) { LightOn(LightTrackmute); } else { LightOff(LightTrackmute); } LCDWrite(track->getLabel(), Bottom); } } }
/** * Called when solo status changes (solo on/off, and selected track) */ void TranzportClient::soloChanged(const Composition * c, bool solo, TrackId selectedTrack ) { RG_DEBUG << "TranzportClient, CompostionObserver::soloChanged"; if (device_online) { if (solo) { LightOn(LightAnysolo); } else { LightOff(LightAnysolo); } Track* track = c->getTrackById(selectedTrack); if (track->isArmed()) { LightOn(LightTrackrec); } else { LightOff(LightTrackrec); } if (track->isMuted()) { LightOn(LightTrackmute); } else { LightOff(LightTrackmute); } LCDWrite(track->getLabel(), Bottom); } }
void CXenPLight :: Think( void ) { StudioFrameAdvance(); pev->nextthink = gpGlobals->time + 0.1; switch( GetActivity() ) { case ACT_CROUCH: if ( m_fSequenceFinished ) { SetActivity( ACT_CROUCHIDLE ); LightOff(); } break; case ACT_CROUCHIDLE: if ( gpGlobals->time > pev->dmgtime ) { SetActivity( ACT_STAND ); LightOn(); } break; case ACT_STAND: if ( m_fSequenceFinished ) SetActivity( ACT_IDLE ); break; case ACT_IDLE: default: break; } }
void TranzportClient::stateUpdate() { if (device_online) { LCDWrite("Rosegarden"); if (m_composition->isSolo()) { LightOn(LightAnysolo); } else { LightOff(LightAnysolo); } if (m_composition->isLooping()) { LightOn(LightLoop); } else { LightOff(LightLoop); } TrackId trackID = m_composition->getSelectedTrack(); Track* track = m_composition->getTrackById(trackID); if (track->isArmed()) { LightOn(LightTrackrec); } else { LightOff(LightTrackrec); } if (track->isMuted()) { LightOn(LightTrackmute); } else { LightOff(LightTrackmute); } LCDWrite(track->getLabel().substr(0,9), Bottom); int bar, beat, fraction, remainder; m_composition->getMusicalTimeForAbsoluteTime( m_composition->getPosition(), bar, beat, fraction, remainder); std::stringstream ss; ss << bar+1 << ":" << beat; LCDWrite(ss.str(), Bottom, 10); } }
void TranzportClient::loopChanged(timeT t1, timeT t2) { RG_DEBUG << "TranzportClient: loopChanged" << t1 << ", " << t2; if (device_online) { if (t1 == 0 and t2 == 0) { LightOff(LightLoop); } else { LightOn(LightLoop); } } }
// 显示额外押分灯 void ExtraBetLightOn(unsigned char Idx) { LightOn(&LightBetExtraKey[Idx]); }
// 显示押分灯 void BetLightOn(unsigned char Idx) { LightOn(&LightBetKey[Idx]); }