Mercurial > audlegacy-plugins
comparison src/psf2/plugin.c @ 2753:be414d015fec
Implement seeking (you can seek forward), it crashes when you seek backwards though :(.
| author | William Pitcock <nenolod@atheme.org> |
|---|---|
| date | Tue, 01 Jul 2008 00:22:25 -0500 |
| parents | cd2d2118fdee |
| children | 2cbc458d8286 |
comparison
equal
deleted
inserted
replaced
| 2752:cd2d2118fdee | 2753:be414d015fec |
|---|---|
| 176 { | 176 { |
| 177 psf2_execute(data); | 177 psf2_execute(data); |
| 178 | 178 |
| 179 if (seek) | 179 if (seek) |
| 180 { | 180 { |
| 181 data->eof = FALSE; | |
| 182 data->output->flush(seek); | |
| 183 | |
| 184 psf2_command(COMMAND_RESTART, 0); | |
| 185 psf2_seek(seek); | |
| 186 | |
| 181 seek = 0; | 187 seek = 0; |
| 182 continue; | 188 continue; |
| 183 } | 189 } |
| 184 | 190 |
| 185 psf2_stop(); | 191 psf2_stop(); |
| 228 } | 234 } |
| 229 count -= t; | 235 count -= t; |
| 230 buffer += t; | 236 buffer += t; |
| 231 } | 237 } |
| 232 | 238 |
| 233 #if 0 | 239 if (seek) |
| 234 if (seek) | 240 { |
| 235 { | 241 if (psf2_seek(seek)) |
| 236 if(sexypsf_seek(seek)) | 242 { |
| 237 { | 243 playback->output->flush(seek); |
| 238 playback->output->flush(seek); | 244 seek = 0; |
| 239 seek = 0; | 245 } |
| 240 } | 246 else |
| 241 else // negative time - must make a C time machine | 247 { |
| 242 { | 248 playback->eof = TRUE; |
| 243 sexypsf_stop(); | 249 return; |
| 244 return; | 250 } |
| 245 } | 251 } |
| 246 } | |
| 247 if (stop) | |
| 248 sexypsf_stop(); | |
| 249 #endif | |
| 250 } | 252 } |
| 251 | 253 |
| 252 void psf2_Stop(InputPlayback *playback) | 254 void psf2_Stop(InputPlayback *playback) |
| 253 { | 255 { |
| 254 playback->playing = FALSE; | 256 playback->playing = FALSE; |
| 268 return 1; | 270 return 1; |
| 269 | 271 |
| 270 return 0; | 272 return 0; |
| 271 } | 273 } |
| 272 | 274 |
| 275 void psf2_Seek(InputPlayback *playback, int time) | |
| 276 { | |
| 277 seek = time * 1000; | |
| 278 } | |
| 279 | |
| 273 gchar *psf2_fmts[] = { "psf2", "minipsf2", NULL }; | 280 gchar *psf2_fmts[] = { "psf2", "minipsf2", NULL }; |
| 274 | 281 |
| 275 InputPlugin psf2_ip = | 282 InputPlugin psf2_ip = |
| 276 { | 283 { |
| 277 .description = "PSF2 Audio Plugin", | 284 .description = "PSF2 Audio Plugin", |
| 278 .play_file = psf2_play, | 285 .play_file = psf2_play, |
| 279 .stop = psf2_Stop, | 286 .stop = psf2_Stop, |
| 280 .pause = psf2_pause, | 287 .pause = psf2_pause, |
| 281 #if 0 | 288 .seek = psf2_Seek, |
| 282 .seek = sexypsf_xmms_seek, | 289 .get_song_tuple = psf2_tuple, |
| 283 .get_song_info = sexypsf_xmms_getsonginfo, | 290 .is_our_file_from_vfs = psf2_is_our_fd, |
| 284 #endif | 291 .vfs_extensions = psf2_fmts, |
| 285 .get_song_tuple = psf2_tuple, | |
| 286 .is_our_file_from_vfs = psf2_is_our_fd, | |
| 287 .vfs_extensions = psf2_fmts, | |
| 288 }; | 292 }; |
| 289 | 293 |
| 290 InputPlugin *psf2_iplist[] = { &psf2_ip, NULL }; | 294 InputPlugin *psf2_iplist[] = { &psf2_ip, NULL }; |
| 291 | 295 |
| 292 DECLARE_PLUGIN(psf2, NULL, NULL, psf2_iplist, NULL, NULL, NULL, NULL, NULL); | 296 DECLARE_PLUGIN(psf2, NULL, NULL, psf2_iplist, NULL, NULL, NULL, NULL, NULL); |
