LCOV - code coverage report
Current view: top level - gfx/vr/ipc - VRMessageUtils.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 118 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 8 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set sw=2 ts=8 et tw=80 : */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #ifndef mozilla_gfx_vr_VRMessageUtils_h
       8             : #define mozilla_gfx_vr_VRMessageUtils_h
       9             : 
      10             : #include "ipc/IPCMessageUtils.h"
      11             : #include "mozilla/GfxMessageUtils.h"
      12             : #include "VRManager.h"
      13             : 
      14             : #include "gfxVR.h"
      15             : 
      16             : namespace IPC {
      17             : 
      18             : template<>
      19             : struct ParamTraits<mozilla::gfx::VRDeviceType> :
      20             :   public ContiguousEnumSerializer<mozilla::gfx::VRDeviceType,
      21             :                                   mozilla::gfx::VRDeviceType(0),
      22             :                                   mozilla::gfx::VRDeviceType(mozilla::gfx::VRDeviceType::NumVRDeviceTypes)> {};
      23             : 
      24             : template<>
      25             : struct ParamTraits<mozilla::gfx::VRDisplayCapabilityFlags> :
      26             :   public BitFlagsEnumSerializer<mozilla::gfx::VRDisplayCapabilityFlags,
      27             :                                 mozilla::gfx::VRDisplayCapabilityFlags::Cap_All> {};
      28             : 
      29             : template <>
      30             : struct ParamTraits<mozilla::gfx::VRDisplayInfo>
      31             : {
      32             :   typedef mozilla::gfx::VRDisplayInfo paramType;
      33             : 
      34           0 :   static void Write(Message* aMsg, const paramType& aParam)
      35             :   {
      36           0 :     WriteParam(aMsg, aParam.mType);
      37           0 :     WriteParam(aMsg, aParam.mDisplayID);
      38           0 :     WriteParam(aMsg, aParam.mDisplayName);
      39           0 :     WriteParam(aMsg, aParam.mCapabilityFlags);
      40           0 :     WriteParam(aMsg, aParam.mEyeResolution);
      41           0 :     WriteParam(aMsg, aParam.mIsConnected);
      42           0 :     WriteParam(aMsg, aParam.mIsMounted);
      43           0 :     WriteParam(aMsg, aParam.mPresentingGroups);
      44           0 :     WriteParam(aMsg, aParam.mGroupMask);
      45           0 :     WriteParam(aMsg, aParam.mStageSize);
      46           0 :     WriteParam(aMsg, aParam.mSittingToStandingTransform);
      47           0 :     WriteParam(aMsg, aParam.mFrameId);
      48           0 :     for (int i = 0; i < mozilla::gfx::VRDisplayInfo::NumEyes; i++) {
      49           0 :       WriteParam(aMsg, aParam.mEyeFOV[i]);
      50           0 :       WriteParam(aMsg, aParam.mEyeTranslation[i]);
      51             :     }
      52           0 :     for (int i = 0; i < mozilla::gfx::kVRMaxLatencyFrames; i++) {
      53           0 :       WriteParam(aMsg, aParam.mLastSensorState[i]);
      54             :     }
      55           0 :   }
      56             : 
      57           0 :   static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
      58             :   {
      59           0 :     if (!ReadParam(aMsg, aIter, &(aResult->mType)) ||
      60           0 :         !ReadParam(aMsg, aIter, &(aResult->mDisplayID)) ||
      61           0 :         !ReadParam(aMsg, aIter, &(aResult->mDisplayName)) ||
      62           0 :         !ReadParam(aMsg, aIter, &(aResult->mCapabilityFlags)) ||
      63           0 :         !ReadParam(aMsg, aIter, &(aResult->mEyeResolution)) ||
      64           0 :         !ReadParam(aMsg, aIter, &(aResult->mIsConnected)) ||
      65           0 :         !ReadParam(aMsg, aIter, &(aResult->mIsMounted)) ||
      66           0 :         !ReadParam(aMsg, aIter, &(aResult->mPresentingGroups)) ||
      67           0 :         !ReadParam(aMsg, aIter, &(aResult->mGroupMask)) ||
      68           0 :         !ReadParam(aMsg, aIter, &(aResult->mStageSize)) ||
      69           0 :         !ReadParam(aMsg, aIter, &(aResult->mSittingToStandingTransform)) ||
      70           0 :         !ReadParam(aMsg, aIter, &(aResult->mFrameId))) {
      71           0 :       return false;
      72             :     }
      73           0 :     for (int i = 0; i < mozilla::gfx::VRDisplayInfo::NumEyes; i++) {
      74           0 :       if (!ReadParam(aMsg, aIter, &(aResult->mEyeFOV[i])) ||
      75           0 :           !ReadParam(aMsg, aIter, &(aResult->mEyeTranslation[i]))) {
      76           0 :         return false;
      77             :       }
      78             :     }
      79           0 :     for (int i = 0; i < mozilla::gfx::kVRMaxLatencyFrames; i++) {
      80           0 :       if (!ReadParam(aMsg, aIter, &(aResult->mLastSensorState[i]))) {
      81           0 :         return false;
      82             :       }
      83             :     }
      84             : 
      85           0 :     return true;
      86             :   }
      87             : };
      88             : 
      89             : template <>
      90             : struct ParamTraits<mozilla::gfx::VRHMDSensorState>
      91             : {
      92             :   typedef mozilla::gfx::VRHMDSensorState paramType;
      93             : 
      94           0 :   static void Write(Message* aMsg, const paramType& aParam)
      95             :   {
      96           0 :     WriteParam(aMsg, aParam.timestamp);
      97           0 :     WriteParam(aMsg, aParam.inputFrameID);
      98           0 :     WriteParam(aMsg, aParam.flags);
      99           0 :     WriteParam(aMsg, aParam.orientation[0]);
     100           0 :     WriteParam(aMsg, aParam.orientation[1]);
     101           0 :     WriteParam(aMsg, aParam.orientation[2]);
     102           0 :     WriteParam(aMsg, aParam.orientation[3]);
     103           0 :     WriteParam(aMsg, aParam.position[0]);
     104           0 :     WriteParam(aMsg, aParam.position[1]);
     105           0 :     WriteParam(aMsg, aParam.position[2]);
     106           0 :     WriteParam(aMsg, aParam.angularVelocity[0]);
     107           0 :     WriteParam(aMsg, aParam.angularVelocity[1]);
     108           0 :     WriteParam(aMsg, aParam.angularVelocity[2]);
     109           0 :     WriteParam(aMsg, aParam.angularAcceleration[0]);
     110           0 :     WriteParam(aMsg, aParam.angularAcceleration[1]);
     111           0 :     WriteParam(aMsg, aParam.angularAcceleration[2]);
     112           0 :     WriteParam(aMsg, aParam.linearVelocity[0]);
     113           0 :     WriteParam(aMsg, aParam.linearVelocity[1]);
     114           0 :     WriteParam(aMsg, aParam.linearVelocity[2]);
     115           0 :     WriteParam(aMsg, aParam.linearAcceleration[0]);
     116           0 :     WriteParam(aMsg, aParam.linearAcceleration[1]);
     117           0 :     WriteParam(aMsg, aParam.linearAcceleration[2]);
     118           0 :   }
     119             : 
     120           0 :   static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
     121             :   {
     122           0 :     if (!ReadParam(aMsg, aIter, &(aResult->timestamp)) ||
     123           0 :         !ReadParam(aMsg, aIter, &(aResult->inputFrameID)) ||
     124           0 :         !ReadParam(aMsg, aIter, &(aResult->flags)) ||
     125           0 :         !ReadParam(aMsg, aIter, &(aResult->orientation[0])) ||
     126           0 :         !ReadParam(aMsg, aIter, &(aResult->orientation[1])) ||
     127           0 :         !ReadParam(aMsg, aIter, &(aResult->orientation[2])) ||
     128           0 :         !ReadParam(aMsg, aIter, &(aResult->orientation[3])) ||
     129           0 :         !ReadParam(aMsg, aIter, &(aResult->position[0])) ||
     130           0 :         !ReadParam(aMsg, aIter, &(aResult->position[1])) ||
     131           0 :         !ReadParam(aMsg, aIter, &(aResult->position[2])) ||
     132           0 :         !ReadParam(aMsg, aIter, &(aResult->angularVelocity[0])) ||
     133           0 :         !ReadParam(aMsg, aIter, &(aResult->angularVelocity[1])) ||
     134           0 :         !ReadParam(aMsg, aIter, &(aResult->angularVelocity[2])) ||
     135           0 :         !ReadParam(aMsg, aIter, &(aResult->angularAcceleration[0])) ||
     136           0 :         !ReadParam(aMsg, aIter, &(aResult->angularAcceleration[1])) ||
     137           0 :         !ReadParam(aMsg, aIter, &(aResult->angularAcceleration[2])) ||
     138           0 :         !ReadParam(aMsg, aIter, &(aResult->linearVelocity[0])) ||
     139           0 :         !ReadParam(aMsg, aIter, &(aResult->linearVelocity[1])) ||
     140           0 :         !ReadParam(aMsg, aIter, &(aResult->linearVelocity[2])) ||
     141           0 :         !ReadParam(aMsg, aIter, &(aResult->linearAcceleration[0])) ||
     142           0 :         !ReadParam(aMsg, aIter, &(aResult->linearAcceleration[1])) ||
     143           0 :         !ReadParam(aMsg, aIter, &(aResult->linearAcceleration[2]))) {
     144           0 :       return false;
     145             :     }
     146           0 :     return true;
     147             :   }
     148             : };
     149             : 
     150             : template <>
     151             : struct ParamTraits<mozilla::gfx::VRFieldOfView>
     152             : {
     153             :   typedef mozilla::gfx::VRFieldOfView paramType;
     154             : 
     155           0 :   static void Write(Message* aMsg, const paramType& aParam)
     156             :   {
     157           0 :     WriteParam(aMsg, aParam.upDegrees);
     158           0 :     WriteParam(aMsg, aParam.rightDegrees);
     159           0 :     WriteParam(aMsg, aParam.downDegrees);
     160           0 :     WriteParam(aMsg, aParam.leftDegrees);
     161           0 :   }
     162             : 
     163           0 :   static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
     164             :   {
     165           0 :     if (!ReadParam(aMsg, aIter, &(aResult->upDegrees)) ||
     166           0 :         !ReadParam(aMsg, aIter, &(aResult->rightDegrees)) ||
     167           0 :         !ReadParam(aMsg, aIter, &(aResult->downDegrees)) ||
     168           0 :         !ReadParam(aMsg, aIter, &(aResult->leftDegrees))) {
     169           0 :       return false;
     170             :     }
     171             : 
     172           0 :     return true;
     173             :   }
     174             : };
     175             : 
     176             : template <>
     177             : struct ParamTraits<mozilla::gfx::VRControllerInfo>
     178             : {
     179             :   typedef mozilla::gfx::VRControllerInfo paramType;
     180             : 
     181             :   static void Write(Message* aMsg, const paramType& aParam)
     182             :   {
     183             :     WriteParam(aMsg, aParam.mType);
     184             :     WriteParam(aMsg, aParam.mControllerID);
     185             :     WriteParam(aMsg, aParam.mControllerName);
     186             :     WriteParam(aMsg, aParam.mMappingType);
     187             :     WriteParam(aMsg, aParam.mNumButtons);
     188             :     WriteParam(aMsg, aParam.mNumAxes);
     189             :   }
     190             : 
     191             :   static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
     192             :   {
     193             :     if (!ReadParam(aMsg, aIter, &(aResult->mType)) ||
     194             :         !ReadParam(aMsg, aIter, &(aResult->mControllerID)) ||
     195             :         !ReadParam(aMsg, aIter, &(aResult->mControllerName)) ||
     196             :         !ReadParam(aMsg, aIter, &(aResult->mMappingType)) ||
     197             :         !ReadParam(aMsg, aIter, &(aResult->mNumButtons)) ||
     198             :         !ReadParam(aMsg, aIter, &(aResult->mNumAxes))) {
     199             :       return false;
     200             :     }
     201             : 
     202             :     return true;
     203             :   }
     204             : };
     205             : 
     206             : template <>
     207             : struct ParamTraits<mozilla::gfx::VRSubmitFrameResultInfo>
     208             : {
     209             :   typedef mozilla::gfx::VRSubmitFrameResultInfo paramType;
     210             : 
     211           0 :   static void Write(Message* aMsg, const paramType& aParam)
     212             :   {
     213           0 :     WriteParam(aMsg, aParam.mBase64Image);
     214           0 :     WriteParam(aMsg, aParam.mFormat);
     215           0 :     WriteParam(aMsg, aParam.mWidth);
     216           0 :     WriteParam(aMsg, aParam.mHeight);
     217           0 :     WriteParam(aMsg, aParam.mFrameNum);
     218           0 :   }
     219             : 
     220           0 :   static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
     221             :   {
     222           0 :     if (!ReadParam(aMsg, aIter, &(aResult->mBase64Image)) ||
     223           0 :         !ReadParam(aMsg, aIter, &(aResult->mFormat)) ||
     224           0 :         !ReadParam(aMsg, aIter, &(aResult->mWidth)) ||
     225           0 :         !ReadParam(aMsg, aIter, &(aResult->mHeight)) ||
     226           0 :         !ReadParam(aMsg, aIter, &(aResult->mFrameNum))) {
     227           0 :       return false;
     228             :     }
     229             : 
     230           0 :     return true;
     231             :   }
     232             : };
     233             : 
     234             : } // namespace IPC
     235             : 
     236             : #endif // mozilla_gfx_vr_VRMessageUtils_h

Generated by: LCOV version 1.13