# HG changeset patch # User chainsaw # Date 1162851064 28800 # Node ID ef1967a3cd28c9391e0d2a2c16dcee38989fa82a # Parent fd4cba2fe99b5d0673fd805c50455b83653b164d [svn] New-style VFS probe function. If you want an #ifdef feel free to bolt some on. diff -r fd4cba2fe99b -r ef1967a3cd28 ChangeLog --- a/ChangeLog Mon Nov 06 13:30:44 2006 -0800 +++ b/ChangeLog Mon Nov 06 14:11:04 2006 -0800 @@ -1,3 +1,10 @@ +2006-11-06 21:30:44 +0000 Jonathan Schleifer + revision [454] + Fixed missing header + trunk/src/mplayer/common.c | 1 + + 1 file changed, 1 insertion(+) + + 2006-11-05 21:14:06 +0000 William Pitcock revision [452] - only penalize for bad frames on fixed streams diff -r fd4cba2fe99b -r ef1967a3cd28 src/sexypsf/xmms.c --- a/src/sexypsf/xmms.c Mon Nov 06 13:30:44 2006 -0800 +++ b/src/sexypsf/xmms.c Mon Nov 06 14:11:04 2006 -0800 @@ -52,8 +52,7 @@ return &sexypsf_ip; } -static int is_our_file(gchar *filename) { - VFSFile *file; +static int is_our_fd(gchar *filename, VFSFile *file) { gchar magic[4]; // Filter out psflib [we use them, but we can't play them] @@ -65,15 +64,12 @@ if (!strcasecmp(tmps, teststr)) return 0; } - if ((file = vfs_fopen(filename,"rb"))) { - vfs_fread(magic,1,4,file); - //Only allow PSF1 for now. - if (!strncmp(magic,"PSF\x01",4)) { - vfs_fclose(file); - return 1; - } - vfs_fclose(file); - } + if (vfs_ftell(file) != 0) + vfs_fseek(file, 0, SEEK_SET); + vfs_fread(magic,1,4,file); + //Only allow PSF1 for now. + if (!strncmp(magic,"PSF\x01",4)) + return 1; return 0; } @@ -270,7 +266,7 @@ 0, 0, 0, - is_our_file, + 0, 0, sexypsf_xmms_play, sexypsf_xmms_stop, @@ -288,5 +284,8 @@ sexypsf_xmms_getsonginfo, 0, 0, - get_tuple_psf + get_tuple_psf, + 0, + 0, + is_our_fd, };