epoc32/include/remconcoreapicontroller.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     1 // Copyright (c) 2004-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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 
    17 
    18 /**
    19  @file
    20  @publishedAll
    21  @released
    22 */
    23 
    24 #ifndef REMCONCOREAPICONTROLLER_H
    25 #define REMCONCOREAPICONTROLLER_H
    26 
    27 #include <e32base.h>
    28 #include <remcon/remconinterfacebase.h>
    29 #include <remconcoreapi.h>
    30 #include <remcon/remconinterfaceif.h>
    31 
    32 class MRemConCoreApiControllerObserver;
    33 class CRemConInterfaceSelector;
    34 
    35 /**
    36 Client-instantiable type supporting sending Core API commands.
    37 */
    38 NONSHARABLE_CLASS(CRemConCoreApiController) : public CRemConInterfaceBase, 
    39 									          public MRemConInterfaceIf
    40 	{
    41 public:
    42 	/**
    43 	Factory function.
    44 	@param aInterfaceSelector The interface selector. The client must have 
    45 	created one of these first.
    46 	@param aObserver The observer of this interface.
    47 	@return A new CRemConCoreApiController, owned by the interface selector.
    48 	*/
    49 	IMPORT_C static CRemConCoreApiController* NewL(CRemConInterfaceSelector& aInterfaceSelector, 
    50 		MRemConCoreApiControllerObserver& aObserver);
    51 	
    52 	/** Destructor */
    53 	IMPORT_C ~CRemConCoreApiController();
    54 
    55 public:
    56 	/** Send a 'select' command.
    57 	Only one command per controller session can be outstanding at any one time.
    58 	@param aStatus Used by RemCon to indicate completion of the send request.
    59 	@param aNumRemotes On success, will contain the number of remotes the 
    60 	command was sent to.
    61 	@param aButtonAct The button action to send.
    62 	*/
    63 	IMPORT_C void Select(TRequestStatus& aStatus, 
    64 		TUint& aNumRemotes, 
    65 		TRemConCoreApiButtonAction aButtonAct);
    66 
    67 	/** Send an 'up' command.
    68 	Only one command per controller session can be outstanding at any one time.
    69 	@param aStatus Used by RemCon to indicate completion of the send request.
    70 	@param aNumRemotes On success, will contain the number of remotes the 
    71 	command was sent to.
    72 	@param aButtonAct The button action to send.
    73 	*/
    74 	IMPORT_C void Up(TRequestStatus& aStatus, 
    75 		TUint& aNumRemotes, 
    76 		TRemConCoreApiButtonAction aButtonAct);
    77 	
    78 	/** Send a 'down' command.
    79 	Only one command per controller session can be outstanding at any one time.
    80 	@param aStatus Used by RemCon to indicate completion of the send request.
    81 	@param aNumRemotes On success, will contain the number of remotes the 
    82 	command was sent to.
    83 	@param aButtonAct The button action to send.
    84 	*/
    85 	IMPORT_C void Down(TRequestStatus& aStatus, 
    86 		TUint& aNumRemotes, 
    87 		TRemConCoreApiButtonAction aButtonAct);
    88 	
    89 	/** Send a 'left' command.
    90 	Only one command per controller session can be outstanding at any one time.
    91 	@param aStatus Used by RemCon to indicate completion of the send request.
    92 	@param aNumRemotes On success, will contain the number of remotes the 
    93 	command was sent to.
    94 	@param aButtonAct The button action to send.
    95 	*/
    96 	IMPORT_C void Left(TRequestStatus& aStatus, 
    97 		TUint& aNumRemotes, 
    98 		TRemConCoreApiButtonAction aButtonAct);
    99 	
   100 	/** Send a 'right' command.
   101 	Only one command per controller session can be outstanding at any one time.
   102 	@param aStatus Used by RemCon to indicate completion of the send request.
   103 	@param aNumRemotes On success, will contain the number of remotes the 
   104 	command was sent to.
   105 	@param aButtonAct The button action to send.
   106 	*/
   107 	IMPORT_C void Right(TRequestStatus& aStatus, 
   108 		TUint& aNumRemotes, 
   109 		TRemConCoreApiButtonAction aButtonAct);
   110 	
   111 	/** Send a 'right up' command.
   112 	Only one command per controller session can be outstanding at any one time.
   113 	@param aStatus Used by RemCon to indicate completion of the send request.
   114 	@param aNumRemotes On success, will contain the number of remotes the 
   115 	command was sent to.
   116 	@param aButtonAct The button action to send.
   117 	*/
   118 	IMPORT_C void RightUp(TRequestStatus& aStatus, 
   119 		TUint& aNumRemotes, 
   120 		TRemConCoreApiButtonAction aButtonAct);
   121 
   122 	/** Send a 'right down' command.
   123 	Only one command per controller session can be outstanding at any one time.
   124 	@param aStatus Used by RemCon to indicate completion of the send request.
   125 	@param aNumRemotes On success, will contain the number of remotes the 
   126 	command was sent to.
   127 	@param aButtonAct The button action to send.
   128 	*/
   129 	IMPORT_C void RightDown(TRequestStatus& aStatus, 
   130 		TUint& aNumRemotes, 
   131 		TRemConCoreApiButtonAction aButtonAct);
   132 
   133 	/** Send a 'left up' command.
   134 	Only one command per controller session can be outstanding at any one time.
   135 	@param aStatus Used by RemCon to indicate completion of the send request.
   136 	@param aNumRemotes On success, will contain the number of remotes the 
   137 	command was sent to.
   138 	@param aButtonAct The button action to send.
   139 	*/
   140 	IMPORT_C void LeftUp(TRequestStatus& aStatus, 
   141 		TUint& aNumRemotes, 
   142 		TRemConCoreApiButtonAction aButtonAct);
   143 	
   144 	/** Send a 'left down' command.
   145 	Only one command per controller session can be outstanding at any one time.
   146 	@param aStatus Used by RemCon to indicate completion of the send request.
   147 	@param aNumRemotes On success, will contain the number of remotes the 
   148 	command was sent to.
   149 	@param aButtonAct The button action to send.
   150 	*/
   151 	IMPORT_C void LeftDown(TRequestStatus& aStatus, 
   152 		TUint& aNumRemotes, 
   153 		TRemConCoreApiButtonAction aButtonAct);
   154 
   155 	/** Send a 'root menu' command.
   156 	Only one command per controller session can be outstanding at any one time.
   157 	@param aStatus Used by RemCon to indicate completion of the send request.
   158 	@param aNumRemotes On success, will contain the number of remotes the 
   159 	command was sent to.
   160 	@param aButtonAct The button action to send.
   161 	*/
   162 	IMPORT_C void RootMenu(TRequestStatus& aStatus, 
   163 		TUint& aNumRemotes, 
   164 		TRemConCoreApiButtonAction aButtonAct);
   165 	
   166 	/** Send a 'setup menu' command.
   167 	Only one command per controller session can be outstanding at any one time.
   168 	@param aStatus Used by RemCon to indicate completion of the send request.
   169 	@param aNumRemotes On success, will contain the number of remotes the 
   170 	command was sent to.
   171 	@param aButtonAct The button action to send.
   172 	*/
   173 	IMPORT_C void SetupMenu(TRequestStatus& aStatus, 
   174 		TUint& aNumRemotes, 
   175 		TRemConCoreApiButtonAction aButtonAct);
   176 	
   177 	/** Send a 'contents menu' command.
   178 	Only one command per controller session can be outstanding at any one time.
   179 	@param aStatus Used by RemCon to indicate completion of the send request.
   180 	@param aNumRemotes On success, will contain the number of remotes the 
   181 	command was sent to.
   182 	@param aButtonAct The button action to send.
   183 	*/
   184 	IMPORT_C void ContentsMenu(TRequestStatus& aStatus, 
   185 		TUint& aNumRemotes, 
   186 		TRemConCoreApiButtonAction aButtonAct);
   187 	
   188 	/** Send a 'favorite menu' command.
   189 	Only one command per controller session can be outstanding at any one time.
   190 	@param aStatus Used by RemCon to indicate completion of the send request.
   191 	@param aNumRemotes On success, will contain the number of remotes the 
   192 	command was sent to.
   193 	@param aButtonAct The button action to send.
   194 	*/
   195 	IMPORT_C void FavoriteMenu(TRequestStatus& aStatus, 
   196 		TUint& aNumRemotes, 
   197 		TRemConCoreApiButtonAction aButtonAct);
   198 	
   199 	/** Send an 'exit' command.
   200 	Only one command per controller session can be outstanding at any one time.
   201 	@param aStatus Used by RemCon to indicate completion of the send request.
   202 	@param aNumRemotes On success, will contain the number of remotes the 
   203 	command was sent to.
   204 	@param aButtonAct The button action to send.
   205 	*/
   206 	IMPORT_C void Exit(TRequestStatus& aStatus, 
   207 		TUint& aNumRemotes, 
   208 		TRemConCoreApiButtonAction aButtonAct);
   209 	
   210 	/** Send a '0' command.
   211 	Only one command per controller session can be outstanding at any one time.
   212 	@param aStatus Used by RemCon to indicate completion of the send request.
   213 	@param aNumRemotes On success, will contain the number of remotes the 
   214 	command was sent to.
   215 	@param aButtonAct The button action to send.
   216 	*/
   217 	IMPORT_C void _0(TRequestStatus& aStatus, 
   218 		TUint& aNumRemotes, 
   219 		TRemConCoreApiButtonAction aButtonAct);
   220 	
   221 	/** Send a '1' command.
   222 	Only one command per controller session can be outstanding at any one time.
   223 	@param aStatus Used by RemCon to indicate completion of the send request.
   224 	@param aNumRemotes On success, will contain the number of remotes the 
   225 	command was sent to.
   226 	@param aButtonAct The button action to send.
   227 	*/
   228 	IMPORT_C void _1(TRequestStatus& aStatus, 
   229 		TUint& aNumRemotes, 
   230 		TRemConCoreApiButtonAction aButtonAct);
   231 	
   232 	/** Send a '2' command.
   233 	Only one command per controller session can be outstanding at any one time.
   234 	@param aStatus Used by RemCon to indicate completion of the send request.
   235 	@param aNumRemotes On success, will contain the number of remotes the 
   236 	command was sent to.
   237 	@param aButtonAct The button action to send.
   238 	*/
   239 	IMPORT_C void _2(TRequestStatus& aStatus, 
   240 		TUint& aNumRemotes, 
   241 		TRemConCoreApiButtonAction aButtonAct);
   242 	
   243 	/** Send a '3' command.
   244 	Only one command per controller session can be outstanding at any one time.
   245 	@param aStatus Used by RemCon to indicate completion of the send request.
   246 	@param aNumRemotes On success, will contain the number of remotes the 
   247 	command was sent to.
   248 	@param aButtonAct The button action to send.
   249 	*/
   250 	IMPORT_C void _3(TRequestStatus& aStatus, 
   251 		TUint& aNumRemotes, 
   252 		TRemConCoreApiButtonAction aButtonAct);
   253 	
   254 	/** Send a '4'command.
   255 	Only one command per controller session can be outstanding at any one time.
   256 	@param aStatus Used by RemCon to indicate completion of the send request.
   257 	@param aNumRemotes On success, will contain the number of remotes the 
   258 	command was sent to.
   259 	@param aButtonAct The button action to send.
   260 	*/
   261 	IMPORT_C void _4(TRequestStatus& aStatus, 
   262 		TUint& aNumRemotes, 
   263 		TRemConCoreApiButtonAction aButtonAct);
   264 	
   265 	/** Send a '5' command.
   266 	Only one command per controller session can be outstanding at any one time.
   267 	@param aStatus Used by RemCon to indicate completion of the send request.
   268 	@param aNumRemotes On success, will contain the number of remotes the 
   269 	command was sent to.
   270 	@param aButtonAct The button action to send.
   271 	*/
   272 	IMPORT_C void _5(TRequestStatus& aStatus, 
   273 		TUint& aNumRemotes, 
   274 		TRemConCoreApiButtonAction aButtonAct);
   275 
   276 	/** Send a '6' command.
   277 	Only one command per controller session can be outstanding at any one time.
   278 	@param aStatus Used by RemCon to indicate completion of the send request.
   279 	@param aNumRemotes On success, will contain the number of remotes the 
   280 	command was sent to.
   281 	@param aButtonAct The button action to send.
   282 	*/
   283 	IMPORT_C void _6(TRequestStatus& aStatus, 
   284 		TUint& aNumRemotes, 
   285 		TRemConCoreApiButtonAction aButtonAct);
   286 	
   287 	/** Send a '7' command.
   288 	Only one command per controller session can be outstanding at any one time.
   289 	@param aStatus Used by RemCon to indicate completion of the send request.
   290 	@param aNumRemotes On success, will contain the number of remotes the 
   291 	command was sent to.
   292 	@param aButtonAct The button action to send.
   293 	*/
   294 	IMPORT_C void _7(TRequestStatus& aStatus, 
   295 		TUint& aNumRemotes, 
   296 		TRemConCoreApiButtonAction aButtonAct);
   297 	
   298 	/** Send a '8' command.
   299 	Only one command per controller session can be outstanding at any one time.
   300 	@param aStatus Used by RemCon to indicate completion of the send request.
   301 	@param aNumRemotes On success, will contain the number of remotes the 
   302 	command was sent to.
   303 	@param aButtonAct The button action to send.
   304 	*/
   305 	IMPORT_C void _8(TRequestStatus& aStatus, 
   306 		TUint& aNumRemotes, 
   307 		TRemConCoreApiButtonAction aButtonAct);
   308 
   309 	/** Send a '9' command.
   310 	Only one command per controller session can be outstanding at any one time.
   311 	@param aStatus Used by RemCon to indicate completion of the send request.
   312 	@param aNumRemotes On success, will contain the number of remotes the 
   313 	command was sent to.
   314 	@param aButtonAct The button action to send.
   315 	*/
   316 	IMPORT_C void _9(TRequestStatus& aStatus, 
   317 		TUint& aNumRemotes, 
   318 		TRemConCoreApiButtonAction aButtonAct);
   319 	
   320 	/** Send a 'dot' command.
   321 	Only one command per controller session can be outstanding at any one time.
   322 	@param aStatus Used by RemCon to indicate completion of the send request.
   323 	@param aNumRemotes On success, will contain the number of remotes the 
   324 	command was sent to.
   325 	@param aButtonAct The button action to send.
   326 	*/
   327 	IMPORT_C void Dot(TRequestStatus& aStatus, 
   328 		TUint& aNumRemotes, 
   329 		TRemConCoreApiButtonAction aButtonAct);
   330 
   331 	/** Send an 'enter' command.
   332 	Only one command per controller session can be outstanding at any one time.
   333 	@param aStatus Used by RemCon to indicate completion of the send request.
   334 	@param aNumRemotes On success, will contain the number of remotes the 
   335 	command was sent to.
   336 	@param aButtonAct The button action to send.
   337 	*/
   338 	IMPORT_C void Enter(TRequestStatus& aStatus, 
   339 		TUint& aNumRemotes, 
   340 		TRemConCoreApiButtonAction aButtonAct);
   341 
   342 	/** Send a 'clear' command.
   343 	Only one command per controller session can be outstanding at any one time.
   344 	@param aStatus Used by RemCon to indicate completion of the send request.
   345 	@param aNumRemotes On success, will contain the number of remotes the 
   346 	command was sent to.
   347 	@param aButtonAct The button action to send.
   348 	*/
   349 	IMPORT_C void Clear(TRequestStatus& aStatus, 
   350 		TUint& aNumRemotes, 
   351 		TRemConCoreApiButtonAction aButtonAct);
   352 
   353 	/** Send a 'channel up' command.
   354 	Only one command per controller session can be outstanding at any one time.
   355 	@param aStatus Used by RemCon to indicate completion of the send request.
   356 	@param aNumRemotes On success, will contain the number of remotes the 
   357 	command was sent to.
   358 	@param aButtonAct The button action to send.
   359 	*/
   360 	IMPORT_C void ChannelUp(TRequestStatus& aStatus, 
   361 		TUint& aNumRemotes, 
   362 		TRemConCoreApiButtonAction aButtonAct);
   363 	
   364 	/** Send a 'channel down' command.
   365 	Only one command per controller session can be outstanding at any one time.
   366 	@param aStatus Used by RemCon to indicate completion of the send request.
   367 	@param aNumRemotes On success, will contain the number of remotes the 
   368 	command was sent to.
   369 	@param aButtonAct The button action to send.
   370 	*/
   371 	IMPORT_C void ChannelDown(TRequestStatus& aStatus, 
   372 		TUint& aNumRemotes, 
   373 		TRemConCoreApiButtonAction aButtonAct);
   374 
   375 	/** Send a 'previous channel' command.
   376 	Only one command per controller session can be outstanding at any one time.
   377 	@param aStatus Used by RemCon to indicate completion of the send request.
   378 	@param aNumRemotes On success, will contain the number of remotes the 
   379 	command was sent to.
   380 	@param aButtonAct The button action to send.
   381 	*/
   382 	IMPORT_C void PreviousChannel(TRequestStatus& aStatus, 
   383 		TUint& aNumRemotes, 
   384 		TRemConCoreApiButtonAction aButtonAct);
   385 
   386 	/** Send a 'sound select' command.
   387 	Only one command per controller session can be outstanding at any one time.
   388 	@param aStatus Used by RemCon to indicate completion of the send request.
   389 	@param aNumRemotes On success, will contain the number of remotes the 
   390 	command was sent to.
   391 	@param aButtonAct The button action to send.
   392 	*/
   393 	IMPORT_C void SoundSelect(TRequestStatus& aStatus, 
   394 		TUint& aNumRemotes, 
   395 		TRemConCoreApiButtonAction aButtonAct);
   396 
   397 	/** Send a 'input select' command.
   398 	Only one command per controller session can be outstanding at any one time.
   399 	@param aStatus Used by RemCon to indicate completion of the send request.
   400 	@param aNumRemotes On success, will contain the number of remotes the 
   401 	command was sent to.
   402 	@param aButtonAct The button action to send.
   403 	*/
   404 	IMPORT_C void InputSelect(TRequestStatus& aStatus, 
   405 		TUint& aNumRemotes, 
   406 		TRemConCoreApiButtonAction aButtonAct);
   407 
   408 	/** Send a 'display information' command.
   409 	Only one command per controller session can be outstanding at any one time.
   410 	@param aStatus Used by RemCon to indicate completion of the send request.
   411 	@param aNumRemotes On success, will contain the number of remotes the 
   412 	command was sent to.
   413 	@param aButtonAct The button action to send.
   414 	*/
   415 	IMPORT_C void DisplayInformation(TRequestStatus& aStatus, 
   416 		TUint& aNumRemotes, 
   417 		TRemConCoreApiButtonAction aButtonAct);
   418 
   419 	/** Send a 'help' command.
   420 	Only one command per controller session can be outstanding at any one time.
   421 	@param aStatus Used by RemCon to indicate completion of the send request.
   422 	@param aNumRemotes On success, will contain the number of remotes the 
   423 	command was sent to.
   424 	@param aButtonAct The button action to send.
   425 	*/
   426 	IMPORT_C void Help(TRequestStatus& aStatus, 
   427 		TUint& aNumRemotes, 
   428 		TRemConCoreApiButtonAction aButtonAct);
   429 
   430 	/** Send a 'page up' command.
   431 	Only one command per controller session can be outstanding at any one time.
   432 	@param aStatus Used by RemCon to indicate completion of the send request.
   433 	@param aNumRemotes On success, will contain the number of remotes the 
   434 	command was sent to.
   435 	@param aButtonAct The button action to send.
   436 	*/
   437 	IMPORT_C void PageUp(TRequestStatus& aStatus, 
   438 		TUint& aNumRemotes, 
   439 		TRemConCoreApiButtonAction aButtonAct);
   440 
   441 	/** Send a 'page down' command.
   442 	Only one command per controller session can be outstanding at any one time.
   443 	@param aStatus Used by RemCon to indicate completion of the send request.
   444 	@param aNumRemotes On success, will contain the number of remotes the 
   445 	command was sent to.
   446 	@param aButtonAct The button action to send.
   447 	*/
   448 	IMPORT_C void PageDown(TRequestStatus& aStatus, 
   449 		TUint& aNumRemotes, 
   450 		TRemConCoreApiButtonAction aButtonAct);
   451 
   452 	/** Send a 'power' command.
   453 	Only one command per controller session can be outstanding at any one time.
   454 	@param aStatus Used by RemCon to indicate completion of the send request.
   455 	@param aNumRemotes On success, will contain the number of remotes the 
   456 	command was sent to.
   457 	@param aButtonAct The button action to send.
   458 	*/
   459 	IMPORT_C void Power(TRequestStatus& aStatus, 
   460 		TUint& aNumRemotes, 
   461 		TRemConCoreApiButtonAction aButtonAct);
   462 
   463 	/** Send a 'volume up' command.
   464 	Only one command per controller session can be outstanding at any one time.
   465 	@param aStatus Used by RemCon to indicate completion of the send request.
   466 	@param aNumRemotes On success, will contain the number of remotes the 
   467 	command was sent to.
   468 	@param aButtonAct The button action to send.
   469 	*/
   470 	IMPORT_C void VolumeUp(TRequestStatus& aStatus, 
   471 		TUint& aNumRemotes, 
   472 		TRemConCoreApiButtonAction aButtonAct);
   473 
   474 	/** Send a 'volume down' command.
   475 	Only one command per controller session can be outstanding at any one time.
   476 	@param aStatus Used by RemCon to indicate completion of the send request.
   477 	@param aNumRemotes On success, will contain the number of remotes the 
   478 	command was sent to.
   479 	@param aButtonAct The button action to send.
   480 	*/
   481 	IMPORT_C void VolumeDown(TRequestStatus& aStatus, 
   482 		TUint& aNumRemotes, 
   483 		TRemConCoreApiButtonAction aButtonAct);
   484 
   485 	/** Send a 'mute' command.
   486 	Only one command per controller session can be outstanding at any one time.
   487 	@param aStatus Used by RemCon to indicate completion of the send request.
   488 	@param aNumRemotes On success, will contain the number of remotes the 
   489 	command was sent to.
   490 	@param aButtonAct The button action to send.
   491 	*/
   492 	IMPORT_C void Mute(TRequestStatus& aStatus, 
   493 		TUint& aNumRemotes, 
   494 		TRemConCoreApiButtonAction aButtonAct);
   495 
   496 	/** Send a 'play' command.
   497 	Only one command per controller session can be outstanding at any one time.
   498 	@param aStatus Used by RemCon to indicate completion of the send request.
   499 	@param aNumRemotes On success, will contain the number of remotes the 
   500 	command was sent to.
   501 	@param aButtonAct The button action to send.
   502 	@param aSpeed The play speed.
   503 	*/
   504 	IMPORT_C void Play(TRequestStatus& aStatus, 
   505 		TUint& aNumRemotes, 
   506 		TRemConCoreApiButtonAction aButtonAct,
   507 		TRemConCoreApiPlaybackSpeed aSpeed = ERemConCoreApiPlaybackSpeedX1);
   508 
   509 	/** Send a 'stop' command.
   510 	Only one command per controller session can be outstanding at any one time.
   511 	@param aStatus Used by RemCon to indicate completion of the send request.
   512 	@param aNumRemotes On success, will contain the number of remotes the 
   513 	command was sent to.
   514 	@param aButtonAct The button action to send.
   515 	*/
   516 	IMPORT_C void Stop(TRequestStatus& aStatus, 
   517 		TUint& aNumRemotes,
   518 		TRemConCoreApiButtonAction aButtonAct);
   519 
   520 	/** Send a 'pause' command.
   521 	Only one command per controller session can be outstanding at any one time.
   522 	@param aStatus Used by RemCon to indicate completion of the send request.
   523 	@param aNumRemotes On success, will contain the number of remotes the 
   524 	command was sent to.
   525 	@param aButtonAct The button action to send.
   526 	*/
   527 	IMPORT_C void Pause(TRequestStatus& aStatus, 
   528 		TUint& aNumRemotes, 
   529 		TRemConCoreApiButtonAction aButtonAct);
   530 
   531 	/** Send a 'record' command.
   532 	Only one command per controller session can be outstanding at any one time.
   533 	@param aStatus Used by RemCon to indicate completion of the send request.
   534 	@param aNumRemotes On success, will contain the number of remotes the 
   535 	command was sent to.
   536 	@param aButtonAct The button action to send.
   537 	*/
   538 	IMPORT_C void Record(TRequestStatus& aStatus, 
   539 		TUint& aNumRemotes, 
   540 		TRemConCoreApiButtonAction aButtonAct);
   541 
   542 	/** Send a 'rewind' command.
   543 	Only one command per controller session can be outstanding at any one time.
   544 	@param aStatus Used by RemCon to indicate completion of the send request.
   545 	@param aNumRemotes On success, will contain the number of remotes the 
   546 	command was sent to.
   547 	@param aButtonAct The button action to send.
   548 	*/
   549 	IMPORT_C void Rewind(TRequestStatus& aStatus, 
   550 		TUint& aNumRemotes, 
   551 		TRemConCoreApiButtonAction aButtonAct);
   552 
   553 	/** Send a 'fast forward' command.
   554 	Only one command per controller session can be outstanding at any one time.
   555 	@param aStatus Used by RemCon to indicate completion of the send request.
   556 	@param aNumRemotes On success, will contain the number of remotes the 
   557 	command was sent to.
   558 	@param aButtonAct The button action to send.
   559 	*/
   560 	IMPORT_C void FastForward(TRequestStatus& aStatus, 
   561 		TUint& aNumRemotes, 
   562 		TRemConCoreApiButtonAction aButtonAct);
   563 
   564 	/** Send an 'eject' command.
   565 	Only one command per controller session can be outstanding at any one time.
   566 	@param aStatus Used by RemCon to indicate completion of the send request.
   567 	@param aNumRemotes On success, will contain the number of remotes the 
   568 	command was sent to.
   569 	@param aButtonAct The button action to send.
   570 	*/
   571 	IMPORT_C void Eject(TRequestStatus& aStatus, 
   572 		TUint& aNumRemotes, 
   573 		TRemConCoreApiButtonAction aButtonAct);
   574 
   575 	/** Send a 'forward' command.
   576 	Only one command per controller session can be outstanding at any one time.
   577 	@param aStatus Used by RemCon to indicate completion of the send request.
   578 	@param aNumRemotes On success, will contain the number of remotes the 
   579 	command was sent to.
   580 	@param aButtonAct The button action to send.
   581 	*/
   582 	IMPORT_C void Forward(TRequestStatus& aStatus, 
   583 		TUint& aNumRemotes, 
   584 		TRemConCoreApiButtonAction aButtonAct);
   585 
   586 	/** Send a 'backward' command.
   587 	Only one command per controller session can be outstanding at any one time.
   588 	@param aStatus Used by RemCon to indicate completion of the send request.
   589 	@param aNumRemotes On success, will contain the number of remotes the 
   590 	command was sent to.
   591 	@param aButtonAct The button action to send.
   592 	*/
   593 	IMPORT_C void Backward(TRequestStatus& aStatus, 
   594 		TUint& aNumRemotes, 
   595 		TRemConCoreApiButtonAction aButtonAct);
   596 
   597 	/** Send an 'angle' command.
   598 	Only one command per controller session can be outstanding at any one time.
   599 	@param aStatus Used by RemCon to indicate completion of the send request.
   600 	@param aNumRemotes On success, will contain the number of remotes the 
   601 	command was sent to.
   602 	@param aButtonAct The button action to send.
   603 	*/
   604 	IMPORT_C void Angle(TRequestStatus& aStatus, 
   605 		TUint& aNumRemotes, 
   606 		TRemConCoreApiButtonAction aButtonAct);
   607 
   608 	/** Send a 'subpicture' command.
   609 	Only one command per controller session can be outstanding at any one time.
   610 	@param aStatus Used by RemCon to indicate completion of the send request.
   611 	@param aNumRemotes On success, will contain the number of remotes the 
   612 	command was sent to.
   613 	@param aButtonAct The button action to send.
   614 	*/
   615 	IMPORT_C void Subpicture(TRequestStatus& aStatus, 
   616 		TUint& aNumRemotes, 
   617 		TRemConCoreApiButtonAction aButtonAct);
   618 
   619 	/** Send a 'pause play function' command.
   620 	Only one command per controller session can be outstanding at any one time.
   621 	@param aStatus Used by RemCon to indicate completion of the send request.
   622 	@param aNumRemotes On success, will contain the number of remotes the 
   623 	command was sent to.
   624 	@param aButtonAct The button action to send.
   625 	*/
   626 	IMPORT_C void PausePlayFunction(TRequestStatus& aStatus, 
   627 		TUint& aNumRemotes, 
   628 		TRemConCoreApiButtonAction aButtonAct);
   629 	
   630 	/** Send a 'restore volume function' command.
   631 	Only one command per controller session can be outstanding at any one time.
   632 	@param aStatus Used by RemCon to indicate completion of the send request.
   633 	@param aNumRemotes On success, will contain the number of remotes the 
   634 	command was sent to.
   635 	@param aButtonAct The button action to send.
   636 	*/
   637 	IMPORT_C void RestoreVolumeFunction(TRequestStatus& aStatus, 
   638 		TUint& aNumRemotes, 
   639 		TRemConCoreApiButtonAction aButtonAct);
   640 	
   641 	/** Send a 'tune function' command.
   642 	Only one command per controller session can be outstanding at any one time.
   643 	@param aTwoPart If EFalse, only aMajorChannel is being used to perform the 
   644 	tuning (aMinorChannel is ignored). Otherwise, both aMajorChannel and 
   645 	aMinorChannel are used.
   646 	@param aMajorChannel The major channel number.
   647 	@param aMinorChannel The minor channel number.
   648 	@param aStatus Used by RemCon to indicate completion of the send request.
   649 	@param aNumRemotes On success, will contain the number of remotes the 
   650 	command was sent to.
   651 	@param aButtonAct The button action to send.
   652 	*/
   653 	IMPORT_C void TuneFunction(TRequestStatus& aStatus, 
   654 		TUint& aNumRemotes, 
   655 		TBool aTwoPart, 
   656 		TUint aMajorChannel, 
   657 		TUint aMinorChannel,
   658 		TRemConCoreApiButtonAction aButtonAct);
   659 	
   660 	/** Send a 'select disk function' command.
   661 	Only one command per controller session can be outstanding at any one time.
   662 	@param aStatus Used by RemCon to indicate completion of the send request.
   663 	@param aNumRemotes On success, will contain the number of remotes the 
   664 	command was sent to.
   665 	@param aButtonAct The button action to send.
   666 	@param aDisk The disk to select.
   667 	*/
   668 	IMPORT_C void SelectDiskFunction(TRequestStatus& aStatus, 
   669 		TUint& aNumRemotes, 
   670 		TUint aDisk,
   671 		TRemConCoreApiButtonAction aButtonAct);
   672 
   673 	/** Send a 'select AV input function' command.
   674 	Only one command per controller session can be outstanding at any one time.
   675 	@param aStatus Used by RemCon to indicate completion of the send request.
   676 	@param aNumRemotes On success, will contain the number of remotes the 
   677 	command was sent to.
   678 	@param aButtonAct The button action to send.
   679 	@param aAvInputSignalNumber AV input signal.
   680 	*/
   681 	IMPORT_C void SelectAvInputFunction(TRequestStatus& aStatus, 
   682 		TUint& aNumRemotes, 
   683 		TUint8 aAvInputSignalNumber,
   684 		TRemConCoreApiButtonAction aButtonAct);
   685 	
   686 	/** Send a 'select audio input function' command.
   687 	Only one command per controller session can be outstanding at any one time.
   688 	@param aStatus Used by RemCon to indicate completion of the send request.
   689 	@param aNumRemotes On success, will contain the number of remotes the 
   690 	command was sent to.
   691 	@param aButtonAct The button action to send.
   692 	@param aAudioInputSignalNumber Audio input signal.
   693 	*/
   694 	IMPORT_C void SelectAudioInputFunction(TRequestStatus& aStatus, 
   695 		TUint& aNumRemotes, 
   696 		TUint8 aAudioInputSignalNumber,
   697 		TRemConCoreApiButtonAction aButtonAct);
   698 
   699 	/** Send an 'F1' command.
   700 	Only one command per controller session can be outstanding at any one time.
   701 	@param aStatus Used by RemCon to indicate completion of the send request.
   702 	@param aNumRemotes On success, will contain the number of remotes the 
   703 	command was sent to.
   704 	@param aButtonAct The button action to send.
   705 	*/
   706 	IMPORT_C void F1(TRequestStatus& aStatus, 
   707 		TUint& aNumRemotes, 
   708 		TRemConCoreApiButtonAction aButtonAct);
   709 
   710 	/** Send an 'F2' command.
   711 	Only one command per controller session can be outstanding at any one time.
   712 	@param aStatus Used by RemCon to indicate completion of the send request.
   713 	@param aNumRemotes On success, will contain the number of remotes the 
   714 	command was sent to.
   715 	@param aButtonAct The button action to send.
   716 	*/
   717 	IMPORT_C void F2(TRequestStatus& aStatus, 
   718 		TUint& aNumRemotes, 
   719 		TRemConCoreApiButtonAction aButtonAct);
   720 
   721 	/** Send an 'F3' command.
   722 	Only one command per controller session can be outstanding at any one time.
   723 	@param aStatus Used by RemCon to indicate completion of the send request.
   724 	@param aNumRemotes On success, will contain the number of remotes the 
   725 	command was sent to.
   726 	@param aButtonAct The button action to send.
   727 	*/
   728 	IMPORT_C void F3(TRequestStatus& aStatus, 
   729 		TUint& aNumRemotes, 
   730 		TRemConCoreApiButtonAction aButtonAct);
   731 
   732 	/** Send an 'F4' command.
   733 	Only one command per controller session can be outstanding at any one time.
   734 	@param aStatus Used by RemCon to indicate completion of the send request.
   735 	@param aNumRemotes On success, will contain the number of remotes the 
   736 	command was sent to.
   737 	@param aButtonAct The button action to send.
   738 	*/
   739 	IMPORT_C void F4(TRequestStatus& aStatus, 
   740 		TUint& aNumRemotes, 
   741 		TRemConCoreApiButtonAction aButtonAct);
   742 
   743 	/** Send an 'F5' command.
   744 	Only one command per controller session can be outstanding at any one time.
   745 	@param aStatus Used by RemCon to indicate completion of the send request.
   746 	@param aNumRemotes On success, will contain the number of remotes the 
   747 	command was sent to.
   748 	@param aButtonAct The button action to send.
   749 	*/
   750 	IMPORT_C void F5(TRequestStatus& aStatus, 
   751 		TUint& aNumRemotes, 
   752 		TRemConCoreApiButtonAction aButtonAct);
   753 	
   754 private:
   755 	/** 
   756 	Constructor.
   757 	@param aInterfaceSelector The interface selector.
   758 	@param aObserver The observer of this interface.
   759 	*/
   760 	CRemConCoreApiController(CRemConInterfaceSelector& aInterfaceSelector, 
   761 		MRemConCoreApiControllerObserver& aObserver);
   762 
   763 private: // utility
   764 	/**
   765 	Utility to send a command with only the button action as operation-specific data.
   766 	@param aStatus TRequestStatus for the send operation.
   767 	@param aNumRemotes The number of remotes the command was sent to.
   768 	@param aButtonAct The button action.
   769 	@param aOperationId The operation ID.
   770 	*/
   771 	void SendGenericCommand(TRequestStatus& aStatus, 
   772 		TUint& aNumRemotes, 
   773 		TRemConCoreApiButtonAction aButtonAct, 
   774 		TRemConCoreApiOperationId aOperationId);
   775 
   776 private: // from CRemConInterfaceBase
   777 	TAny* GetInterfaceIf(TUid aUid);
   778 
   779 private: // from MRemConInterfaceIf
   780 	void MrcibNewMessage(TUint aOperationId, const TDesC8& aData);
   781 
   782 private: // unowned
   783 	MRemConCoreApiControllerObserver& iObserver;
   784 
   785 private: // owned
   786 	TBuf8<KRemConCoreApiMaxOperationSpecificDataSize> iCmdData;
   787 	};
   788 
   789 #endif // REMCONCOREAPICONTROLLER_H