home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / sound / mp2 / src / gem / mp2info.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-11-30  |  1.6 KB  |  81 lines

  1. #include <tos.h>
  2. #include <aes.h>
  3. #include <stdio.h>
  4.  
  5. #define IS_MP2INFO_C
  6. #include "mp2info.h"
  7.  
  8. /* Function in this module */
  9. int getmp2info(int file);
  10. void show_mp2_error(int error);
  11.  
  12. /* global variable from mp2audio.c */
  13. extern int fd;
  14.  
  15. /* global variable from mp2file.c */
  16. extern long filesize;
  17.  
  18. /* global variable from mp2event.c */
  19. extern long total_time;
  20.  
  21. /* global variable */
  22. MP2INFO mp2info;
  23.  
  24. int getmp2info(int file)
  25. {
  26.     FRAME_HEADER header;
  27. /*    char tmp[128]; */
  28.     
  29.     Fread(file,sizeof(FRAME_HEADER),(void *)&header);
  30.     Fseek(-(long)sizeof(FRAME_HEADER),file,1);
  31.     
  32.     if(header.sync!=0xfff)
  33.         return -MP2ERR_SYNC;
  34.  
  35.     if(header.mode==MODE_MONO)
  36.         return -MP2ERR_MONO;
  37.  
  38. /*
  39.     if(header.protection==PROT_CRC)
  40.         return -MP2ERR_CRC;
  41. */
  42.     
  43.     mp2info.bitrate=bitrates[header.id][header.layer][header.bitrate];
  44.     mp2info.sample_frequency=frequencies[header.id][header.frequency];
  45.     mp2info.filelength=filesize;
  46.     
  47.     if(mp2info.bitrate<=0)
  48.         return -MP2ERR_OTHER;
  49.     total_time=mp2info.timelength=(mp2info.filelength*8)/mp2info.bitrate;
  50.  
  51. /*
  52.     sprintf(tmp,"[1][Bitrate: %ld|Frequency: %ld|Total time: %02ld:%02ld][Ok]",
  53.         mp2info.bitrate,mp2info.sample_frequency,mp2info.timelength/60,mp2info.timelength%60);
  54.     form_alert(1,tmp);
  55. */    
  56.     return MP2_NOERR;
  57. }
  58.  
  59.  
  60. void show_mp2_error(int error)
  61. {
  62.     switch(error)
  63.     {
  64.         case -MP2ERR_SYNC:
  65.             form_alert(1,"[3][Not a valid MPEG file!|No sync!][Ok]");
  66.             break;
  67.         case -MP2ERR_MONO:
  68.             form_alert(1,"[3][No support for mono, yet!][Ok]");
  69.             break;
  70.         case -MP2ERR_CRC:
  71.             form_alert(1,"[3][No support for CRC, yet!][Ok]");
  72.             break;
  73.         case -MP2ERR_OTHER:
  74.             form_alert(1,"[3][Not a valid MPEG file!][Ok]");
  75.             break;
  76.         default:
  77.             break;
  78.     }
  79. }
  80.  
  81.