Exemple #1
0
 def plugin_get_version(self, handle, path):
     """Retrieves version information from the plugin."""
     try:
         type_ptr = C.pointer(C.c_int())
         ver_ptr = C.pointer(C.c_int())
         api_ptr = C.pointer(C.c_int())
         name_ptr = C.pointer(C.c_char_p())
         cap_ptr = C.pointer(C.c_int())
         rval = handle.PluginGetVersion(
             type_ptr, ver_ptr, api_ptr, name_ptr, cap_ptr)
     except AttributeError:
         unload_library(handle)
         log.warn("library '%s' is invalid, no PluginGetVersion() function found." % (
             os.path.basename(path)))
     except OSError as err:
         log.debug("plugin_get_version()")
         log.warn(str(err))
     else:
         if rval == M64ERR_SUCCESS:
             return (type_ptr.contents.value, ver_ptr.contents.value, api_ptr.contents.value,
                     name_ptr.contents.value.decode(), cap_ptr.contents.value)
         else:
             log.debug("plugin_get_version()")
             log.warn(self.error_message(rval))
     return None
Exemple #2
0
 def plugin_get_version(self, handle, path):
     """Retrieves version information from the plugin."""
     try:
         type_ptr = C.pointer(C.c_int())
         ver_ptr = C.pointer(C.c_int())
         api_ptr = C.pointer(C.c_int())
         name_ptr = C.pointer(C.c_char_p())
         cap_ptr = C.pointer(C.c_int())
         rval = handle.PluginGetVersion(type_ptr, ver_ptr, api_ptr,
                                        name_ptr, cap_ptr)
     except AttributeError:
         unload_library(handle)
         log.warn(
             "library '%s' is invalid, no PluginGetVersion() function found."
             % (os.path.basename(path)))
     except OSError as err:
         log.debug("plugin_get_version()")
         log.warn(str(err))
     else:
         if rval == M64ERR_SUCCESS:
             return (type_ptr.contents.value,
                     ver_ptr.contents.value, api_ptr.contents.value,
                     name_ptr.contents.value.decode(),
                     cap_ptr.contents.value)
         else:
             log.debug("plugin_get_version()")
             log.warn(self.error_message(rval))
     return None
 def plugins_unload(self):
     """Unloads plugins."""
     for plugin_type in self.core.plugin_map.keys():
         for plugin_map in self.core.plugin_map[plugin_type].values():
             (plugin_handle, plugin_path, plugin_name,
                 plugin_desc, plugin_version) = plugin_map
             unload_library(plugin_handle)
             del plugin_handle
 def plugins_unload(self):
     """Unloads plugins."""
     for plugin_type in self.core.plugin_map.keys():
         for plugin_map in self.core.plugin_map[plugin_type].values():
             (plugin_handle, plugin_path, plugin_name,
                 plugin_desc, plugin_version) = plugin_map
             unload_library(plugin_handle)
             del plugin_handle
Exemple #5
0
    def init_callback(self):
        if self.input_plugin_path_last != self.input_plugin_path():
            okay_load = True
            if self.input:
                try:
                    unload_library(self.input)
                except Exception as e:
                    okay_load = False
                    sys.stderr.write("Warning: Python scripting extensions attempted to unload/reload the input plugin after a change, and failed: " + e)
            if okay_load:
                self.init_input()

        for key in self.runnables_index:
            obj = self.runnables[key]
            if obj.hasBoot:
                obj.onBoot()

        # Normally, mupen64plus starts halted. That is ont what we want.
        self.core.m64p.DebugSetRunState(C.c_uint(2)) # Enum 2 is RUNNING # TODO: Make a constant
        self.core.m64p.DebugStep()
 def core_unload(self):
     """Unloads core library."""
     if self.core.get_handle():
         unload_library(self.core.get_handle())
         self.core.m64p = None
         self.core.config = None
 def core_unload(self):
     """Unloads core library."""
     if self.core.get_handle():
         unload_library(self.core.get_handle())
         self.core.m64p = None
         self.core.config = None