//
// Automatically generated by ipdlc.
// Edit at your own risk
//

#ifndef PGMPVideoDecoder_h
#define PGMPVideoDecoder_h

#include "mozilla/Attributes.h"
#include "IPCMessageStart.h"
#include "mozilla/RefPtr.h"
#include "nsString.h"
#include "nsTArray.h"
#include "nsTHashtable.h"
#include "mozilla/MozPromise.h"
#include "mozilla/OperatorNewExtensions.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/ipc/ByteBuf.h"
#include "mozilla/ipc/FileDescriptor.h"
#include "mozilla/ipc/IPCForwards.h"
#include "mozilla/ipc/Shmem.h"
#include "mozilla/gmp/GMPTypes.h"

namespace mozilla {
namespace gmp {
class PGMPVideoDecoderParent;
} // namespace gmp
} // namespace mozilla
namespace mozilla {
namespace gmp {
class PGMPVideoDecoderChild;
} // namespace gmp
} // namespace mozilla

//-----------------------------------------------------------------------------
// Code common to PGMPVideoDecoderChild and PGMPVideoDecoderParent
//
namespace mozilla {
namespace gmp {
namespace PGMPVideoDecoder {

nsresult
CreateEndpoints(
        mozilla::ipc::EndpointProcInfo aParentDestInfo,
        mozilla::ipc::EndpointProcInfo aChildDestInfo,
        mozilla::ipc::Endpoint<::mozilla::gmp::PGMPVideoDecoderParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::gmp::PGMPVideoDecoderChild>* aChild);

enum MessageType {
    PGMPVideoDecoderStart = PGMPVideoDecoderMsgStart << 16,
    Msg_InitDecode__ID,
    Msg_GiveShmem__ID,
    Msg_Decode__ID,
    Msg_Reset__ID,
    Msg_Drain__ID,
    Msg___delete____ID,
    Reply___delete____ID,
    Msg_ReturnShmem__ID,
    Msg_DecodedData__ID,
    Msg_DecodedShmem__ID,
    Msg_ReceivedDecodedReferenceFrame__ID,
    Msg_ReceivedDecodedFrame__ID,
    Msg_InputDataExhausted__ID,
    Msg_DrainComplete__ID,
    Msg_ResetComplete__ID,
    Msg_Error__ID,
    Msg_Shutdown__ID,
    PGMPVideoDecoderEnd
};

mozilla::UniquePtr<IPC::Message>
Msg_InitDecode(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_GiveShmem(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Decode(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Reset(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Drain(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg___delete__(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply___delete__(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ReturnShmem(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DecodedData(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DecodedShmem(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ReceivedDecodedReferenceFrame(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ReceivedDecodedFrame(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_InputDataExhausted(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DrainComplete(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ResetComplete(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Error(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Shutdown(IPC::Message::routeid_t routingId);



} // namespace PGMPVideoDecoder
} // namespace gmp
} // namespace mozilla

#endif // ifndef PGMPVideoDecoder_h
