Converting older projects to the new SDK

 The quickest way to convert an old project is to copy the se_gain project as a template, and replace the Module.cpp and Module.h files with your own.

Then make these changes..

in module.h ...

OLD
// Module(seaudioMasterCallback seaudioMaster);

NEW
Module(seaudioMasterCallback2 seaudioMaster, void *p_resvd1);

OLD
// virtual void sub_process(long buffer_offset, long sampleFrames );

NEW
void SE_CALLING_CONVENTION sub_process(long buffer_offset, long sampleFrames );
Do the same to any other sub_process functions.

OLD
// virtual bool getModuleProperties (SEModuleProperties* properties);

NEW
static bool getModuleProperties (SEModuleProperties* properties);

in module.cpp ...

OLD
//Module::Module(seaudioMasterCallback seaudioMaster) : SEModule_base(seaudioMaster)

NEW
Module::Module(seaudioMasterCallback2 seaudioMaster, void *p_resvd1) : SEModule_base(seaudioMaster, p_resvd1)

If you are using a non-microsoft compiler, remove all project files from se_sdk folder, and add all files from se_sdk2 folder.

If you use SET_PROCESS_FUNC(whatever) in your constructor, move that code to Module::open().  (it will crash if called in the constructor).

AreEventsPending() function no longer required. You can remove that code, e.g.

OLD
if( static_count <= 0 && !AreEventsPending() )
{
  CallHost(seaudioMasterSleepMode);
}

NEW
if( static_count <= 0 )
{
  CallHost(seaudioMasterSleepMode);
}

If you are using batch file of Post Build step to copy the dll to you SynthEdit folder, update the command to the correct module name.

If you code iterates clones using seaudioMasterGetNextClone etc, change any reference to "SEMod_struct_base" to "SEMod_struct_base2".

Change any instances of "process_func_ptr" with "process_function_ptr2".