]> gitweb.factorcode.org Git - factor.git/blob - extra/ogg/vorbis/vorbis.factor
Remove Windows CE from core/ basis/ and build-support/
[factor.git] / extra / ogg / vorbis / vorbis.factor
1 ! Copyright (C) 2007 Chris Double.
2 ! See http://factorcode.org/license.txt for BSD license.
3 !
4 USING: 
5     alien
6     alien.c-types 
7     alien.libraries
8     alien.syntax 
9     classes.struct
10     combinators 
11     kernel 
12     ogg
13     system
14 ;
15 IN: ogg.vorbis
16
17 <<
18 "vorbis" {
19     { [ os windows? ]  [ "vorbis.dll" ] }
20     { [ os macosx? ] [ "libvorbis.0.dylib" ] }
21     { [ os unix? ]   [ "libvorbis.so" ] }
22 } cond cdecl add-library 
23
24 "vorbis" deploy-library
25 >>
26
27 LIBRARY: vorbis
28
29 STRUCT: vorbis-info 
30     { version int  }
31     { channels int }
32     { rate long }
33     { bitrate_upper long }
34     { bitrate_nominal long }
35     { bitrate_lower long }
36     { bitrate_window long }
37     { codec_setup void* } 
38     ;
39
40 STRUCT: vorbis-dsp-state
41     { analysisp int }
42     { vi vorbis-info* }
43     { pcm float** }
44     { pcmret float** }
45     { pcm_storage int }
46     { pcm_current int }
47     { pcm_returned int }
48     { preextrapolate int }
49     { eofflag int }
50     { lW long }
51     { W long }
52     { nW long }
53     { centerW long }
54     { granulepos longlong }
55     { sequence longlong }
56     { glue_bits longlong }
57     { time_bits longlong }
58     { floor_bits longlong }
59     { res_bits longlong }
60     { backend_state void* }
61     ;
62
63 STRUCT: alloc-chain
64     { ptr void* }
65     { next void* }
66     ;
67
68 STRUCT: vorbis-block
69     { pcm float** }
70     { opb oggpack-buffer }
71     { lW long }
72     { W long }
73     { nW long }
74     { pcmend int }
75     { mode int }
76     { eofflag int }
77     { granulepos longlong }
78     { sequence longlong }
79     { vd vorbis-dsp-state* }
80     { localstore void* }
81     { localtop long }
82     { localalloc long }
83     { totaluse long }
84     { reap alloc-chain* }
85     { glue_bits long }
86     { time_bits long }
87     { floor_bits long }
88     { res_bits long }
89     { internal void* }
90     ;
91
92 STRUCT: vorbis-comment
93     { usercomments c-string* }
94     { comment_lengths int* }
95     { comments int }
96     { vendor c-string }
97     ;
98
99 FUNCTION: void     vorbis_info_init ( vorbis-info* vi ) ;
100 FUNCTION: void     vorbis_info_clear ( vorbis-info* vi ) ;
101 FUNCTION: int      vorbis_info_blocksize ( vorbis-info* vi, int zo ) ;
102 FUNCTION: void     vorbis_comment_init ( vorbis-comment* vc ) ;
103 FUNCTION: void     vorbis_comment_add ( vorbis-comment* vc, c-string comment ) ;
104 FUNCTION: void     vorbis_comment_add_tag ( vorbis-comment* vc, c-string tag, c-string contents ) ;
105 FUNCTION: c-string    vorbis_comment_query ( vorbis-comment* vc, c-string tag, int count ) ;
106 FUNCTION: int      vorbis_comment_query_count ( vorbis-comment* vc, c-string tag ) ;
107 FUNCTION: void     vorbis_comment_clear ( vorbis-comment* vc ) ;
108 FUNCTION: int      vorbis_block_init ( vorbis-dsp-state* v, vorbis-block* vb ) ;
109 FUNCTION: int      vorbis_block_clear ( vorbis-block* vb ) ;
110 FUNCTION: void     vorbis_dsp_clear ( vorbis-dsp-state* v ) ;
111 FUNCTION: double   vorbis_granule_time ( vorbis-dsp-state* v, longlong granulepos ) ;
112 FUNCTION: int      vorbis_analysis_init ( vorbis-dsp-state* v, vorbis-info* vi ) ;
113 FUNCTION: int      vorbis_commentheader_out ( vorbis-comment* vc, ogg-packet* op ) ;
114 FUNCTION: int      vorbis_analysis_headerout ( vorbis-dsp-state* v,
115                                           vorbis-comment* vc,
116                                           ogg-packet* op,
117                                           ogg-packet* op_comm,
118                                           ogg-packet* op_code ) ;
119 FUNCTION: float**  vorbis_analysis_buffer ( vorbis-dsp-state* v, int vals ) ;
120 FUNCTION: int      vorbis_analysis_wrote ( vorbis-dsp-state* v, int vals ) ;
121 FUNCTION: int      vorbis_analysis_blockout ( vorbis-dsp-state* v, vorbis-block* vb ) ;
122 FUNCTION: int      vorbis_analysis ( vorbis-block* vb, ogg-packet* op ) ;
123 FUNCTION: int      vorbis_bitrate_addblock ( vorbis-block* vb ) ;
124 FUNCTION: int      vorbis_bitrate_flushpacket ( vorbis-dsp-state* vd,
125                                            ogg-packet* op ) ;
126 FUNCTION: int      vorbis_synthesis_headerin ( vorbis-info* vi, vorbis-comment* vc,
127                                           ogg-packet* op ) ;
128 FUNCTION: int      vorbis_synthesis_init ( vorbis-dsp-state* v, vorbis-info* vi ) ;
129 FUNCTION: int      vorbis_synthesis_restart ( vorbis-dsp-state* v ) ;
130 FUNCTION: int      vorbis_synthesis ( vorbis-block* vb, ogg-packet* op ) ;
131 FUNCTION: int      vorbis_synthesis_trackonly ( vorbis-block* vb, ogg-packet* op ) ;
132 FUNCTION: int      vorbis_synthesis_blockin ( vorbis-dsp-state* v, vorbis-block* vb ) ;
133 FUNCTION: int      vorbis_synthesis_pcmout ( vorbis-dsp-state* v, float*** pcm ) ;
134 FUNCTION: int      vorbis_synthesis_lapout ( vorbis-dsp-state* v, float*** pcm ) ;
135 FUNCTION: int      vorbis_synthesis_read ( vorbis-dsp-state* v, int samples ) ;
136 FUNCTION: long     vorbis_packet_blocksize ( vorbis-info* vi, ogg-packet* op ) ;
137 FUNCTION: int      vorbis_synthesis_halfrate ( vorbis-info* v, int flag ) ;
138 FUNCTION: int      vorbis_synthesis_halfrate_p ( vorbis-info* v ) ;
139
140 CONSTANT: OV_FALSE -1
141 CONSTANT: OV_EOF -2
142 CONSTANT: OV_HOLE -3
143 CONSTANT: OV_EREAD -128
144 CONSTANT: OV_EFAULT -129
145 CONSTANT: OV_EIMPL -130
146 CONSTANT: OV_EINVAL -131
147 CONSTANT: OV_ENOTVORBIS -132
148 CONSTANT: OV_EBADHEADER -133
149 CONSTANT: OV_EVERSION -134
150 CONSTANT: OV_ENOTAUDIO -135
151 CONSTANT: OV_EBADPACKET -136
152 CONSTANT: OV_EBADLINK -137
153 CONSTANT: OV_ENOSEEK -138