Subversion Repositories Kolibri OS

Rev

Rev 228 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 228 Rev 376
Line 2... Line 2...
2
 
2
 
Line 3... Line 3...
3
include "proc32.inc"
3
include "proc32.inc"
Line 4... Line -...
4
 
-
 
5
section '.text' code readable executable
-
 
6
 
-
 
7
public _GetService@4
-
 
8
public _GetDevInfo@8
-
 
9
public _GetMasterVol@8
-
 
10
public _SetMasterVol@8
-
 
11
public _CreateBuffer@8
-
 
12
public _DestroyBuffer@8
-
 
13
public _SetBuffer@20
-
 
14
public _PlayBuffer@8
4
 
15
public _StopBuffer@8
5
section '.text' code readable executable
16
 
-
 
17
public _InitHeap@4
6
 
18
public _UserAlloc@4
7
public _InitHeap@4
19
public _GetNotify@4
8
public _UserAlloc@4
20
public _CreateThread@8
9
public _CreateThread@8
21
public _GetMousePos@4
10
public _GetMousePos@4
22
public _get_fileinfo@8
11
public _get_fileinfo@8
23
public _read_file@20
12
public _read_file@20
24
public _get_key
13
public _get_key@4
25
public _get_button_id
14
public _get_button_id
26
public _DrawWindow@36
15
public _DrawWindow@36
Line 40... Line 29...
40
    .buff           dd ?
29
    .buff           dd ?
41
                    db ?
30
                    db ?
42
    .name           dd ?
31
    .name           dd ?
43
};
32
};
Line 44... Line -...
44
 
-
 
45
struc CTRL_INFO
-
 
46
{   .pci_cmd        dd  ?
-
 
47
    .irq            dd  ?
-
 
48
    .glob_cntrl     dd  ?
-
 
49
    .glob_sta       dd  ?
-
 
50
    .codec_io_base  dd  ?
-
 
51
    .ctrl_io_base   dd  ?
-
 
52
    .codec_mem_base dd  ?
-
 
53
    .ctrl_mem_base  dd  ?
-
 
54
    .codec_id       dd  ?
-
 
55
}
-
 
56
CTRL_INFO_SIZE      equ 9*4
-
 
57
 
-
 
58
 
-
 
59
SND_CREATE_DEV     equ  1
-
 
60
SND_CREATE_BUFF    equ  2
-
 
61
SND_PLAY           equ  3
-
 
62
SND_STOP           equ  4
-
 
63
SND_SETBUFF        equ  5
-
 
64
SND_DESTROY_BUFF   equ  6
-
 
65
 
-
 
66
DEV_SET_BUFF       equ  4
-
 
67
DEV_NOTIFY         equ  5
-
 
68
DEV_SET_MASTERVOL  equ  6
-
 
69
DEV_GET_MASTERVOL  equ  7
-
 
70
DEV_GET_INFO       equ  8
-
 
71
 
-
 
72
 
33
 
73
align 4
34
align 4
74
proc _get_button_id
35
proc _get_button_id
75
           mov   eax,17
36
           mov   eax,17
76
           int   0x40
37
           int   0x40
Line 143... Line 104...
143
           pop ebx
104
           pop ebx
144
           ret
105
           ret
145
endp
106
endp
Line 146... Line 107...
146
 
107
 
147
align 4
108
align 4
-
 
109
proc _get_key@4 stdcall, key:dword
-
 
110
           push ebx
148
proc _get_key
111
           push ecx
149
           mov eax, 2
112
           mov eax, 2
-
 
113
           int 0x40
-
 
114
           mov ebx, [key]
150
           int 0x40
115
           mov ecx, eax
-
 
116
           shr ecx, 8
-
 
117
           mov [ebx], ecx
-
 
118
           movzx eax, al
-
 
119
           pop ecx
151
           shr eax, 8
120
           pop ebx
152
           ret
121
           ret
Line -... Line 122...
-
 
122
endp
153
endp
123
 
154
 
124
 
155
align 4
125
align 4
156
proc _InitHeap@4 stdcall, heap_size:dword
126
proc _InitHeap@4 stdcall, heap_size:dword
157
                  push ebx
127
                  push ebx
Line 172... Line 142...
172
                  int 0x40
142
                  int 0x40
173
                  pop ebx
143
                  pop ebx
174
                  ret
144
                  ret
175
endp
145
endp
Line 176... Line -...
176
 
-
 
177
;align 4
-
 
178
;proc _GetNotify@4 stdcall, p_ev:dword
-
 
179
;                  push ebx
-
 
180
;                  mov eax, 68
-
 
181
;                  mov ebx, 14
-
 
182
;              mov ecx, [p_ev]
-
 
183
;                  int 0x40
-
 
184
;                  pop ebx
-
 
185
;                  ret
-
 
186
;endp
-
 
187
 
-
 
188
align 4
-
 
189
proc _GetNotify@4 stdcall, p_ev:dword
-
 
190
                  push ebx
-
 
191
                  mov eax, 68
-
 
192
                  mov ebx, 14
-
 
193
                  mov ecx, [p_ev]
-
 
194
                  int 0x40
-
 
195
                  pop ebx
-
 
196
                  ret
-
 
197
endp
-
 
198
 
146
 
199
align 4
147
align 4
200
proc _CreateThread@8 stdcall, fn:dword, p_stack:dword
148
proc _CreateThread@8 stdcall, fn:dword, p_stack:dword
201
              push ebx
149
              push ebx
202
              mov eax, 51
150
              mov eax, 51
Line 216... Line 164...
216
               int 0x40
164
           int 0x40
217
               pop ebx
165
           pop ebx
218
               ret
166
           ret
219
endp
167
endp
Line 220... Line -...
220
 
-
 
221
align 4
-
 
222
proc CallServiceEx stdcall, ioctl:dword
-
 
223
              push ebx
-
 
224
              mov eax, 68
-
 
225
              mov ebx, 17
-
 
226
          mov ecx, [ioctl]
-
 
227
              int 0x40
-
 
228
              pop ebx
-
 
229
              ret
-
 
230
endp
-
 
231
 
-
 
232
align 4
-
 
233
proc _GetService@4 stdcall, name:dword
-
 
234
           push ebx
-
 
235
           mov eax, 68
-
 
236
               mov ebx, 16
-
 
237
           mov ecx, [name]
-
 
238
               int 0x40
-
 
239
               pop ebx
-
 
240
               ret
-
 
241
endp
-
 
242
 
-
 
243
align 4
-
 
244
proc _GetDevInfo@8 stdcall, hSrv:dword, p_info:dword
-
 
245
           locals
-
 
246
             handle     dd ?
-
 
247
             io_code    dd ?
-
 
248
             input      dd ?
-
 
249
             inp_size   dd ?
-
 
250
             output     dd ?
-
 
251
             out_size   dd ?
-
 
252
           endl
-
 
253
           
-
 
254
           push ebx
-
 
255
           mov eax, [hSrv]
-
 
256
           xor ebx, ebx
-
 
257
           mov ecx, [p_info]
-
 
258
 
-
 
259
           mov [handle], eax
-
 
260
           mov [io_code], DEV_GET_INFO
-
 
261
           mov [input], ebx
-
 
262
           mov [inp_size], ebx
-
 
263
           mov [output], ecx
-
 
264
           mov [out_size], CTRL_INFO_SIZE
-
 
265
 
-
 
266
           lea eax, [handle]
-
 
267
           stdcall CallServiceEx, eax
-
 
268
           pop ebx
-
 
269
               ret
-
 
270
endp
-
 
271
 
-
 
272
align 4
-
 
273
proc _GetMasterVol@8 stdcall, hSrv:dword,pvol:dword
-
 
274
           locals
-
 
275
             handle     dd ?
-
 
276
             io_code    dd ?
-
 
277
             input      dd ?
-
 
278
             inp_size   dd ?
-
 
279
             output     dd ?
-
 
280
             out_size   dd ?
-
 
281
           endl
-
 
282
           
-
 
283
           push ebx
-
 
284
           mov eax, [hSrv]
-
 
285
           mov ecx, [pvol]
-
 
286
           xor ebx, ebx
-
 
287
           mov [handle], eax
-
 
288
           mov [io_code], DEV_GET_MASTERVOL
-
 
289
           mov [input], ebx
-
 
290
           mov [inp_size], ebx
-
 
291
           mov [output], ecx
-
 
292
           mov [out_size], 4
-
 
293
 
-
 
294
           lea eax, [handle]
-
 
295
           stdcall CallServiceEx, eax
-
 
296
           pop ebx
-
 
297
               ret
-
 
298
endp
-
 
299
 
-
 
300
align 4
-
 
301
proc _SetMasterVol@8 stdcall,hSrv:dword,vol:dword
-
 
302
           locals
-
 
303
             handle     dd ?
-
 
304
             io_code    dd ?
-
 
305
             input      dd ?
-
 
306
             inp_size   dd ?
-
 
307
             output     dd ?
-
 
308
             out_size   dd ?
-
 
309
           endl
-
 
310
           
-
 
311
           push ebx
-
 
312
           mov eax, [hSrv]
-
 
313
           lea ecx, [vol]
-
 
314
           xor ebx, ebx
-
 
315
 
-
 
316
           mov [handle], eax
-
 
317
           mov [io_code], DEV_SET_MASTERVOL
-
 
318
           mov [input], ecx
-
 
319
           mov [inp_size], 4
-
 
320
           mov [output], ebx
-
 
321
           mov [out_size], 0
-
 
322
 
-
 
323
           lea eax, [handle]
-
 
324
           stdcall CallServiceEx, eax
-
 
325
           pop ebx
-
 
326
               ret
-
 
327
endp
-
 
328
 
-
 
329
align 4
-
 
330
proc _CreateBuffer@8 stdcall, hSound:dword,format:dword
-
 
331
           locals
-
 
332
             handle     dd ?
-
 
333
             io_code    dd ?
-
 
334
             input      dd ?
-
 
335
             inp_size   dd ?
-
 
336
             output     dd ?
-
 
337
             out_size   dd ?
-
 
338
           endl
-
 
339
 
-
 
340
           push ebx
-
 
341
           mov eax, [hSound]
-
 
342
           lea ecx, [format]
-
 
343
           xor ebx, ebx
-
 
344
 
-
 
345
           mov [handle], eax
-
 
346
           mov [io_code], SND_CREATE_BUFF
-
 
347
           mov [input], ecx
-
 
348
           mov [inp_size], 4
-
 
349
           mov [output], ebx
-
 
350
           mov [out_size], 0
-
 
351
 
-
 
352
           lea eax, [handle]
-
 
353
           stdcall CallServiceEx, eax
-
 
354
           pop ebx
-
 
355
               ret
-
 
356
endp
-
 
357
 
-
 
358
align 4
-
 
359
proc _DestroyBuffer@8 stdcall, hSound:dword, str:dword
-
 
360
           locals
-
 
361
             handle     dd ?
-
 
362
             io_code    dd ?
-
 
363
             input      dd ?
-
 
364
             inp_size   dd ?
-
 
365
             output     dd ?
-
 
366
             out_size   dd ?
-
 
367
           endl
-
 
368
 
-
 
369
           push ebx
-
 
370
           mov eax, [hSound]
-
 
371
           lea ecx, [str]
-
 
372
           xor ebx, ebx
-
 
373
 
-
 
374
           mov [handle], eax
-
 
375
           mov [io_code], SND_DESTROY_BUFF
-
 
376
           mov [input], ecx
-
 
377
           mov [inp_size], 4
-
 
378
           mov [output], ebx
-
 
379
           mov [out_size], 0
-
 
380
 
-
 
381
           lea eax, [handle]
-
 
382
           stdcall CallServiceEx, eax
-
 
383
           pop ebx
-
 
384
               ret
-
 
385
endp
-
 
386
 
-
 
387
align 4
-
 
388
proc _SetBuffer@20 stdcall,hSound:dword, str:dword, src:dword, offs:dword, size:dword
-
 
389
           locals
-
 
390
             handle     dd ?
-
 
391
             io_code    dd ?
-
 
392
             input      dd ?
-
 
393
             inp_size   dd ?
-
 
394
             output     dd ?
-
 
395
             out_size   dd ?
-
 
396
           endl
-
 
397
 
-
 
398
           push ebx
-
 
399
           mov eax, [hSound]
-
 
400
           lea ecx, [str]
-
 
401
           xor ebx, ebx
-
 
402
 
-
 
403
           mov [handle], eax
-
 
404
           mov [io_code], SND_SETBUFF
-
 
405
           mov [input], ecx
-
 
406
           mov [inp_size], 16
-
 
407
           mov [output], ebx
-
 
408
           mov [out_size], 0
-
 
409
 
-
 
410
           lea eax, [handle]
-
 
411
           stdcall CallServiceEx, eax
-
 
412
           pop ebx
-
 
413
               ret
-
 
414
endp
-
 
415
 
-
 
416
align 4
-
 
417
proc _PlayBuffer@8 stdcall, hSound:dword, str:dword
-
 
418
           locals
-
 
419
             handle     dd ?
-
 
420
             io_code    dd ?
-
 
421
             input      dd ?
-
 
422
             inp_size   dd ?
-
 
423
             output     dd ?
-
 
424
             out_size   dd ?
-
 
425
           endl
-
 
426
 
-
 
427
           push ebx
-
 
428
           mov eax, [hSound]
-
 
429
           lea ecx, [str]
-
 
430
           xor ebx, ebx
-
 
431
 
-
 
432
           mov [handle], eax
-
 
433
           mov [io_code], SND_PLAY
-
 
434
           mov [input], ecx
-
 
435
           mov [inp_size], 4
-
 
436
           mov [output], ebx
-
 
437
           mov [out_size], 0
-
 
438
 
-
 
439
           lea eax, [handle]
-
 
440
           stdcall CallServiceEx, eax
-
 
441
           pop ebx
-
 
442
               ret
-
 
443
endp
-
 
444
 
-
 
445
align 4
-
 
446
proc _StopBuffer@8 stdcall, hSound:dword, str:dword
-
 
447
           locals
-
 
448
             handle     dd ?
-
 
449
             io_code    dd ?
-
 
450
             input      dd ?
-
 
451
             inp_size   dd ?
-
 
452
             output     dd ?
-
 
453
             out_size   dd ?
-
 
454
           endl
-
 
455
 
-
 
456
           push ebx
-
 
457
           mov eax, [hSound]
-
 
458
           lea ecx, [str]
-
 
459
           xor ebx, ebx
-
 
460
 
-
 
461
           mov [handle], eax
-
 
462
           mov [io_code], SND_STOP
-
 
463
           mov [input], ecx
-
 
464
           mov [inp_size], 4
-
 
465
           mov [output], ebx
-
 
466
           mov [out_size], 0
-
 
467
 
-
 
468
           lea eax, [handle]
-
 
469
           stdcall CallServiceEx, eax
-
 
470
           pop ebx
-
 
471
           ret
-
 
Line 472... Line 168...
472
endp
168
 
473
 
169
 
474
align 4
170
align 4
475
proc _DrawWindow@36 stdcall, x:dword, y:dword, sx:dword, sy:dword,\
171
proc _DrawWindow@36 stdcall, x:dword, y:dword, sx:dword, sy:dword,\