Subversion Repositories Kolibri OS

Rev

Rev 576 | Rev 799 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 576 Rev 646
Line 77... Line 77...
77
 
77
 
78
    rd->filelen = fileinfo.size; 
78
    rd->filelen = fileinfo.size; 
79
    rd->strpos = 0;
79
    rd->strpos = 0;
Line 80... Line 80...
80
    retval=read_file (file,rd->buffer,0,0x10000,&bytes);
80
    retval=read_file (file,rd->buffer,0,0x10000,&bytes);
81
  
81
 
82
    if (retval) return 0; 
82
    if( (retval==0)||(retval==6))
83
      
83
    {
-
 
84
      rd->strremain=bytes;
84
    rd->strremain = bytes;
85
      rd->filepos=bytes;
85
    rd->filepos = bytes;
86
      rd->strpos = 0;  
-
 
87
      return 1;
-
 
88
    };
Line 86... Line 89...
86
    return 1; 
89
    return 0;  
87
};
90
};
88
 
91
 
Line -... Line 92...
-
 
92
static int fill_reader(struct reader *rd)
89
static int fill_reader(struct reader *rd)
93
{  int retval;
90
{  int retval;
-
 
Line -... Line 94...
-
 
94
   int bytes;
91
    int bytes;
95
    
92
    
96
   if(rd->strremain > 0)
93
    mem_cpy(rd->buffer,rd->stream,rd->strremain);
97
     mem_cpy(rd->buffer,rd->stream,rd->strremain);
94
    rd->stream = rd->buffer;
98
 
95
   
99
   rd->stream = rd->buffer;
96
    retval=read_file (rd->hFile,rd->buffer+rd->strremain,rd->filepos,
100
   retval=read_file (rd->hFile,rd->buffer+rd->strremain,rd->filepos,
97
                             0x10000-rd->strremain,&bytes);
101
                            0x10000-rd->strremain,&bytes);
-
 
102
   if( (retval==0)||(retval==6))
-
 
103
   {
98
    if (retval) return 0; 
104
     rd->strremain+=bytes;
99
    if(!bytes) return 0;    
105
     rd->filepos+=bytes;
Line 100... Line 106...
100
    rd->strremain+=bytes;
106
     rd->strpos = 0;  
101
    rd->filepos+=bytes;
107
     return bytes;
102
    rd->strpos = 0;  
108
   };
103
    return 1;
109
   return 0;  
104
};
110
};
-
 
111
 
105
 
112
int __stdcall set_reader(struct reader *rd, unsigned int filepos)
106
int __stdcall set_reader(struct reader *rd, unsigned int filepos)
113
{  int retval;
107
{  int retval;
114
   unsigned int bytes;
108
    unsigned int bytes;
115
   retval=read_file (rd->hFile,rd->buffer,filepos,0x10000,&bytes);
Line 121... Line 128...
121
    ssize=0;
128
      ssize=0;
122
    oldhead=0;   
129
      oldhead=0;   
123
    memset(bsspace,0,sizeof(bsspace));    
130
      memset(bsspace,0,sizeof(bsspace));
124
    return 1; 
131
      return 1; 
125
};
132
   };
-
 
133
   return 0; 
-
 
134
};
Line 126... Line 135...
126
    
135
    
127
static int stream_head_read(struct reader *rd,unsigned long *newhead)
136
static int stream_head_read(struct reader *rd,unsigned long *newhead)
128
{  
137
{  
129
    if(rd->strremain < 4)
138
    if(rd->strremain < 4)
Line 137... Line 146...
137
    return TRUE;
146
    return TRUE;
138
};
147
};
Line 139... Line 148...
139
 
148
 
140
int stream_read_raw(struct reader *rd,unsigned char *buf, int size)
149
int stream_read_raw(struct reader *rd,unsigned char *buf, int size)
141
{
-
 
142
    if(rd->strremain < size)
-
 
143
         if( !fill_reader(rd))
-
 
Line -... Line 150...
-
 
150
{
-
 
151
 
-
 
152
    if(rd->strremain < size) fill_reader(rd);
-
 
153
 
-
 
154
    if(size > rd->strremain) size=rd->strremain;
-
 
155
    
144
          return 0; 
156
    if(size>0)
145
 
157
    { 
146
    mem_cpy(buf,rd->stream,size);
158
      mem_cpy(buf,rd->stream,size);
147
    rd->strpos+=size;
159
      rd->strpos+=size;
-
 
160
      rd->stream+=size;
-
 
161
      rd->strremain-=size;  
148
    rd->stream+=size;
162
      return size;
149
    rd->strremain-=size;  
163
    };
Line 150... Line 164...
150
    return 1;
164
    return 0;
151
};
165
};
152
 
166
 
Line 489... Line 503...
489
	/* if filepos is invalid, so is framepos */
503
	/* if filepos is invalid, so is framepos */
490
	//framepos = rd->filepos - 4;
504
	//framepos = rd->filepos - 4;
491
  /* read main data into memory */
505
  /* read main data into memory */
492
	/* 0 is error! */
506
	/* 0 is error! */
Line 493... Line 507...
493
	
507
	
494
	if(!rd->read_frame_body(rd,bsbuf,fr->framesize))
508
	if(rd->read_frame_body(rd,bsbuf,fr->framesize) < fr->framesize)
Line 495... Line 509...
495
		return 0;
509
		return 0;
496
	
510
	
497
#if 0		
511
#if 0		
Line 919... Line 933...
919
	unsigned char* tagdata = NULL;
933
	unsigned char* tagdata = NULL;
920
	unsigned char major = header & 0xff;
934
	unsigned char major = header & 0xff;
Line 921... Line 935...
921
 
935
 
Line 922... Line 936...
922
	if(major == 0xff) return -1;
936
	if(major == 0xff) return -1;
923
	
937
	
924
	if (!rd->read_frame_body(rd,buf,6))
938
	if (rd->read_frame_body(rd,buf,6)<6)
925
   	  return 0;
939
   	  return 0;
Line 926... Line 940...
926
	if(buf[0] == 0xff) /* major version, will never be 0xff */
940
	if(buf[0] == 0xff) /* major version, will never be 0xff */