X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fdriver-types.cpp;h=fef8547b35c11e33e52cf59df7b72b4a14b36881;hb=3bb58c2b45af12c0f9c9eac648e67ac6fa90e104;hp=d0fec5065d042bf6e3990f48d045fffa3cd73cf9;hpb=10b175d2183bb4dbe9a53c773465ed714e890290;p=guile-irrlicht.git diff --git a/src/driver-types.cpp b/src/driver-types.cpp index d0fec50..fef8547 100644 --- a/src/driver-types.cpp +++ b/src/driver-types.cpp @@ -23,41 +23,44 @@ #include #include "driver-types.h" - using namespace irr; - video::E_DRIVER_TYPE scm_to_driver_type (SCM driver_type) { - char* driverType = scm_to_utf8_stringn (scm_symbol_to_string (driver_type), NULL); - if (!strcmp (driverType, "null")) + char* type_name = scm_to_utf8_string (scm_symbol_to_string (driver_type)); + video::E_DRIVER_TYPE type; + + if (!strcmp (type_name, "null")) { - return video::EDT_NULL; + type = video::EDT_NULL; } - else if (!strcmp (driverType, "software")) + else if (!strcmp (type_name, "software")) { - return video::EDT_SOFTWARE; + type = video::EDT_SOFTWARE; } - else if (!strcmp (driverType, "burnings")) + else if (!strcmp (type_name, "burnings")) { - return video::EDT_BURNINGSVIDEO; + type = video::EDT_BURNINGSVIDEO; } - else if (!strcmp (driverType, "direct3d8")) + else if (!strcmp (type_name, "direct3d8")) { - return video::EDT_DIRECT3D8; + type = video::EDT_DIRECT3D8; } - else if (!strcmp (driverType, "direct3d9")) + else if (!strcmp (type_name, "direct3d9")) { - return video::EDT_DIRECT3D9; + type = video::EDT_DIRECT3D9; } - else if (!strcmp (driverType, "opengl")) + else if (!strcmp (type_name, "opengl")) { - return video::EDT_OPENGL; + type = video::EDT_OPENGL; } else { scm_error (scm_arg_type_key, NULL, "Wrong driver type: ~S", scm_list_1 (driver_type), scm_list_1 (driver_type)); } + + free (type_name); + return type; }