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?

UserRevisionLine numberNew 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