vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Fri Nov 20 19:39:53 2020 +0200| [3d0587bfad85817d576d005eefe2c6914bb59e51] | committer: Rémi Denis-Courmont
vlc: run autorun modules at start-up This invokes each and every autorun module before instantiating the main interface. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3d0587bfad85817d576d005eefe2c6914bb59e51 --- src/interface/interface.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/interface/interface.c b/src/interface/interface.c index cc490a35f2..37ecf0e6d9 100644 --- a/src/interface/interface.c +++ b/src/interface/interface.c @@ -240,6 +240,22 @@ void libvlc_InternalPlay(libvlc_int_t *libvlc) vlc_playlist_Unlock(playlist); } +static void libvlc_AutoRun(libvlc_int_t *libvlc) +{ + struct vlc_logger *log = libvlc->obj.logger; + module_t **mods; + ssize_t total = vlc_module_match("autorun", NULL, false, &mods, NULL); + + for (ssize_t i = 0; i < total; i++) { + void (*func)(libvlc_int_t *) = vlc_module_map(log, mods[i]); + + assert(func != NULL); + func(libvlc); + } + + free(mods); +} + /** * Starts an interface plugin. */ @@ -251,6 +267,8 @@ int libvlc_InternalAddIntf(libvlc_int_t *libvlc, const char *name) ret = intf_Create(libvlc, name); else { /* Default interface */ + libvlc_AutoRun(libvlc); + char *intf = var_InheritString(libvlc, "intf"); if (intf == NULL) /* "intf" has not been set */ msg_Info(libvlc, _("Running vlc with the default interface. " _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
