doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
roqParam.cpp
Go to the documentation of this file.
1 /*
2 ===========================================================================
3 
4 Doom 3 GPL Source Code
5 Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
6 
7 This file is part of the Doom 3 GPL Source Code (?Doom 3 Source Code?).
8 
9 Doom 3 Source Code is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13 
14 Doom 3 Source Code is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with Doom 3 Source Code. If not, see <http://www.gnu.org/licenses/>.
21 
22 In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below.
23 
24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
25 
26 ===========================================================================
27 */
28 #include "../../../idlib/precompiled.h"
29 #pragma hdrstop
30 
31 #include "roqParam.h"
32 
33 //
34 // read a parameter file in (true I bloddy well had to do this again) (and yet again to c++)
35 //
36 
37 int parseRange(const char *rangeStr,int field, int skipnum[], int startnum[], int endnum[],int numfiles[],bool padding[],int numpadding[] );
38 int parseTimecodeRange(const char *rangeStr,int field, int skipnum[], int startnum[], int endnum[],int numfiles[],bool padding[],int numpadding[] );
39 
40 void roqParam::InitFromFile( const char *fileName )
41 {
42  idParser *src;
43  idToken token;
44  int i, readarg;
45 
46 
48  if ( !src->IsLoaded() ) {
49  delete src;
50  common->Printf("Error: can't open param file %s\n", fileName);
51  return;
52  }
53 
54  common->Printf("initFromFile: %s\n", fileName);
55 
56  fullSearch = false;
57  scaleDown = false;
58  encodeVideo = false;
59  addPath = false;
60  screenShots = false;
61  startPalette = false;
62  endPalette = false;
63  fixedPalette = false;
64  keyColor = false;
65  justDelta = false;
66  useTimecodeForRange = false;
67  onFrame = 0;
68  numInputFiles = 0;
69  currentPath[0] = '\0';
70  make3DO = false;
71  makeVectors = false;
72  justDeltaFlag = false;
73  noAlphaAtAll = false;
74  twentyFourToThirty = false;
75  hasSound = false;
76  isScaleable = false;
77  firstframesize = 56*1024;
78  normalframesize = 20000;
79  jpegDefault = 85;
80 
81  realnum = 0;
82  while( 1 ) {
83  if ( !src->ReadToken( &token ) ) {
84  break;
85  }
86 
87  readarg = 0;
88 // input dir
89  if (token.Icmp( "input_dir") == 0) {
90  src->ReadToken( &token );
91  addPath = true;
92  currentPath = token;
93 // common->Printf(" + input directory is %s\n", currentPath );
94  readarg++;
95  continue;
96  }
97 // input dir
98  if (token.Icmp( "scale_down") == 0) {
99  scaleDown = true;
100 // common->Printf(" + scaling down input\n" );
101  readarg++;
102  continue;
103  }
104 // full search
105  if (token.Icmp( "fullsearch") == 0) {
107  fullSearch = true;
108  readarg++;
109  continue;
110  }
111 // scaleable
112  if (token.Icmp( "scaleable") == 0) {
113  isScaleable = true;
114  readarg++;
115  continue;
116  }
117 // input dir
118  if (token.Icmp( "no_alpha") == 0) {
119  noAlphaAtAll = true;
120 // common->Printf(" + scaling down input\n" );
121  readarg++;
122  continue;
123  }
124  if (token.Icmp( "24_fps_in_30_fps_out") == 0) {
125  twentyFourToThirty = true;
126  readarg++;
127  continue;
128  }
129 // video in
130  if (token.Icmp( "video_in") == 0) {
131  encodeVideo = true;
132 // common->Printf(" + Using the video port as input\n");
133  continue;
134  }
135 //timecode range
136  if (token.Icmp( "timecode") == 0) {
137  useTimecodeForRange = true;
138  firstframesize = 12*1024;
139  normalframesize = 4500;
140 // common->Printf(" + Using timecode as range\n");
141  continue;
142  }
143 // soundfile for making a .RnR
144  if (token.Icmp( "sound") == 0) {
145  src->ReadToken( &token );
146  soundfile = token;
147  hasSound = true;
148 // common->Printf(" + Using timecode as range\n");
149  continue;
150  }
151 // soundfile for making a .RnR
152  if (token.Icmp( "has_sound") == 0) {
153  hasSound = true;
154  continue;
155  }
156 // outfile
157  if (token.Icmp( "filename") == 0) {
158  src->ReadToken( &token );
159  outputFilename = token;
160  i = strlen(outputFilename);
161 // common->Printf(" + output file is %s\n", outputFilename );
162  readarg++;
163  continue;
164  }
165 // starting palette
166  if (token.Icmp( "start_palette") == 0) {
167  src->ReadToken( &token );
168  sprintf(startPal, "/LocalLibrary/vdxPalettes/%s", token.c_str());
169 // common->Error(" + starting palette is %s\n", startPal );
170  startPalette = true;
171  readarg++;
172  continue;
173  }
174 // ending palette
175  if (token.Icmp( "end_palette") == 0) {
176  src->ReadToken( &token );
177  sprintf(endPal, "/LocalLibrary/vdxPalettes/%s", token.c_str());
178 // common->Printf(" + ending palette is %s\n", endPal );
179  endPalette = true;
180  readarg++;
181  continue;
182  }
183 // fixed palette
184  if (token.Icmp( "fixed_palette") == 0) {
185  src->ReadToken( &token );
186  sprintf(startPal, "/LocalLibrary/vdxPalettes/%s", token.c_str());
187 // common->Printf(" + fixed palette is %s\n", startPal );
188  fixedPalette = true;
189  readarg++;
190  continue;
191  }
192 // these are screen shots
193  if (token.Icmp( "screenshot") == 0) {
194 // common->Printf(" + shooting screen shots\n" );
195  screenShots = true;
196  readarg++;
197  continue;
198  }
199 // key_color r g b
200  if (token.Icmp( "key_color") == 0) {
201  keyR = src->ParseInt();
202  keyG = src->ParseInt();
203  keyB = src->ParseInt();
204  keyColor = true;
205 // common->Printf(" + key color is %03d %03d %03d\n", keyR, keyG, keyB );
206  readarg++;
207  continue;
208  }
209 // only want deltas
210  if (token.Icmp( "just_delta") == 0) {
211 // common->Printf(" + outputting deltas in the night\n" );
212 // justDelta = true;
213 // justDeltaFlag = true;
214  readarg++;
215  continue;
216  }
217 // doing 3DO
218  if (token.Icmp( "3DO") == 0) {
219  make3DO = true;
220  readarg++;
221  continue;
222  }
223 // makes codebook vector tables
224  if (token.Icmp( "codebook") == 0) {
225  makeVectors = true;
226  readarg++;
227  continue;
228  }
229 // set first frame size
230  if (token.Icmp( "firstframesize") == 0) {
231  firstframesize = src->ParseInt();
232  readarg++;
233  continue;
234  }
235 // set normal frame size
236  if (token.Icmp( "normalframesize") == 0) {
237  normalframesize = src->ParseInt();
238  readarg++;
239  continue;
240  }
241 // set normal frame size
242  if (token.Icmp( "stillframequality") == 0) {
243  jpegDefault = src->ParseInt();
244  readarg++;
245  continue;
246  }
247  if (token.Icmp( "input") == 0) {
248  int num_files = 255;
249 
250  range = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
251  padding = (bool *)Mem_ClearedAlloc( num_files * sizeof(bool) );
252  padding2 = (bool *)Mem_ClearedAlloc( num_files * sizeof(bool) );
253  skipnum = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
254  skipnum2 = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
255  startnum = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
256  startnum2 = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
257  endnum = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
258  endnum2 = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
259  numpadding = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
260  numpadding2 = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
261  numfiles = (int *)Mem_ClearedAlloc( num_files * sizeof(int) );
262  idStr empty;
263  file.AssureSize( num_files, empty );
264  file.AssureSize( num_files, empty );
265 
266  field = 0;
267  realnum = 0;
268  do {
269  src->ReadToken(&token);
270  if ( token.Icmp( "end_input") != 0 ) {
271  idStr arg1, arg2, arg3;
272 
273  file[field] = token;
274  while (src->ReadTokenOnLine( &token ) && token.Icmp( "[" ) ) {
275  file[field].Append( token );
276  }
277 
278  arg1 = token;
279  while (src->ReadTokenOnLine( &token ) && token.Icmp( "[" ) ) {
280  arg1 += token;
281  }
282 
283  arg2 = token;
284  while (src->ReadTokenOnLine( &token ) && token.Icmp( "[" ) ) {
285  arg2 += token;
286  }
287 
288  arg3 = token;
289  while (src->ReadTokenOnLine( &token ) && token.Icmp( "[" ) ) {
290  arg3 += token;
291  }
292 
293  if ( arg1[0] != '[' ) {
294 // common->Printf(" + reading %s\n", file[field] );
295  range[field] = 0;
296  numfiles[field] = 1;
297  realnum++;
298  }
299  else {
300  if ( arg1[0] == '[' )
301  {
302  range[field] = 1;
303  if (useTimecodeForRange) {
305 // common->Printf(" + reading %s from %d to %d\n", file[field], startnum[field], endnum[field]);
306  }
307  else {
309 // common->Printf(" + reading %s from %d to %d\n", file[field], startnum[field], endnum[field]);
310  }
311  }
312  else if (( arg1[0] != '[' ) && ( arg2[0] == '[') && ( arg3[0] =='[')) { //a double ranger...
313  int files1,files2;
314 
315  file2[field] = arg1;
316  range[field] = 2;
318 // common->Printf(" + reading %s from %d to %d\n", file[field], startnum[field], endnum[field]);
320 // common->Printf(" + reading %s from %d to %d\n", file2[field], startnum2[field], endnum2[field]);
321  if (files1 != files2) {
322  common->Error( "You had %d files for %s and %d for %s!", files1, arg1.c_str(), files2, arg2.c_str() );
323  }
324  else {
325  realnum += files1;//not both, they are parallel
326  }
327  }
328  else {
329  common->Error("Error: invalid range on open (%s %s %s)\n", arg1.c_str(), arg2.c_str(), arg3.c_str() );
330  }
331  }
332  field++;
333  }
334  } while (token.Icmp( "end_input"));
335  }
336  }
337 
340  common->Printf(" + reading a total of %d frames in %s\n", numInputFiles, currentPath.c_str() );
341  delete src;
342 }
343 
344 void roqParam::GetNthInputFileName( idStr &fileName, int n ) {
345  int i, myfield, index,hrs,mins,secs,frs;
346  char tempfile[33], left[256], right[256], *strp;
347  if ( n > realnum ) n = realnum;
348 // overcome starting at zero by ++ing and then --ing.
349  if (TwentyFourToThirty()) { n++; n = (n/5) * 4 + (n % 5); n--; }
350 
351  i = 0;
352  myfield = 0;
353 
354  while (i <= n) {
355  i += numfiles[myfield++];
356  }
357  myfield--;
358  i -= numfiles[myfield];
359 
360  if ( range[myfield] == 1 ) {
361 
362  strcpy( left, file[myfield] );
363  strp = strstr( left, "*" );
364  *strp++ = 0;
365  sprintf(right, "%s", strp);
366 
367  if ( startnum[myfield] <= endnum[myfield] ) {
368  index = startnum[myfield] + ((n-i)*skipnum[myfield]);
369  } else {
370  index = startnum[myfield] - ((n-i)*skipnum[myfield]);
371  }
372 
373  if ( padding[myfield] == true ) {
374  if (useTimecodeForRange) {
375  hrs = index/(30*60*60) ;
376  mins = (index/(30*60)) %60;
377  secs = (index/(30)) % 60;
378  frs = index % 30;
379  sprintf(fileName,"%s%.02d%.02d/%.02d%.02d%.02d%.02d%s",left,hrs,mins,hrs,mins,secs,frs,right);
380  }
381  else {
382  sprintf(tempfile, "%032d", index );
383  sprintf(fileName, "%s%s%s", left, &tempfile[ 32-numpadding[myfield] ], right );
384  }
385  } else {
386  if (useTimecodeForRange) {
387  hrs = index/(30*60*60) ;
388  mins = (index/(30*60)) %60;
389  secs = (index/(30)) % 60;
390  frs = index % 30;
391  sprintf(fileName,"%s%.02d%.02d/%.02d%.02d%.02d%.02d%s",left,hrs,mins,hrs,mins,secs,frs,right);
392  }
393  else {
394  sprintf(fileName, "%s%d%s", left, index, right );
395  }
396  }
397  } else if ( range[myfield] == 2 ) {
398 
399  strcpy( left, file[myfield] );
400  strp = strstr( left, "*" );
401  *strp++ = 0;
402  sprintf(right, "%s", strp);
403 
404  if ( startnum[myfield] <= endnum[myfield] ) {
405  index = startnum[myfield] + ((n-i)*skipnum[myfield]);
406  } else {
407  index = startnum[myfield] - ((n-i)*skipnum[myfield]);
408  }
409 
410  if ( padding[myfield] == true ) {
411  sprintf(tempfile, "%032d", index );
412  sprintf(fileName, "%s%s%s", left, &tempfile[ 32-numpadding[myfield] ], right );
413  } else {
414  sprintf(fileName, "%s%d%s", left, index, right );
415  }
416 
417  strcpy( left, file2[myfield] );
418  strp = strstr( left, "*" );
419  *strp++ = 0;
420  sprintf(right, "%s", strp);
421 
422  if ( startnum2[myfield] <= endnum2[myfield] ) {
423  index = startnum2[myfield] + ((n-i)*skipnum2[myfield]);
424  } else {
425  index = startnum2[myfield] - ((n-i)*skipnum2[myfield]);
426  }
427 
428  if ( padding2[myfield] == true ) {
429  sprintf(tempfile, "%032d", index );
430  fileName += va( "\n%s%s%s", left, &tempfile[ 32-numpadding2[myfield] ], right );
431  } else {
432  fileName += va( "\n%s%d%s", left, index, right );
433  }
434  } else {
435  fileName = file[myfield];
436  }
437 }
438 
439 const char* roqParam::GetNextImageFilename( void ) {
440  idStr tempBuffer;
441  int i;
442  int len;
443 
444  GetNthInputFileName( tempBuffer, onFrame++);
445  if ( justDeltaFlag == true ) {
446  onFrame--;
447  justDeltaFlag = false;
448  }
449 
450  if ( addPath == true ) {
451  currentFile = currentPath + "/" + tempBuffer;
452  } else {
453  currentFile = tempBuffer;
454  }
455  len = currentFile.Length();
456  for(i=0;i<len;i++) {
457  if (currentFile[i] == '^') {
458  currentFile[i] = ' ';
459  }
460  }
461 
462  return currentFile.c_str();
463 }
464 
465 const char* roqParam::RoqFilename( void ) {
466  return outputFilename.c_str();
467 }
468 
469 const char* roqParam::SoundFilename( void ) {
470  return soundfile.c_str();
471 }
472 
473 const char* roqParam::RoqTempFilename( void ) {
474  int i, j, len;
475 
476  j = 0;
477  len = outputFilename.Length();
478  for(i=0; i<len; i++ )
479  if ( outputFilename[i] == '/' ) j = i;
480 
481  sprintf(tempFilename, "/%s.temp", &outputFilename[j+1] );
482 
483  return tempFilename.c_str();
484 }
485 
486 bool roqParam::Timecode( void ) {
487  return useTimecodeForRange;
488 }
489 
491  return makeVectors;
492 }
493 
494 bool roqParam::HasSound( void ) {
495  return hasSound;
496 }
497 
498 bool roqParam::DeltaFrames( void ) {
499  return justDelta;
500 }
501 
502 bool roqParam::NoAlpha( void ) {
503  return noAlphaAtAll;
504 }
505 
506 bool roqParam::SearchType( void ) {
507  return fullSearch;
508 }
509 
510 bool roqParam::MoreFrames( void ) {
511  if (onFrame < numInputFiles) {
512  return true;
513  } else {
514  return false;
515  }
516 }
517 
519  return twentyFourToThirty;
520 }
521 
523  return numInputFiles;
524 }
525 
527  return firstframesize;
528 }
529 
531  return normalframesize;
532 }
533 
534 bool roqParam::IsScaleable( void ) {
535  return isScaleable;
536 }
537 
539  return jpegDefault;
540 }
541 
542 int parseRange(const char *rangeStr,int field, int skipnum[], int startnum[], int endnum[],int numfiles[],bool padding[],int numpadding[] ) {
543  char start[64], end[64], skip[64];
544  char *stptr, *enptr, *skptr;
545  int i,realnum;
546 
547  i = 1;
548  realnum = 0;
549  stptr = start;
550  enptr = end;
551  skptr = skip;
552  do {
553  *stptr++ = rangeStr[i++];
554  } while ( rangeStr[i] >= '0' && rangeStr[i] <= '9' );
555  *stptr = '\0';
556  if ( rangeStr[i++] != '-' ) {
557  common->Error("Error: invalid range on middle \n");
558  }
559  do {
560  *enptr++ = rangeStr[i++];
561  } while ( rangeStr[i] >= '0' && rangeStr[i] <= '9' );
562  *enptr = '\0';
563  if ( rangeStr[i] != ']' ) {
564  if ( rangeStr[i++] != '+' ) {
565  common->Error("Error: invalid range on close\n");
566  }
567  do {
568  *skptr++ = rangeStr[i++];
569  } while ( rangeStr[i] >= '0' && rangeStr[i] <= '9' );
570  *skptr = '\0';
571  skipnum[field] = atoi( skip );
572  } else {
573  skipnum[field] = 1;
574  }
575  startnum[field] = atoi( start );
576  endnum[field] = atoi( end );
577  numfiles[field] = (abs( startnum[field] - endnum[field] ) / skipnum[field]) + 1;
578  realnum += numfiles[field];
579  if ( start[0] == '0' && start[1] != '\0' ) {
580  padding[field] = true;
581  numpadding[field] = strlen( start );
582  } else {
583  padding[field] = false;
584  }
585  return realnum;
586 }
587 
588 int parseTimecodeRange(const char *rangeStr,int field, int skipnum[], int startnum[], int endnum[],int numfiles[],bool padding[],int numpadding[] )
589 {
590  char start[64], end[64], skip[64];
591  char *stptr, *enptr, *skptr;
592  int i,realnum,hrs,mins,secs,frs;
593 
594  i = 1;//skip the '['
595  realnum = 0;
596  stptr = start;
597  enptr = end;
598  skptr = skip;
599  do {
600  *stptr++ = rangeStr[i++];
601  } while ( rangeStr[i] >= '0' && rangeStr[i] <= '9' );
602  *stptr = '\0';
603  if ( rangeStr[i++] != '-' ) {
604  common->Error("Error: invalid range on middle \n");
605  }
606  do {
607  *enptr++ = rangeStr[i++];
608  } while ( rangeStr[i] >= '0' && rangeStr[i] <= '9' );
609  *enptr = '\0';
610  if ( rangeStr[i] != ']' ) {
611  if ( rangeStr[i++] != '+' ) {
612  common->Error("Error: invalid range on close\n");
613  }
614  do {
615  *skptr++ = rangeStr[i++];
616  } while ( rangeStr[i] >= '0' && rangeStr[i] <= '9' );
617  *skptr = '\0';
618  skipnum[field] = atoi( skip );
619  } else {
620  skipnum[field] = 1;
621  }
622  sscanf(start,"%2d%2d%2d%2d",&hrs,&mins,&secs,&frs);
623  startnum[field] = hrs*30*60*60 + mins *60*30 + secs*30 +frs;
624  sscanf(end,"%2d%2d%2d%2d",&hrs,&mins,&secs,&frs);
625  endnum[field] = hrs*30*60*60 + mins *60*30 + secs*30 +frs;
626  numfiles[field] = (abs( startnum[field] - endnum[field] ) / skipnum[field]) + 1;
627  realnum += numfiles[field];
628  if ( start[0] == '0' && start[1] != '\0' ) {
629  padding[field] = true;
630  numpadding[field] = strlen( start );
631  } else {
632  padding[field] = false;
633  }
634  return realnum;
635 }
byte keyR
Definition: roqParam.h:76
int firstframesize
Definition: roqParam.h:80
bool SearchType(void)
Definition: roqParam.cpp:506
bool justDelta
Definition: roqParam.h:94
bool keyColor
Definition: roqParam.h:93
bool * padding
Definition: roqParam.h:62
int field
Definition: roqParam.h:77
bool screenShots
Definition: roqParam.h:89
const char * RoqTempFilename(void)
Definition: roqParam.cpp:473
bool addPath
Definition: roqParam.h:88
int Length(void) const
Definition: Str.h:702
bool isScaleable
Definition: roqParam.h:101
void AssureSize(int newSize)
Definition: List.h:445
bool NoAlpha(void)
Definition: roqParam.cpp:502
bool HasSound(void)
Definition: roqParam.cpp:494
GLenum GLsizei n
Definition: glext.h:3705
idStr currentPath
Definition: roqParam.h:66
bool hasSound
Definition: roqParam.h:100
idStr endPal
Definition: roqParam.h:69
bool scaleDown
Definition: roqParam.h:84
Definition: Token.h:71
bool * padding2
Definition: roqParam.h:62
GLuint src
Definition: glext.h:5390
int JpegQuality(void)
Definition: roqParam.cpp:538
GLenum GLsizei len
Definition: glext.h:3472
GLdouble right
Definition: qgl.h:273
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
Definition: glext.h:5286
int i
Definition: process.py:33
int IsLoaded(void) const
Definition: Parser.h:94
GLsizei range
Definition: glext.h:4368
int Icmp(const char *text) const
Definition: Str.h:667
GLuint GLuint GLuint GLuint arg1
Definition: glext.h:5285
int ReadToken(idToken *token)
Definition: Parser.cpp:2338
void GetNthInputFileName(idStr &fileName, int n)
Definition: roqParam.cpp:344
bool twentyFourToThirty
Definition: roqParam.h:85
bool makeVectors
Definition: roqParam.h:96
int * skipnum
Definition: roqParam.h:71
int ParseInt(void)
Definition: Parser.cpp:2775
GLuint index
Definition: glext.h:3476
int * endnum
Definition: roqParam.h:73
bool make3DO
Definition: roqParam.h:95
idStr tempFilename
Definition: roqParam.h:67
bool noAlphaAtAll
Definition: roqParam.h:98
GLuint GLuint end
Definition: glext.h:2845
GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg3
Definition: glext.h:5287
idCommon * common
Definition: Common.cpp:206
bool OutputVectors(void)
Definition: roqParam.cpp:490
int * numpadding
Definition: roqParam.h:74
void InitFromFile(const char *fileName)
Definition: roqParam.cpp:40
int onFrame
Definition: roqParam.h:79
bool startPalette
Definition: roqParam.h:90
int FirstFrameSize(void)
Definition: roqParam.cpp:526
const char * GetNextImageFilename(void)
Definition: roqParam.cpp:439
idStr currentFile
Definition: roqParam.h:70
byte keyG
Definition: roqParam.h:76
const char * RoqFilename(void)
Definition: roqParam.cpp:465
int parseTimecodeRange(const char *rangeStr, int field, int skipnum[], int startnum[], int endnum[], int numfiles[], bool padding[], int numpadding[])
Definition: roqParam.cpp:588
virtual void Printf(const char *fmt,...) id_attribute((format(printf
int NormalFrameSize(void)
Definition: roqParam.cpp:530
int * endnum2
Definition: roqParam.h:73
idStr startPal
Definition: roqParam.h:68
bool TwentyFourToThirty(void)
Definition: roqParam.cpp:518
bool useTimecodeForRange
Definition: roqParam.h:87
int * startnum
Definition: roqParam.h:72
int * numpadding2
Definition: roqParam.h:74
int Append(const type &obj)
Definition: List.h:646
int normalframesize
Definition: roqParam.h:81
idStr soundfile
Definition: roqParam.h:65
idStrList file2
Definition: roqParam.h:64
int * skipnum2
Definition: roqParam.h:71
byte keyB
Definition: roqParam.h:76
int * numfiles
Definition: roqParam.h:75
idStrList file
Definition: roqParam.h:63
bool encodeVideo
Definition: roqParam.h:86
Definition: Str.h:116
void * Mem_ClearedAlloc(const int size)
Definition: Heap.cpp:1149
int ReadTokenOnLine(idToken *token)
Definition: Parser.cpp:2754
const char * c_str(void) const
Definition: Str.h:487
int NumberOfFrames(void)
Definition: roqParam.cpp:522
int numInputFiles
Definition: roqParam.h:59
int parseRange(const char *rangeStr, int field, int skipnum[], int startnum[], int endnum[], int numfiles[], bool padding[], int numpadding[])
Definition: roqParam.cpp:542
GLint j
Definition: qgl.h:264
int jpegDefault
Definition: roqParam.h:82
idStr outputFilename
Definition: roqParam.h:58
bool MoreFrames(void)
Definition: roqParam.cpp:510
char * va(const char *fmt,...)
Definition: Str.cpp:1568
bool DeltaFrames(void)
Definition: roqParam.cpp:498
bool Timecode(void)
Definition: roqParam.cpp:486
int * startnum2
Definition: roqParam.h:72
virtual void Error(const char *fmt,...) id_attribute((format(printf
const char * SoundFilename(void)
Definition: roqParam.cpp:469
bool fullSearch
Definition: roqParam.h:99
bool fixedPalette
Definition: roqParam.h:92
int realnum
Definition: roqParam.h:78
int sprintf(idStr &string, const char *fmt,...)
Definition: Str.cpp:1528
bool endPalette
Definition: roqParam.h:91
GLuint start
Definition: glext.h:2845
bool justDeltaFlag
Definition: roqParam.h:97
bool IsScaleable(void)
Definition: roqParam.cpp:534