mirror of
https://github.com/Rafostar/clapper.git
synced 2025-08-29 23:32:04 +02:00
Implement a working MPRIS DBus connection with a separate API to control it. Right now only player playback state is reflected and Play/Pause/PlayPause calls work.
108 lines
3.0 KiB
Meson
Vendored
108 lines
3.0 KiB
Meson
Vendored
gnome = import('gnome')
|
|
|
|
gstclapper_sources = [
|
|
'gstclapper.c',
|
|
'gstclapper-signal-dispatcher.c',
|
|
'gstclapper-video-renderer.c',
|
|
'gstclapper-media-info.c',
|
|
'gstclapper-g-main-context-signal-dispatcher.c',
|
|
'gstclapper-video-overlay-video-renderer.c',
|
|
'gstclapper-visualization.c',
|
|
'gstclapper-mpris.c',
|
|
'gstclapper-gtk4-plugin.c',
|
|
|
|
'gtk4/gstclapperglsink.c',
|
|
'gtk4/gstgtkutils.c',
|
|
'gtk4/gtkclapperglwidget.c',
|
|
]
|
|
gstclapper_headers = [
|
|
'clapper.h',
|
|
'clapper-prelude.h',
|
|
'gstclapper.h',
|
|
'gstclapper-types.h',
|
|
'gstclapper-signal-dispatcher.h',
|
|
'gstclapper-video-renderer.h',
|
|
'gstclapper-media-info.h',
|
|
'gstclapper-g-main-context-signal-dispatcher.h',
|
|
'gstclapper-video-overlay-video-renderer.h',
|
|
'gstclapper-visualization.h',
|
|
'gstclapper-mpris.h',
|
|
'gstclapper-gtk4-plugin.h',
|
|
]
|
|
gstclapper_defines = [
|
|
'-DHAVE_CONFIG_H',
|
|
'-DBUILDING_GST_CLAPPER',
|
|
'-DGST_USE_UNSTABLE_API',
|
|
'-DHAVE_GTK_GL',
|
|
]
|
|
gtk_deps = [gstgl_dep, gstglproto_dep]
|
|
have_gtk_gl_windowing = false
|
|
|
|
gtk4_dep = dependency('gtk4', required : true)
|
|
|
|
if not gtk4_dep.version().version_compare('>=4.0.0')
|
|
error('GTK4 version on this system is too old')
|
|
endif
|
|
|
|
if gst_gl_have_window_x11 and (gst_gl_have_platform_egl or gst_gl_have_platform_glx)
|
|
gtk_x11_dep = dependency('gtk4-x11', required : false)
|
|
if gtk_x11_dep.found()
|
|
gtk_deps += gtk_x11_dep
|
|
if gst_gl_have_platform_glx
|
|
gtk_deps += gstglx11_dep
|
|
endif
|
|
have_gtk_gl_windowing = true
|
|
endif
|
|
endif
|
|
|
|
if gst_gl_have_window_wayland and gst_gl_have_platform_egl
|
|
gtk_wayland_dep = dependency('gtk4-wayland', required : false)
|
|
if gtk_wayland_dep.found()
|
|
gtk_deps += [gtk_wayland_dep, gstglwayland_dep]
|
|
have_gtk_gl_windowing = true
|
|
endif
|
|
endif
|
|
|
|
if gst_gl_have_platform_egl
|
|
gtk_deps += gstglegl_dep
|
|
endif
|
|
|
|
if not have_gtk_gl_windowing
|
|
error('GTK4 widget requires GL windowing')
|
|
endif
|
|
|
|
gstclapper_mpris_gdbus = gnome.gdbus_codegen('gstclapper-mpris-gdbus',
|
|
sources: '../../../data/gstclapper-mpris-gdbus.xml',
|
|
interface_prefix: 'org.mpris.',
|
|
namespace: 'GstClapperMpris'
|
|
)
|
|
|
|
gstclapper = library('gstclapper-' + api_version,
|
|
gstclapper_sources + gstclapper_mpris_gdbus,
|
|
c_args : gstclapper_defines,
|
|
link_args : noseh_link_args,
|
|
include_directories : [configinc, libsinc],
|
|
version : libversion,
|
|
install : true,
|
|
install_dir : clapper_libdir,
|
|
dependencies : [gtk4_dep, glib_dep, gio_dep,
|
|
gstbase_dep, gstvideo_dep, gstaudio_dep,
|
|
gsttag_dep, gstpbutils_dep, libm] + gtk_deps,
|
|
)
|
|
|
|
clapper_gir = gnome.generate_gir(gstclapper,
|
|
sources : gstclapper_sources + gstclapper_headers,
|
|
namespace : 'GstClapper',
|
|
nsversion : api_version,
|
|
identifier_prefix : 'Gst',
|
|
symbol_prefix : 'gst',
|
|
export_packages : 'gstreamer-clapper-1.0',
|
|
includes : ['Gst-1.0', 'GstPbutils-1.0', 'GstBase-1.0', 'GstVideo-1.0',
|
|
'GstAudio-1.0', 'GstTag-1.0'],
|
|
install : true,
|
|
install_dir_typelib : join_paths(clapper_libdir, 'girepository-1.0'),
|
|
extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'],
|
|
dependencies : [gstbase_dep, gstvideo_dep, gstaudio_dep,
|
|
gsttag_dep, gstpbutils_dep]
|
|
)
|