Repository navigation
Expand file tree
/
Copy pathmusic.cpp
More file actions
78 lines (70 loc) · 1.84 KB
/
Copy pathmusic.cpp
File metadata and controls
78 lines (70 loc) · 1.84 KB
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
75
76
77
78
extern "C" {
#include "allocator.h"
#include "midi.h"
}
DxBallMusic *dxball_music;
void *DxBallMusic::operator new(size_t bytes)
{
return dxball_new_bytes(bytes);
}
void DxBallMusic::operator delete(void *memory)
{
dxball_runtime_delete(memory);
}
/* FUNCTION: DXBALL 0x00401B90 */
DxBallInt dxball_load_music(const char *path, DxBallInt play)
{
if (dxball_music != NULL) dxball_close_music();
dxball_music = new DxBallMusic;
if (dxball_open_mds(&dxball_music->context, path, 0, 1) != 0) {
delete dxball_music;
dxball_music = NULL;
return 0;
}
dxball_music->playing = 0;
if (play != 0) {
if (dxball_play_mds(dxball_music->context, 1) != 0) {
dxball_release_mds(dxball_music->context);
delete dxball_music;
dxball_music = NULL;
return 0;
}
dxball_music->playing = 1;
}
return 1;
}
/* FUNCTION: DXBALL 0x00401C90 */
void dxball_resume_music(void)
{
if (dxball_music == NULL) return;
if (dxball_play_mds(dxball_music->context, 1) != 0) return;
dxball_music->playing = 1;
return;
}
/* FUNCTION: DXBALL 0x00401CE0 */
void dxball_pause_music(void)
{
if (dxball_music == NULL) return;
if (dxball_pause_mds(dxball_music->context) != 0) return;
dxball_music->playing = 0;
return;
}
/* FUNCTION: DXBALL 0x00401D30 */
void dxball_restart_music(void)
{
if (dxball_music == NULL) return;
if (dxball_stop_mds(dxball_music->context) != 0) return;
if (dxball_play_mds(dxball_music->context, 1) != 0) return;
dxball_music->playing = 1;
return;
}
/* FUNCTION: DXBALL 0x00401DA0 */
void dxball_close_music(void)
{
if (dxball_music == NULL) return;
dxball_stop_mds(dxball_music->context);
dxball_release_mds(dxball_music->context);
delete dxball_music;
dxball_music = NULL;
return;
}