www.pudn.com > smstools.rar > SMSMorphConfigurator.hxx
#ifndef __SMSMORPHCONFIGURATOR__
#define __SMSMORPHCONFIGURATOR__
#include "SMS_Configurator.hxx"
#include "SMSMorphConfig.hxx"
#include "Signalv0.hxx"
#include "Slotv1.hxx"
class Fl_Widget;
class Fl_Help_View;
namespace CLAMVM
{
class Fl_SMS_Morph_Control;
class SMSMorphConfigurator : public SMSConfigurator
{
protected:
class UserDefinedParams
{
protected:
bool mUserActivatedFrameInterpolation;
bool mUserDefinedGlobalEnvelope;
bool mUserDefinedSinAmpEnvelope;
bool mUserDefinedSinFreqEnvelope;
bool mUserDefinedResAmpEnvelope;
bool mUserDefinedPitchHybEnvelope;
bool mUserDefinedTimeSyncEnvelope;
bool mUserDefinedSinShapeW1Envelope;
bool mUserDefinedSinShapeW2Envelope;
bool mUserDefinedResShapeW1Envelope;
bool mUserDefinedResShapeW2Envelope;
bool mUserDefinedSinShapeEnvelope;
bool mUserDefinedResShapeEnvelope;
bool mOnlyGlobalEnvelope;
public:
UserDefinedParams( );
~UserDefinedParams();
void Reset();
bool UserOnlyDefinedGlobalEnvelope() const
{
return mOnlyGlobalEnvelope;
}
bool UserActivatedFrameInterpolation() const
{
return mUserActivatedFrameInterpolation;
}
bool UserDefinedGlobalEnvelope() const
{
return mUserDefinedGlobalEnvelope;
}
bool UserDefinedSinAmpEnvelope() const
{
return mUserDefinedSinAmpEnvelope;
}
bool UserDefinedSinFreqEnvelope() const
{
return mUserDefinedSinFreqEnvelope;
}
bool UserDefinedResAmpEnvelope() const
{
return mUserDefinedResAmpEnvelope;
}
bool UserDefinedPitchHybEnvelope() const
{
return mUserDefinedPitchHybEnvelope;
}
bool UserDefinedTimeSyncEnvelope() const
{
return mUserDefinedTimeSyncEnvelope;
}
bool UserDefinedSinShapeW1Envelope() const
{
return mUserDefinedSinShapeW1Envelope;
}
bool UserDefinedSinShapeW2Envelope() const
{
return mUserDefinedSinShapeW2Envelope;
}
bool UserDefinedResShapeW1Envelope() const
{
return mUserDefinedResShapeW1Envelope;
}
bool UserDefinedResShapeW2Envelope() const
{
return mUserDefinedResShapeW2Envelope;
}
bool UserDefinedSinShapeEnvelope() const
{
return mUserDefinedSinShapeEnvelope;
}
bool UserDefinedResShapeEnvelope() const
{
return mUserDefinedResShapeEnvelope;
}
SigSlot::Slotv1 FrameInterpolationListener;
SigSlot::Slotv0 GlobalEnvelopeListener;
SigSlot::Slotv0 PitchHybEnvelopeListener;
SigSlot::Slotv0 SinAmpEnvelopeListener;
SigSlot::Slotv0 SinFreqEnvelopeListener;
SigSlot::Slotv0 ResAmpEnvelopeListener;
SigSlot::Slotv0 TimeSyncEnvelopeListener;
SigSlot::Slotv0 SinShapeW1EnvelopeListener;
SigSlot::Slotv0 SinShapeW2EnvelopeListener;
SigSlot::Slotv0 ResShapeW1EnvelopeListener;
SigSlot::Slotv0 ResShapeW2EnvelopeListener;
SigSlot::Slotv0 SinShapeEnvelopeListener;
SigSlot::Slotv0 ResShapeEnvelopeListener;
SigSlot::Signalv0 UserHasActed;
protected:
void OnFrameInterpolationChanged( bool newState );
void OnGlobalEnvelopeChanged();
void OnPitchHybEnvelopeChanged();
void OnSinAmpEnvelopeChanged();
void OnSinFreqEnvelopeChanged();
void OnResAmpEnvelopeChanged();
void OnTimeSyncEnvelopeChanged();
void OnSinShapeW1EnvelopeChanged();
void OnSinShapeW2EnvelopeChanged();
void OnResShapeW1EnvelopeChanged();
void OnResShapeW2EnvelopeChanged();
void OnSinShapeEnvelopeChanged();
void OnResShapeEnvelopeChanged();
};
public:
SMSMorphConfigurator();
virtual ~SMSMorphConfigurator();
virtual Fl_Widget* GetParametersWidget();
virtual Fl_Widget* GetHelpWidget();
virtual void Initialize( CLAM::ProcessingConfig& );
virtual void SetConfig( const CLAM::ProcessingConfig& );
virtual const CLAM::ProcessingConfig& GetConfig();
protected:
void SetHelpWidgetText();
void SetupConfigObject();
protected:
Fl_Help_View* mHelpWidget;
Fl_SMS_Morph_Control* mpMorphEditor;
CLAM::SMSMorphConfig mConfig;
static const char* mHelpText;
UserDefinedParams mUserListener;
UserDefinedParams& UserListener()
{
return mUserListener;
}
};
}
#endif // SMSMorphConfigurator.hxx