Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency Injection & Subprojects #87

Open
wants to merge 34 commits into
base: beta
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
eabc4f4
Use shared library and dependency injection
SubhadeepJasu Jun 16, 2023
ecf9dc7
change wrap location
SubhadeepJasu Jun 16, 2023
ac9c7aa
lint
SubhadeepJasu Jun 16, 2023
5a91432
Remove subproject directory
SubhadeepJasu Jun 16, 2023
e575a77
Add subproject folders to gitignore
SubhadeepJasu Jun 16, 2023
22c94c9
Add Tui shell module
SubhadeepJasu Jun 17, 2023
6b1415e
Use initialize function to initialize aw core
SubhadeepJasu Jun 17, 2023
2b7a591
Use new aw builder
SubhadeepJasu Jun 17, 2023
bb868cc
LINT
SubhadeepJasu Jun 17, 2023
6a3842b
Use VAPIs from subproject
SubhadeepJasu Jun 17, 2023
5ac3dbc
Use new arranger workstation builder
SubhadeepJasu Jun 19, 2023
95d122b
Add styles from the actual library
SubhadeepJasu Jun 19, 2023
7280181
Establish submodules
SubhadeepJasu Jul 15, 2023
3f44ed9
LINT
SubhadeepJasu Jul 15, 2023
e00ce50
Update submodule
SubhadeepJasu Jul 15, 2023
718f44f
Implement di container
SubhadeepJasu Jul 16, 2023
a062b38
Fix submodule situation
SubhadeepJasu Jul 16, 2023
9a7dac1
Clean stuff
SubhadeepJasu Jul 17, 2023
5670809
LINT
SubhadeepJasu Jul 17, 2023
69898f7
Use cmd args
SubhadeepJasu Jul 17, 2023
2d6fdd6
LINT
SubhadeepJasu Jul 17, 2023
12c1c51
Clean stuff
SubhadeepJasu Jul 23, 2023
383f38c
Update submodules
SubhadeepJasu Jul 23, 2023
d4ec965
Remove scalable icons from here
SubhadeepJasu Jul 23, 2023
f21ab87
Make remaining connections
SubhadeepJasu Jul 30, 2023
7003f6b
Subproject update
SubhadeepJasu Aug 13, 2023
fa7b837
FInally got a real instrument plugin and some effects to work!
SubhadeepJasu Aug 15, 2023
9c7da0a
Add lv2 options feature and knob control fixes
SubhadeepJasu Sep 10, 2023
59c5d18
Implement assignable controls
SubhadeepJasu Dec 4, 2023
751c71f
Get flatpak build working (kinda)
SubhadeepJasu Dec 5, 2023
7c2daf0
Fix Github CI
SubhadeepJasu Dec 5, 2023
0cc291f
Add vinject to flatpak manifest
SubhadeepJasu Dec 6, 2023
b6a28bf
Fix vinject lib name in meson script
SubhadeepJasu Dec 6, 2023
cad99a2
Hopefully fix flatpak build now?
SubhadeepJasu Dec 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v3
with:
bundle: Ensembles.flatpak
manifest-path: com.github.subhadeepjasu.ensembles.yml
manifest-path: com.github.ensemblesaw.ensembles.yml
run-tests: true
repository-name: appcenter
repository-url: https://flatpak.elementary.io/repo.flatpakrepo
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,8 @@ null.d
*~
.~lock*
xtleak.kcg.*
subprojects/ens-shell-gtk
subprojects/ens-shell-cli
subprojects/ens-aw-core
subprojects/enstl
subprojects/libvinject
203 changes: 203 additions & 0 deletions com.github.ensemblesaw.ensembles.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
app-id: com.github.ensemblesaw.ensembles
runtime: io.elementary.Platform
runtime-version: '7.3'
sdk: io.elementary.Sdk
command: com.github.ensemblesaw.ensembles
finish-args:
- '--share=ipc'
- '--socket=fallback-x11'
- '--socket=wayland'
- '--socket=pulseaudio'
- '--device=all'
- '--filesystem=home'
# Required for system wide dark style preference
- '--system-talk-name=org.freedesktop.Accounts'
# Required for media keys and MPRIS access
- '--own-name=org.mpris.MediaPlayer2.com.github.subhadeepjasu.ensembles'
- '--talk-name=org.gnome.SettingsDaemon.MediaKeys'
# For PipeWire
- '--filesystem=xdg-run/pipewire-0'
- '--system-talk-name=org.freedesktop.RealtimeKit1'
modules:
# Adds dependency injection
- name: vinject
buildsystem: meson
sources:
- type: git
url: https://gitlab.com/geeky_endeavours/vinject.git
branch: 9.1-unit-tests-using-boxed-values-fix


# Adds support for lv2 virtual instruments and effects plugins
- name: lv2
buildsystem: meson
cleanup:
- /bin
- /include
- /lib/pkgconfig
- /share
sources:
- type: archive
url: https://lv2plug.in/spec/lv2-1.18.10.tar.xz
sha256: 78c51bcf21b54e58bb6329accbb4dae03b2ed79b520f9a01e734bd9de530953f
post-install:
- install -Dm644 -t $FLATPAK_DEST/share/licenses/lv2 ../COPYING
- ln -sf lv2.pc $FLATPAK_DEST/lib/pkgconfig/lv2core.pc

# Allows Ensembles to act as a lv2 host
- name: lilv
buildsystem: meson
modules:
- name: serd
buildsystem: meson
sources:
- type: archive
url: https://download.drobilla.net/serd-0.30.16.tar.xz
sha256: f50f486da519cdd8d03b20c9e42414e459133f5a244411d8e63caef8d9ac9146
post-install:
- install -Dm644 -t $FLATPAK_DEST/share/licenses/serd ../COPYING
cleanup:
- /bin
- /include
- /lib/pkgconfig
- /share/man
- name: sord
buildsystem: meson
sources:
- type: archive
url: https://download.drobilla.net/sord-0.16.14.tar.xz
sha256: 220fd97d5fcb216e7b85db66f685bfdaad7dc58a50d1f96dfb2558dbc6c4731b
post-install:
- install -Dm644 -t $FLATPAK_DEST/share/licenses/sord ../COPYING
cleanup:
- /bin
- /include
- /lib/pkgconfig
- /share/doc
- /share/man
- name: sratom
buildsystem: meson
sources:
- type: archive
url: https://download.drobilla.net/sratom-0.6.14.tar.xz
sha256: 9982faf40db83aedd9b3850e499fecd6852b8b4ba6dede514013655cffaca1e6
post-install:
- install -Dm644 -t $FLATPAK_DEST/share/licenses/sratom ../COPYING
cleanup:
- /include
- /lib/pkgconfig
sources:
- type: archive
url: https://download.drobilla.net/lilv-0.24.20.tar.xz
sha256: 4fb082b9b8b286ea92bbb71bde6b75624cecab6df0cc639ee75a2a096212eebc
post-install:
- install -Dm644 -t $FLATPAK_DEST/share/licenses/lilv ../COPYING
cleanup:
- /bin
- /etc
- /include
- /lib/pkgconfig
- /share/man

- name: zix
buildsystem: meson
sources:
- type: git
url: https://github.com/drobilla/zix.git
tag: v0.4.2

- name: suil
buildsystem: meson
sources:
- type: archive
url: https://download.drobilla.net/suil-0.10.20.tar.xz
sha256: 334a3ed3e73d5e17ff400b3db9801f63809155b0faa8b1b9046f9dd3ffef934e
post-install:
- install -Dm644 -t $FLATPAK_DEST/share/licenses/suil ../COPYING
cleanup:
- /bin
- /include
- /lib/pkgconfig
- /share/man

# Synthesizer backend
- name: fluidsynth
buildsystem: cmake-ninja
cleanup:
- /bin
- /include
- /lib/pkgconfig
- /share/man
- '*.so'
sources:
- type: archive
url: https://github.com/FluidSynth/fluidsynth/archive/v2.3.4.tar.gz
sha256: 1529ef5bc3b9ef3adc2a7964505912f7305103e269e50cc0316f500b22053ac9

# MIDI controller support
- name: portmidi
buildsystem: cmake
sources:
- type: git
url: https://github.com/PortMidi/portmidi.git
tag: v2.0.3


# Install styles
- name: styles
buildsystem: meson
sources:
- type: git
url: https://github.com/ensemblesaw/styles.git
branch: main

# CLI shell
- name: ens-shell-cli
buildsystem: meson
sources:
- type: git
url: https://github.com/ensemblesaw/ens-shell-cli.git
branch: main

# Arranger Workstation Core
- name: ens-aw-core
buildsystem: meson
build-options:
config-opts:
- -Dprofile=default
- -Dbuildtype=release
sources:
- type: git
url: https://github.com/ensemblesaw/ens-aw-core.git
branch: main

# GTK Shell
- name: ens-shell-gtk
buildsystem: meson
build-options:
config-opts:
- -Dprofile=default
- -Dbuildtype=release
sources:
- type: git
url: https://github.com/ensemblesaw/ens-shell-gtk.git
branch: main

# The app itself
- name: ensembles
buildsystem: meson
build-options:
config-opts:
- -Dprofile=default
- -Dbuildtype=release
sources:
- type: dir
path: .

# Adds default soundfont
- name: ensemblesGMSoundfonts
buildsystem: meson
sources:
- type: archive
url: https://gitlab.com/SubhadeepJasu/ensemblesgmsoundfont/-/archive/v0.0.3/ensemblesgmsoundfont-v0.0.3.tar.gz
sha256: 0b5ecca24623dabc9ea546c49cc25ebb3f419d6b61c035c603133a1032a4f2bc