From 09b27ab32073dba2c565cdda43fcf2c37ea04a7b Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Wed, 9 Jan 2019 00:24:26 +0100 Subject: [PATCH] Split the MIDI mapping proto file in two; one that will be shared with Futatabi soon, and one that is for Nageru only. --- meson.build | 6 +++--- nageru/mainwindow.cpp | 2 +- nageru/midi_mapper.cpp | 2 +- nageru/midi_mapping_dialog.cpp | 2 +- ...apping.proto => nageru_midi_mapping.proto} | 14 +------------- shared/meson.build | 12 +++++++++++- shared/midi_mapping.proto | 19 +++++++++++++++++++ 7 files changed, 37 insertions(+), 20 deletions(-) rename nageru/{midi_mapping.proto => nageru_midi_mapping.proto} (93%) create mode 100644 shared/midi_mapping.proto diff --git a/meson.build b/meson.build index 461c125..fa6d40f 100644 --- a/meson.build +++ b/meson.build @@ -159,9 +159,9 @@ endif # Protobuf compilation. gen = generator(protoc, \ output : ['@BASENAME@.pb.cc', '@BASENAME@.pb.h'], - arguments : ['--proto_path=@CURRENT_SOURCE_DIR@/nageru', '--cpp_out=@BUILD_DIR@', '@INPUT@']) -proto_generated = gen.process(['nageru/state.proto', 'nageru/midi_mapping.proto', 'nageru/json.proto']) -protobuf_lib = static_library('protobufs', proto_generated, dependencies: nageru_deps, include_directories: nageru_include_dirs) + arguments : ['--proto_path=@CURRENT_SOURCE_DIR@/nageru', '--cpp_out=@BUILD_DIR@', '-I@CURRENT_SOURCE_DIR@/shared', '@INPUT@']) +proto_generated = gen.process(['nageru/state.proto', 'nageru/json.proto', 'nageru/nageru_midi_mapping.proto']) +protobuf_lib = static_library('nageru_protobufs', proto_generated, dependencies: nageru_deps, include_directories: nageru_include_dirs) protobuf_hdrs = declare_dependency(sources: proto_generated) nageru_link_with += protobuf_lib diff --git a/nageru/mainwindow.cpp b/nageru/mainwindow.cpp index 61e775d..d436040 100644 --- a/nageru/mainwindow.cpp +++ b/nageru/mainwindow.cpp @@ -57,7 +57,7 @@ #include "input_mapping.h" #include "input_mapping_dialog.h" #include "lrameter.h" -#include "midi_mapping.pb.h" +#include "nageru_midi_mapping.pb.h" #include "midi_mapping_dialog.h" #include "mixer.h" #include "nonlinear_fader.h" diff --git a/nageru/midi_mapper.cpp b/nageru/midi_mapper.cpp index 7457fbb..dac78f1 100644 --- a/nageru/midi_mapper.cpp +++ b/nageru/midi_mapper.cpp @@ -19,7 +19,7 @@ #include #include "audio_mixer.h" -#include "midi_mapping.pb.h" +#include "nageru_midi_mapping.pb.h" #include "shared/midi_mapper_util.h" #include "shared/text_proto.h" diff --git a/nageru/midi_mapping_dialog.cpp b/nageru/midi_mapping_dialog.cpp index a3286b4..d099e68 100644 --- a/nageru/midi_mapping_dialog.cpp +++ b/nageru/midi_mapping_dialog.cpp @@ -19,7 +19,7 @@ #include #include "midi_mapper.h" -#include "midi_mapping.pb.h" +#include "nageru_midi_mapping.pb.h" #include "shared/post_to_main_thread.h" #include "ui_midi_mapping.h" diff --git a/nageru/midi_mapping.proto b/nageru/nageru_midi_mapping.proto similarity index 93% rename from nageru/midi_mapping.proto rename to nageru/nageru_midi_mapping.proto index b3da1f0..6eb8001 100644 --- a/nageru/midi_mapping.proto +++ b/nageru/nageru_midi_mapping.proto @@ -4,19 +4,7 @@ syntax = "proto2"; -// A single, given controller mapping. -message MIDIControllerProto { - required int32 controller_number = 1; - // TODO: Add flags like invert here if/when we need them. -} - -message MIDIButtonProto { - required int32 note_number = 1; -} - -message MIDILightProto { - required int32 note_number = 1; -} +import "midi_mapping.proto"; // All the mappings for a given a bus. message MIDIMappingBusProto { diff --git a/shared/meson.build b/shared/meson.build index 90711c0..082e4f5 100644 --- a/shared/meson.build +++ b/shared/meson.build @@ -10,7 +10,16 @@ qt_files = qt5.preprocess( ui_files: ['aboutdialog.ui'], dependencies: shared_qt5deps) +# Protobuf compilation. +gen = generator(protoc, \ + output : ['@BASENAME@.pb.cc', '@BASENAME@.pb.h'], + arguments : ['--proto_path=@CURRENT_SOURCE_DIR@', '--cpp_out=@BUILD_DIR@', '@INPUT@']) +proto_generated = gen.process(['midi_mapping.proto']) +protobuf_lib = static_library('protobufs', proto_generated, dependencies: [protobufdep]) +protobuf_hdrs = declare_dependency(sources: proto_generated) + srcs = ['memcpy_interleaved.cpp', 'metacube2.cpp', 'ffmpeg_raii.cpp', 'mux.cpp', 'metrics.cpp', 'context.cpp', 'httpd.cpp', 'disk_space_estimator.cpp', 'read_file.cpp', 'text_proto.cpp', 'midi_device.cpp'] +srcs += proto_generated # Qt objects. srcs += qt_files @@ -18,8 +27,9 @@ srcs += ['aboutdialog.cpp'] shared = static_library('shared', srcs, include_directories: top_include, dependencies: [shared_qt5deps, libmicrohttpddep, protobufdep, alsadep]) shareddep = declare_dependency( + sources: proto_generated, include_directories: top_include, - link_with: shared) + link_with: [shared, protobuf_lib]) bin2h = executable('bin2h', 'bin2h.cpp') bin2h_gen = generator(bin2h, \ diff --git a/shared/midi_mapping.proto b/shared/midi_mapping.proto new file mode 100644 index 0000000..95ac590 --- /dev/null +++ b/shared/midi_mapping.proto @@ -0,0 +1,19 @@ +// Mappings from MIDI controllers to the UI. (We don't really build +// a more complicated data structure than this in Nageru itself either; +// we just edit and match directly against the protobuf.) + +syntax = "proto2"; + +// A single, given controller mapping. +message MIDIControllerProto { + required int32 controller_number = 1; + // TODO: Add flags like invert here if/when we need them. +} + +message MIDIButtonProto { + required int32 note_number = 1; +} + +message MIDILightProto { + required int32 note_number = 1; +} -- 2.39.2