/*---------------------------------------------------------------------------*/
/* appsharing_channel.h                                                      */
/* copyright (c) innovaphone 2018                                            */
/*---------------------------------------------------------------------------*/

class AppSharingEndpoint : public IMediaEndpoint {

    class UMediaEndpoint * channel;
    class IInstanceLog * const log;

    enum AppSharingCoder coder;

public:
    AppSharingEndpoint(AppSharingCoder coder, class UMediaEndpoint * channel, class IInstanceLog * const log);
    ~AppSharingEndpoint();

    void Recv(char * buf, int len, dword timestamp, short sequenceNumberDiff, bool marker);
    void Send(char * buf, int len, dword timestamp, unsigned num, enum MediaType mediaType, bool isConference);
};

class AppSharingContainer: public IMediaContainer {
    class UMediaContainer * const user;
    class IInstanceLog * const log;

public:
    AppSharingContainer(class UMediaContainer * user, class IInstanceLog * const log);
    ~AppSharingContainer();

    void PutSample(char * buf, int len, dword timestamp) override;
    void Initialize(void) override;
};
