-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathaudio.bas
127 lines (106 loc) · 2.05 KB
/
audio.bas
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
DEFLNG A-Z
WIDTH 80, 50
COLOR 15
CLS
PRINT "QB64 AUDIO (ESC=QUIT, H=SELECT HANDLE)"
PRINT "Basics: O=OPEN C=CLOSE ENTER=PLAY S=STOP L=LOOP"
PRINT "Extras: V=VOL B=BAL SPACE=PAUSE A=SETPOS Z=COPY"
PRINT "Info: Q=PLAYING&GETPOS W=LEN P=PAUSED"
PRINT "Macros: F=PLAYFILE X=PLAYCOPY"
PRINT STRING$(80, "_")
VIEW PRINT 8 TO 50
LOCATE , , 1
DO
SLEEP 'lowers CPU usage
k$ = UCASE$(INKEY$)
IF k$ = CHR$(27) THEN END
IF k$ = "H" THEN
h2 = h
INPUT "handle=", h
IF h = 0 THEN PRINT "Invalid handle": h = h2
END IF
IF k$ = "O" THEN
PRINT "handle=_SNDOPEN(filename$,[requirements$])"
INPUT ; "handle=_SNDOPEN(", f$, r$
PRINT ")"
h2 = h
h=_SNDOPEN(f$, r$)
IF h=0 THEN
IF h2 THEN h = h2
PRINT "Failed"
ELSE
PRINT "handle="; h
END IF
END IF
IF k$ = "C" THEN
PRINT "_SNDCLOSE"; h
_SNDCLOSE h
END IF
IF k$ = CHR$(13) THEN
PRINT "_SNDPLAY"; h
_SNDPLAY h
END IF
IF k$ = "S" THEN
PRINT "_SNDSTOP"; h
_SNDSTOP h
END IF
IF k$ = "L" THEN
PRINT "_SNDLOOP"; h
_SNDLOOP h
END IF
IF k$ = "V" THEN
PRINT "_SNDVOL handle&,volume!{0-1}"
PRINT "_SNDVOL"; h; ",";
INPUT "", volume!
_SNDVOL h, volume!
END IF
IF k$ = "B" THEN
PRINT "_SNDBAL handle&,[x!],[y!],[z!]"
PRINT "_SNDBAL"; h; ",";
INPUT "", x!, y!, z!
_SNDBAL h, x!, y!, z!
END IF
IF k$ = " " THEN
PRINT "_SNDPAUSE"; h
_SNDPAUSE h
END IF
IF k$ = "A" THEN
PRINT "_SNDSETPOS handle&,offsetinseconds!"
PRINT "_SNDSETPOS"; h; ",";
INPUT "", offset!
_SNDSETPOS h, offset!
END IF
IF k$ = "Z" THEN
PRINT "handle=_SNDCOPY("; h; ")"
h2 = _SNDCOPY(h)
if h2 then
h = h2
PRINT "handle="; h
ELSE
PRINT "Failed"
END IF
END IF
IF k$ = "Q" THEN
PRINT "PRINT _PLAYING("; h; ")"
PRINT _SNDPLAYING(h)
PRINT "PRINT _GETPOS("; h; ")"
PRINT _SNDGETPOS(h)
END IF
IF k$ = "W" THEN
PRINT "PRINT _SNDLEN("; h; ")"
PRINT _SNDLEN(h)
END IF
IF k$ = "P" THEN
PRINT "PRINT _SNDPAUSED("; h; ")"
PRINT _SNDPAUSED(h)
END IF
IF k$ = "F" THEN
PRINT "_SNDPLAYFILE filename$,sync%{0/1},volume!{0-1}"
INPUT "_SNDPLAYFILE ", filename$, sync%, volume!
_SNDPLAYFILE filename$, sync%, volume!
END IF
IF k$ = "X" THEN
PRINT "_SNDPLAYCOPY"; h
_SNDPLAYCOPY h
END IF
LOOP