annotate osdep/glob-win.c @ 13394:455a5056801f

New generic 'portable anymap' video output driver. It supports portable pixmaps and graymaps in both raw and ASCII mode. Besides PPM and PGM, it can also output PGMYUV files which are PGM files with the U and V plane appended to the bottom of the Y image (bottom left and bottom right). All files can be written to the current directory, to a specified output directory or to multiple subdirectories if the filesystem can't handle the amount of files in one directory anymore. Note: This driver is not yet activated and will not be compiled and linked to libvo. A separate patch will take care of that. This is just for adding the file to the repository.
author ivo
date Mon, 20 Sep 2004 00:54:57 +0000
parents 7b0bc557987b
children 08cac43f1e38
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9983
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
1 #include <sys/types.h>
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
2 #include <stdio.h>
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
3
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
4 #include "../config.h"
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
5
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
6 #ifndef HAVE_GLOB
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
7 #ifdef __MINGW32__
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
8 #include <windows.h>
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
9 #include "glob.h"
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
10
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
11 int glob(const char *pattern, int flags,
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
12 int (*errfunc)(const char *epath, int eerrno), glob_t *pglob)
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
13 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
14 HANDLE searchhndl;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
15 WIN32_FIND_DATA found_file;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
16 if(errfunc)printf("glob():ERROR:Sorry errfunc not supported by this implementation\n");
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
17 if(flags)printf("glob():ERROR:Sorry no flags supported by this globimplementation\n");
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
18 //printf("PATTERN \"%s\"\n",pattern);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
19 pglob->gl_pathc = 0;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
20 searchhndl = FindFirstFile( pattern,&found_file);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
21 if(searchhndl == INVALID_HANDLE_VALUE)
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
22 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
23 if(GetLastError() == ERROR_FILE_NOT_FOUND)
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
24 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
25 pglob->gl_pathc = 0;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
26 //printf("could not find a file matching your search criteria\n");
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
27 return 1;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
28 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
29 else
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
30 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
31 //printf("glob():ERROR:FindFirstFile: %i\n",GetLastError());
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
32 return 1;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
33 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
34 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
35 pglob->gl_pathv = malloc(sizeof(char*));
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
36 pglob->gl_pathv[0] = strdup(found_file.cFileName);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
37 pglob->gl_pathc++;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
38 while(1)
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
39 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
40 if(!FindNextFile(searchhndl,&found_file))
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
41 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
42 if(GetLastError()==ERROR_NO_MORE_FILES)
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
43 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
44 //printf("glob(): no more files found\n");
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
45 break;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
46 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
47 else
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
48 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
49 //printf("glob():ERROR:FindNextFile:%i\n",GetLastError());
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
50 return 1;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
51 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
52 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
53 else
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
54 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
55 //printf("glob: found file %s\n",found_file.cFileName);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
56 pglob->gl_pathc++;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
57 pglob->gl_pathv = realloc(pglob->gl_pathv,pglob->gl_pathc * sizeof(char*));
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
58 pglob->gl_pathv[pglob->gl_pathc-1] = strdup(found_file.cFileName);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
59 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
60 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
61 FindClose(searchhndl);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
62 return 0;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
63 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
64
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
65 void globfree(glob_t *pglob)
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
66 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
67 int i;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
68 for(i=0; i <pglob->gl_pathc ;i++)
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
69 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
70 free(pglob->gl_pathv[i]);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
71 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
72 free(pglob->gl_pathv);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
73 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
74 #endif /*__MINGW32__*/
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
75 #endif /*HAVE_GLOB*/
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
76
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
77 #if 0
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
78 int main(){
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
79 glob_t gg;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
80 printf("globtest\n");
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
81 glob( "*.jpeg",0,NULL,&gg );
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
82 {
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
83 int i;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
84 for(i=0;i<gg.gl_pathc;i++)printf("GLOBED:%i %s\n",i,gg.gl_pathv[i]);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
85 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
86 globfree(&gg);
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
87
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
88 return 0;
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
89 }
14c92818ab75 alternative timer and glob emulation code for mingw32 port
faust3
parents:
diff changeset
90 #endif