00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ITOIMEDIAPLAYERBASE_IDL
00016 #define ITOIMEDIAPLAYERBASE_IDL
00017
00018 #include "TToiSessionViolationException.idl"
00019 #include "TToiUnavailableException.idl"
00020 #include "TToiInvalidArgumentException.idl"
00021 #include "TToiNoDataException.idl"
00022 #include "TToiPermissionDeniedException.idl"
00023 #include "TToiOperationNotSupportedException.idl"
00024 #include "TToiInvalidPreconditionException.idl"
00025 #include "TToiNotEnoughResourcesException.idl"
00026 #include "IToiMediaSession.idl"
00027 #include "TToiUnhandledValueException.idl"
00028 #include "IToiApplicationService.idl"
00029 #include "IToiOperationManager.idl"
00030 #include "IToiAssetManagerService.idl"
00031
00032 #include "IToiApplicationService.idl"
00041
00042
00043 interface IToiMediaPlayerBase {
00044
00049 enum TToiComponentType
00050 {
00051
00054
00055 COMPONENT_AUDIO,
00056
00059
00060 COMPONENT_VIDEO,
00061
00064
00065 COMPONENT_SUBTITLE,
00066
00070
00071 COMPONENT_SUBTITLE_CAPTION,
00072
00078
00079 COMPONENT_SUBTITLE_SUPERIMPOSE,
00080
00085
00086 COMPONENT_TELETEXT_VBI
00087 };
00089 struct TToiComponentEntry {
00091 IToiMediaPlayerBase::TToiComponentType Type;
00093 long Id;
00094 };
00095
00097 typedef sequence < TToiComponentEntry > TToiComponentSequence;
00098
00100 typedef sequence < long > TToiPaceSequence;
00101
00107 enum TToiErrorSource
00108 {
00109
00113
00114 SOURCE_UNKNOWN,
00115
00120
00121 SOURCE_INTERNAL,
00122
00126
00127 SOURCE_BITBAND
00128 };
00132 struct TToiError {
00134 IToiMediaPlayerBase::TToiErrorSource Source;
00136 long Details;
00137 };
00138
00141 enum TToiState
00142 {
00143
00151
00152 STATE_IDLE,
00153
00166
00167 STATE_CONNECTING,
00168
00179
00180 STATE_PAUSED,
00181
00193
00194 STATE_PLAYING,
00195
00209
00210 STATE_FASTFORWARDING,
00211
00225
00226 STATE_REWINDING,
00227
00234
00235 STATE_FAILED
00236 };
00239 enum TToiTimeshiftState
00240 {
00241
00248
00249 TIMESHIFT_STATE_INACTIVE,
00250
00256
00257 TIMESHIFT_STATE_BUFFERING,
00258
00264
00265 TIMESHIFT_STATE_STOPPED,
00266
00273
00274 TIMESHIFT_STATE_BUFFERING_FAILED
00275 };
00277 struct TToiTimeshiftInfo {
00279 IToiMediaPlayerBase::TToiTimeshiftState State;
00285 long BufferCapacity;
00290 long BufferUsed;
00295 long BufferStartPosition;
00297 IToiMediaSession::TToiSessionId RecorderSessionId;
00302
00303 IToiAssetManagerService::TToiAssetId AssetId;
00304 };
00305
00309 enum TToiAudioAudienceType
00310 {
00311
00314
00315 AUDIO_AUDIENCE_TYPE_UNKNOWN,
00316
00319
00320 AUDIO_AUDIENCE_TYPE_NORMAL,
00321
00324
00325 AUDIO_AUDIENCE_TYPE_VISUALLY_IMPAIRED,
00326
00329
00330 AUDIO_AUDIENCE_TYPE_HEARING_IMPAIRED
00331 };
00335 enum TToiAudioChannelFormat
00336 {
00337
00340
00341 AUDIO_CHANNEL_FORMAT_UNKNOWN,
00342
00345
00346 AUDIO_CHANNEL_FORMAT_SINGLE_MONO,
00347
00350
00351 AUDIO_CHANNEL_FORMAT_DUAL_MONO,
00352
00355
00356 AUDIO_CHANNEL_FORMAT_STEREO,
00357
00360
00361 AUDIO_CHANNEL_FORMAT_3_FRONT_1_BACK,
00362
00365
00366 AUDIO_CHANNEL_FORMAT_3_FRONT_2_BACK,
00367
00371
00372 AUDIO_CHANNEL_FORMAT_3_FRONT_2_BACK_LFE,
00373
00377
00378 AUDIO_CHANNEL_FORMAT_3_FRONT_2_SIDE_2_BACK_LFE
00379 };
00382 enum TToiAudioChannelMode
00383 {
00384
00387
00388 AUDIO_CHANNEL_MODE_NORMAL,
00389
00393
00394 AUDIO_CHANNEL_MODE_DUAL_MONO_LEFT_ONLY,
00395
00399
00400 AUDIO_CHANNEL_MODE_DUAL_MONO_RIGHT_ONLY,
00401
00406
00407 AUDIO_CHANNEL_MODE_DUAL_MONO_STEREO,
00408
00412
00413 AUDIO_CHANNEL_MODE_DUAL_MONO_MIXED
00414 };
00418 struct TToiAudioStreamInfo {
00423 string Encoding;
00428 long SampleRate;
00430 IToiMediaPlayerBase::TToiAudioChannelFormat ChannelFormat;
00432 IToiMediaPlayerBase::TToiAudioChannelMode ChannelMode;
00435 string Language;
00438 string SubLanguage;
00440 IToiMediaPlayerBase::TToiAudioAudienceType AudienceType;
00443 long ComponentTag;
00444 };
00445
00449 enum TToiAspectRatio
00450 {
00451
00454
00455 ASPECT_RATIO_UNKNOWN,
00456
00459
00460 ASPECT_RATIO_4_3,
00461
00464
00465 ASPECT_RATIO_16_9
00466 };
00470 enum TToiActiveFormatDescriptor
00471 {
00472
00475
00476 ACTIVE_FORMAT_UNKNOWN,
00477
00480
00481 ACTIVE_FORMAT_16_9_TOP,
00482
00485
00486 ACTIVE_FORMAT_14_9_TOP,
00487
00490
00491 ACTIVE_FORMAT_MORE_THAN_16_9_CENTRE,
00492
00495
00496 ACTIVE_FORMAT_SAME_AS_CODED,
00497
00500
00501 ACTIVE_FORMAT_4_3_CENTRE,
00502
00505
00506 ACTIVE_FORMAT_16_9_CENTRE,
00507
00510
00511 ACTIVE_FORMAT_14_9_CENTRE,
00512
00516
00517 ACTIVE_FORMAT_4_3_SHOOT_AND_PROTECT_14_9_CENTRE,
00518
00522
00523 ACTIVE_FORMAT_16_9_SHOOT_AND_PROTECT_14_9_CENTRE,
00524
00528
00529 ACTIVE_FORMAT_16_9_SHOOT_AND_PROTECT_4_3_CENTRE
00530 };
00536 struct TToiVideoStreamInfo {
00540 string Encoding;
00544 long ResolutionX;
00548 long ResolutionY;
00552 IToiMediaPlayerBase::TToiAspectRatio AspectRatio;
00556 IToiMediaPlayerBase::TToiActiveFormatDescriptor ActiveFormatDescriptor;
00561 long FrameRate;
00564 long ComponentTag;
00565 };
00566
00570 enum TToiSubtitleType
00571 {
00572
00575
00576 SUBTITLE_UNKNOWN,
00577
00580
00581 SUBTITLE_NORMAL,
00582
00585
00586 SUBTITLE_HEARING_IMPAIRED
00587 };
00591 enum TToiSubtitleFormat
00592 {
00593
00596
00597 SUBTITLE_DVB,
00598
00601
00602 SUBTITLE_ARIB,
00603
00606
00607 SUBTITLE_TELETEXT,
00608
00611
00612 SUBTITLE_DVD,
00613
00618
00619 SUBTITLE_XSUB
00620 };
00623 enum TToiReceiveDmfMode
00624 {
00625
00628
00629 RECEIVE_DMF_MODE_AUTO,
00630
00633
00634 RECEIVE_DMF_MODE_NON_AUTO,
00635
00638
00639 RECEIVE_DMF_MODE_SELECT,
00640
00643
00644 RECEIVE_DMF_MODE_SPECIAL
00645 };
00648 enum TToiRecordDmfMode
00649 {
00650
00653
00654 RECORD_DMF_MODE_AUTO,
00655
00658
00659 RECORD_DMF_MODE_NON_AUTO,
00660
00663
00664 RECORD_DMF_MODE_SELECT
00665 };
00668 struct TToiSubtitleStreamInfo {
00672 string Language;
00676 IToiMediaPlayerBase::TToiSubtitleType Type;
00678 IToiMediaPlayerBase::TToiSubtitleFormat Format;
00681 IToiMediaPlayerBase::TToiAspectRatio AspectRatio;
00683 IToiMediaPlayerBase::TToiReceiveDmfMode ReceiveDmfMode;
00685 IToiMediaPlayerBase::TToiRecordDmfMode RecordDmfMode;
00686 };
00687
00690 struct TToiStreamInfo {
00693 string Title;
00695 IToiMediaPlayerBase::TToiComponentSequence AvailableComponents;
00697 IToiMediaPlayerBase::TToiComponentSequence ActiveComponents;
00700 long PlayTime;
00706
00707 IToiMediaPlayerBase::TToiPaceSequence Paces;
00708 };
00709
00712 struct TToiTeletextStreamInfo {
00714 string Language;
00715 };
00716
00722 const long PACE_PAUSE = 0;
00723
00729 const long PACE_PLAY = 1000;
00730
00736 const long PACE_FASTFORWARD = 5000;
00737
00743 const long PACE_REWIND = -5000;
00744
00751 const long POSITION_LIVE = -1616928864;
00752
00760 const long CAPABILITY_PAUSE = 1;
00761
00767 const long CAPABILITY_REWIND = 2;
00768
00774 const long CAPABILITY_FASTFORWARD = 4;
00775
00782 const long CAPABILITY_GETPOSITION = 8;
00783
00789 const long CAPABILITY_SETPOSITION = 16;
00790
00798 const long CAPABILITY_FREEZE = 32;
00799
00804 const long CAPABILITY_TIMESHIFT = 64;
00805
00812 void GetState(out TToiState state);
00813
00821 void GetError(out TToiError error);
00822
00836 void GetSessionId(out IToiMediaSession::TToiSessionId id)
00837 raises (TToiSessionViolationException);
00838
00849 void GetUrl(out string url)
00850 raises (TToiSessionViolationException);
00851
00871 void GetStreamInfo(out TToiStreamInfo streamInfo)
00872 raises (TToiSessionViolationException, TToiUnavailableException);
00873
00899 void GetVideoStreamInfo(in TToiComponentEntry mediaComponent,
00900 out TToiVideoStreamInfo streamInfo)
00901 raises (TToiSessionViolationException, TToiInvalidArgumentException, TToiUnavailableException);
00902
00928 void GetAudioStreamInfo(in TToiComponentEntry mediaComponent,
00929 out TToiAudioStreamInfo streamInfo)
00930 raises (TToiSessionViolationException, TToiInvalidArgumentException, TToiUnavailableException);
00931
00957 void GetSubtitleStreamInfo(in TToiComponentEntry mediaComponent,
00958 out TToiSubtitleStreamInfo streamInfo)
00959 raises (TToiSessionViolationException, TToiInvalidArgumentException, TToiUnavailableException);
00960
00986 void GetTeletextStreamInfo(in TToiComponentEntry mediaComponent,
00987 out TToiTeletextStreamInfo streamInfo)
00988 raises (TToiSessionViolationException, TToiInvalidArgumentException, TToiUnavailableException);
00989
01014 void GetCapabilities(out long capabilityMask)
01015 raises (TToiSessionViolationException, TToiUnavailableException);
01016
01040 void GetPosition(out long position)
01041 raises (TToiSessionViolationException, TToiOperationNotSupportedException, TToiUnavailableException);
01042
01071 void GetPace(out long pace)
01072 raises (TToiSessionViolationException, TToiOperationNotSupportedException, TToiUnavailableException);
01073
01089 void IsTimeshiftPlayback(out boolean timeshiftPlayback)
01090 raises (TToiSessionViolationException, TToiUnavailableException);
01091
01107 void GetTimeshiftInfo(out TToiTimeshiftInfo timeshiftInfo)
01108 raises (TToiSessionViolationException, TToiUnavailableException);
01109
01118 void GetTimeshiftError(out TToiError timeshiftError);
01119
01137 void GetActiveComponents(out TToiComponentSequence components)
01138 raises (TToiSessionViolationException, TToiUnavailableException);
01139
01160 void GetParameter(in string name,
01161 out string value)
01162 raises (TToiInvalidArgumentException, TToiUnavailableException);
01163
01188
01189
01190
01191 void SubscribeParameter(in string address,
01192 in string name)
01193 raises (TToiInvalidArgumentException, TToiUnavailableException);
01194
01216
01217
01218
01219 void UnsubscribeParameter(in string address,
01220 in string name)
01221 raises (TToiInvalidArgumentException, TToiUnavailableException);
01222
01227
01228
01229
01230 void ReleaseInstance();
01231
01232
01233
01246 void RegisterObserver(in IToiApplicationService::TToiApplicationId applicationId,
01247 in string address)
01248 raises (TToiInvalidArgumentException);
01249
01258 void ReleaseObserver(in string address)
01259 raises (TToiInvalidArgumentException);
01260
01261 };
01262
01263 #endif