AeKeymapAsset.c++ 3.09 KB
/*****************************************************************************
 *  File:  AeKeymapAsset.c++ 
 *
 *  AeKeymapAsset Class Implementations
 *
 ****************************************************************************/
#include <assert.h>
#include <stdlib.h>
#include <Vk/VkApp.h>

#include "AeAsset.h"
#include "GList.h"
#include "keymapIcon.xbm"


Pixmap AeKeymapAsset::fIcon = NULL;


AeKeymapAsset::AeKeymapAsset(const char * name,
		   int velMin, int velMax,
		   int keyMin, int keyMax, int keyBase,
		   int detune) : AeAsset (name, kKeymapType)
{
    fVelocityMin = velMin;
    fVelocityMax = velMax;
    fKeyMin = keyMin;
    fKeyMax = keyMax;
    fKeyBase = keyBase;
    fDetune = detune;

    if (!fIcon)
    {
	fIcon = XCreateBitmapFromData (theApplication->display (),
				       DefaultRootWindow (theApplication->display ()),
				       (char *)keymapIcon_bits,
				       keymapIcon_width,
				       keymapIcon_height);
    }
}


AeKeymapAsset::~AeKeymapAsset(void)
{
    if (fParentList)
    {
	AeAsset *	parent;
	int		i;

	// nullify any references to this asset
	fParentList->Start (i, kReverse);
	while (fParentList->Prev (i, parent))
	{
	    if (((AeSoundAsset *)parent)->GetKeymap () == this)
		((AeSoundAsset *)parent)->SetKeymap (NULL);	
	}
    }
}


void
AeKeymapAsset::GetClassName (char * name)
{
    strcpy (name, "keymap");
}

Boolean
AeKeymapAsset::IsParent (AeAsset * parent)
{
    assert (parent);
    return (((AeSoundAsset *)parent)->GetKeymap () == this);
}

void
AeKeymapAsset::SetVelMinProc(AeAsset * asset, int vel)
{
    assert (asset != NULL);
    ((AeKeymapAsset *)asset)->SetVelMin (vel);
}

void
AeKeymapAsset::SetVelMaxProc(AeAsset * asset, int vel)
{
    assert (asset != NULL);
    ((AeKeymapAsset *)asset)->SetVelMax (vel);
}

void
AeKeymapAsset::SetKeyMinProc(AeAsset * asset, int key)
{
    assert (asset != NULL);
    ((AeKeymapAsset *)asset)->SetKeyMin (key);
}

void
AeKeymapAsset::SetKeyMaxProc(AeAsset * asset, int key)
{
    assert (asset != NULL);
    ((AeKeymapAsset *)asset)->SetKeyMax (key);
}

void
AeKeymapAsset::SetKeyBaseProc(AeAsset * asset, int key)
{
    assert (asset != NULL);
    ((AeKeymapAsset *)asset)->SetKeyBase (key);
}

void
AeKeymapAsset::SetDetuneProc(AeAsset * asset, int detune)
{
    assert (asset != NULL);
    ((AeKeymapAsset *)asset)->SetDetune (detune);
}

int
AeKeymapAsset::GetVelMinProc(AeAsset * asset)
{
    assert (asset != NULL);
    return ((AeKeymapAsset *)asset)->GetVelMin ();
}

int
AeKeymapAsset::GetVelMaxProc(AeAsset * asset)
{
    assert (asset != NULL);
    return ((AeKeymapAsset *)asset)->GetVelMax ();
}

int
AeKeymapAsset::GetKeyMinProc(AeAsset * asset)
{
    assert (asset != NULL);
    return ((AeKeymapAsset *)asset)->GetKeyMin ();
}

int
AeKeymapAsset::GetKeyMaxProc(AeAsset * asset)
{
    assert (asset != NULL);
    return ((AeKeymapAsset *)asset)->GetKeyMax ();
}

int
AeKeymapAsset::GetKeyBaseProc(AeAsset * asset)
{
    assert (asset != NULL);
    return ((AeKeymapAsset *)asset)->GetKeyBase ();
}

int
AeKeymapAsset::GetDetuneProc(AeAsset * asset)
{
    assert (asset != NULL);
    return ((AeKeymapAsset *)asset)->GetDetune ();
}