blob: 22374ade2b8fb27255db217f272e56e052ae1a4d [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
#ifndef PVMF_DURATION_INFOMESSAGE_H_INCLUDED
#define PVMF_DURATION_INFOMESSAGE_H_INCLUDED
#ifndef PVMF_DURATIONINFOMESSAGE_EXTENSION_H_INCLUDED
#include "pvmf_durationinfomessage_extension.h"
#endif
/*
This class that provides basic implementation of PVMFDurationInfoMessageInterface.
This object can carry the code, UUID, and duration information associated with an
info event.
*/
class PVMFDurationInfoMessage : public PVMFDurationInfoMessageInterface
{
public:
/*
Default constructor. Ref count is initialized to 1.
This object should always be created with OSCL_NEW.
Event code is initialized to 0.
Event UUId is initialized to 0.
Event data is NULL.
Next message pointer is NULL
*/
OSCL_IMPORT_REF PVMFDurationInfoMessage();
/*
Constructor with initialization parameters. Ref count is initialized to 1
This object should always be created with OSCL_NEW.
@param aCode Event code value
@param aUuid UUID for the event code's group
@param aData Pointer to the event's opaque data (optional)
@param aNextMsg Pointer to the next message in the list (optional)
*/
OSCL_IMPORT_REF PVMFDurationInfoMessage(uint32 aDuration, int32 aCode = 0, PVUuid aUuid = PVMFDurationInfoMessageInterfaceUUID);
/*
A derived class should override this in order to destroy itself
properly by calling OSCL_DELETE with its own type name.
*/
OSCL_IMPORT_REF virtual void destroy();
/*
Method to set the event code and UUID
@param aCode Event code value
@param aUuid UUID for the event code's group
*/
OSCL_IMPORT_REF void SetEventCodeUUID(int32 aCode, PVUuid aUuid);
// From PVMFDurationInfoMessageInterface
OSCL_IMPORT_REF void GetCodeUUID(int32& aCode, PVUuid& aUuid);
OSCL_IMPORT_REF uint32 GetDuration();
// From PVInterface
OSCL_IMPORT_REF virtual void addRef();
OSCL_IMPORT_REF virtual void removeRef();
OSCL_IMPORT_REF virtual bool queryInterface(const PVUuid& uuid, PVInterface*& iface);
protected:
/* Destructor
*/
OSCL_IMPORT_REF virtual ~PVMFDurationInfoMessage();
private:
int32 iEventCode;
PVUuid iEventUuid;
uint32 iDuration;
int32 iRefCount;
};
#endif // PVMF_BASIC_ERRORINFOMESSAGE_H_INCLUDED