Rev 203 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 203 | Rev 227 | ||
---|---|---|---|
Line 109... | Line 109... | ||
109 | 109 | ||
110 | align 4 |
110 | align 4 |
111 | proc update_stream |
111 | proc update_stream |
112 | locals |
112 | locals |
- | 113 | stream_index dd ? |
|
- | 114 | ev_code dd ? ;EVENT |
|
- | 115 | ev_offs dd ? |
|
113 | stream_index dd ? |
116 | rd 4 |
Line 114... | Line 117... | ||
114 | endl |
117 | endl |
115 | 118 | ||
116 | mov [stream_index], 0 |
119 | mov [stream_index], 0 |
Line 174... | Line 177... | ||
174 | dec [play_count] |
177 | dec [play_count] |
175 | jnz .l1 |
178 | jnz .l1 |
Line 176... | Line 179... | ||
176 | 179 | ||
177 | ret |
180 | ret |
- | 181 | @@: |
|
- | 182 | mov [ev_code], 0xFF000001 |
|
178 | @@: |
183 | mov [ev_offs], ecx |
- | 184 | mov eax, [ebx+STREAM.notify_task] |
|
179 | mov eax, [ebx+STREAM.notify_task] |
185 | |
- | 186 | lea edx, [ev_code] |
|
- | 187 | push ebx |
|
- | 188 | stdcall SendEvent, eax, edx |
|
180 | call pid_to_slot |
189 | pop ebx |
181 | test eax, eax |
190 | test eax, eax |
- | 191 | jnz .l_end |
|
182 | jnz @f |
192 | |
183 | not eax |
193 | not eax |
184 | mov [ebx+STREAM.notify_task], eax ;-1 |
- | |
185 | jmp .l_end |
- | |
186 | @@: |
- | |
187 | shl eax, 8 |
- | |
188 | mov [eax+PROC_BASE+32],ecx |
- | |
189 | or dword [eax+PROC_BASE+0xA8],EVENT_NOTIFY |
194 | mov [ebx+STREAM.notify_task], eax ;-1 |
190 | .l_end: |
195 | .l_end: |
191 | inc [stream_index] |
196 | inc [stream_index] |
192 | dec [play_count] |
197 | dec [play_count] |
193 | jnz .l1 |
198 | jnz .l1 |
194 | ret |
199 | ret |
Line 195... | Line 200... | ||
195 | endp |
200 | endp |
196 | 201 | ||
197 | align 4 |
- | |
198 | proc refill stdcall, str:dword |
202 | align 4 |
- | 203 | proc refill stdcall, str:dword |
|
199 | 204 | locals |
|
200 | ; if DEBUG |
205 | ev_code dd ? ;EVENT |
201 | ; mov esi, msgUser |
206 | ev_offs dd ? |
Line 202... | Line 207... | ||
202 | ; call [SysMsgBoardStr] |
207 | rd 4 |
203 | ; end if |
- | |
204 | 208 | endl |
|
205 | mov ebx, [str] |
209 | |
206 | 210 | mov ebx, [str] |
|
207 | mov ecx, [ebx+STREAM.work_write] |
211 | mov ecx, [ebx+STREAM.work_write] |
208 | cmp ecx, [ebx+STREAM.work_top] |
212 | cmp ecx, [ebx+STREAM.work_top] |
Line 243... | Line 247... | ||
243 | cmp eax, [ebx+STREAM.notify_off1] |
247 | cmp eax, [ebx+STREAM.notify_off1] |
244 | je @f |
248 | je @f |
Line 245... | Line 249... | ||
245 | 249 | ||
246 | ret |
250 | ret |
- | 251 | @@: |
|
- | 252 | mov [ev_code], 0xFF000001 |
|
247 | @@: |
253 | mov [ev_offs], ecx |
- | 254 | mov eax, [ebx+STREAM.notify_task] |
|
248 | mov eax, [ebx+STREAM.notify_task] |
255 | |
- | 256 | lea edx, [ev_code] |
|
- | 257 | push ebx |
|
- | 258 | stdcall SendEvent, eax, edx |
|
249 | call pid_to_slot |
259 | pop ebx |
250 | test eax, eax |
260 | test eax, eax |
251 | jnz @f |
261 | jnz @F |
252 | not eax |
262 | not eax |
253 | mov [ebx+STREAM.notify_task], eax ;-1 |
- | |
254 | ret |
263 | mov [ebx+STREAM.notify_task], eax ;-1 |
255 | @@: |
- | |
256 | shl eax, 8 |
- | |
257 | mov [eax+PROC_BASE+32],ecx |
- | |
258 | or dword [eax+PROC_BASE+0xA8],EVENT_NOTIFY |
264 | @@: |
259 | ret |
265 | ret |
Line 260... | Line 266... | ||
260 | endp |
266 | endp |
261 | 267 |