/********************************************************************** * This file is used for testing random stuff without running the * whole of SatDump, which comes in handy for debugging individual * elements before putting them all together in modules... * * If you are an user, ignore this file which will not be built by * default, and if you're a developper in need of doing stuff here... * Go ahead! * * Don't judge the code you might see in there! :) **********************************************************************/ #include "logger.h" #include #include "libs/sol2/sol.hpp" #include "common/image/image.h" class LuaLogger { public: LuaLogger() {} void trace(std::string log) { logger->trace(log); } void debug(std::string log) { logger->debug(log); } void info(std::string log) { logger->info(log); } void warn(std::string log) { logger->warn(log); } void error(std::string log) { logger->error(log); } void critical(std::string log) { logger->critical(log); } static void bindLogger(sol::state &lua) { lua.new_usertype("lua_logger", "trace", &LuaLogger::trace, "debug", &LuaLogger::debug, "info", &LuaLogger::info, "warn", &LuaLogger::warn, "error", &LuaLogger::error, "critical", &LuaLogger::critical); lua["logger"] = std::make_shared(); } }; int main(int /*argc*/, char *argv[]) { initLogger(); sol::state lua; lua.open_libraries(sol::lib::base); lua.open_libraries(sol::lib::string); lua.open_libraries(sol::lib::math); LuaLogger::bindLogger(lua); //////////////////////////////////////////////////////////////////////////////// sol::usertype> image16_type = lua.new_usertype>( "image16", sol::constructors(), image::Image(size_t, size_t, int)>()); image16_type["clear"] = &image::Image::clear; image16_type["get"] = [](image::Image &img, int i) { return img[i]; }; image16_type["set"] = [](image::Image &img, int i, uint16_t x) { img[i] = img.clamp(x); }; image16_type["depth"] = &image::Image::depth; image16_type["width"] = &image::Image::width; image16_type["height"] = &image::Image::height; image16_type["channels"] = &image::Image::channels; image16_type["size"] = &image::Image::size; image16_type["to_rgb"] = &image::Image::to_rgb; image16_type["to_rgba"] = &image::Image::to_rgba; image16_type["fill_color"] = &image::Image::fill_color; image16_type["fill"] = &image::Image::fill; image16_type["mirror"] = &image::Image::mirror; image16_type["equalize"] = &image::Image::equalize; image16_type["white_balance"] = &image::Image::white_balance; // CROP / CROP-TO image16_type["resize"] = &image::Image::resize; image16_type["resize_to"] = &image::Image::resize_to; image16_type["resize_bilinear"] = &image::Image::resize_bilinear; image16_type["brightness_contrast_old"] = &image::Image::brightness_contrast_old; image16_type["linear_invert"] = &image::Image::linear_invert; image16_type["simple_despeckle"] = &image::Image::simple_despeckle; image16_type["median_blur"] = &image::Image::median_blur; image16_type["draw_pixel"] = &image::Image::draw_pixel; image16_type["draw_line"] = &image::Image::draw_line; image16_type["draw_circle"] = &image::Image::draw_circle; image16_type["draw_image"] = &image::Image::draw_image; // image16_type["draw_text"] = &image::Image::draw_text; image16_type["load_png"] = (void(image::Image::*)(std::string, bool))(&image::Image::load_png); image16_type["save_png"] = &image::Image::save_png; image16_type["load_jpeg"] = (void(image::Image::*)(std::string))(&image::Image::load_jpeg); image16_type["save_jpeg"] = &image::Image::save_jpeg; image16_type["load_img"] = (void(image::Image::*)(std::string))(&image::Image::load_img); image16_type["save_img"] = &image::Image::save_img; //////////////////////////////////////////////////////////////////////////////// std::ifstream isf(argv[1]); std::string lua_src(std::istreambuf_iterator{isf}, {}); lua.script(lua_src); }