![]() |
Mixxx
|
00001 /*************************************************************************** 00002 enginechannel.h - description 00003 ------------------- 00004 begin : Sun Apr 28 2002 00005 copyright : (C) 2002 by 00006 email : 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef ENGINECHANNEL_H 00019 #define ENGINECHANNEL_H 00020 00021 #include "engineobject.h" 00022 #include "configobject.h" 00023 00024 class ControlObject; 00025 class EngineBuffer; 00026 class EnginePregain; 00027 class EngineBuffer; 00028 class EngineFilterBlock; 00029 class EngineClipping; 00030 class EngineFlanger; 00031 class EngineVuMeter; 00032 class EngineVinylSoundEmu; 00033 class ControlPushButton; 00034 class ControlObject; 00035 00036 class EngineChannel : public EngineObject { 00037 Q_OBJECT 00038 public: 00039 enum ChannelOrientation { 00040 LEFT = 0, 00041 CENTER, 00042 RIGHT, 00043 }; 00044 00045 EngineChannel(const char *pGroup, ChannelOrientation defaultOrientation = CENTER); 00046 virtual ~EngineChannel(); 00047 00048 virtual ChannelOrientation getOrientation(); 00049 virtual const QString& getGroup() const; 00050 00051 virtual bool isActive() = 0; 00052 virtual bool isPFL(); 00053 virtual bool isMaster(); 00054 00055 virtual void process(const CSAMPLE *pIn, const CSAMPLE *pOut, const int iBufferSize) = 0; 00056 00057 // TODO(XXX) This hack needs to be removed. 00058 virtual EngineBuffer* getEngineBuffer() { 00059 return NULL; 00060 } 00061 00062 private: 00063 const QString m_group; 00064 ControlPushButton* m_pPFL; 00065 ControlObject* m_pOrientation; 00066 }; 00067 00068 #endif