HidReport.h
author StephaneLenclud
Tue, 10 Feb 2015 17:14:09 +0100
changeset 35 638eb0763e20
parent 0 0f874d9e4130
permissions -rw-r--r--
Liscense and Copyright fix.
     1 //
     2 // Copyright (C) 2014-2015 Stéphane Lenclud.
     3 //
     4 // This file is part of MiniDisplay.
     5 //
     6 // MiniDisplay is free software: you can redistribute it and/or modify
     7 // it under the terms of the GNU General Public License as published by
     8 // the Free Software Foundation, either version 3 of the License, or
     9 // (at your option) any later version.
    10 //
    11 // MiniDisplay is distributed in the hope that it will be useful,
    12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 // GNU General Public License for more details.
    15 //
    16 // You should have received a copy of the GNU General Public License
    17 // along with MiniDisplay.  If not, see <http://www.gnu.org/licenses/>.
    18 //
    19 
    20 
    21 #ifndef HID_REPORT_H
    22 #define HID_REPORT_H
    23 
    24 #include <string.h>
    25 
    26 /**
    27 Define an HID report.
    28 Can be used as input and output.
    29 */
    30 template <int S>
    31 class HidReport
    32     {
    33 public:
    34     HidReport(){Reset();}
    35     void Reset();
    36     inline unsigned char& operator[](int aIndex){return iBuffer[aIndex];}
    37     const unsigned char* Buffer() const {return iBuffer;}
    38     unsigned char* Buffer() {return iBuffer;}
    39     int Size() {return S;}
    40 protected:
    41     unsigned char iBuffer[S];
    42     };
    43 
    44 template <int S>
    45 void HidReport<S>::Reset()
    46     {
    47     memset(iBuffer,0,sizeof(iBuffer));
    48     }
    49 
    50 
    51 #endif