mputi.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void C2F() mputi (integer *fd, integer *res, integer *n, char type[], integer *ierr)


Function Documentation

void C2F() mputi ( integer fd,
integer res,
integer n,
char  type[],
integer ierr 
)

Definition at line 31 of file mputi.c.

References c1, fd, soundstream::fp, ft, ftf, GetFile(), GetSwap(), i, ierr, long, MPUTI, n, nc, res, sciprint(), SWAP, swap, swapl(), swapw(), type, val, wblong(), wbshort(), wllong(), and wlshort().

00032 {  
00033   char c1,c2;
00034   int i,nc,swap;
00035   FILE *fa;
00036   ft_t ft;
00037   char *RES_c;
00038   unsigned char *RES_uc;
00039   unsigned long *RES_ul;
00040   unsigned short *RES_us;
00041 
00042   RES_c=(char *)res;
00043   RES_uc=(unsigned char *)res;
00044   RES_ul=(unsigned long *)res;
00045   RES_us=(unsigned short *)res;
00046 
00047   fa = GetFile(fd);
00048   swap = GetSwap(fd);
00049   ft = &ftf; 
00050   ft->fp = fa;
00051   nc=strlen(type);
00052   if ( nc == 0) 
00053     {
00054       sciprint("mputi : format is of 0 length  \r\n",type);
00055       *ierr=1;
00056       return;
00057     }
00058   if (fa)
00059     { 
00060       switch ( type[0] )
00061         {
00062         case 'l' : 
00063           swap=SWAP(type,fd);
00064           if(swap<0) {*ierr=1;return;}
00065           MPUTI(long,swapl);
00066           break;
00067         case 's' : 
00068           swap=SWAP(type,fd);
00069           if(swap<0) {*ierr=1;return;}
00070           MPUTI(short,swapw);
00071           break;
00072         case 'c' : 
00073           for ( i=0; i< *n; i++) 
00074             {
00075               char val;
00076               val =(char) *RES_c++;
00077               fwrite(&val,sizeof(char),1,fa);
00078             }
00079           break;
00080         case 'u' :
00081           if ( strlen(type) > 1) c1=type[1] ;
00082           else c1=' ';
00083                                   
00084           switch ( c1 )
00085             {
00086             case 'b' :
00087               if ( strlen(type) > 2) c2=type[2];
00088               else c2=' ';
00089               switch (c2 )
00090                 {
00091                 case 'l' :
00092                   /* Write long, big-endian: big end first. 
00093                      68000/SPARC style. */
00094                   for ( i=0; i< *n; i++) 
00095                     {
00096                       unsigned long val;
00097                       val =(unsigned long) *RES_ul++;
00098                       wblong(ft, val);
00099                     }
00100                   break;
00101                 case 's' :
00102                   /* Write short, big-endian: big end first. 
00103                      68000/SPARC style. */
00104                   for ( i=0; i< *n; i++) 
00105                     {
00106                       unsigned short val;
00107                       val =(unsigned short) *RES_uc++;
00108                       wbshort(ft,val);
00109                     }
00110                   break;
00111                   
00112                 }
00113               break;
00114             case 'l' : 
00115               if ( strlen(type) > 2) c2=type[2];
00116               else c2=' ';
00117               switch ( c2 )
00118                 {
00119                 case 'l' :
00120                   /* Write long, little-endian: little end first. 
00121                      VAX/386 style.*/
00122                   for ( i=0; i< *n; i++) 
00123                       {
00124                         unsigned long val;
00125                         val =(unsigned long) *RES_ul++;
00126                         wllong(ft, val);
00127                       }
00128                   break;
00129                 case 's' :
00130                   /* Write short, little-endian: little end first. 
00131                      VAX/386 style.*/
00132                   for ( i=0; i< *n; i++) 
00133                     {
00134                       unsigned short val;
00135                       val =(unsigned short) *RES_us++;
00136                       wlshort(ft,val);
00137                     }
00138                   break;
00139                 default: 
00140                   MPUTI(unsigned long,swapl);
00141                   break;
00142                 }
00143               break;
00144             case 's' : 
00145               MPUTI(unsigned short,swapw);
00146               break;
00147             case 'c' :
00148               for ( i=0; i< *n; i++) 
00149                 {
00150                   unsigned char val;
00151                   val =(unsigned char) *RES_uc++;
00152                   fwrite(&val,sizeof(unsigned char),1,fa);
00153                 }
00154               break;
00155             default :
00156               sciprint("mputi : %s format not recognized \r\n",type);
00157               *ierr=1;
00158               return;
00159             }
00160           break;
00161         default :
00162           sciprint("mputi : %s format not recognized \r\n",type);
00163           *ierr=1;
00164           return;
00165         }
00166       *ierr = ferror(fa);
00167       return;
00168     }
00169   sciprint("No input file \r\n");
00170   *ierr=1;
00171 }

Here is the call graph for this function:


Generated on Sun Mar 4 16:08:02 2007 for Scilab [trunk] by  doxygen 1.5.1