/[svn]/linuxsampler/trunk/src/linuxsampler.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/linuxsampler.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 20 by schoenebeck, Thu Dec 25 00:02:45 2003 UTC revision 31 by schoenebeck, Sun Jan 18 20:31:31 2004 UTC
# Line 30  Line 30 
30  #include <string>  #include <string>
31    
32  #include "global.h"  #include "global.h"
 #include "audioio.h"  
33  #include "diskthread.h"  #include "diskthread.h"
34  #include "audiothread.h"  #include "audiothread.h"
35    #include "alsaio.h"
36    #include "jackio.h"
37  #include "midiin.h"  #include "midiin.h"
38  #include "stream.h"  #include "stream.h"
39  #include "RIFF.h"  #include "RIFF.h"
# Line 90  int main(int argc, char **argv) { Line 91  int main(int argc, char **argv) {
91          return EXIT_FAILURE;          return EXIT_FAILURE;
92      }      }
93    
94      dmsg(1,("Initializing audio output..."));  #if HAVE_JACK
95      pAudioIO = new AudioIO();      dmsg(1,("Initializing audio output (Jack)..."));
96      int error = pAudioIO->Initialize(AUDIO_CHANNELS, AUDIO_SAMPLERATE, num_fragments, fragmentsize);      pAudioIO = new JackIO();
97        int error = ((JackIO*)pAudioIO)->Initialize(AUDIO_CHANNELS);
98        if (error) {
99            dmsg(1,("Trying Alsa output instead.\n"));
100            dmsg(1,("Initializing audio output (Alsa)..."));
101            pAudioIO = new AlsaIO();
102            int error = ((AlsaIO*)pAudioIO)->Initialize(AUDIO_CHANNELS, AUDIO_SAMPLERATE, num_fragments, fragmentsize);
103            if (error) return EXIT_FAILURE;
104        }
105        dmsg(1,("OK\n"));
106    #else // Alsa only
107        dmsg(1,("Initializing audio output (Alsa)..."));
108        pAudioIO = new AlsaIO();
109        int error = ((AlsaIO*)pAudioIO)->Initialize(AUDIO_CHANNELS, AUDIO_SAMPLERATE, num_fragments, fragmentsize);
110      if (error) return EXIT_FAILURE;      if (error) return EXIT_FAILURE;
111      dmsg(1,("OK\n"));      dmsg(1,("OK\n"));
112    #endif // HAVE_JACK
113    
114      // Loading gig file      // Loading gig file
115      try {      try {
# Line 120  int main(int argc, char **argv) { Line 135  int main(int argc, char **argv) {
135          return EXIT_FAILURE;          return EXIT_FAILURE;
136      }      }
137    
138      DiskThread*  pDiskThread   = new DiskThread(((pAudioIO->FragmentSize << MAX_PITCH) << 1) + 6); //FIXME: assuming stereo      DiskThread*  pDiskThread   = new DiskThread(((pAudioIO->MaxSamplesPerCycle() << MAX_PITCH) << 1) + 6); //FIXME: assuming stereo
139      AudioThread* pAudioThread  = new AudioThread(pAudioIO, pDiskThread, pInstrument);      AudioThread* pAudioThread  = new AudioThread(pAudioIO, pDiskThread, pInstrument);
140      MidiIn*      pMidiInThread = new MidiIn(pAudioThread);      MidiIn*      pMidiInThread = new MidiIn(pAudioThread);
141    
# Line 135  int main(int argc, char **argv) { Line 150  int main(int argc, char **argv) {
150      sleep(1);      sleep(1);
151      dmsg(1,("Starting audio thread..."));      dmsg(1,("Starting audio thread..."));
152      pAudioThread->Volume = volume;      pAudioThread->Volume = volume;
153      pAudioThread->StartThread();      pAudioIO->AssignEngine(pAudioThread);
154        pAudioIO->Activate();
155      dmsg(1,("OK\n"));      dmsg(1,("OK\n"));
156    
157      printf("LinuxSampler initialization completed.\n");      printf("LinuxSampler initialization completed.\n");
# Line 154  int main(int argc, char **argv) { Line 170  int main(int argc, char **argv) {
170  void signal_handler(int signal) {  void signal_handler(int signal) {
171      if (pthread_equal(pthread_self(), signalhandlerthread) && signal == SIGINT) {      if (pthread_equal(pthread_self(), signalhandlerthread) && signal == SIGINT) {
172          // stop all threads          // stop all threads
173            if (pAudioIO)      pAudioIO->Close();
174          if (pMidiInThread) pMidiInThread->StopThread();          if (pMidiInThread) pMidiInThread->StopThread();
         if (pAudioThread)  pAudioThread->StopThread();  
175          if (pDiskThread)   pDiskThread->StopThread();          if (pDiskThread)   pDiskThread->StopThread();
176    
177          // free all resources          // free all resources

Legend:
Removed from v.20  
changed lines
  Added in v.31

  ViewVC Help
Powered by ViewVC