Wasabi ExpressPlay SDK for Embedded Systems  1.23.0
Data Structures | Macros | Typedefs | Enumerations | Functions
ShiAction.h File Reference

Actions. More...

#include "ShiResults.h"
#include "ShiTypes.h"
#include "ShiList.h"
#include "ShiAttributes.h"
#include "ShiLicenseInfo.h"

Go to the source code of this file.

Data Structures

struct  SHI_ActionExportParameters
 Parameters for a SHI_ACTION_EXPORT action. More...
 
struct  SHI_ActionObligation
 Obligation returned by SHI_ActionResult_GetObligations. More...
 
struct  SHI_MediaZoneInfo
 Information for a zone returned in a SHI_ActionMediaZonesObligation obligation. More...
 
struct  SHI_ActionMediaZonesObligation
 Parameters for media zones. More...
 
struct  SHI_ActionGenericObligation
 Parameters for generic obligations. More...
 
struct  SHI_ActionOnZoneCompletedMeteringParameters
 Parameters for metering events of type SHI_ACTION_METERING_ZONE_COMPLETED. More...
 
struct  SHI_ActionCallback
 Callback returned by SHI_ActionResult_GetCallbacks. More...
 
struct  SHI_ActionOnTimeCallbackParameters
 Parameters for callbacks of type SHI_ACTION_CALLBACK_TYPE_ON_TIME. More...
 
struct  SHI_ActionOnTimeElapsedCallbackParameters
 Parameters for callbacks of type SHI_ACTION_CALLBACK_TYPE_ON_TIME_ELAPSED. More...
 
struct  SHI_ActionOnTimecodeCallbackParameters
 Parameters for callbacks of type SHI_ACTION_CALLBACK_TYPE_ON_TIMECODE. More...
 
struct  SHI_ActionOnZoneCompletedCallbackParameters
 Parameters for callbacks of type SHI_ACTION_CALLBACK_TYPE_ON_ZONE_COMPLETED. More...
 
struct  SHI_ActionOnSeekCallbackArguments
 Arguments for callbacks of type SHI_ACTION_CALLBACK_TYPE_ON_SEEK. More...
 
struct  SHI_ActionResultInfo
 Information about an action result. More...
 

Macros

#define SHI_ACTION_CALLBACK_IS_MANDATORY   0x00000001
 Possible flags for SHI_ActionCallback. More...
 
#define SHI_ACTION_CALLBACK_IS_RESET   0x00010000
 
#define SHI_ACTION_OBLIGATION_IS_MANDATORY   0x00000001
 Possible flags for SHI_ActionObligation. More...
 
#define SHI_ACTION_RESULT_MUST_ACCEPT   0x00000001
 Flags for SHI_ActionResultInfo. More...
 
#define SHI_ACTION_RESULT_HAS_OBLIGATIONS   0x00000002
 
#define SHI_ACTION_RESULT_HAS_CALLBACKS   0x00000004
 
#define SHI_ACTION_PLAY   "Play"
 Action name indicating standard "Play" for multimedia content. More...
 
#define SHI_ACTION_EXPORT   "Export"
 Action name indicating export to a foreign DRM system. More...
 
#define SHI_ACTION_EXPORT_MODE_DONT_KNOW   "DontKnow"
 
#define SHI_ACTION_EXPORT_MODE_RENDER   "Render"
 
#define SHI_ACTION_EXPORT_MODE_COPY   "Copy"
 
#define SHI_ACTION_EXPORT_MODE_MOVE   "Move"
 
#define SHI_ACTION_EXPORT_SYSTEM_AUDIO_CD   "CleartextPcmAudio"
 
#define SHI_DATA_POINTER_TYPE_ID_CALLBACK   1
 
#define SHI_DATA_POINTER_TYPE_ID_OBLIGATION   2
 
#define SHI_MEDIA_ZONE_FLAG_METER   1
 Media zone flags. More...
 
#define SHI_MEDIA_ZONE_FLAG_INCLUDE_SPLICE   2
 

Typedefs

typedef struct SHI_ActionResult SHI_ActionResult
 A SHI_ActionResult object represents the result returned by several different SHI_Action methods. More...
 
typedef struct SHI_Action SHI_Action
 A SHI_Action object represents an action that can be performed on the content item represented by a license. More...
 

Enumerations

enum  SHI_ActionObligationType {
  SHI_ACTION_OBLIGATION_TYPE_PLAYBACK_METERING,
  SHI_ACTION_OBLIGATION_TYPE_MEDIA_ZONES,
  SHI_ACTION_OBLIGATION_TYPE_GENERIC
}
 Possible SHI_ActionObligation type values. More...
 
enum  SHI_MediaZoneType {
  SHI_MEDIA_ZONE_TYPE_NOSKIP = 0,
  SHI_MEDIA_ZONE_TYPE_MAGNETIC = 1,
  SHI_MEDIA_ZONE_TYPE_STICKY = 2
}
 Media zone types. More...
 
enum  SHI_ActionMeteringEventType {
  SHI_ACTION_METERING_START,
  SHI_ACTION_METERING_STOP,
  SHI_ACTION_METERING_ZONE_COMPLETED
}
 The different types of metering events that may be logged by calls to SHI_ActionLogMeteringEvent. More...
 
enum  SHI_ActionCallbackType {
  SHI_ACTION_CALLBACK_TYPE_ON_TIME,
  SHI_ACTION_CALLBACK_TYPE_ON_TIME_ELAPSED,
  SHI_ACTION_CALLBACK_TYPE_ON_PLAY,
  SHI_ACTION_CALLBACK_TYPE_ON_STOP,
  SHI_ACTION_CALLBACK_TYPE_ON_SEEK,
  SHI_ACTION_CALLBACK_TYPE_ON_TIMECODE,
  SHI_ACTION_CALLBACK_TYPE_ON_ZONE_COMPLETED
}
 Possible SHI_ActionCallback type values. More...
 

Functions

SHI_PUBLIC_API void * SHI_ActionResult_GetInterface (SHI_ActionResult *self, SHI_InterfaceId iface_id)
 Obtains a pointer to a SHI_ActionResult object with a different interface. More...
 
SHI_PUBLIC_API SHI_Result SHI_ActionResult_Release (SHI_ActionResult *self)
 Releases this action result object. More...
 
SHI_PUBLIC_API SHI_Result SHI_ActionResult_GetObligations (SHI_ActionResult *self, SHI_List **obligations)
 Returns a list of obligations for this action result object. More...
 
SHI_PUBLIC_API SHI_Result SHI_ActionResult_GetCallbacks (SHI_ActionResult *self, SHI_List **callbacks)
 Returns a list of callbacks for this action result object. More...
 
SHI_PUBLIC_API SHI_Result SHI_ActionResult_GetInfo (SHI_ActionResult *self, SHI_ActionResultInfo *info)
 Returns information about this action result object. More...
 
SHI_PUBLIC_API SHI_Result SHI_ActionResult_GetDetails (SHI_ActionResult *self, SHI_Attribute **details)
 Returns details for this action result object. More...
 
SHI_PUBLIC_API SHI_Result SHI_ActionResult_Accept (SHI_ActionResult *self)
 Accepts the action result. More...
 
SHI_PUBLIC_API SHI_Boolean SHI_ActionResult_IsFromMs3 (SHI_ActionResult *self)
 Returns boolean status on whether this action result object is associated with Marlin MS3. More...
 
SHI_PUBLIC_API void * SHI_Action_GetInterface (SHI_Action *self, SHI_InterfaceId iface_id)
 Obtains a pointer to a SHI_Action object with a different interface. More...
 
SHI_PUBLIC_API SHI_Result SHI_Action_Destroy (SHI_Action *self)
 Destroys this action object. More...
 
SHI_PUBLIC_API SHI_Result SHI_Action_Describe (SHI_Action *self, SHI_LicenseInfo **description)
 Gets a description for this action. More...
 
SHI_PUBLIC_API SHI_Result SHI_Action_Check (SHI_Action *self, SHI_ActionResult **result)
 Checks whether this action would be granted or denied if SHI_ActionPerform were called, without actually calling the method and thereby triggering potential side effects. More...
 
SHI_PUBLIC_API SHI_Result SHI_Action_Perform (SHI_Action *self, SHI_ActionResult **result)
 Determines whether this action is allowed by its license. More...
 
SHI_PUBLIC_API SHI_Result SHI_Action_Callback (SHI_Action *self, SHI_UInt32 callback_handle, const void *arguments, SHI_ActionResult **result)
 Invokes a callback on this action. More...
 
SHI_PUBLIC_API SHI_Result SHI_Action_LogMeteringEvent (SHI_Action *self, SHI_ActionMeteringEventType type, const void *parameters)
 Logs a playback metering event. More...
 

Detailed Description

Actions.

Macro Definition Documentation

◆ SHI_ACTION_CALLBACK_IS_MANDATORY

#define SHI_ACTION_CALLBACK_IS_MANDATORY   0x00000001

Possible flags for SHI_ActionCallback.

◆ SHI_ACTION_CALLBACK_IS_RESET

#define SHI_ACTION_CALLBACK_IS_RESET   0x00010000

◆ SHI_ACTION_EXPORT

#define SHI_ACTION_EXPORT   "Export"

Action name indicating export to a foreign DRM system.

This type of action requires parameters, passed as a pointer to a SHI_ActionExportParameters structure. When using this type of action, the details of the SHI_ActionResult result returned by the SHI_Action_Check or SHI_Action_Perform methods will contain an attribute named 'ExportInfo'. The type and value of that attribute are determined by the specific target system to which the export is done.

◆ SHI_ACTION_EXPORT_MODE_COPY

#define SHI_ACTION_EXPORT_MODE_COPY   "Copy"

◆ SHI_ACTION_EXPORT_MODE_DONT_KNOW

#define SHI_ACTION_EXPORT_MODE_DONT_KNOW   "DontKnow"

◆ SHI_ACTION_EXPORT_MODE_MOVE

#define SHI_ACTION_EXPORT_MODE_MOVE   "Move"

◆ SHI_ACTION_EXPORT_MODE_RENDER

#define SHI_ACTION_EXPORT_MODE_RENDER   "Render"

◆ SHI_ACTION_EXPORT_SYSTEM_AUDIO_CD

#define SHI_ACTION_EXPORT_SYSTEM_AUDIO_CD   "CleartextPcmAudio"

◆ SHI_ACTION_OBLIGATION_IS_MANDATORY

#define SHI_ACTION_OBLIGATION_IS_MANDATORY   0x00000001

Possible flags for SHI_ActionObligation.

◆ SHI_ACTION_PLAY

#define SHI_ACTION_PLAY   "Play"

Action name indicating standard "Play" for multimedia content.

When creating this type of action, no parameters are required.

◆ SHI_ACTION_RESULT_HAS_CALLBACKS

#define SHI_ACTION_RESULT_HAS_CALLBACKS   0x00000004

◆ SHI_ACTION_RESULT_HAS_OBLIGATIONS

#define SHI_ACTION_RESULT_HAS_OBLIGATIONS   0x00000002

◆ SHI_ACTION_RESULT_MUST_ACCEPT

#define SHI_ACTION_RESULT_MUST_ACCEPT   0x00000001

◆ SHI_DATA_POINTER_TYPE_ID_CALLBACK

#define SHI_DATA_POINTER_TYPE_ID_CALLBACK   1

◆ SHI_DATA_POINTER_TYPE_ID_OBLIGATION

#define SHI_DATA_POINTER_TYPE_ID_OBLIGATION   2

◆ SHI_MEDIA_ZONE_FLAG_INCLUDE_SPLICE

#define SHI_MEDIA_ZONE_FLAG_INCLUDE_SPLICE   2

◆ SHI_MEDIA_ZONE_FLAG_METER

#define SHI_MEDIA_ZONE_FLAG_METER   1

Media zone flags.

Enumeration Type Documentation

◆ SHI_ActionCallbackType

Possible SHI_ActionCallback type values.

Enumerator
SHI_ACTION_CALLBACK_TYPE_ON_TIME 

OnTime callback.

This type of callback is described with a SHI_ActionCallback struct with the 'parameters' field pointing to a struct with the type SHI_ActionOnTimeCallbackParameters. When invoking the callback by calling the SHI_Action_Callback method, the 'arguments' parameter must be NULL

SHI_ACTION_CALLBACK_TYPE_ON_TIME_ELAPSED 

OnTimeElapsed callback.

This type of callback is described with a SHI_ActionCallback struct with the 'parameters' field pointing to a struct with the type SHI_ActionOnTimeElapsedCallbackParameters. When invoking the callback by calling the SHI_Action_Callback method, the 'arguments' parameter must be NULL

SHI_ACTION_CALLBACK_TYPE_ON_PLAY 

OnPlay callback.

This type of callback is described with a SHI_ActionCallback struct with a NULL 'parameters' field. When invoking the callback by calling the SHI_Action_Callback method, the 'arguments' parameter must be NULL

SHI_ACTION_CALLBACK_TYPE_ON_STOP 

OnStop callback.

This type of callback is described with a SHI_ActionCallback struct with a NULL 'parameters' field. When invoking the callback by calling the SHI_Action_Callback method, the 'arguments' parameter must be NULL

SHI_ACTION_CALLBACK_TYPE_ON_SEEK 

OnSeek callback.

This type of callback is described with a SHI_ActionCallback struct with a NULL 'parameters' field. When invoking the callback by calling the SHI_Action_Callback method, the 'arguments' parameter must point to a SHI_ActionOnSeekCallbackArguments struct.

SHI_ACTION_CALLBACK_TYPE_ON_TIMECODE 

OnTimecode callback.

This type of callback is described with a SHI_ActionCallback struct with the 'parameters' field pointing to a struct with the type SHI_ActionOnTimecodeCallbackParameters. When invoking the callback by calling the SHI_Action_Callback method, the 'arguments' parameter must be NULL.

SHI_ACTION_CALLBACK_TYPE_ON_ZONE_COMPLETED 

OnZoneCompleted callback.

This type of callback is described with a SHI_ActionCallback struct with the 'parameters' field pointing to a struct with the type SHI_ActionOnZoneCompletedCallbackParameters. When invoking the callback by calling the SHI_Action_Callback method, the 'arguments' parameter must be NULL.

◆ SHI_ActionMeteringEventType

The different types of metering events that may be logged by calls to SHI_ActionLogMeteringEvent.

Enumerator
SHI_ACTION_METERING_START 

When playback is started.

SHI_ACTION_METERING_STOP 

When playback is stopped or paused.

SHI_ACTION_METERING_ZONE_COMPLETED 

When a Media Zone has been completely played and validated.

The parameters for this event must point to a struct of type SHI_ActionOnZoneCompletedMeteringParameters.

◆ SHI_ActionObligationType

Possible SHI_ActionObligation type values.

Enumerator
SHI_ACTION_OBLIGATION_TYPE_PLAYBACK_METERING 

Obligations of this type are metering obligations.

This means that the application will need to use the SHI_ActionLogMeteringEvent method. Refer to the SDK documentation for more details on metering. Obligations of this type have a NULL 'parameters' field.

SHI_ACTION_OBLIGATION_TYPE_MEDIA_ZONES 

Obligations of this type are media zones obligations.

Obligations of this type have a 'parameters' field that points to a SHI_ActionMediaZonesObligation struct.

SHI_ACTION_OBLIGATION_TYPE_GENERIC 

Obligations of this type are obligations for which this API does not provide a specific representation.

This includes standard obligations that may have been standardized after this API was created, or custom (vendor specific) obligations not known to this implementation. Applications are responsible for examining such obligations by parsing the obligation's details and either accepting or rejecting the obligation. Obligations of this type have a 'parameters' field that points to a SHI_ActionGenericObligation struct.

◆ SHI_MediaZoneType

Media zone types.

Enumerator
SHI_MEDIA_ZONE_TYPE_NOSKIP 
SHI_MEDIA_ZONE_TYPE_MAGNETIC 
SHI_MEDIA_ZONE_TYPE_STICKY