WAVDatei.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef WAVDatei_H
  2. #define WAVDatei_H
  3. #include <GSLDateiV.h>
  4. #include <Datei.h>
  5. using namespace Framework;
  6. struct WAVKopf
  7. {
  8. char riff[ 4 ];
  9. unsigned int datGr;
  10. char wav[ 4 ];
  11. };
  12. struct WAVFormat
  13. {
  14. char fmt[ 4 ];
  15. int fmtLän;
  16. short tag;
  17. unsigned short channels;
  18. unsigned int sampleRate;
  19. unsigned int bytesPerSec;
  20. unsigned short blockAlign;
  21. unsigned short bitsPerSample;
  22. };
  23. struct WAVDBeg
  24. {
  25. char data[ 4 ];
  26. int län;
  27. };
  28. class WAVDatei : public GSL::GSLSoundV
  29. {
  30. private:
  31. WAVKopf kpf;
  32. WAVFormat fmt;
  33. WAVDBeg dBeg;
  34. int pos;
  35. Datei d;
  36. public:
  37. // Konstruktor
  38. WAVDatei();
  39. // nicht constant
  40. bool lade( char *pfad );
  41. // GSL
  42. void playSound() override
  43. {
  44. }
  45. void setPause( bool p ) override
  46. {
  47. }
  48. void stopSound() override
  49. {
  50. }
  51. void warteAufSound( int zeit ) override
  52. {
  53. }
  54. // Lautstärke: 0 - 0xFFFF
  55. void setVolume( unsigned int links, unsigned int rechts ) override
  56. {
  57. }
  58. // zum Speichern
  59. void open() override;
  60. int getDaten( char *buffer, int län ) override;
  61. void close() override;
  62. bool istMono() const override;
  63. int getSampleRate() const override;
  64. __int64 getDatLength() const override;
  65. // Reference Counting
  66. GSL::GSLSoundV *getThis() override;
  67. GSL::GSLSoundV *release() override;
  68. };
  69. #endif