s60remote.cpp 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #include "s60remote.h"
  2. S60Remote::S60Remote(QObject* parent) : QObject(parent) {
  3. setObjectName("S60Remote");
  4. m_interfaceSelector = CRemConInterfaceSelector::NewL();
  5. m_coreTarget = CRemConCoreApiTarget::NewL(*m_interfaceSelector, *this);
  6. m_interfaceSelector->OpenTargetL();
  7. }
  8. S60Remote::~S60Remote() {
  9. delete m_coreTarget; // not sure if this is necessary
  10. delete m_interfaceSelector;
  11. }
  12. // ----------------------------------------------------------------------------
  13. // MrccatoCommand()
  14. // Receives events (press/click/release) from the following buttons:
  15. // Play/Pause, Volume Up, Volume Down, Stop, next, previous, rewind, forward
  16. // ----------------------------------------------------------------------------
  17. void S60Remote::MrccatoCommand(TRemConCoreApiOperationId aOperationId,
  18. TRemConCoreApiButtonAction aButtonAct) {
  19. TRequestStatus status;
  20. switch( aOperationId ) {
  21. case ERemConCoreApiPausePlayFunction: {
  22. if (aButtonAct == ERemConCoreApiButtonClick) {
  23. emit playPause();
  24. }
  25. //Send the response back to Remcon server
  26. m_coreTarget->PausePlayFunctionResponse(status, KErrNone);
  27. User::WaitForRequest(status);
  28. break;
  29. }
  30. case ERemConCoreApiStop: {
  31. if (aButtonAct == ERemConCoreApiButtonClick) {
  32. emit stop();
  33. }
  34. m_coreTarget->StopResponse(status, KErrNone);
  35. User::WaitForRequest(status);
  36. break;
  37. }
  38. // next track
  39. case ERemConCoreApiForward: {
  40. if (aButtonAct == ERemConCoreApiButtonClick) {
  41. emit next();
  42. }
  43. m_coreTarget->ForwardResponse(status, KErrNone);
  44. User::WaitForRequest(status);
  45. break;
  46. }
  47. // previous track
  48. case ERemConCoreApiBackward: {
  49. if (aButtonAct == ERemConCoreApiButtonClick) {
  50. emit previous();
  51. }
  52. else if (aButtonAct == ERemConCoreApiButtonPress) {
  53. emit rewindPressed();
  54. }
  55. else if (aButtonAct == ERemConCoreApiButtonRelease) {
  56. emit rewindReleased();
  57. }
  58. m_coreTarget->BackwardResponse(status, KErrNone);
  59. User::WaitForRequest(status);
  60. break;
  61. }
  62. case ERemConCoreApiFastForward: {
  63. if (aButtonAct == ERemConCoreApiButtonPress) {
  64. emit fastForwardPressed();
  65. }
  66. else if (aButtonAct == ERemConCoreApiButtonRelease) {
  67. emit fastForwardReleased();
  68. }
  69. m_coreTarget->ForwardResponse(status, KErrNone);
  70. User::WaitForRequest(status);
  71. break;
  72. }
  73. case ERemConCoreApiRewind: {
  74. if (aButtonAct == ERemConCoreApiButtonPress) {
  75. emit rewindPressed();
  76. }
  77. else if (aButtonAct == ERemConCoreApiButtonRelease) {
  78. emit rewindReleased();
  79. }
  80. m_coreTarget->ForwardResponse(status, KErrNone);
  81. User::WaitForRequest(status);
  82. break;
  83. }
  84. case ERemConCoreApiVolumeUp: {
  85. if (aButtonAct != ERemConCoreApiButtonRelease) {
  86. emit volumeUp();
  87. }
  88. m_coreTarget->VolumeUpResponse(status, KErrNone);
  89. User::WaitForRequest(status);
  90. break;
  91. }
  92. case ERemConCoreApiVolumeDown: {
  93. if (aButtonAct != ERemConCoreApiButtonRelease) {
  94. emit volumeDown();
  95. }
  96. m_coreTarget->VolumeDownResponse(status, KErrNone);
  97. User::WaitForRequest(status);
  98. break;
  99. }
  100. default:
  101. break;
  102. }
  103. }