williamr@2: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: /** williamr@2: @file williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: #ifndef REMCONCOREAPI_H williamr@2: #define REMCONCOREAPI_H williamr@2: williamr@2: #include williamr@2: williamr@2: /** williamr@2: The operation-specific data field for operations in the Core API has the williamr@2: following format. williamr@2: For commands, there is 1 byte containing the button action. There is optional williamr@2: further data, depending on the operation itself. For instance, Play carries an williamr@2: extra 4 bytes of 'play speed' information. Hence the operation-specific data williamr@2: for a Play command is 5 bytes long. williamr@2: For responses, there are 4 bytes of 'results' data. This is followed by williamr@2: whatever operation-specific data was attached to the originating command (so williamr@2: that the client can identify if necessary what the response is a response to). williamr@2: Hence the operation-specific data for a Play response is 9 bytes long. williamr@2: */ williamr@2: williamr@2: /** A buffer size for Core API operations' operation-specific data. */ williamr@2: const TUint KRemConCoreApiMaxOperationSpecificDataSize = 16; williamr@2: williamr@2: /** Length of the results data in bytes. */ williamr@2: const TUint KRemConCoreApiResultDataLength = 4; williamr@2: williamr@2: /** String of same length as result data.*/ williamr@2: _LIT8(KRemConCoreApiResultPad, " "); williamr@2: williamr@2: /** Offset for operation data for commands */ williamr@2: const TUint KRemConCoreApiCommandDataOffset = 0; williamr@2: williamr@2: /** Offset for operation data for responses */ williamr@2: const TUint KRemConCoreApiResponseDataOffset = KRemConCoreApiResultDataLength; williamr@2: williamr@2: /** Offset of button data from beginning of data section. williamr@2: ie the offset of the data for commands is KRemConCoreApiCommandDataOffset williamr@2: +KRemConCoreApiButtonDataOffset. The offset of the button data for williamr@2: responses is KRemConCoreApiResponseDataOffset+KRemConCoreApiButtonDataOffset. williamr@2: */ williamr@2: const TUint KRemConCoreApiButtonDataOffset = 0; williamr@2: williamr@2: /** Length of the button action data in bytes. */ williamr@2: const TUint KRemConCoreApiButtonDataLength = 1; williamr@2: williamr@2: /** Button actions. */ williamr@2: enum TRemConCoreApiButtonAction williamr@2: { williamr@2: /** A button has been pressed. */ williamr@2: ERemConCoreApiButtonPress = 0, williamr@2: williamr@2: /** A button has been released. */ williamr@2: ERemConCoreApiButtonRelease = 1, williamr@2: williamr@2: /** A button has been clicked. */ williamr@2: ERemConCoreApiButtonClick = 2, williamr@2: }; williamr@2: williamr@2: /** Button press refresh interval. williamr@2: If the client wants to emulate a button being held down, they send a press. williamr@2: The client must re-post the press within this time, and continue to re-post williamr@2: at least this frequently, otherwise the bearer may assume that the hold has williamr@2: finished. The client may finish the hold by sending a release.*/ williamr@2: const TUint KRemConCoreApiPressRefreshInterval = 1000000; williamr@2: williamr@2: /** williamr@2: The UID identifying this outer-layer RemCon interface. williamr@2: */ williamr@2: const TInt KRemConCoreApiUid = 0x10205E60; williamr@2: williamr@2: /** williamr@2: Operation ids belonging to the Core API. williamr@2: These values are not numbered sequentially as a facility to AVRCP, which may williamr@2: assume that they are numbered the same as the operation IDs in the AV/C Panel williamr@2: Subunit Specification 1.21 Table 9.21. williamr@2: */ williamr@2: enum TRemConCoreApiOperationId williamr@2: { williamr@2: /** Select. */ williamr@2: ERemConCoreApiSelect = 0x00, williamr@2: /** Up. */ williamr@2: ERemConCoreApiUp = 0x01, williamr@2: /** Down. */ williamr@2: ERemConCoreApiDown = 0x02, williamr@2: /** Left. */ williamr@2: ERemConCoreApiLeft = 0x03, williamr@2: /** Right. */ williamr@2: ERemConCoreApiRight = 0x04, williamr@2: /** RightUp. */ williamr@2: ERemConCoreApiRightUp = 0x05, williamr@2: /** RightDown. */ williamr@2: ERemConCoreApiRightDown = 0x06, williamr@2: /** LeftUp. */ williamr@2: ERemConCoreApiLeftUp = 0x07, williamr@2: /** LeftDown. */ williamr@2: ERemConCoreApiLeftDown = 0x08, williamr@2: /** RootMenu. */ williamr@2: ERemConCoreApiRootMenu = 0x09, williamr@2: /** SetupMenu. */ williamr@2: ERemConCoreApiSetupMenu = 0x0a, williamr@2: /** ContentsMenu. */ williamr@2: ERemConCoreApiContentsMenu = 0x0b, williamr@2: /** FavoriteMenu. */ williamr@2: ERemConCoreApiFavoriteMenu = 0x0c, williamr@2: /** Exit. */ williamr@2: ERemConCoreApiExit = 0x0d, williamr@2: /** 0. */ williamr@2: ERemConCoreApi0 = 0x20, williamr@2: /** 1. */ williamr@2: ERemConCoreApi1 = 0x21, williamr@2: /** 2. */ williamr@2: ERemConCoreApi2 = 0x22, williamr@2: /** 3. */ williamr@2: ERemConCoreApi3 = 0x23, williamr@2: /** 4. */ williamr@2: ERemConCoreApi4 = 0x24, williamr@2: /** 5. */ williamr@2: ERemConCoreApi5 = 0x25, williamr@2: /** 6. */ williamr@2: ERemConCoreApi6 = 0x26, williamr@2: /** 7. */ williamr@2: ERemConCoreApi7 = 0x27, williamr@2: /** 8. */ williamr@2: ERemConCoreApi8 = 0x28, williamr@2: /** 9. */ williamr@2: ERemConCoreApi9 = 0x29, williamr@2: /** Dot. */ williamr@2: ERemConCoreApiDot = 0x2a, williamr@2: /** Enter. */ williamr@2: ERemConCoreApiEnter = 0x2b, williamr@2: /** Clear. */ williamr@2: ERemConCoreApiClear = 0x2c, williamr@2: /** ChannelUp. */ williamr@2: ERemConCoreApiChannelUp = 0x30, williamr@2: /** ChannelDown. */ williamr@2: ERemConCoreApiChannelDown = 0x31, williamr@2: /** PreviousChannel. */ williamr@2: ERemConCoreApiPreviousChannel = 0x32, williamr@2: /** SoundSelect. */ williamr@2: ERemConCoreApiSoundSelect = 0x33, williamr@2: /** InputSelect. */ williamr@2: ERemConCoreApiInputSelect = 0x34, williamr@2: /** DisplayInformation. */ williamr@2: ERemConCoreApiDisplayInformation = 0x35, williamr@2: /** Help. */ williamr@2: ERemConCoreApiHelp = 0x36, williamr@2: /** PageUp. */ williamr@2: ERemConCoreApiPageUp = 0x37, williamr@2: /** PageDown. */ williamr@2: ERemConCoreApiPageDown = 0x38, williamr@2: /** Power. */ williamr@2: ERemConCoreApiPower = 0x40, williamr@2: /** VolumeUp. */ williamr@2: ERemConCoreApiVolumeUp = 0x41, williamr@2: /** VolumeDown. */ williamr@2: ERemConCoreApiVolumeDown = 0x42, williamr@2: /** Mute. */ williamr@2: ERemConCoreApiMute = 0x43, williamr@2: /** Play. */ williamr@2: ERemConCoreApiPlay = 0x44, williamr@2: /** Stop. */ williamr@2: ERemConCoreApiStop = 0x45, williamr@2: /** Pause. */ williamr@2: ERemConCoreApiPause = 0x46, williamr@2: /** Record. */ williamr@2: ERemConCoreApiRecord = 0x47, williamr@2: /** Rewind. */ williamr@2: ERemConCoreApiRewind = 0x48, williamr@2: /** FastForward. */ williamr@2: ERemConCoreApiFastForward = 0x49, williamr@2: /** Eject. */ williamr@2: ERemConCoreApiEject = 0x4a, williamr@2: /** Forward. */ williamr@2: ERemConCoreApiForward = 0x4b, williamr@2: /** Backward. */ williamr@2: ERemConCoreApiBackward = 0x4c, williamr@2: /** Angle. */ williamr@2: ERemConCoreApiAngle = 0x50, williamr@2: /** Subpicture. */ williamr@2: ERemConCoreApiSubpicture = 0x51, williamr@2: /** PausePlayFunction. */ williamr@2: ERemConCoreApiPausePlayFunction = 0x61, williamr@2: /** RestoreVolumeFunction. */ williamr@2: ERemConCoreApiRestoreVolumeFunction = 0x66, williamr@2: /** TuneFunction. */ williamr@2: ERemConCoreApiTuneFunction = 0x67, williamr@2: /** SelectDiskFunction. */ williamr@2: ERemConCoreApiSelectDiskFunction = 0x68, williamr@2: /** SelectAvInputFunction. */ williamr@2: ERemConCoreApiSelectAvInputFunction = 0x69, williamr@2: /** SelectAudioInputFunction. */ williamr@2: ERemConCoreApiSelectAudioInputFunction = 0x6a, williamr@2: /** F1. */ williamr@2: ERemConCoreApiF1 = 0x71, williamr@2: /** F2. */ williamr@2: ERemConCoreApiF2 = 0x72, williamr@2: /** F3. */ williamr@2: ERemConCoreApiF3 = 0x73, williamr@2: /** F4. */ williamr@2: ERemConCoreApiF4 = 0x74, williamr@2: /** F5. */ williamr@2: ERemConCoreApiF5 = 0x75, williamr@2: williamr@2: /* No-operation */ williamr@2: ENop = 0x76, williamr@2: williamr@2: /** williamr@2: * This enum is created for internal purpose to have the largest value in TRemConCoreApiOperationId. williamr@2: * If anyone needs an value for no-operation then we suggest to use 'ENop' instead. williamr@2: * If new enums values are added in TRemConCoreApiOperationId then value of ELargestOperationId williamr@2: * may change resulting in a BC break. williamr@2: * */ williamr@2: ELargestOperationId = 0x76, williamr@2: }; williamr@2: williamr@2: /** Speeds associated with Play APIs. williamr@2: These values are not numbered sequentially as a facility to AVRCP, which may williamr@2: assume that they are numbered the same as the playback speeds in the AV/C williamr@2: Panel Subunit Specification 1.21 Table 9.26. williamr@2: */ williamr@2: enum TRemConCoreApiPlaybackSpeed williamr@2: { williamr@2: /** NextFrame. */ williamr@2: ERemConCoreApiPlaybackSpeedNextFrame = 0x30, williamr@2: /** SlowestForward. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowestForward = 0x31, williamr@2: /** SlowForward6. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowForward6 = 0x32, williamr@2: /** SlowForward5. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowForward5 = 0x33, williamr@2: /** SlowForward4. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowForward4 = 0x34, williamr@2: /** SlowForward3. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowForward3 = 0x35, williamr@2: /** SlowForward2. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowForward2 = 0x36, williamr@2: /** SlowForward1. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowForward1 = 0x37, williamr@2: /** X1. */ williamr@2: ERemConCoreApiPlaybackSpeedX1 = 0x38, williamr@2: /** FastForward1. */ williamr@2: ERemConCoreApiPlaybackSpeedFastForward1 = 0x39, williamr@2: /** FastForward2. */ williamr@2: ERemConCoreApiPlaybackSpeedFastForward2 = 0x3a, williamr@2: /** FastForward3. */ williamr@2: ERemConCoreApiPlaybackSpeedFastForward3 = 0x3b, williamr@2: /** FastForward4. */ williamr@2: ERemConCoreApiPlaybackSpeedFastForward4 = 0x3c, williamr@2: /** FastForward5. */ williamr@2: ERemConCoreApiPlaybackSpeedFastForward5 = 0x3d, williamr@2: /** FastForward6. */ williamr@2: ERemConCoreApiPlaybackSpeedFastForward6 = 0x3e, williamr@2: /** FastestForward. */ williamr@2: ERemConCoreApiPlaybackSpeedFastestForward = 0x3f, williamr@2: /** PreviousFrame. */ williamr@2: ERemConCoreApiPlaybackSpeedPreviousFrame = 0x40, williamr@2: /** SlowestReverse. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowestReverse = 0x41, williamr@2: /** SlowReverse6. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowReverse6 = 0x42, williamr@2: /** SlowReverse5. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowReverse5 = 0x43, williamr@2: /** SlowReverse4. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowReverse4 = 0x44, williamr@2: /** SlowReverse3. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowReverse3 = 0x45, williamr@2: /** SlowReverse2. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowReverse2 = 0x46, williamr@2: /** SlowReverse1. */ williamr@2: ERemConCoreApiPlaybackSpeedSlowReverse1 = 0x47, williamr@2: /** X1Reverse. */ williamr@2: ERemConCoreApiPlaybackSpeedX1Reverse = 0x48, williamr@2: /** FastReverse1. */ williamr@2: ERemConCoreApiPlaybackSpeedFastReverse1 = 0x49, williamr@2: /** FastReverse2. */ williamr@2: ERemConCoreApiPlaybackSpeedFastReverse2 = 0x4a, williamr@2: /** FastReverse3. */ williamr@2: ERemConCoreApiPlaybackSpeedFastReverse3 = 0x4b, williamr@2: /** FastReverse4. */ williamr@2: ERemConCoreApiPlaybackSpeedFastReverse4 = 0x4c, williamr@2: /** FastReverse5. */ williamr@2: ERemConCoreApiPlaybackSpeedFastReverse5 = 0x4d, williamr@2: /** FastReverse6. */ williamr@2: ERemConCoreApiPlaybackSpeedFastReverse6 = 0x4e, williamr@2: /** FastestReverse. */ williamr@2: ERemConCoreApiPlaybackSpeedFastestReverse = 0x4f, williamr@2: /** Reverse. */ williamr@2: ERemConCoreApiPlaybackSpeedReverse = 0x65, williamr@2: /** ReversePause. */ williamr@2: ERemConCoreApiPlaybackSpeedReversePause = 0x6d, williamr@2: /** Forward. */ williamr@2: ERemConCoreApiPlaybackSpeedForward = 0x75, williamr@2: /** ForwardPause. */ williamr@2: ERemConCoreApiPlaybackSpeedForwardPause = 0x7d, williamr@2: }; williamr@2: williamr@2: #endif // REMCONCOREAPI_H