home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 5 / MA_Cover_5.iso / ppc / atari / atari800-0.8.6 / sound_dos.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-05-10  |  1.4 KB  |  81 lines

  1. #include "config.h"
  2.  
  3. #include "pokey23.h"
  4. #include "sbdrv.h"
  5.  
  6. static char *rcsid = "$Id: sound_dos.c,v 1.2 1998/02/21 15:00:23 david Exp $";
  7.  
  8. #define FALSE 0
  9. #define TRUE 1
  10.  
  11. static sound_enabled = TRUE;
  12.  
  13. int playback_freq = FREQ_17_APPROX / 28 / 3;
  14. int buffersize = 400;
  15. int DMAmode = AUTO_DMA;
  16.  
  17. static int AUDCTL = 0x00;
  18. static int AUDF[4] =
  19. {0, 0, 0, 0};
  20. static int AUDC[4] =
  21. {0, 0, 0, 0};
  22.  
  23. void Sound_Initialise(int *argc, char *argv[])
  24. {
  25.     int i, j;
  26.  
  27.     for (i = j = 1; i < *argc; i++) {
  28.         if (strcmp(argv[i], "-sound") == 0)
  29.             sound_enabled = TRUE;
  30.         else if (strcmp(argv[i], "-nosound") == 0)
  31.             sound_enabled = FALSE;
  32.         else
  33.             argv[j++] = argv[i];
  34.     }
  35.  
  36.     *argc = j;
  37.  
  38.     if (sound_enabled) {
  39.         int channel;
  40.         int dspbits;
  41.         unsigned int formats;
  42.         int tmp;
  43.  
  44.         if (!OpenSB(playback_freq, buffersize)) {
  45.             printf("Cannot init sound card\n");
  46.             sound_enabled = FALSE;
  47.         }
  48.         else {
  49. /*
  50.    Set_line_volume(15,15);
  51.    Set_master_volume(15,15);
  52.  */
  53.             Pokey_sound_init(FREQ_17_APPROX, playback_freq, 1);
  54.             Start_audio_output(DMAmode, Pokey_process);
  55.         }
  56.     }
  57. }
  58.  
  59. void Sound_Exit(void)
  60. {
  61.     if (sound_enabled)
  62.         CloseSB();
  63. }
  64.  
  65. void Atari_AUDC(int channel, int byte)
  66. {
  67.     channel--;
  68.     Update_pokey_sound(0xd201 + channel + channel, byte, 0, 4);
  69. }
  70.  
  71. void Atari_AUDF(int channel, int byte)
  72. {
  73.     channel--;
  74.     Update_pokey_sound(0xd200 + channel + channel, byte, 0, 4);
  75. }
  76.  
  77. void Atari_AUDCTL(int byte)
  78. {
  79.     Update_pokey_sound(0xd208, byte, 0, 4);
  80. }
  81.