diff --git a/Doc/sphinx/features/autoupdate.rst b/Doc/sphinx/features/autoupdate.rst index c3fa80a..2d214ab 100644 --- a/Doc/sphinx/features/autoupdate.rst +++ b/Doc/sphinx/features/autoupdate.rst @@ -1,8 +1,9 @@ Updater in Simba ================ -A notice should appear in the Simba GUI, or you can alternatively -use Tools -> Update. - -Don't forget to restart Simba when it has been updated! +As soon as there is an update for Simba, an extra icon will appear in the icon +bar. If you click it, an update window will appear. Click *update* and Simba +will update itself. Note that you will have to restart Simba to use the updated +version. +Alternatively you can use Tools -> Update to update. diff --git a/Doc/sphinx/features/notwellknown.rst b/Doc/sphinx/features/notwellknown.rst index 125ab16..c7be836 100644 --- a/Doc/sphinx/features/notwellknown.rst +++ b/Doc/sphinx/features/notwellknown.rst @@ -1,10 +1,13 @@ Not Well Known Features ======================= +Simba has several features that are relatively unknown. +A few will be listed here. + Timestamped Writeln ------------------- -Simba can timestamp all your *writeln* calls. +Simba can timestamp all your debug. .. code-block:: pascal diff --git a/Doc/sphinx/features/scriptmanager.rst b/Doc/sphinx/features/scriptmanager.rst index 7668534..774bacb 100644 --- a/Doc/sphinx/features/scriptmanager.rst +++ b/Doc/sphinx/features/scriptmanager.rst @@ -2,4 +2,4 @@ Simba Script Manager ==================== Community-created scripts will be available for download from the -Script Manager. +Script Manager. The script manager will appear in release 1.0. diff --git a/Doc/sphinx/gettingstarted.rst b/Doc/sphinx/gettingstarted.rst index d576fb4..c3d5aed 100644 --- a/Doc/sphinx/gettingstarted.rst +++ b/Doc/sphinx/gettingstarted.rst @@ -60,6 +60,11 @@ This is the only supported way. You can simply do a svn checkout on the srl repository, but if you can do that, then you should be able to set up SRL yourself as well. +Setting up SRL 5 with Simba +--------------------------- + +This will follow later, upon SRL 5 release. (Which will be quite soon) + Installing scripts ------------------ diff --git a/Doc/sphinx/mmlref/libmml.rst b/Doc/sphinx/mmlref/libmml.rst new file mode 100644 index 0000000..b56fff6 --- /dev/null +++ b/Doc/sphinx/mmlref/libmml.rst @@ -0,0 +1,6 @@ +libMML +====== + +libMML is an effort to bring the entire MML to a single standalone library. + +MML usage will appear here soon. diff --git a/Doc/sphinx/referencemml.rst b/Doc/sphinx/referencemml.rst index 65d33c5..4598022 100644 --- a/Doc/sphinx/referencemml.rst +++ b/Doc/sphinx/referencemml.rst @@ -6,6 +6,10 @@ provide scripts with the required functionality, but also used to pick colours and select windows with Simba itself. The MML can run without any user interface. +There currently is an effort to create a standalone library of the MML; called +*libMML*. This way any application can just load the library and use the MML +functionality. + The MML is split up in "Core" classes and "Addon" classes. .. note:: @@ -20,3 +24,4 @@ The MML is split up in "Core" classes and "Addon" classes. mmlref/finder.rst mmlref/bitmap.rst mmlref/ocr.rst + mmlref/libmml diff --git a/Doc/sphinx/troubleshooting.rst b/Doc/sphinx/troubleshooting.rst index d6a054b..e2dc2e3 100644 --- a/Doc/sphinx/troubleshooting.rst +++ b/Doc/sphinx/troubleshooting.rst @@ -25,7 +25,7 @@ This means your settings.xml has become corrupt somehow, or Simba may not be able to create it. If a settings.xml exists in your Simba directory, you can delete it. (All your settings will be lost, but this shouldn't be a bug deal) -There is a bug report pending on this issue. +Note that this should no longer happen with Simba 750 and up. .. Anything else? diff --git a/Doc/sphinx/tutorial.rst b/Doc/sphinx/tutorial.rst index cbe3d56..04bf7cc 100644 --- a/Doc/sphinx/tutorial.rst +++ b/Doc/sphinx/tutorial.rst @@ -2,3 +2,5 @@ Tutorial ================= Complete tutorial. + +.. What should be in here in the first place? diff --git a/Doc/sphinx/whatsnew.rst b/Doc/sphinx/whatsnew.rst index 5861641..c0c1640 100644 --- a/Doc/sphinx/whatsnew.rst +++ b/Doc/sphinx/whatsnew.rst @@ -5,22 +5,8 @@ Currently Simba is still in its beta stages; this includes the documentation. You will probably notice some parts of the documentation aren't finished or are just plain missing. -So what's new in Simba? This documentation system. - Simba is being updated almost every day. To see changes as they are added, view http://git.villavu.com/?p=simba.git;a=summary. Each commit should be explained -tersely in one line, and the exact changes can be viewed with "commitdiff". This -is a very verbose list of changes, large features or changes will be listed below: - -Changelog for 715:: - - - Array Operator support. (=, <>, +) - - Foldable comments - - Add Disguise - - Add Status - - Add ClearDebugImg - - Add PosEx - - Add a new interpreter - - Fix Hypot - - Fix Extension Menu Checkbox +tersely in one line, and the exact changes can be viewed with "commitdiff". +A list of new features since 750 will show up here eventually. diff --git a/Doc/sphinx/whysimba.rst b/Doc/sphinx/whysimba.rst index a1ee8e3..6ca1a7c 100644 --- a/Doc/sphinx/whysimba.rst +++ b/Doc/sphinx/whysimba.rst @@ -64,6 +64,10 @@ some issues remain. The biggest issue is the interpreter that executes your program. It is an external component and does not play too well on Linux. Hopefully this will be improved upon soon. +There are plans on supporting interpreter for alternative languages such as +Python, these would largely resolve the current problems wit the PascalScript +interpreter on Linux/Mac. + Fast ~~~~ @@ -91,5 +95,5 @@ Well Documented ~~~~~~~~~~~~~~~ Simba is well documented. (You're looking the documentation right now...) -There is still stuff left to document but overall the documentation is pretty +There is still a lot left to document but overall the documentation is pretty good. diff --git a/Fonts/XPChars/32.bmp b/Fonts/XPChars/32.bmp new file mode 100644 index 0000000..e02a459 Binary files /dev/null and b/Fonts/XPChars/32.bmp differ diff --git a/Fonts/XPChars/44.bmp b/Fonts/XPChars/44.bmp new file mode 100644 index 0000000..89a108c Binary files /dev/null and b/Fonts/XPChars/44.bmp differ diff --git a/Fonts/XPChars/48.bmp b/Fonts/XPChars/48.bmp index 13beb49..92a7840 100644 Binary files a/Fonts/XPChars/48.bmp and b/Fonts/XPChars/48.bmp differ diff --git a/Fonts/XPChars/49.bmp b/Fonts/XPChars/49.bmp index c043920..13ba69f 100644 Binary files a/Fonts/XPChars/49.bmp and b/Fonts/XPChars/49.bmp differ diff --git a/Fonts/XPChars/50.bmp b/Fonts/XPChars/50.bmp index 4232d0f..5bffb49 100644 Binary files a/Fonts/XPChars/50.bmp and b/Fonts/XPChars/50.bmp differ diff --git a/Fonts/XPChars/51.bmp b/Fonts/XPChars/51.bmp index 9d7305f..1f3fad2 100644 Binary files a/Fonts/XPChars/51.bmp and b/Fonts/XPChars/51.bmp differ diff --git a/Fonts/XPChars/52.bmp b/Fonts/XPChars/52.bmp index 62b106f..029362f 100644 Binary files a/Fonts/XPChars/52.bmp and b/Fonts/XPChars/52.bmp differ diff --git a/Fonts/XPChars/53.bmp b/Fonts/XPChars/53.bmp index e65350c..e61d644 100644 Binary files a/Fonts/XPChars/53.bmp and b/Fonts/XPChars/53.bmp differ diff --git a/Fonts/XPChars/54.bmp b/Fonts/XPChars/54.bmp index 438ba24..5590b37 100644 Binary files a/Fonts/XPChars/54.bmp and b/Fonts/XPChars/54.bmp differ diff --git a/Fonts/XPChars/55.bmp b/Fonts/XPChars/55.bmp index 9476dc2..71f5827 100644 Binary files a/Fonts/XPChars/55.bmp and b/Fonts/XPChars/55.bmp differ diff --git a/Fonts/XPChars/56.bmp b/Fonts/XPChars/56.bmp index 2f46805..4026865 100644 Binary files a/Fonts/XPChars/56.bmp and b/Fonts/XPChars/56.bmp differ diff --git a/Fonts/XPChars/57.bmp b/Fonts/XPChars/57.bmp index e8e6e7b..4bf679a 100644 Binary files a/Fonts/XPChars/57.bmp and b/Fonts/XPChars/57.bmp differ diff --git a/Fonts/XPChars/58.bmp b/Fonts/XPChars/58.bmp index f48a5f5..9a38cae 100644 Binary files a/Fonts/XPChars/58.bmp and b/Fonts/XPChars/58.bmp differ diff --git a/Fonts/XPChars/80.bmp b/Fonts/XPChars/80.bmp index 90ce51b..6f33d5b 100644 Binary files a/Fonts/XPChars/80.bmp and b/Fonts/XPChars/80.bmp differ diff --git a/Fonts/XPChars/88.bmp b/Fonts/XPChars/88.bmp index 2d27ffc..eb224f1 100644 Binary files a/Fonts/XPChars/88.bmp and b/Fonts/XPChars/88.bmp differ diff --git a/Projects/ScriptManager/scriptmanager.pas b/Projects/ScriptManager/scriptmanager.pas index cb17a24..f8ea4ce 100644 --- a/Projects/ScriptManager/scriptmanager.pas +++ b/Projects/ScriptManager/scriptmanager.pas @@ -1,6 +1,6 @@ { - This file is part of the Simba Project - Copyright (c) 2009 by Raymond van Venetiƫ and Merlijn Wajer + This file is part of the Simba Project + Copyright (c) 2009 by Raymond van Venetiƫ and Merlijn Wajer Simba is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with MML. If not, see . - See the file COPYING, included in this distribution, - for details about the copyright. + See the file COPYING, included in this distribution, + for details about the copyright. Script Manager for the Simba project. } @@ -45,10 +45,13 @@ type TSimbaScript = class(TObject) private + function IsInstalled: boolean; procedure LoadFromNode( Script : TDOMNode); public Name, Version, Author, Description: String; Tags, Files: TStringList; + LocalScript : TSimbaScript; + property Installed : boolean read IsInstalled; procedure Dbg; constructor Create; destructor Destroy; override; @@ -76,10 +79,13 @@ type FLScripts: TList; //Array of the local scripts FVersion : String; FUpdating : boolean; + function FindScriptByName(name : string) : Integer; + function FindLScriptByName(name : string) : Integer; function GetLScriptCount: integer; function GetMainDir: string; function GetScript(index : integer): TSimbaScript; function GetScriptCount: integer; + procedure MatchLocalOnline; public property MainDir : string read GetMainDir write FMaindir; property SimbaScript[index : integer] : TSimbaScript read GetScript; @@ -87,7 +93,7 @@ type procedure LUpdate; //Loads the local scripts, uses MainDir function NewVersion(Script : integer) : boolean; //Checks for updates for Script procedure InstallNewScript(Script : integer); //Installs Script (Online -> Local) - procedure UpdateScript(Script : integer); //Updates all the info/files of local script + procedure UpdateScript(Script : integer; ignoreupdating : boolean = false); //Updates all the info/files of local script procedure LSave; //Saves the local scripts, uses MainDir property LScriptCount : integer read GetLScriptCount; //LScript = Local Script = Installed Script property ScriptCount : integer read GetScriptCount; //Online script @@ -128,34 +134,6 @@ uses {$R *.lfm} { TForm1 } -procedure fill(s: TMMLSettings); -var - i:integer; - ss: TSimbaScript; - LI: TListItem; - strarr: TStringArray; - b: TButton; - -begin - if not s.ListKeys('Scripts/ScriptList', strarr) then - writeln('ListKeys returned false'); - writeln('strarr length: ' + inttostr(length(strarr))); - for i := 0 to high(strarr) do - begin - writeln(s.GetKeyValue('Scripts/ScriptList/Script/Name')); - ss := TSimbaScript.Create(); - ss.Name := s.GetKeyValue('Scripts/ScriptList/Script/Name'); - ss.Author:= s.GetKeyValue('Scripts/ScriptList/Script/Author'); - ss.Description:= s.GetKeyValue('Scripts/ScriptList/Script/Description'); - LI := Form1.ListView1.Items.Add; - LI.Caption := ss.Name; - LI.Data := ss; - LI.ImageIndex:= 0; - - s.DeleteKey('Scripts/ScriptList/Script'); - end; -end; - procedure TForm1.FormCreate(Sender: TObject); begin Mng := TScriptManager.Create; @@ -171,10 +149,11 @@ begin begin Memo1.Clear; Script := TSimbaScript(Item.data); - Memo1.Lines.Add('Name: ' + Script.Name); + Memo1.Lines.add('Name: ' + Script.Name); Memo1.lines.add('Author: ' + Script.Author); Memo1.Lines.add('Version: ' + Script.Version); - Memo1.Lines.Add('Description: ' + Script.Description); + Memo1.Lines.add('Installed: '+ BoolToStr(Script.Installed,true)); + Memo1.Lines.add('Description: ' + Script.Description); end; end; @@ -221,6 +200,11 @@ end; { TSimbaScript } +function TSimbaScript.IsInstalled: boolean; +begin + Result := (LocalScript <> nil); +end; + procedure TSimbaScript.LoadFromNode(Script: TDOMNode); function NodeContents(ItemStr : string; node : TDOMNode) : string; var @@ -268,6 +252,7 @@ begin Writeln(' Author: ' + Author); Writeln(' Version: ' + Version); Writeln(' Description: ' + Description); + Writeln(' Installed: '+ BoolToStr(Installed,true)); Writeln(' Tags:'); for i := 0 to Tags.Count - 1 do Writeln(' ' + Tags[i]); @@ -279,7 +264,6 @@ end; constructor TSimbaScript.Create; begin inherited; - {stuff here} end; @@ -296,6 +280,26 @@ end; { TScriptManager } +function TScriptManager.FindScriptByName(name: string): Integer; +var + I : integer; +begin + for i := FScripts.Count - 1 downto 0 do + if TSimbaScript(FScripts[i]).Name = Name then + exit(i); + result := -1; +end; + +function TScriptManager.FindLScriptByName(name: string): Integer; +var + I : integer; +begin + for i := FScripts.Count - 1 downto 0 do + if TLSimbaScript(FLScripts[i]).Name = Name then + exit(i); + result := -1; +end; + function TScriptManager.GetLScriptCount: integer; begin result := FLScripts.Count; @@ -316,6 +320,25 @@ begin result := FScripts.Count; end; +procedure TScriptManager.MatchLocalOnline; +var + Scrpt : TLSimbaScript; + I,II : integer; +begin + for ii := 0 to LScriptCount - 1 do + begin + Scrpt := TLSimbaScript(FLScripts[ii]); + if Scrpt.OnlineScript = nil then + for i := 0 to ScriptCount-1 do + if TSimbaScript(FScripts[i]).Name = Scrpt.Name then + begin + Scrpt.OnlineScript := TSimbaScript(FScripts[i]); + Break; + end; + Scrpt.OnlineScript.LocalScript := Scrpt; + end; +end; + procedure TScriptManager.Update; var XMLFile : string; @@ -325,6 +348,7 @@ var Subs : TStringList; Down : TDownloadThread; SScript : TSimbaScript; + I : integer; begin if FUpdating then exit; @@ -350,13 +374,21 @@ begin begin SScript := TSimbaScript.Create; SScript.LoadFromNode(Script); - FScripts.Add(SScript); SScript.Dbg; + i := FindScriptByName(SScript.Name); + if (i = -1) then + FScripts.Add(SScript) + else + begin + SScript.free; + TSimbaScript(FScripts[i]).LoadFromNode(Script); + end; Script := Script.NextSibling; end; end; XMLDoc.Free; FUpdating := false; + MatchLocalOnline; end; procedure TScriptManager.LUpdate; @@ -366,6 +398,7 @@ var Subs : TStringList; Down : TDownloadThread; SScript : TLSimbaScript; + I : integer; begin if DirectoryExists(MainDir) = false then exit; @@ -380,29 +413,28 @@ begin begin SScript := TLSimbaScript.Create; SScript.LoadFromName(Node.TextContent,maindir); - FLScripts.Add(SScript); + i := FindLScriptByName(SScript.Name); SScript.Dbg; + if (i = -1) then + FLScripts.Add(SScript) + else + begin + SScript.free; + TLSimbaScript(FLScripts[i]).LoadFromName(Node.TextContent,maindir); + end; Script := Script.NextSibling; end; end; XMLDoc.Free; end; + MatchLocalOnline; end; function TScriptManager.NewVersion(Script: integer): boolean; -var - Scrpt : TLSimbaScript; - I : integer; begin - Scrpt := TLSimbaScript(FLScripts[Script]); - if Scrpt.OnlineScript = nil then - for i := 0 to ScriptCount-1 do - if TSimbaScript(FScripts[i]).Name = Scrpt.Name then - begin - Scrpt.OnlineScript := TSimbaScript(FScripts[i]); - Break; - end; - result := Scrpt.OnlineScript.Version <> Scrpt.Version; + MatchLocalOnline; + with TLSimbaScript(FLScripts[Script]) do + result := OnlineScript.Version <> Version; end; procedure TScriptManager.InstallNewScript(Script: integer); @@ -411,6 +443,9 @@ var LScrpt: TLSimbaScript; Dir : string; begin + if FUpdating then + exit; + FUpdating := true; Scrpt := TSimbaScript(FScripts[Script]); LScrpt := TLSimbaScript.create; FLScripts.Add(LScrpt); @@ -421,17 +456,21 @@ begin Writeln('Directory already exists, yet continue?'); if not CreateDir(Dir) then Writeln('Failed to create dir..'); - UpdateScript(FLScripts.Count - 1); + UpdateScript(FLScripts.Count - 1,true); end; -procedure TScriptManager.UpdateScript(Script: integer); +procedure TScriptManager.UpdateScript(Script: integer; ignoreupdating : boolean = false); var LScrpt : TLSimbaScript; Scrpt : TSimbaScript; + DownloadThread : TDownloadThread; begin - LScrpt := TLSimbaScript(FLScripts[Script]); if not NewVersion(Script) then Exit; + if FUpdating and not ignoreupdating then + exit; + FUpdating := true; + LScrpt := TLSimbaScript(FLScripts[Script]); Scrpt := LScrpt.OnlineScript; with LScrpt do begin @@ -444,6 +483,8 @@ begin end; LScrpt.Save(MainDir); //Saves the setting file, now we only need to update the files //Download files & write to folder + + FUPdating := false; end; procedure TScriptManager.LSave; @@ -497,7 +538,6 @@ begin end; { TLSimbaScript } - procedure TLSimbaScript.LoadFromFile(const filename: string); var XMLDoc : TXMLDocument; @@ -571,4 +611,3 @@ begin end; end. - diff --git a/Projects/libmml/pymml/mml/color.py b/Projects/libmml/pymml/mml/color.py index bcc050d..5b2e5bf 100644 --- a/Projects/libmml/pymml/mml/color.py +++ b/Projects/libmml/pymml/mml/color.py @@ -30,8 +30,21 @@ class Color(object): """ self._mc = MC self._cli = cli - self._initialiseDLLFuncs() + self._initialise_dll_funcs() + def get(self, pt): + """ + Gets color at pt[0], pt[1]. + Yields integer. + """ + col = c_int(-1) + self._mc.dll.get_color(self._cli, pt[0], pt[1], byref(col)) + if col is RESULT_OK: + return col + elif ret is RESULT_ERROR: + raise ColorException(self._mc.get_last_error()) + return None + def find(self, box, color, tol = 0): """ find a color in a box, with a specific tolerance. @@ -53,7 +66,7 @@ class Color(object): return None - def findAll(self, box, color, tol = 0): + def find_all(self, box, color, tol = 0): """ find all colors in a box, with a specific tolerance. returned are all the matching points @@ -73,19 +86,173 @@ class Color(object): self._mc.free(ptr) return l - - def _initialiseDLLFuncs(self): + + def find_spiral(self, col, box, tol = 0): + """ + Find a color in a box, searching in the direction of a spiral, with a + specific tolerance. + Yields a tuple of x, y values of found color. + """ + x, y = (c_int(-1), c_int(-1)) + if tol is 0: + ret = self._mc.dll.find_color_spiral(self._cli, byref(x), byref(y), + col, *box) + else: + ret = self._mc.dll.find_color_spiral_tolerance(self._cli, byref(x), + byref(y), col, *box, + tol) + if ret is RESULT_OK: + return (x, y) + elif ret is RESULT_ERROR: + raise ColorException(self._mc.get_last_error()) + return None + + def find_area(self, col, box, min_a, tol = 0): + """ + Finds a colored area in box with min area min_a with a specific + tolerance. + Yields a tuple of x, y values of found area. + """ + x, y = (c_int(-1), c_int(-1)) + if tol is 0: + ret = self._mc.dll.find_colored_area(self._cli, byref(x), byref(y), + col, *box, min_a) + else: + ret = self._mc.dll.find_colored_area_tolerance(self._cli, byref(x), + byref(y), col, *box, + min_a, tol) + if ret is RESULT_OK: + return (x, y) + elif ret is RESULT_ERROR: + raise ColorException(self._mc.get_last_error()) + return None + + def count_color(self, count, col, box, tol = 0): + """ + Counts color col in box with tol. + Yields integer of count. + """ + count = 0 + if tol is 0: + ret = self._mc.dll.count_color(self._cli, count, col, *box) + else: + ret = self._mc.dll.count_color_tolerance(self._cli, count, col, + *box, tol) + if ret is RESULT_OK: + return count + elif ret is RESULT_ERROR: + raise ColorException(self._mc.get_last_error()) + return None + + def similar_colors(self, col1, col2, tol = 0): + """ + Compares col1 and col2 with tol. + Yields boolean + """ + ret = self._mc.dll.similar_colors(col1, col2, tol) + if ret is RESULT_OK: + return True + else: + return False + + def set_tolerance_speed(self, ncts = 0): + """ + Sets CTS to ncts. + """ + self._mc.dll.set_tolerance_speed(self._cli, ncts) + + def get_tolerance_speed(self): + """ + Gets CTS. + Yields CTS. + """ + self._mc.dll.get_tolerance_speed(self._cli, out_cts) + return out_cts + + def set_tolerance_speed_2_modifiers(self, hue = 0, sat = 0): + """ + Sets CTS2 modifiers with hue, sat. + """ + self._mc.dll.set_tolerance_speed_2_modifiers(self._cli, hue, sat) + + def get_tolerance_speed_2_modifiers(self): + """ + Gets CTS2 modifiers. + Yields tuple of hue and sat mods. + """ + self._mc.dll.get_tolerance_speed_2_modifiers(self._cli, h, s) + return (h, s) + + def _initialise_dll_funcs(self): self._mc.dll.find_color.restype = c_int self._mc.dll.find_color.argtypes = [c_ulong, PINTEGER, PINTEGER, c_int, - c_int, c_int, c_int, c_int] + c_int, c_int, c_int, c_int] + self._mc.dll.find_color_tolerance.restype = c_int self._mc.dll.find_color_tolerance.argtypes = [c_ulong, PINTEGER, - PINTEGER, c_int, c_int, c_int, c_int, c_int, c_int] + PINTEGER, c_int, c_int, + c_int, c_int, c_int, + c_int] + self._mc.dll.find_colors.restype = c_int self._mc.dll.find_colors.argtypes = [c_ulong, POINTER(PPOINT), - POINTER(c_int), c_int, c_int, c_int, c_int, c_int] + POINTER(c_int), c_int, c_int, + c_int, c_int, c_int] + self._mc.dll.find_colors_tolerance.restype = c_int self._mc.dll.find_colors_tolerance.argtypes = [c_ulong, - POINTER(PPOINT), POINTER(c_int), c_int, c_int, - c_int, c_int, c_int, c_int] + POINTER(PPOINT), + POINTER(c_int), c_int, + c_int, c_int, c_int, + c_int, c_int] + self._mc.dll.find_color_spiral.restype = c_int + self._mc.dll.find_color_spiral.argtypes = [c_ulong, PINTEGER, PINTEGER, + c_int, c_int, c_int, c_int, + c_int] + + self._mc.dll.find_color_spiral_tolerance.restype = c_int + self._mc.dll.find_color_spiral_tolerance.argtypes = [c_ulong, PINTEGER, + PINTEGER, c_int, + c_int, c_int, + c_int, c_int, + c_int] + + self._mc.dll.find_colored_area.restype = c_int + self._mc.dll.find_colored_area.argtypes = [c_ulong, PINTEGER, PINTEGER, + c_int, c_int, c_int, c_int, + c_int, c_int] + + self._mc.dll.find_colored_area_tolerance.restype = c_int + self._mc.dll.find_colored_area_tolerance.argtypes = [c_ulong, PINTEGER, + PINTEGER, c_int, + c_int, c_int, + c_int, c_int, + c_int, c_int] + + self._mc.dll.count_color.restype = c_int + self._mc.dll.count_color.argtypes = [c_ulong, PINTEGER, c_int, c_int, + c_int, c_int, c_int] + + self._mc.dll.count_color_tolerance.restype = c_int + self._mc.dll.count_color_tolerance.argtypes = [c_ulong, PINTEGER, + c_int, c_int, c_int, + c_int, c_int, c_int] + + self._mc.dll.similar_colors.restype = c_int + self._mc.dll.similar_colors.argtypes = [c_ulong, c_int, c_int, c_int] + + self._mc.dll.set_tolerance_speed.restype = c_int + self._mc.dll.set_tolerance_speed.argtypes = [c_ulong, c_int] + + self._mc.dll.get_tolerance_speed.restype = c_int + self._mc.dll.get_tolerance_speed.argtypes = [c_ulong, PINTEGER] + + self._mc.dll.set_tolerance_speed_2_modifiers.restype = c_int + self._mc.dll.set_tolerance_speed_2_modifiers.argtypes = [c_ulong, + c_int, c_int] + + self._mc.dll.get_tolerance_speed_2_modifiers.restype = c_int + self._mc.dll.get_tolerance_speed_2_modifiers.argtypes = [c_ulong, + PINTEGER, + PINTEGER] \ No newline at end of file