ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/Frodo4/Src/SID.cpp
(Generate patch)

Comparing Frodo4/Src/SID.cpp (file contents):
Revision 1.7 by cebix, 2004-12-04T13:24:35Z vs.
Revision 1.10 by cebix, 2010-04-22T09:09:28Z

# Line 1 | Line 1
1   /*
2   *  SID.cpp - 6581 emulation
3   *
4 < *  Frodo (C) 1994-1997,2002-2004 Christian Bauer
4 > *  Frodo Copyright (C) Christian Bauer
5   *
6   *  This program is free software; you can redistribute it and/or modify
7   *  it under the terms of the GNU General Public License as published by
# Line 354 | Line 354 | struct DRVoice {
354   // Renderer class
355   class DigitalRenderer : public SIDRenderer {
356   public:
357 #if defined(__BEOS__) || defined(__riscos__)
357          DigitalRenderer(C64 *c64);
359 #else
360        DigitalRenderer();
361 #endif
358          virtual ~DigitalRenderer();
359  
360          virtual void Reset(void);
# Line 377 | Line 373 | private:
373          void calc_buffer(int16 *buf, long count);
374   #endif
375  
376 +        C64 *the_c64;                                   // Pointer to C64 object
377 +
378          bool ready;                                             // Flag: Renderer has initialized and is ready
379          uint8 volume;                                   // Master volume
380  
# Line 418 | Line 416 | private:
416  
417   #ifdef __BEOS__
418          static void buffer_proc(void *cookie, void *buffer, size_t size, const media_raw_audio_format &format);
421        C64 *the_c64;                                   // Pointer to C64 object
419          BSoundPlayer *the_player;               // Pointer to sound player
420          bool player_stopped;                    // Flag: player stopped
421   #endif
# Line 440 | Line 437 | private:
437          int play_buf;                                   // Number of buffer currently playing
438   #endif
439  
440 < #ifdef __linux__
440 >
441 > #ifdef HAVE_SDL
442 >        static void buffer_proc(void *cookie, uint8 *buffer, int size);
443 > #else
444 >
445 > # ifdef __linux__
446          int devfd, sndbufsize, buffer_rate;
447          int16 *sound_buffer;
448 < #endif
448 > # endif
449  
450 < #ifdef SUN
450 > # ifdef SUN
451          int fd;
452          audio_info status;
453          uint_t sent_samples,delta_samples;
454          int16 *sound_calc_buf;
455 < #endif
455 > # endif
456  
457 < #ifdef __hpux
457 > # ifdef __hpux
458          int fd;
459          audio_status status;
460          int16 *sound_calc_buf;
461          int linecnt;
462 < #endif
462 > # endif
463 >
464 > #endif // ndef HAVE_SDL
465 >
466  
467   #ifdef __mac__
468          SndChannelPtr chan1;
# Line 491 | Line 496 | private:
496   #ifdef __riscos__
497          int linecnt, sndbufsize;
498          uint8 *sound_buffer;
494        C64 *the_c64;
499   #endif
500   };
501  
# Line 822 | Line 826 | const int16 DigitalRenderer::SampleTab[1
826   *  Constructor
827   */
828  
825 #if defined(__BEOS__) || defined(__riscos__)
829   DigitalRenderer::DigitalRenderer(C64 *c64) : the_c64(c64)
827 #else
828 DigitalRenderer::DigitalRenderer()
829 #endif
830   {
831          // Link voices together
832          voice[0].mod_by = &voice[2];
# Line 1344 | Line 1344 | void DigitalRenderer::calc_buffer(int16
1344   #elif defined(AMIGA)
1345   #include "SID_Amiga.h"
1346  
1347 + #elif defined(HAVE_SDL)
1348 + #include "SID_SDL.h"
1349 + # if defined(__linux__)
1350 + # include "SID_catweasel.h"
1351 + # endif
1352 +
1353   #elif defined(__linux__)
1354   #include "SID_linux.h"
1355 + #include "SID_catweasel.h"
1356  
1357   #elif defined(SUN)
1358   #include "SID_sun.h"
# Line 1384 | Line 1391 | void MOS6581::open_close_renderer(int ol
1391          delete the_renderer;
1392  
1393          // Create new renderer
1394 <        if (new_type == SIDTYPE_DIGITAL)
1388 < #if defined(__BEOS__) || defined(__riscos__)
1394 >        if (new_type == SIDTYPE_DIGITAL) {
1395                  the_renderer = new DigitalRenderer(the_c64);
1390 #else
1391                the_renderer = new DigitalRenderer;
1392 #endif
1396   #ifdef AMIGA
1397 <        else if (new_type == SIDTYPE_SIDCARD)
1397 >        } else if (new_type == SIDTYPE_SIDCARD) {
1398                  the_renderer = new SIDCardRenderer;
1399   #endif
1400   #ifdef __linux__
1401 <        else if (new_type == SIDTYPE_SIDCARD)
1401 >        } else if (new_type == SIDTYPE_SIDCARD) {
1402                  the_renderer = new CatweaselRenderer;
1403   #endif
1404 <        else
1404 >        } else {
1405                  the_renderer = NULL;
1406 +        }
1407  
1408          // Stuff the current register values into the new renderer
1409          if (the_renderer != NULL)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines