/*********************************************
*           SeamlessBufferManagement.h
*
*            Variable speed playback
*                  ver. 1.00
*
**********************************************/

#ifndef _SBM_


#define SBM_FIXED_HIFI
#define SBM_FIXED_HIFI_2
#define SBM_KALI_CHANGE


//#define WIN1280
//#define WIN2048
//#define WIN864
//#define WIN510
//#define WIN512
//#define WIN1024
#define WIN864

#if defined WIN864
//#define SPEEDPIV_WINLEN_LOG (11)
#define SPEEDPIV_WINLEN (864)
#endif
#if defined WIN1280
//#define SPEEDPIV_WINLEN_LOG (11)
#define SPEEDPIV_WINLEN (1280)
#endif

#if defined WIN1536
//#define SPEEDPIV_WINLEN_LOG (11)
#define SPEEDPIV_WINLEN (1536)
#endif
#if defined WIN2048
#define SPEEDPIV_WINLEN_LOG (11)
#define SPEEDPIV_WINLEN (1<<SPEEDPIV_WINLEN_LOG)
#endif
#if defined WIN4096
#define SPEEDPIV_WINLEN_LOG (12)
#define SPEEDPIV_WINLEN (1<<SPEEDPIV_WINLEN_LOG)
#endif
#if defined WIN1024
#define SPEEDPIV_WINLEN_LOG (10)
#define SPEEDPIV_WINLEN (1<<SPEEDPIV_WINLEN_LOG)
#endif


#if defined WIN864
#define SPEEDPIV_WINLEN (864)
#endif

#if defined WIN512
#define SPEEDPIV_WINLEN (512)
#endif

#if defined WIN510
#define SPEEDPIV_WINLEN (510)
#endif

#if defined WIN432
#define SPEEDPIV_WINLEN (432)
#endif

#define SPEEDPIV_BUFLEN (SPEEDPIV_WINLEN)

extern void SBM_SetPar(int speed);
/*
extern void SBM_SetPhase(int phc, int phidx);
extern int SBM_GetPrefitSampleNum(void);
*/
extern int SBM_Exe(short *out, const short *in, int n);
extern int SBM_Exe_Frame(short *out, const short *in, int n);
extern void SBM_Init(void);
#endif // _SBM_

