| 83 | 
   | 
 type | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 84 | 
   | 
   TDatData = packed record | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 85 | 
   | 
     {0x00} | 
 
 
 
 
 
 
 
 
 
 
 
 | 86 | 
 < | 
     _fileid:         LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 87 | 
 < | 
     level:           LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 88 | 
 < | 
     FormatSize:      LongWord; | 
 
 
 
 
 
 
 
 
 
 | 86 | 
 > | 
     _fileid:         Integer; | 
 
 
 
 
 
 | 87 | 
 > | 
     level:           Integer; | 
 
 
 
 
 
 | 88 | 
 > | 
     FormatSize:      Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 | 89 | 
   | 
     AudioFormat:     Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 90 | 
   | 
     NumChannels:     Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 91 | 
   | 
     {0x10} | 
 
 
 
 
 
 
 
 
 
 
 
 | 92 | 
 < | 
     SampleRate:      LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 93 | 
 < | 
     ByteRate:        LongWord; | 
 
 
 
 
 
 
 
 
 
 | 92 | 
 > | 
     SampleRate:      Integer; | 
 
 
 
 
 
 | 93 | 
 > | 
     ByteRate:        Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 | 94 | 
   | 
     BlockAlign:      Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 95 | 
   | 
     BitsPerSample:   Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 96 | 
   | 
     {0x1C} | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 97 | 
   | 
     SizeExtHeader:   Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 98 | 
   | 
     SamplesPerBlock: Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 99 | 
   | 
     NumCoefficients: Word; | 
 
 
 
 
 
 
 
 
 
 
 
 | 100 | 
 < | 
     Coefficients:    array[0..6] of LongWord; | 
 
 
 
 
 
 
 
 
 
 | 100 | 
 > | 
     Coefficients:    array[0..6] of Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 | 101 | 
   | 
     {0x3E} | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 102 | 
   | 
     Duration:        Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 103 | 
   | 
     {0x40} | 
 
 
 
 
 
 
 
 
 
 
 
 | 104 | 
 < | 
     RawSize:         LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 105 | 
 < | 
     RawPos:          LongWord; | 
 
 
 
 
 
 
 
 
 
 | 104 | 
 > | 
     RawSize:         Integer; | 
 
 
 
 
 
 | 105 | 
 > | 
     RawPos:          Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 | 106 | 
   | 
   end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 107 | 
   | 
 var | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 108 | 
   | 
   filestream: TFileStream; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 111 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 112 | 
   | 
   //Wave Header Stuff | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 113 | 
   | 
   ASCII_RIFF:   LongWord; //"RIFF" | 
 
 
 
 
 
 
 
 
 
 
 
 | 114 | 
 < | 
   WAVE_Len:     LongWord; | 
 
 
 
 
 
 
 
 
 
 | 114 | 
 > | 
   WAVE_Len:     Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 | 115 | 
   | 
   ASCII_WAVE:   LongWord; //"WAVE" | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 116 | 
   | 
   ASCII_FMT:    LongWord; //"fmt " | 
 
 
 
 
 
 
 
 
 
 
 
 | 117 | 
 < | 
   WAVE_FMT_Len: LongWord; | 
 
 
 
 
 
 
 
 
 
 | 117 | 
 > | 
   WAVE_FMT_Len: Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 | 118 | 
   | 
   ASCII_DATA:   LongWord; //"data" | 
 
 
 
 
 
 
 
 
 
 
 
 | 119 | 
 < | 
   WAVE_DataLen:  LongWord; | 
 
 
 
 
 
 
 
 
 
 | 119 | 
 > | 
   WAVE_DataLen:  Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 | 120 | 
   | 
 begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 121 | 
   | 
   Result := 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 122 | 
   | 
   ConManager.Connection[ConnectionID].LoadDatFilePart(FileID, 0, SizeOf(DatData), @DatData); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 189 | 
   | 
 function ExportTXAN(ConnectionID, FileID: Integer; filename: String): Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 190 | 
   | 
 var | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 191 | 
   | 
   loop_speed, unknown: Word; | 
 
 
 
 
 
 
 
 
 
 
 
 | 192 | 
 < | 
   linkcount: LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 193 | 
 < | 
   link: LongWord; | 
 
 
 
 
 
 
 
 
 
 | 192 | 
 > | 
   linkcount: Integer; | 
 
 
 
 
 
 | 193 | 
 > | 
   link: Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 | 194 | 
   | 
   i: Byte; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 195 | 
   | 
 begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 196 | 
   | 
   Result := 0; |