00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ITOIMEDIASESSION_IDL
00016 #define ITOIMEDIASESSION_IDL
00017
00018 #include "TToiOperationNotSupportedException.idl"
00019 #include "TToiNoDataException.idl"
00020 #include "TToiNotEnoughResourcesException.idl"
00021 #include "TToiInvalidArgumentException.idl"
00022 #include "TToiSessionViolationException.idl"
00023
00024 #include "IToiApplicationService.idl"
00041
00042
00043 interface IToiMediaSession {
00044
00047 enum TToiState
00048 {
00049
00057
00058 STATE_CONNECTING,
00059
00064
00065 STATE_RUNNING,
00066
00069
00070 STATE_FAILED,
00071
00075
00076 STATE_CLOSED
00077 };
00080 typedef sequence < octet > TToiDataRelayData;
00081
00083 typedef long TToiStreamId;
00084
00087 typedef sequence < TToiStreamId > TToiStreamIdSequence;
00088
00091 typedef sequence < octet > TToiCipherData;
00092
00094 typedef long TToiSessionId;
00095
00098 typedef long TToiSessionType;
00099
00104 const TToiSessionType TYPE_PLAYER = 1;
00105
00110 const TToiSessionType TYPE_RECORDER = 2;
00111
00116 const TToiSessionType TYPE_CONSUMER = 4;
00117
00122 const TToiSessionType TYPE_DISTRIBUTOR = 8;
00123
00126 struct TToiStreamInfo {
00129 long ProgramNumber;
00130 };
00131
00134 enum TToiCipher
00135 {
00136
00139
00140 CIPHER_NONE,
00141
00144
00145 CIPHER_DVB_CSA,
00146
00149
00150 CIPHER_ARIB_MULTI2,
00151
00154
00155 CIPHER_AES_128,
00156
00159
00160 CIPHER_TRIPLE_DES
00161 };
00164 enum TToiCipherBlockMode
00165 {
00166
00169
00170 CIPHER_BLOCK_MODE_NONE,
00171
00174
00175 CIPHER_BLOCK_MODE_ECB,
00176
00179
00180 CIPHER_BLOCK_MODE_CBC,
00181
00184
00185 CIPHER_BLOCK_MODE_CFB,
00186
00189
00190 CIPHER_BLOCK_MODE_OFB,
00191
00194
00195 CIPHER_BLOCK_MODE_CTR
00196 };
00199 enum TToiCipherResidueMode
00200 {
00201
00204
00205 CIPHER_RESIDUE_MODE_NONE,
00206
00209
00210 CIPHER_RESIDUE_MODE_FRONT,
00211
00214
00215 CIPHER_RESIDUE_MODE_BACK,
00216
00219
00220 CIPHER_RESIDUE_MODE_CTS,
00221
00224
00225 CIPHER_RESIDUE_MODE_OFB
00226 };
00233 void GetId(out TToiSessionId id);
00234
00247 void GetType(out TToiSessionType type)
00248 raises (TToiSessionViolationException);
00249
00260 void GetUrl(out string url)
00261 raises (TToiSessionViolationException);
00262
00273 void GetState(out TToiState state);
00274
00289 void GetStreamInfo(out TToiStreamInfo info)
00290 raises (TToiNoDataException, TToiSessionViolationException);
00291
00309 void GetAssetId(out string assetId)
00310 raises (TToiOperationNotSupportedException, TToiSessionViolationException);
00311
00375
00376
00377
00378
00379 void AddSectionDataRelay(in long pid,
00380 in TToiDataRelayData data,
00381 in TToiDataRelayData include,
00382 in TToiDataRelayData exclude,
00383 in long length,
00384 in string socketName,
00385 out long dataRelayId)
00386 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException, TToiSessionViolationException);
00387
00417
00418
00419
00420 void AddPacketDataRelay(in long pid,
00421 in string socketName,
00422 out long dataRelayId)
00423 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException, TToiSessionViolationException);
00424
00441
00442
00443
00444 void RemoveDataRelay(in long dataRelayId)
00445 raises (TToiInvalidArgumentException, TToiSessionViolationException);
00446
00463 void GetParameter(in string name,
00464 out string value)
00465 raises (TToiInvalidArgumentException, TToiSessionViolationException);
00466
00483 void SetParameter(in string name,
00484 in string value)
00485 raises (TToiInvalidArgumentException, TToiSessionViolationException);
00486
00510
00511
00512
00513
00514 void SubscribeParameter(in string address,
00515 in string name)
00516 raises (TToiInvalidArgumentException, TToiSessionViolationException);
00517
00538
00539
00540
00541
00542 void UnsubscribeParameter(in string address,
00543 in string name)
00544 raises (TToiInvalidArgumentException, TToiSessionViolationException);
00545
00574
00575
00576
00577 void SetDecryptionCipher(in TToiStreamIdSequence streamIds,
00578 in TToiCipher cipher,
00579 in TToiCipherBlockMode blockMode,
00580 in TToiCipherResidueMode residueMode)
00581 raises (TToiOperationNotSupportedException, TToiSessionViolationException);
00582
00621
00622
00623
00624
00625 void SetDecryptionKeys(in TToiStreamIdSequence streamIds,
00626 in boolean isEncrypted,
00627 in TToiCipherData evenKey,
00628 in TToiCipherData evenIv,
00629 in TToiCipherData oddKey,
00630 in TToiCipherData oddIv,
00631 in long length)
00632 raises (TToiOperationNotSupportedException, TToiSessionViolationException);
00633
00643
00644
00645
00646 void ReleaseInstance();
00647
00648
00649
00662 void RegisterObserver(in IToiApplicationService::TToiApplicationId applicationId,
00663 in string address)
00664 raises (TToiInvalidArgumentException);
00665
00674 void ReleaseObserver(in string address)
00675 raises (TToiInvalidArgumentException);
00676
00677 };
00678
00679 #endif