LD32.H 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964
  1. /*
  2. LICENSE
  3. -------
  4. Copyright 2005 Nullsoft, Inc.
  5. All rights reserved.
  6. Redistribution and use in source and binary forms, with or without modification,
  7. are permitted provided that the following conditions are met:
  8. * Redistributions of source code must retain the above copyright notice,
  9. this list of conditions and the following disclaimer.
  10. * Redistributions in binary form must reproduce the above copyright notice,
  11. this list of conditions and the following disclaimer in the documentation
  12. and/or other materials provided with the distribution.
  13. * Neither the name of Nullsoft nor the names of its contributors may be used to
  14. endorse or promote products derived from this software without specific prior written permission.
  15. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
  16. IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  17. FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  18. CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  19. DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  20. DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
  21. IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  23. */
  24. #define LDDLL_PREFIX
  25. /*************************************************************************
  26. * Helpful Stuff *
  27. **************************************************************************/
  28. /*
  29. This header file defines a prefix. This is used by C++ programs to append a prefix to the definitions.
  30. For C programs that use the LD2000.H file and associated library, use the following
  31. #define LDDLL_PREFIX //Define the prefix in LD2000.H file as nothing
  32. #include "ld2000.h"
  33. For C++ programs, use the following
  34. #define LDDLL_PREFIX extern "C" //Define the prefix in LD2000.H file as extern "C" to indicate that the names in the lib file have not been mangled
  35. #include "ld2000.h"
  36. */
  37. /*************************************************************************
  38. * Error Codes *
  39. **************************************************************************/
  40. #define LDERR_OK 0 //Normal Return value
  41. //********** These can occur at any time except InitialQMCheck ****
  42. #define LDERR_FIFO_READ_ERROR -1 //Fifo read zero or non even number of bytes
  43. #define LDERR_QM32_SOFTWARE_ERROR -2 //QM32 is not responding properly
  44. //********** These are reported by the loaders including LoadPalette
  45. #define LDERR_X29_LOADED -11 //File load Successful Return
  46. #define LDERR_LDA_LOADED -12 //values
  47. #define LDERR_ILDA_LOADED -13
  48. #define LDERR_DEC3_LOADED -14
  49. #define LDERR_LDB_LOADED -15
  50. #define LDERR_LDSECURE_LOADED -16
  51. //********* Returned by ConvertToPointFrame **************
  52. #define LDERR_ALREADY_POINT_ORIENTED -31 //Incase somebody tries to
  53. //create a point oriented frame
  54. //from a point oriented frame
  55. //******** Currently only returned by CheckSession **************
  56. #define LDERR_NO_SESSION_IN_PROG -101 //CheckSession return value
  57. //******** Returned by LFileRequest and LPaletteRequest *********
  58. #define LDERR_FILE_REQUEST_CANCEL -201 //File Requestor Cancelled
  59. //********* Returned by file functions **************************
  60. #define LDERR_FILE_NOT_FOUND -401 //Loader errors
  61. #define LDERR_WRONG_FILE_TYPE -402
  62. #define LDERR_DISK_FULL -403
  63. #define LDERR_DISK_WRITE_PROTECTED -404
  64. #define LDERR_FILE_WRITE_PROTECTED -405
  65. #define LDERR_MISC_FILE_ERROR -406
  66. #define LDERR_STRING_TOO_LONG -407 //Supplied filename is over 128 chars in length
  67. //*********** Returned by frame commands such as DisplayFrame ***
  68. #define LDERR_FRAME_OUT_OF_RANGE -501 //Misc programming or config errors
  69. //*********** Returned by point commands such as writepoint *****
  70. #define LDERR_POINT_OUT_OF_RANGE -502
  71. //*********** Returned by show control commands *****************
  72. #define LDERR_TDC_NOT_FOUND -511
  73. #define LDERR_TRANSITION_NOT_FOUND -512
  74. #define LDERR_EFFECT_NOT_FOUND -513
  75. #define LDERR_SCENE_NOT_FOUND -514
  76. #define LDERR_MODULE_NOT_FOUND -515
  77. #define LDERR_SHOW_NOT_FOUND -516
  78. #define LDERR_STRUCTURE_NOT_FOUND -519
  79. //Once the element has been deleted, this will be returned
  80. #define LDERR_EFFECT_DELETED -530
  81. #define LDERR_SCENE_DELETED -531
  82. #define LDERR_MODULE_DELETED -532
  83. #define LDERR_SHOW_DELETED -533
  84. #define LDERR_STRUCTURE_DELETED -539
  85. //If you try to delete something which is inuse one of these will be returned
  86. #define LDERR_EFFECT_INUSE -540
  87. #define LDERR_SCENE_INUSE -541
  88. #define LDERR_MODULE_INUSE -542
  89. #define LDERR_SHOW_INUSE -543
  90. #define LDERR_STRUCTURE_INUSE -549
  91. //*********** These should be rare indeed ***********************
  92. #define LDERR_NO_IBM_MEMORY -601 //No free IBM Memory
  93. #define LDERR_CANT_OPEN_WINDOW -602 //Can't open Window (Debug, FileRequest)
  94. //*********** Alot of commands can return this one **************
  95. #define LDERR_NO_QM32_MEMORY -702 //No free QM32 Memory
  96. //*********** Ran out of memory while trying to load a file *****
  97. #define LDERR_FILE_TOO_LARGE -703 //No free QM32 Memory to load frames
  98. //********** Several unimplemented DLL commands return this *****
  99. #define LDERR_NOT_IMPLEMENTED -801 //DLL Command not implemented
  100. //*** This indicates a timeout during a long communication with the QM32
  101. //*** This only occurs during file loading and saving and ActiveArray functions
  102. #define LDERR_QM32_ERROR -901 //QM32 Communication error
  103. //***** These should only be returned by InitialQMCheck *********
  104. #define LDERR_QM32_NOT_PRESENT -1001 //QM32 is not present (like it sounds)
  105. #define LDERR_QM32_ADDRESS_CONFLICT -1002 //QM32 is not responding properly
  106. #define LDERR_QM32_INITIALIZATION_ERROR -1003 //Same as above, but even weirder
  107. /*************************************************************************
  108. * QM32 Error Codes *
  109. **************************************************************************/
  110. //*** This is a sure sign of QM32 hardware trouble
  111. #define QM32ERROR_NullCommand 1
  112. //*** Usually because of no laser code running in the QM32 but could
  113. //*** be caused by a DLL / Q32 mismatch.
  114. #define QM32ERROR_UndefinedCommand 2
  115. //*** Should only occur during BeginSession. This indicates that a
  116. //*** communications error has occured while loading the file LD.Q32
  117. #define QM32ERROR_DownloadBad 3
  118. #define QM32ERROR_ChecksumBad 4
  119. //*** This is usually caused by a DLL / Q32 mismatch. If it happens
  120. //*** inconsistantly then this could be a sign of QM32 hardware trouble
  121. #define QM32ERROR_Insufficient 5
  122. //*** When the QM32 is reset it does 3 ram tests. If one of them fails, this
  123. //*** would be returned. This is a sign of QM32 hardware trouble.
  124. #define QM32ERROR_DramTestBad 6
  125. //*** If somebody tampers with the rom chip, this would be returned. Actually
  126. //*** nothing may be returned because the QM32 would probably lock up.
  127. #define QM32ERROR_RomTestBad 7
  128. //*** This is equivalent to the Amiga's GURU meditation. It occurs when some
  129. //*** kind of QM32 software violates the system. (divide by zero, access to memory that isn't there, etc.)
  130. //*** In certain circomstances, it may also be caused by a hardware problem.
  131. #define QM32ERROR_AccessError 8
  132. //***************************************************************************
  133. // Flags used by RedrawFrameFast and other things *
  134. //***************************************************************************
  135. #define RFF_NOBLIT 64 //RedrawFrameFast should not copy the bitmap to the screen
  136. #define RFF_NOINITMINMAX 128 //RedrawFrameFast should not init Min and Max variables to 0
  137. #define RFF_DOUBLEBUFFER 2048 //RedrawFrameFast should use double buffering
  138. #define RFF_WHITEDOT 8192 //RedrawFrame should place a white dot at the first point
  139. #define RFF_MONITORPZ 32768 //RedrawFrame should use the laser coordinates from the monitor buffer and not the laser coordinates
  140. #define RFF_GRAYBLANKING 65536 //Show blanking lines as gray lines
  141. #define RFF_SELECTEDZONES 131072 //Show only the selected zones, supplied in the Frame parameter of RedrawFrameFast
  142. //***************************************************************************
  143. // Flags used by DisplayUpdateEx and sometimes by PlayShowEx *
  144. //***************************************************************************
  145. #define DU_LASEROUTPUT 1 //DisplayUpdate should show laser output
  146. #define DU_BEGINSLEW 16 //DisplayUpdate should slew beginning blanked points leading up to the first track
  147. #define DU_CUTSCAN 256 //DisplayUpdate should immediately stop scanning buffer and start a new buffer
  148. /**************************************************************************
  149. * Structures *
  150. ***************************************************************************/
  151. typedef struct tagDMXCHANNELMAP{
  152. LONG Function;
  153. SHORT SlewRate;
  154. SHORT Mode;
  155. LONG Reserved1;
  156. LONG Reserved2;
  157. LONG Reserved3;
  158. LONG StartupSource;
  159. LONG StartupValue;
  160. LONG ShutdownSource;
  161. LONG ShutdownValue;
  162. LONG ESTOPSource;
  163. LONG ESTOPValue;
  164. LONG DeselectedSource;
  165. LONG DeselectedValue;
  166. LONG Source;
  167. LONG Value;
  168. LONG STMin;
  169. LONG DMXMin;
  170. LONG STMax;
  171. LONG DMXMax;
  172. LONG STOrigin;
  173. LONG STExtent;
  174. LONG DMXOrigin;
  175. LONG DMXExtent;
  176. LONG DMXExtentOV2;
  177. } DMXCHANNELMAP;
  178. typedef struct tagDMXMAP{
  179. SHORT Reserved1;
  180. SHORT NumChannels;
  181. SHORT Reserved2;
  182. SHORT StartingChannel;
  183. SHORT Reserved3;
  184. SHORT DeviceType;
  185. SHORT Reserved4;
  186. SHORT Nondisplayed;
  187. } DMXMAP;
  188. typedef struct tagPROJECTIONZONE{
  189. LONG Scanner; //Scanner for output
  190. LONG XSize; //Geometric Correction variable -- X Size
  191. LONG YSize; //Geometric Correction variable -- Y Size
  192. LONG XPosition; //Geometric Correction variable -- X Position
  193. LONG YPosition; //Geometric Correction variable -- Y Position
  194. LONG ZRotation; //Geometric Correction variable -- Z Rotation angle
  195. LONG XLinearity; //Geometric Correction variable -- X Linearity
  196. LONG YLinearity; //Geometric Correction variable -- Y Linearity
  197. LONG XKeystone; //Geometric Correction variable -- X Keystone
  198. LONG YKeystone; //Geometric Correction variable -- Y Keystone
  199. //10
  200. LONG XPincussion; //Geometric Correction variable -- X Pin
  201. LONG YPincussion; //Geometric Correction variable -- Y Pin
  202. LONG XPincussionOffset; //Geometric Correction variable -- X Pin Offset
  203. LONG YPincussionOffset; //Geometric Correction variable -- Y Pin Offset
  204. LONG XBow; //Geometric Correction variable -- X Bow
  205. LONG YBow; //Geometric Correction variable -- Y Bow
  206. LONG XBowOffset; //Geometric Correction variable -- X Bow Offset
  207. LONG YBowOffset; //Geometric Correction variable -- Y Bow Offset
  208. LONG XShear; //Geometric Correction variable -- X Shear
  209. LONG YShear; //Geometric Correction variable -- Y Shear
  210. //20
  211. LONG XSymmetry; //Geometric Correction variable -- X Symmetry
  212. LONG YSymmetry; //Geometric Correction variable -- Y Symmetry
  213. LONG Reserved1; //Geometric Correction variable -- Reserved for future use
  214. LONG Reserved2; //Geometric Correction variable -- Reserved for future use
  215. LONG NoMinimumPointsFlag; //BOOL: Don't require minimum points during DisplayUpdate
  216. LONG AllowManipulationsFlag; //BOOL: Allow Scale, Rotate, Position, Perspective and other effects.
  217. LONG AllowMasterResizeFlag; //BOOL: Allow the master size and position controls to affect this projection zone
  218. LONG UseGeometricCorrectionData; //BOOL: Observe geometric correction data when calculating beam position
  219. LONG PreviewWindowXSize; //X Size of the image drawn on the preview window
  220. LONG PreviewWindowYSize; //Y Size of the image drawn on the preview window
  221. //30
  222. LONG PreviewWindowXPosition; //X Position of the image drawn on the preview window
  223. LONG PreviewWindowYPosition; //Y Position of the image drawn on the preview window
  224. LONG PreviewWindowXProjectorPosition; //X Position of the center of all of the beam lines
  225. LONG PreviewWindowYProjectorPosition; //Y Position of the center of all of the beam lines
  226. LONG PreviewWindowMirrorXOutput; //BOOL: Produce a duplicate output with mirrored X output
  227. LONG PreviewWindowMirrorXProjector; //BOOL: Produce a duplicate output with mirrored X position
  228. LONG PreviewWindowShowAsBeamsFlag; //BOOL: When drawing on the preview window, show this as beams
  229. LONG ScannerOptimizer; //BOOL: Optimize blanking path within this projection zone
  230. LONG UseProtectionData; //BOOL: Observe protection data when calculating brightness
  231. LONG Reserved7; //Reserved for future use
  232. //40 long words = 160 bytes
  233. LONG Reserved8; //Reserved for future use
  234. LONG Reserved9;
  235. LONG Reserved10;
  236. LONG Reserved11;
  237. LONG Reserved12;
  238. char Name[24]; //40 byte name field
  239. char Reserved200[200]; //200 reserved bytes
  240. short GeometricCorrectionData[8450]; //65*65*2 integers for geometric correction
  241. char ProtectionZoneData[4096]; //64*64=4096 bytes for protection zone bitmap
  242. } PROJECTIONZONE;
  243. typedef struct tagCOLORREGSTRUCT{
  244. LONG ColorIndex;
  245. LONG RedScreenVal;
  246. LONG GreenScreenVal;
  247. LONG BlueScreenVal;
  248. LONG RedLaserVal;
  249. LONG GreenLaserVal;
  250. LONG BlueLaserVal;
  251. LONG DeepBlueLaserVal;
  252. LONG YellowLaserVal;
  253. LONG FocusLaserVal;
  254. LONG IntensityLaserVal;
  255. LONG ShutterLaserVal;
  256. } COLORREGSTRUCT;
  257. typedef struct tagPTSTRUCT{
  258. LONG XCoord;
  259. LONG YCoord;
  260. LONG ZCoord;
  261. LONG FCoord;
  262. LONG RGBValue;
  263. LONG X3DCoord;
  264. LONG Y3DCoord;
  265. LONG Group;
  266. LONG Status;
  267. } PTSTRUCT;
  268. typedef struct tagFRAMESTRUCT{
  269. LONG VOFlag;
  270. LONG ScanRateMultiplier;
  271. LONG AbstractFlag;
  272. LONG NumPoints;
  273. char FrameNote[24];
  274. } FRAMESTRUCT;
  275. typedef struct tagFRAMESTRUCTEX{
  276. LONG ChangedFlag; //Indicates that this frame has changed since the last time it was saved. This is read-only.
  277. LONG ThreeDFlag; //Indicates that this frame is stored internally as 3D data. This is read-only.
  278. LONG BeamBrushFlag; //Indicates that this frame stores beam brush points internally. This is read-only.
  279. LONG VectorFlag; //Indicates that this frame is to be rendered using the vector renderer. This is read/write.
  280. LONG AbstractFlag; //Indicates that this frame has additional abstract information and that this should be rendered as an abstract.
  281. LONG DMXFlag; //Indicates that this frame has DMX data in addition to point and perhaps abstract data.
  282. LONG RasterFlag; //Indicates that this frame is a raster frame. No special internal handling is done at this time.
  283. LONG MaxRenderedFlag; //Indicates that this frame was rendered by 3D Studio MAX.
  284. LONG SecureFrameFlag; //Indicates that this frame is secured.
  285. LONG Reserved3; //Reserved for future use
  286. LONG PreferredPalette; //Palette that this frame will use unless overridden by Track.
  287. LONG PreferredProjectionZone; //Projection zone that this frame will be projected onto unless overridden by track.
  288. LONG AnimationCount; //Number of frames to the end of the animation. Range is 0 to 65535.
  289. LONG ClipartClass; //Number, usually bit-encoded, that describes the frame. This is only 16-bits internally.
  290. LONG ScanRate; //Scan rate for this frame. If positive, handled as a multiplier. If negative, treated as exact sample rate in 1K increments.
  291. LONG NumPoints; //Number of data points in this frame.
  292. char FrameNote[24]; //23 character, plus null, frame note.
  293. } FRAMESTRUCTEX;
  294. //*************************************************************************
  295. //* Constants
  296. //*************************************************************************
  297. #define frontview 1
  298. #define topview 2
  299. #define sideview 3
  300. #define threeDview 4
  301. #define BLACK RGB(0,0,0)
  302. #define DARKGRAY RGB(128,128,128)
  303. #define LIGHTGRAY RGB(192,192,192)
  304. #define WHITE RGB(255, 255, 255)
  305. //**********************************************************************************
  306. // LD2000.DLL API Functions
  307. //**********************************************************************************
  308. //-------------------------------------------------------------------------------------------
  309. // LD Comm Window Functions
  310. //-------------------------------------------------------------------------------------------
  311. LDDLL_PREFIX LONG WINAPI OpenLDCommWindow(void);
  312. LDDLL_PREFIX LONG WINAPI CloseLDCommWindow(void);
  313. LDDLL_PREFIX LONG WINAPI WriteToLDCommWindow(LPSTR SUPPLY_OutputString);
  314. LDDLL_PREFIX LONG WINAPI QM32BeepOnError(LONG OnOff); //Controls whether or not the Comm window automatically opens
  315. //--------------------------------------------------------------------------------------------
  316. // Port functions. Only used in the Interactive Character project.
  317. //--------------------------------------------------------------------------------------------
  318. LDDLL_PREFIX unsigned short WINAPI ldInp(unsigned short PortID);
  319. LDDLL_PREFIX unsigned short WINAPI ldInpw(unsigned short PortID);
  320. LDDLL_PREFIX unsigned short WINAPI ldOutp(unsigned short PortID, short DataByte);
  321. LDDLL_PREFIX unsigned short WINAPI ldOutpw(unsigned short PortID, unsigned short DataWord);
  322. //--------------------------------------------------------------------------------------------
  323. // Status and setting and retrieval
  324. //--------------------------------------------------------------------------------------------
  325. LDDLL_PREFIX LONG WINAPI GetLDStatus(LPLONG RETURN_LDStatus);
  326. LDDLL_PREFIX LONG WINAPI GetDates(LPLONG RETURN_DLLDate, LPLONG RETURN_LibDate, LPLONG RETURN_RomDate);
  327. LDDLL_PREFIX LONG WINAPI GetSerialNumber(LPLONG RETURN_SerialNumber);
  328. //------------------------------------------------------------------------------------------
  329. // QuadMod and session functions
  330. //------------------------------------------------------------------------------------------
  331. LDDLL_PREFIX LONG WINAPI GetLDDLLModuleUsage(LPLONG ModuleUsage);
  332. LDDLL_PREFIX LONG WINAPI QM32AvailMemEx(LPLONG RETURN_TotalMemory, LPLONG RETURN_TotalFreeMemory, LPLONG RETURN_LargestBlock, LPLONG RETURN_NumFreeBlocks);
  333. LDDLL_PREFIX LONG WINAPI QM32DefragmentMem(LPLONG RETURN_NumBlocksCombined);
  334. LDDLL_PREFIX LONG WINAPI RebootQM32(void);
  335. LDDLL_PREFIX LONG WINAPI InitialQMCheck(LPLONG RETURN_LDStatus);
  336. LDDLL_PREFIX LONG WINAPI BeginSession(LONG MaxFrames, LONG MaxPoints, LONG MaxBuffer, LONG UndoFrames, LPLONG RETURN_LDStatus);
  337. LDDLL_PREFIX LONG WINAPI CheckSession(LPLONG RETURN_LDStatus);
  338. LDDLL_PREFIX LONG WINAPI CheckSessionSettings(LPLONG RETURN_MaxFrames, LPLONG RETURN_MaxPoints, LPLONG RETURN_MaxBuffer, LPLONG RETURN_UndoFrames, LPLONG RETURN_LDStatus);
  339. LDDLL_PREFIX LONG WINAPI EndSession(void);
  340. LDDLL_PREFIX LONG WINAPI BeginSessionEx(LPLONG RETURN_Version, LPLONG RETURN_MaxFrames, LPLONG RETURN_MaxPoints, LPLONG RETURN_MaxBuffer, LPLONG RETURN_UndoFrames, LPLONG RETURN_LDStatus);
  341. //Does everything necessary to start a session including checking settings and loading parameters from INI file including palette and geometric correction data
  342. //------------------------------------------------------------------------------------------
  343. // Working Scanners, Tracks, Frames
  344. //------------------------------------------------------------------------------------------
  345. LDDLL_PREFIX LONG WINAPI SetWorkingScanners(LONG Scanner);
  346. LDDLL_PREFIX LONG WINAPI GetWorkingScanners(LONG *RETURN_ScannerSelection);
  347. LDDLL_PREFIX LONG WINAPI SetWorkingTracks(LONG Track);
  348. LDDLL_PREFIX LONG WINAPI SetWorkingFrame(LONG FrameNumber);
  349. LDDLL_PREFIX LONG WINAPI GetWorkingFrame(LPLONG RETURN_Frame);
  350. //-------------------------------------------------------------------------------------------
  351. // Projection Zone Functions
  352. //-------------------------------------------------------------------------------------------
  353. LDDLL_PREFIX LONG WINAPI ReadProjectionZone(LONG ZoneNumber, PROJECTIONZONE *RETURN_PZ);
  354. LDDLL_PREFIX LONG WriteProjectionZone(LONG ZoneNumber, PROJECTIONZONE *SUPPLY_PZ);
  355. LDDLL_PREFIX LONG WINAPI LoadProjectionZones(LPSTR ZoneFilename, LPLONG RETURN_LDStatus);
  356. LDDLL_PREFIX LONG WINAPI SaveProjectionZones(LPSTR ZoneFilename, LPLONG RETURN_LDStatus);
  357. //-----------------------------------------------------------------------------------------
  358. // Showtime Synchronization Functions
  359. //-----------------------------------------------------------------------------------------
  360. LDDLL_PREFIX LONG WINAPI QM32MultiCommand(LONG Allow);
  361. LDDLL_PREFIX LONG WINAPI SetSyncParameters(LONG Proportional, LONG Integral, LONG Derivative);
  362. LDDLL_PREFIX LONG WINAPI SendSync(LONG CurrentTime);
  363. LDDLL_PREFIX LONG WINAPI SendMultiSync(LONG CurrentTime);
  364. LDDLL_PREFIX LONG WINAPI GetShowTimeMilliseconds(LPLONG RETURN_CurrentTime);
  365. LDDLL_PREFIX LONG WINAPI GetQMEvents(LPLONG RETURN_nEvents, LPSTR RETURN_MIDIEventStruct);
  366. LDDLL_PREFIX LONG WINAPI SendSyncGetQMEvents(LONG CurrentTime, LPLONG RETURN_nEvents, LPSTR RETURN_MIDIEventStruct);
  367. //--------------------------------------------------------------------------------------------
  368. // Showtime operation functions
  369. //--------------------------------------------------------------------------------------------
  370. LDDLL_PREFIX LONG WINAPI SetResetTTL(LONG IOMask, LONG OutputData); //This may go away
  371. LDDLL_PREFIX LONG WINAPI PlayShowEx(LONG StartTime, LONG EndTime, LONG PlaySpeed, LONG Mode);
  372. LDDLL_PREFIX LONG WINAPI StopShow(void); //Correct way to stop a show in progress.
  373. LDDLL_PREFIX LONG WINAPI StopShowEx(LONG Mode); //Mode parameter allows you to skip the final refresh after PlayShow has ended.
  374. //--------------------------------------------------------------------------------------------
  375. // Showtime file functions
  376. //--------------------------------------------------------------------------------------------
  377. LDDLL_PREFIX LONG WINAPI LoadShowStructures(LPSTR Filename, LONG StructureTypes, LPLONG RETURN_LDStatus);
  378. LDDLL_PREFIX LONG WINAPI SaveShowStructures(LPSTR Filename, LONG StructureTypes, LPINT RETURN_LDStatus);
  379. //--------------------------------------------------------------------------------------------
  380. // Laser Display Functions
  381. //--------------------------------------------------------------------------------------------
  382. LDDLL_PREFIX LONG WINAPI ResetLD(void); //Updates all track variables
  383. LONG WINAPI DisplayGeometricCorrection( long Enable, long YLine, short *GeometryData); //GeometryData must be in device coordinates
  384. LDDLL_PREFIX LONG WINAPI DisplaySize( float XSize, float YSize, float ZSize, float CSize, float FSize); // Normalized Variables
  385. LDDLL_PREFIX LONG WINAPI DisplayPosition( float XPosition, float YPosition ); // Normalized Variables
  386. LDDLL_PREFIX LONG WINAPI DisplayAuxOutput(float OutputVoltage);
  387. LDDLL_PREFIX LONG WINAPI lsDisplayAuxOutput(float OutputVoltage, float ZSize, float ZOffset);
  388. LDDLL_PREFIX LONG WINAPI DisplayMasterAngle(float XAngle, float YAngle, float ZAngle); //Normalized
  389. LDDLL_PREFIX LONG WINAPI DisplayFreq3(long PointFreq, long VectorFreq, long AbstractFreq, LPLONG RETURN_ActualPointFreq, LPLONG RETURN_ActualVectorFreq, LPLONG RETURN_ActualAbstractFreq);
  390. LDDLL_PREFIX LONG WINAPI DisplayScanLimits(LONG FromPt, LONG ToPt);
  391. LDDLL_PREFIX LONG WINAPI DisplayObjectSettings(LONG VisibleBeginEmph, LONG VisibleMiddleEmph,
  392. LONG VisibleEndEmph, LONG VisibleDensity,
  393. LONG BlankedBeginEmph, LONG BlankedEndEmph,
  394. LONG BlankedDensity);
  395. LDDLL_PREFIX LONG WINAPI DisplayAbstractSettings(LONG NumVisible, LONG NumOverscan, LONG NumOverlap);
  396. LDDLL_PREFIX LONG WINAPI DisplayFlags(LONG Flags);
  397. LDDLL_PREFIX LONG WINAPI SetGetDisplayFlags(LONG Mode, LONG TrackNumber, LPLONG RETURN_Flags);
  398. LDDLL_PREFIX LONG WINAPI DisplayMaskFlags(LONG MaskFlags);
  399. LDDLL_PREFIX LONG WINAPI DisplayScale(float XScale, float YScale, float ZScale); //Normalized
  400. LDDLL_PREFIX LONG WINAPI DisplayRotCenter(float XRotCent, float YRotCent, float ZRotCent); // Normalized
  401. LDDLL_PREFIX LONG WINAPI DisplayAngle(float XAngle, float YAngle, float ZAngle); //Normalized
  402. LDDLL_PREFIX LONG WINAPI DisplayAngleDegrees(float XAngle, float YAngle, float ZAngle); //Normalized
  403. LDDLL_PREFIX LONG WINAPI DisplayRotOrder(LONG RotationOrder);
  404. LDDLL_PREFIX LONG WINAPI DisplayWAngle(float XAngle, float YAngle, float ZAngle); //Normalized
  405. LDDLL_PREFIX LONG WINAPI DisplayWAngleDegrees(float XAngle, float YAngle, float ZAngle); //Normalized
  406. LDDLL_PREFIX LONG WINAPI AutoRotateInit(float InitialXAngle, float InitialYAngle,
  407. float InitialZAngle, LONG AnimateFromFrame,
  408. LONG AnimateToFrame, long AutoRotateTrack);
  409. LDDLL_PREFIX LONG WINAPI AutoRotateIncrement(float XIncrement, float YIncrement, float ZIncrement, LONG TenthFlag);
  410. LDDLL_PREFIX LONG WINAPI AutoRotatePlus(LONG Rotate, LONG GenerateAbstract, LONG Animate, LONG Extra); //Pretty much unneccessary now
  411. LDDLL_PREFIX LONG WINAPI DisplayPostTrans(float XOffs, float YOffs, float ZOffs); //Normalized
  412. LDDLL_PREFIX LONG WINAPI DisplayStereoSettings(float EyeSeparation, long EndOfScanDelay,
  413. float StereoIDLEVoltage, float StereoLEFTVoltage, float StereoRIGHTVoltage); //Normalized
  414. LDDLL_PREFIX LONG WINAPI DisplayPerspective(float Dist, float Xobs, float Yobs, float Zobs);//Norm
  415. LDDLL_PREFIX LONG WINAPI DisplayWindow( float WinLeft,
  416. float WinRight, float WinBottom, float WinTop,
  417. float WinRear, float WinFront); //Normalized
  418. LDDLL_PREFIX LONG WINAPI DisplayWindowX(float WinLeft, float WinRight); //Normalized
  419. LDDLL_PREFIX LONG WINAPI DisplayWindowY(float WinBot, float WinTop); //Normalized
  420. LDDLL_PREFIX LONG WINAPI DisplayWindowZ(float WinRear, float WinFront); //Normalized
  421. LDDLL_PREFIX LONG WINAPI DisplayCSize(float ColorSize); //Normalized
  422. LDDLL_PREFIX LONG WINAPI DisplayPaletteSelect(LONG Palette1, LONG Palette2);
  423. LDDLL_PREFIX LONG WINAPI DisplayPaletteMix(float MixValue); //Normalized
  424. LDDLL_PREFIX LONG WINAPI DisplayHueOffset(LONG HueStart, LONG HueEnd, LONG HueNew);
  425. LDDLL_PREFIX LONG WINAPI DisplaySaturation(float SaturationLevel); //Normalized
  426. LDDLL_PREFIX LONG WINAPI DisplayPath(LONG Frame, LONG Point);
  427. LDDLL_PREFIX LONG WINAPI DisplayIris(float IrisLevel); //Normalized
  428. LDDLL_PREFIX LONG WINAPI DisplayColorWheel(float ColorWheelLevel); //Normalized
  429. LDDLL_PREFIX LONG WINAPI DisplayGoboWheel(float Gobo1, float Gobo2, float Gobo3); //Normalized
  430. LDDLL_PREFIX LONG WINAPI DisplayGoboRotate(float Gobo1, float Gobo2, float Gobo3); //Normalized
  431. LDDLL_PREFIX LONG WINAPI DisplayFrost(float Frost1, float Frost2, float Frost3); //Normalized
  432. LDDLL_PREFIX LONG WINAPI DisplayFocus(float FocusLevel); //Normalized
  433. LDDLL_PREFIX LONG WINAPI DisplayMiscControl(float M1, float M2, float M3); //Normalized
  434. LDDLL_PREFIX LONG WINAPI DisplayDepthCue(float DepthEffect, float MinimumZ, float MaximumZ); //Normalized
  435. LDDLL_PREFIX LONG WINAPI DisplayTrackAllow(long Permission);
  436. LDDLL_PREFIX LONG WINAPI DisplayProjectionZones(long ProjectionZoneCode);
  437. LDDLL_PREFIX LONG WINAPI SetGetDisplayProjectionZones(LONG Mode, LONG TrackNumber, LPLONG RETURN_ProjectionZoneCode);
  438. LDDLL_PREFIX LONG WINAPI DisplayFrame(LONG Frame);
  439. LDDLL_PREFIX LONG WINAPI SetGetDisplayFrame(LONG Mode, LONG TrackNumber, LPLONG RETURN_FrameNumber);
  440. LDDLL_PREFIX LONG WINAPI DisplayFrameMix(LONG ToFrame, float MixValue); //Normalized
  441. LDDLL_PREFIX LONG WINAPI DisplayPreTrans( float XOffs, float YOffs, float ZOffs); //Normalized
  442. LDDLL_PREFIX LONG WINAPI DisplaySkew(LONG TrackDelay, LONG ColorShift, LONG FocusShift);
  443. LDDLL_PREFIX LONG WINAPI DisplayMinimumPoints(LONG MinimumPoints);
  444. LDDLL_PREFIX LONG WINAPI DisplayUpdateTest(void);
  445. LONG WINAPI DisplayBufferStatus(LONG *RETURN_BufferIsFree, LONG *RETURN_CurrentOutputPoints);
  446. LDDLL_PREFIX LONG WINAPI DisplayUpdate(void);
  447. LDDLL_PREFIX LONG WINAPI DisplayUpdateToFrame(LONG Frame);
  448. LDDLL_PREFIX LONG WINAPI DisplayUpdateEx(LONG Mode);
  449. LDDLL_PREFIX LONG WINAPI DisplayUpdateMode(LONG SyncMode, LONG LeftRightUpdate);
  450. //--------------------------------------------------------------------------------------------
  451. // QuadMod DMX-512 functions
  452. //--------------------------------------------------------------------------------------------
  453. LDDLL_PREFIX LONG WINAPI QMDMXMode(LONG DMXMode, LONG TransmitBreakLength, LONG TransmitMABLength, LONG TransmitStartCode, LONG TransmitNumChannels, LONG TransmitRestLength);
  454. LDDLL_PREFIX LONG WINAPI QMDMXInput(LONG ChannelNumber, LPLONG RETURN_Data);
  455. LDDLL_PREFIX LONG WINAPI QMDMXOutput(LONG ChannelNumber, LONG Data);
  456. LDDLL_PREFIX LONG WINAPI QMDMXVirtualChannels(LONG PortAStartChannel, LONG PortBStartChannel, LONG AUXOutChannel, LONG GraphicsShutterChannel);
  457. LDDLL_PREFIX LONG WINAPI QMDMXStartupFrame(LONG Frame);
  458. LDDLL_PREFIX LONG WINAPI QMDMXShutdownFrame(LONG Frame);
  459. LDDLL_PREFIX LONG WINAPI QMDMXESTOP(void);
  460. LDDLL_PREFIX LONG WINAPI DMXToFrame(void);
  461. LDDLL_PREFIX LONG WINAPI FrameToDMX(void);
  462. LDDLL_PREFIX LONG WINAPI GetDMXMap(DMXMAP *RETURN_DMXMap);
  463. LDDLL_PREFIX LONG WINAPI SetDMXMap(DMXMAP *SUPPLY_DMXMap);
  464. LDDLL_PREFIX LONG WINAPI GetDMXChannelMap(LONG ChannelNumber, DMXCHANNELMAP *RETURN_DMXChannel);
  465. LDDLL_PREFIX LONG WINAPI SetDMXChannelMap(LONG ChannelNumber, DMXCHANNELMAP *SUPPLY_DMXChannel);
  466. //-------------------------------------------------------------------------------------------
  467. // Frame Loading and Saving
  468. //-------------------------------------------------------------------------------------------
  469. LDDLL_PREFIX LONG WINAPI LoadLDA(LPSTR Filename, LPLONG SUPPLY_FileFromFr, LPLONG SUPPLY_FromFr, LPLONG SUPPLY_ToFr,LPSTR SUPPLY_Password, LPLONG RETURN_LDStatus);
  470. LDDLL_PREFIX LONG WINAPI LoadLDB(LPSTR Filename, LPLONG SUPPLY_FileFromFr, LPLONG SUPPLY_FromFr, LPLONG SUPPLY_ToFr, LPSTR SUPPLY_Password, LPLONG RETURN_LDStatus);
  471. LDDLL_PREFIX LONG WINAPI LoadLDSecure(LPSTR Filename, LPLONG SUPPLY_FileFromFr, LPLONG SUPPLY_FromFr, LPLONG SUPPLY_ToFr, LPSTR SUPPLY_Password, LPLONG RETURN_LDStatus);
  472. LDDLL_PREFIX LONG WINAPI LoadLFile(LPSTR Filename, LPLONG SUPPLY_FromFr, LPLONG SUPPLY_ToFr, LPSTR SUPPLY_Password, LPLONG RETURN_LDStatus);
  473. LDDLL_PREFIX LONG WINAPI ReadFileInfo(LPSTR Filename, LPSTR RETURN_Description, LPLONG RETURN_NumFrames, LPLONG RETURN_Format, LPSTR SUPPLY_Password, LPLONG RETURN_LDStatus);
  474. LDDLL_PREFIX LONG WINAPI SaveLFile(LPSTR Filename, LPSTR Description, LPLONG SUPPLY_FromFr, LPLONG SUPPLY_ToFr, LPLONG Format, LPSTR SUPPLY_Password, LPLONG RETURN_LDStatus);
  475. //-------------------------------------------------------------------------------------------
  476. // Frame Functions
  477. //-------------------------------------------------------------------------------------------
  478. LDDLL_PREFIX LONG WINAPI FindFrame(LPSTR Frame, LPLONG RETURN_FrameNumber);
  479. LDDLL_PREFIX LONG WINAPI ReadMaskData(LONG TrackNumber, LONG FAR* RETURN_MaskData);
  480. LDDLL_PREFIX LONG WINAPI SetChangedFlag(LONG FrameNumber, LONG State);
  481. LDDLL_PREFIX LONG WINAPI ReadFrameStruct(LONG FrameNumber, FRAMESTRUCT *RETURN_FrameStruct);
  482. LDDLL_PREFIX LONG WINAPI ReadFrameStructEx(LONG FrameNumber, FRAMESTRUCTEX *RETURN_FrameStructEx);
  483. LDDLL_PREFIX LONG WINAPI WriteFrameStructEx(LONG FrameNumber,FRAMESTRUCTEX *SUPPLY_FrameStructEx);
  484. LDDLL_PREFIX LONG WINAPI ReadFrame(FRAMESTRUCT *RETURN_FrameStruct, PTSTRUCT *RETURN_PointArray);
  485. LDDLL_PREFIX LONG WINAPI WriteFrame(FRAMESTRUCT *SUPPLY_FrameStruct, PTSTRUCT *SUPPLY_PointArray);
  486. LDDLL_PREFIX LONG WINAPI WriteFrameEx(FRAMESTRUCTEX *SUPPLY_FrameStructEx, PTSTRUCT *SUPPLY_PointArray);
  487. LDDLL_PREFIX LONG WINAPI CopyFrameActive(LONG SourceFrame, LONG DestFrame, LPLONG SUPPLY_ActiveArray);
  488. LDDLL_PREFIX LONG WINAPI CopyBlock(LONG FromFrame, LONG ToFrame, LONG DestFrame);
  489. LDDLL_PREFIX LONG WINAPI ReverseBlock(LONG FromFrame, LONG ToFrame);
  490. LDDLL_PREFIX LONG WINAPI DeleteFrames(LONG FromFr, LONG ToFr);
  491. LDDLL_PREFIX LONG WINAPI MergeFrames(LONG source1fr, LONG source2fr, LONG destfr);
  492. LDDLL_PREFIX LONG WINAPI FrameToUndoActive(LPLONG SUPPLY_ActiveArray); //If no active array is used, supply a NULL pointer.
  493. LDDLL_PREFIX LONG WINAPI UndoToFrameActive(LPLONG RETURN_ActiveArray); //If no active array is used, supply a NULL pointer.
  494. //--------------------------------------------------------------------------------------------
  495. // Vector Frame functions
  496. //--------------------------------------------------------------------------------------------
  497. LDDLL_PREFIX LONG WINAPI ConvertToVectorFrame(LONG OptimizePath, LONG PreserveBlanking,
  498. LONG StartingX, LONG StartingY, LONG StartingZ);
  499. LDDLL_PREFIX LONG WINAPI ConvertToPointFrame(LONG VisibleBeginEmph, LONG VisibleMiddleEmph,
  500. LONG VisibleEndEmph, LONG VisibleDensity,
  501. LONG BlankedBeginEmph, LONG BlankedEndEmph,
  502. LONG BlankedDensity);
  503. //-------------------------------------------------------------------------------------------
  504. // Point Functions
  505. //-------------------------------------------------------------------------------------------
  506. LDDLL_PREFIX LONG WINAPI ReadNumPoints(LPLONG RETURN_NumPoints);
  507. LDDLL_PREFIX LONG WINAPI ReadPoint(LONG PointNumber, PTSTRUCT *RETURN_PtStruct);
  508. LDDLL_PREFIX LONG WINAPI WritePoint(LONG PointNumber, PTSTRUCT *SUPPLY_PtStruct);
  509. LDDLL_PREFIX LONG WINAPI SetInsertOnWrite(LONG TrueOrFalse); //For WritePoint function
  510. LDDLL_PREFIX LONG WINAPI DeletePoints(LONG FromPt, LONG ToPt);
  511. LDDLL_PREFIX LONG WINAPI InsertPoints(LONG FromPt, LONG ToPt);
  512. LDDLL_PREFIX LONG WINAPI InvertPointsActive(LONG FromPt, LONG ToPt, LONG XOffs, LONG YOffs,
  513. LONG ZOffs, LONG Mask, LPLONG SUPPLY_ActiveArray);
  514. LDDLL_PREFIX LONG WINAPI MovePointsActive(LONG FromPt, LONG ToPt, LONG XOffs, LONG YOffs,
  515. LONG ZOffs, LONG Mask, LPLONG SUPPLY_ActiveArray);
  516. LDDLL_PREFIX LONG WINAPI ResizePointsActive(LONG FromPt, LONG ToPt,
  517. float XResizepct, float YResizepct, float ZResizepct,
  518. LONG XResizectr, LONG YResizectr, LONG ZResizectr,
  519. LONG Mask, LPLONG SUPPLY_ActiveArray);
  520. LDDLL_PREFIX LONG WINAPI RotatePointsActive(LONG FromPt, LONG ToPt,
  521. float XRotatepct, float YRotatepct, float ZRotatepct,
  522. LONG XRotatectr, LONG YRotatectr, LONG ZRotatectr,
  523. LONG Mask, LPLONG SUPPLY_ActiveArray);
  524. LDDLL_PREFIX LONG WINAPI Set_XYZ_TO_3D_Track(LONG Track);
  525. LDDLL_PREFIX LONG WINAPI XYZ_TO_3D(LONG XCoord, LONG YCoord, LONG ZCoord, LPLONG RETURN_X3D, LPLONG RETURN_Y3D, LPLONG RETURN_VisibleFlag);
  526. //-------------------------------------------------------------------------------------------
  527. // Palette and color Functions
  528. //-------------------------------------------------------------------------------------------
  529. LDDLL_PREFIX LONG WINAPI LoadPalette(LPSTR ColorFilename, LPLONG RETURN_LDStatus);
  530. LDDLL_PREFIX LONG WINAPI LoadPaletteDots(LPSTR ColorFilename, LONG *RETURN_PaletteDotColor1, LONG *RETURN_PaletteDotColor2, LONG *RETURN_PaletteDotColor3, LONG *RETURN_PaletteDotColor4, LONG *RETURN_PaletteDotColor5, LONG *RETURN_PaletteDotColor6, LONG *RETURN_PaletteDotColor7, LONG *RETURN_PaletteDotColor8, char *RETURN_PaletteDotName1, char *RETURN_PaletteDotName2, char *RETURN_PaletteDotName3, char *RETURN_PaletteDotName4, char *RETURN_PaletteDotName5, char *RETURN_PaletteDotName6, char *RETURN_PaletteDotName7, char *RETURN_PaletteDotName8, LPLONG RETURN_LDStatus);
  531. LDDLL_PREFIX LONG WINAPI SavePalette(LPSTR ColorFilename, LPLONG RETURN_LDStatus);
  532. LDDLL_PREFIX LONG WINAPI SavePaletteDots(LPSTR ColorFilename, LONG *SUPPLY_PaletteDotColor1, LONG *SUPPLY_PaletteDotColor2, LONG *SUPPLY_PaletteDotColor3, LONG *SUPPLY_PaletteDotColor4, LONG *SUPPLY_PaletteDotColor5, LONG *SUPPLY_PaletteDotColor6, LONG *SUPPLY_PaletteDotColor7, LONG *SUPPLY_PaletteDotColor8, char *SUPPLY_PaletteDotName1, char *SUPPLY_PaletteDotName2, char *SUPPLY_PaletteDotName3, char *SUPPLY_PaletteDotName4, char *SUPPLY_PaletteDotName5, char *SUPPLY_PaletteDotName6, char *SUPPLY_PaletteDotName7, char *SUPPLY_PaletteDotName8, LPLONG RETURN_LDStatus);
  533. LDDLL_PREFIX LONG WINAPI TrainColorSystem(void);
  534. LDDLL_PREFIX LONG WINAPI UseDefaultColors(void);
  535. LDDLL_PREFIX LONG WINAPI EliminateUnusedColors(LONG LastColorNumber);
  536. LDDLL_PREFIX LONG WINAPI UpdateAlternatePalettes(void);
  537. LDDLL_PREFIX LONG WINAPI ReadColorReg(COLORREGSTRUCT *RETURN_ColorStruct);
  538. LDDLL_PREFIX LONG WINAPI ReadColorRegEx(LONG PaletteSelect, COLORREGSTRUCT *RETURN_ColorStruct);
  539. LDDLL_PREFIX LONG WINAPI ReadNumColors(LPLONG RETURN_NumColors);
  540. LDDLL_PREFIX LONG WINAPI WriteColorReg(COLORREGSTRUCT *SUPPLY_ColorStruct);
  541. LDDLL_PREFIX LONG WINAPI WriteColorRegEx(LONG PaletteSelect, COLORREGSTRUCT *SUPPLY_ColorStruct);
  542. LDDLL_PREFIX LONG WINAPI ReadActuatorColorMode(LPLONG RETURN_Mode);
  543. LDDLL_PREFIX LONG WINAPI WriteActuatorColorMode(LONG Mode);
  544. LDDLL_PREFIX LONG WINAPI RGB4toRGB1(LPLONG SUPPLY_Red, LPLONG SUPPLY_Green, LPLONG SUPPLY_Blue,
  545. LPLONG SUPPLY_MSB, LPLONG RETURN_RGBMValue);
  546. LDDLL_PREFIX LONG WINAPI RGB1toRGB4(LPLONG SUPPLY_RGBMValue, LPLONG RETURN_Red, LPLONG RETURN_Green,
  547. LPLONG RETURN_Blue, LPLONG RETURN_MSB);
  548. LDDLL_PREFIX LONG WINAPI RGBtoHSV(LPLONG SUPPLY_RGB, LPLONG RETURN_HSV);
  549. LDDLL_PREFIX LONG WINAPI HSVtoRGB(LPLONG SUPPLY_HSV, LPLONG RETURN_RGB);
  550. //-------------------------------------------------------------------------------------------
  551. // Scale setting and getting functions. Sets coordinate scale for Frame/Point reading/writing
  552. //-------------------------------------------------------------------------------------------
  553. LDDLL_PREFIX LONG WINAPI SetWorkingScale(LONG LogicalLeft, LONG LogicalRight,
  554. LONG LogicalBottom, LONG LogicalTop,
  555. LONG LogicalRear, LONG LogicalFront);
  556. LDDLL_PREFIX LONG WINAPI SetWorkingScaleX(LONG LogicalLeft, LONG LogicalRight,
  557. LONG LogicalOriginX, LONG DeviceLeft,
  558. LONG DeviceRight, LONG DeviceOriginX);
  559. LDDLL_PREFIX LONG WINAPI SetWorkingScaleY(LONG LogicalBottom, LONG LogicalTop,
  560. LONG LogicalOriginY, LONG DeviceBottom,
  561. LONG DeviceTop, LONG DeviceOriginY);
  562. LDDLL_PREFIX LONG WINAPI SetWorkingScaleZ(LONG LogicalRear, LONG LogicalFront,
  563. LONG LogicalOriginZ, LONG DeviceRear,
  564. LONG DeviceFront, LONG DeviceOriginZ);
  565. LDDLL_PREFIX LONG WINAPI SetWorkingScaleF(LONG LogicalMaxFocus, LONG LogicalOriginF,
  566. LONG DeviceMaxFocus, LONG DeviceOriginF);
  567. LDDLL_PREFIX LONG WINAPI GetWorkingScaleX(LPLONG LogicalLeft, LPLONG LogicalRight,
  568. LPLONG LogicalOriginX, LPLONG DeviceLeft,
  569. LPLONG DeviceRight, LPLONG DeviceOriginX);
  570. LDDLL_PREFIX LONG WINAPI GetWorkingScaleY(LPLONG LogicalBottom, LPLONG LogicalTop,
  571. LPLONG LogicalOriginY, LPLONG DeviceBottom,
  572. LPLONG DeviceTop, LPLONG DeviceOriginY);
  573. LDDLL_PREFIX LONG WINAPI GetWorkingScaleZ(LPLONG LogicalRear, LPLONG LogicalFront,
  574. LPLONG LogicalOriginZ, LPLONG DeviceRear,
  575. LPLONG DeviceFront, LPLONG DeviceOriginZ);
  576. LDDLL_PREFIX LONG WINAPI GetWorkingScaleF(LPLONG LogicalMaxFocus, LPLONG LogicalOriginF,
  577. LPLONG DeviceMaxFocus, LPLONG DeviceOriginF);
  578. //-------------------------------------------------------------------------------------------
  579. // Screen Drawing Functions
  580. //-------------------------------------------------------------------------------------------
  581. LDDLL_PREFIX LONG WINAPI SetLaserWindow(LONG LeftEdge, LONG RightEdge, LONG BottomEdge, LONG TopEdge, LONG MagLevel);
  582. LDDLL_PREFIX LONG WINAPI DrawGrid(HWND hWnd, LONG gridHvalue, LONG gridVvalue, LONG MClearScreen, LONG MShowZero, LONG MShowGrid);
  583. LDDLL_PREFIX LONG WINAPI RedrawFrame(HWND hWnd, LONG frompt, LONG topt, LONG ViewMode,
  584. LONG ClearScreenFlag, long HiliteColor, LONG MShowColorAtPts,
  585. LONG MShowFocus);
  586. LDDLL_PREFIX LONG WINAPI RedrawFrameActive(HWND hWnd, LONG frompt, LONG topt, LONG ViewMode,
  587. LONG ClearScreenFlag, long HiliteColor, LONG MShowColorAtPts,
  588. LONG MShowFocus, LPLONG ActiveArray);
  589. LDDLL_PREFIX LONG WINAPI RedrawFrameActiveEx(HWND hWnd, LONG frompt, LONG topt, LONG ViewMode,
  590. LONG ClearScreenFlag, long HiliteColor, LONG MShowColorAtPts,
  591. LONG MShowFocus, LONG MShowBlankedLines, LONG MShowBlankedPoints, LPLONG ActiveArray);
  592. LDDLL_PREFIX LONG WINAPI RedrawFrameActiveDC(HWND hWnd, HDC hDC, LONG frompt, LONG topt, LONG ViewMode,
  593. LONG ClearScreenFlag, long HiliteColor, LONG MShowColorAtPts,
  594. LONG MShowFocus, LPLONG ActiveArray);
  595. LDDLL_PREFIX LONG WINAPI RedrawFrameActiveDCEx(HWND hWnd, HDC hDC, LONG frompt, LONG topt, LONG ViewMode,
  596. LONG ClearScreenFlag, long HiliteColor, LONG MShowColorAtPts,
  597. LONG MShowFocus, LONG MShowBlankedLines, LONG MShowBlankedPoints, LPLONG ActiveArray);
  598. LDDLL_PREFIX LONG WINAPI RedrawFrameFast(HWND hWnd, LONG FrameNumber, LONG ViewMode, LONG ClearScreenFlag, LONG MShowFocus);
  599. LDDLL_PREFIX LONG WINAPI RedrawFrameFastDC(HWND hWnd, HDC hDC, LONG FrameNumber, LONG ViewMode, LONG ClearScreenFlag, LONG MShowFocus);
  600. LDDLL_PREFIX LONG WINAPI RedrawFrameFastDCRECT(HWND hWnd, HDC hDC, RECT *rect, LONG FrameNumber, LONG ViewMode, LONG ClearScreenFlag, LONG MShowFocus);
  601. //-------------------------------------------------------------------------------------------
  602. // Text functions
  603. //-------------------------------------------------------------------------------------------
  604. LDDLL_PREFIX LONG WINAPI SetLineLimits(LONG NumBlanked, LONG NumEmphasis, LONG NumPoints, LONG Density);
  605. LDDLL_PREFIX LONG WINAPI LoadFont(LPSTR FontFilename, LPLONG RETURN_LDStatus);
  606. LDDLL_PREFIX LONG WINAPI SetLaserChar(LONG ViewMode, LONG TextBlanked, LONG TextEmphasis, LONG Density, LONG Width, LONG Height, LONG MaxAngle, LONG AngleDetect, long RGBColor);
  607. LDDLL_PREFIX LONG WINAPI LaserChar(LONG Ascii, LONG XStart, LONG YStart, LONG BeginPoint, LPLONG RETURN_charXEnd, LPLONG RETURN_charYEnd, LPLONG RETURN_charEndPt);
  608. LDDLL_PREFIX LONG WINAPI GetLaserCharExtent(LONG Ascii, LPLONG RETURN_charXExtent, LPLONG RETURN_charYExtent);
  609. //-------------------------------------------------------------------------------------------
  610. // QuadMod32 Parallel Port Functions
  611. //-------------------------------------------------------------------------------------------
  612. LDDLL_PREFIX LONG WINAPI ParOn(LONG BankNum, LONG LineNum);
  613. LDDLL_PREFIX LONG WINAPI ParOff(LONG BankNum, LONG LineNum);
  614. LDDLL_PREFIX LONG WINAPI ParIn(LONG BankNum, LONG LineNum, LPLONG RETURN_Value);
  615. LDDLL_PREFIX LONG WINAPI DisplayPortLong(long I_OMask, long OutputValue, LPLONG RETURN_Value);
  616. //-------------------------------------------------------------------------------------------
  617. // Abstract Generator functions
  618. //-------------------------------------------------------------------------------------------
  619. LDDLL_PREFIX LONG WINAPI InitAbstractOsc1(float XPhase, float YPhase, float ZPhase);
  620. LDDLL_PREFIX LONG WINAPI InitAbstractOsc2(float XPhase, float YPhase, float ZPhase);
  621. LDDLL_PREFIX LONG WINAPI InitAbstractOsc3(float XPhase, float YPhase, float ZPhase);
  622. LDDLL_PREFIX LONG WINAPI InitAbstractMod1(float ModPhase);
  623. LDDLL_PREFIX LONG WINAPI InitAbstractMod2(float ModPhase);
  624. LDDLL_PREFIX LONG WINAPI InitAbstractColor(LONG SequenceStart);
  625. LDDLL_PREFIX LONG WINAPI InitAbstractColorNew(float ColorPhase);
  626. LDDLL_PREFIX LONG WINAPI SetAbstractOsc1(float XFreq, float YFreq, float ZFreq, float XSize,
  627. float YSize, float ZSize, LONG Wave);
  628. //Normalized Size Variables
  629. LDDLL_PREFIX LONG WINAPI SetAbstractOsc2(float XFreq, float YFreq, float ZFreq, float XSize,
  630. float YSize, float ZSize, LONG Wave);
  631. //Normalized Size Variables
  632. LDDLL_PREFIX LONG WINAPI SetAbstractOsc3(float XFreq, float YFreq, float ZFreq, float XSize,
  633. float YSize, float ZSize, LONG Wave);
  634. //Normalized Size Variables
  635. LDDLL_PREFIX LONG WINAPI SetAbstractMod1(float ModFreq, float ModAmplitude, LONG ModWave);
  636. //Normalized Amplitude Variable
  637. LDDLL_PREFIX LONG WINAPI SetAbstractMod2(float ModFreq, float ModAmplitude, LONG ModWave);
  638. //Normalized Amplitude Variable
  639. LDDLL_PREFIX LONG WINAPI SetAbstractColor(LONG ColorFreq, LONG ColorWave);
  640. LDDLL_PREFIX LONG WINAPI SetAbstractColorNew(float ColorFreq, LONG ColorWave);
  641. LDDLL_PREFIX LONG WINAPI SwapWaves(void);
  642. LDDLL_PREFIX LONG WINAPI GenerateAbstract(LONG NumVisible, LONG NumOverscan, LONG NumOverlap);
  643. LDDLL_PREFIX LONG WINAPI GenerateAbstractNew(LONG NumVisible, LONG NumOverscan, LONG NumOverlap);
  644. LDDLL_PREFIX LONG WINAPI GetAbstractPhase(LONG SUPPLY_OscID, float *RETURN_XPhase, float *RETURN_YPhase, float *RETURN_ZPhase);
  645. LDDLL_PREFIX LONG WINAPI GetAbstractFreqSizeWave(LONG SUPPLY_OscID, float *RETURN_XFreq,
  646. float *RETURN_YFreq, float *RETURN_ZFreq,
  647. float *RETURN_XSize, float *RETURN_YSize, float *RETURN_ZSize, int *RETURN_Wave);
  648. LDDLL_PREFIX LONG WINAPI AbstractToFrame(void);
  649. LDDLL_PREFIX LONG WINAPI FrameToAbstract(void);