215af829c86529e2b13aad11ead398d56e400015
[clinton/Smoothieware.git] / src / modules / tools / toolmanager / ToolManager.h
1 /*
2 this file is part of smoothie (http://smoothieware.org/). the motion control part is heavily based on grbl (https://github.com/simen/grbl).
3 smoothie 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 3 of the license, or (at your option) any later version.
4 smoothie is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. see the gnu general public license for more details.
5 you should have received a copy of the gnu general public license along with smoothie. if not, see <http://www.gnu.org/licenses/>.
6 */
7
8 #ifndef TOOLMANAGER_H
9 #define TOOLMANAGER_H
10
11 using namespace std;
12 #include <vector>
13
14 class Tool;
15
16 class ToolManager : public Module
17 {
18 public:
19 ToolManager();
20
21 void on_module_loaded();
22 void on_gcode_received(void *);
23 void on_config_reload(void *);
24 void on_get_public_data(void *argument);
25 void on_set_public_data(void *argument);
26 void add_tool(Tool *tool_to_add);
27
28 private:
29 vector<Tool *> tools;
30
31 int active_tool;
32 uint16_t current_tool_name;
33 bool return_error_on_unhandled_gcode;
34 };
35
36
37
38 #endif