28#define FORM_BABYLONDB MakeID ('N','X','D','B')
29#define FORM_LABEL MakeID ('N','L','B','L')
30#define FORM_TEXT MakeID ('N','T','X','T')
31#define FORM_TRANS MakeID ('N','T','R','N')
32#define CHUNK_COMMENT MakeID ('C','M','N','T')
33#define CHUNK_CONTEXT MakeID ('C','T','X','T')
34#define CHUNK_SPEAKER MakeID ('S','P','K','R')
35#define CHUNK_LISTENER MakeID ('L','T','N','R')
36#define CHUNK_TEXT MakeID ('T','E','X','T')
37#define CHUNK_WAVE MakeID ('W','A','V','E')
38#define CHUNK_WAVE_INFO MakeID ('W','V','I','N')
39#define CHUNK_INFO MakeID ('I','N','F','O')
40#define CHUNK_NAME MakeID ('N','A','M','E')
42#define MAX_BUFFER (100*1024)
81static int writeString (
IFF_FILE *iff, OLECHAR *
string,
int chunk_id )
83 int len = (wcslen (
string ) );
84 int bytes = (len+1)*
sizeof(OLECHAR);
101static int readString (
IFF_FILE *iff, OLECHAR *
string )
133 IFF_Write ( iff, &trinfo,
sizeof ( trinfo ));
150 IFF_Write ( iff, &wvinfo,
sizeof ( wvinfo ));
174 txinfo.
id = text->
ID ();
182 IFF_Write ( iff, &txinfo,
sizeof ( txinfo ));
198 IFF_Write ( iff, &wvinfo,
sizeof ( wvinfo ));
229 if ( !( iff =
IFF_New ( filename )))
247 IFF_Write ( iff, &dbinfo,
sizeof ( dbinfo ));
256 if ( !writeTextForm ( iff, text ) )
283 IFF_Write ( iff, &lbinfo,
sizeof ( lbinfo ));
294 text =
label->FirstText ( sh_text );
300 if ( !writeTextForm ( iff, text ) )
309 if ( !writeTransForm ( iff, trans ) )
317 text =
label->NextText ( sh_text );
351 if ( !(iff =
IFF_Load ( filename ) ) )
369 IFF_READ ( iff, &dbinfo,
sizeof ( dbinfo ), error );
389 label->AddText ( text );
420 IFF_READ ( iff, &lbinfo,
sizeof (lbinfo), error );
424 readString ( iff, buffer );
425 label->SetComment ( buffer );
428 readString ( iff, buffer );
429 label->SetContext ( buffer );
432 readString ( iff, buffer );
433 label->SetSpeaker ( buffer );
436 readString ( iff, buffer );
437 label->SetListener ( buffer );
440 readString ( iff, buffer );
441 label->SetName ( buffer );
455 label->AddText ( text );
475 IFF_READ ( iff, &txinfo,
sizeof (txinfo), error );
480 readString ( iff, buffer );
481 text->
Set ( buffer );
485 readString ( iff, buffer );
491 IFF_READ ( iff, &wvinfo,
sizeof (wvinfo), error );
516 IFF_READ ( iff, &trinfo,
sizeof (trinfo), error );
521 readString ( iff, buffer );
522 trans->
Set ( buffer );
526 readString ( iff, buffer );
532 IFF_READ ( iff, &wvinfo,
sizeof (wvinfo), error );
561 label->AddText ( text );
624 if ( !(iff =
IFF_Open ( filename ) ) )
642 IFF_READ ( iff, &dbinfo,
sizeof ( dbinfo ), error );
void SetRevision(int new_rev)
void Set(OLECHAR *string)
Translation * FirstTranslation(ListSearch &sh)
void SetWave(OLECHAR *string)
Translation * NextTranslation(ListSearch &sh)
void AddTranslation(Translation *trans)
void SetProgress(int pos)
void InitProgress(int range)
void SetValid(int new_valid)
BabylonLabel * FirstLabel(ListSearch &sh)
BabylonText * NextObsolete(ListSearch &sh)
void AddLabel(BabylonLabel *label)
BabylonText * FirstObsolete(ListSearch &sh)
void AddObsolete(BabylonText *text)
BabylonLabel * NextLabel(ListSearch &sh)
void SetRevision(int new_rev)
void Set(OLECHAR *string)
void SetLangID(LangID new_id)
void SetComment(OLECHAR *string)
int IFF_CloseChunk(IFF_FILE *iff)
int IFF_NewForm(IFF_FILE *iff, int id)
int IFF_CloseForm(IFF_FILE *iff)
int IFF_Write(IFF_FILE *iff, void *buff, int size)
int IFF_NextForm(IFF_FILE *iff)
int IFF_NewChunk(IFF_FILE *iff, int id)
IFF_FILE * IFF_New(const char *name)
IFF_FILE * IFF_Load(const char *name)
IFF_FILE * IFF_Open(const char *name)
int IFF_NextChunk(IFF_FILE *iff)
void IFF_Close(IFF_FILE *iff)
int LoadMainDB(TransDB *db, const char *filename, void(*cb)(void))
int GetLabelCountDB(char *filename)
int WriteMainDB(TransDB *db, const char *filename, CBabylonDlg *dlg)