This repository has been archived by the owner on Feb 1, 2018. It is now read-only.
forked from mlaily/xmp-scrobbler
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathxmpdsp.h
44 lines (33 loc) · 1.61 KB
/
xmpdsp.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// XMPlay DSP plugin header (c) 2004-2007 Ian Luck
// new plugins can be submitted to plugins@xmplay.com
#pragma once
#include "xmpfunc.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifndef XMPDSP_FACE
#define XMPDSP_FACE 1 // "face"
#endif
#define XMPDSP_FLAG_MULTI 1 // supports multiple instances
#define XMPDSP_FLAG_TAIL 2 // effect has a tail
typedef struct {
DWORD flags; // XMPDSP_FLAG_xxx
const char *name; // plugin name
void (WINAPI *About)(HWND win); // OPTIONAL
void *(WINAPI *New)(); // create new plugin instance (return new instance handle)
// the following all apply to a specific instance ("inst")
void (WINAPI *Free)(void *inst); // free plugin instance
const char *(WINAPI *GetDescription)(void *inst); // get description
void (WINAPI *Config)(void *inst, HWND win); // present config options to user (OPTIONAL)
DWORD (WINAPI *GetConfig)(void *inst, void *config); // get config (return size of config data)
BOOL (WINAPI *SetConfig)(void *inst, void *config, DWORD size); // apply config
void (WINAPI *NewTrack)(void *inst, const char *file); // new track has been opened (OPTIONAL)
void (WINAPI *SetFormat)(void *inst, const XMPFORMAT *form); // set sample format
void (WINAPI *Reset)(void *inst); // reset DSP after seeking
DWORD (WINAPI *Process)(void *inst, float *data, DWORD count); // process samples (return number of samples processed)
// The Process function currently must return the same amount of data as it is given - it can't
// shorten/stretch the sound. This restriction may (or may not ;)) be lifted in future.
} XMPDSP;
#ifdef __cplusplus
}
#endif