mmhais/dvbhreceiverhai/inc/mobiletv/hai/dvbh/dvbhreceiverinfo.h
changeset 0 40261b775718
equal deleted inserted replaced
-1:000000000000 0:40261b775718
       
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Declares the DVB-H tuner hardware adaptation information classes.
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file
       
    20  @publishedPartner
       
    21  @prototype
       
    22 */
       
    23 
       
    24 #ifndef DVBHRECEIVERINFO_H
       
    25 #define DVBHRECEIVERINFO_H
       
    26 
       
    27 #include <e32base.h>
       
    28 #include <mobiletv/hai/dvbh/dvbhtypes.h>
       
    29 
       
    30 class TIp6Addr;
       
    31 
       
    32 /**
       
    33 * @publishedPartner
       
    34 * @prototype
       
    35 * @see CDvbhReceiverInfo::SetStateObserver()
       
    36 *
       
    37 * Defines an interface for receiving notifications of RDvbhReceiver state changes.
       
    38 * Clients wishing to monitor state changes should provide a CDvbhReceiverInfo
       
    39 * instance with an implementation of this interface via CDvbhReceiverInfo::SetStateObserver().
       
    40 */
       
    41 class MDvbhStateObserver
       
    42     {
       
    43 public:
       
    44     /**
       
    45     * @param aNewState Identifies the state to which the RDvbhReceiver has just transitioned. 
       
    46     *
       
    47     * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
    48     * this method will be called whenever RDvbhReceiver changes state, in order to 
       
    49     * inform the client of the new state.
       
    50     */
       
    51     virtual void DvbhStateChange( TDvbhState aNewState ) = 0;
       
    52     };
       
    53 
       
    54 /**
       
    55 * @publishedPartner
       
    56 * @prototype
       
    57 * @see CDvbhReceiverInfo::SetSignalQualityObserver()
       
    58 *
       
    59 * Defines an interface for receiving notifications of changes to signal quality.
       
    60 * Clients wishing to monitor signal quality should provide a CDvbhReceiverInfo
       
    61 * instance with an implementation of this interface via CDvbhReceiverInfo::SetSignalQualityObserver().
       
    62 */
       
    63 class MDvbhSignalQualityObserver
       
    64     {
       
    65 public:
       
    66     /**
       
    67     * @param aNewSignalQuality Identifies the new signal quality value. 
       
    68     *
       
    69     * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
    70     * this method will be called whenever the signal quality changes, in order to 
       
    71     * inform the client of the new signal quality.
       
    72     */    
       
    73     virtual void DvbhSignalQualityChange( const TDvbhSignalQuality& aNewSignalQuality ) = 0;    
       
    74     };
       
    75 
       
    76 /**
       
    77 * @publishedPartner
       
    78 * @prototype
       
    79 * @see CDvbhReceiverInfo::SetPlatformObserver()
       
    80 *
       
    81 * Defines an interface for receiving notifications of changes of the current IP platform.
       
    82 * Clients wishing to monitor IP platform changes should provide a CDvbhReceiverInfo
       
    83 * instance with an implementation of this interface via CDvbhReceiverInfo::SetPlatformObserver().
       
    84 */
       
    85 class MDvbhPlatformObserver
       
    86     {
       
    87 public:
       
    88     /**
       
    89     * @param aNewPlatform Identifies the IP platform to which the receiver has just switched. 
       
    90 	* @param aESGRoot The IP address of the bootstrap ESG sevice on the new platform.
       
    91     *
       
    92     * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
    93     * this method will be called whenever the current IP platform changes, in order to 
       
    94     * inform the client of the new IP platform and bootstrap ESG IP address.
       
    95     */    
       
    96     virtual void DvbhPlatformChange( const TDvbhPlatform& aNewPlatform, const TIp6Addr& aESGRoot ) = 0;
       
    97     };
       
    98 
       
    99 /**
       
   100 * @publishedPartner
       
   101 * @prototype
       
   102 * @see CDvbhReceiverInfo::SetNetworkTimeObserver()
       
   103 *
       
   104 * Defines an interface for notifying of updates to the network time.
       
   105 * Clients wishing to monitor network time changes should provide a CDvbhReceiverInfo
       
   106 * instance with an implementation of this interface via CDvbhReceiverInfo::SetNetworkTimeObserver().
       
   107 * Network time update is triggered via call to RDvbhReceiver::UpdateNetworkTime()
       
   108 */
       
   109 class MDvbhNetworkTimeObserver
       
   110     {
       
   111 public:
       
   112     /**
       
   113     * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
   114     * this method will be called whenever the current network time has been updated.
       
   115     */  
       
   116     virtual void DvbhNetworkTimeUpdate() = 0;
       
   117     };
       
   118 
       
   119 /**
       
   120 * @publishedPartner
       
   121 * @prototype
       
   122 * @see CDvbhReceiverInfo::SetFrequencyObserver()
       
   123 *
       
   124 * Defines an interface for receiving notifications of changes to the frequency to which the receiver is tuned.
       
   125 * Clients wishing to monitor frequency changes should provide a CDvbhReceiverInfo
       
   126 * instance with an implementation of this interface via CDvbhReceiverInfo::SetFrequencyObserver().
       
   127 */
       
   128 class MDvbhFrequencyObserver
       
   129     {
       
   130 public:
       
   131     /**
       
   132     * @param aNewFrequency Identifies the frequency to which the tuner has just tuned.
       
   133     *
       
   134     * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
   135     * this method will be called whenever the tuned frequency changes, in order to 
       
   136     * inform the client of the new frequency.
       
   137     */ 
       
   138     virtual void DvbhFrequencyChange( const TDvbhFrequency& aNewFrequency ) = 0;    
       
   139     };
       
   140 
       
   141 /**
       
   142 * @publishedPartner
       
   143 * @prototype
       
   144 * @see CDvbhReceiverInfo::SetCellIdObserver()
       
   145 *
       
   146 * Defines an interface for receiving notifications of changes to current cellId.
       
   147 * Clients wishing to monitor cellId changes should provide a CDvbhReceiverInfo
       
   148 * instance with an implementation of this interface via CDvbhReceiverInfo::SetCellIdObserver().
       
   149 */
       
   150 class MDvbhCellIdObserver
       
   151     {
       
   152 public:
       
   153     /**
       
   154     * @param aNewCellId The new cellId.
       
   155     *
       
   156     * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
   157     * this method will be called whenever the current cellId changes, in order to 
       
   158     * inform the client of the new cellId.
       
   159     */   
       
   160     virtual void DvbhCellIdChange( const TDvbhCellId& aNewCellId ) = 0;    
       
   161     };
       
   162 
       
   163 /**
       
   164 * @publishedPartner
       
   165 * @prototype
       
   166 * @see CDvbhReceiverInfo::SetNetworkIdObserver()
       
   167 *
       
   168 * Defines an interface for receiving notifications of changes to current networkId.
       
   169 * Clients wishing to monitor networkId changes should provide a CDvbhReceiverInfo
       
   170 * instance with an implementation of this interface via CDvbhReceiverInfo::SetNetworkIdObserver().
       
   171 */
       
   172 class MDvbhNetworkIdObserver
       
   173     {
       
   174 public:
       
   175     /**
       
   176     * @param aNewNetworkId The ID of the network to which the receiver is now tuned.
       
   177     *
       
   178     * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
   179     * this method will be called whenever the ID of the network to which it is tuned changes,
       
   180     * in order to inform the client of the new networkId.
       
   181     */   
       
   182     virtual void DvbhNetworkIdChange( const TDvbhNetworkId& aNewNetworkId ) = 0;    
       
   183     };
       
   184 
       
   185 
       
   186 /**
       
   187 * @publishedPartner
       
   188 * @prototype
       
   189 * @see CDvbhReceiverInfo::SetBatteryStateObserver()
       
   190 *
       
   191 * Defines an interface for receiving notifications of changes in external DVB-H receiver battery state.
       
   192 * Clients wishing to monitor battery changes should provide a CDvbhReceiverInfo
       
   193 * instance with an implementation of this interface via CDvbhReceiverInfo::SetBatteryStateObserver().
       
   194 */
       
   195 class MDvbhExtBatteryStateObserver
       
   196     {
       
   197     public:
       
   198         /**
       
   199         * @param aNewState The new battery state of external receiver.
       
   200         *
       
   201         * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
   202         * this method will be called whenever the battery state of external receiver is changed,
       
   203         * in order to inform the client of the new aNewState.
       
   204         */   
       
   205         virtual void DvbhExtBatteryStateChange( TDvbhExtBatteryState aNewState ) = 0;
       
   206     };
       
   207 
       
   208 /**
       
   209 * @publishedPartner
       
   210 * @prototype
       
   211 * @see CDvbhReceiverInfo::SetExtConnectionStateObserver()
       
   212 *
       
   213 * Defines an interface for receiving notifications of changes in external DVB-H receiver connection
       
   214 * Clients wishing to monitor connection changes should provide a CDvbhReceiverInfo
       
   215 * instance with an implementation of this interface via CDvbhReceiverInfo::SetExtConnectionStateObserver().
       
   216 */
       
   217 class MDvbhExtConnectionObserver
       
   218     {
       
   219     public:
       
   220 
       
   221         /**
       
   222         * @param aNewState The new external receiver connection state.
       
   223         * @param aReceiverType Type of the receiver
       
   224         *
       
   225         * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
   226         * this method will be called whenever the connection state of external receiver is changed,
       
   227         * in order to inform the client of the new aNewState.
       
   228         */   
       
   229         virtual void DvbhExtConnectionStateChange( 
       
   230             const TDvbhExtConnectionState& aNewState, const TDvbhReceiverType& aReceiverType ) = 0;
       
   231     };
       
   232 
       
   233     
       
   234 /**
       
   235 * @publishedPartner
       
   236 * @prototype
       
   237 * @see CDvbhReceiverInfo::SetExtAntennaConnectionStateObserver()
       
   238 *
       
   239 * Defines an interface for receiving notifications of changes in external DVB-H receiver antenna connection.
       
   240 * Clients wishing to monitor connection changes should provide a CDvbhReceiverInfo
       
   241 * instance with an implementation of this interface via CDvbhReceiverInfo::SetExtAntennaConnectionStateObserver().
       
   242 */
       
   243 class MDvbhExtAntennaConnectionObserver
       
   244     {
       
   245     public:
       
   246 
       
   247         /**
       
   248         * @param aNewState The new external antenna connection state.
       
   249         * @param aReceiverType Type of the receiver
       
   250         *
       
   251         * When a client has registered an implementation with a CDvbhReceiverInfo instance, 
       
   252         * this method will be called whenever the connection state of external receiver antenna is changed,
       
   253         * in order to inform the client of the new aNewState.
       
   254         */   
       
   255         virtual void DvbhExtAntennaConnectionStateChange( 
       
   256             const TDvbhExtAntennaConnectionState& aNewState, const TDvbhReceiverType& aReceiverType ) = 0;
       
   257     };
       
   258 
       
   259 
       
   260 /**
       
   261 * @publishedPartner
       
   262 * @prototype
       
   263 *
       
   264 * Provides operations for reading and tracking information about the receiver, such
       
   265 * as state, signal quality, frequency, etc.  Refer to the individual class methods
       
   266 * for the full list.
       
   267 * 
       
   268 * Use of this class is safe in the sense that it will not interfere with the
       
   269 * receiver operation in any way. There can be multiple simultaneous instances
       
   270 * of CDvbhReceiverInfo at one time.
       
   271 */
       
   272 class CDvbhReceiverInfo : public CBase
       
   273     {
       
   274 public:
       
   275     /**
       
   276 	* @return A new instance of CDvbhReceiverInfo.
       
   277 	*
       
   278     * Factory function for creating a CDvbhReceiverInfo object. 
       
   279     */        
       
   280     IMPORT_C static CDvbhReceiverInfo* NewL();
       
   281     
       
   282     /**
       
   283 	* @return A new instance of CDvbhReceiverInfo.
       
   284 	*
       
   285     * Factory function for creating a CDvbhReceiverInfo object, with
       
   286     * the new object left on the CleanupStack. 
       
   287     */   
       
   288     IMPORT_C static CDvbhReceiverInfo* NewLC();
       
   289     
       
   290     /**
       
   291     * C++ destructor.
       
   292     */        
       
   293     IMPORT_C ~CDvbhReceiverInfo();
       
   294 
       
   295     /**
       
   296 	* @param aState Updated with the current state of the receiver.
       
   297 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   298 	*
       
   299     * Retrieves the current state of the receiver.  
       
   300     */        
       
   301     IMPORT_C static TInt GetState( TDvbhState& aState );
       
   302     
       
   303     /**
       
   304 	* @param aObserver An instance of an MDvbhStateObserver implementation.
       
   305 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   306 	* @see MDvbhStateObserver
       
   307 	*
       
   308     * Used to register an MDvbhStateObserver implementation with the object.  Once a client
       
   309     * has registered such an observer, it will be notified of any changes in receiver
       
   310     * state via that observer until either a new observer is registered or this object is
       
   311     * destroyed.
       
   312     *
       
   313     * If called more than once on an instance, the most recent observer registered 
       
   314     * overrides any previously registered observers.
       
   315     */          
       
   316     IMPORT_C TInt SetStateObserver( MDvbhStateObserver& aObserver );
       
   317             
       
   318     /**
       
   319 	* @param aSignalQuality Updated with the current signal quality value.
       
   320 	* @return KErrNone on success, KErrNotReady if receiver is not in the Receiving state, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   321 	*
       
   322     * Retrieves the current signal quality value.  
       
   323     */  
       
   324     IMPORT_C static TInt GetSignalQuality( TDvbhSignalQuality& aSignalQuality );
       
   325     
       
   326     /**
       
   327 	* @param aObserver An instance of an MDvbhSignalQualityObserver implementation.
       
   328 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   329 	* @see MDvbhSignalQualityObserver
       
   330 	*
       
   331     * Used to register an MDvbhSignalQualityObserver implementation with the object.  Once a client
       
   332     * has registered such an observer, it will be notified of any changes to signal
       
   333     * quality via that observer until either a new observer is registered or this object is
       
   334     * destroyed.
       
   335     *
       
   336     * If called more than once on an instance, the most recent observer registered 
       
   337     * overrides any previously registered observers.
       
   338     */           
       
   339     IMPORT_C TInt SetSignalQualityObserver( MDvbhSignalQualityObserver& aObserver );
       
   340     
       
   341     /**
       
   342 	* @param aPlatform Updated with the currently active IP platform.
       
   343 	* @param aESGRoot Updated with the IP address of the bootstrap ESG service on the platform.
       
   344 	* @return KErrNone on success, KErrNotReady if platform has not been set on the receiver, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   345 	*
       
   346     * Retrieves the currently active IP platform and IP address of its bootstrap ESG service.  
       
   347     */          
       
   348     IMPORT_C static TInt GetPlatform( TDvbhPlatform& aPlatform, TIp6Addr& aESGRoot );
       
   349   
       
   350     /**
       
   351 	* @param aObserver An instance of an MDvbhPlatformObserver implementation.
       
   352 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   353 	* @see MDvbhPlatformObserver
       
   354 	*
       
   355     * Used to register an MDvbhPlatformObserver implementation with the object.  Once a client
       
   356     * has registered such an observer, it will be notified of any changes to IP platform
       
   357     * via that observer until either a new observer is registered or this object is
       
   358     * destroyed.
       
   359     *
       
   360     * If called more than once on an instance, the most recent observer registered 
       
   361     * overrides any previously registered observers.
       
   362     */                                    
       
   363     IMPORT_C TInt SetPlatformObserver( MDvbhPlatformObserver& aObserver );
       
   364 
       
   365     /**
       
   366 	* @param aNetworkTime Upated with the current network time.
       
   367 	* @param aValid Updated with ETrue if the receiver is in Ready or Receiving state; or EFalse if the time offset of a previous platform is available and has been used as a fallback to calculate the given time.
       
   368 	* @return KErrNone on success, KErrNotReady if no platform has ever been set on the receiver, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   369 	* @see RDvbhReceiver::UpdateNetworkTime()
       
   370 	*
       
   371     * Retrieves the current network time by calculating it from the offset obtained 
       
   372     * after the last call to RDvbhReceiver::UpdateNetworkTime().
       
   373     */         
       
   374     IMPORT_C static TInt GetNetworkTime( TTime& aNetworkTime, TBool& aValid );
       
   375     
       
   376     /**
       
   377 	* @param aObserver An instance of an MDvbhNetworkTimeObserver implementation.
       
   378 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   379 	* @see MDvbhNetworkTimeObserver
       
   380 	*
       
   381     * Used to register an MDvbhNetworkTimeObserver implementation with the object.  Once a client
       
   382     * has registered such an observer, it will be notified whenever the network time has been
       
   383     * updated via that observer until either a new observer is registered or this object is
       
   384     * destroyed.
       
   385     *
       
   386     * If called more than once on an instance, the most recent observer registered 
       
   387     * overrides any previously registered observers.
       
   388     */    
       
   389     IMPORT_C TInt SetNetworkTimeObserver( MDvbhNetworkTimeObserver& aObserver );
       
   390             
       
   391     /**
       
   392 	* @param aPerformanceData Updated with the current usage and performance data of the receiver.
       
   393 	* @return KErrNone on success, KErrNotReady if the receiver is not in Receiving state, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   394 	*
       
   395     * Retrieves the current performance and usage data from the receiver. 
       
   396     */ 
       
   397     IMPORT_C static TInt GetPerformanceData( TDvbhPerformanceData& aPerformanceData );
       
   398             
       
   399     /**
       
   400 	* @param aFrequency Updated with the frequency to which the receiver is currently tuned.
       
   401 	* @return KErrNone on success, KErrNotReady if platform has not been set on the receiver, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   402 	*
       
   403     * Retrieves the frequency to which the receiver is currently tuned. 
       
   404     */
       
   405     IMPORT_C static TInt GetFrequency( TDvbhFrequency& aFrequency );
       
   406 
       
   407     /**
       
   408 	* @param aObserver An instance of an MDvbhFrequencyObserver implementation.
       
   409 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   410 	* @see MDvbhFrequencyObserver
       
   411 	*
       
   412     * Used to register an MDvbhFrequencyObserver implementation with the object.  Once a client
       
   413     * has registered such an observer, it will be notified whenever the frequency to which
       
   414     * the receiver is tuned changes via that observer until either a new observer is 
       
   415     * registered or this object is destroyed.
       
   416     *
       
   417     * If called more than once on an instance, the most recent observer registered 
       
   418     * overrides any previously registered observers.
       
   419     */         
       
   420     IMPORT_C TInt SetFrequencyObserver( MDvbhFrequencyObserver& aObserver );
       
   421 
       
   422     /**
       
   423 	* @param aCellId Updated with the current cellId.
       
   424 	* @return KErrNone on success, KErrNotReady if platform has not been set on the receiver, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   425 	*
       
   426     * Retrieves the current cellId. 
       
   427     */
       
   428     IMPORT_C static TInt GetCellId( TDvbhCellId& aCellId );
       
   429 
       
   430     /**
       
   431 	* @param aObserver An instance of an MDvbhCellIdObserver implementation.
       
   432 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   433 	* @see MDvbhCellIdObserver
       
   434 	*
       
   435     * Used to register an MDvbhCellIdObserver implementation with the object.  Once a client
       
   436     * has registered such an observer, it will be notified whenever the current cellId changes 
       
   437     * via that observer until either a new observer is registered or the object is destroyed.
       
   438     *
       
   439     * If called more than once on an instance, the most recent observer registered 
       
   440     * overrides any previously registered observers.
       
   441     */           
       
   442     IMPORT_C TInt SetCellIdObserver( MDvbhCellIdObserver& aObserver );
       
   443 
       
   444     /**
       
   445 	* @param aNetworkId Updated with the ID of the network to which the receiver is currently tuned.
       
   446 	* @return KErrNone on success, KErrNotReady if platform has not been set on the receiver, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   447 	*
       
   448     * Retrieves the networkId of the network to which the receiver is currently tuned. 
       
   449     */
       
   450     IMPORT_C static TInt GetNetworkId( TDvbhNetworkId& aNetworkId );
       
   451     
       
   452     /**
       
   453 	* @param aObserver An instance of an MDvbhNetworkIdObserver implementation.
       
   454 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   455 	* @see MDvbhNetworkIdObserver
       
   456 	*
       
   457     * Used to register an MDvbhNetworkIdObserver implementation with the object.  Once a client
       
   458     * has registered such an observer, it will be notified whenever the ID of the network to which
       
   459     * the receiver is tuned changes via that observer until either a new observer is 
       
   460     * registered or this object is destroyed.
       
   461     *
       
   462     * If called more than once on an instance, the most recent observer registered 
       
   463     * overrides any previously registered observers.
       
   464     */        
       
   465     IMPORT_C TInt SetNetworkIdObserver( MDvbhNetworkIdObserver& aObserver );
       
   466 
       
   467     /**
       
   468 	* @param aState Updated with the battery state of external receiver
       
   469 	* @return KErrNone on success, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   470 	*
       
   471     * Retrieves the battery state of external receiver
       
   472     */
       
   473     IMPORT_C static TInt GetBatteryState( TDvbhExtBatteryState& aState );
       
   474         
       
   475     /**
       
   476 	* @param aObserver An instance of an MDvbhExtBatteryStateObserver implementation.
       
   477 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   478 	* @see MDvbhExtBatteryStateObserver
       
   479 	*
       
   480     * Used to register an MDvbhExtBatteryStateObserver implementation with the object.  Once a client
       
   481     * has registered such an observer, it will be notified whenever the battery state of external receiver
       
   482     * has changed via that observer until either a new observer is 
       
   483     * registered or this object is destroyed.
       
   484     *
       
   485     * If called more than once on an instance, the most recent observer registered 
       
   486     * overrides any previously registered observers.
       
   487     */        
       
   488     IMPORT_C TInt SetBatteryStateObserver( MDvbhExtBatteryStateObserver& aObserver );
       
   489                 
       
   490     /**
       
   491 	* @param aConnectionState Updated with the connection state of external receiver
       
   492 	* @param aReceiver Input for which receiver type the connection state is queried
       
   493 	* @return KErrNone on success, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   494 	*
       
   495     * Retrieves the connection state of external receiver
       
   496     */
       
   497     IMPORT_C static TInt GetExtConnectionState( TDvbhExtConnectionState& aConnectionState, const TDvbhReceiverType& aReceiver );
       
   498         
       
   499     /**
       
   500 	* @param aObserver An instance of an MDvbhExtConnectionObserver implementation.
       
   501 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   502 	* @see MDvbhExtConnectionObserver
       
   503 	*
       
   504     * Used to register an MDvbhExtConnectionObserver implementation with the object.  Once a client
       
   505     * has registered such an observer, it will be notified whenever the connection state of external
       
   506     * receiver has changed via that observer until either a new observer is 
       
   507     * registered or this object is destroyed.
       
   508     *
       
   509     * If called more than once on an instance, the most recent observer registered 
       
   510     * overrides any previously registered observers.
       
   511     */        
       
   512     IMPORT_C TInt SetExtConnectionStateObserver( MDvbhExtConnectionObserver& aObserver );
       
   513 
       
   514     /**
       
   515 	* @param aConnectionState Updated with the antenna connection state of external receiver
       
   516 	* @param aReceiver Input for which receiver type the connection state is queried
       
   517 	* @return KErrNone on success, or another system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   518 	*
       
   519     * Retrieves the antenna connection state of external receiver.
       
   520     */
       
   521     IMPORT_C static TInt GetExtAntennaConnectionState( TDvbhExtAntennaConnectionState& aConnectionState, const TDvbhReceiverType& aReceiver );
       
   522         
       
   523     /**
       
   524 	* @param aObserver An instance of an MDvbhExtAntennaConnectionObserver implementation.
       
   525 	* @return KErrNone on success, otherwise a system-wide error code.  Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   526 	* @see MDvbhExtAntennaConnectionObserver
       
   527 	*
       
   528     * Used to register an MDvbhExtAntennaConnectionObserver implementation with the object.  Once a client
       
   529     * has registered such an observer, it will be notified whenever the antenna connection state of external
       
   530     * receiver has changed via that observer until either a new observer is 
       
   531     * registered or this object is destroyed.
       
   532     *
       
   533     * If called more than once on an instance, the most recent observer registered 
       
   534     * overrides any previously registered observers.
       
   535     */        
       
   536     IMPORT_C TInt SetExtAntennaConnectionStateObserver( MDvbhExtAntennaConnectionObserver& aObserver );
       
   537 
       
   538     /**
       
   539 	* @param aDeviceInfo Updated with the device information of external receiver
       
   540 	* @param aReceiver Input for which receiver type the device information is queried
       
   541 	* @return KErrNone on success, KErrNotSupported if receiver type is not supported, or another system-wide error code.  
       
   542 	* Clients should accept unknown error codes gracefully since new error codes may be returned in the future.
       
   543 	*
       
   544     * Retrieves the device information of external receiver. Please note that the external receiver must be connected to get valid 
       
   545     * device information. 
       
   546     */
       
   547     IMPORT_C static TInt GetExtDeviceInfo( TDvbhAccessoryInfo& aDeviceInfo, const TDvbhReceiverType& aReceiver );
       
   548 
       
   549 private:
       
   550     /**
       
   551     * C++ constructor.
       
   552     */
       
   553     CDvbhReceiverInfo();
       
   554     
       
   555     /**
       
   556     * Symbian 2nd phase constructor.
       
   557     */
       
   558     void ConstructL();
       
   559 
       
   560 private:    
       
   561     /*
       
   562     * Implementers of this interface should declare their own CPrivateData
       
   563     * class containing whatever private data is needed for their implementation.
       
   564     */
       
   565 	class CPrivateData;
       
   566 	CPrivateData* iData;
       
   567     };
       
   568 
       
   569 #endif // DVBHRECEIVERINFO_H