Browse Source

install fonts only if not already installed on the system

cairo_optimizations
Alexandros Theodotou 3 years ago
parent
commit
65263b537c
Signed by: alex
GPG Key ID: 022EAE42313D70F3
  1. 3
      .gitignore
  2. 11
      data/meson.build
  3. 1
      meson.build
  4. 79
      src/plugins/lv2/lv2_gtk.c
  5. 24
      src/plugins/lv2/lv2_ui.c

3
.gitignore vendored

@ -168,3 +168,6 @@ valog* @@ -168,3 +168,6 @@ valog*
# callgrind
callgrind*
# profiling
results

11
data/meson.build

@ -19,10 +19,13 @@ install_data ( @@ -19,10 +19,13 @@ install_data (
'org.zrythm.Zrythm.gschema.xml',
install_dir: schemasdir)
# install fonts
install_subdir (
join_paths ('fonts', 'DSEG14-Classic-MINI'),
install_dir: join_paths (fontsdir))
# install fonts if needed
should_install_dseg = not run_command('fc-list').stdout().contains('DSEG14')
if should_install_dseg
install_subdir (
join_paths ('fonts', 'DSEG14-Classic-MINI'),
install_dir: fontsdir)
endif
#install samples
install_data (

1
meson.build

@ -460,6 +460,7 @@ summary = [ @@ -460,6 +460,7 @@ summary = [
' Generate developer docs: @0@'.format(get_option('gen_dev_docs')),
' Build/install manpage: @0@'.format(get_option('manpage')),
' Build/install user manual: @0@'.format(get_option('user_manual')),
' Install DSEG font: @0@'.format(should_install_dseg),
' Coverage reports: @0@'.format(get_option('b_coverage')),
' Optional libraries:',
' ffmpeg: @0@'.format(get_option('enable_ffmpeg')),

79
src/plugins/lv2/lv2_gtk.c

@ -1661,7 +1661,8 @@ lv2_gtk_open_ui ( @@ -1661,7 +1661,8 @@ lv2_gtk_open_ui (
g_signal_connect (
G_OBJECT (window), "delete-event",
G_CALLBACK (on_delete_event), plugin);
LilvNode* name = lilv_plugin_get_name(plugin->lilv_plugin);
LilvNode* name =
lilv_plugin_get_name (plugin->lilv_plugin);
lilv_node_free (name);
/* connect destroy signal */
@ -1672,19 +1673,24 @@ lv2_gtk_open_ui ( @@ -1672,19 +1673,24 @@ lv2_gtk_open_ui (
set_window_title(plugin);
GtkWidget* vbox = new_box(false, 0);
gtk_window_set_role(GTK_WINDOW(window), "plugin_ui");
gtk_container_add(GTK_CONTAINER(window), vbox);
if (!no_menu) {
build_menu(plugin, window, vbox);
}
/* Create/show alignment to contain UI (whether custom or generic) */
GtkWidget* alignment = gtk_alignment_new(0.5, 0.5, 1.0, 1.0);
gtk_box_pack_start(GTK_BOX(vbox), alignment, TRUE, TRUE, 0);
gtk_widget_show(alignment);
gtk_window_set_role (
GTK_WINDOW(window), "plugin_ui");
gtk_container_add (
GTK_CONTAINER(window), vbox);
if (!no_menu)
build_menu (plugin, window, vbox);
/* Create/show alignment to contain UI (whether
* custom or generic) */
GtkWidget* alignment =
gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
gtk_box_pack_start (
GTK_BOX (vbox), alignment, TRUE, TRUE, 0);
gtk_widget_show (alignment);
/* Attempt to instantiate custom UI if necessary */
/* Attempt to instantiate custom UI if
* necessary */
if (plugin->ui && !LV2_NODES.opts.generic_ui)
{
if (plugin->externalui)
@ -1694,9 +1700,10 @@ lv2_gtk_open_ui ( @@ -1694,9 +1700,10 @@ lv2_gtk_open_ui (
LV2_External_UI_Host extui;
extui.ui_closed = on_external_ui_closed;
extui.plugin_human_id =
lilv_node_as_string(name);
lilv_node_as_string (name);
lv2_ui_instantiate (
plugin, lilv_node_as_uri(plugin->ui_type),
plugin,
lilv_node_as_uri (plugin->ui_type),
&extui);
}
else
@ -1733,31 +1740,41 @@ lv2_gtk_open_ui ( @@ -1733,31 +1740,41 @@ lv2_gtk_open_ui (
else
{
g_message ("No UI found, building native..");
GtkWidget* controls = build_control_widget(plugin, window);
GtkWidget* scroll_win = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_add_with_viewport(
GTK_SCROLLED_WINDOW(scroll_win), controls);
gtk_scrolled_window_set_policy(
GTK_SCROLLED_WINDOW(scroll_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(alignment), scroll_win);
GtkWidget* controls =
build_control_widget (plugin, window);
GtkWidget* scroll_win =
gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_add_with_viewport (
GTK_SCROLLED_WINDOW (scroll_win), controls);
gtk_scrolled_window_set_policy (
GTK_SCROLLED_WINDOW (scroll_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_container_add (
GTK_CONTAINER (alignment), scroll_win);
gtk_widget_show_all(vbox);
GtkRequisition controls_size, box_size;
size_request(GTK_WIDGET(controls), &controls_size);
size_request(GTK_WIDGET(vbox), &box_size);
gtk_window_set_default_size(
GTK_WINDOW(window),
MAX(MAX(box_size.width, controls_size.width) + 24, 640),
box_size.height + controls_size.height);
gtk_window_present(GTK_WINDOW(window));
size_request (GTK_WIDGET(controls), &controls_size);
size_request (GTK_WIDGET(vbox), &box_size);
gtk_window_set_default_size (
GTK_WINDOW(window),
MAX (
MAX (
box_size.width,
controls_size.width) + 24,
640),
box_size.height + controls_size.height);
gtk_window_present (GTK_WINDOW(window));
}
lv2_ui_init (plugin);
plugin->plugin->ui_instantiated = 1;
g_message (
"plugin window shown, adding idle timeout");
g_timeout_add (
1000 / plugin->ui_update_hz,
(GSourceFunc) update_plugin_ui, plugin);

24
src/plugins/lv2/lv2_ui.c

@ -423,16 +423,20 @@ lv2_ui_instantiate ( @@ -423,16 +423,20 @@ lv2_ui_instantiate (
NULL
};
plugin->ui_instance = suil_instance_new(
plugin->ui_host,
plugin,
native_ui_type,
lilv_node_as_uri(lilv_plugin_get_uri(plugin->lilv_plugin)),
lilv_node_as_uri(lilv_ui_get_uri(plugin->ui)),
lilv_node_as_uri(plugin->ui_type),
bundle_path,
binary_path,
ui_features);
plugin->ui_instance =
suil_instance_new (
plugin->ui_host,
plugin,
native_ui_type,
lilv_node_as_uri (
lilv_plugin_get_uri (
plugin->lilv_plugin)),
lilv_node_as_uri (
lilv_ui_get_uri(plugin->ui)),
lilv_node_as_uri(plugin->ui_type),
bundle_path,
binary_path,
ui_features);
}
lilv_free(binary_path);

Loading…
Cancel
Save