PlayerBase.h@0:01be2d5eaf72, 2011-10-31 (annotated)
- Committer:
- daan
- Date:
- Mon Oct 31 02:34:13 2011 +0000
- Revision:
- 0:01be2d5eaf72
- Child:
- 1:578d6bbe9f09
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
daan | 0:01be2d5eaf72 | 1 | #ifndef PLAYER_BASE_H |
daan | 0:01be2d5eaf72 | 2 | #define PLAYER_BASE_H |
daan | 0:01be2d5eaf72 | 3 | |
daan | 0:01be2d5eaf72 | 4 | #include "stdint.h" |
daan | 0:01be2d5eaf72 | 5 | |
daan | 0:01be2d5eaf72 | 6 | namespace olc { |
daan | 0:01be2d5eaf72 | 7 | |
daan | 0:01be2d5eaf72 | 8 | class PlayerBase |
daan | 0:01be2d5eaf72 | 9 | { |
daan | 0:01be2d5eaf72 | 10 | public: |
daan | 0:01be2d5eaf72 | 11 | PlayerBase(); |
daan | 0:01be2d5eaf72 | 12 | |
daan | 0:01be2d5eaf72 | 13 | virtual void setGalvo(uint16_t x, uint16_t y); |
daan | 0:01be2d5eaf72 | 14 | virtual void setLaserPower(uint16_t power); |
daan | 0:01be2d5eaf72 | 15 | virtual void wait(uint16_t us); |
daan | 0:01be2d5eaf72 | 16 | |
daan | 0:01be2d5eaf72 | 17 | inline void penDown() { |
daan | 0:01be2d5eaf72 | 18 | mPenDown = true; |
daan | 0:01be2d5eaf72 | 19 | setLaserPower(mLaserPower); |
daan | 0:01be2d5eaf72 | 20 | } |
daan | 0:01be2d5eaf72 | 21 | inline void penUp() { |
daan | 0:01be2d5eaf72 | 22 | mPenDown = false; |
daan | 0:01be2d5eaf72 | 23 | setLaserPower(0); |
daan | 0:01be2d5eaf72 | 24 | } |
daan | 0:01be2d5eaf72 | 25 | |
daan | 0:01be2d5eaf72 | 26 | void setData(uint8_t *data, int size); |
daan | 0:01be2d5eaf72 | 27 | void setStepSize(uint16_t s) { mStepSize = s; }; |
daan | 0:01be2d5eaf72 | 28 | uint16_t getStepSize() { return mStepSize; }; |
daan | 0:01be2d5eaf72 | 29 | void setDelay(uint16_t ms) { mDelay = ms; }; |
daan | 0:01be2d5eaf72 | 30 | void reset(); |
daan | 0:01be2d5eaf72 | 31 | bool hasNext(); |
daan | 0:01be2d5eaf72 | 32 | bool playOne(); |
daan | 0:01be2d5eaf72 | 33 | |
daan | 0:01be2d5eaf72 | 34 | protected: |
daan | 0:01be2d5eaf72 | 35 | void rasterLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, int step=1); |
daan | 0:01be2d5eaf72 | 36 | |
daan | 0:01be2d5eaf72 | 37 | |
daan | 0:01be2d5eaf72 | 38 | inline virtual int bytesLeft() { |
daan | 0:01be2d5eaf72 | 39 | return mSize - mPlayHead; |
daan | 0:01be2d5eaf72 | 40 | } |
daan | 0:01be2d5eaf72 | 41 | inline virtual uint8_t get() { |
daan | 0:01be2d5eaf72 | 42 | mPlayHead++; |
daan | 0:01be2d5eaf72 | 43 | return mData[mPlayHead-1]; |
daan | 0:01be2d5eaf72 | 44 | } |
daan | 0:01be2d5eaf72 | 45 | |
daan | 0:01be2d5eaf72 | 46 | inline uint16_t decodeU16() { |
daan | 0:01be2d5eaf72 | 47 | uint16_t i; |
daan | 0:01be2d5eaf72 | 48 | // i = (((uint16_t)get()) << 8) + get(); |
daan | 0:01be2d5eaf72 | 49 | // mbed |
daan | 0:01be2d5eaf72 | 50 | i = (uint16_t)get() << 8; |
daan | 0:01be2d5eaf72 | 51 | i |= (uint16_t)get(); |
daan | 0:01be2d5eaf72 | 52 | return i; |
daan | 0:01be2d5eaf72 | 53 | } |
daan | 0:01be2d5eaf72 | 54 | |
daan | 0:01be2d5eaf72 | 55 | |
daan | 0:01be2d5eaf72 | 56 | uint8_t *mData; |
daan | 0:01be2d5eaf72 | 57 | int mSize; |
daan | 0:01be2d5eaf72 | 58 | int mPlayHead; |
daan | 0:01be2d5eaf72 | 59 | |
daan | 0:01be2d5eaf72 | 60 | bool mPenDown; |
daan | 0:01be2d5eaf72 | 61 | uint16_t mLaserPower; |
daan | 0:01be2d5eaf72 | 62 | uint16_t mGalvoX; |
daan | 0:01be2d5eaf72 | 63 | uint16_t mGalvoY; |
daan | 0:01be2d5eaf72 | 64 | uint16_t mDelay; |
daan | 0:01be2d5eaf72 | 65 | uint16_t mStepSize; |
daan | 0:01be2d5eaf72 | 66 | }; |
daan | 0:01be2d5eaf72 | 67 | |
daan | 0:01be2d5eaf72 | 68 | |
daan | 0:01be2d5eaf72 | 69 | }; // end namespace ol |
daan | 0:01be2d5eaf72 | 70 | |
daan | 0:01be2d5eaf72 | 71 | #endif // PLAYER_BASE_H |