00001 00012 /* 00013 00014 Copyright (c) 2007, Tim Burrell 00015 Licensed under the Apache License, Version 2.0 (the "License"); 00016 you may not use this file except in compliance with the License. 00017 You may obtain a copy of the License at 00018 00019 http://www.apache.org/licenses/LICENSE-2.0 00020 00021 Unless required by applicable law or agreed to in writing, software 00022 distributed under the License is distributed on an "AS IS" BASIS, 00023 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00024 See the License for the specific language governing permissions and 00025 limitations under the License. 00026 00027 */ 00028 00029 #ifndef __AlsaSoundCardInterface_h 00030 #define __AlsaSoundCardInterface_h 00031 00032 #if HAVE_CONFIG_H 00033 #include "config.h" 00034 #endif 00035 00036 #include "AlsaInterface.hpp" 00037 #include "AlsaMixerInterface.hpp" 00038 #include <string> 00039 #include <list> 00040 00042 // Namespace 00044 00045 namespace Gizmod { 00046 00048 // Typedefs 00050 00052 // AlsaSoundCardInterface Class Definition 00054 00059 class AlsaSoundCardInterface { 00060 public: 00061 // public member variables 00062 void addManualUpdater(AlsaMixerInterface * pMixer); 00063 AlsaInterface * getAlsa(); 00064 00065 // public functions 00066 virtual std::string getCardHardwareID() const = 0; 00067 virtual int getCardID() const = 0; 00068 virtual std::string getCardName() const = 0; 00069 virtual std::string getCardNameLong()const = 0; 00070 00071 // construction / deconstruction 00072 AlsaSoundCardInterface(AlsaInterface * piAlsa); 00073 virtual ~AlsaSoundCardInterface(); 00074 00075 protected: 00076 // protected member variables 00077 AlsaInterface * mpiAlsa; 00078 std::list<AlsaMixerInterface *> mUpdateList; 00079 00080 private: 00081 // private functions 00082 00083 // private member variables 00084 }; 00085 00087 00088 } // Gizmod namespace 00089 00090 #endif // __AlsaSoundCardInterface_h