aboutsummaryrefslogtreecommitdiff
path: root/lib/timidity/timidity_codec.c
blob: 14e8bda69d9fa6f06a77b86656ba53b3d13b6bd3 (plain)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// timidity.cpp : Defines the entry point for the console application.
//

#include "timidity_codec.h"

#include <stdio.h>
#include <string.h>

#ifdef WIN32
	#define EXPORT __declspec(dllexport)
#else
	#define EXPORT
#endif

static int init_done = 0;

int EXPORT DLL_Init( const char * soundfont )
{
    if ( init_done )
      return 1;

    if ( Timidity_Init( 48000, 16, 2, soundfont ) != 0 )
      return 0;

    init_done = 1;
    return 1;
}

void EXPORT DLL_Cleanup()
{
    Timidity_Cleanup();
    init_done = 0;
}

const EXPORT char * DLL_ErrorMsg()
{
    return Timidity_ErrorMsg();
}

void EXPORT * DLL_LoadMID( const char* szFileName )
{
    return Timidity_LoadSong( (char*)szFileName );
}

void EXPORT DLL_FreeMID( void* mid )
{
    Timidity_FreeSong( (MidiSong *) mid );
}

int EXPORT DLL_FillBuffer( void* mid, char* szBuffer, int iSize)
{
    return Timidity_FillBuffer( (MidiSong *) mid, szBuffer, iSize );
}

unsigned long EXPORT DLL_Seek( void* mid, unsigned long iTimePos)
{
    return Timidity_Seek( (MidiSong *) mid, iTimePos );
}

const char EXPORT *DLL_GetTitle(void* mid)
{
    return "";
}

const char EXPORT *DLL_GetArtist(void* mid)
{
     return "";
}

unsigned long EXPORT DLL_GetLength(void* mid)
{
    return Timidity_GetLength( (MidiSong *) mid );
}