50 |
DiskThread* pDiskThread; |
DiskThread* pDiskThread; |
51 |
AudioThread* pAudioThread; |
AudioThread* pAudioThread; |
52 |
MidiIn* pMidiInThread; |
MidiIn* pMidiInThread; |
|
|
|
53 |
RIFF::File* pRIFF; |
RIFF::File* pRIFF; |
54 |
gig::File* pGig; |
gig::File* pGig; |
55 |
gig::Instrument* pInstrument; |
gig::Instrument* pInstrument; |
56 |
|
int num_fragments; |
57 |
|
int fragmentsize; |
58 |
|
|
59 |
void parse_options(int argc, char **argv); |
void parse_options(int argc, char **argv); |
60 |
void signal_handler(int signal); |
void signal_handler(int signal); |
61 |
|
|
|
int midi_non_blocking; |
|
|
int num_fragments; |
|
|
int fragmentsize; |
|
|
bool instrument_is_DLS; |
|
|
bool instruemtn_is_gig; |
|
|
char midi_device[40]; |
|
|
|
|
62 |
int main(int argc, char **argv) { |
int main(int argc, char **argv) { |
63 |
pAudioIO = NULL; |
pAudioIO = NULL; |
64 |
pRIFF = NULL; |
pRIFF = NULL; |
68 |
signal(SIGINT, signal_handler); |
signal(SIGINT, signal_handler); |
69 |
|
|
70 |
patch_format = patch_format_unknown; |
patch_format = patch_format_unknown; |
|
midi_non_blocking = 1; |
|
71 |
num_fragments = AUDIO_FRAGMENTS; |
num_fragments = AUDIO_FRAGMENTS; |
72 |
fragmentsize = AUDIO_FRAGMENTSIZE; |
fragmentsize = AUDIO_FRAGMENTSIZE; |
|
strcpy(midi_device, "/dev/midi00"); |
|
73 |
|
|
74 |
// parse and assign command line options |
// parse and assign command line options |
75 |
parse_options(argc, argv); |
parse_options(argc, argv); |
76 |
|
|
77 |
if (patch_format != patch_format_gig) { |
if (patch_format != patch_format_gig) { |
78 |
printf("Sorry only Gigasampler loading migrated in LinuxSampler so far, use --gig\n"); |
printf("Sorry only Gigasampler loading migrated in LinuxSampler so far, use --gig to load a .gig file!\n"); |
|
printf("to load a .gig file!\n"); |
|
79 |
return EXIT_FAILURE; |
return EXIT_FAILURE; |
80 |
} |
} |
81 |
|
|
82 |
dmsg(("Initializing audio output...")); |
dmsg(1,("Initializing audio output...")); |
83 |
pAudioIO = new AudioIO(); |
pAudioIO = new AudioIO(); |
84 |
int error = pAudioIO->Initialize(AUDIO_CHANNELS, AUDIO_SAMPLERATE, num_fragments, fragmentsize); |
int error = pAudioIO->Initialize(AUDIO_CHANNELS, AUDIO_SAMPLERATE, num_fragments, fragmentsize); |
85 |
if (error) return EXIT_FAILURE; |
if (error) return EXIT_FAILURE; |
86 |
dmsg(("OK\n")); |
dmsg(1,("OK\n")); |
87 |
|
|
88 |
// Loading gig file |
// Loading gig file |
89 |
try { |
try { |
109 |
AudioThread* pAudioThread = new AudioThread(pAudioIO, pDiskThread, pInstrument); |
AudioThread* pAudioThread = new AudioThread(pAudioIO, pDiskThread, pInstrument); |
110 |
MidiIn* pMidiInThread = new MidiIn(pAudioThread); |
MidiIn* pMidiInThread = new MidiIn(pAudioThread); |
111 |
|
|
112 |
dmsg(("Starting disk thread...")); |
dmsg(1,("Starting disk thread...")); |
113 |
pDiskThread->StartThread(); |
pDiskThread->StartThread(); |
114 |
dmsg(("OK\n")); |
dmsg(1,("OK\n")); |
115 |
dmsg(("Starting MIDI in thread...")); |
dmsg(1,("Starting MIDI in thread...")); |
116 |
pMidiInThread->StartThread(); |
pMidiInThread->StartThread(); |
117 |
dmsg(("OK\n")); |
dmsg(1,("OK\n")); |
118 |
|
|
119 |
sleep(1); |
sleep(1); |
120 |
dmsg(("Starting audio thread...")); |
dmsg(1,("Starting audio thread...")); |
121 |
pAudioThread->StartThread(); |
pAudioThread->StartThread(); |
122 |
dmsg(("OK\n")); |
dmsg(1,("OK\n")); |
123 |
|
|
124 |
printf("LinuxSampler initialization completed.\n"); |
printf("LinuxSampler initialization completed.\n"); |
125 |
|
|
126 |
while(true) sleep(1000); |
while(true) { |
127 |
|
printf("Voices: %3.3d Streams: %3.3d \r",pAudioThread->ActiveVoiceCount, pDiskThread->ActiveStreamCount); fflush(stdout); |
128 |
|
usleep(500000); |
129 |
|
} |
130 |
|
|
131 |
return EXIT_SUCCESS; |
return EXIT_SUCCESS; |
132 |
} |
} |
133 |
|
|