ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / Soft / Lib / ardrone_tool / ardrone_tool_configuration.h
diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/ardrone_tool_configuration.h b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/ardrone_tool_configuration.h
new file mode 100644 (file)
index 0000000..0083c26
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ *  ardrone_tool_configuration.h
+ *  
+ *
+ *  Created by Frederic D'HAEYER on 13/09/10.
+ *  Copyright 2010 Parrot SA. All rights reserved.
+ *
+ */
+#ifndef _ARDRONE_TOOL_CONFIGURATION_H_
+#define _ARDRONE_TOOL_CONFIGURATION_H_
+#include <ardrone_api.h>
+#include <VP_Os/vp_os_types.h>
+#include <VP_Os/vp_os_signal.h>
+#include <VP_Api/vp_api_thread_helper.h>
+
+#include <ardrone_tool/Control/ardrone_control_ack.h>
+#include <ardrone_tool/Control/ardrone_control_configuration.h>
+
+#include <iniparser3.0b/src/iniparser.h>
+
+#undef ARDRONE_CONFIG_KEY_IMM
+#undef ARDRONE_CONFIG_KEY_REF
+#undef ARDRONE_CONFIG_KEY_STR
+#define ARDRONE_CONFIG_KEY_IMM(KEY, NAME, INI_TYPE, C_TYPE, C_TYPE_PTR, RW, DEFAULT, CALLBACK)
+#define ARDRONE_CONFIG_KEY_REF(KEY, NAME, INI_TYPE, C_TYPE, C_TYPE_PTR, RW, DEFAULT, CALLBACK)
+#define ARDRONE_CONFIG_KEY_STR(KEY, NAME, INI_TYPE, C_TYPE, C_TYPE_PTR, RW, DEFAULT, CALLBACK)
+#include <config_keys.h>
+
+typedef void (*ardrone_tool_configuration_callback)(bool_t result);
+
+typedef struct _ardrone_tool_configuration_data_t {
+       char* key;
+       void* value;
+       ardrone_at_configuration_set callback;
+       ARDRONE_CONTROL_MODE control_mode;
+       ardrone_tool_configuration_callback result_callback;
+       ardrone_control_event_t* event;
+} ardrone_tool_configuration_data_t;
+
+#define ARDRONE_TOOL_CONFIGURATION_ADDEVENT(NAME, VALUE, CALLBACK)     ardrone_tool_configuration_addevent_##NAME(VALUE, CALLBACK)
+#define ARDRONE_TOOL_CONFIGURATION_GET(CALLBACK)                                       ardrone_tool_configuration_get(CALLBACK)
+#define ARDRONE_TOOL_CUSTOM_CONFIGURATION_GET(CALLBACK)                                ardrone_tool_custom_configuration_get(CALLBACK)
+
+#undef ARDRONE_CONFIG_KEY_IMM
+#undef ARDRONE_CONFIG_KEY_REF
+#undef ARDRONE_CONFIG_KEY_STR
+#define ARDRONE_CONFIG_KEY_IMM(KEY, NAME, INI_TYPE, C_TYPE, C_TYPE_PTR, RW, DEFAULT, CALLBACK) \
+bool_t ardrone_tool_configuration_addevent_##NAME(C_TYPE_PTR value, ardrone_tool_configuration_callback result_callback);
+#define ARDRONE_CONFIG_KEY_REF(KEY, NAME, INI_TYPE, C_TYPE, C_TYPE_PTR, RW, DEFAULT, CALLBACK)
+#define ARDRONE_CONFIG_KEY_STR(KEY, NAME, INI_TYPE, C_TYPE, C_TYPE_PTR, RW, DEFAULT, CALLBACK) \
+bool_t ardrone_tool_configuration_addevent_##NAME(C_TYPE_PTR value, ardrone_tool_configuration_callback result_callback);
+#include <config_keys.h>
+
+extern ardrone_config_t        ardrone_control_config;
+extern ardrone_config_t        ardrone_control_config_default;
+extern ardrone_config_t                ardrone_application_default_config;
+
+void ardrone_tool_reset_configuration(void);
+void ardrone_tool_configuration_init(void);
+void ardrone_tool_send_application_default(void);
+void ardrone_tool_send_user_default(void);
+void ardrone_tool_send_session_default(void);
+bool_t ardrone_tool_configuration_get(ardrone_tool_configuration_callback result_callback);
+bool_t ardrone_tool_custom_configuration_get(ardrone_tool_configuration_callback result_callback);
+
+PROTO_THREAD_ROUTINE(ardrone_configuration, data);
+
+#endif // _ARDRONE_TOOL_CONFIGURATION_H_