Ejemplo n.º 1
0
/*--------------------------------------------------------------------------------*/
AudioObjectParameters& AudioObjectParameters::Modify(const Modifier& modifier, const ADMAudioObject *object)
{
  if (modifier.rotation.IsSet())
  {
    SetPosition(GetPosition() * modifier.rotation.Get());
    if (IsMinPositionSet()) SetMinPosition(GetMinPosition() * modifier.rotation.Get());
    if (IsMaxPositionSet()) SetMaxPosition(GetMaxPosition() * modifier.rotation.Get());

    Position size(GetWidth(), GetDepth(), GetHeight());
    size *= modifier.rotation.Get();
    SetWidth(static_cast<float>(size.pos.x));
    SetDepth(static_cast<float>(size.pos.y));
    SetHeight(static_cast<float>(size.pos.z));
  }
  if (modifier.position.IsSet()) SetPosition(GetPosition() + modifier.position.Get());
  if (modifier.scale.IsSet())
  {
    SetPosition(GetPosition() * modifier.scale.Get());
    if (IsMinPositionSet()) SetMinPosition(GetMinPosition() * modifier.scale.Get());
    if (IsMaxPositionSet()) SetMaxPosition(GetMaxPosition() * modifier.scale.Get());

    Position size(GetWidth(), GetDepth(), GetHeight());
    size *= modifier.scale.Get();
    SetWidth(static_cast<float>(size.pos.x));
    SetDepth(static_cast<float>(size.pos.y));
    SetHeight(static_cast<float>(size.pos.z));
  }
  if (modifier.gain.IsSet()) SetGain(GetGain() * modifier.gain.Get());

  // apply specific modifications (from derived classes)
  modifier.Modify(*this, object);

  return *this;
}
Ejemplo n.º 2
0
////-----------------------
///	MultiEffect::ChangeGain
//---------------------------
//	Analogous to CImmEffect::ChangeGain. Changes gain of all component effects.
//	Returns false if any effect returns false. Attempts to change gain of all effects
//	regardless of individual return values.
//
qboolean MultiEffect::ChangeGain( DWORD Gain )
{
    DWORD CurrentGain;
    qboolean result = GetGain( CurrentGain );

    if ( result )
    {
        DWORD RelativeGain = Gain - CurrentGain;

        for
        (	int i = 0, max = GetNumberOfContainedEffects()
                             ;	i < max
                ;	i++
        ) {
            CImmEffect* pIE = GetContainedEffect( i );
            result &= qboolean
                      (	pIE
                          &&	pIE->GetGain( CurrentGain )
                          &&	pIE->ChangeGain( CurrentGain + RelativeGain )
                      );
        }

        result &= qboolean( max > 0 );
    }

    return result;
}
Ejemplo n.º 3
0
    void HDRPage::UpdateHDRWidgets()
    {
        Error error;
        PropertyInfo propGain;
        propGain.type = GAIN;
        error = m_pCamera->GetPropertyInfo( &propGain );
        if ( error != PGRERROR_OK )
        {
            // Error
            ShowErrorMessageDialog( "Error reading gain property", error );
        }

        PropertyInfo propShutter;
        propShutter.type = SHUTTER;
        error = m_pCamera->GetPropertyInfo( &propShutter );
        if ( error != PGRERROR_OK )
        {
            // Error
            ShowErrorMessageDialog( "Error reading gain property information", error );
        }

        for ( int i=0; i < 4; i++ )
        {
            SetGainRange( i, propGain.min, propGain.max );
            SetShutterRange( i, propShutter.min, propShutter.max );

            unsigned int gain = GetGain( i );
            unsigned int shutter = GetShutter( i );

            m_hdrImageArray[i].pAdjustmentGain->set_value( gain );
            m_hdrImageArray[i].pAdjustmentShutter->set_value( shutter );
        }                                
    }
Ejemplo n.º 4
0
	float Source::GetGain() const
	{
	    #ifdef HAS_AUDIO_SOURCE
		return impl->GetGain();
		#else
		throw System::PunkException(L"Audio source is not available");
		#endif
	}
Ejemplo n.º 5
0
bool TrLadGain::GainDBToLinear(float* offset) {
  if (!offset) return false;
  int index = 0;
  offset[index++] = (float) GetHwId();
  for (int iva=0; iva<16; iva++) offset[index++] = (float) GetGain(iva);
  for (int iva=0; iva<16; iva++) offset[index++] = (float) GetOffset(iva);
  for (int iva=0; iva<16; iva++) offset[index++] = (float) GetSysErr(iva);
  for (int iva=0; iva<16; iva++) offset[index++] = (float) GetStatus(iva);
  return true;
}
Ejemplo n.º 6
0
void TrLadGain::Info(int verbosity) {
  printf(" %10s %3d","HwId: ",GetHwId());
  if (verbosity>0) printf("\n");
  printf(" %10s ","Gain: ");
  for (int iva=0; iva<16; iva++) printf("%8.4f ",GetGain(iva));
  printf("\n");
  if (verbosity>0) { 
    printf(" %10s ","Offset: ");
    for (int iva=0; iva<16; iva++) printf("%8.4f ",GetOffset(iva));
    printf("\n");
    printf(" %10s ","SysErr: ");
    for (int iva=0; iva<16; iva++) printf("%8.4f ",GetSysErr(iva));
    printf("\n");
    printf(" %10s ","Status: ");
    for (int iva=0; iva<16; iva++) printf("%8X ",GetStatus(iva));
    printf("\n");
  }
}
Ejemplo n.º 7
0
//Decrements general volume
void SoundManager::VolumeDown(float amount)
{
    //Reduce volume in "LISTENER"
	
	//Local variables
	float CurrentGain;

	//Value to decrement
	CurrentGain = GetGain();
	//Decrement
	CurrentGain -= amount;
	//Limits
	if (CurrentGain < 0)
	{
		CurrentGain = 0;
	}
	//Set gain decremented
	SetGain(CurrentGain);
}
Ejemplo n.º 8
0
//Increments general volume
void SoundManager::VolumeUp(float amount)
{
	//Increment volume in "LISTENER"
	
	//Local variables
	float CurrentGain;

	//Value to increment
	CurrentGain = GetGain();
    //Increment
	CurrentGain += amount;
	//Limits
	if (CurrentGain > GAINLIMIT)
	{
		CurrentGain = GAINLIMIT;
	}
	//Set gain incremented
	SetGain(CurrentGain);
}
Ejemplo n.º 9
0
Track *NoteTrack::Duplicate()
{
   NoteTrack *duplicate = new NoteTrack(mDirManager);
   duplicate->Init(*this);
   // Duplicate on NoteTrack moves data from mSeq to mSerializationBuffer
   // and from mSerializationBuffer to mSeq on alternate calls. Duplicate
   // to the undo stack and Duplicate back to the project should result
   // in serialized blobs on the undo stack and traversable data in the
   // project object.
   if (mSeq) {
      SonifyBeginSerialize();
      assert(!mSerializationBuffer);
      // serialize from this to duplicate's mSerializationBuffer
      mSeq->serialize((void**)&duplicate->mSerializationBuffer,
                      &duplicate->mSerializationLength);
      SonifyEndSerialize();
   } else if (mSerializationBuffer) {
      SonifyBeginUnserialize();
      assert(!mSeq);
      Alg_track_ptr alg_track = Alg_seq::unserialize(mSerializationBuffer,
                                                      mSerializationLength);
      assert(alg_track->get_type() == 's');
      duplicate->mSeq = (Alg_seq_ptr) alg_track;
      SonifyEndUnserialize();
   } else assert(false); // bug if neither mSeq nor mSerializationBuffer
   // copy some other fields here
   duplicate->SetBottomNote(mBottomNote);
   duplicate->SetPitchHeight(mPitchHeight);
   duplicate->mLastMidiPosition = mLastMidiPosition;
   duplicate->mVisibleChannels = mVisibleChannels;
   duplicate->SetOffset(GetOffset());
#ifdef EXPERIMENTAL_MIDI_OUT
   duplicate->SetGain(GetGain());
#endif
   return duplicate;
}
Ejemplo n.º 10
0
float nuiSound::GetGainDb() const
{
  float Db = GainToDB(GetGain());
  return Db;
}
Ejemplo n.º 11
0
bool TrLadGain::IsDefault() {
  for (int iva=0; iva<16; iva++) 
    if ( (GetGain(iva)!=1.)||(GetOffset(iva)!=0.)||(GetSysErr(iva)!=0.)||(GetStatus(iva)!=0) ) 
      return false;
  return true;
}
Ejemplo n.º 12
0
float TrLadGain::ApplyGain(float adc, int iva) {
  if ( (iva<0)||(iva>15) ) return 0;
  return adc/GetGain(iva) - GetOffset(iva); 
}
Ejemplo n.º 13
0
float TrLadGain::GetGainCorrected(float adc, int iva) { 
  if ( (iva<0)||(iva>15) ) return 0;
  return (adc + GetOffset(iva))*GetGain(iva);
}
Ejemplo n.º 14
0
void TrLadGain::Dump(int iva) {
  if ( (iva<0)||(iva>15) ) return;
  printf("%03d %2d %8.4f %8.4f %8.4f %8d\n",GetHwId(),iva,GetGain(iva),GetOffset(iva),GetSysErr(iva),GetStatus(iva));
}