Wasabi ExpressPlay SDK for Embedded Systems
1.10
Main Page
Modules
Data Structures
Files
File List
Globals
Client
ThirdParty
Sushi
Source
Core
Interface
ShiAction.h
Go to the documentation of this file.
1
/*****************************************************************
2
|
3
| Sushi - Action
4
|
5
| $Id: ShiAction.h 7930 2014-06-25 11:05:10Z jebaseelir $
6
| Original author: Gilles Boccon-Gibod
7
|
8
| This software is provided to you pursuant to your agreement
9
| with Intertrust Technologies Corporation ("Intertrust").
10
| This software may be used only in accordance with the terms
11
| of the agreement.
12
|
13
| Copyright (c) 2005-2014 by Intertrust. All rights reserved.
14
|
15
****************************************************************/
21
#ifndef _SHI_ACTION_H_
22
#define _SHI_ACTION_H_
23
24
/*----------------------------------------------------------------------
25
| includes
26
+---------------------------------------------------------------------*/
27
#include "
ShiResults.h
"
28
#include "
ShiTypes.h
"
29
#include "
ShiList.h
"
30
#include "
ShiAttributes.h
"
31
#include "
ShiLicenseInfo.h
"
32
33
/*----------------------------------------------------------------------
34
| constants
35
+---------------------------------------------------------------------*/
39
#define SHI_ACTION_CALLBACK_IS_MANDATORY 0x00000001
40
#define SHI_ACTION_CALLBACK_IS_RESET 0x00010000
41
45
#define SHI_ACTION_OBLIGATION_IS_MANDATORY 0x00000001
46
50
#define SHI_ACTION_RESULT_MUST_ACCEPT 0x00000001
51
#define SHI_ACTION_RESULT_HAS_OBLIGATIONS 0x00000002
52
#define SHI_ACTION_RESULT_HAS_CALLBACKS 0x00000004
53
58
#define SHI_ACTION_PLAY "Play"
59
70
#define SHI_ACTION_EXPORT "Export"
71
72
/*
73
* Predefined export modes.
74
*/
75
#define SHI_ACTION_EXPORT_MODE_DONT_KNOW "DontKnow"
76
#define SHI_ACTION_EXPORT_MODE_RENDER "Render"
77
#define SHI_ACTION_EXPORT_MODE_COPY "Copy"
78
#define SHI_ACTION_EXPORT_MODE_MOVE "Move"
79
80
/*
81
* Predefined export target systems ID used when exporting to
82
* audio CD (also known as CD Burning).
83
*/
84
#define SHI_ACTION_EXPORT_SYSTEM_AUDIO_CD "CleartextPcmAudio"
85
86
#define SHI_DATA_POINTER_TYPE_ID_CALLBACK 1
87
#define SHI_DATA_POINTER_TYPE_ID_OBLIGATION 2
88
89
/*----------------------------------------------------------------------
90
| types
91
+---------------------------------------------------------------------*/
95
typedef
struct
{
96
const
char
*
target_system
;
98
const
char
*
export_mode
;
101
}
SHI_ActionExportParameters
;
102
106
typedef
enum
{
114
SHI_ACTION_OBLIGATION_TYPE_PLAYBACK_METERING
,
115
121
SHI_ACTION_OBLIGATION_TYPE_MEDIA_ZONES
,
122
134
SHI_ACTION_OBLIGATION_TYPE_GENERIC
135
}
SHI_ActionObligationType
;
136
140
typedef
struct
{
146
SHI_ActionObligationType
type
;
147
151
SHI_Flags
flags
;
152
158
const
void
*
parameters
;
159
}
SHI_ActionObligation
;
160
164
typedef
enum
{
165
SHI_MEDIA_ZONE_TYPE_NOSKIP
= 0,
166
SHI_MEDIA_ZONE_TYPE_MAGNETIC
= 1,
167
SHI_MEDIA_ZONE_TYPE_STICKY
= 2
168
}
SHI_MediaZoneType
;
169
173
#define SHI_MEDIA_ZONE_FLAG_METER 1
174
#define SHI_MEDIA_ZONE_FLAG_INCLUDE_SPLICE 2
175
180
typedef
struct
{
184
SHI_UInt32
id
;
185
189
SHI_MediaZoneType
type
;
190
194
SHI_Flags
flags
;
195
}
SHI_MediaZoneInfo
;
196
202
typedef
struct
{
203
SHI_Cardinal
zone_count
;
204
SHI_MediaZoneInfo
*
zones
;
205
}
SHI_ActionMediaZonesObligation
;
206
212
typedef
struct
{
218
SHI_Attribute
*
attribute
;
219
}
SHI_ActionGenericObligation
;
220
225
typedef
enum
{
227
SHI_ACTION_METERING_START
,
228
230
SHI_ACTION_METERING_STOP
,
231
237
SHI_ACTION_METERING_ZONE_COMPLETED
238
}
SHI_ActionMeteringEventType
;
239
243
typedef
struct
{
248
const
char
*
metering_tag
;
249
}
SHI_ActionOnZoneCompletedMeteringParameters
;
250
254
typedef
enum
{
262
SHI_ACTION_CALLBACK_TYPE_ON_TIME
,
263
271
SHI_ACTION_CALLBACK_TYPE_ON_TIME_ELAPSED
,
272
279
SHI_ACTION_CALLBACK_TYPE_ON_PLAY
,
280
287
SHI_ACTION_CALLBACK_TYPE_ON_STOP
,
288
296
SHI_ACTION_CALLBACK_TYPE_ON_SEEK
,
297
305
SHI_ACTION_CALLBACK_TYPE_ON_TIMECODE
,
306
314
SHI_ACTION_CALLBACK_TYPE_ON_ZONE_COMPLETED
315
}
SHI_ActionCallbackType
;
316
320
typedef
struct
{
326
SHI_UInt32
handle
;
327
331
SHI_Flags
flags
;
332
340
SHI_ActionCallbackType
type
;
341
348
const
void
*
parameters
;
349
}
SHI_ActionCallback
;
350
354
typedef
struct
{
358
SHI_DateTime
time
;
359
}
SHI_ActionOnTimeCallbackParameters
;
360
364
typedef
struct
{
370
SHI_UInt32
seconds
;
371
}
SHI_ActionOnTimeElapsedCallbackParameters
;
372
376
typedef
struct
{
384
SHI_UInt32
timecode
;
385
}
SHI_ActionOnTimecodeCallbackParameters
;
386
390
typedef
struct
{
395
SHI_UInt32
zone_id
;
396
}
SHI_ActionOnZoneCompletedCallbackParameters
;
397
401
typedef
struct
{
402
SHI_UInt32
offset
;
403
SHI_UInt32
range
;
404
}
SHI_ActionOnSeekCallbackArguments
;
405
422
typedef
struct
{
423
SHI_Boolean
is_granted
;
424
SHI_Boolean
is_permanent
;
425
SHI_Flags
flags
;
426
}
SHI_ActionResultInfo
;
427
428
/*----------------------------------------------------------------------
429
| interfaces
430
+---------------------------------------------------------------------*/
431
#if defined(__cplusplus)
432
extern
"C"
{
433
#endif
434
444
typedef
struct
SHI_ActionResult
SHI_ActionResult
;
445
456
SHI_PUBLIC_API
457
void
*
458
SHI_ActionResult_GetInterface
(
SHI_ActionResult
*
self
,
SHI_InterfaceId
iface_id);
459
468
SHI_PUBLIC_API
469
SHI_Result
470
SHI_ActionResult_Release
(
SHI_ActionResult
*
self
);
471
486
SHI_PUBLIC_API
487
SHI_Result
488
SHI_ActionResult_GetObligations
(
SHI_ActionResult
*
self
,
SHI_List
** obligations);
489
504
SHI_PUBLIC_API
505
SHI_Result
506
SHI_ActionResult_GetCallbacks
(
SHI_ActionResult
*
self
,
SHI_List
** callbacks);
507
518
SHI_PUBLIC_API
519
SHI_Result
520
SHI_ActionResult_GetInfo
(
SHI_ActionResult
*
self
,
SHI_ActionResultInfo
* info);
521
532
SHI_PUBLIC_API
533
SHI_Result
534
SHI_ActionResult_GetDetails
(
SHI_ActionResult
*
self
,
SHI_Attribute
** details);
535
549
SHI_PUBLIC_API
550
SHI_Result
551
SHI_ActionResult_Accept
(
SHI_ActionResult
*
self
);
552
564
typedef
struct
SHI_Action
SHI_Action
;
565
576
SHI_PUBLIC_API
577
void
*
578
SHI_Action_GetInterface
(
SHI_Action
*
self
,
SHI_InterfaceId
iface_id);
579
588
SHI_PUBLIC_API
589
SHI_Result
590
SHI_Action_Destroy
(
SHI_Action
*
self
);
591
604
SHI_PUBLIC_API
605
SHI_Result
606
SHI_Action_Describe
(
SHI_Action
*
self
,
SHI_LicenseInfo
** description);
607
620
SHI_PUBLIC_API
621
SHI_Result
622
SHI_Action_Check
(
SHI_Action
*
self
,
SHI_ActionResult
** result);
623
639
SHI_PUBLIC_API
640
SHI_Result
641
SHI_Action_Perform
(
SHI_Action
*
self
,
SHI_ActionResult
** result);
642
670
SHI_PUBLIC_API
671
SHI_Result
672
SHI_Action_Callback
(
SHI_Action
*
self
,
673
SHI_UInt32
callback_handle,
674
const
void
* arguments,
675
SHI_ActionResult
** result);
676
690
SHI_PUBLIC_API
691
SHI_Result
692
SHI_Action_LogMeteringEvent
(
SHI_Action
*
self
,
693
SHI_ActionMeteringEventType
type,
694
const
void
* parameters);
695
697
#if defined(__cplusplus)
698
}
699
#endif
700
701
#endif
/* _SHI_ACTION_H_ */