/* $Id: SdifFGet.h,v 3.5 2000/07/18 15:08:29 tisseran Exp $ * * Copyright (c) 1998 by IRCAM - Centre Pompidou * All rights reserved. * * For any information regarding this and other IRCAM software, please * send email to: * manager@ircam.fr LIBRARY * SdifFGet.h * * F : SdifFileT*, Get : ascii frames reading, * common to read a sdif file and a pseudo-sdif text file * 'verbose' allows to choise if the file is a sdif file or a pseudo-sdif text file * * author: Dominique Virolle 1997 * DESCRIPTION LECTURE Remarque: En lecture, on a toujours une avance sur la signature des chunks ou des frames. Ceci permet d'orientée la lecture suivant le type de données: chunk ou frame. LOG * $Log: SdifFGet.h,v $ * Revision 3.5 2000/07/18 15:08:29 tisseran * This release implements the New SDIF Specification (june 1999): * - Name Values Table are written in a 1NVT frame which contains a 1NVT matrix * - Frame and matrix type declaration are written in a 1TYP frame which contains a 1TYP matrix. * - Stream ID are written in a 1IDS frame which contains a 1IDS matrix. * * Read function accept the previous version of the specification (read a text frame without matrix) to be compatible with older SDIF files. * * SdifString.h and SdifString.c implements some string mangement (creation, destruction, append, test of end of string, getc, ungetc). * * WATCH OUT: * We don't care about the old SDIF Specification (_SdifFormatVersion < 3) * To use _SdifFormatVersion < 3, get the previous release. * * Revision 3.4 2000/04/11 14:31:20 schwarz * Read/write NVT as frame with 1 text matrix, conforming to SDIF spec. * * Revision 3.3 1999/09/28 13:08:52 schwarz * Included #include for cross-platform uniformisation, * which in turn includes host_architecture.h and SDIF's project_preinclude.h. * * Revision 3.2 1999/08/25 18:32:34 schwarz * Added cocoon-able comments with sentinel "DOC:" (on a single line). * * Revision 3.1 1999/03/14 10:56:38 virolle * SdifStdErr add * * Revision 2.3 1999/01/23 15:55:39 virolle * add querysdif.dsp, delete '\r' chars from previous commit * * Revision 2.2 1999/01/23 13:57:23 virolle * General Lists, and special chunk preparation to become frames * * Revision 2.1 1998/12/21 18:27:06 schwarz * Inserted copyright message. * * Revision 2.0 1998/11/29 11:41:29 virolle * - New management of interpretation errors. * - Alignement of frames with CNMAT (execpt specials Chunk 1NVT, 1TYP, 1IDS). * _ Sdif Header File has a Sdif format version. * - Matrices order in frames is not important now. (only one occurence of * a Matrix Type in a Frame Type declaration ) * - Hard coded predefined types more dynamic management. * - Standart streams (stdin, stdout, stderr) set as binary for Windows32 to * have exactly the same result on each plateforme. * * Revision 1.2 1998/11/10 15:31:40 schwarz * Removed all 'extern' keywords for prototypes, since this is redundant * (function prototypes are automatically linked extern), and it * prohibits cocoon from generating an entry in the HTML documentation * for this function. */ #ifndef _SdifFGet_ #define _SdifFGet_ #include "SdifGlobals.h" #include "SdifFileStruct.h" #include "SdifString.h" #include /*DOC: Lit 4 bytes, les considère comme une signature qui est placée dans SdifF->CurrSignature, incrémente NbCharRead du nombre de bytes lus et renvoie le dernier caractère lu convert en int (-1 si erreur). */ int SdifFGetSignature (SdifFileT *SdifF, size_t *NbCharRead); int SdifFGetOneNameValue (SdifFileT *SdifF, int Verbose, size_t *NbCharRead); size_t SdifFGetNameValueLCurrNVT(SdifFileT *SdifF, int Verbose); int SdifFNameValueLCurrNVTfromString (SdifFileT *SdifF, char *str); /*DOC: Remark: This function implements the old SDIF Specification (before June 1999) Get the current matrix type from a file */ size_t SdifFGetOneMatrixType (SdifFileT *SdifF, int Verbose); /*DOC: Remark: This function implements the new SDIF Specification (June 1999): Name Value Table, Matrix and Frame Type declaration, Stream ID declaration are defined in text matrix: 1NVT 1NVT 1TYP 1TYP 1IDS 1IDS Return the current matrix type from a SdifStringT */ size_t SdifFGetOneMatrixTypefromSdifString(SdifFileT *SdifF, SdifStringT *SdifString); /*DOC: Remark: This function implements the old SDIF Specification (before June 1999) Get the current component from a file */ int SdifFGetOneComponent (SdifFileT *SdifF, int Verbose, SdifSignature *MatrixSignature, char *ComponentName, size_t *NbCharRead); /*DOC: Remark: This function implements the new SDIF Specification (June 1999): Name Value Table, Matrix and Frame Type declaration, Stream ID declaration are defined in text matrix: 1NVT 1NVT 1TYP 1TYP 1IDS 1IDS Return the current component from a SdifStringT */ int SdifFGetOneComponentfromSdifString(SdifFileT *SdifF, SdifStringT *SdifString, SdifSignature *MatrixSignature, char *ComponentName); /*DOC: Remark: This function implements the old SDIF Specification (before June 1999) Get the current Frame type from a file */ size_t SdifFGetOneFrameType (SdifFileT *SdifF, int Verbose); /*DOC: Remark: This function implements the new SDIF Specification (June 1999): Name Value Table, Matrix and Frame Type declaration, Stream ID declaration are defined in text matrix: 1NVT 1NVT 1TYP 1TYP 1IDS 1IDS Return the current frame type from a SdifStringT */ size_t SdifFGetOneFrameTypefromSdifString(SdifFileT *SdifF, SdifStringT *SdifString); /*DOC: Remark: This function implements the old SDIF Specification (before June 1999) Get all types from a file */ size_t SdifFGetAllType (SdifFileT *SdifF, int Verbose); /*DOC: Remark: This function implements the new SDIF Specification (June 1999): Name Value Table, Matrix and Frame Type declaration, Stream ID declaration are defined in text matrix: 1NVT 1NVT 1TYP 1TYP 1IDS 1IDS Get all types from a SdifStringT */ size_t SdifFGetAllTypefromSdifString (SdifFileT *SdifF, SdifStringT *SdifString); /*DOC: Remark: This function implements the old SDIF Specification (before June 1999) Get the current Stream ID from a file */ int SdifFGetOneStreamID (SdifFileT *SdifF, int Verbose, size_t *NbBytesRead); /*DOC: Remark: This function is implements the new SDIF Specification (June 1999): Name Value Table, Matrix and Frame Type declaration, Stream ID declaration are defined in text matrix: 1NVT 1NVT 1TYP 1TYP 1IDS 1IDS Get the current Stream ID from a SdifStringT */ int SdifFgetOneStreamIDfromSdifString(SdifFileT *SdifF, SdifStringT *SdifString); /*DOC: Remark: This function implements the old SDIF Specification (before June 1999) Get all Stream ID from a file */ size_t SdifFGetAllStreamID (SdifFileT *SdifF, int Verbose); /*DOC: Remark: This function implements the new SDIF Specification (June 1999): Name Value Table, Matrix and Frame Type declaration, Stream ID declaration are defined in text matrix: 1NVT 1NVT 1TYP 1TYP 1IDS 1IDS Get the current Stream ID from a SdifStringT */ size_t SdifFGetAllStreamIDfromSdifString(SdifFileT *SdifF, SdifStringT *SdifString); /* * obsolete */ size_t SdifFGetNameValueCurrHT (SdifFileT *SdifF, int Verbose); #endif /* _SdifFGet_ */