williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // Mda\Common\Base.h williamr@2: // largely EMPTY - maintained for backwards compatibility williamr@2: // williamr@2: // williamr@2: williamr@2: #ifndef __MDA_COMMON_BASE_H__ williamr@2: #define __MDA_COMMON_BASE_H__ williamr@2: williamr@2: /* williamr@2: Notes: williamr@2: Header file for information shared between client and server side williamr@2: Contains UID definitions, function numbers williamr@2: */ williamr@2: williamr@2: // Standard EPOC32 includes williamr@2: #include williamr@2: // Public Media Server includes williamr@2: #include williamr@2: williamr@2: #ifdef ASSERT williamr@2: #ifdef _DEBUG williamr@2: #undef ASSERT williamr@2: williamr@2: // Redefine assert to be a little more useful to us, i.e. to include file & line number williamr@2: #define __ASSERT_FILE__(s) _LIT(KPanicFileName,s) williamr@2: #define __ASSERT_PANIC__(l) User::Panic(KPanicFileName().Right(12),l) williamr@2: #define ASSERT(x) { __ASSERT_FILE__(__FILE__); __ASSERT_DEBUG(x, __ASSERT_PANIC__(__LINE__) ); } williamr@2: #endif williamr@2: #endif williamr@2: williamr@2: /** williamr@4: * @publishedAll williamr@2: * williamr@2: * Macro for producing different variants of Uids williamr@2: */ williamr@2: #define MDA_UID(uid_name) const TUint uid_name##Value = uid_name##Define; \ williamr@2: const TUid uid_name = {uid_name##Value}; williamr@2: williamr@2: // Uids williamr@2: #if defined(UNICODE) williamr@2: williamr@2: /** williamr@2: * @publishedAll williamr@2: * @deprecated williamr@2: * williamr@2: * Not used in MMF williamr@2: */ williamr@2: const TInt KUidMediaServerLibraryValue = KUidMediaServerLibraryUnicodeDefine; williamr@2: #else williamr@2: williamr@2: /** williamr@2: * @publishedAll williamr@2: * @deprecated williamr@2: * williamr@2: * Not used in MMF williamr@2: */ williamr@2: const TInt KUidMediaServerLibraryValue = KUidMediaServerLibraryDefine; williamr@2: #endif williamr@2: williamr@2: /** williamr@2: * @publishedAll williamr@2: * @deprecated williamr@2: * williamr@2: * Not used in MMF williamr@2: */ williamr@2: const TUid KUidMediaServerLibrary = {KUidMediaServerLibraryValue}; williamr@2: williamr@2: /** williamr@2: * @publishedAll williamr@2: * @deprecated williamr@2: * williamr@2: * Unknown value williamr@2: */ williamr@2: const TInt KMdaUnknown = -1; williamr@2: williamr@2: // Package classes williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: Abstract base class for all media server package types. williamr@2: williamr@2: This class has no user accessible functions. williamr@2: */ williamr@2: class TMdaRawPackage williamr@2: { williamr@2: public: williamr@2: inline TPtr8& Package(); williamr@2: inline const TPtr8& Package() const; williamr@2: protected: williamr@2: TMdaRawPackage(TInt aDerivedSize); williamr@2: inline void SetSize(TInt aDerivedSize); williamr@2: protected: williamr@2: TPtr8 iThis; williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: A data structure used to package messages (that include the package type) sent between the media server williamr@2: and its clients. williamr@2: williamr@2: This class is abstract. It defines the attributes common to packages where the derived class's type needs williamr@2: to be sent as part of the package. The attributes are a UID that identifies the package's concrete class williamr@2: (so that the server can construct objects of the correct type), and a UID that identifies the package type williamr@2: (the category of classes to which the package belongs). The package type is little used in practice. These williamr@2: attributes and the derived class's size are set during construction of the derived class. williamr@2: */ williamr@2: class TMdaPackage : public TMdaRawPackage williamr@2: { williamr@2: public: williamr@2: inline TUid Type() const; williamr@2: inline TUid Uid() const; williamr@2: inline void SetUid(TUid aUid); williamr@2: inline TBool operator==(const TMdaPackage& aPackage); // Type&Uid comparison williamr@2: protected: williamr@2: inline TMdaPackage(TUid aType, TUid aUid, TInt aDerivedSize); williamr@2: private: williamr@2: TUid iType; williamr@2: TUid iUid; williamr@2: }; williamr@2: williamr@2: /** williamr@2: * williamr@2: * @publishedAll williamr@2: * @deprecated williamr@2: * williamr@2: * Media server event identification - Not used in MMF williamr@2: */ williamr@2: class TMdaEvent williamr@2: { williamr@2: public: williamr@2: TInt32 iId; williamr@2: TInt32 iArg[3]; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: * williamr@2: * @publishedAll williamr@2: * @deprecated williamr@2: * williamr@2: * Not used in MMF williamr@2: */ williamr@2: class TMdaObjectEvent williamr@2: { williamr@2: public: williamr@2: TInt iHandle; williamr@2: TMdaEvent iEvent; williamr@2: }; williamr@2: williamr@2: /** williamr@2: * williamr@2: * @publishedAll williamr@2: * @deprecated williamr@2: * williamr@2: * Not used in MMF williamr@2: */ williamr@2: class TMdaEventPackage : public TMdaRawPackage williamr@2: { williamr@2: public: williamr@2: inline TMdaEventPackage(); // For single events williamr@2: // williamr@2: inline TInt EventCount() const; williamr@2: inline TInt MaxEvents() const; williamr@2: inline const TMdaEvent& Event(); // First event only williamr@2: inline const TMdaEvent& Event(TInt aIndex); williamr@2: inline TInt EventFrom(); // first event only williamr@2: inline TInt EventFrom(TInt aIndex); williamr@2: protected: williamr@2: inline TMdaEventPackage(TInt aMaxEvents); williamr@2: protected: williamr@2: TInt iMaxEvents; williamr@2: TInt iValidEvents; williamr@2: TMdaObjectEvent iFirstEvent; williamr@2: }; williamr@2: williamr@2: #include williamr@2: williamr@2: #include williamr@2: williamr@2: #endif