3 |
* LinuxSampler - modular, streaming capable sampler * |
* LinuxSampler - modular, streaming capable sampler * |
4 |
* * |
* * |
5 |
* Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck * |
* Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck * |
6 |
* Copyright (C) 2005, 2006 Christian Schoenebeck * |
* Copyright (C) 2005 - 2008 Christian Schoenebeck * |
7 |
* * |
* * |
8 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
9 |
* it under the terms of the GNU General Public License as published by * |
* it under the terms of the GNU General Public License as published by * |
168 |
void RemoveAllEngineChangeListeners(); |
void RemoveAllEngineChangeListeners(); |
169 |
|
|
170 |
/** |
/** |
171 |
|
* Notifies listeners that the engine type of this sampler |
172 |
|
* channel is going to be changed soon. |
173 |
|
*/ |
174 |
|
void fireEngineToBeChanged(); |
175 |
|
|
176 |
|
/** |
177 |
* Notifies listeners that the engine |
* Notifies listeners that the engine |
178 |
* type of this sampler channel is changed. |
* type of this sampler channel is changed. |
179 |
*/ |
*/ |
421 |
* @param NewCount The new number of active voices. |
* @param NewCount The new number of active voices. |
422 |
*/ |
*/ |
423 |
void fireTotalVoiceCountChanged(int NewCount); |
void fireTotalVoiceCountChanged(int NewCount); |
424 |
|
|
425 |
|
void AddTotalStreamCountListener(TotalStreamCountListener* l); |
426 |
|
void RemoveTotalStreamCountListener(TotalStreamCountListener* l); |
427 |
|
void fireTotalStreamCountChanged(int NewCount); |
428 |
|
|
429 |
/** |
/** |
430 |
* Registers the specified listener to be notified when the number |
* Registers the specified listener to be notified when the number |
513 |
*/ |
*/ |
514 |
void DestroyMidiInputDevice(MidiInputDevice* pDevice) throw (Exception); |
void DestroyMidiInputDevice(MidiInputDevice* pDevice) throw (Exception); |
515 |
|
|
516 |
|
/** |
517 |
|
* Gets the current number of all active streams. |
518 |
|
* @returns The current number of all active streams. |
519 |
|
*/ |
520 |
|
int GetDiskStreamCount(); |
521 |
|
|
522 |
/** |
/** |
523 |
* Gets the current number of all active voices. |
* Gets the current number of all active voices. |
524 |
* @returns The current number of all active voices. |
* @returns The current number of all active voices. |
531 |
*/ |
*/ |
532 |
void Reset(); |
void Reset(); |
533 |
|
|
534 |
|
/** |
535 |
|
* Advise the FPU to treat denormal floating point numbers as |
536 |
|
* zero, to avoid severe performance penalty when dealing with |
537 |
|
* such extreme floating point values. |
538 |
|
* |
539 |
|
* @returns @c true if FPU supports it, @c false otherwise |
540 |
|
*/ |
541 |
|
static bool EnableDenormalsAreZeroMode(); |
542 |
|
|
543 |
protected: |
protected: |
544 |
/** |
/** |
545 |
* Notifies listeners that the number of sampler channels has been changed. |
* Notifies listeners that the number of sampler channels has been changed. |
548 |
void fireChannelCountChanged(int NewCount); |
void fireChannelCountChanged(int NewCount); |
549 |
|
|
550 |
/** |
/** |
551 |
|
* Notifies listeners that the specified sampler channel has just |
552 |
|
* been added. |
553 |
|
* @param pChannel The new sampler channel. |
554 |
|
*/ |
555 |
|
void fireChannelAdded(SamplerChannel* pChannel); |
556 |
|
|
557 |
|
/** |
558 |
|
* Notifies listeners that the specified sampler channel is |
559 |
|
* going to be removed soon. |
560 |
|
* @param pChannel sampler channel to be removed. |
561 |
|
*/ |
562 |
|
void fireChannelToBeRemoved(SamplerChannel* pChannel); |
563 |
|
|
564 |
|
/** |
565 |
* Notifies listeners that the number of audio output devices has been changed. |
* Notifies listeners that the number of audio output devices has been changed. |
566 |
* @param NewCount The new number of audio output devices. |
* @param NewCount The new number of audio output devices. |
567 |
*/ |
*/ |
574 |
void fireMidiDeviceCountChanged(int NewCount); |
void fireMidiDeviceCountChanged(int NewCount); |
575 |
|
|
576 |
/** |
/** |
577 |
|
* Notifies listeners that the supplied MIDI input device is |
578 |
|
* going to be destroyed soon. |
579 |
|
* @param pDevice MIDI input device to be destroyed |
580 |
|
*/ |
581 |
|
void fireMidiDeviceToBeDestroyed(MidiInputDevice* pDevice); |
582 |
|
|
583 |
|
/** |
584 |
|
* Notifies listeners that the supplied MIDI input device was |
585 |
|
* just created. |
586 |
|
* @param pDevice new MIDI input device |
587 |
|
*/ |
588 |
|
void fireMidiDeviceCreated(MidiInputDevice* pDevice); |
589 |
|
|
590 |
|
/** |
591 |
* Notifies listeners that the number of effect sends |
* Notifies listeners that the number of effect sends |
592 |
* on a particular sampler channel is changed. |
* on a particular sampler channel is changed. |
593 |
* @param ChannelId The numerical ID of the sampler channel. |
* @param ChannelId The numerical ID of the sampler channel. |
612 |
ListenerList<VoiceCountListener*> llVoiceCountListeners; |
ListenerList<VoiceCountListener*> llVoiceCountListeners; |
613 |
ListenerList<StreamCountListener*> llStreamCountListeners; |
ListenerList<StreamCountListener*> llStreamCountListeners; |
614 |
ListenerList<BufferFillListener*> llBufferFillListeners; |
ListenerList<BufferFillListener*> llBufferFillListeners; |
615 |
|
ListenerList<TotalStreamCountListener*> llTotalStreamCountListeners; |
616 |
ListenerList<TotalVoiceCountListener*> llTotalVoiceCountListeners; |
ListenerList<TotalVoiceCountListener*> llTotalVoiceCountListeners; |
617 |
ListenerList<FxSendCountListener*> llFxSendCountListeners; |
ListenerList<FxSendCountListener*> llFxSendCountListeners; |
618 |
|
|
621 |
void SetSampler(Sampler* pSampler) { this->pSampler = pSampler; } |
void SetSampler(Sampler* pSampler) { this->pSampler = pSampler; } |
622 |
|
|
623 |
/** |
/** |
624 |
|
* Invoked when the engine type of the specified sampler |
625 |
|
* channel is going to be changed soon. |
626 |
|
* @param ChannelId The numerical ID of the sampler channel |
627 |
|
*/ |
628 |
|
virtual void EngineToBeChanged(int ChannelId); |
629 |
|
|
630 |
|
/** |
631 |
* Invoked when the engine type of the |
* Invoked when the engine type of the |
632 |
* specified sampler channel is changed. |
* specified sampler channel is changed. |
633 |
* @param ChannelId The numerical ID of the sampler |
* @param ChannelId The numerical ID of the sampler |