]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/winmm/winmm.factor
scryfall: better moxfield words
[factor.git] / basis / windows / winmm / winmm.factor
1 ! Copyright (C) 2013 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.c-types alien.syntax byte-arrays formatting kernel
4 math windows.types ;
5 IN: windows.winmm
6
7 LIBRARY: winmm
8
9 TYPEDEF: int MCIERROR
10
11 FUNCTION: MCIERROR mciSendStringW (
12   LPCTSTR lpszCommand,
13   LPTSTR lpszReturnString,
14   UINT cchReturn,
15   HANDLE hwndCallback
16 )
17
18 ALIAS: mciSendString mciSendStringW
19
20 ERROR: mci-error n ;
21
22 : check-mci-error ( n -- )
23     [ mci-error ] unless-zero ;
24
25 : open-command ( path -- )
26     "open \"%s\" type mpegvideo alias MediaFile" sprintf f 0 f
27     mciSendString check-mci-error ;
28
29 : play-command ( -- )
30     "play MediaFile" f 0 f mciSendString check-mci-error ;
31
32 : pause-command ( -- )
33     "pause MediaFile" f 0 f mciSendString check-mci-error ;
34
35 : status-command ( -- bytes )
36     "status MediaFile mode" 128 <byte-array> [ 0 f mciSendString check-mci-error ] keep ;
37
38
39 : close-command ( -- )
40     "close MediaFile" f 0 f mciSendString check-mci-error ;