/** * 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; } }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CFlashlightEffect::TurnOff() { if (m_bIsOn) { m_bIsOn = false; LightOff(); } }
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); } }
//----------------------------------------------------------------------------- // Purpose: Do the headlight //----------------------------------------------------------------------------- void CFlashlightEffect::UpdateLight( int nEntIdx, const Vector &vecPos, const Vector &vecForward, const Vector &vecRight, const Vector &vecUp, float flFov, float flFarZ, float flLinearAtten, bool castsShadows, const char* pTextureName ) { VPROF_BUDGET( __FUNCTION__, VPROF_BUDGETGROUP_SHADOW_DEPTH_TEXTURING ); m_nEntIndex = nEntIdx; m_flFov = flFov; m_flFarZ = flFarZ; m_flLinearAtten = flLinearAtten; if ( m_bCastsShadows != castsShadows ) { // requires recreation of the flashlight LightOff(); } m_bCastsShadows = castsShadows; UpdateFlashlightTexture( pTextureName ); FlashlightState_t state; if ( UpdateDefaultFlashlightState( state, vecPos, vecForward, vecRight, vecUp, castsShadows ) == false ) { return; } if( m_FlashlightHandle == CLIENTSHADOW_INVALID_HANDLE ) { m_FlashlightHandle = g_pClientShadowMgr->CreateFlashlight( state ); } else { if( !r_flashlightlockposition.GetBool() ) { g_pClientShadowMgr->UpdateFlashlightState( m_FlashlightHandle, state ); } } g_pClientShadowMgr->UpdateProjectedTexture( m_FlashlightHandle, true ); #ifndef NO_TOOLFRAMEWORK if ( clienttools->IsInRecordingMode() ) { KeyValues *msg = new KeyValues( "FlashlightState" ); msg->SetFloat( "time", gpGlobals->curtime ); msg->SetInt( "entindex", m_nEntIndex ); msg->SetInt( "flashlightHandle", m_FlashlightHandle ); msg->SetPtr( "flashlightState", &state ); ToolFramework_PostToolMessage( HTOOLHANDLE_INVALID, msg ); msg->deleteThis(); } #endif }
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 CFlashlightEffect::UpdateLight( int nEntIdx, const Vector &vecPos, const Vector &vecDir, const Vector &vecRight, const Vector &vecUp, float flFov, bool castsShadows, ITexture *pFlashlightTexture, const Vector &vecBrightness, bool bTracePlayers ) { VPROF_BUDGET( __FUNCTION__, VPROF_BUDGETGROUP_SHADOW_DEPTH_TEXTURING ); m_nEntIndex = nEntIdx; if ( m_bCastsShadows != castsShadows ) { // requires recreation of the flashlight LightOff(); } m_bCastsShadows = castsShadows; FlashlightState_t state; if ( UpdateDefaultFlashlightState( state, vecPos, vecDir, vecRight, vecUp, castsShadows, bTracePlayers ) == false ) { return; } state.m_fHorizontalFOVDegrees = flFov; state.m_fVerticalFOVDegrees = flFov; state.m_Color[0] = vecBrightness.x; state.m_Color[1] = vecBrightness.y; state.m_Color[2] = vecBrightness.z; if ( pFlashlightTexture ) { state.m_pSpotlightTexture = pFlashlightTexture; state.m_pProjectedMaterial = NULL; } if( m_FlashlightHandle == CLIENTSHADOW_INVALID_HANDLE ) { m_FlashlightHandle = g_pClientShadowMgr->CreateFlashlight( state ); } else { if( !r_flashlightlockposition.GetBool() ) { g_pClientShadowMgr->UpdateFlashlightState( m_FlashlightHandle, state ); } } g_pClientShadowMgr->UpdateProjectedTexture( m_FlashlightHandle, true ); #ifndef NO_TOOLFRAMEWORK if ( clienttools->IsInRecordingMode() ) { KeyValues *msg = new KeyValues( "FlashlightState" ); msg->SetFloat( "time", gpGlobals->curtime ); msg->SetInt( "entindex", m_nEntIndex ); msg->SetInt( "flashlightHandle", m_FlashlightHandle ); msg->SetPtr( "flashlightState", &state ); ToolFramework_PostToolMessage( HTOOLHANDLE_INVALID, msg ); msg->deleteThis(); } #endif }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- CFlashlightEffect::~CFlashlightEffect() { LightOff(); }
// 关掉额外押分灯 void ExtraBetLightOff(unsigned char Idx) { LightOff(&LightBetExtraKey[Idx]); }
// 关掉押分灯 void BetLightOff(unsigned char Idx) { LightOff(&LightBetKey[Idx]); }