IStreamer.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
00002  *-----------------------------------------------------------------------------
00003  *
00004  * interface/internal/IStreamer.idl
00005  *
00006  * Copyright (c) 2010 Motorola Inc. All Rights Reserved.
00007  * Copyright (c) 2011 Motorola Mobility, Inc. All rights reserved.
00008  *
00009  * This program is confidential and proprietary to Motorola Mobility, Inc and
00010  * may not be copied, reproduced, disclosed to others, published or used, in
00011  * whole or in part, without the expressed prior written permission of Motorola
00012  * Mobility, Inc.
00013  *
00014  *-----------------------------------------------------------------------------
00015  */
00016 
00017 #ifndef ISTREAMER_IDL
00018 #define ISTREAMER_IDL
00019 
00020 #include "IToiMediaPlayer.idl"
00021 #include "IToiMediaRecorder.idl"
00022 #include "IToiMediaSession.idl"
00023 #include "TToiInvalidArgumentException.idl"
00024 #include "TToiInvalidPreconditionException.idl"
00025 #include "TToiSessionViolationException.idl"
00026 #include "TToiUnavailableException.idl"
00027 
00028 #include "IMediaSession.idl"
00029 
00034 interface IStreamer
00035 {
00036   typedef sequence<octet> binary;
00037 
00038   enum TFeature
00039   {
00040     FEATURE_AUDIO,
00041     FEATURE_VIDEO,
00042     FEATURE_PIPVIDEO,
00043     FEATURE_SOCKET,
00044     FEATURE_RECORD,
00045     FEATURE_TELETEXT,
00046     FEATURE_OTHER
00047   };
00048 
00054   void RegisterObserver(in string address);
00055 
00060   void ReleaseObserver();
00061 
00066   void GetState(out IToiMediaPlayer::TToiState state);
00067 
00072   void GetError(out IToiMediaPlayer::TToiError error);
00073 
00086   void GetCapabilities(out long capabilityMask)
00087     raises (TToiSessionViolationException);
00088 
00103   void GetPosition(out long position, out long pace)
00104     raises (TToiOperationNotSupportedException,
00105             TToiSessionViolationException);
00106 
00115   void GetUrl(out string url)
00116     raises (TToiSessionViolationException);
00117 
00133   void GetStreamInfo(out IToiMediaPlayer::TToiStreamInfo streamInfo)
00134     raises (TToiNoDataException,
00135             TToiSessionViolationException);
00136 
00150   void ActivateComponent(in IToiMediaPlayer::TToiComponentEntry mediaComponent)
00151     raises (TToiInvalidArgumentException,
00152             TToiSessionViolationException);
00153 
00168   void DeactivateComponent(in IToiMediaPlayer::TToiComponentType
00169                            mediaComponent)
00170     raises (TToiInvalidArgumentException,
00171             TToiSessionViolationException);
00172 
00192   void GetVideoStreamInfo(in IToiMediaPlayer::TToiComponentEntry
00193                           mediaComponent,
00194                           out IToiMediaPlayer::TToiVideoStreamInfo info)
00195     raises (TToiNoDataException,
00196             TToiInvalidArgumentException,
00197             TToiSessionViolationException);
00198 
00218   void GetAudioStreamInfo(in IToiMediaPlayer::TToiComponentEntry
00219                           mediaComponent,
00220                           out IToiMediaPlayer::TToiAudioStreamInfo info)
00221     raises (TToiNoDataException,
00222             TToiInvalidArgumentException,
00223             TToiSessionViolationException);
00224 
00245   void GetSubtitleStreamInfo(in IToiMediaPlayer::TToiComponentEntry
00246                              mediaComponent,
00247                              out IToiMediaPlayer::TToiSubtitleStreamInfo info)
00248     raises (TToiNoDataException,
00249             TToiInvalidArgumentException,
00250             TToiSessionViolationException);
00251 
00272   void GetTeletextStreamInfo(in IToiMediaPlayer::TToiComponentEntry
00273                              mediaComponent,
00274                              out IToiMediaPlayer::TToiTeletextStreamInfo info)
00275     raises (TToiNoDataException,
00276             TToiInvalidArgumentException,
00277             TToiSessionViolationException);
00278 
00294   void SetAudioChannelMode(in long streamId,
00295                            in IToiMediaPlayer::TToiAudioChannelMode
00296                            channelMode)
00297     raises (TToiInvalidArgumentException,
00298             TToiSessionViolationException);
00299 
00314   void GetParameter(in string name, out string value)
00315     raises (TToiInvalidArgumentException,
00316             TToiSessionViolationException);
00317 
00337   void SetParameter(in string name, in string value)
00338     raises (TToiInvalidArgumentException,
00339             TToiPermissionDeniedException,
00340             TToiSessionViolationException);
00341 
00359   void UnsetParameter(in string name)
00360     raises (TToiInvalidArgumentException,
00361             TToiPermissionDeniedException,
00362             TToiSessionViolationException);
00363 
00381   void SubscribeParameter(in string name,
00382                           in string address)
00383     raises (TToiInvalidArgumentException,
00384             TToiSessionViolationException);
00385 
00404   void UnsubscribeParameter(in string name,
00405                             in string address)
00406     raises (TToiInvalidArgumentException,
00407             TToiSessionViolationException);
00408 
00442   //@ [CommonLengthParameter=5]
00443   void AddSectionDataRelay(in long pid,
00444                            in IToiMediaSession::TToiDataRelayData data,
00445                            in IToiMediaSession::TToiDataRelayData include,
00446                            in IToiMediaSession::TToiDataRelayData exclude,
00447                            in long length,
00448                            in string socketName,
00449                            in long dataRelayId)
00450     raises (TToiInvalidArgumentException,
00451             TToiNotEnoughResourcesException,
00452             TToiSessionViolationException);
00453 
00478   void AddPacketDataRelay(in long pid,
00479                           in string socketName,
00480                           in long dataRelayId)
00481     raises (TToiInvalidArgumentException,
00482             TToiNotEnoughResourcesException,
00483             TToiSessionViolationException);
00484 
00498   void RemoveDataRelay(in long dataRelayId)
00499     raises (TToiInvalidArgumentException,
00500             TToiSessionViolationException);
00501 
00525   void SetDecryptionCipher(in IToiMediaSession::TToiStreamIdSequence streamIds,
00526                          in IToiMediaSession::TToiCipher cipher,
00527                          in IToiMediaSession::TToiCipherBlockMode blockMode,
00528                          in IToiMediaSession::TToiCipherResidueMode residueMode)
00529     raises (TToiInvalidArgumentException,
00530             TToiOperationNotSupportedException,
00531             TToiSessionViolationException);
00532 
00563   //@ [CommonLengthParameter=7]
00564   void SetDecryptionKeys(in IToiMediaSession::TToiStreamIdSequence streamIds,
00565                         in boolean isEncrypted,
00566                         in IToiMediaSession::TToiCipherData evenKey,
00567                         in IToiMediaSession::TToiCipherData evenIv,
00568                         in IToiMediaSession::TToiCipherData oddKey,
00569                         in IToiMediaSession::TToiCipherData oddIv,
00570                         in long length)
00571     raises (TToiInvalidArgumentException,
00572             TToiOperationNotSupportedException,
00573             TToiSessionViolationException);
00574 
00599   void SetEncryptionData(in binary keyMaterial,
00600                          in long keyMaterialLength,
00601                          in binary markerToken,
00602                          in long markerTokenLength,
00603                          in IMediaSession::TCipherKeyParity keyParity)
00604     raises (TToiInvalidArgumentException,
00605             TToiSessionViolationException);
00606 
00623   void GetFrontendInfo(out IMediaSession::TFrontendInfo info)
00624     raises (TToiNoDataException,
00625             TToiOperationNotSupportedException,
00626             TToiSessionViolationException);
00627 
00644   void Open(in string sourceUrl)
00645     raises (TToiInvalidArgumentException,
00646             TToiOperationNotSupportedException,
00647             TToiSessionViolationException);
00648 
00655   void Close()
00656     raises (TToiSessionViolationException);
00657 
00666   void Play(in long pace)
00667     raises (TToiOperationNotSupportedException,
00668             TToiSessionViolationException);
00669 
00680   void PlayFromPosition(in long position,in long pace)
00681     raises (TToiOperationNotSupportedException,
00682             TToiInvalidArgumentException,
00683             TToiSessionViolationException);
00684 
00696   void ActivateDecoders()
00697     raises (TToiOperationNotSupportedException,
00698             TToiSessionViolationException);
00699 
00713   void DeactivateDecoders(in boolean blanking)
00714     raises (TToiOperationNotSupportedException,
00715             TToiSessionViolationException);
00716 
00741   void StartRecording(in string assetUri,
00742                       in unsigned long offset)
00743     raises (TToiInvalidArgumentException,
00744             TToiOperationNotSupportedException,
00745             TToiSessionViolationException);
00746 
00761   void StopRecording(in string assetUri)
00762     raises (TToiOperationNotSupportedException,
00763             TToiSessionViolationException);
00764 
00782   void ActivateDistributor(in string destinationUrl)
00783     raises (TToiInvalidArgumentException,
00784             TToiOperationNotSupportedException,
00785             TToiSessionViolationException);
00786 
00797   void DeactivateDistributor()
00798     raises (TToiOperationNotSupportedException,
00799             TToiSessionViolationException);
00800 
00814   void SetPipMode(in boolean mode)
00815     raises (TToiOperationNotSupportedException,
00816             TToiSessionViolationException);
00817 
00826   void GetPipMode(out boolean active)
00827     raises (TToiSessionViolationException);
00828 
00842   void SuspendRecordings(in string reason)
00843     raises (TToiOperationNotSupportedException,
00844             TToiSessionViolationException);
00845 
00859   void ResumeRecordings(in string reason)
00860     raises (TToiOperationNotSupportedException,
00861             TToiSessionViolationException);
00862 };
00863 
00864 #endif