PlayerBase.h
- Committer:
- daan
- Date:
- 2011-10-31
- Revision:
- 0:01be2d5eaf72
- Child:
- 1:578d6bbe9f09
File content as of revision 0:01be2d5eaf72:
#ifndef PLAYER_BASE_H #define PLAYER_BASE_H #include "stdint.h" namespace olc { class PlayerBase { public: PlayerBase(); virtual void setGalvo(uint16_t x, uint16_t y); virtual void setLaserPower(uint16_t power); virtual void wait(uint16_t us); inline void penDown() { mPenDown = true; setLaserPower(mLaserPower); } inline void penUp() { mPenDown = false; setLaserPower(0); } void setData(uint8_t *data, int size); void setStepSize(uint16_t s) { mStepSize = s; }; uint16_t getStepSize() { return mStepSize; }; void setDelay(uint16_t ms) { mDelay = ms; }; void reset(); bool hasNext(); bool playOne(); protected: void rasterLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, int step=1); inline virtual int bytesLeft() { return mSize - mPlayHead; } inline virtual uint8_t get() { mPlayHead++; return mData[mPlayHead-1]; } inline uint16_t decodeU16() { uint16_t i; // i = (((uint16_t)get()) << 8) + get(); // mbed i = (uint16_t)get() << 8; i |= (uint16_t)get(); return i; } uint8_t *mData; int mSize; int mPlayHead; bool mPenDown; uint16_t mLaserPower; uint16_t mGalvoX; uint16_t mGalvoY; uint16_t mDelay; uint16_t mStepSize; }; }; // end namespace ol #endif // PLAYER_BASE_H