AESound.c++ 2.04 KB
/*****************************************************************************
 *  File:  AESound.c++ 
 *
 *  AESound Class Implementations
 *
 ****************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#include "Assets.h"
#include "Mgrs.h"

/*****************************************************************************
 *
 *   Initialization Routines
 * 
 ****************************************************************************/

AESound::AESound()
{
    classType = AL_SOUND_CLASS;
    keymap = 0;
    envlp = 0;
    wavet = 0;
    samplePan = AL_PAN_CENTER;
    sampleVolume = AL_VOL_FULL;
    flags = 0;
    
    assert(theU64Dev->AllocHdwr(this,AL_SOUND_CLASS) == 0);

}

AESound::~AESound()
{
    if(keymap)
        keymap->RemoveReference(this);
    if(envlp)
        envlp->RemoveReference(this);
    if(wavet)
        wavet->RemoveReference(this);

    theU64Dev->DeallocHdwr(this);

}


/*****************************************************************************
 *
 *    Asset's Methods
 *
 ****************************************************************************/

void AESound::SetPan(int pan)
{
    samplePan = pan;
}

void AESound::SetVol(int vol)
{
    sampleVolume = vol;
}

void AESound::SetKeymap(AEKeymap *kmap)
{
    if(keymap)
        keymap->RemoveReference(this);
    kmap->AddReference(this);
    keymap = kmap;
}

void AESound::SetEnvlp(AEEnvlp *env)
{
    if(envlp)
        envlp->RemoveReference(this);
    env->AddReference(this);
    envlp = env;
}

void AESound::SetWavet(AEWavet *wvt)
{
    if(wavet)
        wavet->RemoveReference(this);
    wvt->AddReference(this);
    wavet = wvt;
}

void AESound::SetFlags(int f)
{
    flags = f;
}

int AESound::GetPan(void)
{
    return samplePan;
}

int AESound::GetVol(void)
{
    return sampleVolume;
}

AEKeymap* AESound::GetKeymap(void)
{
    return keymap;
}

AEEnvlp* AESound::GetEnvlp(void)
{
    return envlp;
}

AEWavet* AESound::GetWavet(void)
{
    return wavet;
}

int AESound::GetFlags(void)
{
    return flags;
}