annotate src/bzip2-1.0.6/dlltest.c @ 23:619f715526df sv_v2.1

Update Vamp plugin SDK to 2.5
author Chris Cannam
date Thu, 09 May 2013 10:52:46 +0100
parents e13257ea84a4
children
rev   line source
Chris@4 1 /*
Chris@4 2 minibz2
Chris@4 3 libbz2.dll test program.
Chris@4 4 by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
Chris@4 5 This file is Public Domain. Welcome any email to me.
Chris@4 6
Chris@4 7 usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]
Chris@4 8 */
Chris@4 9
Chris@4 10 #define BZ_IMPORT
Chris@4 11 #include <stdio.h>
Chris@4 12 #include <stdlib.h>
Chris@4 13 #include "bzlib.h"
Chris@4 14 #ifdef _WIN32
Chris@4 15 #include <io.h>
Chris@4 16 #endif
Chris@4 17
Chris@4 18
Chris@4 19 #ifdef _WIN32
Chris@4 20
Chris@4 21 #define BZ2_LIBNAME "libbz2-1.0.2.DLL"
Chris@4 22
Chris@4 23 #include <windows.h>
Chris@4 24 static int BZ2DLLLoaded = 0;
Chris@4 25 static HINSTANCE BZ2DLLhLib;
Chris@4 26 int BZ2DLLLoadLibrary(void)
Chris@4 27 {
Chris@4 28 HINSTANCE hLib;
Chris@4 29
Chris@4 30 if(BZ2DLLLoaded==1){return 0;}
Chris@4 31 hLib=LoadLibrary(BZ2_LIBNAME);
Chris@4 32 if(hLib == NULL){
Chris@4 33 fprintf(stderr,"Can't load %s\n",BZ2_LIBNAME);
Chris@4 34 return -1;
Chris@4 35 }
Chris@4 36 BZ2_bzlibVersion=GetProcAddress(hLib,"BZ2_bzlibVersion");
Chris@4 37 BZ2_bzopen=GetProcAddress(hLib,"BZ2_bzopen");
Chris@4 38 BZ2_bzdopen=GetProcAddress(hLib,"BZ2_bzdopen");
Chris@4 39 BZ2_bzread=GetProcAddress(hLib,"BZ2_bzread");
Chris@4 40 BZ2_bzwrite=GetProcAddress(hLib,"BZ2_bzwrite");
Chris@4 41 BZ2_bzflush=GetProcAddress(hLib,"BZ2_bzflush");
Chris@4 42 BZ2_bzclose=GetProcAddress(hLib,"BZ2_bzclose");
Chris@4 43 BZ2_bzerror=GetProcAddress(hLib,"BZ2_bzerror");
Chris@4 44
Chris@4 45 if (!BZ2_bzlibVersion || !BZ2_bzopen || !BZ2_bzdopen
Chris@4 46 || !BZ2_bzread || !BZ2_bzwrite || !BZ2_bzflush
Chris@4 47 || !BZ2_bzclose || !BZ2_bzerror) {
Chris@4 48 fprintf(stderr,"GetProcAddress failed.\n");
Chris@4 49 return -1;
Chris@4 50 }
Chris@4 51 BZ2DLLLoaded=1;
Chris@4 52 BZ2DLLhLib=hLib;
Chris@4 53 return 0;
Chris@4 54
Chris@4 55 }
Chris@4 56 int BZ2DLLFreeLibrary(void)
Chris@4 57 {
Chris@4 58 if(BZ2DLLLoaded==0){return 0;}
Chris@4 59 FreeLibrary(BZ2DLLhLib);
Chris@4 60 BZ2DLLLoaded=0;
Chris@4 61 }
Chris@4 62 #endif /* WIN32 */
Chris@4 63
Chris@4 64 void usage(void)
Chris@4 65 {
Chris@4 66 puts("usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]");
Chris@4 67 }
Chris@4 68
Chris@4 69 int main(int argc,char *argv[])
Chris@4 70 {
Chris@4 71 int decompress = 0;
Chris@4 72 int level = 9;
Chris@4 73 char *fn_r = NULL;
Chris@4 74 char *fn_w = NULL;
Chris@4 75
Chris@4 76 #ifdef _WIN32
Chris@4 77 if(BZ2DLLLoadLibrary()<0){
Chris@4 78 fprintf(stderr,"Loading of %s failed. Giving up.\n", BZ2_LIBNAME);
Chris@4 79 exit(1);
Chris@4 80 }
Chris@4 81 printf("Loading of %s succeeded. Library version is %s.\n",
Chris@4 82 BZ2_LIBNAME, BZ2_bzlibVersion() );
Chris@4 83 #endif
Chris@4 84 while(++argv,--argc){
Chris@4 85 if(**argv =='-' || **argv=='/'){
Chris@4 86 char *p;
Chris@4 87
Chris@4 88 for(p=*argv+1;*p;p++){
Chris@4 89 if(*p=='d'){
Chris@4 90 decompress = 1;
Chris@4 91 }else if('1'<=*p && *p<='9'){
Chris@4 92 level = *p - '0';
Chris@4 93 }else{
Chris@4 94 usage();
Chris@4 95 exit(1);
Chris@4 96 }
Chris@4 97 }
Chris@4 98 }else{
Chris@4 99 break;
Chris@4 100 }
Chris@4 101 }
Chris@4 102 if(argc>=1){
Chris@4 103 fn_r = *argv;
Chris@4 104 argc--;argv++;
Chris@4 105 }else{
Chris@4 106 fn_r = NULL;
Chris@4 107 }
Chris@4 108 if(argc>=1){
Chris@4 109 fn_w = *argv;
Chris@4 110 argc--;argv++;
Chris@4 111 }else{
Chris@4 112 fn_w = NULL;
Chris@4 113 }
Chris@4 114 {
Chris@4 115 int len;
Chris@4 116 char buff[0x1000];
Chris@4 117 char mode[10];
Chris@4 118
Chris@4 119 if(decompress){
Chris@4 120 BZFILE *BZ2fp_r = NULL;
Chris@4 121 FILE *fp_w = NULL;
Chris@4 122
Chris@4 123 if(fn_w){
Chris@4 124 if((fp_w = fopen(fn_w,"wb"))==NULL){
Chris@4 125 printf("can't open [%s]\n",fn_w);
Chris@4 126 perror("reason:");
Chris@4 127 exit(1);
Chris@4 128 }
Chris@4 129 }else{
Chris@4 130 fp_w = stdout;
Chris@4 131 }
Chris@4 132 if((fn_r == NULL && (BZ2fp_r = BZ2_bzdopen(fileno(stdin),"rb"))==NULL)
Chris@4 133 || (fn_r != NULL && (BZ2fp_r = BZ2_bzopen(fn_r,"rb"))==NULL)){
Chris@4 134 printf("can't bz2openstream\n");
Chris@4 135 exit(1);
Chris@4 136 }
Chris@4 137 while((len=BZ2_bzread(BZ2fp_r,buff,0x1000))>0){
Chris@4 138 fwrite(buff,1,len,fp_w);
Chris@4 139 }
Chris@4 140 BZ2_bzclose(BZ2fp_r);
Chris@4 141 if(fp_w != stdout) fclose(fp_w);
Chris@4 142 }else{
Chris@4 143 BZFILE *BZ2fp_w = NULL;
Chris@4 144 FILE *fp_r = NULL;
Chris@4 145
Chris@4 146 if(fn_r){
Chris@4 147 if((fp_r = fopen(fn_r,"rb"))==NULL){
Chris@4 148 printf("can't open [%s]\n",fn_r);
Chris@4 149 perror("reason:");
Chris@4 150 exit(1);
Chris@4 151 }
Chris@4 152 }else{
Chris@4 153 fp_r = stdin;
Chris@4 154 }
Chris@4 155 mode[0]='w';
Chris@4 156 mode[1] = '0' + level;
Chris@4 157 mode[2] = '\0';
Chris@4 158
Chris@4 159 if((fn_w == NULL && (BZ2fp_w = BZ2_bzdopen(fileno(stdout),mode))==NULL)
Chris@4 160 || (fn_w !=NULL && (BZ2fp_w = BZ2_bzopen(fn_w,mode))==NULL)){
Chris@4 161 printf("can't bz2openstream\n");
Chris@4 162 exit(1);
Chris@4 163 }
Chris@4 164 while((len=fread(buff,1,0x1000,fp_r))>0){
Chris@4 165 BZ2_bzwrite(BZ2fp_w,buff,len);
Chris@4 166 }
Chris@4 167 BZ2_bzclose(BZ2fp_w);
Chris@4 168 if(fp_r!=stdin)fclose(fp_r);
Chris@4 169 }
Chris@4 170 }
Chris@4 171 #ifdef _WIN32
Chris@4 172 BZ2DLLFreeLibrary();
Chris@4 173 #endif
Chris@4 174 return 0;
Chris@4 175 }