# mediacmd.h

Go to the documentation of this file.

    00001 /*
    00002  * mediacmd.h
    00003  *
    00004  * Abstractions for sending commands to media processors.
    00005  *
    00006  * Open Phone Abstraction Library (OPAL)
    00007  * Formally known as the Open H323 project.
    00008  *
    00009  * Copyright (c) 2001 Equivalence Pty. Ltd.
    00010  *
    00011  * The contents of this file are subject to the Mozilla Public License
    00012  * Version 1.0 (the "License"); you may not use this file except in
    00013  * compliance with the License. You may obtain a copy of the License at
    00014  * http://www.mozilla.org/MPL/
    00015  *
    00016  * Software distributed under the License is distributed on an "AS IS"
    00017  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
    00018  * the License for the specific language governing rights and limitations
    00019  * under the License.
    00020  *
    00021  * The Original Code is Open Phone Abstraction Library.
    00022  *
    00023  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
    00024  *
    00025  * Contributor(s): ______________________________________.
    00026  */
    00027
    00028 #ifndef OPAL_OPAL_MEDIACMD_H
    00029 #define OPAL_OPAL_MEDIACMD_H
    00030
    00031 #ifdef P_USE_PRAGMA
    00032 #pragma interface
    00033 #endif
    00034
    00035 #include <opal/buildopts.h>
    00036
    00038
    00043 class OpalMediaCommand : public PObject
    00044 {
    00045   PCLASSINFO(OpalMediaCommand, PObject);
    00046   public:
    00053     void PrintOn(
    00054       ostream & strm
    00055     ) const { strm << GetName(); }
    00056
    00068     virtual Comparison Compare(
    00069       const PObject & obj
    00070     ) const { return GetName().Compare(PDownCast(const OpalMediaCommand, &obj)->GetName()); }
    00072
    00077     virtual PString GetName() const = 0;
    00078
    00081     virtual void * GetPlugInData() const { return NULL; }
    00082
    00085     virtual unsigned * GetPlugInSize() const { return NULL; }
    00087 };
    00088
    00089
    00090 #define OPAL_DEFINE_MEDIA_COMMAND(cls, name) \
    00091   class cls : public OpalMediaCommand \
    00092   { \
    00093       PCLASSINFO(cls, OpalMediaCommand) \
    00094     public: \
    00095       cls() { } \
    00096       virtual PString GetName() const { return name; } \
    00097   }
    00098
    00099
    00100 #endif // OPAL_OPAL_MEDIACMD_H
    00101
    00102
    00103 // End of File ///////////////////////////////////////////////////////////////