struct CCL::IMediaThreadService

Overview

Threading services for multimedia applications. More…

#include <imediathreading.h>

struct IMediaThreadService: public CCL::IUnknown
{
    // methods

    virtual tresult CCL_API startup () = 0;
    virtual tresult CCL_API shutdown () = 0;
    virtual double CCL_API getMediaTime () = 0;

    virtual IMediaTimer*CCL_API createTimer (
        StringID name,
        IMediaTimerTask& task,
        uint32 period,
        int timerID,
        Threading::ThreadPriority priority = Threading::kPriorityAboveNormal
    ) = 0;

    virtual tresult CCL_API getThreadsSnapshot (
        Threading::ThreadInfo infos [],
        int& count
    ) = 0;

    virtual tresult CCL_API setPriorityHandler (IMediaThreadPriorityHandler* priorityHandler) = 0;
    virtual IMediaThreadWorkgroupHandler*CCL_API getWorkgroupHandler () = 0;
};

Inherited Members

public:
    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;

Detailed Documentation

Threading services for multimedia applications.

Methods

virtual tresult CCL_API startup () = 0

Call before using services.

virtual tresult CCL_API shutdown () = 0

Call after using services.

virtual double CCL_API getMediaTime () = 0

Get time-stamp of multimedia timer in seconds.

virtual IMediaTimer*CCL_API createTimer (
    StringID name,
    IMediaTimerTask& task,
    uint32 period,
    int timerID,
    Threading::ThreadPriority priority = Threading::kPriorityAboveNormal
) = 0

Create high-resolution multimedia timer.

virtual tresult CCL_API getThreadsSnapshot (
    Threading::ThreadInfo infos [],
    int& count
) = 0

Get snapshot of all threads known to the framework.

virtual tresult CCL_API setPriorityHandler (IMediaThreadPriorityHandler* priorityHandler) = 0

Set thread priority handler to custom implementation.

Pass null to reset to default framework handler.

virtual IMediaThreadWorkgroupHandler*CCL_API getWorkgroupHandler () = 0

Get thread workgroup handler.