Functionally, still quite limited, but the source code is now much easier to read by refactoring, I suppose.
int main(int argc, char *argv[]) { vector <Sound*> soundlist; soundlist.push_back( new SoundIC7410{argv[1], argv[3]} ); soundlist.push_back( new SoundSoft66{argv[2], nullptr} ); /* no rig control yet */ }
/* Sound.h */ #ifndef SOUND_H_ #define SOUND_H_ #include "AlsaParams.h" #include "RigControlParams.h" #include "RigControlIC7410.h" #include <asoundlib.h> class Sound : public AlsaParams, public RigControl { public: Sound(); virtual int get_channels () const = 0; virtual int get_nfft () const = 0; virtual int get_spectrum_x () const = 0; virtual int get_spectrum_y () const = 0; virtual int get_waterfall_x() const = 0; virtual int get_waterfall_y() const = 0; virtual int get_timervalue () const = 0; virtual int get_index(int, int, int) const = 0; virtual bool get_smeter() const = 0; virtual int asound_fftcopy () = 0; int asound_init(); int asound_go(); int asound_read(); int asound_set_hwparams(); int asound_set_swparams(); virtual ~Sound(); }; #endif /* SOUND_H_ */