diff options
Diffstat (limited to 'SrcShared/CGremlins.h')
-rw-r--r-- | SrcShared/CGremlins.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/SrcShared/CGremlins.h b/SrcShared/CGremlins.h new file mode 100644 index 0000000..6d496e6 --- /dev/null +++ b/SrcShared/CGremlins.h @@ -0,0 +1,94 @@ +/* -*- mode: C++; tab-width: 4 -*- */ +/* ===================================================================== *\ + Copyright (c) 1998-2001 Palm, Inc. or its subsidiaries. + All rights reserved. + + This file is part of the Palm OS Emulator. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. +\* ===================================================================== */ + +#ifndef _CGREMLINS_H_ +#define _CGREMLINS_H_ + +#include "EmStream.h" +#include "EmStructs.h" // GremlinEventList + +class SessionFile; + + +extern unsigned long int gGremlinNext; + +class Gremlins +{ +public: + Gremlins(); + ~Gremlins(); + + void New(const GremlinInfo& info); + + Boolean IsInitialized() const; + void Initialize(UInt16 newNumber = -1, UInt32 untilStep = -1, UInt32 finalVal = -1); + void Reset (void); + + void Save(SessionFile &f); + Boolean Load(SessionFile &f); + + void Status(UInt16 *currentNumber, UInt32 *currentStep, + UInt32 *currentUntil); + Boolean SetSeed(UInt32 newSeed); + void SetUntil(UInt32 newUntil); + void RestoreFinalUntil(void); + + void Step(); + void Resume(); + void Stop(); + + Boolean GetFakeEvent(); + void GetPenMovement(); + Boolean SendCharsToType(); + + void BumpCounter(); + + UInt32 GetStartTime() { return gremlinStartTime; } + UInt32 GetStopTime() { return gremlinStopTime; } + + +private: + + UInt16 keyProbabilitiesSum; // The sum of all the key possiblities. +// PointType lastPoint; // The previous point enqueued to TD. + Int16 lastPointX, lastPointY; + Boolean lastPenDown; // TRUE - last point caused a penDownEvent, FALSE - pen is up or already down. + UInt16 number; // the random seed (-1 means not started) + UInt32 counter; // The number of "events" produced by Gremlins. + UInt32 until; // The maximum number of "events" to produce. + UInt32 finalUntil; // As above, but not manipulated, as until is by Hordes + UInt32 saveUntil; + Boolean inited; // TRUE - Gremlins has been initialized, FALSE - not inited. + Boolean catchUp; // TRUE - Event loop needs time to catch up, FALSE - event loop doesn't need time. + Boolean needPenUp; // TRUE - A pen up need to be enqueued, FALSE - pen up doesn't need to be enqueued. + char charsToType[2048]; // Chars to send to the emulator. + + UInt32 gremlinStartTime; + UInt32 gremlinStopTime; +}; + + +#ifdef __cplusplus +extern "C" { +#endif + +extern void GremlinsSendEvent (void); + +extern void GremlinsProcessPacket (void* pktBodyP); + +#ifdef __cplusplus +} +#endif + + +#endif /* _CGREMLINS_H_ */ |