Skip to content

Instantly share code, notes, and snippets.

@1480c1
Created March 2, 2020 00:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 1480c1/8c50a0867aa1afceac064d2162120dde to your computer and use it in GitHub Desktop.
Save 1480c1/8c50a0867aa1afceac064d2162120dde to your computer and use it in GitHub Desktop.
From 02a800848d2c436281f6436f88d775d3bce59264 Mon Sep 17 00:00:00 2001
From: Christopher Degawa <ccom@randomderp.com>
Date: Fri, 14 Feb 2020 18:42:02 +0000
Subject: [PATCH 1/8] medialibrary: Update to use std::set instead of
std::vector
---
modules/misc/medialibrary/medialib.cpp | 30 ++++++++++++------------
modules/misc/medialibrary/medialibrary.h | 26 ++++++++++----------
2 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/modules/misc/medialibrary/medialib.cpp b/modules/misc/medialibrary/medialib.cpp
index 4ba802c88d..55edb0274a 100644
--- a/modules/misc/medialibrary/medialib.cpp
+++ b/modules/misc/medialibrary/medialib.cpp
@@ -103,7 +103,7 @@ void wrapEntityCreatedEventCallback( vlc_medialibrary_module_t* ml,
}
void wrapEntityModifiedEventCallback( vlc_medialibrary_module_t* ml,
- const std::vector<int64_t>& ids,
+ const std::set<int64_t>& ids,
vlc_ml_event_type evType )
{
vlc_ml_event_t ev;
@@ -116,7 +116,7 @@ void wrapEntityModifiedEventCallback( vlc_medialibrary_module_t* ml,
}
void wrapEntityDeletedEventCallback( vlc_medialibrary_module_t* ml,
- const std::vector<int64_t>& ids, vlc_ml_event_type evType )
+ const std::set<int64_t>& ids, vlc_ml_event_type evType )
{
vlc_ml_event_t ev;
ev.i_type = evType;
@@ -134,12 +134,12 @@ void MediaLibrary::onMediaAdded( std::vector<medialibrary::MediaPtr> media )
wrapEntityCreatedEventCallback<vlc_ml_media_t>( m_vlc_ml, media, VLC_ML_EVENT_MEDIA_ADDED );
}
-void MediaLibrary::onMediaModified( std::vector<int64_t> mediaIds )
+void MediaLibrary::onMediaModified( std::set<int64_t> mediaIds )
{
wrapEntityModifiedEventCallback( m_vlc_ml, mediaIds, VLC_ML_EVENT_MEDIA_UPDATED );
}
-void MediaLibrary::onMediaDeleted( std::vector<int64_t> mediaIds )
+void MediaLibrary::onMediaDeleted( std::set<int64_t> mediaIds )
{
wrapEntityDeletedEventCallback( m_vlc_ml, mediaIds, VLC_ML_EVENT_MEDIA_DELETED );
}
@@ -149,12 +149,12 @@ void MediaLibrary::onArtistsAdded( std::vector<medialibrary::ArtistPtr> artists
wrapEntityCreatedEventCallback<vlc_ml_artist_t>( m_vlc_ml, artists, VLC_ML_EVENT_ARTIST_ADDED );
}
-void MediaLibrary::onArtistsModified( std::vector<int64_t> artistIds )
+void MediaLibrary::onArtistsModified( std::set<int64_t> artistIds )
{
wrapEntityModifiedEventCallback( m_vlc_ml, artistIds, VLC_ML_EVENT_ARTIST_UPDATED );
}
-void MediaLibrary::onArtistsDeleted( std::vector<int64_t> artistIds )
+void MediaLibrary::onArtistsDeleted( std::set<int64_t> artistIds )
{
wrapEntityDeletedEventCallback( m_vlc_ml, artistIds, VLC_ML_EVENT_ARTIST_DELETED );
}
@@ -164,12 +164,12 @@ void MediaLibrary::onAlbumsAdded( std::vector<medialibrary::AlbumPtr> albums )
wrapEntityCreatedEventCallback<vlc_ml_album_t>( m_vlc_ml, albums, VLC_ML_EVENT_ALBUM_ADDED );
}
-void MediaLibrary::onAlbumsModified( std::vector<int64_t> albumIds )
+void MediaLibrary::onAlbumsModified( std::set<int64_t> albumIds )
{
wrapEntityModifiedEventCallback( m_vlc_ml, albumIds, VLC_ML_EVENT_ALBUM_UPDATED );
}
-void MediaLibrary::onAlbumsDeleted( std::vector<int64_t> albumIds )
+void MediaLibrary::onAlbumsDeleted( std::set<int64_t> albumIds )
{
wrapEntityDeletedEventCallback( m_vlc_ml, albumIds, VLC_ML_EVENT_ALBUM_DELETED );
}
@@ -179,12 +179,12 @@ void MediaLibrary::onPlaylistsAdded( std::vector<medialibrary::PlaylistPtr> play
wrapEntityCreatedEventCallback<vlc_ml_playlist_t>( m_vlc_ml, playlists, VLC_ML_EVENT_PLAYLIST_ADDED );
}
-void MediaLibrary::onPlaylistsModified( std::vector<int64_t> playlistIds )
+void MediaLibrary::onPlaylistsModified( std::set<int64_t> playlistIds )
{
wrapEntityModifiedEventCallback( m_vlc_ml, playlistIds, VLC_ML_EVENT_PLAYLIST_UPDATED );
}
-void MediaLibrary::onPlaylistsDeleted( std::vector<int64_t> playlistIds )
+void MediaLibrary::onPlaylistsDeleted( std::set<int64_t> playlistIds )
{
wrapEntityDeletedEventCallback( m_vlc_ml, playlistIds, VLC_ML_EVENT_PLAYLIST_DELETED );
}
@@ -194,25 +194,25 @@ void MediaLibrary::onGenresAdded( std::vector<medialibrary::GenrePtr> genres )
wrapEntityCreatedEventCallback<vlc_ml_genre_t>( m_vlc_ml, genres, VLC_ML_EVENT_GENRE_ADDED );
}
-void MediaLibrary::onGenresModified( std::vector<int64_t> genreIds )
+void MediaLibrary::onGenresModified( std::set<int64_t> genreIds )
{
wrapEntityModifiedEventCallback( m_vlc_ml, genreIds, VLC_ML_EVENT_GENRE_UPDATED );
}
-void MediaLibrary::onGenresDeleted( std::vector<int64_t> genreIds )
+void MediaLibrary::onGenresDeleted( std::set<int64_t> genreIds )
{
wrapEntityDeletedEventCallback( m_vlc_ml, genreIds, VLC_ML_EVENT_GENRE_DELETED );
}
-void MediaLibrary::onMediaGroupAdded( std::vector<medialibrary::MediaGroupPtr> )
+void MediaLibrary::onMediaGroupsAdded( std::vector<medialibrary::MediaGroupPtr> )
{
}
-void MediaLibrary::onMediaGroupModified( std::vector<int64_t> )
+void MediaLibrary::onMediaGroupsModified( std::set<int64_t> )
{
}
-void MediaLibrary::onMediaGroupDeleted( std::vector<int64_t> )
+void MediaLibrary::onMediaGroupsDeleted( std::set<int64_t> )
{
}
diff --git a/modules/misc/medialibrary/medialibrary.h b/modules/misc/medialibrary/medialibrary.h
index c2d8359383..34e9083bfa 100644
--- a/modules/misc/medialibrary/medialibrary.h
+++ b/modules/misc/medialibrary/medialibrary.h
@@ -168,23 +168,23 @@ private:
// IMediaLibraryCb interface
public:
virtual void onMediaAdded(std::vector<medialibrary::MediaPtr> media) override;
- virtual void onMediaModified(std::vector<int64_t> media) override;
- virtual void onMediaDeleted(std::vector<int64_t> mediaIds) override;
+ virtual void onMediaModified(std::set<int64_t> mediaIds) override;
+ virtual void onMediaDeleted(std::set<int64_t> mediaIds) override;
virtual void onArtistsAdded(std::vector<medialibrary::ArtistPtr> artists) override;
- virtual void onArtistsModified(std::vector<int64_t> artists) override;
- virtual void onArtistsDeleted(std::vector<int64_t> artistsIds) override;
+ virtual void onArtistsModified(std::set<int64_t> artists) override;
+ virtual void onArtistsDeleted(std::set<int64_t> artistsIds) override;
virtual void onAlbumsAdded(std::vector<medialibrary::AlbumPtr> albums) override;
- virtual void onAlbumsModified(std::vector<int64_t> albums) override;
- virtual void onAlbumsDeleted(std::vector<int64_t> albumsIds) override;
+ virtual void onAlbumsModified(std::set<int64_t> albums) override;
+ virtual void onAlbumsDeleted(std::set<int64_t> albumsIds) override;
virtual void onPlaylistsAdded(std::vector<medialibrary::PlaylistPtr> playlists) override;
- virtual void onPlaylistsModified(std::vector<int64_t> playlists) override;
- virtual void onPlaylistsDeleted(std::vector<int64_t> playlistIds) override;
+ virtual void onPlaylistsModified(std::set<int64_t> playlists) override;
+ virtual void onPlaylistsDeleted(std::set<int64_t> playlistIds) override;
virtual void onGenresAdded(std::vector<medialibrary::GenrePtr> genres) override;
- virtual void onGenresModified(std::vector<int64_t> genres) override;
- virtual void onGenresDeleted(std::vector<int64_t> genreIds) override;
- virtual void onMediaGroupAdded( std::vector<medialibrary::MediaGroupPtr> mediaGroups ) override;
- virtual void onMediaGroupModified( std::vector<int64_t> mediaGroupsIds ) override;
- virtual void onMediaGroupDeleted( std::vector<int64_t> mediaGroupsIds ) override;
+ virtual void onGenresModified(std::set<int64_t> genres) override;
+ virtual void onGenresDeleted(std::set<int64_t> genreIds) override;
+ virtual void onMediaGroupsAdded( std::vector<medialibrary::MediaGroupPtr> mediaGroups ) override;
+ virtual void onMediaGroupsModified( std::set<int64_t> mediaGroupsIds ) override;
+ virtual void onMediaGroupsDeleted( std::set<int64_t> mediaGroupsIds ) override;
virtual void onDiscoveryStarted(const std::string& entryPoint) override;
virtual void onDiscoveryProgress(const std::string& entryPoint) override;
virtual void onDiscoveryCompleted(const std::string& entryPoint, bool success) override;
--
2.20.1
From 223d4bd9519bd02ee8bcd6aa11118513b2f05c9b Mon Sep 17 00:00:00 2001
From: Christopher Degawa <ccom@randomderp.com>
Date: Fri, 28 Feb 2020 04:38:24 +0000
Subject: [PATCH 2/8] Revert Win32: prefer the static libraries when creating
the dlls
---
lib/Makefile.am | 2 +-
modules/common.am | 4 ++--
src/Makefile.am | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/Makefile.am b/lib/Makefile.am
index f3fc2321cc..749c86daa9 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -64,7 +64,7 @@ libvlc_la_LDFLAGS = \
libvlc_la_DEPENDENCIES = libvlc.sym
if HAVE_WIN32
libvlc_la_DEPENDENCIES += ../src/libvlc_win32_rc.$(OBJEXT)
-libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version -Wc,-static
+libvlc_la_LDFLAGS += -Wl,../src/libvlc_win32_rc.$(OBJEXT) -avoid-version
endif
if HAVE_OS2
libvlc_la_LDFLAGS += -avoid-version
diff --git a/modules/common.am b/modules/common.am
index b991f6ce2f..c17ac6d0dc 100644
--- a/modules/common.am
+++ b/modules/common.am
@@ -32,9 +32,9 @@ AM_LDFLAGS = \
-export-symbols-regex ^vlc_entry \
-shrext $(LIBEXT) \
-no-undefined \
- $(top_builddir)/compat/libcompat.la $(LTLIBVLCCORE)
+ $(top_builddir)/compat/libcompat.la $(LTLIBVLCCORE)
if HAVE_WIN32
-AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo -Wc,-static
+AM_LDFLAGS += $(top_builddir)/modules/module.rc.lo
endif
AM_YFLAGS = -d -Wno-yacc
diff --git a/src/Makefile.am b/src/Makefile.am
index 2b4dfcb7dd..30c3ff6524 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -530,7 +530,7 @@ libvlccore_la_LDFLAGS = \
libvlccore_la_DEPENDENCIES = libvlccore.sym
if HAVE_WIN32
libvlccore_la_DEPENDENCIES += libvlc_win32_rc.$(OBJEXT)
-libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version -Wc,-static $(LIBCOM)
+libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version $(LIBCOM)
endif
if HAVE_OS2
libvlccore_la_LDFLAGS += -avoid-version
@@ -611,7 +611,7 @@ test_mrl_helpers_SOURCES = test/mrl_helpers.c
test_arrays_SOURCES = test/arrays.c
test_vector_SOURCES = test/vector.c
test_shared_data_ptr_SOURCES = test/shared_data_ptr.cpp
-test_extensions_SOURCES = test/extensions.c
+test_extensions_SOURCES = test/extensions.c
test_playlist_SOURCES = playlist/test.c \
playlist/content.c \
playlist/control.c \
--
2.20.1
From 07f1ef840fbad62dd15cc36ac243a8f27126da32 Mon Sep 17 00:00:00 2001
From: Alexey Pavlov <alexpux@gmail.com>
Date: Wed, 10 Jan 2018 15:13:01 +0300
Subject: [PATCH 3/8] Linking libqt_plugin with winmm
---
modules/gui/qt/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
index 627cc5c5ab..8fab76d446 100644
--- a/modules/gui/qt/Makefile.am
+++ b/modules/gui/qt/Makefile.am
@@ -35,7 +35,7 @@ libqt_plugin_la_CXXFLAGS += $(WAYLAND_CLIENT_CFLAGS)
libqt_plugin_la_LIBADD += $(WAYLAND_CLIENT_LIBS)
endif
if HAVE_WIN32
-libqt_plugin_la_LIBADD += $(LIBCOM) -lcomctl32 -luuid
+libqt_plugin_la_LIBADD += $(LIBCOM) -lcomctl32 -luuid -lwinmm
endif
if UPDATE_CHECK
libqt_plugin_la_CPPFLAGS += -DUPDATE_CHECK
--
2.20.1
From 9ef8abc577c1a5b57e73938866a0474402aee0d2 Mon Sep 17 00:00:00 2001
From: Christopher Degawa <ccom@randomderp.com>
Date: Fri, 28 Feb 2020 04:44:42 +0000
Subject: [PATCH 4/8] Mingw load libraries not only from system32
---
bin/winvlc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/bin/winvlc.c b/bin/winvlc.c
index 10fea9d0f2..4d097d47f8 100644
--- a/bin/winvlc.c
+++ b/bin/winvlc.c
@@ -167,7 +167,9 @@ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
* The LoadLibrary* calls from the modules and the 3rd party code
* will search in SYSTEM32 only
* */
+#ifndef __MINGW32__
SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_SYSTEM32);
+#endif
/***
* Load DLLs from system32 before any other folder (when possible)
*/
--
2.20.1
From 882bb12ff7bcd76d671051138d3b508816d213c9 Mon Sep 17 00:00:00 2001
From: Christopher Degawa <ccom@randomderp.com>
Date: Fri, 28 Feb 2020 04:48:36 +0000
Subject: [PATCH 5/8] fix-inet_pton-search
---
configure.ac | 42 +++++++++++++++++++++++++++++++++++-------
1 file changed, 35 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index bc1874cb97..7b94d2f146 100644
--- a/configure.ac
+++ b/configure.ac
@@ -710,15 +710,22 @@ AC_CHECK_TYPES([max_align_t],,,
dnl Checks for socket stuff
VLC_SAVE_FLAGS
SOCKET_LIBS=""
-AC_SEARCH_LIBS(connect, [socket], [
+AC_SEARCH_LIBS(connect, [socket ws2_32], [
AS_IF([test "$ac_cv_search_connect" != "none required"], [
SOCKET_LIBS="$ac_cv_search_connect"
])
-], [
- AS_IF([test "${SYS}" = "mingw32"], [
- SOCKET_LIBS="-lws2_32 -liphlpapi"
- ])
-])
+],
+dnl on 32-bit Windows, API functions are stdcall, so use the prototype in the API header
+ [ AC_MSG_CHECKING(for connect in 32-bit Windows) ]
+ [ SAVELIBS=${LIBS} ]
+ [ LIBS="${LIBS} -lws2_32" ]
+ [ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <winsock2.h>],[return connect(0,0,0);])],
+ [ SOCKET_LIBS="-lws2_32" ]
+ [ AC_MSG_RESULT(yes) ],
+ [ AC_MSG_RESULT(no) ]
+ )]
+ [ LIBS=${SAVELIBS} ]
+)
AC_SEARCH_LIBS([inet_pton], [nsl], [
AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
@@ -742,7 +749,28 @@ AC_LINK_IFELSE([
inet_pton(AF_INET, "127.0.0.1", dst);
])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
-AC_CHECK_FUNCS([if_nameindex])
+AC_SEARCH_LIBS([if_nametoindex], [iphlpapi], [
+ AC_DEFINE(HAVE_IF_NAMETOINDEX, 1, [Define to 1 if if_nametoindex is available.])
+ AS_IF([test "$ac_cv_search_if_nametoindex" != "none required"], [
+ SOCKET_LIBS="$ac_cv_search_if_nametoindex $SOCKET_LIBS"
+ ])
+],
+dnl on 32-bit Windows, API functions are stdcall, so use the prototype in the API header
+ [ AC_MSG_CHECKING(for if_nametoindex in 32-bit Windows) ]
+ [ SAVELIBS=${LIBS} ]
+ [ LIBS="${LIBS} -liphlpapi" ]
+ [ AC_LINK_IFELSE([AC_LANG_PROGRAM([
+ #include <winsock2.h>
+ #include <Iphlpapi.h>],[return if_nametoindex(0);])],
+ [ AC_DEFINE(HAVE_IF_NAMETOINDEX, 1, [Define to 1 if if_nametoindex is available.]) ]
+ [ SOCKET_LIBS="-liphlpapi $SOCKET_LIBS" ]
+ [ AC_MSG_RESULT(yes) ],
+ [ AC_MSG_RESULT(no) ]
+ )]
+ [ LIBS=${SAVELIBS} ]
+)
+
+AC_CHECK_FUNC([if_nameindex])
VLC_RESTORE_FLAGS
AC_SUBST([SOCKET_LIBS])
--
2.20.1
From 6efa35342e48e5ffd289410ae01eeefdd49269e7 Mon Sep 17 00:00:00 2001
From: Christopher Degawa <ccom@randomderp.com>
Date: Tue, 25 Feb 2020 20:06:29 +0000
Subject: [PATCH 6/8] temp remove vlc-static
---
Makefile.am | 7 ++-----
bin/Makefile.am | 15 ---------------
2 files changed, 2 insertions(+), 20 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 60ea3fb80b..d9cd85c34a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,7 +23,7 @@ BUILT_SOURCES_distclean =
BUILT_SOURCES = $(BUILT_SOURCES_distclean)
-SUFFIXES =
+SUFFIXES =
DISTCHECK_CONFIGURE_FLAGS = \
--enable-fast-install \
@@ -114,7 +114,7 @@ libvlc: libvlccore
cd lib && $(MAKE) $(AM_MAKEFLAGS) libvlc.la
core: libvlc vlc$(EXEEXT)
- cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT) vlc-static$(EXEEXT)
+ cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT)
doc:
cd doc && $(MAKE) $(AM_MAKEFLAGS) doc
@@ -156,8 +156,6 @@ endif
vlc$(EXEEXT):
if HAVE_DARWIN
$(AM_V_GEN)$(LN_S) -f bin/vlc-osx-static vlc
-else
- $(AM_V_GEN)$(LN_S) -f bin/vlc-static$(EXEEXT) vlc$(EXEEXT)
endif
TESTS = test/run_vlc.sh
@@ -218,4 +216,3 @@ update-po:
include extras/package/macosx/package.mak
include extras/package/win32/package.mak
include extras/package/win32/msi.mak
-
diff --git a/bin/Makefile.am b/bin/Makefile.am
index 699fbd4bf0..cd6d355695 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -6,7 +6,6 @@ bin_PROGRAMS = vlc-osx
noinst_PROGRAMS = vlc-osx-static
else
bin_PROGRAMS = vlc
-noinst_PROGRAMS = vlc-static
endif
endif
EXTRA_DIST = vlc_win32_rc.rc.in
@@ -70,20 +69,6 @@ vlc_osx_static_OBJCFLAGS += -F$(CONTRIB_DIR)/Frameworks
vlc_osx_static_CPPFLAGS = -DHAVE_BREAKPAD
endif
-
-#
-# Static (debug) VLC executable
-#
-vlc_static_SOURCES = $(vlc_SOURCES)
-vlc_static_CFLAGS = $(AM_CFLAGS) \
- -DTOP_BUILDDIR=\"$$(cd "$(top_builddir)"; pwd)\" \
- -DTOP_SRCDIR=\"$$(cd "$(top_srcdir)"; pwd)\" \
- $(NULL)
-vlc_static_CPPFLAGS = $(vlc_CPPFLAGS)
-vlc_static_DEPENDENCIES = $(vlc_DEPENDENCIES)
-vlc_static_LDADD = $(vlc_LDADD)
-vlc_static_LDFLAGS = $(vlc_LDFLAGS) -no-install -static
-
#
# Root wrapper
#
--
2.20.1
From 3137fe4021f90450b2780709249d4e002cfa7976 Mon Sep 17 00:00:00 2001
From: Christopher Degawa <ccom@randomderp.com>
Date: Fri, 28 Feb 2020 04:56:50 +0000
Subject: [PATCH 7/8] livehttp plugin: remove -lgpg-error
---
modules/access_output/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/access_output/Makefile.am b/modules/access_output/Makefile.am
index f6f78c0b73..2b1512bfc8 100644
--- a/modules/access_output/Makefile.am
+++ b/modules/access_output/Makefile.am
@@ -14,7 +14,7 @@ access_out_LTLIBRARIES = \
libaccess_output_livehttp_plugin_la_SOURCES = access_output/livehttp.c
libaccess_output_livehttp_plugin_la_CFLAGS = $(AM_CFLAGS) $(GCRYPT_CFLAGS)
-libaccess_output_livehttp_plugin_la_LIBADD = $(GCRYPT_LIBS) -lgpg-error $(LIBM)
+libaccess_output_livehttp_plugin_la_LIBADD = $(GCRYPT_LIBS) $(LIBM)
if HAVE_GCRYPT
access_out_LTLIBRARIES += libaccess_output_livehttp_plugin.la
endif
--
2.20.1
From 31b6301b43013602d36197fcdd1615dead6e4e30 Mon Sep 17 00:00:00 2001
From: Martell Malone <martellmalone@gmail.com>
Date: Tue, 25 Nov 2014 21:20:09 +0000
Subject: [PATCH 8/8] Use libdir for plugins on msys2
---
modules/gui/skins2/win32/win32_factory.cpp | 2 ++
src/win32/dirs.c | 38 +++++++++++++++++++++-
2 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/modules/gui/skins2/win32/win32_factory.cpp b/modules/gui/skins2/win32/win32_factory.cpp
index 7cd90f2de5..1b97af77fc 100644
--- a/modules/gui/skins2/win32/win32_factory.cpp
+++ b/modules/gui/skins2/win32/win32_factory.cpp
@@ -237,6 +237,8 @@ bool Win32Factory::init()
datadir = config_GetSysPath(VLC_PKG_DATA_DIR, NULL);
m_resourcePath.push_back( (std::string)datadir + "\\skins" );
m_resourcePath.push_back( (std::string)datadir + "\\skins2" );
+ m_resourcePath.push_back( (std::string)datadir + "\\vlc\\skins" );
+ m_resourcePath.push_back( (std::string)datadir + "\\vlc\\skins2" );
m_resourcePath.push_back( (std::string)datadir + "\\share\\skins" );
m_resourcePath.push_back( (std::string)datadir + "\\share\\skins2" );
free( datadir );
diff --git a/src/win32/dirs.c b/src/win32/dirs.c
index a9c0d68022..7419663703 100644
--- a/src/win32/dirs.c
+++ b/src/win32/dirs.c
@@ -200,7 +200,15 @@ char *config_GetLibDir (void)
goto error;
*file = L'\0';
- return FromWide (wpath);
+ file = wcsrchr (wpath, L'\\');
+ if (file == NULL)
+ goto error;
+ *file = L'\0';
+
+ wchar_t wpathlib[MAX_PATH];
+ wsprintf(wpathlib,L"%s\\lib\\vlc", wpath);
+
+ return FromWide (wpathlib);
error:
abort ();
#endif
@@ -208,8 +216,36 @@ error:
static char *config_GetDataDir(void)
{
+#ifdef __MINGW32__
+ /* Get our full path */
+ MEMORY_BASIC_INFORMATION mbi;
+ if (!VirtualQuery (config_GetLibDir, &mbi, sizeof(mbi)))
+ goto error;
+
+ wchar_t wpath[MAX_PATH];
+ if (!GetModuleFileName ((HMODULE) mbi.AllocationBase, wpath, MAX_PATH))
+ goto error;
+
+ wchar_t *file = wcsrchr (wpath, L'\\');
+ if (file == NULL)
+ goto error;
+ *file = L'\0';
+
+ file = wcsrchr (wpath, L'\\');
+ if (file == NULL)
+ goto error;
+ *file = L'\0';
+
+ wchar_t wpathlib[MAX_PATH];
+ wsprintf(wpathlib,L"%s\\share", wpath);
+
+ return FromWide (wpathlib);
+error:
+ abort ();
+#else
const char *path = getenv ("VLC_DATA_PATH");
return (path != NULL) ? strdup (path) : config_GetLibDir ();
+#endif
}
char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
--
2.20.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment