2024-06-30 Tim Janik # cf025664e1c
NEWS.md: adjust changelog link
[no ci]
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-30 Tim Janik # 7f3f9ab2d5a
NEWS.md: Anklang 0.3.0
[no ci]
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-30 Tim Janik # 62d4caef556
.github/workflows/testing.yml: move env.ACT check into run steps
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-27 Tim Janik # fbbecd16396
Merge branch 'parallel-mkassets'
* Branch commit log:
misc/mkassets.sh: run checks and UI tests
misc/Makefile.mk: pass jobserver to mkassets
.github/workflows/testing.yml: skip IRC job if nektos/act set env.ACT
doc/poxy.sh: test $GITHUB_ACTIONS for CI setup
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-26 Tim Janik # a834303fe41
misc/mkassets.sh: run checks and UI tests
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-26 Tim Janik # 0adcf32a824
misc/Makefile.mk: pass jobserver to mkassets
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-25 Tim Janik # 657c2c34f13
.github/workflows/testing.yml: skip IRC job if nektos/act set env.ACT
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-25 Tim Janik # 53f02460bf2
doc/poxy.sh: test $GITHUB_ACTIONS for CI setup
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-27 Tim Janik # 11bfbe7cc9f
Merge branch 'unlicense'
* Branch commit log:
misc/mkcopyright.py: match Unlicense dedications
misc/mkcopyright.py: dedicated to the Public Domain under the Unlicense
doc/copyright.ini: use Unlicense for Public Domain dedication
jsonipc/testjsonipc.cc: use Unlicense for Public Domain dedication
jsonipc/jsonipc.js: use Unlicense for Public Domain dedication
ase/mime-types.hh: use Unlicense for Public Domain dedication
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-27 Tim Janik # f48b6eb18d6
misc/mkcopyright.py: match Unlicense dedications
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-27 Tim Janik # 1033342124e
misc/mkcopyright.py: dedicated to the Public Domain under the Unlicense
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-27 Tim Janik # 97808bab194
doc/copyright.ini: use Unlicense for Public Domain dedication
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-27 Tim Janik # da297449245
jsonipc/testjsonipc.cc: use Unlicense for Public Domain dedication
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-27 Tim Janik # b0a20105478
jsonipc/jsonipc.js: use Unlicense for Public Domain dedication
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-27 Tim Janik # 8ae1a8f95af
ase/mime-types.hh: use Unlicense for Public Domain dedication
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-25 Tim Janik # 5993a34c7a2
Merge branch 'mogrify-favicon'
* Branch commit log:
package.json: remove icon-gen
ui/Makefile.mk: use mogrify to create anklang.png and favicon.ico
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-24 Tim Janik # bda875f4d60
package.json: remove icon-gen
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-24 Tim Janik # 7a2531cd1d0
ui/Makefile.mk: use mogrify to create anklang.png and favicon.ico
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-25 Tim Janik # cbee6b1de26
Merge branch 'ghcr-ci-images'
* Branch commit log:
misc/cirun: remove, now unused
.github/workflows/testing.yml: use new images with actions/checkout@v4.1.1
misc/Dockerfile.arch: build image for uid=1001(runner) gid=127(docker)
misc/Dockerfile.focal: build image for uid=1001(runner) gid=127(docker)
.github/workflows/testing.yml: FocalAssets: fix $HOME and git checkout
.github/workflows/testing.yml: debug all stages
.github/workflows/testing.yml: test checkout fixups
.github/workflows/testing.yml: quote container image names
.github/workflows/testing.yml: run build steps in anklang-ci containers
.github/workflows/testing.yml: copy Docs secret into docker volume
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-25 Tim Janik # 01650632f0b
misc/cirun: remove, now unused
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-25 Tim Janik # 0961a8f96c5
.github/workflows/testing.yml: use new images with actions/checkout@v4.1.1
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-25 Tim Janik # fb47c8df702
misc/Dockerfile.arch: build image for uid=1001(runner) gid=127(docker)
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-25 Tim Janik # d434a7a887e
misc/Dockerfile.focal: build image for uid=1001(runner) gid=127(docker)
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-24 Tim Janik # 77edeba8560
.github/workflows/testing.yml: FocalAssets: fix $HOME and git checkout
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-24 Tim Janik # 487a9e5f349
.github/workflows/testing.yml: debug all stages
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-24 Tim Janik # 71c304d809c
.github/workflows/testing.yml: test checkout fixups
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-24 Tim Janik # 85876f5a59d
.github/workflows/testing.yml: quote container image names
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-24 Tim Janik # db682c8d853
.github/workflows/testing.yml: run build steps in anklang-ci containers
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-24 Tim Janik # ba2b443156d
.github/workflows/testing.yml: copy Docs secret into docker volume
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-24 Tim Janik # a757612ea72
Merge branch 'cirun-volumes'
* Branch commit log:
.github/workflows/testing.yml: updates to cirun
* use explicit docker volume copies
* add dedicated UploadDocs
* update FocalAssets
* update FocalClangTidy
* update fetch rules
misc/cirun: rewrite to support image builds and docker volume as workdir
* add $CIVOLUME for the build dir
* rewrite to support image builds and docker volume as workdir
* use tar for docker cp to preserve perms
* allow CIVOLUME overrides
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-23 Tim Janik # b71054a3afa
.github/workflows/testing.yml: updates to cirun
* use explicit docker volume copies
* add dedicated UploadDocs
* update FocalAssets
* update FocalClangTidy
* update fetch rules
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-23 Tim Janik # 7ede927dc13
misc/cirun: rewrite to support image builds and docker volume as workdir
* add $CIVOLUME for the build dir
* rewrite to support image builds and docker volume as workdir
* use tar for docker cp to preserve perms
* allow CIVOLUME overrides
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-21 Tim Janik # b7397d6ec3c
Merge branch 'alt-f12-state-grep-dialog'
* Branch commit log:
x11test/trackrename.json: hit Alt+F12 for project state grep dialog
ui/startup.js: open project state grep dialog on Alt+F12
misc/cirun: add comments on howto run and view electron inside docker
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-21 Tim Janik # a111f64bf30
x11test/trackrename.json: hit Alt+F12 for project state grep dialog
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-21 Tim Janik # b8a4961e637
ui/startup.js: open project state grep dialog on Alt+F12
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-20 Tim Janik # 59d3d926e81
misc/cirun: add comments on howto run and view electron inside docker
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 89987b1b567
Merge branch 'rename-track-uitest'
* Branch commit log:
x11test/trackrename.json: add track rename test
x11test/play-notes.json: better selectors for new-project, play, stop
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-17 Tim Janik # fe14d051c8c
x11test/trackrename.json: add track rename test
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # 5ef33284b2c
x11test/play-notes.json: better selectors for new-project, play, stop
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 4dbb08743b3
Merge branch 'silent-x11test-v'
* Branch commit log:
Makefile.mk: use null devices for x11test-v
x11test/replay.sh: use null devices unless -p is given
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # 624f5960f83
Makefile.mk: use null devices for x11test-v
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # 8d6bb245b67
x11test/replay.sh: use null devices unless -p is given
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # c53a3f9508c
Merge branch 'propgroup-consolidation', fixes #59
* Branch commit log:
ui/b/tracklist.js: remove old debug statement
ui/b/textinput.js: remove old debug statement
ui/b/propgroup.js: remove old debug statement
ui/b/crawlerdialog.js: remove old debug statement
ui/b/propinput.js: remove, propgroup.js is sufficient now
ui/b/propgroup.js: avoid overriding .choices uselessly
ui/b/playcontrols.js: fix icon centerng
ui/b/objecteditor.js: pass prop into b-choiceinput
ui/b/icon.js: apply flex display, etc to all icons
ui/b/dialog.vue: stop styling *all* dialog buttons
ui/b/choiceinput.js: support .choices and small display
* Move parts to tailwind
* Use CSS grid layout for menu contents
* Support .small for icon vs label display
* Support .choices setting, prefer over prop.choices()
ase/parameter.cc: avoid numeric constraining of text parameters
ui/b/pianoroll.js: provide unique id attribute to menu button
ui/b/menubar.js: provide unique id attribute to menu buttons
ui/b/knob.js: adjust size to --b-prop-height and fix bidir positioning
ui/b/propgroup.js: resize props, create property inputs directly
ui/b/choiceinput.js: fetch choices directly from prop
ui/b/contextmenu.js: reduce flicker when repositioning
ui/dom.js: get_uri: try to get uri from ancestors
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 06d72479be6
ui/b/tracklist.js: remove old debug statement
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # ce9746336fd
ui/b/textinput.js: remove old debug statement
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 302c40f55d9
ui/b/propgroup.js: remove old debug statement
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 5738abbbeac
ui/b/crawlerdialog.js: remove old debug statement
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 247836ea215
ui/b/propinput.js: remove, propgroup.js is sufficient now
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # bd34343e518
ui/b/propgroup.js: avoid overriding .choices uselessly
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 7f65ddafb31
ui/b/playcontrols.js: fix icon centerng
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 433a04172bf
ui/b/objecteditor.js: pass prop into b-choiceinput
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 0f80e811b17
ui/b/icon.js: apply flex display, etc to all icons
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 1302f10c333
ui/b/dialog.vue: stop styling *all* dialog buttons
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # f60d97d49fd
ui/b/choiceinput.js: support .choices and small display
* Move parts to tailwind
* Use CSS grid layout for menu contents
* Support .small for icon vs label display
* Support .choices setting, prefer over prop.choices()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-18 Tim Janik # e5188455595
ase/parameter.cc: avoid numeric constraining of text parameters
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-13 Tim Janik # 0f49b61211a
ui/b/pianoroll.js: provide unique id attribute to menu button
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-13 Tim Janik # 7472059caad
ui/b/menubar.js: provide unique id attribute to menu buttons
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-13 Tim Janik # 52b99257aa4
ui/b/knob.js: adjust size to --b-prop-height and fix bidir positioning
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-13 Tim Janik # 8121a44d6f3
ui/b/propgroup.js: resize props, create property inputs directly
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-13 Tim Janik # e5fed5aec1f
ui/b/choiceinput.js: fetch choices directly from prop
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-13 Tim Janik # b568f92c855
ui/b/contextmenu.js: reduce flicker when repositioning
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-12 Tim Janik # 35327d30018
ui/dom.js: get_uri: try to get uri from ancestors
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # 2987fb90bc4
Merge branch 'puppeteer-electron'
* Branch commit log:
x11test/replay.sh: use epuppeteer.mjs
x11test/epuppeteer.mjs: use node:net to find an available port
x11test/epuppeteer.mjs: rename
x11test/ereplay.mjs: extend log messages
x11test/ereplay.mjs: use constants instead of hardcoded window size numbers
x11test/ereplay.mjs: detect reloads on window.webContents
x11test/ereplay.mjs: remove anklang workaround
x11test/ereplay.mjs: add replay handling for *.json files
* Support replay of multiple *.json files in succession.
* Add extra delay in case of page reload.
* Adjust delays around clicks.
* Raise maximum timeout, only triggered if something went wrong.
x11test/ereplay.mjs: slight fixups
x11test/ereplay.mjs: initialize "puppeteer-core" and "electron" from scratch
x11test/ereplay.cjs: remove
ui/Makefile.mk: add x11test/*.*js to eslint rule
package.json: upgrade electron, puppeteer-core, remove puppeteer-in-electron
x11test/x11rec.sh: reduce Xephyr sleep
x11test/replay.sh: fix wrong exit code from trap+pkill
misc/config-checks.mk: require pcre-10.34, downgrade for ubuntu 20.04 builds
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # 4e5fad6b991
x11test/replay.sh: use epuppeteer.mjs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # b8c1e756731
x11test/epuppeteer.mjs: use node:net to find an available port
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # a428c187076
x11test/epuppeteer.mjs: rename
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # d10030c3b12
x11test/ereplay.mjs: extend log messages
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # 86d49778ece
x11test/ereplay.mjs: use constants instead of hardcoded window size numbers
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # 656f56471d2
x11test/ereplay.mjs: detect reloads on window.webContents
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # 4789fd35170
x11test/ereplay.mjs: remove anklang workaround
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # d658f1dda0e
x11test/ereplay.mjs: add replay handling for *.json files
* Support replay of multiple *.json files in succession.
* Add extra delay in case of page reload.
* Adjust delays around clicks.
* Raise maximum timeout, only triggered if something went wrong.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # 3091cd0e5b1
x11test/ereplay.mjs: slight fixups
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # 7092158a827
x11test/ereplay.mjs: initialize "puppeteer-core" and "electron" from scratch
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # f55fef420b6
x11test/ereplay.cjs: remove
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-17 Tim Janik # edc67764119
ui/Makefile.mk: add x11test/*.*js to eslint rule
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # f2f90445ae4
package.json: upgrade electron, puppeteer-core, remove puppeteer-in-electron
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-15 Tim Janik # d1285f30513
x11test/x11rec.sh: reduce Xephyr sleep
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-14 Tim Janik # b362fa93895
x11test/replay.sh: fix wrong exit code from trap+pkill
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # a2a11ae448f
misc/config-checks.mk: require pcre-10.34, downgrade for ubuntu 20.04 builds
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # b80ea85297e
Merge branch 'dev-mode-grep-dialog'
* Branch commit log:
ui/startup.js: show grepdialog.js dialog on F12
ui/grepdialog.js: add __DEV__ mode dialog to grep project state
* Support regex pattern input
* Use Project.match_serialized()
* Display result in <pre id="g-grepresult"/>
* Combined, this allows adding an assertion recording step:
{
"type": "waitForElement",
"target": "main",
"selectors": [ "#g-grepresult" ],
"properties": { "innerText": "...grep.result..." }
}
ase/api.hh: add Project.match_serialized()
* Add ProjectImpl.snapshot_project() to snapshot state into JSON
* Add ProjectImpl.match_serialized() to grep on JSON state
ase/regex: add Re::grep() with Perl regex semantics
misc/config-checks.mk: add libpcre2-8
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-14 Tim Janik # a106ffeff17
ui/startup.js: show grepdialog.js dialog on F12
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-14 Tim Janik # 5027ac4edef
ui/grepdialog.js: add __DEV__ mode dialog to grep project state
* Support regex pattern input
* Use Project.match_serialized()
* Display result in <pre id="g-grepresult"/>
* Combined, this allows adding an assertion recording step:
{
"type": "waitForElement",
"target": "main",
"selectors": [ "#g-grepresult" ],
"properties": { "innerText": "...grep.result..." }
}
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-14 Tim Janik # bf5fe92b217
ase/api.hh: add Project.match_serialized()
* Add ProjectImpl.snapshot_project() to snapshot state into JSON
* Add ProjectImpl.match_serialized() to grep on JSON state
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-14 Tim Janik # 9d4e6230c47
ase/regex: add Re::grep() with Perl regex semantics
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-14 Tim Janik # a9ddf5fdc7b
misc/config-checks.mk: add libpcre2-8
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # a10b18e54fe
Merge branch 'fix-log-verbosity'
* Branch commit log:
ase/main.cc: log exit status to logfile only
ase/logging: add logtxt()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # fea5a71db21
ase/main.cc: log exit status to logfile only
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-19 Tim Janik # f5298913626
ase/logging: add logtxt()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-18 Tim Janik # 5f8b8eea15e
Merge branch 'fix-LiquidSFZ-race'
* Branch commit log:
devices/liquidsfz/liquidsfz.cc: add TODO about unconditional event processing
See also: https://github.com/tim-janik/anklang/issues/44#issuecomment-2176839260
devices/liquidsfz/liquidsfz.cc: fix for LiquidSFZ race cond by Stefan Westerfeld, #44
https://github.com/tim-janik/anklang/issues/44
swesterfeld commented Jun 18, 2024:
>
> tim-janik commented Jun 18, 2024:
> > all input events must always be processed in render
>
> I agree. At least the filename changes, midi events can safely be dropped while a file is being loaded.
>
> Your patch is not good, because it will introduce race conditions of both threads accessing the same data.
> Since we cannot use locks due to RT constraints, I guess the real fix will be to use a lock-free queue to send events to the loader thread.
> I'll look into it and come up with a real fix and submit a PR.
> However, here is a quick fix that just avoids the initial load problem and is still safe as in it doesn't introduce race conditions
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-18 Tim Janik # b4ecaec53b1
devices/liquidsfz/liquidsfz.cc: add TODO about unconditional event processing
See also: https://github.com/tim-janik/anklang/issues/44#issuecomment-2176839260
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-18 Stefan Westerfeld # f26784bceeb
devices/liquidsfz/liquidsfz.cc: fix for LiquidSFZ race cond by Stefan Westerfeld, #44
https://github.com/tim-janik/anklang/issues/44
swesterfeld commented Jun 18, 2024:
>
> tim-janik commented Jun 18, 2024:
> > all input events must always be processed in render
>
> I agree. At least the filename changes, midi events can safely be dropped while a file is being loaded.
>
> Your patch is not good, because it will introduce race conditions of both threads accessing the same data.
> Since we cannot use locks due to RT constraints, I guess the real fix will be to use a lock-free queue to send events to the loader thread.
> I'll look into it and come up with a real fix and submit a PR.
> However, here is a quick fix that just avoids the initial load problem and is still safe as in it doesn't introduce race conditions
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-12 Tim Janik # da20031c2f3
Merge branch 'error-notices'
* Branch commit log:
ui/b/icon.js: remove 'important' from CSS display
ui/b/menubar.js: fix Quit->Save option for web UIs
ui/b/crawlerdialog.js: use Dom.show_modal()
ui/b/aboutdialog.js: use Dom.show_modal()
ui/b/contextmenu.js: use Dom.show_modal()
ui/dom.js: add show_modal() for dialogs
* Add show_modal() for dialogs.
* Properly close dialog on backdrop clicks.
* Do not focus entire dialog on backdrop clicks.
ui/b/app.js: turn one-button error dialog into notice
ui/b/menubar.js: turn one-button error dialog into notice
ui/b/devicepanel.js: consolidate CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-12 Tim Janik # 6c5e7e53627
ui/b/icon.js: remove 'important' from CSS display
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-12 Tim Janik # ae3ffcfaf01
ui/b/menubar.js: fix Quit->Save option for web UIs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-10 Tim Janik # fcf6f1c730e
ui/b/crawlerdialog.js: use Dom.show_modal()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-10 Tim Janik # 3122c9b9677
ui/b/aboutdialog.js: use Dom.show_modal()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-10 Tim Janik # 8a4fc55d33b
ui/b/contextmenu.js: use Dom.show_modal()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-10 Tim Janik # 4a8cf4e5a7c
ui/dom.js: add show_modal() for dialogs
* Add show_modal() for dialogs.
* Properly close dialog on backdrop clicks.
* Do not focus entire dialog on backdrop clicks.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-09 Tim Janik # f8a242569c1
ui/b/app.js: turn one-button error dialog into notice
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-09 Tim Janik # 868a3fa4fb7
ui/b/menubar.js: turn one-button error dialog into notice
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-09 Tim Janik # ce89aa6c487
ui/b/devicepanel.js: consolidate CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-09 Tim Janik # 4ebbc0994c3
Merge branch 'lit-device-panel'
* Branch commit log:
ui/b/shell.vue: leave overflow and padding to <b-devicepanel/>
ui/b/devicepanel.js: port to LitComponent from Vue
* Adjust horizontal scroll shadows
* Move overflow scrolling to be handled inside devicepanel
* Fix sibling handling in menuopen, fixes #46
* Open menu on press, feels faster
* Port to use LitComponent and repeat()
* Make use of the device.devs property
* Remove devicepanel.vue
ase/api, ase/device*: add Device.devs property
ui/b/contextmenu.js: avoid binding foreign callbacks to contextmenu
ui/tailwind.scss: add .hflex and .vflex classes
ui/Makefile.mk: leave "fixme" linting to synsmell, check all files
misc/synsmell.py: extend CSS heuristic
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-08 Tim Janik # f925527d360
ui/b/shell.vue: leave overflow and padding to <b-devicepanel/>
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-08 Tim Janik # 75f91618410
ui/b/devicepanel.js: port to LitComponent from Vue
* Adjust horizontal scroll shadows
* Move overflow scrolling to be handled inside devicepanel
* Fix sibling handling in menuopen, fixes #46
* Open menu on press, feels faster
* Port to use LitComponent and repeat()
* Make use of the device.devs property
* Remove devicepanel.vue
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-09 Tim Janik # d5519d701a2
ase/api, ase/device*: add Device.devs property
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-08 Tim Janik # b14f596635b
ui/b/contextmenu.js: avoid binding foreign callbacks to contextmenu
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-09 Tim Janik # 735f5366ef5
ui/tailwind.scss: add .hflex and .vflex classes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-08 Tim Janik # 262176091b5
ui/Makefile.mk: leave "fixme" linting to synsmell, check all files
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-08 Tim Janik # 73ce30da11e
misc/synsmell.py: extend CSS heuristic
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-08 Tim Janik # 0c69d0f8092
Merge branch 'gzip-encoding'
* Branch commit log:
ui/Makefile.mk: compress all source maps with gzip
ase/websocket.cc: serve gzip contents if requested and .gz files are on disk
Note, Firefox, WebKit, Chrome, w3m all request gzip by default.
Lynx, node, Py-urllib will auto unzip contents even if not requested.
Wget only unzips contents if it actually requested it via --compress=gzip.
ase/websocket.cc: recognoize UA for Wget, w3m, Lynx, Python-urllib
ase/strings: add string_find_word()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-08 Tim Janik # 21c5640137c
ui/Makefile.mk: compress all source maps with gzip
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-27 Tim Janik # 96f774dae78
ase/websocket.cc: serve gzip contents if requested and .gz files are on disk
Note, Firefox, WebKit, Chrome, w3m all request gzip by default.
Lynx, node, Py-urllib will auto unzip contents even if not requested.
Wget only unzips contents if it actually requested it via --compress=gzip.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-27 Tim Janik # adc6476b69f
ase/websocket.cc: recognoize UA for Wget, w3m, Lynx, Python-urllib
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-27 Tim Janik # 7ec9a3f2a3b
ase/strings: add string_find_word()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-06-08 Tim Janik # 3309e740609
Merge branch 'fixups'
* Branch commit log:
electron/main.js: pass -P and -M through to AnklangSynthEngine
ui/Makefile.mk: exec AnklangSynthEngine --js-api without PCM/MIDI devices
doc/Makefile.mk: exec AnklangSynthEngine --class-tree without PCM/MIDI devices
fix typo in ch-development.md
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-31 Tim Janik # a10b8b5d304
electron/main.js: pass -P and -M through to AnklangSynthEngine
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-31 Tim Janik # 544aa7088b4
ui/Makefile.mk: exec AnklangSynthEngine --js-api without PCM/MIDI devices
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-31 Tim Janik # 18daa18c9a2
doc/Makefile.mk: exec AnklangSynthEngine --class-tree without PCM/MIDI devices
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-19 ritschwumm # 370522e6611
fix typo in ch-development.md
2024-05-31 Tim Janik # e06849c3e09
Merge branch 'tree-browser-lit-component'
* Branch commit log:
ui/b/treebrowser.js: bring back caret animation
ui/b/contextmenu.js: only process/prevent clicks on menuitems
ui/b/contextmenu.js: use check_visibility()
ui/util.js: ignore 'mouseup' on backdrops, those are often not prevented
ui/kbd.js: use check_visibility()
ui/util.js: add check_visibility, remove inside_display_none
* Add check_visibility() that handles Chrome oddities with <details/>
* Remove inside_display_none(), use check_visibility() instead
ui/b/contextmenu.js: CSS styling for <summary/>
ui/b/shell.vue: use b-treebrowser
ui/b/devicepanel.vue: use b-treebrowser and enable menuitems
ui/b/treeselector*.vue: remove unused Vue tree impl
ui/b/treebrowser.js: reimplement tree browser as LitComponent
* Start Vue tree component port
* Merge tree components
* Use <details/> and <summary/> for collapsing
* Adjust CSS for new DOM layout
* Expand/collapse with left/right keys
* Call Kbd focus functions for up/down/left/right
ui/Makefile.mk, ui/postcss.config.mjs: set + use $POSTCSS_IMPORT_PATH
ui/Makefile.mk: cleanup postcss rule, add explicit CSS output file
ui/postcss.config.mjs: adapt import paths, generate external sourcemap for CSS
ui/tailwind.config.mjs: remove, tailwind config is part of postcss.config.mjs
ui/b/noticeboard.js: whitespace
misc/synsmell.py: degrade fixmes to a warning
ui/tailwind.scss: add CSS for a proper :focus outline
ui/kbd.js: export move_focus_{prev|next|left|right} functions
ui/kbd.js: support focus on <summary/>
ui/kbd.js: match_key_event(): support multiple keys
ui/b/noticeboard.js: fix DOM element property access
ui/b/propinput.js: fix method chaining
ui/b/knob.js: fix method chaining
ui/b/textinput.js: fix method chaining
ui/Makefile.mk: dont eslint Vue files without config
ase/loop.cc: fix stderr output from signal handler
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-31 Tim Janik # 46b6e99dad7
ui/b/treebrowser.js: bring back caret animation
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # cb394e55972
ui/b/contextmenu.js: only process/prevent clicks on menuitems
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 79fa4837acb
ui/b/contextmenu.js: use check_visibility()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 7d11ca8b400
ui/util.js: ignore 'mouseup' on backdrops, those are often not prevented
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # fa91971838d
ui/kbd.js: use check_visibility()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # e81b159cdd4
ui/util.js: add check_visibility, remove inside_display_none
* Add check_visibility() that handles Chrome oddities with <details/>
* Remove inside_display_none(), use check_visibility() instead
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 7a33c5f0af5
ui/b/contextmenu.js: CSS styling for <summary/>
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 62afe8e18eb
ui/b/shell.vue: use b-treebrowser
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # f31eab3eff0
ui/b/devicepanel.vue: use b-treebrowser and enable menuitems
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 2a54a9b0a6f
ui/b/treeselector*.vue: remove unused Vue tree impl
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-26 Tim Janik # 61728e4c20a
ui/b/treebrowser.js: reimplement tree browser as LitComponent
* Start Vue tree component port
* Merge tree components
* Use <details/> and <summary/> for collapsing
* Adjust CSS for new DOM layout
* Expand/collapse with left/right keys
* Call Kbd focus functions for up/down/left/right
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # e4874688abf
ui/Makefile.mk, ui/postcss.config.mjs: set + use $POSTCSS_IMPORT_PATH
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 8ea29eede08
ui/Makefile.mk: cleanup postcss rule, add explicit CSS output file
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 2b9dbec9e6c
ui/postcss.config.mjs: adapt import paths, generate external sourcemap for CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 116d272af29
ui/tailwind.config.mjs: remove, tailwind config is part of postcss.config.mjs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # a1f2a0929f2
ui/b/noticeboard.js: whitespace
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 9fa329666ea
misc/synsmell.py: degrade fixmes to a warning
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 5c148514f31
ui/tailwind.scss: add CSS for a proper :focus outline
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # aff72c81ead
ui/kbd.js: export move_focus_{prev|next|left|right} functions
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 18c3ab468c7
ui/kbd.js: support focus on <summary/>
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # b4984d6860f
ui/kbd.js: match_key_event(): support multiple keys
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # bf9de741bc5
ui/b/noticeboard.js: fix DOM element property access
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 25f2f8f99da
ui/b/propinput.js: fix method chaining
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 6a33bb36240
ui/b/knob.js: fix method chaining
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # a8bdf28c4c8
ui/b/textinput.js: fix method chaining
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-30 Tim Janik # 7230d175cf1
ui/Makefile.mk: dont eslint Vue files without config
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-29 Tim Janik # c5cf4ed7b79
ase/loop.cc: fix stderr output from signal handler
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-23 Tim Janik # 0e77871eba2
Merge branch 'noticeboard-js'
* Branch commit log:
ui/b/menubar.js: use App.show_notice() for user notices
ui/b/shell.vue: render <b-noticeboard/>, use App.show_notice()
* Use App.show_notice() for the usernote() handler
ui/b/app.js: add show_notice(), use b-noticeboard
ui/b/noticeboard.js: port from Vue to Javascript
ui/b/crawlerdialog.js: fix bg dup
ui/eslintrc.js: warn about missing semicolons
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-23 Tim Janik # c0b1ced8769
ui/b/menubar.js: use App.show_notice() for user notices
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-23 Tim Janik # 5d4f361f673
ui/b/shell.vue: render <b-noticeboard/>, use App.show_notice()
* Use App.show_notice() for the usernote() handler
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-23 Tim Janik # a14e2637a3c
ui/b/app.js: add show_notice(), use b-noticeboard
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-23 Tim Janik # ab9abbe225d
ui/b/noticeboard.js: port from Vue to Javascript
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-23 Tim Janik # e2431f924be
ui/b/crawlerdialog.js: fix bg dup
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-23 Tim Janik # 309f4c77e5a
ui/eslintrc.js: warn about missing semicolons
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-21 Tim Janik # 998d08900e4
Merge branch 'build-fixes'
* Branch commit log:
ase/logging.cc: add missing unistd.h include
package.json: add missing "globals" package (for eslint)
ase/*.cc: fix missing <algorithm> include
ase/*.hh: fix missing <algorithm> include
misc/cirun: use $CITAG, instead of hard coding dist
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-21 Tim Janik # 903979f3582
ase/logging.cc: add missing unistd.h include
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-21 Tim Janik # a2da11d677f
package.json: add missing "globals" package (for eslint)
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-21 Tim Janik # f373e98928b
ase/*.cc: fix missing <algorithm> include
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-21 Tim Janik # b76a38f5b95
ase/*.hh: fix missing <algorithm> include
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-21 Tim Janik # c2f3bc16efc
misc/cirun: use $CITAG, instead of hard coding dist
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # f4a6e2d7187
Merge branch 'log2file'
* Branch commit log:
package.json: add --log2file to synth engine
electron/main.js: add --log2file to synth engine
ase/utils.hh: include ase/logging.hh
ase/main: add --log2file and log info of interest
ase/engine.cc: log missing PCM driver as error
ase/driver.cc: log driver opening as info
ase/logging: add log_setup(), loginf() and logerr()
ase/logging: add source files for logging
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # b6fcbdc8bc2
package.json: add --log2file to synth engine
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 21e5a0a7cc9
electron/main.js: add --log2file to synth engine
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 095d6e5044b
ase/utils.hh: include ase/logging.hh
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 318e2e1d72c
ase/main: add --log2file and log info of interest
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # ed21b239f81
ase/engine.cc: log missing PCM driver as error
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 7e4f803a0fb
ase/driver.cc: log driver opening as info
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 14c24a6c446
ase/logging: add log_setup(), loginf() and logerr()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # 61a25a6ca6d
ase/logging: add source files for logging
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 80ed0d56d27
Merge branch 'override-drivers'
* Branch commit log:
ui/Makefile.mk: add --norc when running --js-api
doc/Makefile.mk: add --norc when running --class-tree
ase/server.cc: ase_{error_blurb|error_from_errno}: always map errno to strerror
ase/driver-alsa.cc: always pass ALSA errno back to the caller
ase/cxxaux.cc: ignore ptrace_scope when constructing debugger cmd
misc/GNUmakefile: allow subdir builds
ase/Makefile.mk: utilize GNU Parallel for test execution
Use GNU Parallel if available, otherwise xargs.
Avoid parallel.moreutils which is incompatible and tends to drop jobs.
ase/engine.cc: let main_config.pcm_override, .midi_override override drivers
ase/main.cc: add -P and -M
ase/main.hh: add pcm_override, midi_override to MainConfig
ase/main.cc: implement --list-tests
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 24d07f15bee
ui/Makefile.mk: add --norc when running --js-api
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # dfea10b5e3f
doc/Makefile.mk: add --norc when running --class-tree
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # 81373075da7
ase/server.cc: ase_{error_blurb|error_from_errno}: always map errno to strerror
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # cfe9264313e
ase/driver-alsa.cc: always pass ALSA errno back to the caller
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # 4412d849f0b
ase/cxxaux.cc: ignore ptrace_scope when constructing debugger cmd
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # e859e37f645
misc/GNUmakefile: allow subdir builds
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # 3f8b7141018
ase/Makefile.mk: utilize GNU Parallel for test execution
Use GNU Parallel if available, otherwise xargs.
Avoid parallel.moreutils which is incompatible and tends to drop jobs.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # 2790203c73e
ase/engine.cc: let main_config.pcm_override, .midi_override override drivers
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # cd69d833dbf
ase/main.cc: add -P and -M
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # 4a5c37367be
ase/main.hh: add pcm_override, midi_override to MainConfig
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # 0974d890b3b
ase/main.cc: implement --list-tests
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 72514ffdad1
Merge branch 'uselocale'
* Branch commit log:
ase/strings: provide POSIX-locale strerror()
ase/main.cc: apply user locale
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 0c076b7a2ca
ase/strings: provide POSIX-locale strerror()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # bf18efe0ab6
ase/main.cc: apply user locale
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 0a4b1af8523
Merge branch 'npm-updates'
* Branch commit log:
ui/b/tracklist.js: work around postcss-advanced-variables bugs
ui/startup.js: minor
package.json, ui/postcss.config.mjs: remove unused postcss-normalize-charset
With postcss-import, we stopped adding charset to generated imports.
ase/main.cc: document --norc
ui/Makefile.mk: fix missing dep on ui/postcss.config.mjs
ui/Makefile.mk: make .js files an index.html dependency
ui/jsextract.js: leave @charset "UTF-8" to the postcss build step
ui/postcss.config.mjs: add postcss, tailwind and css-function configs
ui/postcss.js: remove unused in-browser impl of postcss
ui/Makefile.mk: properly extract css`` into build files, adjust linting
Keep *.js files with extracted css`` snippets around for parallel linintg.
package.json: shorten rebuild times
ui/Makefile.mk: generate import for dark.scss
ui/global.scss: import theme.scss here
ui/mixins.scss: remove all color definitions
ui/theme.scss: remove all color definitions
ui/dark.scss: include theme color definitions
ui/theme.scss: move scss variable
ui/b/noteboard.vue: use Dom.markdown_to_html()
ui/b/databubble.js: use Dom.markdown_to_html() and move scss var
ui/jsextract.js: keep the same file extension for extracted files
ui/Makefile.mk: merge vue styles, lit styles, stylelint and postcss processing
ui/Makefile.mk: use ui/eslintrc.js for linting
ui/b/statusbar.js: use Dom.markdown_to_html()
ui/stylelintrc.cjs: remove unused setting
ui/b/clipview.js: avoid nested scss variable definitions
ui/sfc-compile.js: avoid useless dep on sass
ui/startup.js: remove browserified.js helper
ui/util.js: fix color parsing
ui/util.js: remove markdown_to_html()
ui/dom.js: add Dom.markdown_to_html()
package.json: add @rollup/plugin-terser, remove browserify
ui/Makefile.mk: build markdown-it for the web via rollup
Get rid of building with browserify which results in a
much larger artifact.
package.json: add eslint helpers
ui/index.html: remove vue-styles.css
ui/postcss.js: add tailwind @apply test
Makefile.mk: properly clean compile_commands.json
.gitignore: ignore /.dir-locals.el
package.json: upgrade allmost all packages
ui/util.js: remove unused compat code for FF-68
ui/util.js: use LSP friendly comments
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 42cbfd63c17
ui/b/tracklist.js: work around postcss-advanced-variables bugs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-20 Tim Janik # 5aad2e57e8f
ui/startup.js: minor
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # 5c25db3db8d
package.json, ui/postcss.config.mjs: remove unused postcss-normalize-charset
With postcss-import, we stopped adding charset to generated imports.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-19 Tim Janik # 9e4567e596e
ase/main.cc: document --norc
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-14 Tim Janik # 3dd52427997
ui/Makefile.mk: fix missing dep on ui/postcss.config.mjs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-14 Tim Janik # f37b26c4c06
ui/Makefile.mk: make .js files an index.html dependency
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-14 Tim Janik # f77aec4cf2f
ui/jsextract.js: leave @charset "UTF-8" to the postcss build step
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-14 Tim Janik # 835236fde03
ui/postcss.config.mjs: add postcss, tailwind and css-function configs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-14 Tim Janik # 4d0bf3ffe82
ui/postcss.js: remove unused in-browser impl of postcss
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-12 Tim Janik # 6eb084b12e4
ui/Makefile.mk: properly extract css`` into build files, adjust linting
Keep *.js files with extracted css`` snippets around for parallel linintg.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-10 Tim Janik # dca5c056627
package.json: shorten rebuild times
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-10 Tim Janik # bdb67c127dd
ui/Makefile.mk: generate import for dark.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-10 Tim Janik # 054293c03b2
ui/global.scss: import theme.scss here
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-10 Tim Janik # 26688bf16be
ui/mixins.scss: remove all color definitions
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-10 Tim Janik # 0b2eb0156ba
ui/theme.scss: remove all color definitions
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-10 Tim Janik # 052e5d63a63
ui/dark.scss: include theme color definitions
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-10 Tim Janik # 8c8b0a34370
ui/theme.scss: move scss variable
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-10 Tim Janik # e013075eaca
ui/b/noteboard.vue: use Dom.markdown_to_html()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-10 Tim Janik # f69e2401b7f
ui/b/databubble.js: use Dom.markdown_to_html() and move scss var
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # fe0a0b33f80
ui/jsextract.js: keep the same file extension for extracted files
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 482def1a619
ui/Makefile.mk: merge vue styles, lit styles, stylelint and postcss processing
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 525afb190d8
ui/Makefile.mk: use ui/eslintrc.js for linting
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # bb6dcbd4c58
ui/b/statusbar.js: use Dom.markdown_to_html()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 99285faac2c
ui/stylelintrc.cjs: remove unused setting
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 17444647e15
ui/b/clipview.js: avoid nested scss variable definitions
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 5f05f010784
ui/sfc-compile.js: avoid useless dep on sass
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 0fb40479791
ui/startup.js: remove browserified.js helper
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 21912307972
ui/util.js: fix color parsing
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 9fdc6804cf4
ui/util.js: remove markdown_to_html()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # a61637b7c69
ui/dom.js: add Dom.markdown_to_html()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # b8594bc6a19
package.json: add @rollup/plugin-terser, remove browserify
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 70ba24f385f
ui/Makefile.mk: build markdown-it for the web via rollup
Get rid of building with browserify which results in a
much larger artifact.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # e25b5a764bd
package.json: add eslint helpers
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # 016b3fab2a2
ui/index.html: remove vue-styles.css
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-09 Tim Janik # d1b5f3882a9
ui/postcss.js: add tailwind @apply test
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-08 Tim Janik # bc930345a32
Makefile.mk: properly clean compile_commands.json
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-08 Tim Janik # ce6625a61a4
.gitignore: ignore /.dir-locals.el
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-08 Tim Janik # 85d2ab91fc9
package.json: upgrade allmost all packages
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-08 Tim Janik # d366fb9068a
ui/util.js: remove unused compat code for FF-68
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-08 Tim Janik # 798180c0742
ui/util.js: use LSP friendly comments
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-07 Tim Janik # 1ca390cecca
Merge branch 'sfz-filedialog'
* Branch commit log:
ui/b/textinput.js: support file picking for props with extensions
ase/api.hh: Property: add name, value, metadata members
* Rename Property.get_metadata(), adjust uses
* Adjust metadata uses and value notifications
ui/b/crawlerdialog.js: minor fixups
ui/util.js: extend_property(): prefetch prop.{name|value|metadata}
devices/liquidsfz/liquidsfz.cc: add sfz as file extension to .instrument
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-05 Tim Janik # 11d031bbdf6
ui/b/textinput.js: support file picking for props with extensions
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-05 Tim Janik # f6658e4749e
ase/api.hh: Property: add name, value, metadata members
* Rename Property.get_metadata(), adjust uses
* Adjust metadata uses and value notifications
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-05 Tim Janik # f5ea97e3f46
ui/b/crawlerdialog.js: minor fixups
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-05 Tim Janik # a4116e1c9da
ui/util.js: extend_property(): prefetch prop.{name|value|metadata}
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # 6c1ce826a70
devices/liquidsfz/liquidsfz.cc: add sfz as file extension to .instrument
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-06 Tim Janik # 859b88edccd
Merge branch 'crawlerdialog'
* Branch commit log:
ui/b/menubar.js: pass `existing=false` on save-as, default to ~MUSIC
ui/b/shell.vue: pass `existing` to b-crawlerdialog, default to ~MUSIC
ui/b/crawlerdialog.js: add docs to BCrawlerDialog class
ui/b/crawlerdialog.js: add dialog to pick files via resource crawler
* Rewrite and merge folderview and filedialog
* Fix grid and entry alignment
* Split direntry and pathentry
* Handle selection of new files, `existing=false`
ase/strings: add string_islower(), string_isupper()
ui/b/filedialog.vue: remove obsolete file
ui/b/folderview.vue: remove obsolete file
ui/b/menubar.js: fix load/save dialog titles
ui/b/preferencesdialog.vue: show all preference settings
ui/little.js: add LitComponent.mkstate() helper for Signal.State
ui/tailwind.scss: add spacing to dialog buttons
ui/types.d.ts: supress TS warnings about missing _()
ui/util.js: inside_display_none(): avoid expensive getComputedStyle
ui/kbd.js: support left<->right for data-subfocus="*"
ui/kbd.js: add keydown_move_focus_{up|down}
ui/kbd.js: add flag to make debugging easier
ui/kbd.js: support up/down/left/right focus with data-subfocus="+"
ase/api.hh, ase/crawler: in ResourceCrawler.assign() split dirname and basename
ase/crawler.hh: fix args
ase/crawler.cc: remove debugging printerr
ase/crawler.cc: ensure dir URLs end in /
ase/api.hh, ase/crawler: rename ResourceCrawler.entries
ase/api.hh: ResourceCrawler: add .folder, .files member properties
ase/gadget.cc: fix emplace() post condition
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # c354b251323
ui/b/menubar.js: pass `existing=false` on save-as, default to ~MUSIC
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # bc11e7d653c
ui/b/shell.vue: pass `existing` to b-crawlerdialog, default to ~MUSIC
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # 82a546eec0d
ui/b/crawlerdialog.js: add docs to BCrawlerDialog class
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-01 Tim Janik # 59bb95ebeec
ui/b/crawlerdialog.js: add dialog to pick files via resource crawler
* Rewrite and merge folderview and filedialog
* Fix grid and entry alignment
* Split direntry and pathentry
* Handle selection of new files, `existing=false`
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # feebd7205e8
ase/strings: add string_islower(), string_isupper()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-22 Tim Janik # b2b3f45cbbd
ui/b/filedialog.vue: remove obsolete file
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-19 Tim Janik # f00dd02b221
ui/b/folderview.vue: remove obsolete file
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # 038a5a80596
ui/b/menubar.js: fix load/save dialog titles
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-19 Tim Janik # 6daabc18e12
ui/b/preferencesdialog.vue: show all preference settings
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # 34c844d58a7
ui/little.js: add LitComponent.mkstate() helper for Signal.State
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # e96eceb5054
ui/tailwind.scss: add spacing to dialog buttons
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # abbf0dd8296
ui/types.d.ts: supress TS warnings about missing _()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # 9244ab86ab6
ui/util.js: inside_display_none(): avoid expensive getComputedStyle
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-30 Tim Janik # e0d5f6d7b7d
ui/kbd.js: support left<->right for data-subfocus="*"
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-30 Tim Janik # ba78d89ed9d
ui/kbd.js: add keydown_move_focus_{up|down}
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-29 Tim Janik # 796017ce194
ui/kbd.js: add flag to make debugging easier
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-22 Tim Janik # 04ddf4a0ed5
ui/kbd.js: support up/down/left/right focus with data-subfocus="+"
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-02 Tim Janik # 49f94ba82ec
ase/api.hh, ase/crawler: in ResourceCrawler.assign() split dirname and basename
Signed-off-by: Tim Janik <timj@gnu.org>
2024-05-01 Tim Janik # df41ba7ccb8
ase/crawler.hh: fix args
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-30 Tim Janik # f7ad06f1fc9
ase/crawler.cc: remove debugging printerr
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-30 Tim Janik # 08108ddcb99
ase/crawler.cc: ensure dir URLs end in /
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-28 Tim Janik # a30e1a14d77
ase/api.hh, ase/crawler: rename ResourceCrawler.entries
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # 512deb36cf7
ase/api.hh: ResourceCrawler: add .folder, .files member properties
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-27 Tim Janik # d00c87a2f91
ase/gadget.cc: fix emplace() post condition
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-27 Tim Janik # ef130823e20
Merge branch 'member-template'
* Branch commit log:
ui/b/textinput.js: adjust to this.request_update() rename
ui/b/propinput.js: adjust to this.request_update() rename
ui/b/pianoroll.js: simplify to just use this.clip.all_notes
ui/b/piano-ctrl.js: simplify to just use piano_roll.clip.all_notes
ui/b/pianoroll.js: listen to wheel events with passive:false
ui/b/knob.js: listen to wheel events with passive:false
ui/b/clipview.js: simplify to just use this.clip properties
ui/b/trackview.js: simplify to just use this.track properties
ui/b/app.js: provide App.project and auto update App.project.name
ui/b/positionview.js: use App.project with .bpm, .numerator, .denominator
ase/api.hh: Project: add bpm, numerator, denominator properties
ui/Makefile.mk: alter stamp to rebuild ui/index.html after errors
ui/Makefile.mk: include jsonipc/jsonipc.js in linting
ui/b/contextmenu.js: force integrate_children() within render_contextmenu()
ui/b/trackview.js: fix early this.mcc() invocation
ui/wrapper.js: avoid arbitrarily calling freeze_deep() on unknown objects
ui/little.js: use tracking_wrappe() for .render() and .updated()
ui/index.html: provide module map for ./signal.js and auto-load it
ui/signal.js: export Signal, State, Computed, Watcher, tracking_wrapper
Introduce JavaScript Signal and provide tracking_wrapper() to utilize
dependency tracking for synchronous functions.
ui/Makefile.mk: add signal-polyfill.js module to site build files
ase/properties.hh: include api.hh
ase/api.hh: add include for Member<>
package.json: add signal-polyfill
ase/clip: add all_notes, end_tick member properties
ase/main.cc: let --fatal-warnings set assertion_failed_fatal=true
ase/api.hh: expose Emittable.emit_notify()
.gitignore: ignore package-lock.json
jsonipc/jsonipc.js: maintain $props.promise and allow GC of objects with props
jsonipc/jsonipc.hh: generate C++ properties as reactive JS properties
This gets rid of getter() and setter() on the JavaScript side and instead
provides an object property that supports assignment and readout.
jsonipc/jsonipc.hh: determine JavaScript initializer from C++ property type
jsonipc/jsonipc.js: add reactive property fetching, support finalizer cleanup callbacks
jsonipc/jsonipc.hh: use C++17 to check for Has_setget<>
jsonipc/jsonipc.hh: support Member<> fields with set() + get() accessors
This uses C++20 concepts to detect the Member<> field.
jsonipc/jsonipc.hh: avoid implicit `await` that delays setters, pass all args
jsonipc/jsonipc.hh: fix missing `const`
ase/project: create Member bpm, numerator, denominator, skip musical_tuning
Leave (re-)implementation of musical_tuning (with its enum list) for later
when we actually use it.
ase/properties.hh: remove unused struct Prop
ase/properties, ase/gadget: remove unused PropertyBag
ase/{parameter.hh,properties.hh}: move ParameterProperty into properties.hh
ase/properties: inline PropertyBag::operator+=
ase/parameter.hh: move ParamExtraVals out of Param
ase/parameter.cc: maintain "ident=..." in metadata_ alongside cident
ase/gadget: add name member property
ase/gadget: implement registry to access Member<>s ad parameters
* Implement _register_parameter()
* Implement requires_accessor(), register_accessor()
* Add ExtraVals to _register_parameter()
* Implement GadgetImpl::create_properties() from Member
* In create_properties(): use dynamic_cast to identify class member list
When creating the properties for an instance, walk through the known
GadgetClassMemberList entries, test each via dynamic_cast and thus
identify all class member lists that match the instance.
ase/member: add Member<> to implement member field APIs via simple accessors
* FunctionTraits<>: provide ClassType, ReturnType, Arguments
* Add Member<> template
* Add MemberDetails to capture meta data
* Add and test _register_parameter()
* Add and test ExtraVals
* Pass ExtraVals as _register_parameter(ExtraVals)
* In tests, return bool from set()
* Add support for Member<accessor> without data field
Note, Member<> do not support initialization from the ctor.
In practice, we cannot call a Member<> setter for intiialization,
as it may be pointing to an abstract method, implemented by a
yet to be initialized derived class.
Related:
"C++ Properties - a Library Solution", by Lois Goldthwaite
https://accu.org/journals/overload/13/65/goldthwaite_255/#d0e143
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1615.pdf
ase/crawler: add documentation to methods
ase/driver.cc: docs
ase/driver.hh: docs
ase/strings.cc: fix typeid_name() tests
ase/main.cc: support --test[=testname]
ase/cxxaux: return const char* from typeid_name() and string_demangle_cxx()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # 9447d19f60f
ui/b/textinput.js: adjust to this.request_update() rename
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # 5edc61559c0
ui/b/propinput.js: adjust to this.request_update() rename
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # d4e0026873e
ui/b/pianoroll.js: simplify to just use this.clip.all_notes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # 8d8e2902d6e
ui/b/piano-ctrl.js: simplify to just use piano_roll.clip.all_notes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # 9bd0ffa3e4f
ui/b/pianoroll.js: listen to wheel events with passive:false
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # 0108b655cea
ui/b/knob.js: listen to wheel events with passive:false
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # fac63b86715
ui/b/clipview.js: simplify to just use this.clip properties
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # c93790ff148
ui/b/trackview.js: simplify to just use this.track properties
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # 68b0bc7085f
ui/b/app.js: provide App.project and auto update App.project.name
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # efac804f580
ui/b/positionview.js: use App.project with .bpm, .numerator, .denominator
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-25 Tim Janik # 7df2fb8c26d
ase/api.hh: Project: add bpm, numerator, denominator properties
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-24 Tim Janik # a615587c876
ui/Makefile.mk: alter stamp to rebuild ui/index.html after errors
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-24 Tim Janik # 3b842b9f5b1
ui/Makefile.mk: include jsonipc/jsonipc.js in linting
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-22 Tim Janik # 9b0a5588ab6
ui/b/contextmenu.js: force integrate_children() within render_contextmenu()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-22 Tim Janik # 3fddd64b119
ui/b/trackview.js: fix early this.mcc() invocation
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-22 Tim Janik # c22c8f2a123
ui/wrapper.js: avoid arbitrarily calling freeze_deep() on unknown objects
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-22 Tim Janik # 145980950b0
ui/little.js: use tracking_wrappe() for .render() and .updated()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-22 Tim Janik # 2443dcfa43f
ui/index.html: provide module map for ./signal.js and auto-load it
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-22 Tim Janik # 0d9abc5e026
ui/signal.js: export Signal, State, Computed, Watcher, tracking_wrapper
Introduce JavaScript Signal and provide tracking_wrapper() to utilize
dependency tracking for synchronous functions.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-21 Tim Janik # a1d34480daf
ui/Makefile.mk: add signal-polyfill.js module to site build files
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-21 Tim Janik # 8d70809c2f8
ase/properties.hh: include api.hh
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-19 Tim Janik # 8f220f35d54
ase/api.hh: add include for Member<>
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-15 Tim Janik # c646ced37ff
package.json: add signal-polyfill
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-14 Tim Janik # 664fad4324a
ase/clip: add all_notes, end_tick member properties
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-14 Tim Janik # 0cd00b578dc
ase/main.cc: let --fatal-warnings set assertion_failed_fatal=true
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-14 Tim Janik # 7969e8e32f1
ase/api.hh: expose Emittable.emit_notify()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-12 Tim Janik # 65b6899231f
.gitignore: ignore package-lock.json
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-24 Tim Janik # f28c9598261
jsonipc/jsonipc.js: maintain $props.promise and allow GC of objects with props
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-21 Tim Janik # a0a0fdc882b
jsonipc/jsonipc.hh: generate C++ properties as reactive JS properties
This gets rid of getter() and setter() on the JavaScript side and instead
provides an object property that supports assignment and readout.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-21 Tim Janik # 79b2402b4bf
jsonipc/jsonipc.hh: determine JavaScript initializer from C++ property type
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-21 Tim Janik # 62afcbdff25
jsonipc/jsonipc.js: add reactive property fetching, support finalizer cleanup callbacks
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-12 Tim Janik # 3adbcb671da
jsonipc/jsonipc.hh: use C++17 to check for Has_setget<>
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-12 Tim Janik # 9480888eaef
jsonipc/jsonipc.hh: support Member<> fields with set() + get() accessors
This uses C++20 concepts to detect the Member<> field.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-12 Tim Janik # 783056037b3
jsonipc/jsonipc.hh: avoid implicit `await` that delays setters, pass all args
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-12 Tim Janik # 0b3e3268946
jsonipc/jsonipc.hh: fix missing `const`
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-05 Tim Janik # 1cb29524535
ase/project: create Member bpm, numerator, denominator, skip musical_tuning
Leave (re-)implementation of musical_tuning (with its enum list) for later
when we actually use it.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-05 Tim Janik # 70e758e2a16
ase/properties.hh: remove unused struct Prop
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-05 Tim Janik # 745b59e1fd0
ase/properties, ase/gadget: remove unused PropertyBag
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-19 Tim Janik # 4e83cca5f07
ase/{parameter.hh,properties.hh}: move ParameterProperty into properties.hh
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-05 Tim Janik # 2bc19d140b5
ase/properties: inline PropertyBag::operator+=
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-21 Tim Janik # ab033cf5065
ase/parameter.hh: move ParamExtraVals out of Param
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-05 Tim Janik # 85a90aacc5a
ase/parameter.cc: maintain "ident=..." in metadata_ alongside cident
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-14 Tim Janik # 044b5947c4b
ase/gadget: add name member property
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-04 Tim Janik # 20a1fd7c3bc
ase/gadget: implement registry to access Member<>s ad parameters
* Implement _register_parameter()
* Implement requires_accessor(), register_accessor()
* Add ExtraVals to _register_parameter()
* Implement GadgetImpl::create_properties() from Member
* In create_properties(): use dynamic_cast to identify class member list
When creating the properties for an instance, walk through the known
GadgetClassMemberList entries, test each via dynamic_cast and thus
identify all class member lists that match the instance.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 0145667f5e8
ase/member: add Member<> to implement member field APIs via simple accessors
* FunctionTraits<>: provide ClassType, ReturnType, Arguments
* Add Member<> template
* Add MemberDetails to capture meta data
* Add and test _register_parameter()
* Add and test ExtraVals
* Pass ExtraVals as _register_parameter(ExtraVals)
* In tests, return bool from set()
* Add support for Member<accessor> without data field
Note, Member<> do not support initialization from the ctor.
In practice, we cannot call a Member<> setter for intiialization,
as it may be pointing to an abstract method, implemented by a
yet to be initialized derived class.
Related:
"C++ Properties - a Library Solution", by Lois Goldthwaite
https://accu.org/journals/overload/13/65/goldthwaite_255/#d0e143
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1615.pdf
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-09 Tim Janik # 2c4c5bb3752
ase/crawler: add documentation to methods
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-09 Tim Janik # e2dbb9261a5
ase/driver.cc: docs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-09 Tim Janik # fb59d67d991
ase/driver.hh: docs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 962c06ad483
ase/strings.cc: fix typeid_name() tests
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-20 Tim Janik # 873a0241765
ase/main.cc: support --test[=testname]
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # e33b63a2cda
ase/cxxaux: return const char* from typeid_name() and string_demangle_cxx()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-27 Tim Janik # ad00599fff0
Merge branch 'fix-lint'
* Branch commit log:
ase/combo.cc: fix includes
ase/clapdevice.cc: fix includes
ase/device.cc: fix includes
ui/b/clipview.js: write proper todo comment
ase/inifile.cc: write proper todo comment
ase/gtk2wrap.cc: write proper todo comment
ase/engine.cc: write proper todo comment
ase/driver.cc: fix comment
ase/driver-alsa.cc: fix cpp cond
ase/device.cc: write proper todo comment
ase/combo.cc: write proper todo comments
ase/clapplugin.cc: fix includes
ui/b/positionview.js: write proper todo comments
ui/b/propgroup.js: write proper todo comment
ase/clapdevice.cc: write proper todo comments
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 3dc7257a69e
ase/combo.cc: fix includes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 98b4a1936ac
ase/clapdevice.cc: fix includes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # a71ee2a0c5f
ase/device.cc: fix includes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 431bfa691c7
ui/b/clipview.js: write proper todo comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # b9135a39b98
ase/inifile.cc: write proper todo comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 75cde9e4e2e
ase/gtk2wrap.cc: write proper todo comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 6adccad1c49
ase/engine.cc: write proper todo comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 7c34555ecb0
ase/driver.cc: fix comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # dae3b4deb18
ase/driver-alsa.cc: fix cpp cond
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 7ec0766ecce
ase/device.cc: write proper todo comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 2c764514526
ase/combo.cc: write proper todo comments
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 173b41ea4bf
ase/clapplugin.cc: fix includes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 9f3cd286c82
ui/b/positionview.js: write proper todo comments
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 6fd5f6e78ba
ui/b/propgroup.js: write proper todo comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # df2155dd480
ase/clapdevice.cc: write proper todo comments
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-27 Tim Janik # 60f501a094e
Merge branch 'highlight-friendly-css'
* Branch commit log:
ui/b/*.js: use css`` method of JsExtract
ui/little.js: allow css`` constructs
.gitignore: add ignores
ui/postcss.js, ui/tailwind.config.mjs: move tailwind config
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 6f58def5079
ui/b/*.js: use css`` method of JsExtract
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # 76d9ea6973c
ui/little.js: allow css`` constructs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-03 Tim Janik # d5656cfc46d
.gitignore: add ignores
Signed-off-by: Tim Janik <timj@gnu.org>
2024-04-02 Tim Janik # dc73c630362
ui/postcss.js, ui/tailwind.config.mjs: move tailwind config
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-27 Tim Janik # b13f8b94436
Merge branch 'js-fixes'
* Branch commit log:
ui/kbd.js: when changing focus, scrollIntoView()
ui/wrapper.js: fix formatting of missing property error
ui/b/cliplist.js: use LitElement.weak_this
ui/little.js: provide lazily initialized LitElement.weak_this
ui/Makefile.mk: first check syntax via eslint, then types
package.json: add printf-ts for printf-style formatting in JS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-22 Tim Janik # 66d949ea65e
ui/kbd.js: when changing focus, scrollIntoView()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-27 Tim Janik # ee896a4dbab
ui/wrapper.js: fix formatting of missing property error
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-27 Tim Janik # ba7501dcc1e
ui/b/cliplist.js: use LitElement.weak_this
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-27 Tim Janik # 62a3bb8f7e1
ui/little.js: provide lazily initialized LitElement.weak_this
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-22 Tim Janik # 1bb7e139983
ui/Makefile.mk: first check syntax via eslint, then types
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-27 Tim Janik # 2f7957e44f0
package.json: add printf-ts for printf-style formatting in JS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-06 Tim Janik # db5b11af3c9
Merge branch 'disabled-button-menu-items'
* Branch commit log:
ui/b/menurow.js: update menu item description
ui/b/menuitem.js: remove, use <button/> instead now
This addresses #55 by now keeping a button inside a shadowRoot.
ui/b/contextmenu.js: handle .isactive, disabled state, focus assignment
ui/b/aboutdialog.js: use startViewTransition() to show dialog with async values
ui/eslintrc.cjs: allow & in class attributes of lit elements
ui/b/dialog.vue: add floating-dialog styling
ui/theme.scss: fix CSS
ui/mixins.scss: fix CSS
ui/global.scss: fix CSS
ui/b/filedialog.vue: fix CSS
ui/Makefile.mk: fix dir dependency
ase/memory.cc: change TODO comment
ase/clapplugin.cc: change TODO comment
ui/b/trackview.js: use render_contextmenu() and fix menu flicker
ui/b/treeselector-item.vue: fix CSS
ui/b/statusbar.js: use tailwind, fix height
ui/b/menurow.js: use tailwind
ui/b/propgroup.js: fix CSS
ui/b/menubar.js: fix CSS
ui/b/knob.js: fix CSS
ui/b/icon.js: fix CSS
ui/b/dialog.vue: fix CSS
ui/b/devicepanel.vue: fix CSS
ui/b/contextmenu.js: add render_contextmenu()
ui/b/clipview.js: fix CSS
ui/b/choiceinput.js: fix CSS
ui/b/contextmenu.js: properly update buttons on attribute changes
ui/b/contextmenu.js: fix CSS
ui/dom.js: fix comment
misc/version.sh: truncate extra long commit hash characters
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-06 Tim Janik # ae9e5c5924f
ui/b/menurow.js: update menu item description
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-06 Tim Janik # 6a23936fef5
ui/b/menuitem.js: remove, use <button/> instead now
This addresses #55 by now keeping a button inside a shadowRoot.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-06 Tim Janik # e63c16bdaab
ui/b/contextmenu.js: handle .isactive, disabled state, focus assignment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 22a868d3986
ui/b/aboutdialog.js: use startViewTransition() to show dialog with async values
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 0b36cc5c6a4
ui/eslintrc.cjs: allow & in class attributes of lit elements
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 4fe97b4297f
ui/b/dialog.vue: add floating-dialog styling
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 3638a1dc31e
ui/theme.scss: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 6bfc71ebcf7
ui/mixins.scss: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 04f2885cc44
ui/global.scss: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # d80f477bb2d
ui/b/filedialog.vue: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # dc0fdc1579d
ui/Makefile.mk: fix dir dependency
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 2460ce76427
ase/memory.cc: change TODO comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # df44022edf2
ase/clapplugin.cc: change TODO comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 6bf74e91b07
ui/b/trackview.js: use render_contextmenu() and fix menu flicker
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 0dc994f2e69
ui/b/treeselector-item.vue: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 36cfc3c3aa7
ui/b/statusbar.js: use tailwind, fix height
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 97c50c3d7f6
ui/b/menurow.js: use tailwind
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 1fc45c6eb2f
ui/b/propgroup.js: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 3b431d5640e
ui/b/menubar.js: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # a514930c676
ui/b/knob.js: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 9ba7ef22b3e
ui/b/icon.js: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # dbd4486ea34
ui/b/dialog.vue: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 47a2ec4044b
ui/b/devicepanel.vue: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 2e3f40a8d6f
ui/b/contextmenu.js: add render_contextmenu()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 92c63c034e7
ui/b/clipview.js: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 7a8d471b03e
ui/b/choiceinput.js: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # f1b5fb910d6
ui/b/contextmenu.js: properly update buttons on attribute changes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 08a998dc417
ui/b/contextmenu.js: fix CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-05 Tim Janik # 0c61338ec34
ui/dom.js: fix comment
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # b4e583a8bb7
misc/version.sh: truncate extra long commit hash characters
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 64cc42bb85a
Merge branch 'menu-item-button'
* Branch commit log:
x11test/play-notes.json: fixup icon reference
ui/theme.scss: fix duplicate CSS
ui/postcss.js: minor fix
ui/dom.js: add text_content()
ui/b/treeselector.vue: allow get_uri() in <template/>
ui/b/treeselector-item.vue: allow get_uri() in <template/>
ui/b/textinput.js: fix missing prop init
ui/b/contextmenu.js, menurow.js: fix padding
ui/types.d.ts: add document.startViewTransition
package.json: update all packages (Electron-29)
This updates to Vue-3.4, Electron-29 with Chrome-122,
Node-20 and V8-12.
ui/Makefile.mk: run stylelint when processing CSS files
ui/stylelintrc.cjs: add postcss-scss to stylelint, ignore whitespace diags
package.json: add stylelint-config-standard-scss
package.json: fix dependency order
ui/b/contextmenu.js: treat normal <button/> elements like menu items
ui/b/trackview.js: use button as menu item
ui/b/menurow.js: add some horizontal spacing around rows
ui/b/pianoroll.js: use button as menu item
ui/b/menubar.js: use button as menu item
ui/b/deviceeditor.js: use button as menu item
ui/b/choiceinput.js: use button as menu item
ui/util.js: remove uinused handler
ui/kbd.js: remvoe useless prefix
ui/kbd.js: leave focus activation via Enter to the browser
ui/kbd.js: allow cycling when arrow keys change focus
ui/dom.js: add get_uri, valid_uri, has_uri
ui/b/treeselector.vue: use get_uri()
ui/b/treeselector-item.vue: use get_uri()
ui/b/trackview.js: use get_uri()
ui/b/pianoroll.js: use get_uri()
ui/b/filedialog.vue: use get_uri()
ui/b/choiceinput.js: use get_uri()
ui/eslintrc.cjs: permit custom class names next to tailwind
ui/b/aboutdialog.js: fix class comment to apply to class
ui/b/folderview.vue: remove useless flexbox packing around each file entry
Significant CR speed up, flexbox seems slow in Chrome.
ui/b/editable.js: fix background color
ui/Makefile.mk: remove stale build file $>/ui/global.scss
ui/tailwind.scss: split off button-down-within and button-active
ui/b/menubar.js: adjust icon layout
ui/b/folderview.vue: adjust icon layout
ui/b/icon.js: simplify and remove intermediate HTMLElement
ui/b/menubar.js: apply button-dim
ui/b/playcontrols.js: apply button-down
ui/tailwind.scss: split .button-dim .button-down
ui/b/playcontrols.js: add .button-dim to push-buttons
ui/b/filedialog.vue, ui/b/preferencesdialog.vue: use .button-xl
ui/b/editable.js: only cancel valid edits on Escape
ui/Makefile.mk: invoke ui/postcss.js directly
ui/colors.js: import zcam-js as module
ui/Makefile.mk: allow recovery from build errors during live updates
ui/Makefile.mk: reassign ui-build and ui-reload rules
ui/b/trackview.js: use tailwind for b-editable
ui/b/positionview.js: use tailwind for b-editable
ui/b/editable.js: simplify, remove shadowRoot, use tailwind
ui/tailwind.scss: add text-inherit and :focus-visible styling
ui/eslintrc.cjs: remove unsupported start_view_transition global
ui/b/aboutdialog.js: use startViewTransition() around closing
ui/global.scss: get rid of (now) unused grid helpers
ui/b/filedialog.vue: use col-start-* row-start-*
ui/b/pianoroll.js: use col-start-* row-start-*
ui/b/shell.vue: properly use document.startViewTransition()
ui/index.html: sync document.startViewTransition() with Vue for CR and FF
Always sync document.startViewTransition() with pending Vue updates, and install
a simple handler caller if the browser does not support document.startViewTransition()
(like FireFox-123).
ui/b/aboutdialog.js: use tailwind styling
ui/tailwind.scss: add dialog-header, dialog-footer
ui/tailwind.scss: add button-dim, button-xl
ui/global.scss: leave buttons to tailwind
ui/tailwind.scss: add border-1
ui/tailwind.scss: add hflex, vflex and dialog helpers
ui/tailwind.scss: add dflt border color, disable text selection in base layer
ui/postcss.js: add "dim" color scheme, a smoothed zinc like color
ui/postcss.js: add --tw-border-default-color
ui/ch-component.md: add section on "Guidelines for Web Components"
ui/util.js: remove unneeded visibility:hidden toggeling
This solves the menu-button-stuck-on-outside-click issue
described in #55.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # fddd81d18cc
x11test/play-notes.json: fixup icon reference
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 40b57a836d0
ui/theme.scss: fix duplicate CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 62a855668b7
ui/postcss.js: minor fix
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 34e65b6d45a
ui/dom.js: add text_content()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 450a17fe894
ui/b/treeselector.vue: allow get_uri() in <template/>
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 364832d219d
ui/b/treeselector-item.vue: allow get_uri() in <template/>
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # c459ef6a582
ui/b/textinput.js: fix missing prop init
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 3542e921f42
ui/b/contextmenu.js, menurow.js: fix padding
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 44b91a4fbc1
ui/types.d.ts: add document.startViewTransition
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # a3ad00aa165
package.json: update all packages (Electron-29)
This updates to Vue-3.4, Electron-29 with Chrome-122,
Node-20 and V8-12.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 5c0f4345348
ui/Makefile.mk: run stylelint when processing CSS files
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 5ae87bb7333
ui/stylelintrc.cjs: add postcss-scss to stylelint, ignore whitespace diags
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 061dbaabb55
package.json: add stylelint-config-standard-scss
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 18c6872fff1
package.json: fix dependency order
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # dcb6ac6ca0f
ui/b/contextmenu.js: treat normal <button/> elements like menu items
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 61c225215d7
ui/b/trackview.js: use button as menu item
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # bc8fefefbc9
ui/b/menurow.js: add some horizontal spacing around rows
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # aef559af7b0
ui/b/pianoroll.js: use button as menu item
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # ec2b800f2cd
ui/b/menubar.js: use button as menu item
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 03372fd98cd
ui/b/deviceeditor.js: use button as menu item
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # b66f61283d3
ui/b/choiceinput.js: use button as menu item
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 0a5999dbbf1
ui/util.js: remove uinused handler
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 43502ac8472
ui/kbd.js: remvoe useless prefix
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 54267bf90c3
ui/kbd.js: leave focus activation via Enter to the browser
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # a8f8de6bec0
ui/kbd.js: allow cycling when arrow keys change focus
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 989854b9a68
ui/dom.js: add get_uri, valid_uri, has_uri
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # db1f30cd35d
ui/b/treeselector.vue: use get_uri()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 7d0a4530366
ui/b/treeselector-item.vue: use get_uri()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 52897072075
ui/b/trackview.js: use get_uri()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 570bbc798fa
ui/b/pianoroll.js: use get_uri()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # 12a28612070
ui/b/filedialog.vue: use get_uri()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-04 Tim Janik # c7a0b74278f
ui/b/choiceinput.js: use get_uri()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # d07dd411c57
ui/eslintrc.cjs: permit custom class names next to tailwind
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 7dee3982421
ui/b/aboutdialog.js: fix class comment to apply to class
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 0377437bb03
ui/b/folderview.vue: remove useless flexbox packing around each file entry
Significant CR speed up, flexbox seems slow in Chrome.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # e8664ee62d0
ui/b/editable.js: fix background color
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # ed72ebb0c23
ui/Makefile.mk: remove stale build file $>/ui/global.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 20b61cfcb1a
ui/tailwind.scss: split off button-down-within and button-active
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # fad625199ad
ui/b/menubar.js: adjust icon layout
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 4b244f62882
ui/b/folderview.vue: adjust icon layout
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # c41544bd406
ui/b/icon.js: simplify and remove intermediate HTMLElement
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 918eaaf7988
ui/b/menubar.js: apply button-dim
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 2e760d1ef19
ui/b/playcontrols.js: apply button-down
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # c6eea988948
ui/tailwind.scss: split .button-dim .button-down
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # fc7aa0db226
ui/b/playcontrols.js: add .button-dim to push-buttons
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 626c6f22b89
ui/b/filedialog.vue, ui/b/preferencesdialog.vue: use .button-xl
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 267d996e9c6
ui/b/editable.js: only cancel valid edits on Escape
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 0675378723b
ui/Makefile.mk: invoke ui/postcss.js directly
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # f03e294e799
ui/colors.js: import zcam-js as module
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # cc6918ace97
ui/Makefile.mk: allow recovery from build errors during live updates
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 301b52ddc00
ui/Makefile.mk: reassign ui-build and ui-reload rules
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-02 Tim Janik # 4581ab8e632
ui/b/trackview.js: use tailwind for b-editable
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-02 Tim Janik # 8d5ede635ef
ui/b/positionview.js: use tailwind for b-editable
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-02 Tim Janik # 9a8703f2885
ui/b/editable.js: simplify, remove shadowRoot, use tailwind
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-02 Tim Janik # 2c8e7a9dba5
ui/tailwind.scss: add text-inherit and :focus-visible styling
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-02 Tim Janik # fdd32fb0e10
ui/eslintrc.cjs: remove unsupported start_view_transition global
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-02 Tim Janik # f91991d5481
ui/b/aboutdialog.js: use startViewTransition() around closing
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # d17284c5433
ui/global.scss: get rid of (now) unused grid helpers
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # f05dd3ecc95
ui/b/filedialog.vue: use col-start-* row-start-*
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 09a83bfedbc
ui/b/pianoroll.js: use col-start-* row-start-*
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 38e7526a536
ui/b/shell.vue: properly use document.startViewTransition()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 0b0df7eac35
ui/index.html: sync document.startViewTransition() with Vue for CR and FF
Always sync document.startViewTransition() with pending Vue updates, and install
a simple handler caller if the browser does not support document.startViewTransition()
(like FireFox-123).
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-29 Tim Janik # 016afc99692
ui/b/aboutdialog.js: use tailwind styling
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-29 Tim Janik # 3849dccd27d
ui/tailwind.scss: add dialog-header, dialog-footer
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-29 Tim Janik # 7d825459f08
ui/tailwind.scss: add button-dim, button-xl
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-29 Tim Janik # d4d1f784534
ui/global.scss: leave buttons to tailwind
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-29 Tim Janik # 1e164a9fd8b
ui/tailwind.scss: add border-1
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-29 Tim Janik # 2e6592ac8ab
ui/tailwind.scss: add hflex, vflex and dialog helpers
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-29 Tim Janik # 7aa6096fd4e
ui/tailwind.scss: add dflt border color, disable text selection in base layer
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-29 Tim Janik # ee67e87d776
ui/postcss.js: add "dim" color scheme, a smoothed zinc like color
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-28 Tim Janik # bfa7ce50e4b
ui/postcss.js: add --tw-border-default-color
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-28 Tim Janik # 3e4de153618
ui/ch-component.md: add section on "Guidelines for Web Components"
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # c9f08c12a6f
ui/util.js: remove unneeded visibility:hidden toggeling
This solves the menu-button-stuck-on-outside-click issue
described in #55.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # 74673c38c56
Merge branch 'tailwindcss'
* tailwindcss:
ui/global.scss: remove ui/normalize.scss, tailwind does normalization now
ui/global.scss: import tailwind.scss
ui/tailwind.scss: render tailwind base, component, utility styles
ui/eslintrc.js: add tailwindcss recommended warnings
ui/Makefile.mk: add tailwind inputs as global.css dependency
ui/postcss.js: add tailwindcss, tailwindcss/nesting to processing
misc/package.json.in: add prettier, prettier-plugin-tailwindcss for devel
misc/package.json.in: add eslint-plugin-tailwindcss
misc/package.json.in: install tailwindcss components
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-27 Tim Janik # b214c09299a
ui/global.scss: remove ui/normalize.scss, tailwind does normalization now
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-27 Tim Janik # e111c2ecb50
ui/global.scss: import tailwind.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-29 Tim Janik # 50bd3d8cb54
ui/tailwind.scss: render tailwind base, component, utility styles
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-27 Tim Janik # 8bc7959de50
ui/eslintrc.js: add tailwindcss recommended warnings
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-27 Tim Janik # 20e09b5cb08
ui/Makefile.mk: add tailwind inputs as global.css dependency
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-27 Tim Janik # 2b74921d9cf
ui/postcss.js: add tailwindcss, tailwindcss/nesting to processing
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-27 Tim Janik # 25665936fae
misc/package.json.in: add prettier, prettier-plugin-tailwindcss for devel
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-23 Tim Janik # 7fa3a3b1304
misc/package.json.in: add eslint-plugin-tailwindcss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-16 Tim Janik # 0e30c278b93
misc/package.json.in: install tailwindcss components
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-03 Tim Janik # c5ea11f2fdb
Merge branch 'pr51/swesterfeld-piano-roll-fixes', closes #51
* pr51/swesterfeld-piano-roll-fixes:
ui/b/piano-ctrl.js: use higher tool priority for selected notes
ui/b/pianoroll.js: draw selected notes over unselected notes
ui/b/piano-ctrl.js: support shift cursor up/down (move 1 octave up/down)
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-19 Stefan Westerfeld # 5af75a71f3b
ui/b/piano-ctrl.js: use higher tool priority for selected notes
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-17 Stefan Westerfeld # f53ac69cc91
ui/b/pianoroll.js: draw selected notes over unselected notes
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-17 Stefan Westerfeld # facf8329a2f
ui/b/piano-ctrl.js: support shift cursor up/down (move 1 octave up/down)
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-03-03 Tim Janik # aac575d4dad
Merge branch 'pr50/swesterfeld-default-tempo-120-bpm'
* pr50/swesterfeld-default-tempo-120-bpm:
ase/project.cc: set transport tempo when starting playback
ase/project.cc: set default tempo to 120 bpm
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-16 Stefan Westerfeld # 715b400ab2e
ase/project.cc: set transport tempo when starting playback
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-15 Stefan Westerfeld # e617d9a3947
ase/project.cc: set default tempo to 120 bpm
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-03-03 Tim Janik # 8e9eb35ea2b
Merge branch 'color-js'
* Branch commit log:
misc/package.json.in: add colorjs.io
ui/colors.js: export hex_from_zcam() and add zcam4()
misc/package.json.in: remove unused postcss-color-mod-function
ui/postcss.js: remove unused color-mod
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-23 Tim Janik # a219817aee2
misc/package.json.in: add colorjs.io
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-23 Tim Janik # 5c346f8ba8e
ui/colors.js: export hex_from_zcam() and add zcam4()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-27 Tim Janik # e5d68daf20c
misc/package.json.in: remove unused postcss-color-mod-function
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-27 Tim Janik # 52cc4bb7eff
ui/postcss.js: remove unused color-mod
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 19e59488ef3
Merge branch 'proper-package.json'
* Branch commit log:
doc/copyright.ini: fix package.json path
ui/Makefile.mk: adjust paths for the typescript compiler invocation
ui/Makefile.mk: adjust paths for the eslint invocation
ui/Makefile.mk: adjust paths for the stylelint invocation
ui/Makefile.mk: adjust build stamp paths
ui/tsconfig.json: use full path to source files
Makefile.mk: fix missing CLEANFILES
ui/xbcomments.js: use ES6 imports
ui/jsextract.js: use ES6 imports
ui/Makefile.mk: adjust eslint to run in project root
ui/sfc-compile.js: use ES6 imports
ui/eslintrc.cjs: add comment about why this is CJS
ui/eslintrc.cjs: convert to CJS to be loadable from eslint
package.json: use paths relative to project root
doc/jsdoc-slashes.cjs: add comment about why this is CJS
doc/jsdoc-slashes.cjs: convert to CJS to be loadable from jsdoc
doc/jsdoc2md.js: convert to ES6 module
ui/Makefile.mk: use node_modules/ in project root
x11test/replay.sh: use node_modules/ in project root
doc/*: use node_modules/ in project root
electron/Makefile.mk: use node_modules/ in project root
Makefile.mk: install node_modules/ in project root
package.json: move NPM package configuration here
misc/package.json.in: use exec in scripts to spare shell wrappers
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 0e8f3fd3676
doc/copyright.ini: fix package.json path
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # e39d150aa5e
ui/Makefile.mk: adjust paths for the typescript compiler invocation
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # c98c660f215
ui/Makefile.mk: adjust paths for the eslint invocation
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # fa8f5731dfe
ui/Makefile.mk: adjust paths for the stylelint invocation
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 20469aa53a6
ui/Makefile.mk: adjust build stamp paths
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 8eb935cbd5d
ui/tsconfig.json: use full path to source files
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 6a69ed7e6ae
Makefile.mk: fix missing CLEANFILES
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # a308219f7df
ui/xbcomments.js: use ES6 imports
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 56ce3f5d8eb
ui/jsextract.js: use ES6 imports
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 411d5c464b5
ui/Makefile.mk: adjust eslint to run in project root
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 12bcc615d60
ui/sfc-compile.js: use ES6 imports
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 3b22f0112d2
ui/eslintrc.cjs: add comment about why this is CJS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 809e8e7cf61
ui/eslintrc.cjs: convert to CJS to be loadable from eslint
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # b674c2d2fdc
package.json: use paths relative to project root
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 474f44cf6e5
doc/jsdoc-slashes.cjs: add comment about why this is CJS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # be8fb9b3082
doc/jsdoc-slashes.cjs: convert to CJS to be loadable from jsdoc
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 35823fa4987
doc/jsdoc2md.js: convert to ES6 module
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 0ba604c31d3
ui/Makefile.mk: use node_modules/ in project root
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 9be4156410f
x11test/replay.sh: use node_modules/ in project root
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 0373cde24b6
doc/*: use node_modules/ in project root
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # a894eeaf0de
electron/Makefile.mk: use node_modules/ in project root
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # c52d9431393
Makefile.mk: install node_modules/ in project root
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 52bcbf7afa4
package.json: move NPM package configuration here
Signed-off-by: Tim Janik <timj@gnu.org>
2024-03-01 Tim Janik # 21d7b5a11a7
misc/package.json.in: use exec in scripts to spare shell wrappers
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # f6ea63f37f3
Merge branch 'utf8-for-legacy-filenames' - support legacy filenames via UTF-8 private use area mapping
* utf8-for-legacy-filenames, closes #49:
ui/b/app.js: use displayfs(), displaybasename()
ui/b/folderview.vue: import basename, dirname, displayfs, etc
ui/b/menubar.js: use displayfs(), dirname()
ui/b/filedialog.vue: use displayfs(), displaybasename(), displaydirname()
ui/strings.js: add hex basename dirname displayfs isplaybasename displaydirname
ui/index.html, ui/eslintrc.js, ui/types.d.ts: add assert() globally
ase/project: use encodefs/decodefs for all filenames in the API
ase/crawler: use encodefs/decodefs for all filenames in the API
ase/websocket: add WebSocketServer::utf8_validate()
This exports the websocketpp UTF-8 validation logic.
ase/unicode.cc: test encodefs(), decodefs(), displayfs()
ase/unicode: add encodefs(), decodefs(), displayfs()
ase/tests/benchmarks.cc: use Ase::utf8encode()
ase/unicode: rename utf8encode()
Change string_from_unicode to utf8encode() to be more consistent.
ase/unicode: add utf8decode()
ase/unicode.cc: utf8character<>(): support mapping high bytes to 0xEF80..0xEFFF
ase/cxxaux: export backtrace_command() with lldb and gdb support
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # 04b4e7436ef
ui/b/app.js: use displayfs(), displaybasename()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # 3d931ade719
ui/b/folderview.vue: import basename, dirname, displayfs, etc
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # bb3a2c165a0
ui/b/menubar.js: use displayfs(), dirname()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # 4a1a3b198e3
ui/b/filedialog.vue: use displayfs(), displaybasename(), displaydirname()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # ef65f1b0093
ui/strings.js: add hex basename dirname displayfs isplaybasename displaydirname
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-20 Tim Janik # be9ec0e32da
ui/index.html, ui/eslintrc.js, ui/types.d.ts: add assert() globally
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # 631408042fc
ase/project: use encodefs/decodefs for all filenames in the API
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # 29b66ac3e83
ase/crawler: use encodefs/decodefs for all filenames in the API
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-20 Tim Janik # 515ff557ea7
ase/websocket: add WebSocketServer::utf8_validate()
This exports the websocketpp UTF-8 validation logic.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-20 Tim Janik # d30b3cd704d
ase/unicode.cc: test encodefs(), decodefs(), displayfs()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-20 Tim Janik # 59bcd3f6546
ase/unicode: add encodefs(), decodefs(), displayfs()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # c70ffc19f6f
ase/tests/benchmarks.cc: use Ase::utf8encode()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-20 Tim Janik # 5390aa5f3fe
ase/unicode: rename utf8encode()
Change string_from_unicode to utf8encode() to be more consistent.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-20 Tim Janik # e6c02277328
ase/unicode: add utf8decode()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-20 Tim Janik # 582b265d52d
ase/unicode.cc: utf8character<>(): support mapping high bytes to 0xEF80..0xEFFF
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-20 Tim Janik # 1869bd8f20a
ase/cxxaux: export backtrace_command() with lldb and gdb support
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-21 Tim Janik # 7ebcb3eb3ad
Merge branch 'bug-fixes'
* bug-fixes:
ui/b/trackview.js: fix scale rounding that caused extra UI flicker
README.md: link to Roadmap Discussions Feedback & Ideas: #52
ase/combo.cc: fix combo insertion order for devices inserted at end
Fixes #24.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-16 Tim Janik # 0bf5c7913fc
ui/b/trackview.js: fix scale rounding that caused extra UI flicker
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-20 Tim Janik # 66ab731951f
README.md: link to Roadmap Discussions Feedback & Ideas: #52
2024-02-14 Stefan Westerfeld # c2241107b8f
ase/combo.cc: fix combo insertion order for devices inserted at end
Fixes #24.
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-14 Tim Janik # 82fad166307
Merge branch 'pr45/swesterfeld-freeverb-mix' - closes #23
* pr45/swesterfeld-freeverb-mix:
devices/freeverb/freeverb.cc: support sample-accurate parameter changes
devices/freeverb/freeverb.cc: optimize processing for constant mix case
devices/freeverb/freeverb.cc: merge dry/wet parameters into mix parameter
See #23. Also add parameter smoothing for mix to avoid clicks when
changing/automating the parameter.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-14 Stefan Westerfeld # 353c4866cb3
devices/freeverb/freeverb.cc: support sample-accurate parameter changes
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-14 Stefan Westerfeld # 1ce9efe54d4
devices/freeverb/freeverb.cc: optimize processing for constant mix case
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-14 Stefan Westerfeld # 3faf1aa0d46
devices/freeverb/freeverb.cc: merge dry/wet parameters into mix parameter
See #23. Also add parameter smoothing for mix to avoid clicks when
changing/automating the parameter.
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-14 Tim Janik # 714ea0c0884
Merge branch 'pr43/swesterfeld-midi-events-uint-offset' - closes #26
* pr43/swesterfeld-midi-events-uint-offset:
devices/liquidsfz/liquidsfz.cc: avoid using printf (use printerr instead)
ASE: midievent.hh: fix clang tidy problem (add typename)
devices/saturation/saturation.cc: midi event frame offsets are now unsigned
devices/liquidsfz/liquidsfz.cc: midi event frame offsets are now unsigned
devices/blepsynth/blepsynth.cc: midi event frame offsets are now unsigned
ASE: midilib.cc: midi event frame offsets are now always positive (#26)
ASE: clapplugin.cc: midi event frame offsets are now always positive (#26)
ASE: midievent: avoid negative frame offsets in midi events
Use unsigned data type for midi event offset, see issue #26.
ase/memory.cc: avoid constexpr std::string use that needs clang++-17
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-13 Stefan Westerfeld # 25c0f8acecd
devices/liquidsfz/liquidsfz.cc: avoid using printf (use printerr instead)
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-13 Stefan Westerfeld # 966f87f159a
ASE: midievent.hh: fix clang tidy problem (add typename)
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-13 Stefan Westerfeld # c4483c74404
devices/saturation/saturation.cc: midi event frame offsets are now unsigned
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-13 Stefan Westerfeld # c4ee7f45cc4
devices/liquidsfz/liquidsfz.cc: midi event frame offsets are now unsigned
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-13 Stefan Westerfeld # d051061a347
devices/blepsynth/blepsynth.cc: midi event frame offsets are now unsigned
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-13 Stefan Westerfeld # 05013a22d69
ASE: midilib.cc: midi event frame offsets are now always positive (#26)
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-13 Stefan Westerfeld # d634c2ea654
ASE: clapplugin.cc: midi event frame offsets are now always positive (#26)
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-13 Stefan Westerfeld # f4d776fc36c
ASE: midievent: avoid negative frame offsets in midi events
Use unsigned data type for midi event offset, see issue #26.
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-14 Tim Janik # ab0e2aded1a
ase/memory.cc: avoid constexpr std::string use that needs clang++-17
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-14 Tim Janik # 02e6083c306
Merge branch 'SPEEDUP-UTILS' - extend and speed up internal utils
* SPEEDUP-UTILS:
ase/memory.cc: use array + string ptr unordered_map for quarks
This fixes slowdowns where heavy use of CString lookups turns into a bottleneck.
ase/platform.hh: add extern const char *const ase_sharedir;
ase/Makefile.mk: add extern char*ase_sharedir; to ase/buildversion*.cc
ase/strings.cc: support arrays for string_startswith() and string_endswith()
ase/path: add glob() variant that separates dirs and files
ase/path.cc: increase file_memread() buffer size to up to 1MB
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-13 Tim Janik # ec22ed9c7d6
ase/memory.cc: use array + string ptr unordered_map for quarks
This fixes slowdowns where heavy use of CString lookups turns into a bottleneck.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-13 Tim Janik # bc3291c76b5
ase/platform.hh: add extern const char *const ase_sharedir;
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-13 Tim Janik # aaeeb658002
ase/Makefile.mk: add extern char*ase_sharedir; to ase/buildversion*.cc
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-13 Tim Janik # 67cf3dcb0ce
ase/strings.cc: support arrays for string_startswith() and string_endswith()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-13 Tim Janik # e877182b4cf
ase/path: add glob() variant that separates dirs and files
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-13 Tim Janik # b0ee75fe6f8
ase/path.cc: increase file_memread() buffer size to up to 1MB
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-12 Tim Janik # af7da4af195
Merge branch 'b-textinput-prop' - add .prop to <b-textinput/>
* b-textinput-prop:
ui/b/propinput.js: use <b-textinput .prop=${prop} />
ui/b/objecteditor.js: use <b-textinput .prop=${prop} />
ui/b/textinput.js: move to directly operating on .prop
ase/project.cc: add project.default_license preference
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-12 Tim Janik # bdd15b7aa1d
ui/b/propinput.js: use <b-textinput .prop=${prop} />
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-12 Tim Janik # 01d18da5b19
ui/b/objecteditor.js: use <b-textinput .prop=${prop} />
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-12 Tim Janik # 2dbf03e3c31
ui/b/textinput.js: move to directly operating on .prop
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-12 Tim Janik # f1b92a8fff1
ase/project.cc: add project.default_license preference
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-11 Tim Janik # ab3b8da27c7
Merge branch 'fix-non-anklang-dir' - fix loading from non-anklang-dir
* fix-non-anklang-dir:
ase/project.cc: properly halt at root when searching parent dirs
ase/path: add and test Path::isroot()
.gitignore: remove unused backslash that confuses jj
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-11 Tim Janik # 96ab848d976
ase/project.cc: properly halt at root when searching parent dirs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-11 Tim Janik # 6286dcb69de
ase/path: add and test Path::isroot()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # 305ea318052
.gitignore: remove unused backslash that confuses jj
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # 5f06a6d4522
Merge branch 'properties-metadata' - support generic metadata on properties
* properties-metadata:
devices/saturation/saturation.cc: add "blurb=" prefix and mark translations
devices/liquidsfz/liquidsfz.cc: add "blurb=" prefix and mark translations
devices/freeverb/freeverb.cc: add "blurb=" prefix and mark translations
devices/blepsynth/blepsynth.cc: add "blurb=" prefix and mark translations
ase/api.hh: introduce metadata() for properties
* Add const this qualifier to parameter APIs.
* engine.cc: add "descr=" prefix to property metadata
* project.cc: add "descr=" prefix to property metadata
ase/strings: add kvpairs_fetch() and kvpairs_assign()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 75d7abb652e
devices/saturation/saturation.cc: add "blurb=" prefix and mark translations
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 296dc35c13a
devices/liquidsfz/liquidsfz.cc: add "blurb=" prefix and mark translations
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 992e542f70d
devices/freeverb/freeverb.cc: add "blurb=" prefix and mark translations
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # f5c3a700ff7
devices/blepsynth/blepsynth.cc: add "blurb=" prefix and mark translations
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 758a07bbcd4
ase/api.hh: introduce metadata() for properties
* Add const this qualifier to parameter APIs.
* engine.cc: add "descr=" prefix to property metadata
* project.cc: add "descr=" prefix to property metadata
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 47f759f29c2
ase/strings: add kvpairs_fetch() and kvpairs_assign()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # 070d91a9ec1
Merge branch 'MOUSE-WHEEL' - fix mouse wheel handling in modern Chrome and Firefox
* MOUSE-WHEEL:
ui/util.js: remove unused wheel2scrollbars
ui/b/pianoroll.js: reinstante hzoom and vzoom adjustments via Ctrl
ui/util.js: use Mouse.wheel_delta()
ui/b/knob.js: use Mouse.wheel_delta()
ui/b/pianoroll.js: properly scroll via deltaY from Mouse.wheel_delta()
ui/mouse.js: wheel_delta(): provide .x, .y, .z in pixels
ui/b/app.js: defer ZMove handling to mouse.js
ui/mouse.js: include ZMove notification handling
ui/index.html: start mouse.js early on
ui/mouse.js: add event_movement() and wheel_delta() to fix event coords
Cross browser normalization of movementX,movementY and deltaX,deltaY is a hot mess, see:
https://bugs.chromium.org/p/chromium/issues/detail?id=1092358
https://bugzilla.mozilla.org/show_bug.cgi?id=1392460
https://github.com/w3c/uievents/issues/181
https://github.com/w3c/pointerlock/issues/42
https://github.com/mdn/content/issues/11811
ui/index.html: disable modulepreload, it causes module errors in Firefox-122
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # b9341a8dcb8
ui/util.js: remove unused wheel2scrollbars
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 0bb12a3c44d
ui/b/pianoroll.js: reinstante hzoom and vzoom adjustments via Ctrl
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # e331408d3a8
ui/util.js: use Mouse.wheel_delta()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 7f3352641aa
ui/b/knob.js: use Mouse.wheel_delta()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 819751129fd
ui/b/pianoroll.js: properly scroll via deltaY from Mouse.wheel_delta()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 263fb28ef7b
ui/mouse.js: wheel_delta(): provide .x, .y, .z in pixels
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # 624d3cb4c57
ui/b/app.js: defer ZMove handling to mouse.js
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-07 Tim Janik # f619b88b770
ui/mouse.js: include ZMove notification handling
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-03 Tim Janik # 0d0f868881d
ui/index.html: start mouse.js early on
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-03 Tim Janik # 4d71d65bcf2
ui/mouse.js: add event_movement() and wheel_delta() to fix event coords
Cross browser normalization of movementX,movementY and deltaX,deltaY is a hot mess, see:
https://bugs.chromium.org/p/chromium/issues/detail?id=1092358
https://bugzilla.mozilla.org/show_bug.cgi?id=1392460
https://github.com/w3c/uievents/issues/181
https://github.com/w3c/pointerlock/issues/42
https://github.com/mdn/content/issues/11811
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-03 Tim Janik # 7001b3a42da
ui/index.html: disable modulepreload, it causes module errors in Firefox-122
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # 8cfd32998cf
Merge branch 'GRID-FILE-BROWSER' - use <grid/> for file browser
* GRID-FILE-BROWSER:
misc/package.json.in: fix path of rebuild command
ui/kbd.js: fix coord check during horizontal focus movement
ui/b/folderview.vue: use grid with column flow to fix slow flexbox wrapping
ase/websocket.cc: use "CR" as Chrome abbreviation
ase/strings.hh: fix spacing
ase/clapplugin.cc: fix newline
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-01 Tim Janik # b3f05b8c1ba
misc/package.json.in: fix path of rebuild command
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-01 Tim Janik # dca62c8522e
ui/kbd.js: fix coord check during horizontal focus movement
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-01 Tim Janik # d4dd7f8b525
ui/b/folderview.vue: use grid with column flow to fix slow flexbox wrapping
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-03 Tim Janik # 8f6f6150126
ase/websocket.cc: use "CR" as Chrome abbreviation
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-01 Tim Janik # 6a4ee4bb900
ase/strings.hh: fix spacing
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-01 Tim Janik # 46b3e733daf
ase/clapplugin.cc: fix newline
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # 765600ad266
Merge branch 'ATOMIC-STACK' - simple atomic stack based on Loft
* ATOMIC-STACK:
ase/atomics.cc: add atomic_valuestack_test()
ase/atomics.hh: add a simple AtomicStack<> with just push, pop, empty
ase/loft.hh: reduce includes
ase/loft.hh: allow constexpr Loft::Allocator and export allows_read_after_free
misc/synsmell.py: escape FI[X]ME
misc/synsmell.py: reduce false positives for the separate-body check
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-31 Tim Janik # 83dabcec2a5
ase/atomics.cc: add atomic_valuestack_test()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-31 Tim Janik # f9bb7ac31fd
ase/atomics.hh: add a simple AtomicStack<> with just push, pop, empty
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-31 Tim Janik # 5861fd05a0c
ase/loft.hh: reduce includes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-31 Tim Janik # ff8f54358b3
ase/loft.hh: allow constexpr Loft::Allocator and export allows_read_after_free
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-31 Tim Janik # 60dd1c5de57
misc/synsmell.py: escape FI[X]ME
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-31 Tim Janik # 14be87b24af
misc/synsmell.py: reduce false positives for the separate-body check
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # 789a493e25a
Merge branch 'SFZ-STRING-PARAM' - pass SFZ instrument as string
* SFZ-STRING-PARAM:
devices/liquidsfz/liquidsfz.cc: pass instrument name as string param via Quark
ase/memory.hh: fix missing constexpr for CString::qset()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-28 Tim Janik # 114bb223afe
devices/liquidsfz/liquidsfz.cc: pass instrument name as string param via Quark
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # edd4c0a03a0
ase/memory.hh: fix missing constexpr for CString::qset()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # 55480ad239a
Merge branch 'pr7/swesterfeld-liquidsfz'
* pr7/swesterfeld-liquidsfz:
devices/liquidsfz/Makefile.mk: remove -Iexternal/liquidsfz/lib
Includes need to be added to ase/Makefile.mk for all tools to pick them up.
ase/Makefile.mk: add -Iexternal/liquidsfz/lib
ASE: add copyright information to liquidsfz meta includers
ASE: compile liquidsfz library code into ase library
DEVICES: liquidsfz: prepare code for .sfz file specific parameter handling
DEVICES: liquidsfz: add include path to external submodule
EXTERNAL: liquidsfz: add swesterfeld/liquidsfz commit from 2023-11-18 15:15:57
git submodule add --name liquidsfz https://github.com/swesterfeld/liquidsfz.git external/liquidsfz
git -C external/liquidsfz checkout 590149ea8c83588c17833d7b9b6653f0f6aab6fb
DEVICES liquidsfz: port to new parameter API
DEVICES: liquidsfz: move SFZ loading to its own thread
DEVICES: liquidsfz: add LiquidSFZ device for SFZ support
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-28 Tim Janik # c0f82c9a6c5
devices/liquidsfz/Makefile.mk: remove -Iexternal/liquidsfz/lib
Includes need to be added to ase/Makefile.mk for all tools to pick them up.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-28 Tim Janik # f0eb7657a27
ase/Makefile.mk: add -Iexternal/liquidsfz/lib
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-18 Stefan Westerfeld # 3a199eb64ed
ASE: add copyright information to liquidsfz meta includers
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Stefan Westerfeld # cef97f075e6
ASE: compile liquidsfz library code into ase library
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Stefan Westerfeld # ed67ebfc33e
DEVICES: liquidsfz: prepare code for .sfz file specific parameter handling
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Stefan Westerfeld # 7c77583442b
DEVICES: liquidsfz: add include path to external submodule
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Stefan Westerfeld # 39536f2a90e
EXTERNAL: liquidsfz: add swesterfeld/liquidsfz commit from 2023-11-18 15:15:57
git submodule add --name liquidsfz https://github.com/swesterfeld/liquidsfz.git external/liquidsfz
git -C external/liquidsfz checkout 590149ea8c83588c17833d7b9b6653f0f6aab6fb
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-17 Stefan Westerfeld # 19441552618
DEVICES liquidsfz: port to new parameter API
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-11 Stefan Westerfeld # 6fa8ee08260
DEVICES: liquidsfz: move SFZ loading to its own thread
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2022-10-09 Stefan Westerfeld # 5d1e1f65be2
DEVICES: liquidsfz: add LiquidSFZ device for SFZ support
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2024-02-08 Tim Janik # 760b00be008
Merge branch 'LIT-DEVICEEDITOR' - port b-deviceeditor to Lit
* LIT-DEVICEEDITOR:
ui/b/deviceeditor.js: point out layout todo
ui/b/deviceeditor.js: port logic to lit
ui/b/contextmenu.js: support popup with null origin
ui/b/deviceeditor.js: convert syntax to valid javascript
ui/b/deviceeditor.js: replace deviceeditor.vue
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-22 Tim Janik # f5b2581c8e0
ui/b/deviceeditor.js: point out layout todo
Signed-off-by: Tim Janik <timj@gnu.org>
2023-12-06 Tim Janik # 5a79e236068
ui/b/deviceeditor.js: port logic to lit
Signed-off-by: Tim Janik <timj@gnu.org>
2023-12-06 Tim Janik # 9024b7b4f38
ui/b/contextmenu.js: support popup with null origin
Signed-off-by: Tim Janik <timj@gnu.org>
2023-12-05 Tim Janik # 667bd6b6c45
ui/b/deviceeditor.js: convert syntax to valid javascript
Signed-off-by: Tim Janik <timj@gnu.org>
2023-12-05 Tim Janik # ef7434c0916
ui/b/deviceeditor.js: replace deviceeditor.vue
Signed-off-by: Tim Janik <timj@gnu.org>
2024-02-08 Tim Janik # 2aef82b31ef
Merge branch 'STRING-PROPS' - support String as AudioProcessor property
* STRING-PROPS:
STRING-PROPS: ase/processor: allow temporary String mappings for text parameters
ase/memory: add CString::temp_quark_impl() to expose quarks in some cases
ase/memory: introduce CString::qset() which can count quark references
ase/processor: AudioProcessor: unify IBus+OBus into IOBus
Allow non-trivial ~IOBus() execution.
ase/sndfile.cc: add libmp3lame to assertion about missing MP3 support
ui/b/propinput.js: start text field support
ase/parameter.cc: treat is_text() as non-numeric and allow Quark values
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-23 Tim Janik # 3894f73a8d1
ase/processor: allow temporary String mappings for text parameters
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-23 Tim Janik # 89ab7cfadc9
ase/memory: add CString::temp_quark_impl() to expose quarks in some cases
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-23 Tim Janik # 49babc2cc65
ase/memory: introduce CString::qset() which can count quark references
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-23 Tim Janik # 8b711a4515a
ase/processor: AudioProcessor: unify IBus+OBus into IOBus
Allow non-trivial ~IOBus() execution.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-12-05 Tim Janik # 78ee69e172d
ase/sndfile.cc: add libmp3lame to assertion about missing MP3 support
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-28 Tim Janik # c101c675515
ui/b/propinput.js: start text field support
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-28 Tim Janik # 985140d87dd
ase/parameter.cc: treat is_text() as non-numeric and allow Quark values
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-26 Tim Janik # 9d38b0f88df
Merge branch 'branch-check'
* branch-check:
GITHUB: workflows/testing.yml: update to actions/upload-artifact@v4
GITHUB: workflows/testing.yml: only build & upload docs from tim-janik/anklang
GITHUB: workflows/testing.yml: update to actions/cache@v4
GITHUB: workflows/testing.yml: use actions/checkout@v4.1.1, fix annotated tag
Upgrade to actions/checkout@v4.1.1 and Fix actions/checkout messing up
checkouts of annotated tags; actions/checkout#290
Also fetch submodule upfront.
GITHUB: workflows/testing.yml: remove Release-Upload run
MISC: Makefile.mk: fix script v2.34 invocation
The util script from util-linux 2.34 (focal) has no `-O` option.
GITHUB: workflows/testing.yml: add `make branch-check` and check errors in PRs
MISC: Makefile.mk: add branch-check rule, $BRANCH_CHECK_EXIT holds error status
GITHUB: workflows/testing.yml: disable CI on tag pushes
MISC: mknews.sh: show git command line
MISC: Makefile.mk: fix missing CLEANDIRS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-26 Tim Janik # b8dc4a94971
GITHUB: workflows/testing.yml: update to actions/upload-artifact@v4
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-26 Tim Janik # 42d8ebf409b
GITHUB: workflows/testing.yml: only build & upload docs from tim-janik/anklang
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-26 Tim Janik # 6aacf614583
GITHUB: workflows/testing.yml: update to actions/cache@v4
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-26 Tim Janik # 14916a702f2
GITHUB: workflows/testing.yml: use actions/checkout@v4.1.1, fix annotated tag
Upgrade to actions/checkout@v4.1.1 and Fix actions/checkout messing up
checkouts of annotated tags; actions/checkout#290
Also fetch submodule upfront.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-26 Tim Janik # 44e0468f4de
GITHUB: workflows/testing.yml: remove Release-Upload run
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-26 Tim Janik # 849aae5e90e
MISC: Makefile.mk: fix script v2.34 invocation
The util script from util-linux 2.34 (focal) has no `-O` option.
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-26 Tim Janik # f42852fac0f
GITHUB: workflows/testing.yml: add `make branch-check` and check errors in PRs
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 236cd0bec42
MISC: Makefile.mk: add branch-check rule, $BRANCH_CHECK_EXIT holds error status
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-23 Tim Janik # 538fddcb5b2
GITHUB: workflows/testing.yml: disable CI on tag pushes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 53b6aeaf058
MISC: mknews.sh: show git command line
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 64019783d10
MISC: Makefile.mk: fix missing CLEANDIRS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # ceaf5265a6f
Merge branch 'clang-tidy+synsmell'
* clang-tidy+synsmell:
UI: Makefile.mk: ui/lint: add checks with misc/synsmell.py
DEVICES: Makefile.mk: devices/lint: add checks with misc/synsmell.py
ASE: Makefile.mk: ase/lint: add checks with misc/synsmell.py
MISC: synsmell.py: check syntax for code smells, based on regular expressions
ASE: Makefile.mk: allow double loop variable tests in mathutils.cc
ASE: *.cc: fix clang-tidy warnings
DEVICES: saturation/Makefile.mk: remove -Iexternal/pandaresampler/lib
DEVICES: blepsynth/Makefile.mk: remove -Iexternal/pandaresampler/lib
ASE: Makefile.mk: move -Iexternal/pandaresampler/lib here
MISC: Makefile.mk: clang-tidy: strip $PWD
MISC: colorize.sh: fix black-on-black coloring
MISC: Makefile.mk: fix lint-unused rule
MISC: Makefile.mk: fix lint-cppcheck rule
MISC: Makefile.mk: clang-tidy: support target specific .CTIDY_FLAGS
MISC: Makefile.mk: add clang-tidy-check: false exit status on errors/warnings
MISC: Makefile.mk: clang-tidy: skip empty reports during printout
MISC: Makefile.mk: clang-tidy: add -march=x86-64-v2 so atomics checks pass
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # f6c81359caf
UI: Makefile.mk: ui/lint: add checks with misc/synsmell.py
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 4547a2e6276
DEVICES: Makefile.mk: devices/lint: add checks with misc/synsmell.py
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # cf8e4bce7f7
ASE: Makefile.mk: ase/lint: add checks with misc/synsmell.py
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 156f814b5c8
MISC: synsmell.py: check syntax for code smells, based on regular expressions
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # db31c693b78
ASE: Makefile.mk: allow double loop variable tests in mathutils.cc
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # 75d692558ec
ASE: *.cc: fix clang-tidy warnings
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # 7e54bae03f1
DEVICES: saturation/Makefile.mk: remove -Iexternal/pandaresampler/lib
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # da43bc990ec
DEVICES: blepsynth/Makefile.mk: remove -Iexternal/pandaresampler/lib
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # f1055a9220e
ASE: Makefile.mk: move -Iexternal/pandaresampler/lib here
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # e8208c4969c
MISC: Makefile.mk: clang-tidy: strip $PWD
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 01cabbaf4d6
MISC: colorize.sh: fix black-on-black coloring
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 4e126f0ffd0
MISC: Makefile.mk: fix lint-unused rule
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 4ea43bce19f
MISC: Makefile.mk: fix lint-cppcheck rule
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # 2dad8f3345c
MISC: Makefile.mk: clang-tidy: support target specific .CTIDY_FLAGS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # 8c8e8be86ef
MISC: Makefile.mk: add clang-tidy-check: false exit status on errors/warnings
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # 2582cc3a41d
MISC: Makefile.mk: clang-tidy: skip empty reports during printout
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # 908e0a662ce
MISC: Makefile.mk: clang-tidy: add -march=x86-64-v2 so atomics checks pass
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 4dcc915dc8a
Merge branch 'docker-apt-cache'
* docker-apt-cache:
MISC: version.sh: shorten the logic
GITHUB: workflows/testing.yml: compress lines
MISC: cirun: simplify, add -B to trigger build, compress cache
MISC: Dockerfile.focal: add /var/cache/apt caching
MISC: mkassets.sh: build release assets with clang
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-23 Tim Janik # fab949708b8
MISC: version.sh: shorten the logic
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-23 Tim Janik # 188cc89fd1a
GITHUB: workflows/testing.yml: compress lines
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 662f745dd16
MISC: cirun: simplify, add -B to trigger build, compress cache
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-24 Tim Janik # 30a094ac507
MISC: Dockerfile.focal: add /var/cache/apt caching
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-25 Tim Janik # 90c1c862cba
MISC: mkassets.sh: build release assets with clang
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-22 Tim Janik # 8b6e4a716ed
Merge branch 'reduce-make-deps'
* reduce-make-deps:
ASE: atomics.cc: add simple AtomicIntrusiveStack test
MISC: publish.sh: fix git command quoting
MISC: mknews.sh: fix extraneous commit hash output
ASE: cxxaux.cc: fix missing unistd.h include for read()
MISC: Makefile.mk: add appimagetools/ to CLEANDIRS
MISC: mkAppImage.sh, mkdeb.sh: fetch $pkgdir from out/config.sh
Makefile.mk: generate config.sh to export pkgdir, etc
UI: Makefile.mk: add tscheck/ to CLEANDIRS
IMAGES: knobs/Makefile.mk: add images/ to CLEANDIRS
MISC: package.json.in: minor fix
ASE: Makefile.mk: avoid useless rebuilds
Makefile.mk: TAGS: use sed to compress flood of "Warning: ignoring null tag"
Makefile.mk: regen TAGS after git changed
Makefile.mk: avoid touching ls-tree.lst needlessly
Makefile.mk: avoid npm rebuilds on git changes
Makefile.mk: avoid needlessly touching package.json
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-18 Tim Janik # ec029f3b03a
ASE: atomics.cc: add simple AtomicIntrusiveStack test
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # eea8a263545
MISC: publish.sh: fix git command quoting
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # ce2a164f36c
MISC: mknews.sh: fix extraneous commit hash output
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 44528c685e9
ASE: cxxaux.cc: fix missing unistd.h include for read()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 31f328f5e25
MISC: Makefile.mk: add appimagetools/ to CLEANDIRS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # c03dda2942a
MISC: mkAppImage.sh, mkdeb.sh: fetch $pkgdir from out/config.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 76283ac96e8
Makefile.mk: generate config.sh to export pkgdir, etc
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # a3e2fc72e6a
UI: Makefile.mk: add tscheck/ to CLEANDIRS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 823395e9af0
IMAGES: knobs/Makefile.mk: add images/ to CLEANDIRS
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # a9d79efb3a4
MISC: package.json.in: minor fix
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # b2fac931514
ASE: Makefile.mk: avoid useless rebuilds
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 8ecb2b3c3c0
Makefile.mk: TAGS: use sed to compress flood of "Warning: ignoring null tag"
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 343434a1e80
Makefile.mk: regen TAGS after git changed
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # e9d83717ab8
Makefile.mk: avoid touching ls-tree.lst needlessly
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 21d3e392fa3
Makefile.mk: avoid npm rebuilds on git changes
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 9be91ff51c5
Makefile.mk: avoid needlessly touching package.json
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-22 Tim Janik # 25b6611f39c
Merge branch 'simpler-assert'
* simpler-assert:
ASE: utils: use diag_prefix() for printouts
ASE: backtrace.*: remove old code
ASE: cxxaux.hh: add ASE_ASSERT_UNREACHED() and ASE_ASSERT()
ASE: cxxaux.hh: add assertion_fatal() and bool assertion_failed_fatal
ASE: cxxaux.cc: add assertion_fatal(), handle $ASE_DEBUG assertion debug keys
Check and implement "breakpoint", "backtrace" and "fatal-warnings" in $ASE_DEBUG
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # c5ca06bc4d3
ASE: utils: use diag_prefix() for printouts
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 4e78872efec
ASE: backtrace.*: remove old code
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 51f1488ab51
ASE: cxxaux.hh: add ASE_ASSERT_UNREACHED() and ASE_ASSERT()
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # f361dd92ff2
ASE: cxxaux.hh: add assertion_fatal() and bool assertion_failed_fatal
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-17 Tim Janik # 0363396c493
ASE: cxxaux.cc: add assertion_fatal(), handle $ASE_DEBUG assertion debug keys
Check and implement "breakpoint", "backtrace" and "fatal-warnings" in $ASE_DEBUG
Signed-off-by: Tim Janik <timj@gnu.org>
2024-01-22 Tim Janik # a26757d3aae
Merge branch 'swesterfeld-move-bleptools-to-dspresearch'
* swesterfeld-move-bleptools-to-dspresearch:
DEVICES: blepsynth: remove design/test tools (moved to dsp-research repo)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-27 Stefan Westerfeld # 8a67d87e7c8
DEVICES: blepsynth: remove design/test tools (moved to dsp-research repo)
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-12-05 Tim Janik # fce55a4118a
Merge branch 'build-fixes'
* build-fixes:
DOC: Makefile.mk: work around broken heading anchors in pandoc-1.3.9
ASE: Makefile.mk: ase/sndfile.cc requires fully built $>/lib/libsndfile.so
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-23 Tim Janik # 01790686e2e
DOC: Makefile.mk: work around broken heading anchors in pandoc-1.3.9
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 52abbe0e53b
ASE: Makefile.mk: ase/sndfile.cc requires fully built $>/lib/libsndfile.so
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 1ca7ebc6d9f
Merge branch 'sndfile-1.2.2' - build custom libsndfile
* sndfile-1.2.2:
MISC: mkdeb.sh: require libmpg123-0 for installations
ASE: Makefile.mk: build and link against our own libsndfile.so
ASE: sndfile.cc: check libsndfile header and build config
.gitmodules: sort modules
EXTERNAL: libsndfile: add libsndfile/libsndfile commit from 2023-10-24 09:47:22
git submodule add --name libsndfile https://github.com/libsndfile/libsndfile.git external/libsndfile
git -C external/libsndfile checkout e486f20fd4b1c7490cde84f22635e1c267ae882b
MISC: Dockerfile.arch: install mpg123, lame for libsndlfile
MISC: Dockerfile.focal: install Vorbis, libmpg123, libmp3lame, update Pandoc
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # cd4b21597ba
MISC: mkdeb.sh: require libmpg123-0 for installations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 7c1021e1dea
ASE: Makefile.mk: build and link against our own libsndfile.so
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 1ce8144c86d
ASE: sndfile.cc: check libsndfile header and build config
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 870c6b9171a
.gitmodules: sort modules
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # e822de6eab3
EXTERNAL: libsndfile: add libsndfile/libsndfile commit from 2023-10-24 09:47:22
git submodule add --name libsndfile https://github.com/libsndfile/libsndfile.git external/libsndfile
git -C external/libsndfile checkout e486f20fd4b1c7490cde84f22635e1c267ae882b
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 99c12485ee1
MISC: Dockerfile.arch: install mpg123, lame for libsndlfile
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 0b6762b08bf
MISC: Dockerfile.focal: install Vorbis, libmpg123, libmp3lame, update Pandoc
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # bdb8273409d
Merge branch 'git-shallow'
* git-shallow:
MISC: mknews.sh: create NEWS in forward order
MISC: mknews.sh: handle repos without tags
MISC: mkassets.sh: fallback to building in /tmp/anklang.tmp/
MISC: version.sh: support git repos without tags
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # f7deff5a77e
MISC: mknews.sh: create NEWS in forward order
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 6ec97c35493
MISC: mknews.sh: handle repos without tags
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 3d38585cfdb
MISC: mkassets.sh: fallback to building in /tmp/anklang.tmp/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-22 Tim Janik # 33f4b090c6d
MISC: version.sh: support git repos without tags
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-18 Tim Janik # 80927e07e7d
Merge branch 'swesterfeld-blepsynth-sample-accurate', closes #27
* swesterfeld-blepsynth-sample-accurate:
DEVICES: blepsynth: treat negative time offsets as time offset 0 events
DEVICES: blepsynth: remove debugging code
DEVICES: blepsynth: change defaults for 2nd oscillator / mix
DEVICES: blepsynth: remove event offset debug checks
DEVICES: blepsynth/blepsynth.cc: improve updates for some parameters
DEVICES: blepsynth/blepsynth.cc: use new filter version from dsp-research
- use better tanh() approximation in filter saturation function
DEVICES: blepsynth/blepsynth.cc: set more parameter used flags
DEVICES: blepsynth/blepsynth.cc: use switch for parameter updates
DEVICES: blepsynth/blepsynth.cc: implement sample accurate event processing
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-18 Stefan Westerfeld # d0b3afb57bb
DEVICES: blepsynth: treat negative time offsets as time offset 0 events
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Stefan Westerfeld # bc5aac2ccfe
DEVICES: blepsynth: remove debugging code
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Stefan Westerfeld # 21cd3e73f4f
DEVICES: blepsynth: change defaults for 2nd oscillator / mix
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Stefan Westerfeld # ea9bbed3f4f
DEVICES: blepsynth: remove event offset debug checks
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-17 Stefan Westerfeld # 5f0afefecfe
DEVICES: blepsynth/blepsynth.cc: improve updates for some parameters
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-17 Stefan Westerfeld # 4a245ccfb61
DEVICES: blepsynth/blepsynth.cc: use new filter version from dsp-research
- use better tanh() approximation in filter saturation function
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-17 Stefan Westerfeld # 9e1eb997e8f
DEVICES: blepsynth/blepsynth.cc: set more parameter used flags
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-17 Stefan Westerfeld # 814ae414817
DEVICES: blepsynth/blepsynth.cc: use switch for parameter updates
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-17 Stefan Westerfeld # f3843871137
DEVICES: blepsynth/blepsynth.cc: implement sample accurate event processing
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Tim Janik # be92820734b
Merge branch 'swesterfeld-saturation', closes #28
* swesterfeld-saturation:
DEVICES: saturation: treat negative time offsets as time offset 0 events
DEVICES: saturation: remove debugging code
DEVICES: saturation: port to new parameter API, support in-block events
DEVICES: saturation: update DSP code
- process left/right in single SaturationDSP object
- parameter smoothing
- performance optimizations
DEVICES: saturation: add Saturation device
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-18 Stefan Westerfeld # 2a0201d6bd5
DEVICES: saturation: treat negative time offsets as time offset 0 events
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Stefan Westerfeld # 650e98f14ca
DEVICES: saturation: remove debugging code
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Stefan Westerfeld # a139c53dbc3
DEVICES: saturation: port to new parameter API, support in-block events
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-14 Stefan Westerfeld # d41bb14c682
DEVICES: saturation: update DSP code
- process left/right in single SaturationDSP object
- parameter smoothing
- performance optimizations
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-13 Stefan Westerfeld # 290972a23f2
DEVICES: saturation: add Saturation device
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-18 Tim Janik # afb2db07062
Merge branch 'separate-ci-checks'
* separate-ci-checks:
GITHUB: workflows/testing.yml: avoid make all vs make check races
Makefile.mk: ensure all checks are added $(CHECK_TARGETS)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-18 Tim Janik # 70b6685de04
GITHUB: workflows/testing.yml: avoid make all vs make check races
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-18 Tim Janik # 8b908823185
Makefile.mk: ensure all checks are added $(CHECK_TARGETS)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # b9dcc9b8046
Merge branch 'simplify-assertions'
* simplify-assertions:
ASE: queuemux.hh: avoid inlining fallback method `empty()`
ASE: cxxaux: assertion_failed: simplify many call sites by adding noexcept
ASE: queuemux.hh: simplify impls by adding noexcept
ASE: platform.cc: fix up assertion_failed() call
ASE: engine.cc: use ASE_ASSERT_WARN() instead of one-off special macro
ASE: cxxaux: assertion_failed: simplify many call sites by using char*
ASE: cxxaux.hh: simplify compiler errors by avoiding macro indirections
ASE: internal.hh: simplify compiler errors by avoiding macro indirections
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # d4da12eb184
ASE: queuemux.hh: avoid inlining fallback method `empty()`
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # 7502da6747a
ASE: cxxaux: assertion_failed: simplify many call sites by adding noexcept
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # b5f92939320
ASE: queuemux.hh: simplify impls by adding noexcept
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # 92daa34e5b0
ASE: platform.cc: fix up assertion_failed() call
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # eccaaf8066d
ASE: engine.cc: use ASE_ASSERT_WARN() instead of one-off special macro
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # f8b375a3f68
ASE: cxxaux: assertion_failed: simplify many call sites by using char*
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # 7cc334c9d70
ASE: cxxaux.hh: simplify compiler errors by avoiding macro indirections
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # 1d238887e14
ASE: internal.hh: simplify compiler errors by avoiding macro indirections
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # 47565461d79
Merge branch 'fix-multiplexer-iterator'
* fix-multiplexer-iterator:
ASE: queuemux.hh: properly check for more() in iterator equality operator
ASE: midievent.cc: show hex dump for unknown events
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # b63bb574e19
ASE: queuemux.hh: properly check for more() in iterator equality operator
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-17 Tim Janik # 0ec03eb5766
ASE: midievent.cc: show hex dump for unknown events
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-16 Tim Janik # 8f23a2dfadf
Merge branch 'param-events'
* param-events:
DEVICES: blepsynth/blepsynth.cc: port to new Parameter API
* Start using install_params()
* Rename pid_key_[abcdefg]_, add key prefix
* Declare all parameter IDs in an enum
* Use ase_gettext() multi arg formatting
* Construct AudioProcessor with ProcessorSetup&
* Add "toggle" hint for piano key properties
* Handle PARAM_VALUE events via apply_event()
* Start using midi_event_input()
* Port remaining OSC1 and OSC2 parameter references
* Adjust and check parameter state *after* processing MIDI events
* Adjust parameter ID types
DEVICES: freeverb/freeverb.cc: support new param events
* Use install_params(ParameterMap)
* Construct AudioProcessor with ProcessorSetup&
* Use adjust_all_params() and apply_input_events()
* Fix MODE hints and param position
DEVICES: colorednoise.cc: use adjust_all_params() and apply_input_events()
* Port to install_params(ParameterMap)
* Construct AudioProcessor with ProcessorSetup&
DEVICES: Makefile.mk: include colorednoise.cc in the build
ASE: midilib.cc: use midi_event_input() and midi_event_output()
ASE: clapplugin.cc: use midi_event_input()
ASE: engine: allow atomic frame_counter and block_size access
ASE: engine.cc: use midi_event_output()
ASE: midievent: rename + rewrite MidiEventReader to read many queues
* Base MidiEventReader on QueueMultiplexer<> to turn
it into a multiplexing event queue reader
* Rename MidiEventReader (former MidiEventRange)
ASE: clapplugin.cc: use call_delete<>()
ASE: cxxaux.hh: add call_delete<> to quickly create delete callbacks
ASE: rename MidiEventOutput (former MidiEventStream)
ASE: nativedevice.cc: use AudioProcessor.access_properties()
ASE: midilib: construct AudioProcessor with ProcessorSetup&
ASE: api.hh, server.cc: add Server.engine_stats()
ASE: engine: add AudioEngine.engine_stats()
ASE: clapplugin.cc: construct AudioProcessor with ProcessorSetup&
ASE: clapplugin: remove unused flags fiels from params
ASE: combo: construct AudioProcessor with ProcessorSetup&
ASE: processor: implement parameter change events
* Introduce AudioParams, t0events, install_params(), apply_event()
* Implement AudioParams::dirty()
* Implement AudioProcessor.access_properties()
* Store aseid_ in each AudioProcessor
* Add property weak pointers to AudioParams
* Support install_params() with an ordinary map<>
* Initialize parameter cache with intial value
* Disable Property inflight handling code
* Rename MidiEventOutput (former MidiEventStream)
* Implement multiplexing MIDI event handling
* Atomically modify and swap t0events to pass between threads
* Leave new/delete of t0events to the main-thread
* Add modify_t0events<>() helper to care about atomic swapping
* Rename and rewrite get_event_input() and get_event_output()
* Introduce RenderContext for rendering specific variables
* midi_event_input(): setup multiplexing event queue reader
* midi_event_output(): provide writable MIDI event vector
* Implement send_param()
* Only set dirty and changed for params with property object
* Enqueue PARAMCHANGE notification if params changed
* Simplify event processing
* Provide apply_input_events() to assign PARAM_CHANGE events
* Use uint32_t as parameter id type for processors
* Provide adjust_all_params() to call adjust_param() for all params
ASE: midievent: support MidiMessage::PARAM_VALUE
ASE: midievent: add PARAM_VALUE and make_param_value()
ASE: parameter: add ParameterMap and support groups
* Make `ident` the first Param() field, adjust callers
* Add ParameterMap helper type
* Support Param.MinMaxStep as double min,max pair
* Catch simple cases of duplicate IDs, ident, label
* Assign group to new ParameterMap Params
ASE: queuemux: support iterators and assign via std::array<const Queue*>
ASE: queuemux: add QueueMultiplexer.assign() and support iterator template arg
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-11 Tim Janik # 8e1185ca30c
DEVICES: blepsynth/blepsynth.cc: port to new Parameter API
* Start using install_params()
* Rename pid_key_[abcdefg]_, add key prefix
* Declare all parameter IDs in an enum
* Use ase_gettext() multi arg formatting
* Construct AudioProcessor with ProcessorSetup&
* Add "toggle" hint for piano key properties
* Handle PARAM_VALUE events via apply_event()
* Start using midi_event_input()
* Port remaining OSC1 and OSC2 parameter references
* Adjust and check parameter state *after* processing MIDI events
* Adjust parameter ID types
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-11 Tim Janik # 56e3efd025f
DEVICES: freeverb/freeverb.cc: support new param events
* Use install_params(ParameterMap)
* Construct AudioProcessor with ProcessorSetup&
* Use adjust_all_params() and apply_input_events()
* Fix MODE hints and param position
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-11 Tim Janik # e78a22680c7
DEVICES: colorednoise.cc: use adjust_all_params() and apply_input_events()
* Port to install_params(ParameterMap)
* Construct AudioProcessor with ProcessorSetup&
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-11 Tim Janik # 10a2f7eec6e
DEVICES: Makefile.mk: include colorednoise.cc in the build
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-14 Tim Janik # 159bd278517
ASE: midilib.cc: use midi_event_input() and midi_event_output()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-14 Tim Janik # 753a718d343
ASE: clapplugin.cc: use midi_event_input()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-15 Tim Janik # be4f95f09ce
ASE: engine: allow atomic frame_counter and block_size access
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-14 Tim Janik # cbd17604e48
ASE: engine.cc: use midi_event_output()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-14 Tim Janik # 135a420ad7d
ASE: midievent: rename + rewrite MidiEventReader to read many queues
* Base MidiEventReader on QueueMultiplexer<> to turn
it into a multiplexing event queue reader
* Rename MidiEventReader (former MidiEventRange)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-14 Tim Janik # f42044c0019
ASE: clapplugin.cc: use call_delete<>()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-14 Tim Janik # 2f584174ab4
ASE: cxxaux.hh: add call_delete<> to quickly create delete callbacks
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-13 Tim Janik # 2b880292e02
ASE: rename MidiEventOutput (former MidiEventStream)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-12 Tim Janik # 853f38e6aa9
ASE: nativedevice.cc: use AudioProcessor.access_properties()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-12 Tim Janik # d15f2e95b1b
ASE: midilib: construct AudioProcessor with ProcessorSetup&
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-12 Tim Janik # 20e95b834ec
ASE: api.hh, server.cc: add Server.engine_stats()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-12 Tim Janik # f68f4f61513
ASE: engine: add AudioEngine.engine_stats()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-12 Tim Janik # 108909605de
ASE: clapplugin.cc: construct AudioProcessor with ProcessorSetup&
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # 01fea449801
ASE: clapplugin: remove unused flags fiels from params
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-12 Tim Janik # 9bbe620a030
ASE: combo: construct AudioProcessor with ProcessorSetup&
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # 80eb4012ca3
ASE: processor: implement parameter change events
* Introduce AudioParams, t0events, install_params(), apply_event()
* Implement AudioParams::dirty()
* Implement AudioProcessor.access_properties()
* Store aseid_ in each AudioProcessor
* Add property weak pointers to AudioParams
* Support install_params() with an ordinary map<>
* Initialize parameter cache with intial value
* Disable Property inflight handling code
* Rename MidiEventOutput (former MidiEventStream)
* Implement multiplexing MIDI event handling
* Atomically modify and swap t0events to pass between threads
* Leave new/delete of t0events to the main-thread
* Add modify_t0events<>() helper to care about atomic swapping
* Rename and rewrite get_event_input() and get_event_output()
* Introduce RenderContext for rendering specific variables
* midi_event_input(): setup multiplexing event queue reader
* midi_event_output(): provide writable MIDI event vector
* Implement send_param()
* Only set dirty and changed for params with property object
* Enqueue PARAMCHANGE notification if params changed
* Simplify event processing
* Provide apply_input_events() to assign PARAM_CHANGE events
* Use uint32_t as parameter id type for processors
* Provide adjust_all_params() to call adjust_param() for all params
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-12 Tim Janik # e7dc05ef7c8
ASE: midievent: support MidiMessage::PARAM_VALUE
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # 93eb5eea409
ASE: midievent: add PARAM_VALUE and make_param_value()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-10 Tim Janik # 8088583cf94
ASE: parameter: add ParameterMap and support groups
* Make `ident` the first Param() field, adjust callers
* Add ParameterMap helper type
* Support Param.MinMaxStep as double min,max pair
* Catch simple cases of duplicate IDs, ident, label
* Assign group to new ParameterMap Params
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-14 Tim Janik # 46efa666136
ASE: queuemux: support iterators and assign via std::array<const Queue*>
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-13 Tim Janik # fbe089dda62
ASE: queuemux: add QueueMultiplexer.assign() and support iterator template arg
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-13 Tim Janik # 89cc7d6c5f6
Merge branch 'loft-stl-allocator'
* loft-stl-allocator:
ASE: loft: provide STL allocator adapter Loft::Allocator
ASE: utils.cc: allow 3 character "unicode" icons
ASE: cxxaux.cc, utils.cc: for --fatal-warnings, call breakpoint()
This allows continuations in gdb sessions.
ASE: utils.hh: require multiple arguments to ase_gettext() for string_format()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-02 Tim Janik # 0c5c0d16373
ASE: loft: provide STL allocator adapter Loft::Allocator
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-11 Tim Janik # d7c53098d06
ASE: utils.cc: allow 3 character "unicode" icons
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-11 Tim Janik # e857123b38b
ASE: cxxaux.cc, utils.cc: for --fatal-warnings, call breakpoint()
This allows continuations in gdb sessions.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-11 Tim Janik # d21f8174f40
ASE: utils.hh: require multiple arguments to ase_gettext() for string_format()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-13 Tim Janik # e1031e5f9ef
Merge branch 'queuemux'
* queuemux:
ASE: queuemux: integrate QueueMultiplexer
ASE: queuemux.cc: start QueueMultiplexer implementation
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-13 Tim Janik # 93710957025
ASE: queuemux: integrate QueueMultiplexer
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-12 Tim Janik # ca5cb5c6c48
ASE: queuemux.cc: start QueueMultiplexer implementation
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-11 Tim Janik # 409e87d3a2e
Merge branch 'swesterfeld-flexible-adsr', closes #6
* swesterfeld-flexible-adsr:
DEVICES: blepsynth/blepsynth.cc: cleanup unneccessary initialization
DEVICES: blepsynth/blepsynth.cc: introduce flexible ADSR model
- volume envelope can now be analog (exponential) or flexible
- flexible envelope has adjustable attack/decay/release slope
- support changing volume/filter envelope params while note is playing
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-02 Stefan Westerfeld # 372c5d32625
DEVICES: blepsynth/blepsynth.cc: cleanup unneccessary initialization
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2022-09-28 Stefan Westerfeld # d43229d822e
DEVICES: blepsynth/blepsynth.cc: introduce flexible ADSR model
- volume envelope can now be analog (exponential) or flexible
- flexible envelope has adjustable attack/decay/release slope
- support changing volume/filter envelope params while note is playing
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-01 Tim Janik # 441cbca2581
Merge branch 'swesterfeld-blepsynth-sallen-key-filter', closes #10
* swesterfeld-blepsynth-sallen-key-filter:
ASE: resampler2: remove, superseded by pandaresampler
DEVICES: blepsynth/blepsynth.cc: reorder parameter groups
DEVICES: blepsynth/Makefile.mk: include external/pandaresampler/lib
EXTERNAL: pandaresampler: add swesterfeld/pandaresampler commit from 2023-02-14 10:18:45
git submodule add --name pandaresampler https://github.com/swesterfeld/pandaresampler.git external/pandaresampler
git -C external/pandaresampler checkout 29097dc786b6d75a9deb12e70ec8960a78f7f8f5
DEVICES: blepsynth: update LadderVCF with drive/reso boost
DEVICES: blepsynth: optimize filter code if freq/reso/drive are constant
DEVICES: blepsynth: update LadderVCF, setup cutoff frequency range
DEVICES: blepsynth: add latency compensation for LadderVCF
DEVICES: blepsynth: update LadderVCF to version from dsp-research
- oversample LadderVCF with factor 4, too
DEVICES: blepsynth: compensate for SKFilter FIR oversampling delay
DEVICES: blepsynth: reset filter state on filter type change
DEVICES: blepsynth: reset SKFilter state if filter mode changes
DEVICES: blepsynth: make cutoff parameter log-scaled
DEVICES: blepsynth: rename vcf_ to ladder_filter_; minor cleanups
DEVICES: blepsynth: implement midi velocity handling and add master gain
DEVICES: blepsynth: smooth drive / reso input for Sallen-Key Filter
DEVICES: blepsynth: add Sallen-Key Filter
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-28 Tim Janik # 23eaa68abbc
ASE: resampler2: remove, superseded by pandaresampler
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-18 Tim Janik # 90bf331191b
DEVICES: blepsynth/blepsynth.cc: reorder parameter groups
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-17 Tim Janik # ae7361e3ffc
DEVICES: blepsynth/Makefile.mk: include external/pandaresampler/lib
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-16 Tim Janik # 8c55f508cbc
EXTERNAL: pandaresampler: add swesterfeld/pandaresampler commit from 2023-02-14 10:18:45
git submodule add --name pandaresampler https://github.com/swesterfeld/pandaresampler.git external/pandaresampler
git -C external/pandaresampler checkout 29097dc786b6d75a9deb12e70ec8960a78f7f8f5
Signed-off-by: Tim Janik <timj@gnu.org>
2023-02-17 Stefan Westerfeld # abbae1c64fe
DEVICES: blepsynth: update LadderVCF with drive/reso boost
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-17 Stefan Westerfeld # 491952fee74
DEVICES: blepsynth: optimize filter code if freq/reso/drive are constant
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-16 Stefan Westerfeld # ebf2a9157ef
DEVICES: blepsynth: update LadderVCF, setup cutoff frequency range
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-16 Stefan Westerfeld # 311d4c91906
DEVICES: blepsynth: add latency compensation for LadderVCF
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-16 Stefan Westerfeld # f234d86d931
DEVICES: blepsynth: update LadderVCF to version from dsp-research
- oversample LadderVCF with factor 4, too
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-14 Stefan Westerfeld # bfa4faf772e
DEVICES: blepsynth: compensate for SKFilter FIR oversampling delay
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-14 Stefan Westerfeld # 864562b39df
DEVICES: blepsynth: reset filter state on filter type change
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-14 Stefan Westerfeld # 66930769f54
DEVICES: blepsynth: reset SKFilter state if filter mode changes
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-13 Stefan Westerfeld # 92f92547029
DEVICES: blepsynth: make cutoff parameter log-scaled
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-13 Stefan Westerfeld # 5e59f9cfb3d
DEVICES: blepsynth: rename vcf_ to ladder_filter_; minor cleanups
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-13 Stefan Westerfeld # 0ead62c750a
DEVICES: blepsynth: implement midi velocity handling and add master gain
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-13 Stefan Westerfeld # c14c50ac087
DEVICES: blepsynth: smooth drive / reso input for Sallen-Key Filter
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-13 Stefan Westerfeld # 4e3de71daf1
DEVICES: blepsynth: add Sallen-Key Filter
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-11-01 Tim Janik # fff51b9eceb
Merge branch 'constrain-parameters'
* constrain-parameters:
UI: b/databubble.js: fix assertion
ASE: processor.cc: use parameter->dconstrain()
ASE: parameter: add dconstrain() to convert to double and constrain
ASE: processor.cc: use Parameter::construct_hints()
ASE: parameter: export construct_hints(), always use "stepped" hint for bools
UI: b/propinput.js: give toggles preference over choices
ASE: processor.cc: remove unused choices from boolean param
ASE: serialize.cc: call jsonvalue_to_string() directly
ASE: jsonapi.cc: call jsonobject_to_string() directly
JSONIPC: jsonipc.hh: always write null instead of NAN, ±Inf
Remove JsonWriteFlags from the (template) API.
JSONIPC: Makefile: fix include path to external/rapidjson/
EXTERNAL: rapidjson: update Tencent/rapidjson to 2023-09-28 11:36:59 +0200
git -C external/rapidjson checkout f9d53419e912910fd8fa57d5705fa41425428c35
Among other changes, this provides kWriteNanAndInfNullFlag.
ASE: parameter: value_from_text(): yield integers for text inputs of choices
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-01 Tim Janik # 4df4d838ed7
UI: b/databubble.js: fix assertion
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-01 Tim Janik # c8ad5610972
ASE: processor.cc: use parameter->dconstrain()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-01 Tim Janik # e0281f6c2df
ASE: parameter: add dconstrain() to convert to double and constrain
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-30 Tim Janik # ed618af2f66
ASE: processor.cc: use Parameter::construct_hints()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-30 Tim Janik # f69da2ffad0
ASE: parameter: export construct_hints(), always use "stepped" hint for bools
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-29 Tim Janik # a8ee97ccbe6
UI: b/propinput.js: give toggles preference over choices
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-29 Tim Janik # d011038d18b
ASE: processor.cc: remove unused choices from boolean param
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-29 Tim Janik # 7fd779d03fe
ASE: serialize.cc: call jsonvalue_to_string() directly
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-29 Tim Janik # efec4559e40
ASE: jsonapi.cc: call jsonobject_to_string() directly
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-29 Tim Janik # b0b7f67ff95
JSONIPC: jsonipc.hh: always write null instead of NAN, ±Inf
Remove JsonWriteFlags from the (template) API.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-29 Tim Janik # e7262cb102b
JSONIPC: Makefile: fix include path to external/rapidjson/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-29 Tim Janik # 26065d6431d
EXTERNAL: rapidjson: update Tencent/rapidjson to 2023-09-28 11:36:59 +0200
git -C external/rapidjson checkout f9d53419e912910fd8fa57d5705fa41425428c35
Among other changes, this provides kWriteNanAndInfNullFlag.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-29 Tim Janik # 8d2748ed126
ASE: parameter: value_from_text(): yield integers for text inputs of choices
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-01 Tim Janik # 8d568227443
Merge branch 'npm-updates'
* npm-updates:
MISC: package.json.in: update various minor versions
Makefile.mk: allow $NPM_INSTALL overrides via config-defaults.mk
This allowes e.g.:
NPM_INSTALL = pnpm install --prefer-offline
Signed-off-by: Tim Janik <timj@gnu.org>
2023-11-01 Tim Janik # 34dc3dcc295
MISC: package.json.in: update various minor versions
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-28 Tim Janik # 2dbfcdb3216
Makefile.mk: allow $NPM_INSTALL overrides via config-defaults.mk
This allowes e.g.:
NPM_INSTALL = pnpm install --prefer-offline
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # 042fd7abf6f
Merge branch 'g++-bun-pnpm-ci'
* g++-bun-pnpm-ci:
GITHUB: workflows/testing.yml: test Arch builds with g++
MISC: Dockerfile.arch: provide pnpm as JS package manager
MISC: Dockerfile.arch: update build comments
MISC: Dockerfile.focal: provide bun as JS package manager
MISC: cirun: defer check for docker-buildx-plugin until we actually need it
Makefile.mk: guard against `prefix := / / ` etc which will confuse `rm -rf`
EXTERNAL: websocketpp: update zaphoyd/websocketpp to 2022-05-24 18:42:50 2022 -0500
git -C external/websocketpp/ checkout b9aeec6eaf3d5610503439b4fae3581d9aff08e8
This includes fixes applied after version 0.8.2, in particular it allows g++ to build
the sources with C++20 enabled. See:
https://github.com/zaphoyd/websocketpp/issues/991
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # b0a4f6a998c
GITHUB: workflows/testing.yml: test Arch builds with g++
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # 4fdc114d498
MISC: Dockerfile.arch: provide pnpm as JS package manager
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # 903780ed6ca
MISC: Dockerfile.arch: update build comments
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # 0f1f47a1fcf
MISC: Dockerfile.focal: provide bun as JS package manager
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # ce9fe271dcd
MISC: cirun: defer check for docker-buildx-plugin until we actually need it
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # c81ecf892ce
Makefile.mk: guard against `prefix := / / ` etc which will confuse `rm -rf`
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-27 Tim Janik # ca168b517c5
EXTERNAL: websocketpp: update zaphoyd/websocketpp to 2022-05-24 18:42:50 2022 -0500
git -C external/websocketpp/ checkout b9aeec6eaf3d5610503439b4fae3581d9aff08e8
This includes fixes applied after version 0.8.2, in particular it allows g++ to build
the sources with C++20 enabled. See:
https://github.com/zaphoyd/websocketpp/issues/991
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-24 Tim Janik # 63e4292b25f
Merge branch 'bun'
* bun:
Makefile.mk: fix up sharp and electron installations with bun
At the moment, we need to call the postinstall scripts manually, see:
https://github.com/oven-sh/bun/pull/5077
MISC: config-checks.mk: support bun 1.0.0 as package manager
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-24 Tim Janik # e429abb597e
Makefile.mk: fix up sharp and electron installations with bun
At the moment, we need to call the postinstall scripts manually, see:
https://github.com/oven-sh/bun/pull/5077
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-24 Tim Janik # b8470619075
MISC: config-checks.mk: support bun 1.0.0 as package manager
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-24 Tim Janik # f1b37e40f5b
Merge branch 'pnpm'
* pnpm:
MISC: config-checks.mk: remove unused NPM_INSTALL
Makefile.mk: save XNPM to defaults and use it to install node_modules/
MISC: config-checks.mk: check for pnpn, provide as $(XNPM)
UI: Makefile.mk: fetch Lit version directly from node_modules/lit/package.json
X11TEST: ereplay.cjs: set timeout to 2500 to allow click durations of 2200ms
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-23 Tim Janik # b047e20692e
MISC: config-checks.mk: remove unused NPM_INSTALL
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-23 Tim Janik # 7312edc7c1f
Makefile.mk: save XNPM to defaults and use it to install node_modules/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-23 Tim Janik # 3926f06f16c
MISC: config-checks.mk: check for pnpn, provide as $(XNPM)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-23 Tim Janik # 6bdebf3c141
UI: Makefile.mk: fetch Lit version directly from node_modules/lit/package.json
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-24 Tim Janik # 537ec16a97f
X11TEST: ereplay.cjs: set timeout to 2500 to allow click durations of 2200ms
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-24 Tim Janik # 1c7da51582b
Merge branch 'package-updates'
* package-updates:
MISC: package.json.in: update babel, eslint, rollup, electron, postcss, lit
Major version updates:
- electron-27.0.2
- icon-gen-4.0.0
- lit-3.0.0
- rollup-4.1.4
- postcss-lab-function-6.0.7
- puppeteer-core-21.4.0
MISC: package.json.in: update to vue-3.3.6
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-23 Tim Janik # 8c1bbaa65ab
MISC: package.json.in: update babel, eslint, rollup, electron, postcss, lit
Major version updates:
- electron-27.0.2
- icon-gen-4.0.0
- lit-3.0.0
- rollup-4.1.4
- postcss-lab-function-6.0.7
- puppeteer-core-21.4.0
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-23 Tim Janik # 7715b175393
MISC: package.json.in: update to vue-3.3.6
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-16 Tim Janik # c7ece44aabd
Merge branch 'preferences' and live PCM driver updates
* preferences:
UI: util.js: call prop->ident()
ASE: shorten Parameter method ident()
ASE: strings: add fallback to string_option_find(), remove string_option_get()
ASE: testing.cc: use string_option_find_value()
ASE: processor.cc: use string_option_find()
ASE: cxxaux.cc: use ase_fatal_warnings
ASE: main: remove feature toggles, use ase_fatal_warnings
ASE: utils: export ase_fatal_warnings
ASE: utils.cc: base debug key checks on string_option_find_value()
ASE: strings: base option search on string_option_find_value() (without malloc)
ASE: project: create_properties: use property_bag() and Prop
ASE: clapdevice.cc: use parameter_guess_nick()
ASE: gadget: add property_bag() and create_properties()
UI: b/preferencesdialog.vue: edit everything with Shift+Ctrl+Alt+Click [Close]
UI: b/preferencesdialog.vue: fetch + edit only selected PCM + MIDI preferences
UI: b/objecteditor.js: fix blurb and descr bubbles
UI: index.html, eslintrc.js: allow _("for translation") markup
UI: util.js: rename extended Property descr() (abbreviate)
UI: b/choiceinput.js: treat choice property as string
UI: b/preferencesdialog.vue: special case driver.pcm.devid
UI: b/objecteditor.js: rename internal function on xprop
UI: b/contextmenu.js: support focus_uri
ASE: engine.cc: add preferences for up to 4 MIDI controllers
ASE: engine.cc: cache PCM driver live listing for ca half a second
ASE: engine: change PCM driver when preferences change
ASE: engine.cc: add audio.synth_latency Preference
ASE: driver*: allow to query all PcmConfig values from drivers
ASE: api.hh, server: remove all old preference handling
ASE: api.hh, server: add Server.list_preferences()
ASE: properties: add Preference classes and majorly simplify Property impls
* Remove obsolete structures and aux constructors
* Add getter/setter lister for enumeration types
* Add PropertyBag - a helper to simplify property registrations
* Add small PropertyImpl based on ParameterProperty
* Add generic Preference class, useful for static initialization
* Remove property nick guessing
* Add global Preference setting list based on Parameter
* Implement saving/loading preferences from anklangrc
* Auto save preference changes after maybe half a second
* Ensure that Preference names follow NCName syntax
ASE: defs.hh: add PropertyImpl
ASE: api.hh: rename Property.descr() (abbreviate)
ASE: api.hh, server: provide access_preference() instead of access_prefs()
ASE: api.hh: add constexpr GUIONLY, STORAGE, STANDARD to avoid C++ SIOF
ASE: main.cc: save/load preferences unless --norc is given
ASE: processor: use Parameter instead of the old ParamInfo
ASE: parameter: add Parameter, ParameterProperty and parameter_guess_nick()
* Implement Parameter{} with Param{} as initializer
* Add constrain, normalize and text conversions
* Implement simple ParameterProperty abstract base class
* Support callback function to query parameter choices
* In set_value: constrain Value according to parameter range
* Use variants for flexible initilizers
* Treat choice parameters as text
* Match choices via normalized Damerau-Levenshtein distance
* Add parameter_guess_nick() (former on property_guess_nick).
ASE: value.hh: add Value::is_string()
ASE: object.cc: allow NCName as event detail, to support preference identifiers
ASE: defs.hh: declare Preference
ASE: strings: add kvpairs_search()
ASE: strings: define and use ASE_STRING_SET_ASCII_ALNUM and _LOWER_ALNUM
ASE: unicode.cc: add missing docs
ASE: unicode: add string_to_ncname() and string_is_ncname()
ASE: levenshtein: compute (un)restricted Damerau-Levenshtein string distances
ASE: defs.hh: add F32EPS and F32MAX
ASE: memory.hh: declare CStringS
ASE: loop: add exec_once()
ASE: cxxaux.hh: add ASE_ASSERT_ALWAYS()
MISC: package.json.in: reduce wait delay for rebuilds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-16 Tim Janik # cbdc9fc0fa2
UI: util.js: call prop->ident()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-16 Tim Janik # 59bf977d6b8
ASE: shorten Parameter method ident()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-15 Tim Janik # 50e54a41c58
ASE: strings: add fallback to string_option_find(), remove string_option_get()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-15 Tim Janik # 45c8fb74bcb
ASE: testing.cc: use string_option_find_value()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-15 Tim Janik # 75ff901b723
ASE: processor.cc: use string_option_find()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-15 Tim Janik # 917085b5d46
ASE: cxxaux.cc: use ase_fatal_warnings
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-15 Tim Janik # 2783e6b07d6
ASE: main: remove feature toggles, use ase_fatal_warnings
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-15 Tim Janik # 7a2843132d0
ASE: utils: export ase_fatal_warnings
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-15 Tim Janik # 03d33be0b2a
ASE: utils.cc: base debug key checks on string_option_find_value()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-15 Tim Janik # 69be427fe52
ASE: strings: base option search on string_option_find_value() (without malloc)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-14 Tim Janik # 337f93ae38c
ASE: project: create_properties: use property_bag() and Prop
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-14 Tim Janik # c1625f38865
ASE: clapdevice.cc: use parameter_guess_nick()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-14 Tim Janik # 572a042fffe
ASE: gadget: add property_bag() and create_properties()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-13 Tim Janik # cd5540a0f07
UI: b/preferencesdialog.vue: edit everything with Shift+Ctrl+Alt+Click [Close]
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-13 Tim Janik # 8a2524232a4
UI: b/preferencesdialog.vue: fetch + edit only selected PCM + MIDI preferences
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-13 Tim Janik # ab1f8d11f8f
UI: b/objecteditor.js: fix blurb and descr bubbles
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-13 Tim Janik # 0c6264b46b6
UI: index.html, eslintrc.js: allow _("for translation") markup
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-13 Tim Janik # 9181d605be9
UI: util.js: rename extended Property descr() (abbreviate)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # ed893f79ff5
UI: b/choiceinput.js: treat choice property as string
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # c1e1cff1dce
UI: b/preferencesdialog.vue: special case driver.pcm.devid
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # 853183ea22f
UI: b/objecteditor.js: rename internal function on xprop
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # ba784dd4d67
UI: b/contextmenu.js: support focus_uri
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-07 Tim Janik # 1a328c56bc7
ASE: engine.cc: add preferences for up to 4 MIDI controllers
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-07 Tim Janik # ef3598f9c0e
ASE: engine.cc: cache PCM driver live listing for ca half a second
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-07 Tim Janik # 3bee1e89cb0
ASE: engine: change PCM driver when preferences change
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-03 Tim Janik # 0dba45dfcfc
ASE: engine.cc: add audio.synth_latency Preference
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # 4ae99f9b846
ASE: driver*: allow to query all PcmConfig values from drivers
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-13 Tim Janik # d320b1dded9
ASE: api.hh, server: remove all old preference handling
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-13 Tim Janik # f5d0d139a49
ASE: api.hh, server: add Server.list_preferences()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-14 Tim Janik # 317dafea13e
ASE: properties: add Preference classes and majorly simplify Property impls
* Remove obsolete structures and aux constructors
* Add getter/setter lister for enumeration types
* Add PropertyBag - a helper to simplify property registrations
* Add small PropertyImpl based on ParameterProperty
* Add generic Preference class, useful for static initialization
* Remove property nick guessing
* Add global Preference setting list based on Parameter
* Implement saving/loading preferences from anklangrc
* Auto save preference changes after maybe half a second
* Ensure that Preference names follow NCName syntax
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-14 Tim Janik # e8ecf0c0ee7
ASE: defs.hh: add PropertyImpl
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-13 Tim Janik # ce6456df72b
ASE: api.hh: rename Property.descr() (abbreviate)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-13 Tim Janik # 36070cd914b
ASE: api.hh, server: provide access_preference() instead of access_prefs()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # 3c58525d303
ASE: api.hh: add constexpr GUIONLY, STORAGE, STANDARD to avoid C++ SIOF
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # 245b01db8b0
ASE: main.cc: save/load preferences unless --norc is given
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-23 Tim Janik # 4c17216eeb5
ASE: processor: use Parameter instead of the old ParamInfo
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-22 Tim Janik # f92cbf15f83
ASE: parameter: add Parameter, ParameterProperty and parameter_guess_nick()
* Implement Parameter{} with Param{} as initializer
* Add constrain, normalize and text conversions
* Implement simple ParameterProperty abstract base class
* Support callback function to query parameter choices
* In set_value: constrain Value according to parameter range
* Use variants for flexible initilizers
* Treat choice parameters as text
* Match choices via normalized Damerau-Levenshtein distance
* Add parameter_guess_nick() (former on property_guess_nick).
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # 9508dfb27dd
ASE: value.hh: add Value::is_string()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-03 Tim Janik # 9e8365da3d0
ASE: object.cc: allow NCName as event detail, to support preference identifiers
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-02 Tim Janik # 6af9e9643ce
ASE: defs.hh: declare Preference
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-15 Tim Janik # f2291584255
ASE: strings: add kvpairs_search()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # 93580e4fe51
ASE: strings: define and use ASE_STRING_SET_ASCII_ALNUM and _LOWER_ALNUM
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-14 Tim Janik # 708e016b418
ASE: unicode.cc: add missing docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # d6b0747b882
ASE: unicode: add string_to_ncname() and string_is_ncname()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-03 Tim Janik # 1cfe736e25c
ASE: levenshtein: compute (un)restricted Damerau-Levenshtein string distances
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-02 Tim Janik # eefa58f24ba
ASE: defs.hh: add F32EPS and F32MAX
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-24 Tim Janik # 73f177a3a1c
ASE: memory.hh: declare CStringS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-07 Tim Janik # dcf88cb6ba1
ASE: loop: add exec_once()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-07 Tim Janik # 1918cd6f0a0
ASE: cxxaux.hh: add ASE_ASSERT_ALWAYS()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-05 Tim Janik # 36c7f0a3c91
MISC: package.json.in: reduce wait delay for rebuilds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-10 Tim Janik # 3a7c2d398da
Merge branch 'c++20'
* c++20:
MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so
MISC: Dockerfile.focal: install latest poxy (again)
MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml
MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms
Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which
is close to Haswell, the clang docs say:
-march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2
-march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3
-march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE
-march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
MISC: mkassets.sh: adopt compiler config and fix make V=1
* Support make with V=1 during asset builds
* Copy compiler config from config-defaults.mk for mkassets
Makefile.mk: ignore leading spaces in config-defaults.mk
ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId
ASE: memory.cc: test CString operators
ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate
JSONIPC: cxxjip.py: switch from C++17 to C++20
README.md, *.mk: switch from C++17 to C++20
ASE: memory.hh: always provide ctor for Block initialization
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # efc0b09beca
MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # 87740c74e08
MISC: Dockerfile.focal: install latest poxy (again)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # bcee8e828b5
MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # 950f2487a3a
MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms
Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which
is close to Haswell, the clang docs say:
-march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2
-march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3
-march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE
-march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # 14152f87a6f
MISC: mkassets.sh: adopt compiler config and fix make V=1
* Support make with V=1 during asset builds
* Copy compiler config from config-defaults.mk for mkassets
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # 2b221a34519
Makefile.mk: ignore leading spaces in config-defaults.mk
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # 59fb8587165
ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # 7240bdaebf6
ASE: memory.cc: test CString operators
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # 9658c8b913a
ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # e72ff9c37a2
JSONIPC: cxxjip.py: switch from C++17 to C++20
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-09 Tim Janik # ff724e8f7d1
README.md, *.mk: switch from C++17 to C++20
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 16bf9eaa244
ASE: memory.hh: always provide ctor for Block initialization
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # 8067acc18e7
Merge branch 'audio-engine-job-cleanups'
* audio-engine-job-cleanups:
ASE: engine.hh: document engine lifetime
ASE: engine: remove BorrowedPtr, simplify EngineJobImpl
ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread
ASE: clapplugin.cc: rename ClapAudioProcessor
ASE: project.cc: do not (auto) destroy all projects during atexit
ASE: main.cc: shutdown: unset engine project and handle main loop callbacks
ASE: engine: make transport a reference, move job queues into AudioEngine
ASE: engine: rename AudioEngineThread
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # d0ec859de8b
ASE: engine.hh: document engine lifetime
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # 4459649d06e
ASE: engine: remove BorrowedPtr, simplify EngineJobImpl
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # 818ba5fad8b
ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # 22588bc262b
ASE: clapplugin.cc: rename ClapAudioProcessor
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # b92ff9c2cc4
ASE: project.cc: do not (auto) destroy all projects during atexit
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # 8ef2261186b
ASE: main.cc: shutdown: unset engine project and handle main loop callbacks
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-30 Tim Janik # 623d0ecbbfe
ASE: engine: make transport a reference, move job queues into AudioEngine
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-27 Tim Janik # 309cb61db3f
ASE: engine: rename AudioEngineThread
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # a5f9ca97b57
Merge branch 'websocket-fix'
* websocket-fix:
ASE: jsonapi.cc: cache socket nickname for use during errors
ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint()
ASE: callback.hh: remove (sync) return value handling in JobQueue
ASE: jsonapi.cc: wait for main loop callback completion via semaphore
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # 2c5ad576c33
ASE: jsonapi.cc: cache socket nickname for use during errors
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # b0c82975b78
ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-30 Tim Janik # 542ea2990aa
ASE: callback.hh: remove (sync) return value handling in JobQueue
Signed-off-by: Tim Janik <timj@gnu.org>
2023-10-01 Tim Janik # d43afc34acc
ASE: jsonapi.cc: wait for main loop callback completion via semaphore
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-30 Tim Janik # a3f8f2904a9
Merge branch 'main-rt-jobs'
* main-rt-jobs:
ASE: main.cc: fit one RtCallJob into a cache line
This becomes possible with RtCall allocating just 4 pointer sizes.
Since Loft allocates at cache line boundaries only, this essentially
halves the size of an RtCallJob allocation.
ASE: callback: shrink struct RtCall by a pointer
ASE: loft: fix and test LoftPtr<T> actually running ~T
ASE: engine.hh: add comment about main_rt_jobs
ASE: main.cc: turn debugging code into real job_queue_tests
ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc()
ASE: callback: RtCall: wrap simple callback pointers, without using malloc
ASE: cxxaux.hh: add unalias_ptr<> helper
ASE: callback.cc: add a small callback list test
ASE: callback: add CallbackList - reentrant cb list with configurable arguments
ASE: callback: move JobQueue implementation here
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # ff2afba69d1
ASE: main.cc: fit one RtCallJob into a cache line
This becomes possible with RtCall allocating just 4 pointer sizes.
Since Loft allocates at cache line boundaries only, this essentially
halves the size of an RtCallJob allocation.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # fdbdb45b14e
ASE: callback: shrink struct RtCall by a pointer
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 98c4f09c174
ASE: loft: fix and test LoftPtr<T> actually running ~T
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 0b010291e1e
ASE: engine.hh: add comment about main_rt_jobs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # e3e5bbdd2ec
ASE: main.cc: turn debugging code into real job_queue_tests
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 4bc164abcb0
ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # f16ddb82032
ASE: callback: RtCall: wrap simple callback pointers, without using malloc
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 8d3ff63dafc
ASE: cxxaux.hh: add unalias_ptr<> helper
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-28 Tim Janik # 432bfcec3a4
ASE: callback.cc: add a small callback list test
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-23 Tim Janik # 45d07b585c2
ASE: callback: add CallbackList - reentrant cb list with configurable arguments
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-28 Tim Janik # 1789ef5dbc6
ASE: callback: move JobQueue implementation here
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 9c1a06244cd
Merge branch 'fix-warnings'
* fix-warnings:
ASE: track.cc: fix signedness
ASE: utils.cc: cosmetic change
ASE: project.cc: cosmetic change
ASE: nativedevice.cc: fix signedness
ASE: midilib.cc: fix signedness
ASE: midievent.cc: cosmetic change
ASE: internal.hh: cosmetic change
ASE: inifile.cc: fix signedness
ASE: engine.cc: cosmetic change
ASE: compress.cc: fix write check signedness
ASE: combo: fix insert position signedness
ASE: clapplugin.cc: cosmetic change
ASE: device.cc: remove unused code
ASE: blob.cc: cosmetic fix
MISC: Makefile.mk: clang-tidy: fix missing includes
ASE: clapplugin.cc: cosmetic fix
ASE: loop.cc: fix typo
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 90f6ef8f9bd
ASE: track.cc: fix signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # f8d272799bf
ASE: utils.cc: cosmetic change
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # f5ceb7c5c58
ASE: project.cc: cosmetic change
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 79c64bf5007
ASE: nativedevice.cc: fix signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # e7a2e0c1f22
ASE: midilib.cc: fix signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # ded5333eb54
ASE: midievent.cc: cosmetic change
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # c8020c7a47b
ASE: internal.hh: cosmetic change
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 90ab2787c44
ASE: inifile.cc: fix signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # d16e0d0841a
ASE: engine.cc: cosmetic change
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # f9da426c129
ASE: compress.cc: fix write check signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # 49f3f0b7252
ASE: combo: fix insert position signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # a1c4a2645eb
ASE: clapplugin.cc: cosmetic change
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-29 Tim Janik # ef9708813f6
ASE: device.cc: remove unused code
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-23 Tim Janik # 561bd21fbd1
ASE: blob.cc: cosmetic fix
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-23 Tim Janik # d6a91ed050e
MISC: Makefile.mk: clang-tidy: fix missing includes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-23 Tim Janik # 46bd383f5e4
ASE: clapplugin.cc: cosmetic fix
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-28 Tim Janik # 8f164699e6a
ASE: loop.cc: fix typo
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-23 Tim Janik # e9015b99094
Merge branch 'bug-fixes'
* bug-fixes:
GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact
GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3
MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-22 Tim Janik # 9e29d0a2d6f
GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-22 Tim Janik # 902531d7e2e
GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-22 Tim Janik # 16d474ed9eb
MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 22cf3470488
Merge branch 'use-git-submodule'
* use-git-submodule:
DOC: copyright.ini: apply MPL-2.0 to .gitmodules
MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh
MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh
GITHUB: workflows/testing.yml: use `make mkassets` for release builds
.gitignore: ignore .submodule-stamp
UI: global.scss, index.html: move AnklangIcons to assets/
UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download
EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16
git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b
UI: global.scss, index.html: move fork-awesome to assets/
UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download
MISC: package.json.in: install fork-awesome@1.2.0
UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download
EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36
git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang
git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a
Makefile.mk: skip `git submodule` in tarball builds
Makefile.mk: dist: exclude unused external subdirs from tarball
Makefile.mk: include submodule archives in dist tarball
ASE: Makefile.mk: use blake3 submodule, remove download rule
ASE: compress.cc: use external/blake3/c/blake3.h
EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1
git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3
git -C external/blake3/ checkout 1.3.1
ASE: Makefile.mk: use websocketpp submodule, remove download rule
EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2
git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp
git -C external/websocketpp/ checkout 0.8.2
ASE: Makefile.mk: use clap submodule, remove download rule
EXTERNAL: clap: add free-audio/clap version 1.1.1
git submodule add --name clap https://github.com/free-audio/clap.git external/clap
git -C external/clap/ checkout 1.1.1
ASE: Makefile.mk: use rapidjson submodule, remove download rule
EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13
git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson
git checkout 232389d4f1012dddec4ef84861face2d2ba85709
Makefile.mk: update all submodules before building sources
Makefile.mk: remove external/ subdir from ls-tree.lst
MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI
ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433
ASE: minizip: build against external/minizip-ng/
ASE: Makefile.mk: use minizip-ng submodule, remove download rule
EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0
git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng
.gitignore: remove entries of files the build is not generating
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # fd2c87ca46c
DOC: copyright.ini: apply MPL-2.0 to .gitmodules
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # ac2f411d7ac
MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # f22743bb1f6
MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # ffb20ae21b9
GITHUB: workflows/testing.yml: use `make mkassets` for release builds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 4135984a1c9
.gitignore: ignore .submodule-stamp
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 857ecd8e175
UI: global.scss, index.html: move AnklangIcons to assets/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # bdcd58c0946
UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # f36313d0fbb
EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16
git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # f45fa7a698a
UI: global.scss, index.html: move fork-awesome to assets/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 43422ceec3e
UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 2c581263b5f
MISC: package.json.in: install fork-awesome@1.2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # edf8329ddb1
UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # b3dc6dceb28
EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36
git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang
git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 10bd43dc89a
Makefile.mk: skip `git submodule` in tarball builds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # e65d47c5dd2
Makefile.mk: dist: exclude unused external subdirs from tarball
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 6dde95c2519
Makefile.mk: include submodule archives in dist tarball
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # e2740fab44c
ASE: Makefile.mk: use blake3 submodule, remove download rule
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 4117b198394
ASE: compress.cc: use external/blake3/c/blake3.h
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 154dd6107da
EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1
git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3
git -C external/blake3/ checkout 1.3.1
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 3a4ed680778
ASE: Makefile.mk: use websocketpp submodule, remove download rule
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # b0c4cfe1c79
EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2
git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp
git -C external/websocketpp/ checkout 0.8.2
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # e06d0fd6217
ASE: Makefile.mk: use clap submodule, remove download rule
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 8c472e9eeed
EXTERNAL: clap: add free-audio/clap version 1.1.1
git submodule add --name clap https://github.com/free-audio/clap.git external/clap
git -C external/clap/ checkout 1.1.1
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # ec44afffd0e
ASE: Makefile.mk: use rapidjson submodule, remove download rule
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # f9032409c5a
EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13
git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson
git checkout 232389d4f1012dddec4ef84861face2d2ba85709
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 8cc4010b81b
Makefile.mk: update all submodules before building sources
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # cb199809598
Makefile.mk: remove external/ subdir from ls-tree.lst
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 5db5fd6e768
MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 0e0013ef774
ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # d08912551e3
ASE: minizip: build against external/minizip-ng/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 08ef9535f8f
ASE: Makefile.mk: use minizip-ng submodule, remove download rule
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # 37b66437be9
EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0
git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-21 Tim Janik # ede6e288772
.gitignore: remove entries of files the build is not generating
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-17 Tim Janik # 0e21fc8e561
Merge branch 'thin-lto' - improve LTO builds
* thin-lto:
ASE: main.cc: add missing formats to WAV output help
MISC: config-uname.mk: when using LTO, enable Thin LTO with clang
Thin LTO can result in smaller binaries and better performance.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-17 Tim Janik # 6570f0aac6b
ASE: main.cc: add missing formats to WAV output help
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-16 Tim Janik # 60856063cf0
MISC: config-uname.mk: when using LTO, enable Thin LTO with clang
Thin LTO can result in smaller binaries and better performance.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-17 Tim Janik # 00c05372867
Merge branch 'cirun-docker-caching' - let cirun handle image build and caching
* cirun-docker-caching:
GITHUB: workflows/testing.yml: use separate steps for docker image builds
GITHUB: workflows/testing.yml: make use of cirun which handles docker builds
* workflows/testing.yml: use misc/cirun -u 1000 to fix ownership
* workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy
* workflows/testing.yml: move nproc out of env variables
MISC: cirun.sh: remove, use simpler cirun
MISC: gh_delete_assets.sh: remove old helper
MISC: Dockerfile.lunar: remove old file
MISC: docker_*: remove old helpers
MISC: cirun: add docker build, run, chown and caching
MISC: cirun: add script to run commands in dockerized environments
GITHUB: workflows/testing.yml: use buildx with selective caching
GITHUB: workflows/testing.yml: configure and use buildx with selective caching
GITHUB: workflows/testing.yml: remove unused actions/upload-artifact
GITHUB: workflows/testing.yml: split asset builds into separate job
MISC: cirun.sh: add --build, note that --check includes --build
MISC: mkassets.sh: fix outdated globs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-13 Tim Janik # 0ef3d9f83e0
GITHUB: workflows/testing.yml: use separate steps for docker image builds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-13 Tim Janik # cbe82e3bb61
GITHUB: workflows/testing.yml: make use of cirun which handles docker builds
* workflows/testing.yml: use misc/cirun -u 1000 to fix ownership
* workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy
* workflows/testing.yml: move nproc out of env variables
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-13 Tim Janik # 70f1b796ac0
MISC: cirun.sh: remove, use simpler cirun
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-13 Tim Janik # 763a7ea0fe2
MISC: gh_delete_assets.sh: remove old helper
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-13 Tim Janik # df01dfd4838
MISC: Dockerfile.lunar: remove old file
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-13 Tim Janik # 9fd43f840fa
MISC: docker_*: remove old helpers
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-13 Tim Janik # 5c8a853f999
MISC: cirun: add docker build, run, chown and caching
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-12 Tim Janik # dfe1c1a9762
MISC: cirun: add script to run commands in dockerized environments
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-11 Tim Janik # 291c761f9c6
GITHUB: workflows/testing.yml: use buildx with selective caching
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-11 Tim Janik # 7e3056c3af5
GITHUB: workflows/testing.yml: configure and use buildx with selective caching
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # 6362abb6bb5
GITHUB: workflows/testing.yml: remove unused actions/upload-artifact
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # 33924b10a00
GITHUB: workflows/testing.yml: split asset builds into separate job
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # 5217a1ba63f
MISC: cirun.sh: add --build, note that --check includes --build
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # cbc90dca827
MISC: mkassets.sh: fix outdated globs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # 9a7e6280c57
Merge branch 'ci-fixes'
* ci-fixes:
MISC: mkassets.sh: remove unused file generations
MISC: dbuild.sh: delete, now unused
MISC: cirun.sh: add missing arg to help
MISC: publish.sh: remove --draft
MISC: publish.sh: determine version from tarball, show progress
MISC: publish.sh: use assets/ directory contents if present
GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets
GITHUB: workflows/testing.yml: make sure to generate PDF docs early on
GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh
GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact
GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs
GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC
GITHUB: workflows/testing.yml: use github expression for negating if
GITHUB: workflows/testing.yml: escape exclamation mark for yaml
GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags
GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh
GITHUB: workflows/release.yml: remove, releases moved into testing.yml
MISC: publish.sh: download artifacts and create a release
MISC: cirun.sh: properly dockerize clang-tidy
MISC: cirun.sh: support V=1
GITHUB: workflows/testing.yml: run clang-tidy on focal
MISC: cirun.sh: use 1000:1000 to chown files for docker containers
MISC: mkassets.sh: add missing auto to cp --reflink=auto
GITHUB: workflows/testing.yml: fix env syntax for gha
GITHUB: workflows/testing.yml: use cirun.sh for all CI jobs
GITHUB: workflows/testing.yml: use cirun.sh on Focal for docs
MISC: cirun.sh: support $CITAG to determine docker run image
MISC: Dockerfile.lunar: install missing clang aliases
MISC: cirun.sh: add script that runs all CI stages via docker
MISC: Dockerfile.focal: install poxy==0.13.0
Versions poxy>=0.13.1 have problems with python-3.8 on focal.
MISC: Dockerfile.focal: install pandoc-3.1.6.2
Using pandoc-3.1.7 seems to have issues with PDF generation, anchors
in section titles cause an error and SVG images are not found.
.gitignore: minor addition
MISC: Dockerfile.focal: add clang-17 aliases
MISC: Dockerfile.focal: provide xetex, poxy and clang++-17
GITHUB: workflows/release.yml: upload draft releases for CI tests
GITHUB: workflows/release.yml: cache focal docker builds with buildx
GITHUB: workflows/testing.yml: fix comment
GITHUB: workflows/testing.yml: cache arch docker builds with buildx
GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # 3c2d16f4011
MISC: mkassets.sh: remove unused file generations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # 3a2d3a06681
MISC: dbuild.sh: delete, now unused
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # bde2c1ff2a9
MISC: cirun.sh: add missing arg to help
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # 5d5f0aa5f18
MISC: publish.sh: remove --draft
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # e693acb4d84
MISC: publish.sh: determine version from tarball, show progress
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # 4fc0a5c13a0
MISC: publish.sh: use assets/ directory contents if present
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-10 Tim Janik # f2c293f6373
GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # efabb786a03
GITHUB: workflows/testing.yml: make sure to generate PDF docs early on
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 792c3174c5d
GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 0ee27046f7c
GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # c15a049e69d
GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 1ba57dc81c1
GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 92f8aa6ceba
GITHUB: workflows/testing.yml: use github expression for negating if
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 5335902452e
GITHUB: workflows/testing.yml: escape exclamation mark for yaml
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 881b47121af
GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # bf15aed5d89
GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # ceb16e73613
GITHUB: workflows/release.yml: remove, releases moved into testing.yml
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # d8e7ab9d270
MISC: publish.sh: download artifacts and create a release
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # c210bb23149
MISC: cirun.sh: properly dockerize clang-tidy
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 24a5532bc18
MISC: cirun.sh: support V=1
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # b7c38b781de
GITHUB: workflows/testing.yml: run clang-tidy on focal
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 967b892cddb
MISC: cirun.sh: use 1000:1000 to chown files for docker containers
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # b2b7f164411
MISC: mkassets.sh: add missing auto to cp --reflink=auto
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 4814077b6e2
GITHUB: workflows/testing.yml: fix env syntax for gha
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 3f5334ee45b
GITHUB: workflows/testing.yml: use cirun.sh for all CI jobs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 22e178e7688
GITHUB: workflows/testing.yml: use cirun.sh on Focal for docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 587f371f588
MISC: cirun.sh: support $CITAG to determine docker run image
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 4ecd2e7c896
MISC: Dockerfile.lunar: install missing clang aliases
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # c3398c8f80a
MISC: cirun.sh: add script that runs all CI stages via docker
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 8bc6875d414
MISC: Dockerfile.focal: install poxy==0.13.0
Versions poxy>=0.13.1 have problems with python-3.8 on focal.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # 56484c787a6
MISC: Dockerfile.focal: install pandoc-3.1.6.2
Using pandoc-3.1.7 seems to have issues with PDF generation, anchors
in section titles cause an error and SVG images are not found.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-09 Tim Janik # ef5ffc7791f
.gitignore: minor addition
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-08 Tim Janik # bb7352e4039
MISC: Dockerfile.focal: add clang-17 aliases
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-08 Tim Janik # 73ccb408213
MISC: Dockerfile.focal: provide xetex, poxy and clang++-17
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-08 Tim Janik # 3bc17349835
GITHUB: workflows/release.yml: upload draft releases for CI tests
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-08 Tim Janik # 6e53fbdc448
GITHUB: workflows/release.yml: cache focal docker builds with buildx
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-08 Tim Janik # 0d3714f4026
GITHUB: workflows/testing.yml: fix comment
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-08 Tim Janik # 1199d799005
GITHUB: workflows/testing.yml: cache arch docker builds with buildx
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-08 Tim Janik # 949f7a31721
GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-08 Tim Janik # d8465fd88ff
Merge branch 'release-fixes'
* release-fixes:
MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version`
GITHUB: workflows/release.yml: set prerelease:false for annotated tags
Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of
the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290
MISC: mknews.sh: for release tags, copy news section from NEWS.md
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-06 Tim Janik # 3db0bb123f8
MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version`
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-06 Tim Janik # ea5b2837814
GITHUB: workflows/release.yml: set prerelease:false for annotated tags
Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of
the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-06 Tim Janik # 9dfb0918512
MISC: mknews.sh: for release tags, copy news section from NEWS.md
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-06 Tim Janik # e4007d4fcab
NEWS.md: Anklang 0.2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-06 Tim Janik # 2a4c7dea028
Merge branch 'rebuild-focal'
* rebuild-focal:
MISC: Dockerfile.focal: remove NOTEX argument
MISC: mknews.sh: print news in chronological order
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-05 Tim Janik # ec144c520da
MISC: Dockerfile.focal: remove NOTEX argument
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-03 Tim Janik # fa1f8d4ab69
MISC: mknews.sh: print news in chronological order
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-01 Tim Janik # 39ac286028b
Merge branch 'fix-unstyled-content-flashing'
* fix-unstyled-content-flashing:
UI: b/contextmenu.js: fix layout interference inside flexbox during popup
UI: index.html: load global.css via style+@import, mark as data-4litcomponent
UI: little.js: add adopt_component_styles() for simple style+@import cloning
This allows to work around FOUC issues with Chrome, see comments.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-01 Tim Janik # 391a16aa811
UI: b/contextmenu.js: fix layout interference inside flexbox during popup
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-01 Tim Janik # 9e56a9d578a
UI: index.html: load global.css via style+@import, mark as data-4litcomponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-09-01 Tim Janik # 013349841ca
UI: little.js: add adopt_component_styles() for simple style+@import cloning
This allows to work around FOUC issues with Chrome, see comments.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-30 Tim Janik # 395757948cd
Merge branch 'propgroup-litcomponent'
* propgroup-litcomponent:
UI: b/pianoroll.js: add todo comment
UI: b/knob.js: use fixed adjustment factors for wheel events
UI: util.js: wheel_delta: normalize delta to pixels for modern browsers
Work around Firefox changing deltaY vs deltaMode depending on the order
of access! Throw away old compat code.
UI: b/knob.js: fix invalid field access
UI: b/propgroup.js: avoid shadowRoot
UI: util.js: refuse pointer lock grabbing on orphans and shadowRoot descendants
UI: b/propgroup.js: port to LitComponent
UI: b/deviceeditor.vue: use b-propgroup
UI: b/propinput.js: support readonly + disabled state
UI: b/propinput.js: add support for <b-knob/> as property field
UI: b/propinput.js: let labeled default to false
UI: b/toggle.js: store pressed button number
UI: util.js: add uuname()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-30 Tim Janik # 10b4a30916d
UI: b/pianoroll.js: add todo comment
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-30 Tim Janik # ee115d9fbd3
UI: b/knob.js: use fixed adjustment factors for wheel events
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-30 Tim Janik # 336c93547a6
UI: util.js: wheel_delta: normalize delta to pixels for modern browsers
Work around Firefox changing deltaY vs deltaMode depending on the order
of access! Throw away old compat code.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-30 Tim Janik # 31a5caa5007
UI: b/knob.js: fix invalid field access
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-30 Tim Janik # 4bf3efa4f5c
UI: b/propgroup.js: avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-29 Tim Janik # 6b2e5a19fc8
UI: util.js: refuse pointer lock grabbing on orphans and shadowRoot descendants
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-27 Tim Janik # 120deaf9458
UI: b/propgroup.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-27 Tim Janik # 46e6b24fa5d
UI: b/deviceeditor.vue: use b-propgroup
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-29 Tim Janik # 469cc78e6ee
UI: b/propinput.js: support readonly + disabled state
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-29 Tim Janik # 8de5eeda206
UI: b/propinput.js: add support for <b-knob/> as property field
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-28 Tim Janik # 41b84fadfcb
UI: b/propinput.js: let labeled default to false
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-28 Tim Janik # 36fff23dad1
UI: b/toggle.js: store pressed button number
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-27 Tim Janik # 523eefd3c28
UI: util.js: add uuname()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-23 Tim Janik # a7ab3487142
Merge branch 'b-propinput-litcomponent'
* b-propinput-litcomponent:
UI: b/propinput.js: port to LitComponent
UI: b/choiceinput.js: support label attribute as choice tip
UI: little.js: add LitComponent.request_update_()
UI: util.js: add addnotify_() and delnotify_() to extended properties
UI: b/pro-group.vue: use <b-propinput/>
UI: b/knob.js: simplify
MISC: package.json.in: extend nodemon delay to reduce conflicts with lint rules
Sometimes when ui/lint is triggered, files are written and make serve also runs
rebuild rules due to nodemon.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-18 Tim Janik # 472ebd4629c
UI: b/propinput.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-23 Tim Janik # 9de11d65d41
UI: b/choiceinput.js: support label attribute as choice tip
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-23 Tim Janik # 3e3177f8b05
UI: little.js: add LitComponent.request_update_()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-23 Tim Janik # 7cbff87463e
UI: util.js: add addnotify_() and delnotify_() to extended properties
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-19 Tim Janik # a0c068d59b5
UI: b/pro-group.vue: use <b-propinput/>
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-23 Tim Janik # e7dfb0b90c3
UI: b/knob.js: simplify
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-23 Tim Janik # 50d5b366df0
MISC: package.json.in: extend nodemon delay to reduce conflicts with lint rules
Sometimes when ui/lint is triggered, files are written and make serve also runs
rebuild rules due to nodemon.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-19 Tim Janik # 64882dcc3cc
Merge branch 'fix-raw-tex'
* fix-raw-tex:
UI: xbcomments.js: properly quote special characters in docs
DOC: Makefile.mk: do not parse source comments as raw_tex
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-19 Tim Janik # 8e080040c63
UI: xbcomments.js: properly quote special characters in docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-19 Tim Janik # 1ed6b99d6f8
DOC: Makefile.mk: do not parse source comments as raw_tex
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-19 Tim Janik # b554e803cb7
Merge branch 'anklang-internals+jsdocs'
* anklang-internals+jsdocs:
UI: b/basics.js: small docu update
DOC: Makefile.mk: integrate JS component docs into internal manual
DOC: jsdoc2md.js: skip extra subsection indentation
UI: Makefile.mk: optimize *.jscss build, fix anklang-internals.html dependency
UI: b/*.js: use three hashes '###' to indent docu subsections
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-18 Tim Janik # d4130cabe70
UI: b/basics.js: small docu update
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-18 Tim Janik # 7d0cac3054c
DOC: Makefile.mk: integrate JS component docs into internal manual
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-18 Tim Janik # 53fcb6caa1f
DOC: jsdoc2md.js: skip extra subsection indentation
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-18 Tim Janik # 5ba2edc5a03
UI: Makefile.mk: optimize *.jscss build, fix anklang-internals.html dependency
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-18 Tim Janik # fbeb121a12c
UI: b/*.js: use three hashes '###' to indent docu subsections
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # ec269054cad
Merge branch 'swesterfeld-piano-roll-move', closes #16
* swesterfeld-piano-roll-move:
UI: b/piano-ctrl.js: support moving/copying notes with the mouse
UI: b/cliplist.js: restore user manual docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Stefan Westerfeld # d1f2d31419f
UI: b/piano-ctrl.js: support moving/copying notes with the mouse
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-08-03 Tim Janik # db94e9a39e4
UI: b/cliplist.js: restore user manual docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # 9d0c8defdf0
Merge branch 'jsdoc-elements'
* jsdoc-elements:
DOC: poxystyle.css: fix dark theme colors
DOC: jsdoc2md.js: use pandoc anchors everywhere with data-4search hints
DOC: poxy.sh: forbid raw-html and support data-4search on <span/>
UI: b/*.js: reformat documentation to use @class and @description commands
See also: https://jsdoc.app/tags-description.html
DOC: poxy.sh: parallelize JsDoc processing
DOC: poxy.sh: fix exit code and compact markdown
DOC: poxy.sh: add ui/ch-*.md files to poxy docs
DOC: jsdoc2md.js: allow descriptions of virtual classes as docu sections
DOC: copyright.ini: assign MPL-2 to ch-*.md documentation files
DOC: Makefile.mk: integrate ui/ch-component.md
Makefile.mk: add html/ to CLEANDIRS
Makefile.mk: clean poxy/ and assets/
DOC: ch-development.md: explicitely describe ASE
UI: ch-component.md: describe lit components
UI: ch-component.md: rename from ui/b/ch-vue.md
README.md: add Star History Chart
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # 0d6c36e73ed
DOC: poxystyle.css: fix dark theme colors
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # 147d2ceb8f6
DOC: jsdoc2md.js: use pandoc anchors everywhere with data-4search hints
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # de871ebe3e8
DOC: poxy.sh: forbid raw-html and support data-4search on <span/>
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # 6d7cc3626be
UI: b/*.js: reformat documentation to use @class and @description commands
See also: https://jsdoc.app/tags-description.html
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # 66cac845607
DOC: poxy.sh: parallelize JsDoc processing
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # c776a608776
DOC: poxy.sh: fix exit code and compact markdown
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 6d995570293
DOC: poxy.sh: add ui/ch-*.md files to poxy docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # 5d502ea79d6
DOC: jsdoc2md.js: allow descriptions of virtual classes as docu sections
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 218c76416f3
DOC: copyright.ini: assign MPL-2 to ch-*.md documentation files
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 034e9573800
DOC: Makefile.mk: integrate ui/ch-component.md
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # 328f8482f8e
Makefile.mk: add html/ to CLEANDIRS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 298f24207f0
Makefile.mk: clean poxy/ and assets/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 12809eb2d2d
DOC: ch-development.md: explicitely describe ASE
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 3e44f6739d4
UI: ch-component.md: describe lit components
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 4ec63d308a9
UI: ch-component.md: rename from ui/b/ch-vue.md
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # a6d68b2a0b1
README.md: add Star History Chart
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-03 Tim Janik # 0eba7decc88
Merge branch 'toggle-as-lit'
* toggle-as-lit:
UI: b/pro-input.vue: handle @valuechange on b-toggle
UI: b/toggle.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # bfc104e92cf
UI: b/pro-input.vue: handle @valuechange on b-toggle
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # dc6d13a1d12
UI: b/toggle.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 8712b436827
Merge branch 'x11test-delay'
* x11test-delay:
X11TEST: ereplay.cjs: add delay to mitigate a UI-reload race on project changes
X11TEST: replay.sh: simplify AnklangSynthEngine executable check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 1dcbdf00154
X11TEST: ereplay.cjs: add delay to mitigate a UI-reload race on project changes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 1a0c4ed0f64
X11TEST: replay.sh: simplify AnklangSynthEngine executable check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-08-02 Tim Janik # 3be13e1bfc1
Merge branch 'poxy-on-jammy'
* poxy-on-jammy:
GITHUB: workflows/testing.yml: run poxy on ubuntu:22.04
MISC: docker_run: fix interactive invocations
MISC: Dockerfile.jammy: setup development tools for ubuntu:22.04 builds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # a7b0307dc4f
GITHUB: workflows/testing.yml: run poxy on ubuntu:22.04
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # 46933a84209
MISC: docker_run: fix interactive invocations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # 30081a554c9
MISC: Dockerfile.jammy: setup development tools for ubuntu:22.04 builds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # 4694aa8e381
Merge branch 'make-dist-and-assets'
* make-dist-and-assets:
GITHUB: workflows/release.yml: add Ping-IRC job
GITHUB: workflows/release.yml: use misc/docker_run
GITHUB: workflows/release.yml: add action to build & create releases from tags
Makefile.mk: dist: assign release version to misc/version.sh:BAKED_DESCRIBE
MISC: version.sh: prepare BAKED_DESCRIBE variable to define baked in version
MISC: version.sh: support lightweight release tags via exact match
UI: Makefile.mk: fix unintentional tscheck remakes
DOC: Makefile.mk: add doc/ch-releasing.md to internal manual
ASE: Makefile.mk: rebuild ase/buildversion*.cc if GITCOMMITDEPS changes
Makefile.mk: rebuild package.json if GITCOMMITDEPS changes
MISC: config-utils.mk: take tags and packed-refs into account for GITCOMMITDEPS
DOC: ch-releasing.md: elaborate on releases and assets
DOC: ch-releasing.md: start describing versioning and the release process
MISC: mknews.sh: add development version disclaimer
MISC: Makefile.mk: remove partial release build rules
MISC: mkassets.sh: simplify to just make dist and trigger release asset builds
MISC: mkAppImage.sh: build AppImage in assets/
MISC: mkAppImage.sh: use tools from appimagetools/ dir
MISC: Makefile.mk: cache downloads of appimage tools
Makefile.mk: make dist: also generate assets/ChangeLog
MISC: mkdeb.sh: create debian package in assets/
DOC: Makefile.mk: support building assets/pdf
MISC: Makefile.mk: avoid depending on appimage-runtime-zstd for normal builds
UI: tsconfig.json: remove exclude section
Makefile.mk: grep-reminders: only inspect existing files
Makefile.mk: add recent commits to NEWS.md
Makefile.mk: build dist tarball in assets/ with high compression
ASE: main.cc: for --version, show short version and build id
MISC: config-checks.mk: use version_short
ELECTRON: Makefile.mk: use version_short
ASE: Makefile.mk: use version_short
Makefile.mk: extract version_hash, use version_short for brief version identifiers
* Remove version_m.m.m use version_short instead
* Remove version_buildid, that is actually version_short + version_hash
MISC: Makefile.mk: remove unused release-news
MISC: mknews.sh: generate most recent section of NEWS.md
MISC: mkdeb.sh: parse hash from misc/version.sh
MISC: version.sh: reduce logic to produce baked/git/fallback version/hash/date
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # 6ffbebbcce0
GITHUB: workflows/release.yml: add Ping-IRC job
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # 94ba2ad4161
GITHUB: workflows/release.yml: use misc/docker_run
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-30 Tim Janik # 3613bc66dea
GITHUB: workflows/release.yml: add action to build & create releases from tags
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-30 Tim Janik # bc60e2c177d
Makefile.mk: dist: assign release version to misc/version.sh:BAKED_DESCRIBE
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-30 Tim Janik # 2c6643d6399
MISC: version.sh: prepare BAKED_DESCRIBE variable to define baked in version
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-30 Tim Janik # 2aa219f972b
MISC: version.sh: support lightweight release tags via exact match
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # 164f5f8d62c
UI: Makefile.mk: fix unintentional tscheck remakes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # 594dd26e877
DOC: Makefile.mk: add doc/ch-releasing.md to internal manual
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # 4a3959522c7
ASE: Makefile.mk: rebuild ase/buildversion*.cc if GITCOMMITDEPS changes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # 9a242cf5339
Makefile.mk: rebuild package.json if GITCOMMITDEPS changes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # 1be8865b538
MISC: config-utils.mk: take tags and packed-refs into account for GITCOMMITDEPS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # b5e9ee2abed
DOC: ch-releasing.md: elaborate on releases and assets
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # aad33755caf
DOC: ch-releasing.md: start describing versioning and the release process
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # 59a103042e5
MISC: mknews.sh: add development version disclaimer
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # b3c8fd31799
MISC: Makefile.mk: remove partial release build rules
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # 3f9f22e8b61
MISC: mkassets.sh: simplify to just make dist and trigger release asset builds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # d8a191c88a7
MISC: mkAppImage.sh: build AppImage in assets/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # 27c0407e6db
MISC: mkAppImage.sh: use tools from appimagetools/ dir
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-29 Tim Janik # 46dd66faa38
MISC: Makefile.mk: cache downloads of appimage tools
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # 6a9d634c385
Makefile.mk: make dist: also generate assets/ChangeLog
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # 10d8bae4bda
MISC: mkdeb.sh: create debian package in assets/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # bb91f0b7a1c
DOC: Makefile.mk: support building assets/pdf
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # bd4e83e299a
MISC: Makefile.mk: avoid depending on appimage-runtime-zstd for normal builds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # 75394fbb81b
UI: tsconfig.json: remove exclude section
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # 4d64ba3e426
Makefile.mk: grep-reminders: only inspect existing files
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # f99ecf825be
Makefile.mk: add recent commits to NEWS.md
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # b666707cb95
Makefile.mk: build dist tarball in assets/ with high compression
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # 8e9d86eb999
ASE: main.cc: for --version, show short version and build id
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # d6a6eefcd1f
MISC: config-checks.mk: use version_short
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # 6eab3c7590d
ELECTRON: Makefile.mk: use version_short
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # 17e70101adf
ASE: Makefile.mk: use version_short
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # fee71cc62c8
Makefile.mk: extract version_hash, use version_short for brief version identifiers
* Remove version_m.m.m use version_short instead
* Remove version_buildid, that is actually version_short + version_hash
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # 27aea55f26b
MISC: Makefile.mk: remove unused release-news
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # a1495a4b2e4
MISC: mknews.sh: generate most recent section of NEWS.md
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # fd43ac38664
MISC: mkdeb.sh: parse hash from misc/version.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # 20824612baf
MISC: version.sh: reduce logic to produce baked/git/fallback version/hash/date
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # acafef28f08
Merge branch 'docker_build_run_clean'
* docker_build_run_clean:
GITHUB: workflows/testing.yml: remove duplicate chown invokation
GITHUB: workflows/testing.yml: use misc/docker_build, docker_run, docker_clean
MISC: docker_clean: cleanup permissions and CI image tag
MISC: docker_run: run in a CI image built by docker_build
MISC: docker_build: build a Dockerfile CI image with ghcr.io cache support
UI: Makefile.mk: make sure all JS files are built before running tscheck
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # 7404a810934
GITHUB: workflows/testing.yml: remove duplicate chown invokation
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # 6d1ce95e137
GITHUB: workflows/testing.yml: use misc/docker_build, docker_run, docker_clean
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # 94cee43de86
MISC: docker_clean: cleanup permissions and CI image tag
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # a9c7002a411
MISC: docker_run: run in a CI image built by docker_build
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-31 Tim Janik # 2181810c8f7
MISC: docker_build: build a Dockerfile CI image with ghcr.io cache support
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-28 Tim Janik # ae874be6654
UI: Makefile.mk: make sure all JS files are built before running tscheck
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # d11572308b1
Merge branch 'swesterfeld-piano-roll-note-length', closes #15
* swesterfeld-piano-roll-note-length:
UI: b/piano-ctrl.js: cleanup note_duration_delta at the end of a drag
UI: b/piano-ctrl.js: support resizing multiple notes in a selection
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 9d6d721279d
UI: b/piano-ctrl.js: cleanup note_duration_delta at the end of a drag
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Stefan Westerfeld # f334f12fa60
UI: b/piano-ctrl.js: support resizing multiple notes in a selection
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-07-27 Tim Janik # 1c13e75f808
Merge branch 'simple-vue-ports'
* simple-vue-ports:
UI: Makefile.mk: adapt make install wildcards
UI: b/statusbar.js: port to LitComponent
UI: b/databubble.js: port to native HTML component
UI: b/partthumb.vue: retire partthumb which is superceded by clipview
UI: b/hscrollbar.vue: retire hscrollbar code until we really need one
UI: b/color-picker.vue: retire color picker code until we really need one
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # f0a6c736989
UI: Makefile.mk: adapt make install wildcards
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 52e67bf17a9
UI: b/statusbar.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # c0e92e327fb
UI: b/databubble.js: port to native HTML component
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # dbc4fac14db
UI: b/partthumb.vue: retire partthumb which is superceded by clipview
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 8e43797ca77
UI: b/hscrollbar.vue: retire hscrollbar code until we really need one
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # a88415ed122
UI: b/color-picker.vue: retire color picker code until we really need one
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # c402d5e88f7
Merge branch 'global-css-rename'
* global-css-rename:
UI: index.html: load global.css
UI: Makefile.mk: generate global.css
UI: b/shell.vue: fix comment
UI: global.scss: rename (from globals.scss) b/c it now contains global CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 48f3e80759a
UI: index.html: load global.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # a9412512f1b
UI: Makefile.mk: generate global.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 28adaf7b004
UI: b/shell.vue: fix comment
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 5aab016a3f8
UI: global.scss: rename (from globals.scss) b/c it now contains global CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 7a7dd7e676d
Merge branch 'globalscss-icon-fonts'
* globalscss-icon-fonts:
UI: b/app.js: add comment for spinner testing
UI: index.html: adjust font resource paths
UI: globals.scss: import all icon SCSS defs
UI: dom.js: properly quote font names
ASE: websocket.cc: use CACHE_AUTO since we do not handle conditional requests
UI: b/menuseparator.js: fix customElements extends specification
UI: b/icon.js: leave icon font loading to globals.scss, assert font presence
UI: b/shell.vue: spinner.scss is already imported by globals.scss
UI: Makefile.mk: move fonts into ui/ and merge globals.scss dependencies
UI: globals.scss: rename normalize.scss for merging import
UI: postcss.js: keep .css imports, include all others
UI: b/icon.js: assert "Material Icons" font_family instead of loading material-icons.css
UI: globals.scss: directly include material-icons.css
UI: Makefile.mk: prepare ui/material-icons.css for globals.css
UI: dom.js: add font_family_loaded()
UI: dom.js: add file for DOM utilities
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # cf96f0e64af
UI: b/app.js: add comment for spinner testing
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # d2df951f171
UI: index.html: adjust font resource paths
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # c2c19c659ee
UI: globals.scss: import all icon SCSS defs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # e7e7c2238f2
UI: dom.js: properly quote font names
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 0a71c4a0aa4
ASE: websocket.cc: use CACHE_AUTO since we do not handle conditional requests
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 56ade7aeaa7
UI: b/menuseparator.js: fix customElements extends specification
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 41fe9dc43ef
UI: b/icon.js: leave icon font loading to globals.scss, assert font presence
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # e1bc36bb0ef
UI: b/shell.vue: spinner.scss is already imported by globals.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 7b23caf18a6
UI: Makefile.mk: move fonts into ui/ and merge globals.scss dependencies
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # b729f77e584
UI: globals.scss: rename normalize.scss for merging import
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 9b614cc0ca4
UI: postcss.js: keep .css imports, include all others
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # f07f0fa46a2
UI: b/icon.js: assert "Material Icons" font_family instead of loading material-icons.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 8ad57a560bd
UI: globals.scss: directly include material-icons.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # c6abd06e752
UI: Makefile.mk: prepare ui/material-icons.css for globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # c9e019e7899
UI: dom.js: add font_family_loaded()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 1535fa98430
UI: dom.js: add file for DOM utilities
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 0b1e7e7c180
Merge branch 'csshash-2fix-fouc'
* csshash-2fix-fouc:
UI: index.html: mark globals.css as data-4litcomponent
UI: little.js: clone stylesheet links marked data-4litcomponent into shadowRoot
UI: index.html: reload vue-styles.css and globals.css once the CSSHASH changes
UI: Makefile.mk: support @--CSSHASH--@ insertions fro index.html
ASE: websocket.cc: send "forever" Cache-Control with text/css to reduce FOUC
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # c689e2c4c08
UI: index.html: mark globals.css as data-4litcomponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # d05e434d81d
UI: little.js: clone stylesheet links marked data-4litcomponent into shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 525f21f8d44
UI: index.html: reload vue-styles.css and globals.css once the CSSHASH changes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # eff0f6c5678
UI: Makefile.mk: support @--CSSHASH--@ insertions fro index.html
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 7765f16fda8
ASE: websocket.cc: send "forever" Cache-Control with text/css to reduce FOUC
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 709f4e9044f
Merge branch 'globalscss-4-litcomponents'
* globalscss-4-litcomponents:
UI: Makefile.mk: run stylelint on ui/globals.css
UI: b/positionview.js: add CSS to globals.css, avoid shadowRoot
UI: b/playcontrols.js: add CSS to globals.css, avoid shadowRoot
UI: b/pianoroll.js: add CSS to globals.css, avoid shadowRoot
UI: b/partlist.js: add CSS to globals.css, avoid shadowRoot
UI: globals.scss: only style button and push-button for LightDOM
UI: b/objecteditor.js: add CSS to globals.css, avoid shadowRoot
UI: b/switchinput.js: add CSS to globals.css, avoid shadowRoot
UI: b/numberinput.js: add CSS to globals.css, avoid shadowRoot
UI: b/textinput.js: add CSS to globals.css, avoid shadowRoot
UI: b/more.js: add CSS to globals.css, avoid shadowRoot
UI: b/tracklist.js: add CSS to globals.css, avoid shadowRoot
UI: b/trackview.js: add CSS to globals.css, avoid shadowRoot
UI: b/menubar.js: fix b-menuseparator
UI: b/trackview.js: fix b-menuseparator
UI: b/menutitle.js: add CSS to globals.css
UI: b/menuseparator.js: make b-menuseparator a simple HTMLHRElement
UI: b/menurow.js: add CSS to globals.css, avoid shadowRoot
UI: b/menuitem.js: add CSS to globals.css
UI: b/menubar.js: add CSS to globals.css, avoid shadowRoot
UI: b/knob.js: add CSS to globals.css, avoid shadowRoot
UI: b/icon.js: add CSS to globals.css
UI: b/editable.js: add CSS to globals.css
UI: b/contextmenu.js: add CSS to globals.css
UI: b/clipview.js: add CSS to globals.css, avoid shadowRoot
UI: b/cliplist.js: add CSS to globals.css, avoid shadowRoot
UI: b/choiceinput.js: add CSS to globals.css, avoid shadowRoot
UI: b/buttonbar.js: add CSS to globals.css, avoid shadowRoot
UI: b/basics.js: add CSS to globals.css, cleanups
UI: b/aboutdialog.js: add CSS to globals.css, avoid shadowRoot
UI: globals.scss: merge contents of grid.scss
UI: Makefile.mk: fix globals.scss cleanup
UI: Makefile.mk: include *.jscss contents in globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 02fb333c9a9
UI: Makefile.mk: run stylelint on ui/globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # b3c7d2c2c8e
UI: b/positionview.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # a907dfbc98f
UI: b/playcontrols.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 65381a89e74
UI: b/pianoroll.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # db4011ba3af
UI: b/partlist.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 7c6f08bcfb1
UI: globals.scss: only style button and push-button for LightDOM
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 5bb93ca5832
UI: b/objecteditor.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 465f6ff21fe
UI: b/switchinput.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 1f95613f3e2
UI: b/numberinput.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 060f073dbc7
UI: b/textinput.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 9782c8ce252
UI: b/more.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # dcd0e2c0f90
UI: b/tracklist.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # f2d4728ecb5
UI: b/trackview.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # fe10728e6f4
UI: b/menubar.js: fix b-menuseparator
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 19864eee9c5
UI: b/trackview.js: fix b-menuseparator
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 9b494c2ac03
UI: b/menutitle.js: add CSS to globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 57507984a2f
UI: b/menuseparator.js: make b-menuseparator a simple HTMLHRElement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 7c01eecac20
UI: b/menurow.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # d2e2e74c70d
UI: b/menuitem.js: add CSS to globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 59819a6cbee
UI: b/menubar.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 07e100f8574
UI: b/knob.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 0e133089887
UI: b/icon.js: add CSS to globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # ed754192b4c
UI: b/editable.js: add CSS to globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 811cdb2216b
UI: b/contextmenu.js: add CSS to globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 58227b15fff
UI: b/clipview.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 76e500af4e5
UI: b/cliplist.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 6e479b94fec
UI: b/choiceinput.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 63595e5f3cb
UI: b/buttonbar.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # c175a34e778
UI: b/basics.js: add CSS to globals.css, cleanups
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # ed032cc9218
UI: b/aboutdialog.js: add CSS to globals.css, avoid shadowRoot
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # e4435b600f4
UI: globals.scss: merge contents of grid.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-26 Tim Janik # 9e816d3f46d
UI: Makefile.mk: fix globals.scss cleanup
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 3e5761dae32
UI: Makefile.mk: include *.jscss contents in globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 746575faa90
Merge branch 'postcss-normalize-charset'
* postcss-normalize-charset:
UI: postcss.js: postprocess CSS with postcss-normalize-charset
MISC: package.json.in: install postcss-normalize-charset
UI: postcss.js: add support for -I to add include paths
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 3d692a6e813
UI: postcss.js: postprocess CSS with postcss-normalize-charset
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 956c5770920
MISC: package.json.in: install postcss-normalize-charset
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-16 Tim Janik # c9529d5ef16
UI: postcss.js: add support for -I to add include paths
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-27 Tim Janik # 874535f25a1
Merge branch 'aboutdialog-lit'
* aboutdialog-lit:
UI: index.html: add comments to start_view_transition()
UI: globals.scss: add b-dialog styling
UI: b/contextmenu.js: use transparent backdrop for menus
UI: globals.scss: add view-transition-group defaults, add scale0 keyframes
UI: dark.scss: add b-animation-duration and b-dialog-colors
UI: tsconfig.json: avoid checks of postcss.js.tst.js
UI: b/menubar.js: make use of Shell.show_about_dialog()
UI: b/app.js: leave aboutdialog handling to Shell.show_about_dialog()
UI: b/shell.vue: use b-aboutdialog.shown, add show_about_dialog(), handle close
* Use proper internal state for showing b-aboutdialog
* Expose showing/hiding through show_about_dialog()
* Allow animated closing of b-aboutdialog with start_view_transition
UI: b/aboutdialog.js: display Lit version number
UI: b/aboutdialog.js: port to LitComponent
UI: eslintrc.js: declare start_view_transition as global symbol
UI: index.html: define start_view_transition()
This is a Vue-aware wrapper around document.startViewTransition() (atm Chrome
specific), that still does the right thing on Firefox and has a disable flag.
UI: Makefile.mk: index.html: add lit_version to config_json
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # a80e92d057a
UI: index.html: add comments to start_view_transition()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # c54b70424ea
UI: globals.scss: add b-dialog styling
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 915baedb141
UI: b/contextmenu.js: use transparent backdrop for menus
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 2caf2b375d5
UI: globals.scss: add view-transition-group defaults, add scale0 keyframes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 5c8f6dfc564
UI: dark.scss: add b-animation-duration and b-dialog-colors
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-16 Tim Janik # 20a443b8ded
UI: tsconfig.json: avoid checks of postcss.js.tst.js
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-16 Tim Janik # 876923bd23f
UI: b/menubar.js: make use of Shell.show_about_dialog()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-16 Tim Janik # 208c5e6287c
UI: b/app.js: leave aboutdialog handling to Shell.show_about_dialog()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-16 Tim Janik # 33a3a3454df
UI: b/shell.vue: use b-aboutdialog.shown, add show_about_dialog(), handle close
* Use proper internal state for showing b-aboutdialog
* Expose showing/hiding through show_about_dialog()
* Allow animated closing of b-aboutdialog with start_view_transition
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-16 Tim Janik # 3dbf4e4fdde
UI: b/aboutdialog.js: display Lit version number
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-06 Tim Janik # 0e444f650be
UI: b/aboutdialog.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-21 Tim Janik # 170bbbd5353
UI: eslintrc.js: declare start_view_transition as global symbol
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-21 Tim Janik # 31dd417c142
UI: index.html: define start_view_transition()
This is a Vue-aware wrapper around document.startViewTransition() (atm Chrome
specific), that still does the right thing on Firefox and has a disable flag.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-16 Tim Janik # 69a4ed3eacc
UI: Makefile.mk: index.html: add lit_version to config_json
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 61e1ecdf0c8
Merge branch 'dark-palette'
* dark-palette:
UI: dark.scss, globals.scss: use palette for body colors
UI: Makefile.mk: add palette.scss to scss files
UI: palette.scss: add warm grey palette based on ZCAM Jz (lightness) steps
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # fdf7ae821a4
UI: dark.scss, globals.scss: use palette for body colors
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 47349149558
UI: Makefile.mk: add palette.scss to scss files
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # ed796e145c0
UI: palette.scss: add warm grey palette based on ZCAM Jz (lightness) steps
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # aa3a6b6afef
Merge branch 'modern-normalize'
* modern-normalize:
UI: little.js: load globals.css into every LitComponent
UI: index.html: give globals.css precedence over vue-styles.css
UI: index.html: remvoe shadow.css
UI: Makefile.mk: remove ui/elements.scss ui/shadow.scss
Makefile.mk: run 'lint' during `make check`
UI: remove unused files elements.scss and shadow.scss
UI: globals.scss: merge styles from elements.scss and shadow.scss
UI: globals.scss: use normalize.css to normalize latest Chrome & Firefox
UI: normalize.css: leave font-family setting to our own theme
MISC: mkcopyright.py: fix MIT License pattern to deal with case and 'd'-ending
UI: normalize.css: insert MIT License and add Copyright notices
UI: normalize.css: add renamed modern-normalize.css version 2.0.0
Add modern-normalize.css from https://github.com/sindresorhus/modern-normalize
licensed MIT.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # e88e7457df8
UI: little.js: load globals.css into every LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # d7e9a3dfdaa
UI: index.html: give globals.css precedence over vue-styles.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 0cae46322ab
UI: index.html: remvoe shadow.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # b7cf5319431
UI: Makefile.mk: remove ui/elements.scss ui/shadow.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # de79ea97984
Makefile.mk: run 'lint' during `make check`
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 058fd2d61a5
UI: remove unused files elements.scss and shadow.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 273596217e1
UI: globals.scss: merge styles from elements.scss and shadow.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 13bd840de05
UI: globals.scss: use normalize.css to normalize latest Chrome & Firefox
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 16c5af36353
UI: normalize.css: leave font-family setting to our own theme
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # ae8122dd61a
MISC: mkcopyright.py: fix MIT License pattern to deal with case and 'd'-ending
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # b32eec14fb3
UI: normalize.css: insert MIT License and add Copyright notices
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 6bbef85ab43
UI: normalize.css: add renamed modern-normalize.css version 2.0.0
Add modern-normalize.css from https://github.com/sindresorhus/modern-normalize
licensed MIT.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-24 Tim Janik # 7134954717f
Merge branch 'poxystyle'
* poxystyle:
DOC: poxy.sh: allow doc/poxystyle.css to fixup colors
DOC: poxystyle.css: fix light theme colors and sizes
UI: b/cliplist.js: minor edit
README.md: update roadmap with items from Stefan Westerfeld
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-05 Tim Janik # 80657d970cf
DOC: poxy.sh: allow doc/poxystyle.css to fixup colors
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-05 Tim Janik # 98c61c47c0a
DOC: poxystyle.css: fix light theme colors and sizes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-16 Tim Janik # f2858225fca
UI: b/cliplist.js: minor edit
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-21 Tim Janik # 13f379fe5f5
README.md: update roadmap with items from Stefan Westerfeld
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-03 Tim Janik # a7ea5f44588
Merge branch 'ts-check-lit-components', add ts-check and fix lint issues
* ts-check-lit-components:
UI: b/app.js: reload UI on project changes
UI: b/objecteditor.js: fix output
UI: util.js: add missing type annotations
UI: kbd.js: add missing type annotations
UI: b/trackview.js: add @ts-check and missing type annotations
UI: b/tracklist.js: add @ts-check and missing properties
UI: b/playcontrols.js: add @ts-check
UI: b/pianoroll.js: add @ts-check and missing type annotations
UI: b/piano-ctrl.js: minor type fix
UI: b/partlist.js: add @ts-check
UI: b/more.js: add @ts-check
UI: b/menutitle.js: add @ts-check
UI: b/menuseparator.js: add @ts-check
UI: b/menurow.js: add @ts-check
UI: b/menuitem.js: add @ts-check
UI: b/knob.js: add @ts-check and missing type annotations
UI: b/editable.js: add @ts-check
UI: b/contextmenu.js: add @ts-check and missing type annotations
UI: b/clipview.js: add @ts-check and missing type
UI: b/buttonbar.js: add @ts-check
README.md: escape FIXME keywords
UI: Makefile.mk: grep for reminders in ui/lint
DEVICES: Makefile.mk: grep for reminders in devices/lint
Makefile.mk: at the end of 'all', grep for reminder keywords in known sources
Makefile.mk: ls-tree.d needs GITCOMMITDEPS, i.e. misc/config-utils.mk
ASE: Makefile.mk: grep for reminders in ase/lint
Makefile.mk: add 'lint' as toplevel phony rule
UI: b/tracklist.js: cleanup CSS
UI: b/textinput.js: cleanup CSS
UI: b/switchinput.js: cleanup CSS
UI: b/shell.vue: cleanup CSS
UI: b/positionview.js: cleanup CSS
UI: b/pianoroll.js: cleanup CSS
UI: b/noteboard.vue: cleanup CSS
UI: b/menutitle.js: cleanup CSS
UI: b/menurow.js: cleanup CSS
UI: b/menuitem.js: cleanup CSS
UI: b/knob.js: cleanup CSS
UI: b/icon.js: cleanup CSS
UI: b/folderview.vue: cleanup CSS
UI: b/filedialog.vue: cleanup CSS
UI: b/editable.js: cleanup CSS
UI: b/dialog.vue: cleanup CSS
UI: b/databubble.vue: cleanup CSS
UI: b/contextmenu.js: cleanup CSS
UI: b/clipview.js: cleanup CSS
UI: b/basics.js: inlcude v-flex mixin
UI: theme.scss: fix color syntax
UI: startup.js: fix import path
UI: Makefile.mk: use stylelint with -f unix only inside emacs
UI: Makefile.mk: add missing ui/spinner.scss dependency
UI: stylelintrc.cjs: ignore whitespace rules
UI: Makefile.mk: add Ase.server @type
UI: mixins.scss: add v-flex mixin
UI: mixins.scss: use $b-font-stack-kbd-mono
UI: dark.scss: define $b-font-stack-kbd-mono for hotkey rendering
UI: b/menubar.js: port to LitComponent
* Cleanup <b-positionview/> markup
* Cleanup CSS
UI: b/positionview.js: port to LitComponent
UI: b/basics.js: use h-flex()
UI: mixins.scss: add h-flex() mixin
MISC: Dockerfile.arch: install unzip
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-03 Tim Janik # 9ccadc2786b
UI: b/app.js: reload UI on project changes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-03 Tim Janik # 7b7c9d33912
UI: b/objecteditor.js: fix output
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 2a88ba2340e
UI: util.js: add missing type annotations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # b8d9cba7775
UI: kbd.js: add missing type annotations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 41e7e224be8
UI: b/trackview.js: add @ts-check and missing type annotations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # ddd3745b6a7
UI: b/tracklist.js: add @ts-check and missing properties
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 4f3b2262c48
UI: b/playcontrols.js: add @ts-check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # e51937a2cb6
UI: b/pianoroll.js: add @ts-check and missing type annotations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 885cc408575
UI: b/piano-ctrl.js: minor type fix
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 50508333cd6
UI: b/partlist.js: add @ts-check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 8d50f563baa
UI: b/more.js: add @ts-check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # b8131bc39be
UI: b/menutitle.js: add @ts-check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # e6e4a6c10bb
UI: b/menuseparator.js: add @ts-check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 45aba5a85ba
UI: b/menurow.js: add @ts-check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # a2f8aa8e84f
UI: b/menuitem.js: add @ts-check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # e8be9a99e81
UI: b/knob.js: add @ts-check and missing type annotations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 08e9a46e443
UI: b/editable.js: add @ts-check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # b1944c985c1
UI: b/contextmenu.js: add @ts-check and missing type annotations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 366c2c79ee4
UI: b/clipview.js: add @ts-check and missing type
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 326826664dd
UI: b/buttonbar.js: add @ts-check
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 687261f53db
README.md: escape FIXME keywords
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # f36e7064566
UI: Makefile.mk: grep for reminders in ui/lint
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 3fd2620174c
DEVICES: Makefile.mk: grep for reminders in devices/lint
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 057b33c0085
Makefile.mk: at the end of 'all', grep for reminder keywords in known sources
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 05d69923bd4
Makefile.mk: ls-tree.d needs GITCOMMITDEPS, i.e. misc/config-utils.mk
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 842de83e14b
ASE: Makefile.mk: grep for reminders in ase/lint
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 0b97aa6cd60
Makefile.mk: add 'lint' as toplevel phony rule
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 94934c0cb1a
UI: b/tracklist.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # b84c1a88068
UI: b/textinput.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 4e9243d27c6
UI: b/switchinput.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # c599a64857d
UI: b/shell.vue: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # b3994062ba2
UI: b/positionview.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 96c51121a49
UI: b/pianoroll.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # c22a3a9d4bc
UI: b/noteboard.vue: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 79f29acef3f
UI: b/menutitle.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # fb841665b31
UI: b/menurow.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # b722c77974e
UI: b/menuitem.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 753ca271cd0
UI: b/knob.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # a0bcf394e4b
UI: b/icon.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # d10bcfc1f66
UI: b/folderview.vue: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # f1620c4e6f8
UI: b/filedialog.vue: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # e8864225fd7
UI: b/editable.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # d41a6ce8a9b
UI: b/dialog.vue: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 0cf9e27176f
UI: b/databubble.vue: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 070eadb260c
UI: b/contextmenu.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # ede36359866
UI: b/clipview.js: cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # a4542ed4b4c
UI: b/basics.js: inlcude v-flex mixin
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # d66c64af03d
UI: theme.scss: fix color syntax
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # d2a5bc1ef49
UI: startup.js: fix import path
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # b4d7f94993c
UI: Makefile.mk: use stylelint with -f unix only inside emacs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # ae8240e5da4
UI: Makefile.mk: add missing ui/spinner.scss dependency
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 30ca15c2ab1
UI: stylelintrc.cjs: ignore whitespace rules
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # cf83e8ac686
UI: Makefile.mk: add Ase.server @type
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # dc7d09b5217
UI: mixins.scss: add v-flex mixin
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 89de2048880
UI: mixins.scss: use $b-font-stack-kbd-mono
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-02 Tim Janik # 2b7e207192d
UI: dark.scss: define $b-font-stack-kbd-mono for hotkey rendering
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-01 Tim Janik # ea70787993d
UI: b/menubar.js: port to LitComponent
* Cleanup <b-positionview/> markup
* Cleanup CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-01 Tim Janik # a2f15848158
UI: b/positionview.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-01 Tim Janik # 2e15e5fd588
UI: b/basics.js: use h-flex()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-07-01 Tim Janik # d82cf775adf
UI: mixins.scss: add h-flex() mixin
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # 88838848240
MISC: Dockerfile.arch: install unzip
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # 2ddfe22e7b2
Merge branch 'inputs-as-litelement'
* inputs-as-litelement:
X11TEST: play-notes.json: adjust recording for new web components
ASE: server.cc: listen on "notify" emissions from properties
ASE: properties.cc: fix notifications, emit notify:identifier
UI: util.js: turn xprop.value_ into a reactive property
UI: b/choiceinput.js: take b-objecteditor into account in CSS
UI: b/pro-input.vue: use @valuechange on b-choiceinput
UI: b/preferencesdialog.vue: use b-objecteditor
UI: util.js: avoid extending the same property twice
UI: util.js: export fullstop()
UI: Makefile.mk: use tsc with --pretty false only inside emacs
UI: b/objecteditor.js: port to LitComponent
* Turn into shadowless component
* Properly prefix CSS classes
* Listen on and handle @valuechange events
* Do not freeze extended properties that we keep mutating
* Remove old resize blocker logic
UI: startup.js: load basic custom components early on
UI: b/basics.js: move h-flex, v-flex, c-grid, push-button here, shadowless
Make these simple basic containers shadowless, i.e. without shadow root.
UI: b/pro-input.vue: add support for b-choiceinput
UI: little.js: export 'nothing' from Lit
UI: types.d.ts: add debug() global
UI: b/fed-object.vue: add support for b-choiceinput
UI: b/choiceinput.js: port to LitComponent, render on demand only
UI: b/tracklist.js: fix stacking of top border shadow
UI: b/switchinput.js: allow LEFT/RIGHT/UP/DOWN to toggle
UI: b/fed-object.vue: add support for b-switchinput
UI: b/switchinput.js: port to LitComponent
UI: types.d.ts: declare global CONFIG
UI: b/fed-object.vue: add support for b-numberinput
UI: b/numberinput.js: simplify and fix sizing
UI: b/numberinput.js: port to LitComponent
UI: b/textinput.js: dispatch value changes as valuechange "event"
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # 6a1f52feca0
X11TEST: play-notes.json: adjust recording for new web components
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # 481005f5283
ASE: server.cc: listen on "notify" emissions from properties
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # 3fb82e7f992
ASE: properties.cc: fix notifications, emit notify:identifier
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # b74a68d390d
UI: util.js: turn xprop.value_ into a reactive property
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # 221b932b807
UI: b/choiceinput.js: take b-objecteditor into account in CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # dba54e6c9e2
UI: b/pro-input.vue: use @valuechange on b-choiceinput
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # 0ddcc1e91b5
UI: b/preferencesdialog.vue: use b-objecteditor
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # 7ce840d9cb6
UI: util.js: avoid extending the same property twice
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # d911103a3fa
UI: util.js: export fullstop()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # 3ead04ab2c2
UI: Makefile.mk: use tsc with --pretty false only inside emacs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-26 Tim Janik # e5f424b53c2
UI: b/objecteditor.js: port to LitComponent
* Turn into shadowless component
* Properly prefix CSS classes
* Listen on and handle @valuechange events
* Do not freeze extended properties that we keep mutating
* Remove old resize blocker logic
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-25 Tim Janik # 01eed16f577
UI: startup.js: load basic custom components early on
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-25 Tim Janik # c60c2971260
UI: b/basics.js: move h-flex, v-flex, c-grid, push-button here, shadowless
Make these simple basic containers shadowless, i.e. without shadow root.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-25 Tim Janik # 24b4e800206
UI: b/pro-input.vue: add support for b-choiceinput
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-25 Tim Janik # 9f2ee888205
UI: little.js: export 'nothing' from Lit
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-25 Tim Janik # 4159f9a4b0c
UI: types.d.ts: add debug() global
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-25 Tim Janik # 314cb84d0fb
UI: b/fed-object.vue: add support for b-choiceinput
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-25 Tim Janik # 97cd5d4ad53
UI: b/choiceinput.js: port to LitComponent, render on demand only
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-25 Tim Janik # 41cdec83228
UI: b/tracklist.js: fix stacking of top border shadow
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-25 Tim Janik # 7b75984c3cb
UI: b/switchinput.js: allow LEFT/RIGHT/UP/DOWN to toggle
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-24 Tim Janik # 06ae6889657
UI: b/fed-object.vue: add support for b-switchinput
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-24 Tim Janik # 1e7b44906ba
UI: b/switchinput.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-23 Tim Janik # e77023e348e
UI: types.d.ts: declare global CONFIG
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-23 Tim Janik # adcc49cf5bc
UI: b/fed-object.vue: add support for b-numberinput
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-23 Tim Janik # 76fe2a76e0b
UI: b/numberinput.js: simplify and fix sizing
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-23 Tim Janik # 57a1094f99d
UI: b/numberinput.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-27 Tim Janik # b3c4c96e163
UI: b/textinput.js: dispatch value changes as valuechange "event"
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # 31da2dde14d
Merge branch 'fix-lit-html'
* fix-lit-html:
UI: b/*.js: fix trailing-solidus in html`` markup
UI: eslintrc.js: add plugin:lit/recommended to linting rules
MISC: package.json.in: install eslint-plugin-lit
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # 69bbf6dfb3e
UI: b/*.js: fix trailing-solidus in html`` markup
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # 4b41f301a62
UI: eslintrc.js: add plugin:lit/recommended to linting rules
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # 9282e8e0c33
MISC: package.json.in: install eslint-plugin-lit
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # 89c9d0114d6
Merge branch 'InterDisplay', based on InterVariable-4.0 font
* InterDisplay:
UI: dark.scss: add a fallback font stack
UI: theme.scss: remove outdated font stuff
UI: mixins.scss: move b-kbd-hotkey here
UI: elements.scss: use b-font-weight-bold() and b-font-weight-bolder()
UI: b/*.vue, b/*.js: use b-font-weight-bold() and its variants
UI: dark.scss: define b-font-weight-{normal|bold|bolder} mixins
UI: b/menutitle.js: use drop-caps while InterVariable-4.0 small-caps are broken
See also: https://github.com/rsms/inter/issues/556#issuecomment-1598010623
UI: elements.scss: leave font handling to theme, globals and shadow
UI: b/pianoroll.js: use b-canvas-font
UI: b/partthumb.vue: use b-canvas-font
UI: b/clipview.js: use b-canvas-font
UI: shadow.scss: use b-ui-font() inside shadow DOMs
UI: globals.scss: make use of b-ui-font()
UI: dark.scss: configure b-ui-font() for "InterVariable" in InterDisplay style
UI: globals.scss: leave font-face defs to index.html
UI: index.html: cleanup preloads, add @font-face for "InterVariable"
UI: b/icon.js: add small comment
UI: Makefile.mk: download InterVariable.woff2
UI: stylelintrc.cjs: disable "font-family-name-quotes" to allow quoted font names
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # 34e9761e49b
UI: dark.scss: add a fallback font stack
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # f06611a1abf
UI: theme.scss: remove outdated font stuff
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # 0759afa474e
UI: mixins.scss: move b-kbd-hotkey here
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # 747ed41862c
UI: elements.scss: use b-font-weight-bold() and b-font-weight-bolder()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # 22b8985f656
UI: b/*.vue, b/*.js: use b-font-weight-bold() and its variants
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-22 Tim Janik # ee27d939ebc
UI: dark.scss: define b-font-weight-{normal|bold|bolder} mixins
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # 732ab4756d2
UI: b/menutitle.js: use drop-caps while InterVariable-4.0 small-caps are broken
See also: https://github.com/rsms/inter/issues/556#issuecomment-1598010623
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 3300e93beb2
UI: elements.scss: leave font handling to theme, globals and shadow
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 290f583eeed
UI: b/pianoroll.js: use b-canvas-font
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 78e9afb7587
UI: b/partthumb.vue: use b-canvas-font
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 997543b6eea
UI: b/clipview.js: use b-canvas-font
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # b56b7d2df0c
UI: shadow.scss: use b-ui-font() inside shadow DOMs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 9e99536b06a
UI: globals.scss: make use of b-ui-font()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 322d886279e
UI: dark.scss: configure b-ui-font() for "InterVariable" in InterDisplay style
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # ecf133d3495
UI: globals.scss: leave font-face defs to index.html
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # c2e9ed3909e
UI: index.html: cleanup preloads, add @font-face for "InterVariable"
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # e1a9791a75c
UI: b/icon.js: add small comment
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 93d99c295e2
UI: Makefile.mk: download InterVariable.woff2
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # ce23d40a41c
UI: stylelintrc.cjs: disable "font-family-name-quotes" to allow quoted font names
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # 234bf99e99c
Merge branch 'component-styling'
* component-styling:
UI: b/playcontrols.js: use JsExtract.css_url()
UI: b/icon.js: use JsExtract.css_url()
UI: b/textinput.js: make this a shadowless component
UI: little.js: add JsExtract.css_url()
UI: little.js: use cast to work around TS2425
UI: b/playcontrols.js: port to LitComponent
UI: Makefile.mk: remove temporary file
UI: b/*.vue: remove useless mixins import
UI: index.html: import globals.css
UI: globals.scss: import elements.scss which includes mixins
UI: Makefile.mk: create globals.css and auto-import mixins.scss for vue styles
UI: elements.scss: rename from domstyles.scss
UI: b/button-bar.vue: port to LitComponent
UI: b/*.js: access only LitComponent fields (not LitElement)
UI: little.js: remove LitElement export
UI: startup.js: derive from LitComponent (not LitElement)
UI: b/*.js: derive from LitComponent (not LitElement)
UI: b/partlist.js: embed and load CSS via JsExtract
UI: Makefile.mk: fix dependenc for scss rebuilds
UI: b/partlist.js: import Util
UI: types.d.ts: declare __DEV__ global
UI: b/pianoroll.js: extend LitComponent and use reactive_wrapper to track notes
Also, merge multiple repaint requests into the same micro task.
UI: b/clipview.js: leave width to parent
UI: b/cliplist.js: set 'data-f1' only once suffices
UI: b/trackview.js: render b-trackview context menu on demand
UI: b/contextmenu.js: fix close() and synchronize updates
* await this.updateComplete before showModal()
* properly emit 'close', take nesting into account
UI: b/partlist.js: port to LitElement
UI: mixins.scss: add transparent-scrollbars mixin
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # 7e6ebcd5294
UI: b/playcontrols.js: use JsExtract.css_url()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # fee9f313c35
UI: b/icon.js: use JsExtract.css_url()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # de3d32ca3db
UI: b/textinput.js: make this a shadowless component
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # 8fe013c0e1d
UI: little.js: add JsExtract.css_url()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-21 Tim Janik # 433cd90bfac
UI: little.js: use cast to work around TS2425
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # e8d7c92692e
UI: b/playcontrols.js: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 48e5bdb083f
UI: Makefile.mk: remove temporary file
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 7a85176b70c
UI: b/*.vue: remove useless mixins import
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # ec362371e53
UI: index.html: import globals.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # a3e18687646
UI: globals.scss: import elements.scss which includes mixins
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 86754b35e0e
UI: Makefile.mk: create globals.css and auto-import mixins.scss for vue styles
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # eb211677e85
UI: elements.scss: rename from domstyles.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # b0da152808a
UI: b/button-bar.vue: port to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # c96793b156d
UI: b/*.js: access only LitComponent fields (not LitElement)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # fddb3a11520
UI: little.js: remove LitElement export
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 2c5efdb7a98
UI: startup.js: derive from LitComponent (not LitElement)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # ed007eb923b
UI: b/*.js: derive from LitComponent (not LitElement)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # 5a54f07f528
UI: b/partlist.js: embed and load CSS via JsExtract
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-20 Tim Janik # ca6c073f767
UI: Makefile.mk: fix dependenc for scss rebuilds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-19 Tim Janik # e79767fec25
UI: b/partlist.js: import Util
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-19 Tim Janik # 045ccdf2790
UI: types.d.ts: declare __DEV__ global
Signed-off-by: Tim Janik <timj@gnu.org>
2023-02-20 Tim Janik # a1c295ac575
UI: b/pianoroll.js: extend LitComponent and use reactive_wrapper to track notes
Also, merge multiple repaint requests into the same micro task.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-18 Tim Janik # b5ae56761ed
UI: b/clipview.js: leave width to parent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-18 Tim Janik # aef1ff8a09c
UI: b/cliplist.js: set 'data-f1' only once suffices
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-18 Tim Janik # 353a31f5d1d
UI: b/trackview.js: render b-trackview context menu on demand
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-17 Tim Janik # a7b0f31f492
UI: b/contextmenu.js: fix close() and synchronize updates
* await this.updateComplete before showModal()
* properly emit 'close', take nesting into account
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-15 Tim Janik # 9114700d6ee
UI: b/partlist.js: port to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-18 Tim Janik # 620aa484364
UI: mixins.scss: add transparent-scrollbars mixin
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-18 Tim Janik # 29cc5ffb511
Merge branch 'clang-tidy'
* clang-tidy:
MISC: mkassets.sh: always use /tmp/anklang-mkassets/ for release builds
GITHUB: workflows/testing.yml: fix key file permissions
GITHUB: workflows/testing.yml: fixup permissions at CI end
GITHUB: workflows/testing.yml: remove missing variable reference
GITHUB: workflows/testing.yml: fix arch perms and focal redirection
GITHUB: workflows/testing.yml: use $DOCKER_RUN and ghcr.io for all tasks
* use $DOCKER_RUN and ghcr.io caching for Focal-Docs
* adjusting git.safe.directory is not needed for Lunar
* use $DOCKER_RUN and ghcr.io caching for Arch-Replay
MISC: Dockerfile.focal: remove unused RUNs, rename user to ubuntu
* remove unused OOTBUILD, rename builder user to ubuntu
* add a comment howto build and run this image
* use fixed user and group id of 1000
MISC: Dockerfile.arch: use fixed user and group ids of 1000
MISC: Dockerfile.arch: remove unused OOTBUILD and unused poxy
MISC: Dockerfile.lunar: remove unused OOTBUILD
GITHUB: workflows/testing.yml: directly use docker run for lunar and fix perms
MISC: Dockerfile.lunar: upgrade to nodejs-20
MISC: package.json.in: upgrade npm build tools and electron-25
MISC: package.json.in: remove unused rollup-plugin-node-resolve
MISC: Makefile.mk: fix missing directory dependency
GITHUB: workflows/testing.yml: add Lunar-Clang-Tidy, rename Focal-Docs
MISC: Dockerfile.lunar: provide build environment with clang-17 on ubuntu:23.04
MISC: colorize.sh: colorize error, warning, note and special case Emacs
MISC: Makefile.mk: reimplement clang-tidy and clang-tidy-clean rules
Makefile.mk: defined CLANG_TIDY
Makefile.mk: create ls-tree.d and provide $(LS_TREE_LST)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # 0c6ee0d170e
MISC: mkassets.sh: always use /tmp/anklang-mkassets/ for release builds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # 2ef478af0b6
GITHUB: workflows/testing.yml: fix key file permissions
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # 3476b5a4d8d
GITHUB: workflows/testing.yml: fixup permissions at CI end
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # 9055195e23b
GITHUB: workflows/testing.yml: remove missing variable reference
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # 3b9299de1b7
GITHUB: workflows/testing.yml: fix arch perms and focal redirection
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # b3ffd2286d7
GITHUB: workflows/testing.yml: use $DOCKER_RUN and ghcr.io for all tasks
* use $DOCKER_RUN and ghcr.io caching for Focal-Docs
* adjusting git.safe.directory is not needed for Lunar
* use $DOCKER_RUN and ghcr.io caching for Arch-Replay
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # 35a280eeaab
MISC: Dockerfile.focal: remove unused RUNs, rename user to ubuntu
* remove unused OOTBUILD, rename builder user to ubuntu
* add a comment howto build and run this image
* use fixed user and group id of 1000
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # e3f20c6450d
MISC: Dockerfile.arch: use fixed user and group ids of 1000
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # 3920eb8834e
MISC: Dockerfile.arch: remove unused OOTBUILD and unused poxy
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-14 Tim Janik # f3bb3b9138a
MISC: Dockerfile.lunar: remove unused OOTBUILD
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # c7dab2401ad
GITHUB: workflows/testing.yml: directly use docker run for lunar and fix perms
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # edabcd94857
MISC: Dockerfile.lunar: upgrade to nodejs-20
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # 5c44f046247
MISC: package.json.in: upgrade npm build tools and electron-25
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # 3d252c26241
MISC: package.json.in: remove unused rollup-plugin-node-resolve
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # 47d7c27fcb4
MISC: Makefile.mk: fix missing directory dependency
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # cee3e570cb5
GITHUB: workflows/testing.yml: add Lunar-Clang-Tidy, rename Focal-Docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # 230144f2b85
MISC: Dockerfile.lunar: provide build environment with clang-17 on ubuntu:23.04
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # 0174a5c3364
MISC: colorize.sh: colorize error, warning, note and special case Emacs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # c14f89dad40
MISC: Makefile.mk: reimplement clang-tidy and clang-tidy-clean rules
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # 3f16fa015fc
Makefile.mk: defined CLANG_TIDY
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-13 Tim Janik # 1b3dce3b05b
Makefile.mk: create ls-tree.d and provide $(LS_TREE_LST)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-08 Tim Janik # 7b3b3807780
Merge branch 'sorted-vector'
* sorted-vector:
ASE: sortnet: implement SortedVector
ASE: testing.hh: TFLOATS(): assert float equality within an apsilon
ASE: combo.cc: add SPL link
Signed-off-by: Tim Janik <timj@gnu.org>
2023-02-05 Tim Janik # d4d15a69797
ASE: sortnet: implement SortedVector
Signed-off-by: Tim Janik <timj@gnu.org>
2023-02-08 Tim Janik # 02ec2c7bc0c
ASE: testing.hh: TFLOATS(): assert float equality within an apsilon
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-23 Tim Janik # 8273f3c449b
ASE: combo.cc: add SPL link
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-07 Tim Janik # 1d49d488dc3
Merge branch 'swesterfeld-fix-pcg-ub'
* swesterfeld-fix-pcg-ub:
ASE: randomhash: fix undefined behaviour in Pcg32Rng
Left shifting a 32bit value by 32 bits is UB.
* Closes #14
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-29 Stefan Westerfeld # b816b57c71f
ASE: randomhash: fix undefined behaviour in Pcg32Rng
Left shifting a 32bit value by 32 bits is UB.
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-06-07 Tim Janik # f609e1ec495
Merge branch 'appimage-rpath-fix'
* appimage-rpath-fix:
MISC: mkAppImage.sh: avoid `linuxdeploy {-e|-l}` which change binary locations
Avoid `linuxdeploy {-e|-l}`, these options change the binary locations by copying.
The copies mess up ELF location detection and restoring the original locations
causes wrong relative $ORIGIN paths. We just use --deploy-deps-only now, which
keeps the binaries in place and correctly adjusts the relative $ORIGIN path.
MISC: mkAppImage.sh: remove unused command
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-07 Tim Janik # f0ae8c11193
MISC: mkAppImage.sh: avoid `linuxdeploy {-e|-l}` which change binary locations
Avoid `linuxdeploy {-e|-l}`, these options change the binary locations by copying.
The copies mess up ELF location detection and restoring the original locations
causes wrong relative $ORIGIN paths. We just use --deploy-deps-only now, which
keeps the binaries in place and correctly adjusts the relative $ORIGIN path.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-06 Tim Janik # b106ba3d84f
MISC: mkAppImage.sh: remove unused command
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-06 Tim Janik # 1696a12f5b4
Merge branch 'appimage-dependencies'
* appimage-dependencies:
MISC: mkAppImage.sh: reduce workarounds by using linuxdeploy --deploy-deps-only
MISC: mkAppImage.sh: add ELF dependencies for AnklangSynthEngine and gtk2wrap
This adds libFLAC.so, libogg.so, libopus.so and
libgdk-x11-2.0.so, libgtk-x11-2.0.so to the AppImage.
Closes #13.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-06 Tim Janik # 41dc0470ba8
MISC: mkAppImage.sh: reduce workarounds by using linuxdeploy --deploy-deps-only
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-06 Tim Janik # 4d0c085e4fc
MISC: mkAppImage.sh: add ELF dependencies for AnklangSynthEngine and gtk2wrap
This adds libFLAC.so, libogg.so, libopus.so and
libgdk-x11-2.0.so, libgtk-x11-2.0.so to the AppImage.
Closes #13.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-06 Tim Janik # 1b47b9ebaf9
Merge branch 'fix-imports'
* fix-imports:
UI: util.js: add missing Kbd import
UI: eslintrc.js: remove 'Util' global
UI: b/*.vue: add missing Util imports
UI: b/*.js: add missing Util imports
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-06 Tim Janik # 51b92566a42
UI: util.js: add missing Kbd import
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-06 Tim Janik # 2d5a3d0c435
UI: eslintrc.js: remove 'Util' global
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-06 Tim Janik # 0a29e8b1eeb
UI: b/*.vue: add missing Util imports
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-06 Tim Janik # ffe590b6bf4
UI: b/*.js: add missing Util imports
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-05 Tim Janik # c184b5e247e
Merge branch 'jsdoc-tsimport'
* jsdoc-tsimport:
UI: b/cliplist.js: jsdoc-tsimport-plugin does not support a blank after import
DOC: jsdocrc.json: use jsdoc-tsimport-plugin to parse tsc file imports
* Fix JsDoc choking on typescript import statements that import typed from
other JS files.
* See also: https://github.com/jsdoc/jsdoc/issues/1645#issuecomment-768293857
MISC: package.json.in: install jsdoc-tsimport-plugin
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-05 Tim Janik # 3474742bf94
UI: b/cliplist.js: jsdoc-tsimport-plugin does not support a blank after import
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-05 Tim Janik # 0632609fc9d
DOC: jsdocrc.json: use jsdoc-tsimport-plugin to parse tsc file imports
* Fix JsDoc choking on typescript import statements that import typed from
other JS files.
* See also: https://github.com/jsdoc/jsdoc/issues/1645#issuecomment-768293857
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-05 Tim Janik # 2238d9d1fca
MISC: package.json.in: install jsdoc-tsimport-plugin
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-05 Tim Janik # 819895ca3c7
Merge branch 'typescript-jsdoc-checks'
* typescript-jsdoc-checks:
UI: types.d.ts: allow App, Data, Shell Ase globals
UI: index.html: add importmap to allow lit module imports
UI: tsconfig.json: configure typescript checks, allow JS type checks + imports
UI: wrapper.js: add @param type
UI: little.js: add @ts-check, add types, add explicit exports for tsc
UI: b/app.js: add @ts-check and missing property decl
UI: b/cliplist.js: add @ts-check, missing imports, exports and initializations
UI: b/clipview.js: export class
UI: wrapper.js: add @ts-check and type annotations
UI: b/statusbar.vue: use material icons for info and instrument panel
UI: b/icon.js: fix material-icons size
UI: Makefile.mk: add 'tscheck', 'stylelint' and 'lint' rules
* add 'lint' dependency to run all of stylelint eslint tscheck
* add 'tscheck' rule to selectively run typescript checks
* add explicit 'stylelint' rule
* simplify lit.js rollup
* ui/vue.js: leave eslint cache alone
* install material-icons from npm
* cleanup eslint rule
* ui/rebuild: avoid bg jobs, no need to print dir in sub MAKE
MISC: package.json.in: cleanup serve and rebuild scripts
MISC: package.json.in: remove eslint script, use make eslint instead
MISC: package.json.in: install material-icons@1.13.6
Makefile.mk: whitespace fix
GITHUB: workflows/testing.yml: use git fetch --unshallow
Apparently `git fetch --shallow-since` does not work with the merge commit
created by PR checkouts. Using `git fetch --unshallow` might be less efficient
for regular branches, but at least works with trunk and PRs.
MISC: package.json.in: upgrade lit, electron, vue, postcss, etc
UI: b/pianoroll.js: fix indicator interacting with the cursor
MISC: package.json.in: install typescript to enable code checks
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-21 Tim Janik # 1c10d469755
UI: types.d.ts: allow App, Data, Shell Ase globals
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-23 Tim Janik # e5aa1bed447
UI: index.html: add importmap to allow lit module imports
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-21 Tim Janik # af624ac690d
UI: tsconfig.json: configure typescript checks, allow JS type checks + imports
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-21 Tim Janik # 82fe24f8536
UI: wrapper.js: add @param type
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-21 Tim Janik # d53e4e92147
UI: little.js: add @ts-check, add types, add explicit exports for tsc
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-21 Tim Janik # f0f107ff7ec
UI: b/app.js: add @ts-check and missing property decl
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-21 Tim Janik # fc235bf8cb8
UI: b/cliplist.js: add @ts-check, missing imports, exports and initializations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-23 Tim Janik # 3818a25e665
UI: b/clipview.js: export class
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-21 Tim Janik # 0232cab9e7f
UI: wrapper.js: add @ts-check and type annotations
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-20 Tim Janik # 8b0bdebc667
UI: b/statusbar.vue: use material icons for info and instrument panel
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-20 Tim Janik # 2b7b1e3c5d6
UI: b/icon.js: fix material-icons size
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-23 Tim Janik # e75f9c71c22
UI: Makefile.mk: add 'tscheck', 'stylelint' and 'lint' rules
* add 'lint' dependency to run all of stylelint eslint tscheck
* add 'tscheck' rule to selectively run typescript checks
* add explicit 'stylelint' rule
* simplify lit.js rollup
* ui/vue.js: leave eslint cache alone
* install material-icons from npm
* cleanup eslint rule
* ui/rebuild: avoid bg jobs, no need to print dir in sub MAKE
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-23 Tim Janik # ea84caf9cf0
MISC: package.json.in: cleanup serve and rebuild scripts
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-23 Tim Janik # e858e54f339
MISC: package.json.in: remove eslint script, use make eslint instead
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-20 Tim Janik # 75ba4af4d2e
MISC: package.json.in: install material-icons@1.13.6
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-21 Tim Janik # 2f2d168491f
Makefile.mk: whitespace fix
Signed-off-by: Tim Janik <timj@gnu.org>
2023-06-05 Tim Janik # eb345f86488
GITHUB: workflows/testing.yml: use git fetch --unshallow
Apparently `git fetch --shallow-since` does not work with the merge commit
created by PR checkouts. Using `git fetch --unshallow` might be less efficient
for regular branches, but at least works with trunk and PRs.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-20 Tim Janik # b37afbf7ca3
MISC: package.json.in: upgrade lit, electron, vue, postcss, etc
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-20 Tim Janik # ef3aa2cdac5
UI: b/pianoroll.js: fix indicator interacting with the cursor
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-20 Tim Janik # 3b112868412
MISC: package.json.in: install typescript to enable code checks
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-20 Tim Janik # 8459bbbd21c
Merge branch 'nightly-version'
* nightly-version:
MISC: Makefile.mk: update Nightly releases to avoid excessive emails
MISC: gh_delete_assets.sh: add script to delete all release assets via gh
README.md: update documentation links
MISC: version.sh: use 0.1.2.dev3 for development versions for proper ordering
Using .dev[0-9] postfixes properly sorts: 0.1.2 < 0.1.2.dev3 < 0.1.3
This works for sort -V, dpkg, rpm and PIP versions.
See: https://peps.python.org/pep-0440/#public-version-identifiers
MISC: Makefile.mk: fix typo
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-19 Tim Janik # 422c697a103
MISC: Makefile.mk: update Nightly releases to avoid excessive emails
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-19 Tim Janik # da785776a3d
MISC: gh_delete_assets.sh: add script to delete all release assets via gh
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-19 Tim Janik # 8258d16bd33
README.md: update documentation links
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-19 Tim Janik # a43f4533989
MISC: version.sh: use 0.1.2.dev3 for development versions for proper ordering
Using .dev[0-9] postfixes properly sorts: 0.1.2 < 0.1.2.dev3 < 0.1.3
This works for sort -V, dpkg, rpm and PIP versions.
See: https://peps.python.org/pep-0440/#public-version-identifiers
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-19 Tim Janik # 60f4433aaf8
MISC: Makefile.mk: fix typo
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-19 Tim Janik # 580cf66e8cb
Merge branch 'ci-build-updates'
* ci-build-updates:
MISC: Makefile.mk: use gh, keed *-dev version number for Nightly releases
* Use gh instead of hub to create releases
* Keep the development version number for Nightly releases
* Add a brief disclaimer about Nightly releases
MISC: version.sh: simplify, support --commit-date and $RELEASE_VERSION
GITHUB: workflows/testing.yml: add named step "Fetch last release tag"
GITHUB: workflows/testing.yml: fetch git history since last release tag
GITHUB: workflows/testing.yml: update ping deps
GITHUB: workflows/testing.yml: fix workflow names
GITHUB: workflows/testing.yml: run (full) docu upload on Ubuntu
GITHUB: workflows/testing.yml: run X11 tests on Arch
DOC: poxy.sh: include all Anklang docs in upload
MISC: Dockerfile.focal: install pip, doxygen and poxy
MISC: Dockerfile.focal: install twm for x11test
MISC: Dockerfile.arch: install libgtk3 and libnss for Electron
MISC: Dockerfile.arch: install xvfb ffmpeg twm for x11test-v
X11TEST: x11rec.sh: switch to using twm with auto placement
GITHUB: workflows/testing.yml: use full doc/ install dir as doc artifact
GITHUB: workflows/testing.yml: test clang builds under Ubuntu
GITHUB: workflows/testing.yml: remove unused env var from Arch build rule
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 3319cb97e14
MISC: Makefile.mk: use gh, keed *-dev version number for Nightly releases
* Use gh instead of hub to create releases
* Keep the development version number for Nightly releases
* Add a brief disclaimer about Nightly releases
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-19 Tim Janik # cda3bc08bb5
MISC: version.sh: simplify, support --commit-date and $RELEASE_VERSION
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-19 Tim Janik # c1af95d160e
GITHUB: workflows/testing.yml: add named step "Fetch last release tag"
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-19 Tim Janik # dc974125852
GITHUB: workflows/testing.yml: fetch git history since last release tag
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 8ce1904eac8
GITHUB: workflows/testing.yml: update ping deps
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 2d05f7f5b72
GITHUB: workflows/testing.yml: fix workflow names
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 472499ae9aa
GITHUB: workflows/testing.yml: run (full) docu upload on Ubuntu
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 52053917c19
GITHUB: workflows/testing.yml: run X11 tests on Arch
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 3f469f06b1f
DOC: poxy.sh: include all Anklang docs in upload
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 7e3b264f1e5
MISC: Dockerfile.focal: install pip, doxygen and poxy
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # f2a24f40bdb
MISC: Dockerfile.focal: install twm for x11test
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 8d5dd270c39
MISC: Dockerfile.arch: install libgtk3 and libnss for Electron
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 976664c6807
MISC: Dockerfile.arch: install xvfb ffmpeg twm for x11test-v
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-18 Tim Janik # 0a1af1504d4
X11TEST: x11rec.sh: switch to using twm with auto placement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-17 Tim Janik # ffc2450ae70
GITHUB: workflows/testing.yml: use full doc/ install dir as doc artifact
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-17 Tim Janik # 66c5ca99952
GITHUB: workflows/testing.yml: test clang builds under Ubuntu
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-17 Tim Janik # bc58c7bcb79
GITHUB: workflows/testing.yml: remove unused env var from Arch build rule
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-17 Tim Janik # 8404380bca9
Merge branch 'g++-fixes'
* g++-fixes:
ASE: cxxaux.hh: fix internal member typedef name
ASE: cxxaux.hh: use std::conditional_t<> for rebind::other, fix for g++-12
With template specializations, g++-11 and g++-12 error out with "explicit
specialization in non-namespace scope", so we use std::conditional_t<> which
seems to work with g++-12 and clnag++-15.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-17 Tim Janik # 43f9e6000b6
ASE: cxxaux.hh: fix internal member typedef name
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-17 Tim Janik # b3597e1840b
ASE: cxxaux.hh: use std::conditional_t<> for rebind::other, fix for g++-12
With template specializations, g++-11 and g++-12 error out with "explicit
specialization in non-namespace scope", so we use std::conditional_t<> which
seems to work with g++-12 and clnag++-15.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-17 Tim Janik # c0f01a01f3b
Merge branch 'libstdc++-13'
* libstdc++-13:
ASE: cxxaux.hh: patch up make_shared() to make libstdc++13 happy
* Move shared ptr allocator out of function scope (to allow template specialization)
* Add rebind<> template to shared ptr allocator which derives from std::allocator
* Specialize rebind<> so it yields the same allocator for only the shared ptr
value type
* This "fixes" two static assertions that were added in libstdc++13, see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72792#c12
ASE: cxxaux.hh: remove unused FriendAllocator<>
ASE: cxxaux.hh: fix missing <string> include
ASE: loop.hh: always use ASE_DEFINE_MAKE_SHARED() to implement make_shared()
ASE: formatter.hh: include cstdint for int32_t
ASE: clapplugin.cc: add missing braces for clap_event_transport_t initializer
UI: wrapper.js: add missing Util import
Makefile.mk: add simple rule to generate +compile_commands.json
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-16 Tim Janik # 869b2db1700
ASE: cxxaux.hh: patch up make_shared() to make libstdc++13 happy
* Move shared ptr allocator out of function scope (to allow template specialization)
* Add rebind<> template to shared ptr allocator which derives from std::allocator
* Specialize rebind<> so it yields the same allocator for only the shared ptr
value type
* This "fixes" two static assertions that were added in libstdc++13, see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72792#c12
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-16 Tim Janik # b84fac7de22
ASE: cxxaux.hh: remove unused FriendAllocator<>
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-16 Tim Janik # d21292fb01a
ASE: cxxaux.hh: fix missing <string> include
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-16 Tim Janik # 45968a57d67
ASE: loop.hh: always use ASE_DEFINE_MAKE_SHARED() to implement make_shared()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-16 Tim Janik # 322e1d61383
ASE: formatter.hh: include cstdint for int32_t
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-16 Tim Janik # c1bf69cdea5
ASE: clapplugin.cc: add missing braces for clap_event_transport_t initializer
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-11 Tim Janik # 99a6b6904e9
UI: wrapper.js: add missing Util import
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-11 Tim Janik # 0a7cb044686
Makefile.mk: add simple rule to generate +compile_commands.json
Signed-off-by: Tim Janik <timj@gnu.org>
2023-05-12 Tim Janik # 3819f90de19
Merge branch 'transportinfo', closes #5
* transportinfo:
ASE: clapplugin: provide transport information for the plugin
MISC: config-uname.mk: link -shared: allow undefined symbols with sanitizers
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-25 Stefan Westerfeld # 9a2e6d6d4d2
ASE: clapplugin: provide transport information for the plugin
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2023-02-06 Tim Janik # 35fec9e8898
MISC: config-uname.mk: link -shared: allow undefined symbols with sanitizers
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-15 Tim Janik # 54353a77847
Merge branch 'build-time-postcss'
* build-time-postcss:
UI: split styles into dark, grid, domstyles, mixins, shadow, globals SCSS files
globals.scss: styles for the LightDOM only
shadow.scss: styles only for ShadowDOM components
domstyles.scss: common styles for the LightDOM and ShadowDOM
grid.scss: provide <grid/> helpers
mixins.scss: base to customize components
dark.scss: basic theme, allow switching via import $themename_scss;
cursors/cursors.css: provide CSS variables for custom cursors
UI: cursors/cursors.css: fix quotes
UI: cursors/cursors.css: introduce --svg-cursor-* variables at :root{} scope
This is needed to make cursors.css actualy valid CSS.
UI: index.html: remove postfix and css validator, load vue-styles.css, fix preloads
UI: b/clipview.js: use zcam directly
UI: b/*.js: embed and load CSS via JsExtract
UI: b/positionview.vue: use $b-lcdscreen-fg, $b-lcdscreen-bg
UI: b/: fix $b-button-radius $b-button-radius $b-track-meter-gap $b-track-meter-thickness
UI: b/pianoroll.js: import grid.scss
UI: b/positionview.vue: use t-lcdscreen-fg, t-lcdscreen-bg
UI: b/trackview.js: add --track-meter-thickness, --track-meter-gap
UI: b/*.vue: use --button-radius
UI: b/*.js: use --button-radius
UI: b/*.js: use var(--button-radius);
UI: b/*.vue: use var(--button-radius);
UI: b/deviceeditor.vue, b/pro-group.vue: use --device-radius
UI: b/shell.vue: remove unused styles
UI: b/pianoroll.js: remove useless color assignment
UI: b/textinput.js: include mixins.scss to use SCSS variable
UI: b/menuseparator.js: include mixins.scss to use SCSS variable
UI: b/*.js: extend componenets from LitComponent instead of LitElement
UI: b/dialog.vue: inline box-shadow styling
UI: b/pianoroll.js: import grid helpers from grid.css
UI: b/menubar.vue: specify 'justify-content: space-between' directly
UI: b/pianoroll.js: rely on global cursors.css import
UI: startup.js: remove unused postcss import
UI: jsextract.js: document jsextract.js usage
UI: jsextract.js: extract JsExtract.scss`` marker snippets into *.jscss files
UI: little.js: document JsExtract usage
UI: little.js: fix .css URL construction to always have an extension
UI: little.js: load <link rel=stylesheet href=shadow.css> into shadow roots
UI: little.js: add ./shadow.css to LitComponent
UI: little.js: remove postcss
UI: little.js: export JsExtract with scss`` and fetch_css()
UI: little.js: add default define $themename_scss:dark.scss;
Also, disable csstree-validator which yields outdated warnings.
UI: little.js: load shadow.scss into all LitComponent elements
UI: little.js: LitComponent: always adopt shadow.css in createRenderRoot()
UI: little.js: CSS import: remove premature fetch + caching, always import all
UI: little.js: remove cursors/cursors.css from memorized imports
MISC: package.json.in: add stylelint
MISC: package.json.in: remove perfectionist-dfd
UI: sfc-compile.js: extract *.vuecss files
UI: Makefile.mk: remove csstree-validator and postcss browserify bundling
UI: Makefile.mk: run stylelint from output dir
UI: stylelintrc.cjs: add stylelint config
UI: Makefile.mk: extract, process and run stylelint on *.jscss files
UI: Makefile.mk: process *.vuecss files
UI: Makefile.mk: run stylelint on processed styles
UI: Makefile.mk: generate vue-styles.css
UI: Makefile.mk: remove Vue css rules
UI: Makefile.mk: take quoted cursor urls into account
UI: Makefile.mk: move theming into ui/dark.scss, build .css from .scss
UI: Makefile.mk: use postcss.js with --map and -i
UI: Makefile.mk: fix install pattern for ui/b/
UI: postcss.js: support stdout output
UI: postcss.js: fix exit code by re-throwing errors
UI: postcss.js: add -Dvar=value for predefined variables
UI: postcss.js: add -C <working-dir> to find imports
UI: postcss.js: directly print PostCSS exceptions to provide useful stacktraces
UI: postcss.js: support fetching imports from network
UI: postcss.js: remove perfectionist-dfd, auto-import *.scss unless -i is given
UI: postcss.js: add zlerp() CSS function
UI: postcss.js: add zmod4() CSS function
UI: postcss.js: make source map configurable
UI: colors.js: add zlerp() for color interpolation
UI: colors.js: fix missing ZCAM attributes
UI: colors.js: add zmod4() to debug ZCAM attributes for colors
UI: colors.js: support missing first zmod() color argument
DOC: jsdoc2md.js: fix @file docu being ignored in some cases
DOC: jsdoc2md.js: add anchor to constants
ASE: websocket.cc: allow caching of duplicate requests within 1 second
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 87f0ac96ba1
UI: split styles into dark, grid, domstyles, mixins, shadow, globals SCSS files
globals.scss: styles for the LightDOM only
shadow.scss: styles only for ShadowDOM components
domstyles.scss: common styles for the LightDOM and ShadowDOM
grid.scss: provide <grid/> helpers
mixins.scss: base to customize components
dark.scss: basic theme, allow switching via import $themename_scss;
cursors/cursors.css: provide CSS variables for custom cursors
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # bab03578f1e
UI: cursors/cursors.css: fix quotes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 36206835110
UI: cursors/cursors.css: introduce --svg-cursor-* variables at :root{} scope
This is needed to make cursors.css actualy valid CSS.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 9fdba16a2c8
UI: index.html: remove postfix and css validator, load vue-styles.css, fix preloads
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # 45077bab40d
UI: b/clipview.js: use zcam directly
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-12 Tim Janik # b8e041d7e72
UI: b/*.js: embed and load CSS via JsExtract
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # a132b29ec22
UI: b/positionview.vue: use $b-lcdscreen-fg, $b-lcdscreen-bg
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # 8e585f06dc3
UI: b/: fix $b-button-radius $b-button-radius $b-track-meter-gap $b-track-meter-thickness
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # 56ea9df5982
UI: b/pianoroll.js: import grid.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-09 Tim Janik # 96ca0152750
UI: b/positionview.vue: use t-lcdscreen-fg, t-lcdscreen-bg
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-09 Tim Janik # ce37b44ecfe
UI: b/trackview.js: add --track-meter-thickness, --track-meter-gap
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-09 Tim Janik # 163e9ae31c1
UI: b/*.vue: use --button-radius
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-09 Tim Janik # 25745139c1b
UI: b/*.js: use --button-radius
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-09 Tim Janik # 9e17acac2b4
UI: b/*.js: use var(--button-radius);
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-09 Tim Janik # cb34d9453fe
UI: b/*.vue: use var(--button-radius);
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 16e6e4cdb42
UI: b/deviceeditor.vue, b/pro-group.vue: use --device-radius
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 5573be91c36
UI: b/shell.vue: remove unused styles
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # f6679b29b2f
UI: b/pianoroll.js: remove useless color assignment
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 1fc55ff022e
UI: b/textinput.js: include mixins.scss to use SCSS variable
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 3e5d9f60953
UI: b/menuseparator.js: include mixins.scss to use SCSS variable
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 8a93e44c751
UI: b/*.js: extend componenets from LitComponent instead of LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 616f298d02c
UI: b/dialog.vue: inline box-shadow styling
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 9d07a671200
UI: b/pianoroll.js: import grid helpers from grid.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 79949a4b836
UI: b/menubar.vue: specify 'justify-content: space-between' directly
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # ee2d9527454
UI: b/pianoroll.js: rely on global cursors.css import
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # 052a25497d5
UI: startup.js: remove unused postcss import
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-13 Tim Janik # be27b7c5730
UI: jsextract.js: document jsextract.js usage
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # 7ddf779f58b
UI: jsextract.js: extract JsExtract.scss`` marker snippets into *.jscss files
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-13 Tim Janik # 81643f036e7
UI: little.js: document JsExtract usage
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-13 Tim Janik # cce600c3cb2
UI: little.js: fix .css URL construction to always have an extension
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # 9f347365822
UI: little.js: load <link rel=stylesheet href=shadow.css> into shadow roots
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # c75e5b43664
UI: little.js: add ./shadow.css to LitComponent
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-12 Tim Janik # 61dd2d5cf0c
UI: little.js: remove postcss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # 52438fd7879
UI: little.js: export JsExtract with scss`` and fetch_css()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # 2d279bff1c0
UI: little.js: add default define $themename_scss:dark.scss;
Also, disable csstree-validator which yields outdated warnings.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # 55f1822d510
UI: little.js: load shadow.scss into all LitComponent elements
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # bc0d80f1032
UI: little.js: LitComponent: always adopt shadow.css in createRenderRoot()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # cbbeedbdea8
UI: little.js: CSS import: remove premature fetch + caching, always import all
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 5c20d03c956
UI: little.js: remove cursors/cursors.css from memorized imports
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # 4153810ccd0
MISC: package.json.in: add stylelint
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # 793f6641533
MISC: package.json.in: remove perfectionist-dfd
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # 3465de3f4bc
UI: sfc-compile.js: extract *.vuecss files
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # b83a578cce5
UI: Makefile.mk: remove csstree-validator and postcss browserify bundling
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # 328cbef1d99
UI: Makefile.mk: run stylelint from output dir
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # c853e9f8f9e
UI: stylelintrc.cjs: add stylelint config
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # 18372f9acea
UI: Makefile.mk: extract, process and run stylelint on *.jscss files
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # ccc2cb5921a
UI: Makefile.mk: process *.vuecss files
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # 8ce1002b8a0
UI: Makefile.mk: run stylelint on processed styles
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # edf5a7869cd
UI: Makefile.mk: generate vue-styles.css
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # 6799095c726
UI: Makefile.mk: remove Vue css rules
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # aa2b1b7b31d
UI: Makefile.mk: take quoted cursor urls into account
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # ffb6ab4af00
UI: Makefile.mk: move theming into ui/dark.scss, build .css from .scss
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-07 Tim Janik # 9b1d0be5714
UI: Makefile.mk: use postcss.js with --map and -i
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-11 Tim Janik # ae367420547
UI: Makefile.mk: fix install pattern for ui/b/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-12 Tim Janik # 0df9528b09e
UI: postcss.js: support stdout output
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-10 Tim Janik # cc6556f8545
UI: postcss.js: fix exit code by re-throwing errors
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-09 Tim Janik # 63d5e0f0f2d
UI: postcss.js: add -Dvar=value for predefined variables
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-09 Tim Janik # 2a2440a2606
UI: postcss.js: add -C <working-dir> to find imports
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 2a0a362b964
UI: postcss.js: directly print PostCSS exceptions to provide useful stacktraces
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 98ffe357b4e
UI: postcss.js: support fetching imports from network
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 6f9d4ad03d7
UI: postcss.js: remove perfectionist-dfd, auto-import *.scss unless -i is given
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # d64ab2f3bc0
UI: postcss.js: add zlerp() CSS function
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # b57685f533b
UI: postcss.js: add zmod4() CSS function
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-07 Tim Janik # b0660c2b5af
UI: postcss.js: make source map configurable
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 59cc926fa12
UI: colors.js: add zlerp() for color interpolation
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 63c52192ecc
UI: colors.js: fix missing ZCAM attributes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 150cdfcaa3b
UI: colors.js: add zmod4() to debug ZCAM attributes for colors
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # fa1b8e9ed8f
UI: colors.js: support missing first zmod() color argument
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-13 Tim Janik # 4f3638967da
DOC: jsdoc2md.js: fix @file docu being ignored in some cases
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-12 Tim Janik # 92171d5e8a3
DOC: jsdoc2md.js: add anchor to constants
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # b0f1f9ee0e1
ASE: websocket.cc: allow caching of duplicate requests within 1 second
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-08 Tim Janik # 6f6d3be160c
Merge branch 'reactive-render'
* reactive-render:
UI: startup.js: rerender all LitElements and known Vue components on resize
UI: little.js: export LitComponent, which has reactive render() and updated()
UI: little.js: add lit_update_all()
UI: wrapper.js: improve error message for missing getters
UI: wrapper.js: support reactive_wrapper() callbacks for wrap_ase_object() fields
UI: wrapper.js: implement define_reactive() and reactive_wrapper()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-02-15 Tim Janik # f5586337cb5
UI: startup.js: rerender all LitElements and known Vue components on resize
Signed-off-by: Tim Janik <timj@gnu.org>
2023-02-20 Tim Janik # 30b93528ade
UI: little.js: export LitComponent, which has reactive render() and updated()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-02-15 Tim Janik # 685764d1225
UI: little.js: add lit_update_all()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-07 Tim Janik # 3d0df2434f2
UI: wrapper.js: improve error message for missing getters
Signed-off-by: Tim Janik <timj@gnu.org>
2023-02-19 Tim Janik # 86c78a58c70
UI: wrapper.js: support reactive_wrapper() callbacks for wrap_ase_object() fields
Signed-off-by: Tim Janik <timj@gnu.org>
2023-02-07 Tim Janik # 9bb10d1d274
UI: wrapper.js: implement define_reactive() and reactive_wrapper()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-05 Tim Janik # dc2f6401438
Merge branch 'jsdoc-search'
* jsdoc-search:
DOC: poxy.sh: ignore case during search
UI: util.js: add PointerDrag comment
DOC: poxy.sh: extend searchdata-v2.js with token list from JS docs
DOC: poxy.sh: avoid fake 'Export' prefix for JS symbols
DOC: jsdoc2md.js: use <a/> for anchors, add data-4search to anchors
The old empty span anchors could be removed by some HTML processors.
DOC: poxy.sh: jsdoc2md will now directly generate markdown from JS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-05 Tim Janik # 2283caed938
DOC: poxy.sh: ignore case during search
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-05 Tim Janik # 8c2b0be44df
UI: util.js: add PointerDrag comment
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-05 Tim Janik # 308e6784b5e
DOC: poxy.sh: extend searchdata-v2.js with token list from JS docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-05 Tim Janik # 893a7780254
DOC: poxy.sh: avoid fake 'Export' prefix for JS symbols
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-05 Tim Janik # 168392065d6
DOC: jsdoc2md.js: use <a/> for anchors, add data-4search to anchors
The old empty span anchors could be removed by some HTML processors.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-03 Tim Janik # 2db150b1c2f
DOC: poxy.sh: jsdoc2md will now directly generate markdown from JS
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-03 Tim Janik # 63bd26e08e8
Merge branch 'api-docs'
* api-docs:
GITHUB: workflows/testing.yml: rename CI jobs
GITHUB: workflows/testing.yml: add step to build and upload API docs
MISC: Dockerfile.arch: provide doxygen openssh and poxy via pip
MISC: Dockerfile.arch: first update archlinux-keyring
This works around an outdated keyring in the archlinux:latest docker image.
MISC: dbuild.sh: add support for the docker -p <PORTS> option
DOC: poxy.sh: setup AUTHOR/COMITTER EMAIL/NAME, GIT_SSH_COMMAND for uploads
DOC: poxy.sh: provide NODE_PATH
DOC: poxy.sh: add program doc/ dir to documentation output
DOC: poxy.sh: add README as main index page
DOC: poxy.sh: add project version to docs
DOC: poxy.sh: upload to the `publish` branch
DOC: poxy.sh: support conditional builds
DOC: poxy.sh: move build commands into poxy_build function
DOC: poxy.sh: add -u for upload
DOC: poxy.sh: support accesskey="f" for Search
DOC: poxy.sh: support -s to serve html/ contents
DOC: poxy.sh: add NEWS.md
DOC: poxy.sh: add ch-scripting.md to UI docs
DOC: poxy.sh: generate API reference documentation with Poxy
UI: Makefile.mk: remove rules to build JS docs
DOC: Makefile.mk: build scripting docs from ui/host.js and ch-scripting.md
DOC: copyright.ini: fix doc/jsdocrc.json path
DOC: ch-scripting.md: move here from ui/
DOC: jsdoc2md.js: generate markdown from *.js via jsdoc-api
DOC: jsdocrc.json: configure JsDoc to use doc/jsdoc-slashes.js
DOC: jsdoc-slashes.js: move here from ui/slashcomment.js
DOC: jsdoc2md.js: guard aganst doclets with non-string name
I.e. doclet.meta.code.name can be an Integer.
MISC: package.json.in: add jsdoc-api
UI: b/shell.vue: add basic docs
ASE: testing.hh: document Test namespace
ASE: api.hh: add docu comment to Ase namespace
README.md: fix github workflow badge URL
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-03 Tim Janik # 11b1028f17e
GITHUB: workflows/testing.yml: rename CI jobs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-03 Tim Janik # 489355747e7
GITHUB: workflows/testing.yml: add step to build and upload API docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-03 Tim Janik # 4c276e336af
MISC: Dockerfile.arch: provide doxygen openssh and poxy via pip
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-03 Tim Janik # 2220047ce35
MISC: Dockerfile.arch: first update archlinux-keyring
This works around an outdated keyring in the archlinux:latest docker image.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-03 Tim Janik # d5d3acc0b1d
MISC: dbuild.sh: add support for the docker -p <PORTS> option
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-03 Tim Janik # 64d95784653
DOC: poxy.sh: setup AUTHOR/COMITTER EMAIL/NAME, GIT_SSH_COMMAND for uploads
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 3ea9a136889
DOC: poxy.sh: provide NODE_PATH
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # f1b71676288
DOC: poxy.sh: add program doc/ dir to documentation output
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 1598bd2f32b
DOC: poxy.sh: add README as main index page
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 6b909b22cb3
DOC: poxy.sh: add project version to docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 80811639d26
DOC: poxy.sh: upload to the `publish` branch
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 9080c871902
DOC: poxy.sh: support conditional builds
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 99d24aeb458
DOC: poxy.sh: move build commands into poxy_build function
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # a04b3ff97d3
DOC: poxy.sh: add -u for upload
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # c4560ee77b8
DOC: poxy.sh: support accesskey="f" for Search
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # 51054e5c80e
DOC: poxy.sh: support -s to serve html/ contents
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # 408895c551c
DOC: poxy.sh: add NEWS.md
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # 8f50c244845
DOC: poxy.sh: add ch-scripting.md to UI docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # 399b548b194
DOC: poxy.sh: generate API reference documentation with Poxy
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 98517e0ccd1
UI: Makefile.mk: remove rules to build JS docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 7b38ae37a9a
DOC: Makefile.mk: build scripting docs from ui/host.js and ch-scripting.md
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-03 Tim Janik # 831175a8190
DOC: copyright.ini: fix doc/jsdocrc.json path
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # 2c3983df6f0
DOC: ch-scripting.md: move here from ui/
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # c7337194b1b
DOC: jsdoc2md.js: generate markdown from *.js via jsdoc-api
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # aa1bd331eea
DOC: jsdocrc.json: configure JsDoc to use doc/jsdoc-slashes.js
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 06d86c73e3a
DOC: jsdoc-slashes.js: move here from ui/slashcomment.js
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # 6dae0105e90
DOC: jsdoc2md.js: guard aganst doclets with non-string name
I.e. doclet.meta.code.name can be an Integer.
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 14dc3b51cd0
MISC: package.json.in: add jsdoc-api
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # 9f27dbff4a8
UI: b/shell.vue: add basic docs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # 7325c07a749
ASE: testing.hh: document Test namespace
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-01 Tim Janik # da7c4b82f0a
ASE: api.hh: add docu comment to Ase namespace
Signed-off-by: Tim Janik <timj@gnu.org>
2023-03-02 Tim Janik # 0ccb32280fa
README.md: fix github workflow badge URL
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-10 Tim Janik # 3e64716fc0b
Merge branch 'lit-tracklist'
* lit-tracklist:
UI: b/tracklist.js: hide HEADER and FOOTER
UI: b/tracklist.js: add scrollshadow at the top
UI: theme.scss: remove fragile parts of scrollbar styling
UI: b/tracklist.js: fix layout for few tracks
UI: b/tracklist.js: support x/y scrolling
UI: b/cliplist.js: clipview children must not shrink
UI: b/tracklist.js: port <b-tracklist/> to LitElement
UI: b/trackview.js: increase width of level meters
UI: b/clipview.js: use track.$id for colorization
UI: b/cliplist.js: fix setting of b-clipview.track property
UI: b/app.js: provide App.project
ASE: object.cc: skip notifications for objects without shared_ptr
ASE: api.hh: rename and notify Project.all_tracks() (former list_tracks)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-10 Tim Janik # 1235e756b8c
UI: b/tracklist.js: hide HEADER and FOOTER
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-10 Tim Janik # 7ee9c2024b8
UI: b/tracklist.js: add scrollshadow at the top
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-10 Tim Janik # 24cc795de10
UI: theme.scss: remove fragile parts of scrollbar styling
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-09 Tim Janik # 98d7fa9bddd
UI: b/tracklist.js: fix layout for few tracks
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-09 Tim Janik # fde90a0b7d5
UI: b/tracklist.js: support x/y scrolling
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-09 Tim Janik # 3c981a559d3
UI: b/cliplist.js: clipview children must not shrink
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-08 Tim Janik # 7782f0c8fd0
UI: b/tracklist.js: port <b-tracklist/> to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-09 Tim Janik # 8b7af737041
UI: b/trackview.js: increase width of level meters
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-09 Tim Janik # 20d7786c797
UI: b/clipview.js: use track.$id for colorization
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-08 Tim Janik # 91a508be909
UI: b/cliplist.js: fix setting of b-clipview.track property
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-08 Tim Janik # b23598b41f8
UI: b/app.js: provide App.project
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-08 Tim Janik # 9ff4d9598c7
ASE: object.cc: skip notifications for objects without shared_ptr
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-08 Tim Janik # 69e2c656e8e
ASE: api.hh: rename and notify Project.all_tracks() (former list_tracks)
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-08 Tim Janik # 529af30208a
Merge branch 'lit-trackview'
* lit-trackview:
UI: b/trackview.js: render sound level meter from telemetry
UI: b/cliplist.js: minor formatting
ASE: track.cc: add dbspl0 and dbspl1 to telemetry
ASE: combo: add sound level probing in dB to AudioChain
ASE: datautils: add square_max()
ASE: midilib.cc: reserve space to avoid malloc
ASE: datautils: add square_sum() for FPU floats
ASE: cxxaux.hh: add ASE_ALIGNED16() and ALIGNMENT16()
UI: b/app.js: maintain App.current_track, notify <b-trackview/> accordingly
ASE: track: support midi_channel changes
UI: b/*.js: fix ${ref} syntax
UI: b/trackview.js: port <b-trackview/> to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # 39be2379aaf
UI: b/trackview.js: render sound level meter from telemetry
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # a8cddf7aaad
UI: b/cliplist.js: minor formatting
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # 596ef0c3ccc
ASE: track.cc: add dbspl0 and dbspl1 to telemetry
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # 965eff82054
ASE: combo: add sound level probing in dB to AudioChain
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # 1233ade6143
ASE: datautils: add square_max()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # 24eb9de22e8
ASE: midilib.cc: reserve space to avoid malloc
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # 1626260fa4a
ASE: datautils: add square_sum() for FPU floats
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # 09653a7eeca
ASE: cxxaux.hh: add ASE_ALIGNED16() and ALIGNMENT16()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-06 Tim Janik # e7e625ef207
UI: b/app.js: maintain App.current_track, notify <b-trackview/> accordingly
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-06 Tim Janik # 5409ef9b627
ASE: track: support midi_channel changes
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-06 Tim Janik # 82bf641c103
UI: b/*.js: fix ${ref} syntax
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-06 Tim Janik # e2a8b22c5b8
UI: b/trackview.js: port <b-trackview/> to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-08 Tim Janik # b1b949d98c6
Merge branch 'lit-editable'
* lit-editable:
UI: b/trackview.vue: adjust b-editable use
UI: b/positionview.vue: adjust property editing
ASE: project.cc: add missing notifications
UI: b/editable.js: port <b-editable/> to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-06 Tim Janik # 2fbb3fa0307
UI: b/trackview.vue: adjust b-editable use
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-06 Tim Janik # 744d7788bc9
UI: b/positionview.vue: adjust property editing
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-06 Tim Janik # 41397b2bc90
ASE: project.cc: add missing notifications
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-06 Tim Janik # abd97d8e861
UI: b/editable.js: port <b-editable/> to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # 27242835b05
Merge branch 'lit-cliplist'
* lit-cliplist:
UI: b/partlist.vue: disable old code
DOC: Makefile.mk: add docs from b/cliplist.md
ASE: api.hh: rename Track.launcher_clips() and ass 'notify:launcher_clips'
UI: b/statusbar.vue: use Util.find_element_from_point()
UI: b/shell.vue: determine F1 anchor from find_element_from_point()
UI: util.js: add find_element_from_point(), supporting shadow DOMs
UI: b/clipview.js: fix properties
UI: b/cliplist.js: support F1 help for ClipList
UI: b/cliplist.js: port to LitElement
UI: b/app.js: add App.zmove_last()
UI: b/pianoroll.js: minor rename
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-06 Tim Janik # de7d5e37fa5
UI: b/partlist.vue: disable old code
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # f6107405a2f
DOC: Makefile.mk: add docs from b/cliplist.md
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # d60ec0e6bd8
ASE: api.hh: rename Track.launcher_clips() and ass 'notify:launcher_clips'
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # 1b56ddd001c
UI: b/statusbar.vue: use Util.find_element_from_point()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # d237707800c
UI: b/shell.vue: determine F1 anchor from find_element_from_point()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # 7adfe0a48e4
UI: util.js: add find_element_from_point(), supporting shadow DOMs
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # 444ac2270fc
UI: b/clipview.js: fix properties
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # 39176e52091
UI: b/cliplist.js: support F1 help for ClipList
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # 7add4cd4e83
UI: b/cliplist.js: port to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # 3f409edffb9
UI: b/app.js: add App.zmove_last()
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-02 Tim Janik # f94e33a2355
UI: b/pianoroll.js: minor rename
Signed-off-by: Tim Janik <timj@gnu.org>
2023-01-07 Tim Janik # ee3d1f0a659
Merge branch 'lit-clipview'
* lit-clipview:
ASE: api.hh: add Clip.all_notes read-only property
Enable property caching UI code for fetching notes and updates.
UI: b/pianoroll.js: use Util.wrap_ase_object() to fetch Clip notes
UI: b/piano-ctrl.js: use Util.wrap_ase_object() to fetch Clip notes
UI: b/clipview.js: use wrap_ase_object() to access Clip properties
UI: util.js: export the wrapper.js API
UI: wrapper.js: add AseObject wrapper to cache properties
UI: startup.js: add class name to GC debug messages
UI: b/shell.vue: provide Shell.piano_roll
UI: Makefile.mk: use Vue production build unless MODE=debug
This avoids massive memory leaks of Vue components.
UI: Makefile.mk: fix missing dependency
MISC: package.json.in: upgrade to vue-3.2.45 and lit-2.5.0
UI: Makefile.mk: use 'npm --prefer-offline' only when rebuilding
MISC: config-checks.mk: do not force '--prefer-offline' on npm
MISC: config-uname.mk: define __UIDEBUG__=1 for MODE=debug
UI: b/pianoroll.js: remove old debug()
UI: b/contextmenu.js: remove useless performance hog
UI: b/tracklist.vue: add new track on dblclick on track list only
UI: b/pianoroll.js: fix stale play cursor on clip change
UI: b/clipview.js: port BClipView to LitElement
UI: b/: use Track.list_launcher_clips()
ASE: api.hh. track: rename Track.list_launcher_clips()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-30 Tim Janik # fb885704e85
ASE: api.hh: add Clip.all_notes read-only property
Enable property caching UI code for fetching notes and updates.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-30 Tim Janik # 4ac4a3456a3
UI: b/pianoroll.js: use Util.wrap_ase_object() to fetch Clip notes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # b75f6f956f0
UI: b/piano-ctrl.js: use Util.wrap_ase_object() to fetch Clip notes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # bb0b81649d7
UI: b/clipview.js: use wrap_ase_object() to access Clip properties
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # 76c40d785d9
UI: util.js: export the wrapper.js API
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # d2384fe6775
UI: wrapper.js: add AseObject wrapper to cache properties
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # 11b2ba5c7f9
UI: startup.js: add class name to GC debug messages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # 2978c354fdd
UI: b/shell.vue: provide Shell.piano_roll
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # 19527ffb905
UI: Makefile.mk: use Vue production build unless MODE=debug
This avoids massive memory leaks of Vue components.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # 9cd3b5f4a6b
UI: Makefile.mk: fix missing dependency
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # dd0856fb300
MISC: package.json.in: upgrade to vue-3.2.45 and lit-2.5.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # bc2afeba718
UI: Makefile.mk: use 'npm --prefer-offline' only when rebuilding
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # 3f302976dbd
MISC: config-checks.mk: do not force '--prefer-offline' on npm
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-31 Tim Janik # fb3045dc115
MISC: config-uname.mk: define __UIDEBUG__=1 for MODE=debug
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-29 Tim Janik # 4de4cb9b427
UI: b/pianoroll.js: remove old debug()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-29 Tim Janik # f28b24716d4
UI: b/contextmenu.js: remove useless performance hog
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-29 Tim Janik # ae797bea93a
UI: b/tracklist.vue: add new track on dblclick on track list only
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-29 Tim Janik # 770659fca1f
UI: b/pianoroll.js: fix stale play cursor on clip change
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-29 Tim Janik # ca1c59dacc7
UI: b/clipview.js: port BClipView to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-28 Tim Janik # 7ae2170607d
UI: b/: use Track.list_launcher_clips()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-28 Tim Janik # 985c76485ba
ASE: api.hh. track: rename Track.list_launcher_clips()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-28 Tim Janik # ea7b53b08c2
Merge branch 'fix-embed-fd-hangs'
* fix-embed-fd-hangs:
ASE: clapplugin.cc: map PollFD::NVAL to CLAP_POSIX_FD_ERROR
ASE: loop.*: support POLLWRBAND, always pass on POLLNVAL, POLLERR and POLLHUP
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-27 Tim Janik # 3d5bc2c7fa3
ASE: clapplugin.cc: map PollFD::NVAL to CLAP_POSIX_FD_ERROR
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-27 Tim Janik # e56033921bb
ASE: loop.*: support POLLWRBAND, always pass on POLLNVAL, POLLERR and POLLHUP
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-28 Tim Janik # 215830f0ae0
Merge branch 'build-fixes'
* build-fixes:
UI: Makefile.mk: add missing dependency from ui/colors.js on ui/zcam-js.mjs
This fixes postcss errors due to missing zcam-js.mjs.
X11TEST: play-notes.json: adjust simlpe UI test to UI path changes
UI: cursors/cursors.css: add MPL-2 copyright
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-27 Tim Janik # 975586501ea
UI: Makefile.mk: add missing dependency from ui/colors.js on ui/zcam-js.mjs
This fixes postcss errors due to missing zcam-js.mjs.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-27 Tim Janik # df498f8bed5
X11TEST: play-notes.json: adjust simlpe UI test to UI path changes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-23 Tim Janik # 6fa62720971
UI: cursors/cursors.css: add MPL-2 copyright
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-22 Tim Janik # 11d3cc23e38
Merge branch 'documentation-sections'
* documentation-sections:
DOC: Makefile.mk: link to and search for ui/cursors/
UI: b/pianoroll.js: add data-f1="#piano-roll" to link F1 to piano roll manual
UI: b/shell.vue: popup manual on 'F1', support anchors via data-f1="#anchor"
UI: kbd.js: allow event.keyCode filtering
DOC: Makefile.mk: include docs from pianoroll and piano-ctrl
DOC: ch-editing.md: add brief editing introduction
UI: Makefile.mk: extract Markdown sections from JS files into doc/b/*.md
UI: xbcomments.js: extract Markdown sections from JavaScript comment blocks
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-22 Tim Janik # 4c5af4a673e
DOC: Makefile.mk: link to and search for ui/cursors/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # dc16d507a60
UI: b/pianoroll.js: add data-f1="#piano-roll" to link F1 to piano roll manual
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 1e659a6164e
UI: b/shell.vue: popup manual on 'F1', support anchors via data-f1="#anchor"
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # b6193be4497
UI: kbd.js: allow event.keyCode filtering
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # d6d63585693
DOC: Makefile.mk: include docs from pianoroll and piano-ctrl
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # dfc53bb11f6
DOC: ch-editing.md: add brief editing introduction
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 5ef56c08375
UI: Makefile.mk: extract Markdown sections from JS files into doc/b/*.md
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 358057f3df4
UI: xbcomments.js: extract Markdown sections from JavaScript comment blocks
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-22 Tim Janik # 57726250c66
Merge branch 'piano-roll-and-shell-grid-layout'
* piano-roll-and-shell-grid-layout:
UI: b/pianoroll.js: document piano-roll use and fix hover handling
UI: b/piano-ctrl.js: add convenient tool registration helpers
UI: eslintrc.js: allow empty blocks
UI: util.js: allow PointerDrag cleanup handler
UI: b/pianoroll.js: fix scroll and select notes_canvas tool on hover
UI: b/piano-ctrl.js: implement note resize tool
UI: b/piano-ctrl.js: implement select, paint, erase as dedicated tools
UI: b/pianoroll.js: context menu cleanup
UI: b/clipview.vue: let the canvas fill parentElement
UI: styles.scss, startup.js: turn HFlex & VFlex into LitElement
UI: b/pianoroll.js: use one source for DPR calculations
UI: b/pianoroll.js: properly align toolmenu button
UI: b/pianoroll.js: fix background color
UI: b/pianoroll.js: add pianorollmenu items
UI: b/treeselector-item.vue: fix 'event' reference
UI: b/knob.js: fix 'event' reference
UI: b/editable.vue: fix 'event' reference
UI: eslintrc.js: warn if a global 'event' is referenced
UI: b/piano-ctrl.js: fix merging of selection changes with note modifications
UI: b/pianoroll.js: handle menu hotkeys
UI: b/contextmenu.js: fix unmapping in map_kbd_hotkeys()
UI: kbd.js: handle document.activeElement == null
UI: b/piano-ctrl.js: stop event if a key was handled
UI: b/pianoroll.js: grab focus
UI: b/piano-ctrl.js: adjust piano_roll access patterns
UI: b/pianoroll.js: provide .srect property, repaint upon changes
UI: b/pianoroll.js: handle tool menu and hook up piano-ctrl
UI: theme.scss: move scrollbar styling here to work inside shadow DOMs
UI: startup.js: turn CGrid into a LitElement to work inside shadow DOMs
UI: b/pianoroll.js: work around FireFox exception when ctx.font is assigned
UI: b/shell.vue: allow notification callbacks on get_note_cache()
UI: b/statusbar.vue: use elementsFromPoint() to find Tips inside shadowRoots
UI: b/contextmenu.js: support @activate="handler" notifications
UI: b/menubar.vue: move comment to work around Vue's template child handling
UI: b/knob.js: ignore hscrolls to allow horizontal device panel scrolling
UI: b/devicepanel.vue: adjust to b-shell grid layout
UI: b/pianoroll.js: fix scrollbar style
UI: b/pianoroll.js: add indicator to show the current tick
UI: b/shell.vue: use <grid/> for the basic layout
UI: b/pianoroll.js: implement <b-piano-roll/> as LitElement
UI: b/pianoroll.js: add skeleton
UI: b/piano-roll.vue: remove Vue based piano-roll
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-22 Tim Janik # 7a87bb144de
UI: b/pianoroll.js: document piano-roll use and fix hover handling
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-22 Tim Janik # e9da8527d54
UI: b/piano-ctrl.js: add convenient tool registration helpers
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-17 Tim Janik # 8f51c57ede2
UI: eslintrc.js: allow empty blocks
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-17 Tim Janik # 95f07858bda
UI: util.js: allow PointerDrag cleanup handler
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-17 Tim Janik # c53223def04
UI: b/pianoroll.js: fix scroll and select notes_canvas tool on hover
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-17 Tim Janik # 94b2f1f64d6
UI: b/piano-ctrl.js: implement note resize tool
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-17 Tim Janik # 02f805bb67a
UI: b/piano-ctrl.js: implement select, paint, erase as dedicated tools
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-16 Tim Janik # 4ba1a541279
UI: b/pianoroll.js: context menu cleanup
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-15 Tim Janik # 0b46cf3ec17
UI: b/clipview.vue: let the canvas fill parentElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-15 Tim Janik # 376eb776abb
UI: styles.scss, startup.js: turn HFlex & VFlex into LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-15 Tim Janik # 8f9be54be32
UI: b/pianoroll.js: use one source for DPR calculations
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-15 Tim Janik # 7bce614e6e8
UI: b/pianoroll.js: properly align toolmenu button
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-15 Tim Janik # 6ff7be9355d
UI: b/pianoroll.js: fix background color
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 665b41bf97c
UI: b/pianoroll.js: add pianorollmenu items
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 4ff98923812
UI: b/treeselector-item.vue: fix 'event' reference
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 541e6ba8ae3
UI: b/knob.js: fix 'event' reference
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 78a722bf190
UI: b/editable.vue: fix 'event' reference
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # a44d2999589
UI: eslintrc.js: warn if a global 'event' is referenced
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 55c6868e7ca
UI: b/piano-ctrl.js: fix merging of selection changes with note modifications
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # c42dba6efb7
UI: b/pianoroll.js: handle menu hotkeys
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 4a518284a17
UI: b/contextmenu.js: fix unmapping in map_kbd_hotkeys()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 44374741979
UI: kbd.js: handle document.activeElement == null
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # eeb56496dc4
UI: b/piano-ctrl.js: stop event if a key was handled
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 2b1804d297d
UI: b/pianoroll.js: grab focus
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 2d93ac9e528
UI: b/piano-ctrl.js: adjust piano_roll access patterns
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 24bb41cbc73
UI: b/pianoroll.js: provide .srect property, repaint upon changes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 376b7c84334
UI: b/pianoroll.js: handle tool menu and hook up piano-ctrl
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 7e05c33e440
UI: theme.scss: move scrollbar styling here to work inside shadow DOMs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # aa6020a52d2
UI: startup.js: turn CGrid into a LitElement to work inside shadow DOMs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # c37ec9e0407
UI: b/pianoroll.js: work around FireFox exception when ctx.font is assigned
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 1ae108ce0d5
UI: b/shell.vue: allow notification callbacks on get_note_cache()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 90092ccb186
UI: b/statusbar.vue: use elementsFromPoint() to find Tips inside shadowRoots
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 5b9e6a73d0b
UI: b/contextmenu.js: support @activate="handler" notifications
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # bebdd562dd2
UI: b/menubar.vue: move comment to work around Vue's template child handling
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # d3227fcf06a
UI: b/knob.js: ignore hscrolls to allow horizontal device panel scrolling
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-14 Tim Janik # 0184284be3c
UI: b/devicepanel.vue: adjust to b-shell grid layout
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-13 Tim Janik # 4172f3100ba
UI: b/pianoroll.js: fix scrollbar style
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-13 Tim Janik # 15d0f4b498a
UI: b/pianoroll.js: add indicator to show the current tick
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-13 Tim Janik # b9105445537
UI: b/shell.vue: use <grid/> for the basic layout
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-13 Tim Janik # e9c8dde1ac1
UI: b/pianoroll.js: implement <b-piano-roll/> as LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-19 Tim Janik # 2d7ccab8c59
UI: b/pianoroll.js: add skeleton
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-19 Tim Janik # dc898ed782d
UI: b/piano-roll.vue: remove Vue based piano-roll
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-22 Tim Janik # 32b1518f462
Merge branch 'cursors'
* cursors:
IMAGES: anklangicons.sh: fixes for svgo 2.8.0 and Inkscape >= 1.0
IMAGES: anklangicons.sh: remove unused cursor commands
RAND: hotspots.sh: add simple script to debug hotspot coords in cursors
UI: b/piano-roll.vue: remove AnklangCursors.scss references
UI: Makefile.mk: remove AnklangCursors.scss copy
UI: Makefile.mk: copy cursors/cursors.css and all cursor SVGs
UI: little.js: allow runtime postcss imports from cursors/cursors.css
UI: cursors/cursors.css: add CSS vars for: cross eraser hresize knife move pen
UI: cursors/knife.svg: add 28x28 pixel "knife" cursor
UI: cursors/hresize.svg: add 28x28 pixel "horizontal resize" cursor
UI: cursors/cross.svg: add 28x28 pixel "cross" cursor
UI: cursors/move.svg: add 28x28 pixel "move" cursor
UI: cursors/eraser.svg: make cursor 28x28 pixels
UI: cursors/pen.svg: make cursor 28x28 pixels
UI: cursors/: move eraser.svg and pen.svg here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # c31425a87ba
IMAGES: anklangicons.sh: fixes for svgo 2.8.0 and Inkscape >= 1.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 2ea414dd285
IMAGES: anklangicons.sh: remove unused cursor commands
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 2d807356d3b
RAND: hotspots.sh: add simple script to debug hotspot coords in cursors
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # a76611b9545
UI: b/piano-roll.vue: remove AnklangCursors.scss references
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 927a5242e24
UI: Makefile.mk: remove AnklangCursors.scss copy
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # b27504e4444
UI: Makefile.mk: copy cursors/cursors.css and all cursor SVGs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 5f7ed60e5d0
UI: little.js: allow runtime postcss imports from cursors/cursors.css
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 7cb1bd09e69
UI: cursors/cursors.css: add CSS vars for: cross eraser hresize knife move pen
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 00477f2973e
UI: cursors/knife.svg: add 28x28 pixel "knife" cursor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 79bcf9b08eb
UI: cursors/hresize.svg: add 28x28 pixel "horizontal resize" cursor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 994e8daf3c8
UI: cursors/cross.svg: add 28x28 pixel "cross" cursor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # b289b806433
UI: cursors/move.svg: add 28x28 pixel "move" cursor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # 7b6288c5d6f
UI: cursors/eraser.svg: make cursor 28x28 pixels
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # dea23e80e8e
UI: cursors/pen.svg: make cursor 28x28 pixels
Signed-off-by: Tim Janik <timj@gnu.org>
2022-12-21 Tim Janik # b678e75a97d
UI: cursors/: move eraser.svg and pen.svg here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-17 Tim Janik # 54726cd3d63
Merge branch 'swesterfeld-blepsynth-adsr-time-fix'
* swesterfeld-blepsynth-adsr-time-fix:
DEVICES: blepsynth: use non-linear mapping for ADSR times
ASE: sortnet.hh: update URLs in comments
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-09 Stefan Westerfeld # 8b67ac5b6b6
DEVICES: blepsynth: use non-linear mapping for ADSR times
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2022-11-17 Tim Janik # ede4663e7b2
ASE: sortnet.hh: update URLs in comments
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # 439c3b83048
Merge branch 'sprite-knob'
* sprite-knob:
MISC: Dockerfile.focal: install librsvg2-bin for rsvg-convert
UI: remove unused eknob.svg embedding
UI: b/knob.vue: remove Vue based knob implementation
UI: b/pro-input.vue: remove unused knob handling
UI: b/pro-group.vue: use b-knob for scalar Property editing
UI: b/knob.js: rewrite b-knob as LitElement with sprites
UI: b/deviceeditor.vue: use Util.extend_property() to cache Property fields
UI: Makefile.mk: provide control knob sprite assets
Makefile.mk: include images/knobs/Makefile.mk
IMAGES: knobs/cknob.svg: add MPL-2.0 license
IMAGES: knobs/Makefile.mk: build bi- and unidirectional control knob sprites
IMAGES: knobs/mksprite.py: rotate svg knob and add level indicator
IMAGES: knobs/cknob.svg: add rotatable control knob
UI: util.js: wheel_delta: adjust factors for modern Firefox and Chrome versions
UI: startup.js: set CONFIG.dpr_movement for Chrome<=100 and Gecko
As of Firefox-106, dpr_movement is needed and for Chrome-107 it is not.
UI: util.js: use internal Symbol for request_pointer_lock() state handling
UI: util.js: fix value updates of extended properties
Catch the right event and normalize the value in JS.
UI: util.js: add methods to handle destroy callbacks on objects
UI: b/shell.vue: comment fixup
UI: b/databubble.vue: hook into App.zmove for all event handling
Also, fix stuck bubbles when rehovering the same element.
UI: b/app.js: generate zmove events for pointerdown, pointermove, pointerup
UI: b/app.js: make sure "mousemove" triggers ZMove updates
ASE: processor.cc: keep constant number of characters for % values
ASE: processor: send property notifies early, account for inflight values
ASE: api.hh: add missing const
ASE: crawler: use emit_notify() and avoid emit during ctor
ASE: *.cc: use emit_notify() where possible
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # d3fdc383bc0
MISC: Dockerfile.focal: install librsvg2-bin for rsvg-convert
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # 6d314a41c08
UI: remove unused eknob.svg embedding
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-05 Tim Janik # 3535e1bca86
UI: b/knob.vue: remove Vue based knob implementation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-05 Tim Janik # 549bc713ad9
UI: b/pro-input.vue: remove unused knob handling
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # 1aa09110989
UI: b/pro-group.vue: use b-knob for scalar Property editing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # 5131f85e2de
UI: b/knob.js: rewrite b-knob as LitElement with sprites
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # 591dc49c9fe
UI: b/deviceeditor.vue: use Util.extend_property() to cache Property fields
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-15 Tim Janik # ade7808d411
UI: Makefile.mk: provide control knob sprite assets
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-14 Tim Janik # e7752c282b2
Makefile.mk: include images/knobs/Makefile.mk
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # b94edb5852b
IMAGES: knobs/cknob.svg: add MPL-2.0 license
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-14 Tim Janik # ee5347c8bcb
IMAGES: knobs/Makefile.mk: build bi- and unidirectional control knob sprites
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-14 Tim Janik # a3c16d47d7a
IMAGES: knobs/mksprite.py: rotate svg knob and add level indicator
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-14 Tim Janik # 2a9e2951173
IMAGES: knobs/cknob.svg: add rotatable control knob
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # 48f17d1e235
UI: util.js: wheel_delta: adjust factors for modern Firefox and Chrome versions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # 2e8d94f080d
UI: startup.js: set CONFIG.dpr_movement for Chrome<=100 and Gecko
As of Firefox-106, dpr_movement is needed and for Chrome-107 it is not.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-15 Tim Janik # 4c5914aa077
UI: util.js: use internal Symbol for request_pointer_lock() state handling
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-15 Tim Janik # d0a8af6d5ee
UI: util.js: fix value updates of extended properties
Catch the right event and normalize the value in JS.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-15 Tim Janik # 249ddeda3a3
UI: util.js: add methods to handle destroy callbacks on objects
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-15 Tim Janik # b91a66e920b
UI: b/shell.vue: comment fixup
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-10 Tim Janik # d40b20fcc94
UI: b/databubble.vue: hook into App.zmove for all event handling
Also, fix stuck bubbles when rehovering the same element.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-15 Tim Janik # 02a395abfd3
UI: b/app.js: generate zmove events for pointerdown, pointermove, pointerup
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-10 Tim Janik # cc5ed860101
UI: b/app.js: make sure "mousemove" triggers ZMove updates
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-14 Tim Janik # c25a27a893e
ASE: processor.cc: keep constant number of characters for % values
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-09 Tim Janik # f06f6477ab6
ASE: processor: send property notifies early, account for inflight values
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-09 Tim Janik # a2ed448018a
ASE: api.hh: add missing const
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-08 Tim Janik # b391db724b1
ASE: crawler: use emit_notify() and avoid emit during ctor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-08 Tim Janik # eee4f715bec
ASE: *.cc: use emit_notify() where possible
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-16 Tim Janik # 8e65adf7718
Merge branch 'zoom-ui'
* zoom-ui:
UI: b/menubar.vue: support Zoom In/Out/Reset for Electron
ELECTRON: main.js: export zoom_level() to allow UI zoom adjustments
UI: kbd.js: match_key_event: split 'Ctrl++' only once
DOC: ch-development.md, ch-intro.md: fix testbit.eu URL
ASE: randomhash: fix testbit.eu URL
ASE: track.cc: fix MASTER_TRACK flag
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-15 Tim Janik # 6276402ddd2
UI: b/menubar.vue: support Zoom In/Out/Reset for Electron
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-15 Tim Janik # 39553c9345a
ELECTRON: main.js: export zoom_level() to allow UI zoom adjustments
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-15 Tim Janik # 0729f5de1f2
UI: kbd.js: match_key_event: split 'Ctrl++' only once
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-10 Tim Janik # 2a621d9a4a9
DOC: ch-development.md, ch-intro.md: fix testbit.eu URL
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-10 Tim Janik # 3eba14da7ed
ASE: randomhash: fix testbit.eu URL
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-04 Tim Janik # d7dedab219b
ASE: track.cc: fix MASTER_TRACK flag
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-03 Tim Janik # 203c246eaa0
Merge branch 'swesterfeld-vcf-cutoff-fix'
* swesterfeld-vcf-cutoff-fix:
DEVICES: blepsynth: fix cutoff frequency modulation for filter
Fix frequency scaling problems: the freq_in array now passes its frequency to
the filter as plain Hz.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-02 Stefan Westerfeld # f333c7c072a
DEVICES: blepsynth: fix cutoff frequency modulation for filter
Fix frequency scaling problems: the freq_in array now passes its frequency to
the filter as plain Hz.
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2022-11-03 Tim Janik # 6d531e698af
Merge branch 'time-autostop'
* time-autostop:
GITHUB: workflows/testing.yml: add repository and gh-user to IRC notifications
GITHUB: workflows/ircbot.py: support -R for initiating repository name
GITHUB: workflows/testing.yml: skip IRC bot name
GITHUB: workflows/ircbot.py: set "YYBOT" as bot name
ASE: main: add autostop handling and implement -t <time> to trigger autostop
ASE: project: start_playback(): pass autostop into engine
ASE: engine: add autostop handling and delay capture until transport is running
ASE: defs.hh: add D64MAX
ASE: strings.cc: add string_to_seconds()
ASE: formatter.cc: test atomic<bool> which is a struct and needs %s
UI: b/treeselector-item.vue: use ContextMenu.valid_uri() to check valid uri
UI: b/contextmenu.js: always use valid_uri() for uri in boolean contexts
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-03 Tim Janik # 635cb2acf99
GITHUB: workflows/testing.yml: add repository and gh-user to IRC notifications
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-03 Tim Janik # f5f5df8c008
GITHUB: workflows/ircbot.py: support -R for initiating repository name
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-03 Tim Janik # 8d4221e9691
GITHUB: workflows/testing.yml: skip IRC bot name
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-24 Tim Janik # b94448e849d
GITHUB: workflows/ircbot.py: set "YYBOT" as bot name
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-02 Tim Janik # 45c2b5b15e5
ASE: main: add autostop handling and implement -t <time> to trigger autostop
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-02 Tim Janik # f770f10773f
ASE: project: start_playback(): pass autostop into engine
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-02 Tim Janik # 4790ad56a70
ASE: engine: add autostop handling and delay capture until transport is running
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-01 Tim Janik # 739fc884004
ASE: defs.hh: add D64MAX
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-01 Tim Janik # 09a5e5814bd
ASE: strings.cc: add string_to_seconds()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-11-01 Tim Janik # 9b048c994f7
ASE: formatter.cc: test atomic<bool> which is a struct and needs %s
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-31 Tim Janik # b0ff65cf914
UI: b/treeselector-item.vue: use ContextMenu.valid_uri() to check valid uri
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-31 Tim Janik # d10f9b862ad
UI: b/contextmenu.js: always use valid_uri() for uri in boolean contexts
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-28 Tim Janik # bb7a44285c4
Merge branch 'opus-wav-flac' - capture engine output
* opus-wav-flac:
UI: b/aboutdialog.vue: display FLAC version
ASE: api: export get_flac_version()
UI: b/aboutdialog.vue: show Opus version
Remove unused Vorbis version.
ASE: api.hh: export Opus version
Remove unused Vorbis and MP3 version export.
MISC: Dockerfile.focal: provide libopus
MISC: config-checks.mk: provide ogg-1.3.4 and opus-1.3.1
Remvoe Vorbis requirement, which is unused.
ASE: main.cc: exit with atquit_run() upon SIGINT
ASE: loop: USignalSource::install_sigaction(): install unix signal handler
ASE: utils: provide atquit handlers
ASE: loop.hh: minimize latency of signal handlers by running at high priority
ASE: main: add -o wavfile to the CLI
ASE: engine: support engine output capturing into wave files
Squashed commits of engine capturing development:
ASE: engine: add queue_capture_start() and queue_capture_stop()
ASE: engine.cc: stall engine once program is aborted (atquit_triggered)
ASE: engine.cc: capture output via wave_writer_create_opus()
ASE: engine.cc: capture output via wave_writer_create_wav()
ASE: engine.cc: capture output via wave_writer_create_flac()
ASE: wave: add wave file writer for WAV, OPUS, FLAC
Squashed commits of wave file development:
ASE: wave.hh: add WaveWriter interface
ASE: wave: add writer for WAV files with support for PCM and FLOAT
ASE: wave: implement Opus writer and export Opus version
ASE: wave.cc: write extension header for FLOAT format
For example SoX(1) complains about float WAV files 'missing extended part of fmt chunk'
ASE: wave: add FLAC writer and export FLAC version
ASE: wave: install atquit handlers to flush/finalize wave files
ASE: main: load projects without '--preload' and support --play-autostart
ASE: main.cc: auto-load projects passed on the CLI
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-28 Tim Janik # 1592603f465
UI: b/aboutdialog.vue: display FLAC version
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-28 Tim Janik # c1c611bf9fe
ASE: api: export get_flac_version()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-11 Tim Janik # c259790fdb5
UI: b/aboutdialog.vue: show Opus version
Remove unused Vorbis version.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-11 Tim Janik # badf458147a
ASE: api.hh: export Opus version
Remove unused Vorbis and MP3 version export.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-09 Tim Janik # b30d2119e1e
MISC: Dockerfile.focal: provide libopus
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-07 Tim Janik # ec302f21674
MISC: config-checks.mk: provide ogg-1.3.4 and opus-1.3.1
Remvoe Vorbis requirement, which is unused.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-07 Tim Janik # e406273d231
ASE: main.cc: exit with atquit_run() upon SIGINT
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-07 Tim Janik # 67786afddfe
ASE: loop: USignalSource::install_sigaction(): install unix signal handler
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-07 Tim Janik # 240ee42bb56
ASE: utils: provide atquit handlers
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-07 Tim Janik # 95cfe3eff43
ASE: loop.hh: minimize latency of signal handlers by running at high priority
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-06 Tim Janik # 1d8f68b0653
ASE: main: add -o wavfile to the CLI
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-06 Tim Janik # c0bbbfd71f6
ASE: engine: support engine output capturing into wave files
Squashed commits of engine capturing development:
ASE: engine: add queue_capture_start() and queue_capture_stop()
ASE: engine.cc: stall engine once program is aborted (atquit_triggered)
ASE: engine.cc: capture output via wave_writer_create_opus()
ASE: engine.cc: capture output via wave_writer_create_wav()
ASE: engine.cc: capture output via wave_writer_create_flac()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-06 Tim Janik # a9573c1d97b
ASE: wave: add wave file writer for WAV, OPUS, FLAC
Squashed commits of wave file development:
ASE: wave.hh: add WaveWriter interface
ASE: wave: add writer for WAV files with support for PCM and FLOAT
ASE: wave: implement Opus writer and export Opus version
ASE: wave.cc: write extension header for FLOAT format
For example SoX(1) complains about float WAV files 'missing extended part of fmt chunk'
ASE: wave: add FLAC writer and export FLAC version
ASE: wave: install atquit handlers to flush/finalize wave files
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-06 Tim Janik # 3ea4cb93925
ASE: main: load projects without '--preload' and support --play-autostart
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-06 Tim Janik # a67a43d3183
ASE: main.cc: auto-load projects passed on the CLI
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-26 Tim Janik # 84ff17e4a49
Merge branch 'loft'
* loft:
ASE: main.cc: configure Loft and concurrently preallocate pages on demand
ASE: tests/benchmarks.cc: benchmark loft_calloc()
ASE: loft: add Loft - a lock- and obstruction-free thread memory allocator
Squashed commits of Loft development:
ASE: loft: implement mmap() based bump allocator
ASE: loft: implement MpmcStack based bucket allocator
ASE: loft: add loft_alloc()
ASE: loft: add loft_make_unique() and LoftFree::operator()()
ASE: loft: add loft_calloc()
ASE: loft: add multithreaded allocator stress test
ASE: loft: use FastRng for testing
ASE: loft: add loft_bucket_size()
ASE: loft: add loft_get_stats(), loft_stats_string()
ASE: loft: add loft_get_config(), loft_set_config(), config flags
ASE: loft: add loft_grow_preallocate(), loft_set_notifier()
ASE: loft: issue a warning if allocations via syscall happen inline
ASE: atomics.hh: add MpmcStack.peek
ASE: atomics.cc: fix signedness
ASE: atomics.cc: add test for MpmcStack<>
ASE: atomics.hh: add MpmcStack<>, a lock-free stack for non-reclaimable memory
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-24 Tim Janik # 12c0d8bd7f7
ASE: main.cc: configure Loft and concurrently preallocate pages on demand
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-04 Tim Janik # 86e657b5cc4
ASE: tests/benchmarks.cc: benchmark loft_calloc()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-04 Tim Janik # 59eae7fb6cf
ASE: loft: add Loft - a lock- and obstruction-free thread memory allocator
Squashed commits of Loft development:
ASE: loft: implement mmap() based bump allocator
ASE: loft: implement MpmcStack based bucket allocator
ASE: loft: add loft_alloc()
ASE: loft: add loft_make_unique() and LoftFree::operator()()
ASE: loft: add loft_calloc()
ASE: loft: add multithreaded allocator stress test
ASE: loft: use FastRng for testing
ASE: loft: add loft_bucket_size()
ASE: loft: add loft_get_stats(), loft_stats_string()
ASE: loft: add loft_get_config(), loft_set_config(), config flags
ASE: loft: add loft_grow_preallocate(), loft_set_notifier()
ASE: loft: issue a warning if allocations via syscall happen inline
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-24 Tim Janik # 7e8dac6d1f1
ASE: atomics.hh: add MpmcStack.peek
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-05 Tim Janik # a8abb0ce5e3
ASE: atomics.cc: fix signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-02 Tim Janik # 3ab607707ac
ASE: atomics.cc: add test for MpmcStack<>
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-02 Tim Janik # abaf1e2a464
ASE: atomics.hh: add MpmcStack<>, a lock-free stack for non-reclaimable memory
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-26 Tim Janik # 153071d1906
Merge branch 'mwc256-prng'
* mwc256-prng:
ASE: randomhash.cc: add FastRng jump ahead tests
ASE: main.cc: add --rand64 to generate 64bit FastRng numbers on stdout
This can be used to test the PRNG quality with for example PractRand:
AnklangSynthEngine --rand64 | RNG_test stdin64 -multithreaded
ASE: randomhash: add FastRng, a multiply-with-carry PRNG with period 2^255
ASE: tests/benchmarks.cc: use 3k as max chunk size to avoid memset benchmarking
ASE: sortnet.cc: speed up test by reducing the checked 10-element permutations
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-24 Tim Janik # a0b4e5a2048
ASE: randomhash.cc: add FastRng jump ahead tests
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-22 Tim Janik # 418d5699772
ASE: main.cc: add --rand64 to generate 64bit FastRng numbers on stdout
This can be used to test the PRNG quality with for example PractRand:
AnklangSynthEngine --rand64 | RNG_test stdin64 -multithreaded
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-22 Tim Janik # 0fa2f04f2e9
ASE: randomhash: add FastRng, a multiply-with-carry PRNG with period 2^255
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-04 Tim Janik # 8f3c04a0ee7
ASE: tests/benchmarks.cc: use 3k as max chunk size to avoid memset benchmarking
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-05 Tim Janik # a03db576a8b
ASE: sortnet.cc: speed up test by reducing the checked 10-element permutations
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-26 Tim Janik # a252fc9d284
Merge branch 'update-sanitizers'
* update-sanitizers:
JSONIPC: jsonipc.hh: fix atexit memory leak
ASE: formatter.hh: properly handle nullptr_t for %p
ASE: nativedevice.cc: fix signedness
ASE: serialize.cc: fix unit test memory leak
UI: Makefile.mk: ignore asan when running AnklangSynthEngine
DOC: Makefile.mk: ignore asan when running AnklangSynthEngine
MISC: config-uname.mk: update sanitizer linkage
GITHUB: workflows/testing.yml: upgrade actions/checkout and actions/cache to v3
MISC: Dockerfile.focal: comment fixups
GITHUB: workflows/testing.yml: allow TeX installation during CI builds
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-04 Tim Janik # 633a4a1b682
JSONIPC: jsonipc.hh: fix atexit memory leak
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-05 Tim Janik # 92f049d6f3f
ASE: formatter.hh: properly handle nullptr_t for %p
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-05 Tim Janik # aa6fdbd647e
ASE: nativedevice.cc: fix signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-05 Tim Janik # ed48f05e559
ASE: serialize.cc: fix unit test memory leak
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-05 Tim Janik # f602ce2b1e4
UI: Makefile.mk: ignore asan when running AnklangSynthEngine
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-05 Tim Janik # a31e418e148
DOC: Makefile.mk: ignore asan when running AnklangSynthEngine
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-05 Tim Janik # d196a74ea7d
MISC: config-uname.mk: update sanitizer linkage
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-26 Tim Janik # 95c089d9deb
GITHUB: workflows/testing.yml: upgrade actions/checkout and actions/cache to v3
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-25 Tim Janik # 6bb9f58b9f0
MISC: Dockerfile.focal: comment fixups
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-25 Tim Janik # 359d9d53338
GITHUB: workflows/testing.yml: allow TeX installation during CI builds
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-25 Tim Janik # e0272bd8ff9
Merge branch 'pdf-artifacts'
* pdf-artifacts:
GITHUB: workflows/testing.yml: build PDF and upload 'docs' build artifact
MISC: mkassets.sh: use 'pdf' shorthand in build rule
DOC: Makefile.mk: require explicit 'pdf' rule to build PDF manuals via TeX
By default, only the HTML manuals are built and installed (without TeX
dependency). The PDF variants can be built explicitely with `make pdf`.
The PDF manuals are installed if they are present at install time.
GITHUB: workflows/testing.yml: enable CI for 'next' and PRs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-25 Tim Janik # 9785f41c819
GITHUB: workflows/testing.yml: build PDF and upload 'docs' build artifact
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-25 Tim Janik # f0a4e336e2e
MISC: mkassets.sh: use 'pdf' shorthand in build rule
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-25 Tim Janik # d9c2615b5c6
DOC: Makefile.mk: require explicit 'pdf' rule to build PDF manuals via TeX
By default, only the HTML manuals are built and installed (without TeX
dependency). The PDF variants can be built explicitely with `make pdf`.
The PDF manuals are installed if they are present at install time.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # ee3959f030f
GITHUB: workflows/testing.yml: enable CI for 'next' and PRs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 8032e64e952
Merge branch 'litelement-menu'
* litelement-menu:
X11TEST: play-notes.json: update UI test
UI: b/*: assign aria-label where appropriate
UI: b/*.vue: add html id to context menus
UI: b/menuitem.js: always strip slot_label
UI: util.js: remove unused dropdown()
UI: b/color-picker.vue: fix menu and support click-drag selection
UI: b/contextmenu.js: expose dialog via part=dialog to CSS rules
UI: b/trackview.vue: popup context menu at cursor
UI: b/piano-roll.vue: fix popup position
UI: b/piano-ctrl.js: avoid stealing unhandled key presses
UI: b/dialog.vue: close on regular Escape presses, avoid stealing Escape
UI: b/contextmenu.js: stop handled dialog Escape key from bubbling further
UI: util.js: allow shields without Escape key stealing
UI: b/choice.vue: fix menu and key handling to work like all menus
UI: b/contextmenu.js: provide .open read-only property
UI: b/menuitem.js: remove unused code
UI: b/contextmenu.js: fix data-contextmenu styling
UI: b/fed-picklist.vue: remove unused component
UI: b/devicepanel.vue: fix menu origin and insertion pos
ASE: nativedevice.cc: fix device insertion order
UI: b/contextmenu.js: close menu on backdrop clicks
UI: util.js: dialog_backdrop_mousedown(): close dialogs on backdrop clicks
UI: b/menubar.vue: use b-contextmenu .activate and .isactive
UI: b/piano-roll.vue: use b-contextmenu .activate and .isactive
UI: b/deviceeditor.vue: use b-contextmenu .activate and .isactive
UI: b/treeselector-item.vue: use frame stamp to ignore duplicate clicks
UI: b/menubar.vue: use frame stamp to ignore duplicate clicks
UI: b/contextmenu.js: make FF auto-focus an element on showModal(), like Chrome
UI: b/contextmenu.js: use frame stamp to ignore duplicate clicks and popup()s
Note that keyboard presses, mouse clicks, drag selections and event bubbling can
all cause menu item clicks and contextmenu activation.
In order to deduplicate multiple events that arise from the same user interaction,
*one* popup request and *one* click activation is processed per animation frame.
UI: util.js: add frame_stamp(), retrieve a timestamp unique per animation frame
UI: kbd.js: move_focus(): fallback to move focus inside body
UI: kbd.js: list_focusables(): take [open]:modal in shadow DOMs into account
UI: kbd.js: list_focusables(): take [open]:modal dialogs into account
UI: b/treeselector-item.vue: fix single-click menu activation and styling
UI: b/trackview.vue: fix menu activation
UI: b/piano-roll.vue: fix menu activation, allow click-drag menu selection
UI: b/devicepanel.vue: fix menu activation
UI: b/menubar.vue: allow click-drag menu selection
UI: b/menuitem.js: use .activate and .isactive callbacks for item activation
UI: b/contextmenu.js: use .activate and .isactive callbacks for menu activation
ASE: project.cc: fix some missing notify::dirty emissions
UI: b/menubar.vue: adapt context menu clicks, popup menus early (mousedown)
UI: b/menuitem.js: adjust for b-contextmenu as LitElement
UI: kbd.js: fix keydown_move_focus() for shadow DOMs
UI: util.js: add prevent_event()
UI: b/contextmenu.js: port b-contextmenu to LitElement
UI: b/menuitem.js: use 'b-menurow' CSS selector
UI: b/menurow.js: port b-menurow to LitElement
UI: b/menuitem.js: pass b-menurow turn / noturn attributes to button
UI: util.js: add closest() for shadow DOMs
UI: b/trackview.vue: always use the b-icon ic="" attribute
UI: b/menuitem.js: export KeymapEntry as this.keymap_entry
UI: b/contextmenu.vue: collect and register KeymapEntry props from descendants
UI: kbd.js: support add+remove of global keymaps
UI: b/menuitem.js: port b-menuitem to LitElement
UI: util.js: add lrstrip() and collect_text_content()
UI: kbd.js: make activeElement and list_focusables shadow DOM aware
This allows transparent handling of custom focus navigation and hotkey
activation in shadow DOMs.
UI: util.js: extend has_ancestor() to support open shadow DOMs
UI: b/contextmenu.vue: support click, keymap, b-contextmenu-menudata on Element
UI: b/icon.js: port b-icon from vue to LitElement
UI: util.js: add adopt_style() and add_style_sheet()
UI: b/*.vue: always use the b-icon ic="" attribute
GITHUB: workflows/testing.yml: update github actions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # c7125167fdb
X11TEST: play-notes.json: update UI test
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 8854fbedf70
UI: b/*: assign aria-label where appropriate
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # a2f2354933a
UI: b/*.vue: add html id to context menus
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # d8785a34bd4
UI: b/menuitem.js: always strip slot_label
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # c2ac7b174b3
UI: util.js: remove unused dropdown()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 7a0a6ca897f
UI: b/color-picker.vue: fix menu and support click-drag selection
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 2ce4c116e40
UI: b/contextmenu.js: expose dialog via part=dialog to CSS rules
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 8b3904d9881
UI: b/trackview.vue: popup context menu at cursor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 86bd1b6583c
UI: b/piano-roll.vue: fix popup position
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # df68ea92d08
UI: b/piano-ctrl.js: avoid stealing unhandled key presses
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 3fa08759abd
UI: b/dialog.vue: close on regular Escape presses, avoid stealing Escape
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 6140b85ffa9
UI: b/contextmenu.js: stop handled dialog Escape key from bubbling further
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 931bc998775
UI: util.js: allow shields without Escape key stealing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 52ae3f07552
UI: b/choice.vue: fix menu and key handling to work like all menus
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # f9de8371a16
UI: b/contextmenu.js: provide .open read-only property
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 13eece61bf7
UI: b/menuitem.js: remove unused code
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 2ebbb7e7ec2
UI: b/contextmenu.js: fix data-contextmenu styling
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 4ed7859a98f
UI: b/fed-picklist.vue: remove unused component
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 63a01302360
UI: b/devicepanel.vue: fix menu origin and insertion pos
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 54b1f500900
ASE: nativedevice.cc: fix device insertion order
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # babd3bde394
UI: b/contextmenu.js: close menu on backdrop clicks
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # d8a76335ccd
UI: util.js: dialog_backdrop_mousedown(): close dialogs on backdrop clicks
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 35f216ace8a
UI: b/menubar.vue: use b-contextmenu .activate and .isactive
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 2dc8443240d
UI: b/piano-roll.vue: use b-contextmenu .activate and .isactive
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 931c6fc4960
UI: b/deviceeditor.vue: use b-contextmenu .activate and .isactive
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 272ed1e30a9
UI: b/treeselector-item.vue: use frame stamp to ignore duplicate clicks
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # dfd827bf60c
UI: b/menubar.vue: use frame stamp to ignore duplicate clicks
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # a825ea9b503
UI: b/contextmenu.js: make FF auto-focus an element on showModal(), like Chrome
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 8f6a8bd04a3
UI: b/contextmenu.js: use frame stamp to ignore duplicate clicks and popup()s
Note that keyboard presses, mouse clicks, drag selections and event bubbling can
all cause menu item clicks and contextmenu activation.
In order to deduplicate multiple events that arise from the same user interaction,
*one* popup request and *one* click activation is processed per animation frame.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 3fb48ef718e
UI: util.js: add frame_stamp(), retrieve a timestamp unique per animation frame
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # a525b416eec
UI: kbd.js: move_focus(): fallback to move focus inside body
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 0d37d05bf63
UI: kbd.js: list_focusables(): take [open]:modal in shadow DOMs into account
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-20 Tim Janik # 6f0e662a9f5
UI: kbd.js: list_focusables(): take [open]:modal dialogs into account
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-19 Tim Janik # 03111788791
UI: b/treeselector-item.vue: fix single-click menu activation and styling
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-19 Tim Janik # e55a3c834e8
UI: b/trackview.vue: fix menu activation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-19 Tim Janik # 0bc1677d8cb
UI: b/piano-roll.vue: fix menu activation, allow click-drag menu selection
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-19 Tim Janik # e26a6c19b0b
UI: b/devicepanel.vue: fix menu activation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-19 Tim Janik # 67193dafafc
UI: b/menubar.vue: allow click-drag menu selection
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-19 Tim Janik # 44d7df8679a
UI: b/menuitem.js: use .activate and .isactive callbacks for item activation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-19 Tim Janik # ee9501f8576
UI: b/contextmenu.js: use .activate and .isactive callbacks for menu activation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-19 Tim Janik # f6e62fd773f
ASE: project.cc: fix some missing notify::dirty emissions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-18 Tim Janik # b32344a0d2d
UI: b/menubar.vue: adapt context menu clicks, popup menus early (mousedown)
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-18 Tim Janik # e71a27dc48b
UI: b/menuitem.js: adjust for b-contextmenu as LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-18 Tim Janik # 281055cd4bf
UI: kbd.js: fix keydown_move_focus() for shadow DOMs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-18 Tim Janik # bc60e6ffe78
UI: util.js: add prevent_event()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-18 Tim Janik # 541016abecf
UI: b/contextmenu.js: port b-contextmenu to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-16 Tim Janik # 38e3c7abfce
UI: b/menuitem.js: use 'b-menurow' CSS selector
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-16 Tim Janik # b79018b392a
UI: b/menurow.js: port b-menurow to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-16 Tim Janik # 646aabb8e7d
UI: b/menuitem.js: pass b-menurow turn / noturn attributes to button
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-16 Tim Janik # 3fd59c6ee34
UI: util.js: add closest() for shadow DOMs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-15 Tim Janik # 8188c9f3545
UI: b/trackview.vue: always use the b-icon ic="" attribute
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-15 Tim Janik # 3929feaee3f
UI: b/menuitem.js: export KeymapEntry as this.keymap_entry
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-15 Tim Janik # dd653b131fc
UI: b/contextmenu.vue: collect and register KeymapEntry props from descendants
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-15 Tim Janik # e363bd0ebf2
UI: kbd.js: support add+remove of global keymaps
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-15 Tim Janik # c29aa106ccb
UI: b/menuitem.js: port b-menuitem to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 892c30f4a08
UI: util.js: add lrstrip() and collect_text_content()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-15 Tim Janik # a505069ed78
UI: kbd.js: make activeElement and list_focusables shadow DOM aware
This allows transparent handling of custom focus navigation and hotkey
activation in shadow DOMs.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-15 Tim Janik # fb4523edb72
UI: util.js: extend has_ancestor() to support open shadow DOMs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-15 Tim Janik # ad324798c09
UI: b/contextmenu.vue: support click, keymap, b-contextmenu-menudata on Element
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-14 Tim Janik # 7ec360fb99f
UI: b/icon.js: port b-icon from vue to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-21 Tim Janik # 51f183d8b2b
UI: util.js: add adopt_style() and add_style_sheet()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-14 Tim Janik # a88478fa725
UI: b/*.vue: always use the b-icon ic="" attribute
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-12 Tim Janik # 7f211af9f46
GITHUB: workflows/testing.yml: update github actions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-12 Tim Janik # 84e7c324395
Merge branch 'package-updates'
* package-updates:
ASE: clip.cc: fix macro clash
MISC: package.json.in: update various npm packages
Makefile.mk: clean x11test/ output dir
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-12 Tim Janik # a4078bb5b46
ASE: clip.cc: fix macro clash
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-12 Tim Janik # 50e50f91a43
MISC: package.json.in: update various npm packages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-12 Tim Janik # a787d9298b6
Makefile.mk: clean x11test/ output dir
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-12 Tim Janik # 4e5ac8b2358
Merge branch 'activate+deactivate'
* activate+deactivate:
ASE: object.cc: properly check Connection ptr before use
ASE: track.cc: remove over eager assertion
ASE: project.cc: start_playback(): switch current engine project on demand
Makefile.mk: allow make default to configure INSN
ASE: project: move activate/deactive to Project
ASE: engine.cc: fix loss of "change:prefs" notification connection
ASE: engine: add API to set up exclusive Engine + Project relation
ASE: track: require Project as parent of track
ASE: gadget: add flags field to be used for gadgets and derived types
ASE: clapplugin: rename clap_deactivate() and variants
ASE: api.hh: use GadgetImpl as parent pointer
ASE: api.hh: derive Track from Device
ASE: api.hh: derive Project from Device
ASE: device: rename and move Device::extract_info() here
ASE: clapdevice.cc: fix call to inherited methods
ASE: nativedevice: provide remove_all_devices(), implement activation
ASE: api.hh: Device: provide _activate() _deactivate() is_active()
ASE: nativedevice.cc: clarify TODO
ASE: split DeviceImpl into Device and NativeDevice
ASE: engine: turn the engine into a global singleton
ASE: engine: simnply wrap AudioEngineImpl calls into AudioEngine methods
ASE: engine: rename AudioEngineImpl
ASE: main: export main_loop_wakeup()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-12 Tim Janik # a7fc6cecff3
ASE: object.cc: properly check Connection ptr before use
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-06 Tim Janik # d5a961ce868
ASE: track.cc: remove over eager assertion
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-06 Tim Janik # 28c42e4c4ca
ASE: project.cc: start_playback(): switch current engine project on demand
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-05 Tim Janik # 996a1920055
Makefile.mk: allow make default to configure INSN
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-02 Tim Janik # cb92af12bff
ASE: project: move activate/deactive to Project
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-12 Tim Janik # 8e3d5e3ac96
ASE: engine.cc: fix loss of "change:prefs" notification connection
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # 9149037710a
ASE: engine: add API to set up exclusive Engine + Project relation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # 2906cf23ea3
ASE: track: require Project as parent of track
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-19 Tim Janik # 3abeba757c8
ASE: gadget: add flags field to be used for gadgets and derived types
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-19 Tim Janik # e94f04be875
ASE: clapplugin: rename clap_deactivate() and variants
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # 1c70014d4d7
ASE: api.hh: use GadgetImpl as parent pointer
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # ae6ee46375e
ASE: api.hh: derive Track from Device
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # 04d767df150
ASE: api.hh: derive Project from Device
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # bab2f539c49
ASE: device: rename and move Device::extract_info() here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # 9ce582b34e7
ASE: clapdevice.cc: fix call to inherited methods
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # 9e43084438b
ASE: nativedevice: provide remove_all_devices(), implement activation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # cb1f3af7625
ASE: api.hh: Device: provide _activate() _deactivate() is_active()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-12 Tim Janik # c370fcbb428
ASE: nativedevice.cc: clarify TODO
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-21 Tim Janik # 584f9eed47f
ASE: split DeviceImpl into Device and NativeDevice
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-19 Tim Janik # 5c86b354fe8
ASE: engine: turn the engine into a global singleton
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-19 Tim Janik # 73dee4d78d1
ASE: engine: simnply wrap AudioEngineImpl calls into AudioEngine methods
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-19 Tim Janik # 493a89b59f9
ASE: engine: rename AudioEngineImpl
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-19 Tim Janik # 062b25db73d
ASE: main: export main_loop_wakeup()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-11 Tim Janik # bd540be58d1
Merge branch 'ci-job-split'
* ci-job-split:
GITHUB: workflows/testing.yml: split jobs for Ubuntu, Arch, IRC
DOC: copyright.ini: assume MPL-2 for x11test/*.json
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # 71206af61a7
GITHUB: workflows/testing.yml: split jobs for Ubuntu, Arch, IRC
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # 7848f25ad50
DOC: copyright.ini: assume MPL-2 for x11test/*.json
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # 662fd7a0936
Merge branch 'x11test'
* x11test:
X11TEST: play1note.json: add recording to play a single MIDI note
GITHUB: workflows/testing.yml: run x11test-v on Ubuntu build and upload result
Makefile.mk: docuemnt x11test and x11test-v
Makefile.mk: add x11test, x11test-v to run (headless) end-to-end tests
X11TEST: replay.sh: play Anklang DevTools recording in Electron via Puppetteer
X11TEST: ereplay.cjs: use Electron and Puppetteer to replay DevTools recording
X11TEST: x11rec.sh: run and record a command in a virtual or nested X11 session
MISC: package.json.in: add puppeteer packages
MISC: Dockerfile.focal: provide xvfb 9wm ffmpeg
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # c71575882c3
X11TEST: play1note.json: add recording to play a single MIDI note
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # 4a12f05c4b9
GITHUB: workflows/testing.yml: run x11test-v on Ubuntu build and upload result
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # fa48b2d6f2e
Makefile.mk: docuemnt x11test and x11test-v
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # c82fedff490
Makefile.mk: add x11test, x11test-v to run (headless) end-to-end tests
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # 4d2b07c3c41
X11TEST: replay.sh: play Anklang DevTools recording in Electron via Puppetteer
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # 69e20e3e2bb
X11TEST: ereplay.cjs: use Electron and Puppetteer to replay DevTools recording
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-10 Tim Janik # a918a038d0c
X11TEST: x11rec.sh: run and record a command in a virtual or nested X11 session
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-09 Tim Janik # b488a2a521b
MISC: package.json.in: add puppeteer packages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-10-09 Tim Janik # f7b31a97dee
MISC: Dockerfile.focal: provide xvfb 9wm ffmpeg
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # 8bde98a0674
Merge branch 'print-class-tree'
* print-class-tree:
DOC: Makefile.mk: anklang-internals: add "Ase Class Inheritance Tree"
ASE: main: add --class-tree to print the class tree
JSONIPC: jsonipc.hh: add ClassWalker
ASE: internal.hh: add assert_unreached()
ASE: engine: minor fixes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-27 Tim Janik # 5918bb5f40e
DOC: Makefile.mk: anklang-internals: add "Ase Class Inheritance Tree"
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # ffafe56853c
ASE: main: add --class-tree to print the class tree
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-27 Tim Janik # 35a4187211f
JSONIPC: jsonipc.hh: add ClassWalker
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-19 Tim Janik # c0d71150f97
ASE: internal.hh: add assert_unreached()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-19 Tim Janik # c43c2048d06
ASE: engine: minor fixes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # 6628472bceb
Merge branch 'fix-vue-3.2.28'
* fix-vue-3.2.28:
UI: b/shell.vue: work around vue-3.2.38 breaking $forceUpdate() before mount()
Avoid the Shell calling $forceUpdate() from created().
That used to work up until Vue-3.2.27, but with .28 and .29 results in:
vue.js:1843 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'id')
at queueJob (vue.js:1843:17)
at i.f.i.f (vue.js:4591:44)
Aparently $forceUpdate() calls are now broken before mount().
UI: Makefile.mk: fix wildcard for lit.js to not catch little.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-28 Tim Janik # 46ce3eb9444
UI: b/shell.vue: work around vue-3.2.38 breaking $forceUpdate() before mount()
Avoid the Shell calling $forceUpdate() from created().
That used to work up until Vue-3.2.27, but with .28 and .29 results in:
vue.js:1843 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'id')
at queueJob (vue.js:1843:17)
at i.f.i.f (vue.js:4591:44)
Aparently $forceUpdate() calls are now broken before mount().
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-27 Tim Janik # 8648ab013f2
UI: Makefile.mk: fix wildcard for lit.js to not catch little.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-27 Tim Janik # 6caa570cf9c
Merge branch 'fix-gc' - plugs a GC race condition
* fix-gc:
JSONIPC: jsonipc.hh: InstanceMap: remove unused swap and move_into
ASE: jsonapi.cc: fix GC bookkeeping with mark_unused() and purge_unused()
JSONIPC: jsonipc.hh: InstanceMap: add mark_unused() and purge_unused()
JSONIPC: jsonipc.hh: add CallbackInfo::classname() to improve error messages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-26 Tim Janik # ab0c6786fda
JSONIPC: jsonipc.hh: InstanceMap: remove unused swap and move_into
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-26 Tim Janik # ed82baefe3e
ASE: jsonapi.cc: fix GC bookkeeping with mark_unused() and purge_unused()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-26 Tim Janik # eb465643a77
JSONIPC: jsonipc.hh: InstanceMap: add mark_unused() and purge_unused()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-26 Tim Janik # 9dde62a50d2
JSONIPC: jsonipc.hh: add CallbackInfo::classname() to improve error messages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-27 Tim Janik # 9cf276d8894
Merge branch 'prefault-pages'
* prefault-pages:
ASE: main.cc: prefault heap and stack pages
ASE: main.cc: tune malloc via mallopt to reduce page fault probability
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-21 Tim Janik # 9e70cd9664d
ASE: main.cc: prefault heap and stack pages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-21 Tim Janik # 1a3a3a05221
ASE: main.cc: tune malloc via mallopt to reduce page fault probability
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-27 Tim Janik # 931a674fcae
Merge branch 'build-improvements'
* build-improvements:
MISC: config-uname.mk: enable link time optimization via -flto for MODE=production
MISC: Makefile.mk: clean mkdeb/ if left over
MISC: Dockerfile.focal: install libgtk-3-dev which also provides libdbus-1-dev
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-25 Tim Janik # 49b8f50fc83
MISC: config-uname.mk: enable link time optimization via -flto for MODE=production
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-21 Tim Janik # a1d4f55bd0a
MISC: Makefile.mk: clean mkdeb/ if left over
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-16 Tim Janik # a77ad859d3f
MISC: Dockerfile.focal: install libgtk-3-dev which also provides libdbus-1-dev
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-14 Tim Janik # 5184d18ff5b
Merge branch 'low-latency-sched'
* low-latency-sched:
ASE: engine.cc: request low latency scheduling for the synthesis engine
ASE: platform: add sched_{set|get|fast}_priority()
ASE: dbus: add DBus methods rtkit_make_high_priority + rtkit_get_min_nice_level
MISC: mkdeb.sh: postinst: add cap_sys_nice to AnklangSynthEngine
MISC: config-checks.mk: add dbus-1 to ase dependencies
ASE: utils.cc: allow mixed case debug keys
ASE: Makefile.mk: use ASEDEPS_CFLAGS and ASEDEPS_LIBS
MISC: config-checks.mk: provide just ASEDEPS_CFLAGS and ASEDEPS_LIBS for ase/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-13 Tim Janik # 7980ba2bbd5
ASE: engine.cc: request low latency scheduling for the synthesis engine
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-13 Tim Janik # 9bfd9f412ed
ASE: platform: add sched_{set|get|fast}_priority()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-13 Tim Janik # c45f6dcd47b
ASE: dbus: add DBus methods rtkit_make_high_priority + rtkit_get_min_nice_level
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-13 Tim Janik # 3fd64dff0d2
MISC: mkdeb.sh: postinst: add cap_sys_nice to AnklangSynthEngine
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-13 Tim Janik # defb52f8c49
MISC: config-checks.mk: add dbus-1 to ase dependencies
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-13 Tim Janik # d8332b1d57a
ASE: utils.cc: allow mixed case debug keys
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-13 Tim Janik # ce1c4d92116
ASE: Makefile.mk: use ASEDEPS_CFLAGS and ASEDEPS_LIBS
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-13 Tim Janik # abb4697bc86
MISC: config-checks.mk: provide just ASEDEPS_CFLAGS and ASEDEPS_LIBS for ase/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-14 Tim Janik # f59890ba036
Merge branch 'remote-gc'
* remote-gc:
UI: startup.js: renew_gc() on object finalization, report_gc() when requested
ASE: jsonapi.cc: support renew_gc() and report_gc() to start new GC cycle
The basic idea behind remote GB by the UI requesting renew_gc() and the
Jsonapi server swapping wrapper tables in response is described here:
https://testbit.eu/2014/rapicorn-remote-reference-counting
ASE: jsonapi.cc: test conscise erase() loop over std::map<>
Checks the erase() loop used by Jsonipc over std::map<>, in
particular ++end must be avoided for empty maps.
JSONIPC: jsonipc.hh: support clear/swap/size/move_into for instance ptr map
MISC: config-uname.mk: use -Og for debugging which improves debug info
Using -Og is a better choice than -O0, because some compiler passes that
collect debug information are disabled at -O0. (gcc docs)
UI: startup.js: properly namespace Jsonapi/Trigger
ASE: jsonapi.cc: properly namespace Jsonapi/Trigger
DOC: ch-development.md: properly namespace Jsonapi/Trigger
DOC: ch-development.md: minor update
UI: startup.js: request Ase.Server via Jsonapi/initialize after handshake
ASE: jsonapi.cc: provide Ase.Server object as Jsonapi/initialize reply
JSONIPC: jsonipc.hh: reply to Jsonipc/handshake with protocol version 1
JSONIPC: jsonipc.js: require Jsonipc/handshake with protocol version 1
UI: startup.js: maintain $id GC list via Jsonipc.finalization_registration
JSONIPC: jsonipc.js: call Jsonipc.finalization_registration hook from ctors
UI: GNUmakefile: allow subdir builds
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-12 Tim Janik # 6f7fd610267
UI: startup.js: renew_gc() on object finalization, report_gc() when requested
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-12 Tim Janik # 6150f769e2e
ASE: jsonapi.cc: support renew_gc() and report_gc() to start new GC cycle
The basic idea behind remote GB by the UI requesting renew_gc() and the
Jsonapi server swapping wrapper tables in response is described here:
https://testbit.eu/2014/rapicorn-remote-reference-counting
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-12 Tim Janik # d08eb54d691
ASE: jsonapi.cc: test conscise erase() loop over std::map<>
Checks the erase() loop used by Jsonipc over std::map<>, in
particular ++end must be avoided for empty maps.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-12 Tim Janik # 941fafe7324
JSONIPC: jsonipc.hh: support clear/swap/size/move_into for instance ptr map
Signed-off-by: Tim Janik <timj@gnu.org>
2022-09-11 Tim Janik # 6ac5adb6a7c
MISC: config-uname.mk: use -Og for debugging which improves debug info
Using -Og is a better choice than -O0, because some compiler passes that
collect debug information are disabled at -O0. (gcc docs)
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # f1e26e881c9
UI: startup.js: properly namespace Jsonapi/Trigger
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # dfc82ca9b9f
ASE: jsonapi.cc: properly namespace Jsonapi/Trigger
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # e29ff5dd555
DOC: ch-development.md: properly namespace Jsonapi/Trigger
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # 01e67912b89
DOC: ch-development.md: minor update
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # 81f86410ae9
UI: startup.js: request Ase.Server via Jsonapi/initialize after handshake
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # 1128118ca14
ASE: jsonapi.cc: provide Ase.Server object as Jsonapi/initialize reply
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # 56a707e94a6
JSONIPC: jsonipc.hh: reply to Jsonipc/handshake with protocol version 1
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # 27431d247f6
JSONIPC: jsonipc.js: require Jsonipc/handshake with protocol version 1
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # 8c8e157ccf5
UI: startup.js: maintain $id GC list via Jsonipc.finalization_registration
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # 7571dcb4b74
JSONIPC: jsonipc.js: call Jsonipc.finalization_registration hook from ctors
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-27 Tim Janik # 3c08e52c0a0
UI: GNUmakefile: allow subdir builds
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-24 Tim Janik # 72174fb5f39
Merge branch 'automatic-backup'
* automatic-backup:
ASE: project.cc: automatically backup existing project files
ASE: path: add glob()
ASE: path: add rename()
ASE: utils: add now_strftime()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-21 Tim Janik # e7cef958be1
ASE: project.cc: automatically backup existing project files
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-20 Tim Janik # c340d6dfbf3
ASE: path: add glob()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-20 Tim Janik # 60e82bb2658
ASE: path: add rename()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-20 Tim Janik # 47bddefe903
ASE: utils: add now_strftime()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-24 Tim Janik # 031c81f2efe
Merge branch 'clap-file-reference'
* clap-file-reference:
ASE: clapplugin: clean up load_state() and save_state()
ASE: *.cc: use operator<< where needed for serialization
ASE: serialize.hh: add operator>> and operator<< to support pure const serialization
ASE: serialize.hh: operator&: catch serialization into const at compile time
ASE: project.cc: merge asset_hashes
ASE: project.cc: use Error::NO_PROJECT_DIR if anklang.project is missing
ASE: api.hh: add Error::NO_PROJECT_DIR
ASE: clapplugin: implement file collection
ASE: clapplugin.cc: save_state: request plugin_file_reference->save_resources()
ASE: clapplugin.cc: add CLAP_EXT_FILE_REFERENCE skeleton
ASE: serialize.cc: use TelemetryField for simple serialization tests
ASE: serialize: support external serialize(T&,WritNode&) impls via ADL
ASE: serialize.cc: test tuple serialization
ASE: project.cc: loader_resolve: lookup and resolve files from project dir
ASE: project.cc: serialize file hashes as tuple array
ASE: serialize.hh: serialize tuple<...> types
UI: b/menubar.vue: use project.saved_filename() as "Save" location
ASE: api.hh: add Project.saved_filename()
ASE: Makefile.mk: upgrade to clap-1.1.1.tar.gz
UI: b/app.js: use save_project()
ASE: api.hh: rename Project.save_project()
ASE: project.cc: canonicalize project file name when saving
ASE: project: properly implement writer_collect()
ASE: project: add API to collect external files
ASE: strings: add strings_version_sort()
ASE: path: add dircontains() to check dir hierarchy and compute relative path
ASE: path: add copy_file(), use FICLONE ioctl to create CoW clone if possible
Currently, FICLONE is supported under Linux for XFS and BTRFS.
Use `filefrag -v` to detext or debug shared file extents.
ASE: path: add file_size(), gracefully handle errors
ASE: clapplugin: derive ClapPluginHandle from GadgetImpl
ASE: api.hh: print user notes and allow `rest` argument
ASE: api.hh: introduce Gadget._project()
ASE: strings: add string_to_hex()
ASE: main.cc: add --blake3 <FILE> to test Blake3 hashing
ASE: compress: add blake3_hash_file() and blake3_hash_string()
ASE: storage: add stream_reader_from_file()
ASE: Makefile.mk: compile BLAKE3 with SSE and AVX variants
ASE: Makefile.mk: provide blake3.h from BLAKE3-1.3.1.tar.gz
ASE: Makefile.mk: use SOURCE2_O
MISC: config-uname.mk: add $(call SOURCE2_O) to create object extensions
ASE: clapplugin.cc: fix warnings
MISC: config-checks.mk: show sha256sum command used failing downloads
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-22 Tim Janik # ea9c87e510c
ASE: clapplugin: clean up load_state() and save_state()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-24 Tim Janik # 71f5d014573
ASE: *.cc: use operator<< where needed for serialization
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-24 Tim Janik # a398faab038
ASE: serialize.hh: add operator>> and operator<< to support pure const serialization
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-22 Tim Janik # 5635aa7b68b
ASE: serialize.hh: operator&: catch serialization into const at compile time
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-22 Tim Janik # 3e75180211a
ASE: project.cc: merge asset_hashes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-22 Tim Janik # a4aae0d6fee
ASE: project.cc: use Error::NO_PROJECT_DIR if anklang.project is missing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-22 Tim Janik # f2e03c414c7
ASE: api.hh: add Error::NO_PROJECT_DIR
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-22 Tim Janik # 8c2b3f788e3
ASE: clapplugin: implement file collection
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # dde32e492b3
ASE: clapplugin.cc: save_state: request plugin_file_reference->save_resources()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # e09cc3ecd4f
ASE: clapplugin.cc: add CLAP_EXT_FILE_REFERENCE skeleton
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-22 Tim Janik # 238d688ef16
ASE: serialize.cc: use TelemetryField for simple serialization tests
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-21 Tim Janik # dd3f5dd8831
ASE: serialize: support external serialize(T&,WritNode&) impls via ADL
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-21 Tim Janik # fa84014c25f
ASE: serialize.cc: test tuple serialization
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-21 Tim Janik # f12435091a7
ASE: project.cc: loader_resolve: lookup and resolve files from project dir
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-21 Tim Janik # c9307feb01f
ASE: project.cc: serialize file hashes as tuple array
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-21 Tim Janik # 154711ae50d
ASE: serialize.hh: serialize tuple<...> types
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-21 Tim Janik # 6db96a2081a
UI: b/menubar.vue: use project.saved_filename() as "Save" location
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-21 Tim Janik # a865f230a54
ASE: api.hh: add Project.saved_filename()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # d95c1eb8a39
ASE: Makefile.mk: upgrade to clap-1.1.1.tar.gz
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-20 Tim Janik # afbe708fd29
UI: b/app.js: use save_project()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-20 Tim Janik # f56a742daa8
ASE: api.hh: rename Project.save_project()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-20 Tim Janik # 6e3e26ffefc
ASE: project.cc: canonicalize project file name when saving
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-20 Tim Janik # 4a6d13f7080
ASE: project: properly implement writer_collect()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-19 Tim Janik # ac60aeb12ca
ASE: project: add API to collect external files
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-20 Tim Janik # dedd0961b5d
ASE: strings: add strings_version_sort()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-20 Tim Janik # c810c7cdf00
ASE: path: add dircontains() to check dir hierarchy and compute relative path
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-19 Tim Janik # f8d5a70fa67
ASE: path: add copy_file(), use FICLONE ioctl to create CoW clone if possible
Currently, FICLONE is supported under Linux for XFS and BTRFS.
Use `filefrag -v` to detext or debug shared file extents.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-19 Tim Janik # 843a95f7ed2
ASE: path: add file_size(), gracefully handle errors
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-18 Tim Janik # 1e451f88798
ASE: clapplugin: derive ClapPluginHandle from GadgetImpl
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-18 Tim Janik # 327b1d92526
ASE: api.hh: print user notes and allow `rest` argument
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-18 Tim Janik # 40f7dd26223
ASE: api.hh: introduce Gadget._project()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # c45452822d1
ASE: strings: add string_to_hex()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # 020a93186d5
ASE: main.cc: add --blake3 <FILE> to test Blake3 hashing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # 1a58be901ae
ASE: compress: add blake3_hash_file() and blake3_hash_string()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # 8ea4c3c6ef0
ASE: storage: add stream_reader_from_file()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # e0a74afe89c
ASE: Makefile.mk: compile BLAKE3 with SSE and AVX variants
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # e8102173caf
ASE: Makefile.mk: provide blake3.h from BLAKE3-1.3.1.tar.gz
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # 43cd0285df6
ASE: Makefile.mk: use SOURCE2_O
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # 2cdb05b48d3
MISC: config-uname.mk: add $(call SOURCE2_O) to create object extensions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # 7188b4c6d83
ASE: clapplugin.cc: fix warnings
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-13 Tim Janik # df5d962bdf2
MISC: config-checks.mk: show sha256sum command used failing downloads
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-12 Tim Janik # 5f771290989
Merge branch 'sse+fma-synth-engine' - build releases with SSE + FMA support
* sse+fma-synth-engine:
ASE: Makefile.mk: build FMA variant iff MODE=production INSN=sse
MISC: mkassets.sh: build releases with MODE=production INSN=sse
MISC: Makefile.mk: remove INSN build remnants
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-12 Tim Janik # cea04b913bd
ASE: Makefile.mk: build FMA variant iff MODE=production INSN=sse
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-12 Tim Janik # 7e3557f60c3
MISC: mkassets.sh: build releases with MODE=production INSN=sse
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-12 Tim Janik # 65b93176383
MISC: Makefile.mk: remove INSN build remnants
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-12 Tim Janik # a1698874067
Merge branch 'fix-scripts'
* fix-scripts:
MISC: mkassets.sh: handle unbound $V
MISC: mkdeb.sh: handle unbound $V
MISC: mkAppImage.sh: handle unbound $V
MISC: dbuild.sh: handle unbound $V
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # c8a1aa4de44
MISC: mkassets.sh: handle unbound $V
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 11f8b18c1a8
MISC: mkdeb.sh: handle unbound $V
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 39757c5eff5
MISC: mkAppImage.sh: handle unbound $V
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 4b7f1c2324c
MISC: dbuild.sh: handle unbound $V
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 2fd2f5f45d5
Merge branch 'dockerize-asset-builds'
* dockerize-asset-builds:
MISC: Makefile.mk: adjust release-message
MISC: Makefile.mk: export $V for build scripts
MISC: Makefile.mk: simplify builds, merge upload-nightly and upload-release
Makefile.mk: fix ls-tree.lst generation in tarballs
MISC: mkassets.sh: extract release info, make AppImage
MISC: mkAppImage.sh: move AppImage build logic here
MISC: mkassets.sh: build binary packages from tarball
MISC: mkdeb.sh: pass $V to make
MISC: dbuild.sh: pass $V into docker env
MISC: dbuild.sh: remove unused .dbuild/ handling
MISC: Dockerfile.focal: reduce layers
MISC: Dockerfile.focal: always become 'builder' user, prepare /ootbuild/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # b3424988f29
MISC: Makefile.mk: adjust release-message
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 2f33365415a
MISC: Makefile.mk: export $V for build scripts
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # fbbb1076445
MISC: Makefile.mk: simplify builds, merge upload-nightly and upload-release
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 2dc45e24116
Makefile.mk: fix ls-tree.lst generation in tarballs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # e01a9295ecb
MISC: mkassets.sh: extract release info, make AppImage
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 3d62152511d
MISC: mkAppImage.sh: move AppImage build logic here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 3aeda702df5
MISC: mkassets.sh: build binary packages from tarball
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 9f9bceccb5d
MISC: mkdeb.sh: pass $V to make
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 71bda689dd9
MISC: dbuild.sh: pass $V into docker env
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 3e61c9c5076
MISC: dbuild.sh: remove unused .dbuild/ handling
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # b433d4cfd5e
MISC: Dockerfile.focal: reduce layers
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 415192dd74b
MISC: Dockerfile.focal: always become 'builder' user, prepare /ootbuild/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 76c621462e7
Merge branch 'arch-ci'
* arch-ci:
.gitignore: add ignores
GITHUB: workflows/testing.yml: cleanup after each platform build
GITHUB: workflows/testing.yml: build and test on arch, cache arch docker image
MISC: Dockerfile.arch: setup archlinux dependencies for building Anklang
Use upstream CastXML, the AUR version seems outdated and broken.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-09 Tim Janik # 2ad3eb6eb5e
.gitignore: add ignores
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-09 Tim Janik # fd7e8b75657
GITHUB: workflows/testing.yml: cleanup after each platform build
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-08 Tim Janik # 14cfe853cd8
GITHUB: workflows/testing.yml: build and test on arch, cache arch docker image
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-08 Tim Janik # 692ab0b65ee
MISC: Dockerfile.arch: setup archlinux dependencies for building Anklang
Use upstream CastXML, the AUR version seems outdated and broken.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-11 Tim Janik # 433f9bdab39
Merge branch 'docker-caching'
* docker-caching:
MISC: dbuild.sh: skip TeX during docker image build with -T
MISC: Dockerfile.focal: cleanup early to shrink docker image, possibly skip TeX
MISC: dbuild.sh: use misc/Dockerfile.focal by default, remove -d, change -f
MISC: Dockerfile.focal: rename from Dockerfile-apt, use FROM ubuntu:20.04
ASE: Makefile.mk: add missing dependencies for includes
ASE: sortnet.hh: include <functional> for std::less
Makefile.mk: use `ctags` executable
GITHUB: workflows/testing.yml: fix cache-hit detection
GITHUB: workflows/testing.yml: skip docker caching on cache miss
GITHUB: workflows/testing.yml: invalidate cache if misc/dbuild.sh changes
GITHUB: workflows/testing.yml: remove docker image test
MISC: get rid of --no-tex and $NO_TEX (now unused)
GITHUB: workflows/testing.yml: remove '--no-tex'
Avoiding Tex installation was only needed without docker image caching.
MISC: dbuild.sh: fix SIGPIPE when searching docker image for INITIALIZE
MISC: dbuild.sh: debug wrong INITIALIZE setting
MISC: dbuild.sh: use 'ubuntu:20.04' as base instead of 'ubuntu:focal'
Both are tags for the same image, but the former is already present
on Github's stock system.
GITHUB: workflows/testing.yml: fix grep exit status
GITHUB: workflows/testing.yml: invalidate cache if misc/Dockerfile-apt changes
GITHUB: workflows/testing.yml: stop forcing a docker build step
GITHUB: workflows/testing.yml: upgrade to actions/checkout@v2.4.2
GITHUB: workflows/testing.yml: cache docker image via github cache
GITHUB: workflows/testing.yml: find version inside docker
GITHUB: workflows/testing.yml: always use the same build arg for docker
MISC: version.sh: ignore missing tags in Format:%(describe) workaround
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-08 Tim Janik # 2c839de1ef3
MISC: dbuild.sh: skip TeX during docker image build with -T
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-08 Tim Janik # 596be4e9b53
MISC: Dockerfile.focal: cleanup early to shrink docker image, possibly skip TeX
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-08 Tim Janik # 8719edce17d
MISC: dbuild.sh: use misc/Dockerfile.focal by default, remove -d, change -f
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-08 Tim Janik # 9abe313948b
MISC: Dockerfile.focal: rename from Dockerfile-apt, use FROM ubuntu:20.04
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-08 Tim Janik # f1a6818e0b6
ASE: Makefile.mk: add missing dependencies for includes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-08 Tim Janik # b06056461da
ASE: sortnet.hh: include <functional> for std::less
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-08 Tim Janik # 7686e0dd9be
Makefile.mk: use `ctags` executable
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 15b4fbc61bb
GITHUB: workflows/testing.yml: fix cache-hit detection
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 74d992c41cb
GITHUB: workflows/testing.yml: skip docker caching on cache miss
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 04d9daa0a9a
GITHUB: workflows/testing.yml: invalidate cache if misc/dbuild.sh changes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 7d98adb8d14
GITHUB: workflows/testing.yml: remove docker image test
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # aabb1a7fa02
MISC: get rid of --no-tex and $NO_TEX (now unused)
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # c8f090ae8cf
GITHUB: workflows/testing.yml: remove '--no-tex'
Avoiding Tex installation was only needed without docker image caching.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # d994bcfec33
MISC: dbuild.sh: fix SIGPIPE when searching docker image for INITIALIZE
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 546323592c4
MISC: dbuild.sh: debug wrong INITIALIZE setting
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 85279caf093
MISC: dbuild.sh: use 'ubuntu:20.04' as base instead of 'ubuntu:focal'
Both are tags for the same image, but the former is already present
on Github's stock system.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # d23b91ba2fa
GITHUB: workflows/testing.yml: fix grep exit status
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 57c18cc47d8
GITHUB: workflows/testing.yml: invalidate cache if misc/Dockerfile-apt changes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 1a02ae57983
GITHUB: workflows/testing.yml: stop forcing a docker build step
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 33a7b7d3fd6
GITHUB: workflows/testing.yml: upgrade to actions/checkout@v2.4.2
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 3cd41fb85be
GITHUB: workflows/testing.yml: cache docker image via github cache
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # e5b44862018
GITHUB: workflows/testing.yml: find version inside docker
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-07 Tim Janik # 9958fe85a5b
GITHUB: workflows/testing.yml: always use the same build arg for docker
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 1df39d3b751
MISC: version.sh: ignore missing tags in Format:%(describe) workaround
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 50d9c06da33
Merge branch 'dist-tarball' - create distribution tarballs
Adjust versioning and build rules to support proper distribution tarballs
that will build without .git/ history.
* dist-tarball:
MISC: Dockerfile-apt: provide zstd
MISC: Makefile.mk: re-enable nightly asset builds
Makefile.mk: work around git 2.25.1 not handling Format:%(describe:match)
Ubuntu 20.04 still runs git 2.25.1.
MISC: version.sh: work around git 2.25.1 not handling Format:%(describe:match)
Ubuntu 20.04 still runs git 2.25.1.
MISC: Dockerfile-apt: add universal-ctags
MISC: dbuild.sh: recognize --help
Makefile.mk: use wildcard for toplevel CLEANFILES
MISC: Makefile.mk: list Nightly changes
MISC: Makefile.mk: fix upload-release
MISC: Makefile.mk: use TARBALL version for build-assets
MISC: Makefile.mk: minor fixups
MISC: Makefile.mk: only check-copyright if .git/ exists
MISC: Makefile.mk: remove versioned ChangeLog generation
Makefile.mk: ChangeLog: use slightly longer hashes
Makefile.mk: fix ChangeLog range
Makefile.mk: use ls-tree.lst to generate TAGS
MISC: Makefile.mk: use ls-tree.lst
DOC: Makefile.mk: use ls-tree.lst
Makefile.mk: create and distribute ls-tree.lst
MISC: config-utils.mk: provide only $(HAVE_GIT) which is true if .git/ exists
Using the old WITHGIT or WITHOUTGIT did not really work.
MISC: Makefile.mk: avoid -j, rely on MAKEFLAGS for parallel submakes
MISC: Makefile.mk: build-nightly: create and build dist tarball
MISC: dbuild.sh: use .dlcache subdir for dockerized ccache
MISC: Makefile.mk: build-assets: build from sources in $(TARBALL)
MISC: Makefile.mk: record and use artifacts in build-assets
MISC: Makefile.mk: add 'build-version' rule
MISC: Makefile.mk: call version.sh --make-nightly for nightly builds
MISC: Makefile.mk: check nightly versions
MISC: Makefile.mk: add 'versioned-manuals' rule
DOC: Makefile.mk: use packaged doc/copyright if Git is missing
GITHUB: workflows/testing.yml: build with --no-tex and SKIP_LATEX=true
Only the PDF manuals need Tex, skipping LaTex installation
significantly speeds up the CI builds.
MISC: dbuild.sh: add --no-tex (replaces --tex)
MISC: Dockerfile-apt: default to building with Tex
DOC: Makefile.mk: build PDF manuals, unless SKIP_LATEX=true
DOC: Makefile.mk: skip misc/mkcopyright.py if .git is not present
MISC: mkdeb.sh: use `misc/version.sh --commit-hash` instead of git
MISC: version.sh: add --commit-hash
MISC: version.sh: remove extra version printout for --make-nightly
MISC: version.sh: add --help and --make-nightly
MISC: version.sh: use the same COMMITINFO for archives and .git repos
Makefile.mk: dist: allow packaging with NEWS.md worktree changes
Makefile.mk: simplify make dist
Makefile.mk: add hard dependency on ctags-universal
Builds from Git need ctags-universal to reliably generate TAGS for
make dist.
Makefile.mk: provide $(builddir) and $>/ early on
Makefile.mk: check misc/version.sh execution
ASE: Makefile.mk: add missing minizip/mz_zip.h dependency
DOC: copyright.ini: list freeverb sources under Public Domain dedication
DEVICES: freeverb/freeverb.cc: license under MPL-2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 8595b1c8d53
MISC: Dockerfile-apt: provide zstd
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # b8d9e6a3ffc
MISC: Makefile.mk: re-enable nightly asset builds
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 163d4288bd8
Makefile.mk: work around git 2.25.1 not handling Format:%(describe:match)
Ubuntu 20.04 still runs git 2.25.1.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 4e79145d808
MISC: version.sh: work around git 2.25.1 not handling Format:%(describe:match)
Ubuntu 20.04 still runs git 2.25.1.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 90c77d2f4e2
MISC: Dockerfile-apt: add universal-ctags
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 314736150a9
MISC: dbuild.sh: recognize --help
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # ff5b240e87d
Makefile.mk: use wildcard for toplevel CLEANFILES
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 5c222510317
MISC: Makefile.mk: list Nightly changes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # e691d67247e
MISC: Makefile.mk: fix upload-release
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 003315b95d8
MISC: Makefile.mk: use TARBALL version for build-assets
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # d76981666ab
MISC: Makefile.mk: minor fixups
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # c9ef52e309a
MISC: Makefile.mk: only check-copyright if .git/ exists
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # e20cbac117a
MISC: Makefile.mk: remove versioned ChangeLog generation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # d1380d1f4c6
Makefile.mk: ChangeLog: use slightly longer hashes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # c254b7b7321
Makefile.mk: fix ChangeLog range
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # 0827b862569
Makefile.mk: use ls-tree.lst to generate TAGS
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # df18c72f669
MISC: Makefile.mk: use ls-tree.lst
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # 453fbd5933b
DOC: Makefile.mk: use ls-tree.lst
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # df060345158
Makefile.mk: create and distribute ls-tree.lst
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # d312cd19bcf
MISC: config-utils.mk: provide only $(HAVE_GIT) which is true if .git/ exists
Using the old WITHGIT or WITHOUTGIT did not really work.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # 39f035aa6ce
MISC: Makefile.mk: avoid -j, rely on MAKEFLAGS for parallel submakes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # 9a31d425405
MISC: Makefile.mk: build-nightly: create and build dist tarball
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 4982dc83b91
MISC: dbuild.sh: use .dlcache subdir for dockerized ccache
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # f3c1f478be1
MISC: Makefile.mk: build-assets: build from sources in $(TARBALL)
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-04 Tim Janik # e25a87bde3b
MISC: Makefile.mk: record and use artifacts in build-assets
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # d091a081cce
MISC: Makefile.mk: add 'build-version' rule
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-04 Tim Janik # 61d6d4aedd1
MISC: Makefile.mk: call version.sh --make-nightly for nightly builds
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-03 Tim Janik # 93338790a2c
MISC: Makefile.mk: check nightly versions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-03 Tim Janik # c4130d9562e
MISC: Makefile.mk: add 'versioned-manuals' rule
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # ef959ead459
DOC: Makefile.mk: use packaged doc/copyright if Git is missing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 445d9612287
GITHUB: workflows/testing.yml: build with --no-tex and SKIP_LATEX=true
Only the PDF manuals need Tex, skipping LaTex installation
significantly speeds up the CI builds.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 550c7640a09
MISC: dbuild.sh: add --no-tex (replaces --tex)
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 8727ad1c0ac
MISC: Dockerfile-apt: default to building with Tex
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # 39d6d0805ba
DOC: Makefile.mk: build PDF manuals, unless SKIP_LATEX=true
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # fe9e20751e9
DOC: Makefile.mk: skip misc/mkcopyright.py if .git is not present
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 14a45b2b848
MISC: mkdeb.sh: use `misc/version.sh --commit-hash` instead of git
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-06 Tim Janik # 0a099f33448
MISC: version.sh: add --commit-hash
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # cc98c0a8dad
MISC: version.sh: remove extra version printout for --make-nightly
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-04 Tim Janik # 0b7889e0820
MISC: version.sh: add --help and --make-nightly
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-03 Tim Janik # fc530c2a557
MISC: version.sh: use the same COMMITINFO for archives and .git repos
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # 37630198eb1
Makefile.mk: dist: allow packaging with NEWS.md worktree changes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # e204634f248
Makefile.mk: simplify make dist
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-05 Tim Janik # f2898bc7046
Makefile.mk: add hard dependency on ctags-universal
Builds from Git need ctags-universal to reliably generate TAGS for
make dist.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-04 Tim Janik # e0d0ce08298
Makefile.mk: provide $(builddir) and $>/ early on
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-03 Tim Janik # 942d9d663dd
Makefile.mk: check misc/version.sh execution
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-03 Tim Janik # 3eed9e02847
ASE: Makefile.mk: add missing minizip/mz_zip.h dependency
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-02 Tim Janik # d91c2d9d72b
DOC: copyright.ini: list freeverb sources under Public Domain dedication
Signed-off-by: Tim Janik <timj@gnu.org>
2022-08-02 Tim Janik # 162cb9bccba
DEVICES: freeverb/freeverb.cc: license under MPL-2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-31 Tim Janik # 554794d7f85
Merge branch 'freeverb'
* freeverb:
DEVICES: freeverb/freeverb.cc: turn into a working AudioProcessor for Ase
DEVICES: freeverb/freeverb.cc: make query_info() const, i.e. MT-Safe
DEVICES: freeverb/freeverb.cc: move all code completely into Anon namespace
DEVICES: freeverb/freeverb.cc: use explicit add_param() IDs and fix arguments
DEVICES: freeverb: implement STK and VLC damping
Avoid reinforcing feedback loop in the original damping code,
by providing VLC and STK damping modes. The latter is likely
closest to the original intention so it is now the default.
This also reorders some parameters and removes the original
freezing mode, that does not really make sense for Processors.
DEVICES: freeverb/freeverb.cc: add Freeverb Processor
DEVICES: freeverb/revmodel.cpp: fix missing `int i` decls
DEVICES: freeverb/Freeverb*: remove unused vst files
DEVICES: freeverb/: fix up whitespace and \n without \r everywhere
DEVICES: freeverb/: Freeverb - free public domain reverb SOURCE CODE
Freeverb - Free, studio-quality reverb SOURCE CODE in the public domain
Written by Jezar at Dreampoint - http://www.dreampoint.co.uk
DEVICES: freeverb/Makefile.mk: add source file to devices/4ase.ccfiles
DEVICES: freeverb/GNUmakefile: allow subdir builds
DEVICES: Makefile.mk: add dependencies, clean rule, etc for devices/ sources
DEVICES: blepsynth/Makefile.mk: simply add source files to devices/4ase.ccfiles
UI: b/contextmenu.vue: allow 0 as valid menuitem.uri value
UI: b/cliplist.vue: only call non-null Shell.piano_current_tick()
README.md: fix manual link
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-30 Tim Janik # a94769b75f1
DEVICES: freeverb/freeverb.cc: turn into a working AudioProcessor for Ase
Signed-off-by: Tim Janik <timj@gnu.org>
2020-09-23 Tim Janik # 61c6c50a41d
DEVICES: freeverb/freeverb.cc: make query_info() const, i.e. MT-Safe
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-10 Tim Janik # 56b742a1106
DEVICES: freeverb/freeverb.cc: move all code completely into Anon namespace
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-09 Tim Janik # c2bfe139d15
DEVICES: freeverb/freeverb.cc: use explicit add_param() IDs and fix arguments
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-09 Tim Janik # 69a005460e8
DEVICES: freeverb: implement STK and VLC damping
Avoid reinforcing feedback loop in the original damping code,
by providing VLC and STK damping modes. The latter is likely
closest to the original intention so it is now the default.
This also reorders some parameters and removes the original
freezing mode, that does not really make sense for Processors.
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-09 Tim Janik # 9017a2d3e2f
DEVICES: freeverb/freeverb.cc: add Freeverb Processor
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-09 Tim Janik # 862b79fdc54
DEVICES: freeverb/revmodel.cpp: fix missing `int i` decls
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-09 Tim Janik # b9e48182e1e
DEVICES: freeverb/Freeverb*: remove unused vst files
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-09 Tim Janik # 3bae4f629af
DEVICES: freeverb/: fix up whitespace and \n without \r everywhere
Signed-off-by: Tim Janik <timj@gnu.org>
2000-05-24 Jeremy Wakefield # d221bb05512
DEVICES: freeverb/: Freeverb - free public domain reverb SOURCE CODE
Freeverb - Free, studio-quality reverb SOURCE CODE in the public domain
Written by Jezar at Dreampoint - http://www.dreampoint.co.uk
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-30 Tim Janik # 05941eb2fd1
DEVICES: freeverb/Makefile.mk: add source file to devices/4ase.ccfiles
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-30 Tim Janik # 1c44507fdcd
DEVICES: freeverb/GNUmakefile: allow subdir builds
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-30 Tim Janik # 00be5d77afc
DEVICES: Makefile.mk: add dependencies, clean rule, etc for devices/ sources
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-30 Tim Janik # 834c98d3db3
DEVICES: blepsynth/Makefile.mk: simply add source files to devices/4ase.ccfiles
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-30 Tim Janik # 817024fe85c
UI: b/contextmenu.vue: allow 0 as valid menuitem.uri value
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-30 Tim Janik # 3d708f70c71
UI: b/cliplist.vue: only call non-null Shell.piano_current_tick()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-30 Tim Janik # c066025b50a
README.md: fix manual link
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # cc1cb08ab20
Merge branch 'jack-driver'
* jack-driver:
DOC: ch-install.md: merge jack howto into driver-setup section
DOC: ch-install.md: add chapter about download and installation
ASE: main.cc: print the real executable_name() for --version and usage
ASE: driver.cc: load jackdriver.so
ASE: Makefile.mk: optionally build jackdriver.so
MISC: config-checks.mk: check if jack.pc >= 0.125.0 is present
Jack 0.125.0 ships with Ubuntu-20.04.
ASE: driver-jack.cc: turn into a working PCM driver for Ase
ASE: driver-jack.cc: adapto to Ase namespace
ASE: merge original Jack driver by Stefan Westerfeld
Initial version of Jack driver using the new driver API
Add minimal jack howto
Block SIGPIPE to avoid crashes when jackd dies
Driver: return read and write latency for a pcm driver separately
For instance for synchronizing the play position pointer ui with the audio
buffering, you want to know how much write latency you have, but don't care
about the amount of read latency.
Add list with possible improvements from PR 31
https://github.com/tim-janik/beast/pull/31
Add some minor fixes as requested in review
ASE: engine.cc: consistently calculate buffer size for multiple channels
ASE: datautils.hh: add fast_copy() for floats and ints
ASE: driver-alsa.cc: adjust debug messages, remove unused variable
ASE: main.cc: require command line options to enable JSIPC logging
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 0788b89a319
DOC: ch-install.md: merge jack howto into driver-setup section
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # f6668f5a32f
DOC: ch-install.md: add chapter about download and installation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 8ac84cae4e3
ASE: main.cc: print the real executable_name() for --version and usage
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 3b989073be9
ASE: driver.cc: load jackdriver.so
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 16f67f7ae44
ASE: Makefile.mk: optionally build jackdriver.so
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 591025bd181
MISC: config-checks.mk: check if jack.pc >= 0.125.0 is present
Jack 0.125.0 ships with Ubuntu-20.04.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 1a807e388f8
ASE: driver-jack.cc: turn into a working PCM driver for Ase
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-18 Tim Janik # acfbca65b59
ASE: driver-jack.cc: adapto to Ase namespace
Signed-off-by: Tim Janik <timj@gnu.org>
2019-09-19 Stefan Westerfeld # c793152f9c0
ASE: merge original Jack driver by Stefan Westerfeld
Initial version of Jack driver using the new driver API
Add minimal jack howto
Block SIGPIPE to avoid crashes when jackd dies
Driver: return read and write latency for a pcm driver separately
For instance for synchronizing the play position pointer ui with the audio
buffering, you want to know how much write latency you have, but don't care
about the amount of read latency.
Add list with possible improvements from PR 31
https://github.com/tim-janik/beast/pull/31
Add some minor fixes as requested in review
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 35b4683cf53
ASE: engine.cc: consistently calculate buffer size for multiple channels
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 6461bf663fb
ASE: datautils.hh: add fast_copy() for floats and ints
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 096df8d8e33
ASE: driver-alsa.cc: adjust debug messages, remove unused variable
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 45d6416d909
ASE: main.cc: require command line options to enable JSIPC logging
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 61e8d0544ff
Merge branch 'version-fixes'
* version-fixes:
ASE: remove unneeded version postfix from AnklangSynthEngine
MISC: version.sh: fix development postfix for shallow versions
MISC: version.sh: fix build id with development postfix
MISC: Makefile.mk, version.sh: fix release tag missing 'v'-prefix
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-29 Tim Janik # 6f94c9bf192
ASE: remove unneeded version postfix from AnklangSynthEngine
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-26 Tim Janik # c1dc2b8c6e0
MISC: version.sh: fix development postfix for shallow versions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-26 Tim Janik # c1a34ca41b1
MISC: version.sh: fix build id with development postfix
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-26 Tim Janik # ff465e21493
MISC: Makefile.mk, version.sh: fix release tag missing 'v'-prefix
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-26 Tim Janik # bf4218380ff
NEWS.md: Anklang 0.1.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-26 Tim Janik # 76bfa6d1507
Merge branch 'desktop-file-fixes'
* desktop-file-fixes:
GITHUB: workflows/testing.yml: remove action-docker-layer-caching
Lately, action-docker-layer-caching@v0.0.11 keeps failing due to lack of
space and that way wastes several minutes of build time.
MISC: mkdeb.sh: add missing update-desktop-database for /usr/local/
MISC: mkdeb.sh: use ZSTD compression for Debian packages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-26 Tim Janik # 57bcf49dd60
GITHUB: workflows/testing.yml: remove action-docker-layer-caching
Lately, action-docker-layer-caching@v0.0.11 keeps failing due to lack of
space and that way wastes several minutes of build time.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-25 Tim Janik # c262f6490db
MISC: mkdeb.sh: add missing update-desktop-database for /usr/local/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-25 Tim Janik # 503a4c4d2d5
MISC: mkdeb.sh: use ZSTD compression for Debian packages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-25 Tim Janik # ccd830c4d5e
Merge branch 'cli-projects'
* cli-projects:
UI: startup.js: load command line files
ELECTRON: main.js: provide 'files' to the UI
MISC: mkdeb.sh: run update-mime-database for usr/local after installation
MISC: anklang.desktop: allow starting Anklang with project files
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-25 Tim Janik # c7b51b03627
UI: startup.js: load command line files
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-25 Tim Janik # 65afc209716
ELECTRON: main.js: provide 'files' to the UI
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-24 Tim Janik # 4f2b240aeaa
MISC: mkdeb.sh: run update-mime-database for usr/local after installation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-24 Tim Janik # ae8340b9903
MISC: anklang.desktop: allow starting Anklang with project files
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-25 Tim Janik # 1814efb78c7
Merge branch 'build-fixups'
* build-fixups:
MISC: Makefile.mk: allow simple build-assets test builds
ASE: main.cc: simplify --check option
UI: b/aboutdialog.vue: properly show anklang version and sound engine build_id
ASE: api.hh: export Server.get_build_id()
MISC: Makefile.mk: add upload-release
MISC: Makefile.mk: move build-assets rule
MISC: Makefile.mk: remove DETAILED_VERSION from build-assets
MISC: Makefile.mk: pass CHECKOUT_HEAD into build-assets
MISC: Makefile.mk: add build-release
MISC: Makefile.mk: adjust version tag pattern
MISC: dbuild.sh: support podman, this needs PODMAN_USERNS=keep-id for volumes
MISC: version.sh: add --release
MISC: version.sh: improve error message
MISC: version.sh: postfix devel versions and use git-describe in git archives
ASE: Makefile.mk: use versioned filename for ase/buildversion-$(version).cc
MISC: config-checks.mk: fluidsynth is not currently needed
MISC: mkdeb.sh: fluidsynth is not currently needed
MISC: Dockerfile-apt: fluidsynth is not currently needed
GITHUB: workflows/ircbot.py: adjust mIRC RESET code to work without digits
The Thunderbird IRC client hides text if mIRC default-fg+default-bg is sent,
so instead, skip the numbers during reset, color codes are currently not
followed by any digits anyway.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-24 Tim Janik # a2b770c119d
MISC: Makefile.mk: allow simple build-assets test builds
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-24 Tim Janik # 7255818b2a3
ASE: main.cc: simplify --check option
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 7326c73049d
UI: b/aboutdialog.vue: properly show anklang version and sound engine build_id
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 1ab8fbbe2a5
ASE: api.hh: export Server.get_build_id()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 89f9a224860
MISC: Makefile.mk: add upload-release
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 3422acd6c74
MISC: Makefile.mk: move build-assets rule
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 0eabcf1d879
MISC: Makefile.mk: remove DETAILED_VERSION from build-assets
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 4fdd89875a9
MISC: Makefile.mk: pass CHECKOUT_HEAD into build-assets
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 8ec45209fcd
MISC: Makefile.mk: add build-release
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 45dc640058c
MISC: Makefile.mk: adjust version tag pattern
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 40a2b0f9fab
MISC: dbuild.sh: support podman, this needs PODMAN_USERNS=keep-id for volumes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # c0961bee0f8
MISC: version.sh: add --release
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # 3f4289d4c76
MISC: version.sh: improve error message
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-23 Tim Janik # e2dbd4681ab
MISC: version.sh: postfix devel versions and use git-describe in git archives
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-24 Tim Janik # 4ccdb508038
ASE: Makefile.mk: use versioned filename for ase/buildversion-$(version).cc
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-24 Tim Janik # 314037f7fc6
MISC: config-checks.mk: fluidsynth is not currently needed
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-24 Tim Janik # 530bc8dd953
MISC: mkdeb.sh: fluidsynth is not currently needed
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-24 Tim Janik # 11ed5a92328
MISC: Dockerfile-apt: fluidsynth is not currently needed
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-24 Tim Janik # 2de8ce54e30
GITHUB: workflows/ircbot.py: adjust mIRC RESET code to work without digits
The Thunderbird IRC client hides text if mIRC default-fg+default-bg is sent,
so instead, skip the numbers during reset, color codes are currently not
followed by any digits anyway.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-20 Tim Janik # 48efcd4d043
Merge branch '2k-engine-blocks'
* 2k-engine-blocks:
UI: b/positionview.vue: use fixed width counter and timer to reduce relayouting
The timer and counter receive frequent telemetry updates, and each update
triggers a browser layout.
UI: b/piano-roll.vue: transform indicator according to current tick
UI: b/cliplist.vue: use $b-piano-roll-indicator
UI: theme.scss: add $b-piano-roll-indicator color
UI: b/cliplist.vue: update piano_current_tick if piano_current_clip matches
UI: b/shell.vue: provide piano_current_clip, piano_current_tick for telemetry
ASE: driver-alsa.cc: fix some ALSA debug messages
ASE: driver-alsa.cc: use 384 as minimum period size for pulseaudio
Avoid dropouts with pulseaudio, which is cannot operate at
minimum latencies.
ASE: driver-alsa.cc: allow 2k frame offsets
ASE: processor.cc: render_block: assert AUDIO_BLOCK_MAX_RENDER_SIZE);
ASE: engine.cc: use audio driver buffer size and preferences.synth_latency
ASE: defs.hh: set AUDIO_BLOCK_MAX_RENDER_SIZE to 2k
Move AUDIO_BLOCK_MAX_RENDER_SIZE out of transport.hh.
ASE: midilib.cc: allow 2k frame offsets
ASE: midievent: use 12 frame bits to address ±2k block offsets
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # 3ac5a5b84b4
UI: b/positionview.vue: use fixed width counter and timer to reduce relayouting
The timer and counter receive frequent telemetry updates, and each update
triggers a browser layout.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # 9ddadee1295
UI: b/piano-roll.vue: transform indicator according to current tick
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # d1344b4bb87
UI: b/cliplist.vue: use $b-piano-roll-indicator
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # 758f3117d35
UI: theme.scss: add $b-piano-roll-indicator color
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # 72137051d5d
UI: b/cliplist.vue: update piano_current_tick if piano_current_clip matches
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # efd8f89330d
UI: b/shell.vue: provide piano_current_clip, piano_current_tick for telemetry
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-20 Tim Janik # c7cb1be61b9
ASE: driver-alsa.cc: fix some ALSA debug messages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # fc55e05ff5b
ASE: driver-alsa.cc: use 384 as minimum period size for pulseaudio
Avoid dropouts with pulseaudio, which is cannot operate at
minimum latencies.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # 47fdfa53ff8
ASE: driver-alsa.cc: allow 2k frame offsets
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # 2aff33792fb
ASE: processor.cc: render_block: assert AUDIO_BLOCK_MAX_RENDER_SIZE);
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # b9f9306d732
ASE: engine.cc: use audio driver buffer size and preferences.synth_latency
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # d6635931229
ASE: defs.hh: set AUDIO_BLOCK_MAX_RENDER_SIZE to 2k
Move AUDIO_BLOCK_MAX_RENDER_SIZE out of transport.hh.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # 6510035bc1a
ASE: midilib.cc: allow 2k frame offsets
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-15 Tim Janik # 15839f3ee11
ASE: midievent: use 12 frame bits to address ±2k block offsets
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-20 Tim Janik # 3999b60813c
Merge branch 'build-fixes'
* build-fixes:
ASE: gtk2wrap.hh: newer STL needs explicit include <string>
MISC: dbuild.sh: remove unused gitdir volume
MISC: dbuild.sh: set CCACHE_DIR=/ootbuild/.ccache/ conditionally for -o <dir>
MISC: Dockerfile-apt: ENV CCACHE_DIR breaks without a /ootbuild/ volume
UI: Makefile.mk: avoid race when creating /ui/assets/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-17 Tim Janik # 24e4a22f472
ASE: gtk2wrap.hh: newer STL needs explicit include <string>
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 732bd3e1a0c
MISC: dbuild.sh: remove unused gitdir volume
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 17c69a5283f
MISC: dbuild.sh: set CCACHE_DIR=/ootbuild/.ccache/ conditionally for -o <dir>
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # e7550617570
MISC: Dockerfile-apt: ENV CCACHE_DIR breaks without a /ootbuild/ volume
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-13 Tim Janik # 0cf7e0eef90
UI: Makefile.mk: avoid race when creating /ui/assets/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-13 Tim Janik # 6324699e5b2
Merge branch 'piano-ctrl-rewrite'
* piano-ctrl-rewrite:
UI: b/app.js: pick a default clip for the piano roll
UI: b/piano-ctrl.js: rewrite selection handling and tool implementations
Describe and consistently apply transactional modifications.
Process note changes via request queue, with reduced IPC.
Reimplement drag selection and selection change logic.
Implement simple paint notes variant for Pen tool.
Implement Erase drag tool to erase consecutive strokes of notes.
Implement horizontal selection as modification of rectangular selection.
Implement SHIFT=add and CONTROL=subtract selection modifiers.
Handle scroll area changes during selections.
Implement select-previous and select-next note for ALT+Left and ALT+Right.
Adjust piano-ctrl menu action handling in piano-roll.
UI: b/piano-roll.vue: remove focus id handling entirely
UI: b/piano-roll.vue: enable toolmenu hotkeys on hover
UI: b/piano-roll.vue: remove unused click handler
UI: b/piano-roll.vue: use Shell.get_note_cache()
UI: b/piano-roll.vue: use PointerDrag and scroll events for drag_select()
UI: b/piano-roll.vue: layout: provide xscroll/yscroll and xposition
UI: b/clipview.vue: use Shell.get_note_cache()
UI: b/shell.vue: introduce per clip note cache
ASE: clip: change_batch: collapse notes, keep selections out of undo
ASE: clip: rewrite change_batch, properly collapse, compress notes for undo
ASE: clip: add stringify_clip_note()
ASE: api.hh: Clip: remove insert_note, change_note, toggle_note
ASE: eventlist.hh: add replace() and copy() and equals() for event vector
ASE: compress: zstd: support compress levels and arbitrary memory regions
ASE: project.cc: print undo memory and execution info for ASE_DEBUG=undo
Add UDEBUG() to project.cc to print info for ASE_DEBUG=undo.
Add Project.undo_size_guess() to make an uneducated undo storage guess.
Add Project.undo_mem_counter to account for extra undo allocations without overhead.
This only works reliable if *one* project is examined per runtime.
ASE: jsonapi.cc: fix logging order to reflect message order
ASE: jsonapi.cc: coalesce notifies during IPC calls
ASE: clip.cc: use emit_notify()
ASE: object: introduce emit_notify() and CoalesceNotifies
ASE: platform: Stopwatch: print milliseconds and fix empty message in stop()
ASE: api.hh: add undogroup to change_batch(), ignore empty modifications
UI: util.js: add coalesced_events()
UI: util.js: add raster_line()
UI: util.js: cancel PointerDrag with Escape key
UI: util.js: allow functions as PointerDrag method argument
UI: util.js: PointerDrag: use configurable method and handle scroll events
JSONIPC: jsonipc.js: use an $id -> WeakRef map to mainatin object identities
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-08 Tim Janik # 0aaa044582b
UI: b/app.js: pick a default clip for the piano roll
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-08 Tim Janik # ce92823d8c4
UI: b/piano-ctrl.js: rewrite selection handling and tool implementations
Describe and consistently apply transactional modifications.
Process note changes via request queue, with reduced IPC.
Reimplement drag selection and selection change logic.
Implement simple paint notes variant for Pen tool.
Implement Erase drag tool to erase consecutive strokes of notes.
Implement horizontal selection as modification of rectangular selection.
Implement SHIFT=add and CONTROL=subtract selection modifiers.
Handle scroll area changes during selections.
Implement select-previous and select-next note for ALT+Left and ALT+Right.
Adjust piano-ctrl menu action handling in piano-roll.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-13 Tim Janik # ba9832a88fe
UI: b/piano-roll.vue: remove focus id handling entirely
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-13 Tim Janik # 11bbfb32d6c
UI: b/piano-roll.vue: enable toolmenu hotkeys on hover
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-13 Tim Janik # 90441ee1b30
UI: b/piano-roll.vue: remove unused click handler
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-09 Tim Janik # dd36d54cd42
UI: b/piano-roll.vue: use Shell.get_note_cache()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-08 Tim Janik # 24bc1606c30
UI: b/piano-roll.vue: use PointerDrag and scroll events for drag_select()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-08 Tim Janik # ecc324c3146
UI: b/piano-roll.vue: layout: provide xscroll/yscroll and xposition
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-09 Tim Janik # a3e486e1e3c
UI: b/clipview.vue: use Shell.get_note_cache()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-09 Tim Janik # 2bdd04abd27
UI: b/shell.vue: introduce per clip note cache
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-12 Tim Janik # 2ae721e2ba3
ASE: clip: change_batch: collapse notes, keep selections out of undo
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-11 Tim Janik # 7cd33878e1b
ASE: clip: rewrite change_batch, properly collapse, compress notes for undo
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-11 Tim Janik # b59a1b60be9
ASE: clip: add stringify_clip_note()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-11 Tim Janik # 26f5e61834b
ASE: api.hh: Clip: remove insert_note, change_note, toggle_note
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-11 Tim Janik # cef7337fc6e
ASE: eventlist.hh: add replace() and copy() and equals() for event vector
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-11 Tim Janik # 07fd6465b88
ASE: compress: zstd: support compress levels and arbitrary memory regions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-10 Tim Janik # f600660a4cc
ASE: project.cc: print undo memory and execution info for ASE_DEBUG=undo
Add UDEBUG() to project.cc to print info for ASE_DEBUG=undo.
Add Project.undo_size_guess() to make an uneducated undo storage guess.
Add Project.undo_mem_counter to account for extra undo allocations without overhead.
This only works reliable if *one* project is examined per runtime.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-12 Tim Janik # 3da478232ce
ASE: jsonapi.cc: fix logging order to reflect message order
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-09 Tim Janik # f1778717132
ASE: jsonapi.cc: coalesce notifies during IPC calls
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-09 Tim Janik # c6d417250d6
ASE: clip.cc: use emit_notify()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-09 Tim Janik # 004b0a823b1
ASE: object: introduce emit_notify() and CoalesceNotifies
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-09 Tim Janik # 223597bd0ef
ASE: platform: Stopwatch: print milliseconds and fix empty message in stop()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-09 Tim Janik # 2d8e9e2ffb3
ASE: api.hh: add undogroup to change_batch(), ignore empty modifications
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-13 Tim Janik # f0578bfc1fd
UI: util.js: add coalesced_events()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-13 Tim Janik # 3b93dc56c57
UI: util.js: add raster_line()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-13 Tim Janik # 13ac0d25ef8
UI: util.js: cancel PointerDrag with Escape key
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-08 Tim Janik # 9168bcf6976
UI: util.js: allow functions as PointerDrag method argument
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-08 Tim Janik # 1d22a222507
UI: util.js: PointerDrag: use configurable method and handle scroll events
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-09 Tim Janik # f83385853b6
JSONIPC: jsonipc.js: use an $id -> WeakRef map to mainatin object identities
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # af4b3f26ba1
Merge branch 'nightly-manuals'
* nightly-manuals:
.gitignore: ignore .dlcache/
MISC: Makefile.mk: upload-nightly: use wildcard for asset uploads
MISC: Makefile.mk: add anklang-manual.pdf and anklang-internals.pdf to nightly
MISC: Makefile.mk: preserve .ccache/ in build dir
MISC: Dockerfile-apt: allow ccache use under /ootbuild/.ccache/
MISC: Makefile.mk: set WITH_LATEX if xelatex is present
MISC: Dockerfile-apt: install texlive if TEX=y
MISC: dbuild.sh: add TEX=y build arg for --tex
ASE: atomics.hh: fix potential UB
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 66c0b573498
.gitignore: ignore .dlcache/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # d2244589396
MISC: Makefile.mk: upload-nightly: use wildcard for asset uploads
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 25d422f5530
MISC: Makefile.mk: add anklang-manual.pdf and anklang-internals.pdf to nightly
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 94e3acfd16d
MISC: Makefile.mk: preserve .ccache/ in build dir
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 7fed6c0dbe2
MISC: Dockerfile-apt: allow ccache use under /ootbuild/.ccache/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 6f0395f69a9
MISC: Makefile.mk: set WITH_LATEX if xelatex is present
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 6759a764d81
MISC: Dockerfile-apt: install texlive if TEX=y
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # ffa94134b9c
MISC: dbuild.sh: add TEX=y build arg for --tex
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 07aef6ff2ba
ASE: atomics.hh: fix potential UB
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 7006b70971d
Merge branch 'clap-parameters'
* clap-parameters:
UI: b/deviceeditor.vue: split very large parameter groups
Plugins with 10k+ properties are killing the current UI.
ASE: clapdevice: use improved nick finder property_guess_nick()
ASE: properties: property_guess_nick: reduce label to a few letters
This attempts to extract significant digits and letters from a
multi word label. The extractions are recombined to produce an
abbreviation of up to 3 letters.
ASE: clapplugin.cc: use AtomicBits for param change notification
ASE: clapplugin: add params as Property, handle CLAP event_param_value/get/set
ASE: processor: support atomic_bits_resize(), _iter() and atomic_bit_notify()
ASE: atomics: add AtomicBits, a vector of atomic bits
ASE: platform: add Stopwatch, a simple enter/exit timer for functions
ASE: path: add stringappend() and allow memwrite() to append
ASE: regex: add Re::sub() with back references
ASE: regex: rename Re::subn()
ASE: clapdevice: implement ClapPropertyImpl
ASE: regex: implement Re::findall()
ASE: device: remove duplicate access_property() implementation
ASE: engine: fix misplaced assertion
ASE: api.hh: make only Gadget.access_properties() pure virtual
Avoid forcing derived object to reimplement access_property(),
but allo reimplementing list_properties().
README.md: checkmark CLAP support
ASE: clapplugin: move ClapParamInfo definition into header file
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 2204aceb2c2
UI: b/deviceeditor.vue: split very large parameter groups
Plugins with 10k+ properties are killing the current UI.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 878e8cbf807
ASE: clapdevice: use improved nick finder property_guess_nick()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # e9f10564d85
ASE: properties: property_guess_nick: reduce label to a few letters
This attempts to extract significant digits and letters from a
multi word label. The extractions are recombined to produce an
abbreviation of up to 3 letters.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # 5f651677534
ASE: clapplugin.cc: use AtomicBits for param change notification
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-07 Tim Janik # fc6d3c2c36d
ASE: clapplugin: add params as Property, handle CLAP event_param_value/get/set
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-06 Tim Janik # 543fddff704
ASE: processor: support atomic_bits_resize(), _iter() and atomic_bit_notify()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-06 Tim Janik # 8d82e48635f
ASE: atomics: add AtomicBits, a vector of atomic bits
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-05 Tim Janik # 405c9025132
ASE: platform: add Stopwatch, a simple enter/exit timer for functions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-05 Tim Janik # 2562f8614b4
ASE: path: add stringappend() and allow memwrite() to append
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-05 Tim Janik # 781bf16d1e1
ASE: regex: add Re::sub() with back references
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-05 Tim Janik # 29cbd82d7d7
ASE: regex: rename Re::subn()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-04 Tim Janik # 0e3d55f4b73
ASE: clapdevice: implement ClapPropertyImpl
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-04 Tim Janik # 7218c5e307c
ASE: regex: implement Re::findall()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-04 Tim Janik # fe4c805db2c
ASE: device: remove duplicate access_property() implementation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-04 Tim Janik # ecd1085a447
ASE: engine: fix misplaced assertion
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-04 Tim Janik # 648ba13ee33
ASE: api.hh: make only Gadget.access_properties() pure virtual
Avoid forcing derived object to reimplement access_property(),
but allo reimplementing list_properties().
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-04 Tim Janik # 070e6fa702d
README.md: checkmark CLAP support
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-04 Tim Janik # 3e07350a9b8
ASE: clapplugin: move ClapParamInfo definition into header file
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # f00dfa71d6d
Merge branch 'clap-posix-fd-support'
* clap-posix-fd-support:
ASE: clapplugin.cc: implement CLAP_EXT_POSIX_FD_SUPPORT
ASE: loop: fix spurious IO source removal when its pollfd closes
MISC: config-uname.mk: use '/.' to display installation dirs, not '/...'
ASE: clapplugin.cc: avoid deinit() after init() returned false
The CLAP spec recently clarified this:
https://github.com/free-audio/clap/blob/e60671bec244f794e52c4d2c13a374c79883c51b/include/clap/entry.h#L49
UI: b/piano-ctrl.js: guard against UI layout changes before event delivery
UI: b/knob.vue: fix Shell.data_bubble references
README.md: slight rearrangement of badges
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # f8bab260892
ASE: clapplugin.cc: implement CLAP_EXT_POSIX_FD_SUPPORT
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # 08a391660a3
ASE: loop: fix spurious IO source removal when its pollfd closes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # a5293ff1b92
MISC: config-uname.mk: use '/.' to display installation dirs, not '/...'
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # 54a5fa0855b
ASE: clapplugin.cc: avoid deinit() after init() returned false
The CLAP spec recently clarified this:
https://github.com/free-audio/clap/blob/e60671bec244f794e52c4d2c13a374c79883c51b/include/clap/entry.h#L49
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # 1af2ee0e73c
UI: b/piano-ctrl.js: guard against UI layout changes before event delivery
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # 88235a6a8ed
UI: b/knob.vue: fix Shell.data_bubble references
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # 5bd3120fa6e
README.md: slight rearrangement of badges
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # 18888aa9b4c
Merge branch 'serialize-clap-plugins'
* serialize-clap-plugins:
ASE: project.cc: use Error::BAD_PROJECT where appropriate
ASE: storage.cc: fix minizip reporting broken archives as ENOENT
ASE: api.hh: add Error::BAD_PROJECT
ASE: api.hh: add RETRY, BROKEN_ARCHIVE errors, improve errno mapping
UI: b/menubar.vue: fix 'Save' to use the last known filename
UI: b/app.js: fix error dialog
UI: theme.scss: hide Mozilla spin button arrows (unfit for dark theme)
UI: b/app.js: show spinner while saving projects
UI: b/shell.vue: add show_spinner() and hide_spinner() to display spinner.svg
UI: eslintrc.js: support Shell global variable
UI: b/app.js: define Shell, leave bubble handling to the Shell
UI: b/shell.vue: introduce #b-shell-bubble-layer
UI: b/databubble.vue: move bubbles into #b-shell-bubble-layer
UI: Makefile.mk: extract keyframes from spinner.svg into spinner.scss
UI: assets/spinner.svg: add "busy" indicator drawing
UI: theme.scss, assets/spin-arrows.svg: rename & adjust spin-button arrows
ASE: clapdevice: serialize CLAP plugin state and parameters
Squashed commits to serialize plugin state:
Serialize CLAP param values
Add blob reading + writing to serialize()
Serialize plugin state
Cleanup CLAP plugin state serialization
ASE: clapplugin: load and save plugin state and parameters
Squashed commits to load/save plugin state:
Add debug statements about dlopen/dlclose
Scan, update, load and save parameters
Move ClapFileHandle class definition into clapplugin.cc
Keep ClapParamUpdateS around for activate()
implement plugin_state load/save
ASE: compress.cc: implement adaptive zstd compression, refine levels
Streaming zstd compression will end a frame and lower the compression
level at certain size to keep stream processing fairly fast.
ASE: path.cc: stringread: properly handle maxlength
ASE: storage: store_file: avoid ZIP-compressing compressed files
ASE: project: add writer_add_file()
ASE: project: add loader_archive() and writer_file_name()
ASE: compress: add stream_writer_zstd() and stream_reader_zstd()
ASE: storage: add stream_reader_zip_member() and stream_writer_create_file()
ASE: storage.hh: add class StreamReader and class StreamWriter
ASE: storage: add StorageWriter::store_file()
ASE: defs.hh: add StreamWriter and StreamReader decls
ASE: path: move rmrf() here
ASE: formatter.cc: support (void*) as %s pointer
ASE: testing.hh: avoid double evaluation of TCMP() arguments
ASE: path.cc: check(): use L or h for links, S for sockets, z and s for sizes
ASE: api.hh: add Device._project() and Device._track()
ASE: utils.hh: add IterableContainer.index_of()
ASE: storage.cc: preserve cachedir of live PIDs, detect via kill() or /proc/pid
ASE: api.hh: add OPERATION_BUSY, renumber Error codes
ASE: project: save_dir: provide temporary cachedir, cleanup stale dirs
ASE: storage: rename stale cachedir cleanup, allow specific directory cleanup
ASE: engine: add BorrowedPtr<> to use in audio-thread and delete in main-thread
ASE: defs.hh: add ClapParamUpdate
ASE: value: add is_numeric()
ASE: device: load plugin state during insert called from serialize
ASE: api.hh: add Device._activate() to activate devices before process() starts
ASE: processor.cc: emit "params:change" event on Device for each PARAMCHANGE
ASE: engine.cc: process async_jobs before const_jobs readouts
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # 6ae020017ff
ASE: project.cc: use Error::BAD_PROJECT where appropriate
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # cafaef91dfb
ASE: storage.cc: fix minizip reporting broken archives as ENOENT
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # 50da4988b57
ASE: api.hh: add Error::BAD_PROJECT
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # 3a90e001607
ASE: api.hh: add RETRY, BROKEN_ARCHIVE errors, improve errno mapping
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # be5431212e1
UI: b/menubar.vue: fix 'Save' to use the last known filename
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-03 Tim Janik # f586bd38d9c
UI: b/app.js: fix error dialog
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # 2a49e2b1de1
UI: theme.scss: hide Mozilla spin button arrows (unfit for dark theme)
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # a849d4afb5d
UI: b/app.js: show spinner while saving projects
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # 02d7f7f1387
UI: b/shell.vue: add show_spinner() and hide_spinner() to display spinner.svg
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # 66a87243c70
UI: eslintrc.js: support Shell global variable
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # da4a736e45c
UI: b/app.js: define Shell, leave bubble handling to the Shell
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # 385cc00bfb3
UI: b/shell.vue: introduce #b-shell-bubble-layer
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # 596f5592695
UI: b/databubble.vue: move bubbles into #b-shell-bubble-layer
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # b7cf4ffc11e
UI: Makefile.mk: extract keyframes from spinner.svg into spinner.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # 2e0a277b37a
UI: assets/spinner.svg: add "busy" indicator drawing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-02 Tim Janik # 71a98eae88c
UI: theme.scss, assets/spin-arrows.svg: rename & adjust spin-button arrows
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # 9c07ecbfa15
ASE: clapdevice: serialize CLAP plugin state and parameters
Squashed commits to serialize plugin state:
Serialize CLAP param values
Add blob reading + writing to serialize()
Serialize plugin state
Cleanup CLAP plugin state serialization
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # 3949ca52458
ASE: clapplugin: load and save plugin state and parameters
Squashed commits to load/save plugin state:
Add debug statements about dlopen/dlclose
Scan, update, load and save parameters
Move ClapFileHandle class definition into clapplugin.cc
Keep ClapParamUpdateS around for activate()
implement plugin_state load/save
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-01 Tim Janik # de78e0ff3db
ASE: compress.cc: implement adaptive zstd compression, refine levels
Streaming zstd compression will end a frame and lower the compression
level at certain size to keep stream processing fairly fast.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-01 Tim Janik # 444ef65e718
ASE: path.cc: stringread: properly handle maxlength
Signed-off-by: Tim Janik <timj@gnu.org>
2022-07-01 Tim Janik # 742d532eee8
ASE: storage: store_file: avoid ZIP-compressing compressed files
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # bf34885597b
ASE: project: add writer_add_file()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # a50fab3ebb1
ASE: project: add loader_archive() and writer_file_name()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # 56855e304ea
ASE: compress: add stream_writer_zstd() and stream_reader_zstd()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # e1b33620973
ASE: storage: add stream_reader_zip_member() and stream_writer_create_file()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-30 Tim Janik # 02edc13ecd5
ASE: storage.hh: add class StreamReader and class StreamWriter
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-30 Tim Janik # 17fa4de7a77
ASE: storage: add StorageWriter::store_file()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # 5a4aefb95ae
ASE: defs.hh: add StreamWriter and StreamReader decls
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # 2f7b93b33e6
ASE: path: move rmrf() here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-30 Tim Janik # 7785e848986
ASE: formatter.cc: support (void*) as %s pointer
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # 18b13f99af9
ASE: testing.hh: avoid double evaluation of TCMP() arguments
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # 71c457a4578
ASE: path.cc: check(): use L or h for links, S for sockets, z and s for sizes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # 89ae3154e42
ASE: api.hh: add Device._project() and Device._track()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-29 Tim Janik # 1a36acca2ac
ASE: utils.hh: add IterableContainer.index_of()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-28 Tim Janik # 88a3741fec2
ASE: storage.cc: preserve cachedir of live PIDs, detect via kill() or /proc/pid
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-28 Tim Janik # f042d9cc24a
ASE: api.hh: add OPERATION_BUSY, renumber Error codes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-28 Tim Janik # e30fa2cb885
ASE: project: save_dir: provide temporary cachedir, cleanup stale dirs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-28 Tim Janik # f1aef6bb812
ASE: storage: rename stale cachedir cleanup, allow specific directory cleanup
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-28 Tim Janik # 17225b46292
ASE: engine: add BorrowedPtr<> to use in audio-thread and delete in main-thread
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-27 Tim Janik # 51dd0f5ed73
ASE: defs.hh: add ClapParamUpdate
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-27 Tim Janik # 296f9a16e72
ASE: value: add is_numeric()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # 522002dc0e2
ASE: device: load plugin state during insert called from serialize
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # de0a687f13e
ASE: api.hh: add Device._activate() to activate devices before process() starts
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # 0fabb532926
ASE: processor.cc: emit "params:change" event on Device for each PARAMCHANGE
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 378c7fb9f27
ASE: engine.cc: process async_jobs before const_jobs readouts
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # 3b1b26ae467
Merge branch 'relax-json'
* relax-json:
ASE: server.cc: stringify rc-file as RELAXED to support NAN, Inf, indentation
ASE: project.cc: stringify projects as RELAXED to support NAN, Inf, indentation
ASE: jsonapi.cc: stringify methods as STRICT for JS compliant JSON.parse()
ASE: serialize: stringify STRICT or RELAXED: adds NAN, Inf, indentation
ASE: serialize.cc: parse with full float precision and relax JSON syntax
JSONIPC: jsonipc.hh: require STRICT or RELAXED write flag for json*_to_string()
JSONIPC: testjsonipc.cc: use Jsonipc::rapidjson_parse_flags
JSONIPC: jsonipc.hh: parse with full float precision and relax syntax
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # 298041b2df8
ASE: server.cc: stringify rc-file as RELAXED to support NAN, Inf, indentation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # 3ce32351bb8
ASE: project.cc: stringify projects as RELAXED to support NAN, Inf, indentation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # a3d8ce4632a
ASE: jsonapi.cc: stringify methods as STRICT for JS compliant JSON.parse()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # 5cc95ce0f1f
ASE: serialize: stringify STRICT or RELAXED: adds NAN, Inf, indentation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # 49968ded30f
ASE: serialize.cc: parse with full float precision and relax JSON syntax
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-26 Tim Janik # dc04a025918
JSONIPC: jsonipc.hh: require STRICT or RELAXED write flag for json*_to_string()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 2af50b45170
JSONIPC: testjsonipc.cc: use Jsonipc::rapidjson_parse_flags
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # f761677c18c
JSONIPC: jsonipc.hh: parse with full float precision and relax syntax
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # ce566777755
Merge branch 'rapidjson-upgrade'
* rapidjson-upgrade:
ASE: Makefile.mk: upgrade to rapidjson-232389d4f10 from 2022-05-24
ASE: Makefile.mk: move rapidjson download here
ASE: Makefile.mk: move minizip-ng-2.9.0.tar.gz download here
ASE: Makefile.mk: move websocketpp-0.8.2.tar.gz download here
MISC: config-checks.mk: cache third-party code in .dlcache/
Avoid using or depending on various cache directories under $HOME.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 844ac129bc7
ASE: Makefile.mk: upgrade to rapidjson-232389d4f10 from 2022-05-24
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 1f9462d8cae
ASE: Makefile.mk: move rapidjson download here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 5051d1e7b48
ASE: Makefile.mk: move minizip-ng-2.9.0.tar.gz download here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # e2be1809b56
ASE: Makefile.mk: move websocketpp-0.8.2.tar.gz download here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 7f5fdfd846e
MISC: config-checks.mk: cache third-party code in .dlcache/
Avoid using or depending on various cache directories under $HOME.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 60f8ce67eec
Merge branch 'nightly-fixes'
* nightly-fixes:
MISC: Makefile.mk: use clone instead of worktree for temporary build dirs
This leaves the original .git/ dir (and its worktree states) alone, regardless
of the fate of the build dir.
MISC: Makefile.mk: fix misc/version.sh invocation
MISC: Makefile.mk: allow local nightly builds with RELEASE_TEST
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 33c73921624
MISC: Makefile.mk: use clone instead of worktree for temporary build dirs
This leaves the original .git/ dir (and its worktree states) alone, regardless
of the fate of the build dir.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 29f4d6d73f6
MISC: Makefile.mk: fix misc/version.sh invocation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-25 Tim Janik # 8ca02ea079e
MISC: Makefile.mk: allow local nightly builds with RELEASE_TEST
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-24 Tim Janik # 738be6ce98f
Merge branch 'electron-fixes'
* electron-fixes:
Makefile.mk: fix ase/Makefile.mk missing devices/Makefile.mk definitions
MISC: package.json.in: downgrade to electron-18.3.5 due to a CORS bug
Some requests fail sporadically with a "blocked by CORS policy" error.
The details are described here:
Issue 1339128: Local CORS requests fail sproradically
https://bugs.chromium.org/p/chromium/issues/detail?id=1339128
ELECTRON: main.js: support --dev option for devtools
MISC: Makefile.mk: appimage: exclude libnss*3.so
There seem to exist some incompatibilities with an appimage-packed libnss3.so
loading it's corresponding libsoftokn3.so from the host system libraries.
As a workaround, we avoid packaging libnss3.so alltogether which is present
on at least Ubuntu 20.04, 22.04, Debian 11 and Arch in 2022.
For a detailed discussion, see:
https://github.com/probonopd/linuxdeployqt/issues/35#issuecomment-860977273
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-24 Tim Janik # 2bbd49b0c16
Makefile.mk: fix ase/Makefile.mk missing devices/Makefile.mk definitions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-24 Tim Janik # 16376c68c22
MISC: package.json.in: downgrade to electron-18.3.5 due to a CORS bug
Some requests fail sporadically with a "blocked by CORS policy" error.
The details are described here:
Issue 1339128: Local CORS requests fail sproradically
https://bugs.chromium.org/p/chromium/issues/detail?id=1339128
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-24 Tim Janik # 30125ebaf16
ELECTRON: main.js: support --dev option for devtools
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-23 Tim Janik # 1d12b608350
MISC: Makefile.mk: appimage: exclude libnss*3.so
There seem to exist some incompatibilities with an appimage-packed libnss3.so
loading it's corresponding libsoftokn3.so from the host system libraries.
As a workaround, we avoid packaging libnss3.so alltogether which is present
on at least Ubuntu 20.04, 22.04, Debian 11 and Arch in 2022.
For a detailed discussion, see:
https://github.com/probonopd/linuxdeployqt/issues/35#issuecomment-860977273
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-23 Tim Janik # 6a06b72e484
Merge branch 'midi-expression'
* midi-expression:
ASE: clapplugin.cc: send MIDI1 + NOTE + EXPRESSION, add ASE_DEBUG=clapevent
Support MIDI1 next to CLAP_NOTE_ON + OFF + EXPRESSION in the same event queue.
Add support for sending AFTERTOUCH, CC, CHANNEL_PRESSURE and PITCH_BEND.
Use preferred MIDI dialect for plugins.
Makefile.mk: adjust makefile order to build order
ASE: utils.cc: fix case insensitivity for ASE_DEBUG
UI: b/treeselector.vue: remove junk from tree
UI: b/devicepanel.vue: remove junk from menu
UI: b/deviceeditor.vue: toggle GUIs
ASE: api.hh: add gui_toggle(), gui_supported(), gui_visible()
UI: b/deviceeditor.vue: implement delete-device
ASE: clapplugin.cc: print debug info for all plugin extension queries
ASE: api.hh: implement Device.remove_self()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-23 Tim Janik # 9b8398910a1
ASE: clapplugin.cc: send MIDI1 + NOTE + EXPRESSION, add ASE_DEBUG=clapevent
Support MIDI1 next to CLAP_NOTE_ON + OFF + EXPRESSION in the same event queue.
Add support for sending AFTERTOUCH, CC, CHANNEL_PRESSURE and PITCH_BEND.
Use preferred MIDI dialect for plugins.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-23 Tim Janik # 2ccc6cf9f73
Makefile.mk: adjust makefile order to build order
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-23 Tim Janik # fab512bdfa4
ASE: utils.cc: fix case insensitivity for ASE_DEBUG
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-23 Tim Janik # 530a8c53736
UI: b/treeselector.vue: remove junk from tree
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-23 Tim Janik # ec0eee1327c
UI: b/devicepanel.vue: remove junk from menu
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-23 Tim Janik # a2da7520e80
UI: b/deviceeditor.vue: toggle GUIs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-23 Tim Janik # e2ccaeab269
ASE: api.hh: add gui_toggle(), gui_supported(), gui_visible()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # ddc454fe850
UI: b/deviceeditor.vue: implement delete-device
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 6b5800a7b9b
ASE: clapplugin.cc: print debug info for all plugin extension queries
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 93997d30c67
ASE: api.hh: implement Device.remove_self()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # a42f663f3f9
Merge branch 'debian-stable-deps'
* debian-stable-deps:
MISC: mkdeb.sh: deps: libboost is unused, electron needs gtk-3, libnss3
MISC: mkdeb.sh: compress with -z7, debian:stable cannot handle zstd
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 996cd9320da
MISC: mkdeb.sh: deps: libboost is unused, electron needs gtk-3, libnss3
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # b827789c0e0
MISC: mkdeb.sh: compress with -z7, debian:stable cannot handle zstd
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 07fd2a53b3b
Merge branch 'docker-ootbuild'
* docker-ootbuild:
MISC: Makefile.mk: use $OOTBUILD/ for out-of-tree builds
MISC: dbuild.sh: support -o ootbiuld_dir volume mounts
MISC: Dockerfile-apt: support $OOTBUILD=/ootbuild/
MISC: Makefile.mk: check for /dev/fuse before use
README.md: fix typo
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 26aab51c15c
MISC: Makefile.mk: use $OOTBUILD/ for out-of-tree builds
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 56905accb0a
MISC: dbuild.sh: support -o ootbiuld_dir volume mounts
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # eb8ab6424f4
MISC: Dockerfile-apt: support $OOTBUILD=/ootbuild/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 26c2e2f6036
MISC: Makefile.mk: check for /dev/fuse before use
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # ba434009cf8
README.md: fix typo
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 1982ed95f1c
Merge branch 'build-fixes'
* build-fixes:
README.md: clarify: This Source Code Form is licensed MPL-2.0
LICENSE: This Source Code Form is licensed MPL-2.0
DOC: copyright.ini: list LICENSE file
MISC: mkdeb.sh: clarify: This Source Code Form is licensed MPL-2.0
DOC: ch-intro.md: clarify: This Source Code Form is licensed MPL-2.0
DOC: anklang.1.md: clarify: This Source Code Form is licensed MPL-2.0
MISC: LGPL-2.1.txt: remove unused license
MISC: Dockerfile-apt: install libXss.so, libgtk-3-0 for electron
MISC: dbuild.sh: support --no-cache
ASE: Makefile.mk: install & ship gtk2wrap.so for plugin GUIs
ASE: tests/benchmarks.cc: fix test block length to always fit a double
MISC: Makefile.mk: allow RELEASE_CONTINUATION=true to bypass the nightly check
ASE: Makefile.mk: add missing dependency to provide clap.h
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 0e88997bdcb
README.md: clarify: This Source Code Form is licensed MPL-2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 0e51d5fead1
LICENSE: This Source Code Form is licensed MPL-2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # da6ece28a52
DOC: copyright.ini: list LICENSE file
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 7af54165bac
MISC: mkdeb.sh: clarify: This Source Code Form is licensed MPL-2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 8c4c0e1e9a1
DOC: ch-intro.md: clarify: This Source Code Form is licensed MPL-2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 5472cd0eac1
DOC: anklang.1.md: clarify: This Source Code Form is licensed MPL-2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # c7029f8a5c1
MISC: LGPL-2.1.txt: remove unused license
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # adb29cde7b5
MISC: Dockerfile-apt: install libXss.so, libgtk-3-0 for electron
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 038f9b42947
MISC: dbuild.sh: support --no-cache
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # daad7519e85
ASE: Makefile.mk: install & ship gtk2wrap.so for plugin GUIs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 1a2f39951c5
ASE: tests/benchmarks.cc: fix test block length to always fit a double
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 92f0466d0af
MISC: Makefile.mk: allow RELEASE_CONTINUATION=true to bypass the nightly check
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 3e0dd214e74
ASE: Makefile.mk: add missing dependency to provide clap.h
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # b0ff54ebc83
MISC: Makefile.mk: fix for version evaluation order
GNU Make executes $(eval) at rule start, not mid-rule.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # 8eace685dbe
MISC: Makefile.mk: robustly update Nightly tag
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # b7da34bc7ca
Merge branch 'nightly-builds'
* nightly-builds:
MISC: Makefile.mk: Nightly releases must be built from origin/trunk
MISC: Makefile.mk: add build rules for Nightly releases
MISC: version.sh: support $VERSION_HASHLENGTH and --nightly
Also, get rid of git archive release builds, it is unused.
MISC: Makefile.mk: show .deb build asset
MISC: mkdeb.sh: use zstd compression
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # a0d39e42327
MISC: Makefile.mk: Nightly releases must be built from origin/trunk
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 6803ef50cce
MISC: Makefile.mk: add build rules for Nightly releases
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # c1bab025a99
MISC: version.sh: support $VERSION_HASHLENGTH and --nightly
Also, get rid of git archive release builds, it is unused.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-22 Tim Janik # d262befe53f
MISC: Makefile.mk: show .deb build asset
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # da74e567695
MISC: mkdeb.sh: use zstd compression
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 0244b6a0384
Merge branch 'clap-1-0-2'
* clap-1-0-2:
ASE: Makefile.mk: upgrade to clap-1.0.2
UI: b/aboutdialog.vue: display CLAP version
ASE: api.hh: export Server.get_clap_version()
ASE: clapdevice: provide ClapDeviceImpl::clap_version()
UI: Makefile.mk: fix scss files missing from installation
GITHUB: workflows/testing.yml: only test builds for specific branches
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 6b2cc761f36
ASE: Makefile.mk: upgrade to clap-1.0.2
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 0c6b96219a6
UI: b/aboutdialog.vue: display CLAP version
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # d87a6d21a4a
ASE: api.hh: export Server.get_clap_version()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # eada01a53d0
ASE: clapdevice: provide ClapDeviceImpl::clap_version()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 9ab5f9d9942
UI: Makefile.mk: fix scss files missing from installation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 07c7cf66365
GITHUB: workflows/testing.yml: only test builds for specific branches
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 3310c576b61
Merge branch 'clapdevice'
* clapdevice:
ASE: clapplugin.cc: fix debug print
ASE: clapplugin.cc: small cleanup
ASE: clapplugin: hook up audio & event ports and start processing
ASE: clapdevice: add access_clap_handle()
ASE: processor.hh: allow ParamId, IBusId, OBusId == int comparisons
ASE: clapdevice: remove PluginHandle, use ClapPluginHandle
ASE: clapplugin: add make_clap_handle, audio_processor_type, clap_device_info
ASE: defs.hh: add ClapPluginHandle
ASE: clapplugin: add ClapAudioWrapper audio processor
ASE: clapplugin: create ClapPluginHandle from ClapPluginDescriptor
ASE: clapplugin: move ClapPluginDescriptor here
ASE: clapplugin: move ClapFileHandle here
ASE: clapplugin: move list_clap_files, clap_event_to_string here
ASE: clapplugin: add get_port_infos() and handle methods
ASE: clapdevice.cc: fix hide vs show
ASE: clapplugin: add host_ext_gui
ASE: clapplugin.cc: add host_ext_params
ASE: clapplugin.cc: add host_ext_audio_ports
ASE: clapplugin: start isolated clap plugin handle implementation
MISC: Dockerfile-apt: provide libgtk2.0-dev for gtk2wrap
ASE: device.cc: avoid Device == DeviceImpl assumptions
ASE: track.cc: add <Serializable*> cast for Device serialization
UI: b/deviceeditor.vue: properly display device_info.name
ASE: clapdevice: provide proper device_info()
ASE: device: fix member name
ASE: project.cc: always store project.json.zst in *.anklang files
ASE: clapdevice.cc: fix JUCE early timer use, leave threads_enter/leave to gtk
ASE: gtk2wrap.cc: fix thread name and run inside GDK_THREADS_ENTER/LEAVE
ASE: midievent.hh: fix mid channel comment
ASE: clapdevice.cc: send clap note events or midi1 events
ASE: clapdevice.cc: add skeletons for CLAP_EXT_PARAMS
ASE: clapdevice.cc: implement plugin_->on_main_thread()
ASE: clapdevice.cc: provide clap_host_thread_check extension
ASE: gtk2wrap: implement simple embedding GtkWindow as ELF module
ASE: engine: provide AudioEngine::thread_is_engine()
ASE: clapdevice: create plugin GUI with Gtk2DlWrapEntry functions
ASE: Makefile.mk: build gtk2wrap.so
MISC: config-checks.mk: provide GTK2_CFLAGS and GTK2_LIBS
ASE: clapdevice.cc: add boilerplate for CLAP_EXT_GUI
ASE: clapdevice.cc: implement CLAP_EXT_TIMER_SUPPORT
ASE: clapdevice.cc: find MAIN ibus, obus and hook up float buffers
ASE: clapdevice.cc: move audio_ports_config
ASE: clapdevice.cc: provide plugin_input_events and plugin_output_events
ASE: clapdevice.cc: allocate audio_inputs, audio_outputs and processinfo
ASE: clapdevice.cc: query note ports and audio ports and configs
ASE: clapdevice.cc: call start_processing(), stop_processing() on CLAP plugin
ASE: clapdevice: provide AudioWrapper processor access to activated CLAP plugin
ASE: clapdevice: activate()/deactivate() plugin
ASE: clapdevice: destroy plugin on ClapDeviceImpl unparenting
ASE: clapdevice.cc: implement clap_host_log extension
ASE: clapdevice: add basic CLAP plugin lifetime handling
ASE: device: track children and assign parent on Device children
ASE: track.cc: assign parent on Device children
ASE: project.cc: assign track parent
ASE: api.hh: add Gadget._set_parent(), Gadget._parent()
ASE: project.cc: fix device->_audio_processor() access
ASE: api.hh: rename Project.discard()
ASE: platform: return `const char*` from ase_version()
ASE: clapdevice.cc: share a ClapFileHandle between ClapPluginDescriptors
ASE: clapdevice.cc: canonify features, to egalize [ _+-] etc chars
ASE: clapdevice.cc: search $CLAP_PATH and clap standard dirs recursively
ASE: path: add unique_realpaths()
ASE: path: add rglob()
ASE: clapdevice: add boilerplate for CLAP plugin create() and init()
ASE: device.cc: list CLAP devices and call create_clap_device()
ASE: clapdevice: create ClapWrapper AudioProcessor
DEVICES: provide static_info()
ASE: track.cc: pass Engine into create_processor_device()
ASE: processor: rewrite registration and DeviceP integration
* Require static_info() for registered AudioProcessor types
* Provide AudioProcessor::create_processor() and AudioProcessor::registry_create()
* Hookup DeviceP and AudioProcessorP upon initialization
UI: b/devicepanel.vue: use append_device() and insert_device()
ASE: api.hh: rename append_device() and insert_device()
DEVICES: explicitely pass AudioEngine into AudioProcessor ctor
ASE: processor: explicitely pass AudioEngine into AudioProcessor ctor
ASE: processor: provide `DeviceP get_device()` per processor
Avoid AudioProcessor depending on DeviceImpl.
ASE: api.hh: move internal AudioProcessor methods into Device
The Device methods _audio_processor(), _set_event_source() and
_disconnect_remove() use an underscore to prevent JS binding generation.
UI: b/devicepanel.vue: issue debug message if create_device() failed
ASE: clapdevice.cc: list_clap_plugins(): scan CLAP plugins
ASE: Makefile.mk: link against libdl for dlopen()
ASE: clapdevice.*: add ClapDeviceImpl skeleton
ASE: Makefile.mk: provide include files from free-audio/clap-1.0.0
MISC: config-checks.mk: allow filename specification for $(AND_DOWNLOAD_SHAURL)
README.md: updates, mention plans for CLAP support
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 410584fe7c0
ASE: clapplugin.cc: fix debug print
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 7c2c5ce1fb1
ASE: clapplugin.cc: small cleanup
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # 08148c430d8
ASE: clapplugin: hook up audio & event ports and start processing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # c5e24ca5507
ASE: clapdevice: add access_clap_handle()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-21 Tim Janik # ef2fb4cadf4
ASE: processor.hh: allow ParamId, IBusId, OBusId == int comparisons
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 0f481b0fec3
ASE: clapdevice: remove PluginHandle, use ClapPluginHandle
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 3831e4bbc70
ASE: clapplugin: add make_clap_handle, audio_processor_type, clap_device_info
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 9fcbe4399bd
ASE: defs.hh: add ClapPluginHandle
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 22d7e6dc3dd
ASE: clapplugin: add ClapAudioWrapper audio processor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 5cf2597ba42
ASE: clapplugin: create ClapPluginHandle from ClapPluginDescriptor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 77aab83a9c5
ASE: clapplugin: move ClapPluginDescriptor here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 44b490be299
ASE: clapplugin: move ClapFileHandle here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 4d1df920d41
ASE: clapplugin: move list_clap_files, clap_event_to_string here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 2e689ac9bf4
ASE: clapplugin: add get_port_infos() and handle methods
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 290e9a53170
ASE: clapdevice.cc: fix hide vs show
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # 6d3533cfa61
ASE: clapplugin: add host_ext_gui
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # d0571a95c04
ASE: clapplugin.cc: add host_ext_params
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # bccd04ad67d
ASE: clapplugin.cc: add host_ext_audio_ports
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-20 Tim Janik # dd2d55f146a
ASE: clapplugin: start isolated clap plugin handle implementation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # 1952a52b755
MISC: Dockerfile-apt: provide libgtk2.0-dev for gtk2wrap
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # 1e86042debb
ASE: device.cc: avoid Device == DeviceImpl assumptions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # 38eb96f3e85
ASE: track.cc: add <Serializable*> cast for Device serialization
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # caa287e28ab
UI: b/deviceeditor.vue: properly display device_info.name
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # a0efc5976b1
ASE: clapdevice: provide proper device_info()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # 5e8bc5a77e3
ASE: device: fix member name
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # dd7ed418f51
ASE: project.cc: always store project.json.zst in *.anklang files
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # 108cdbf82aa
ASE: clapdevice.cc: fix JUCE early timer use, leave threads_enter/leave to gtk
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # 3995b77e144
ASE: gtk2wrap.cc: fix thread name and run inside GDK_THREADS_ENTER/LEAVE
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # ab6ec3e5006
ASE: midievent.hh: fix mid channel comment
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-19 Tim Janik # ac0bfe09ead
ASE: clapdevice.cc: send clap note events or midi1 events
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # 0202cbee843
ASE: clapdevice.cc: add skeletons for CLAP_EXT_PARAMS
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # cd32053451b
ASE: clapdevice.cc: implement plugin_->on_main_thread()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # d4927aa0b49
ASE: clapdevice.cc: provide clap_host_thread_check extension
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # 7f18181da6a
ASE: gtk2wrap: implement simple embedding GtkWindow as ELF module
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # e49c1094171
ASE: engine: provide AudioEngine::thread_is_engine()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # b46e8d49790
ASE: clapdevice: create plugin GUI with Gtk2DlWrapEntry functions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # 0fc6499a86e
ASE: Makefile.mk: build gtk2wrap.so
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # fe43fddff69
MISC: config-checks.mk: provide GTK2_CFLAGS and GTK2_LIBS
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # 966fb2e806b
ASE: clapdevice.cc: add boilerplate for CLAP_EXT_GUI
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-18 Tim Janik # 639e9c4eae9
ASE: clapdevice.cc: implement CLAP_EXT_TIMER_SUPPORT
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # bf7eada76eb
ASE: clapdevice.cc: find MAIN ibus, obus and hook up float buffers
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 3fa873b5f56
ASE: clapdevice.cc: move audio_ports_config
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # a6d12d6862f
ASE: clapdevice.cc: provide plugin_input_events and plugin_output_events
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 0b654e37c4b
ASE: clapdevice.cc: allocate audio_inputs, audio_outputs and processinfo
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # cd7bc44730c
ASE: clapdevice.cc: query note ports and audio ports and configs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # adaccde9da8
ASE: clapdevice.cc: call start_processing(), stop_processing() on CLAP plugin
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 826c90d9daa
ASE: clapdevice: provide AudioWrapper processor access to activated CLAP plugin
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 3e8b44fb5d8
ASE: clapdevice: activate()/deactivate() plugin
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # d9ae0898851
ASE: clapdevice: destroy plugin on ClapDeviceImpl unparenting
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 374777fa6ab
ASE: clapdevice.cc: implement clap_host_log extension
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # f19ad1e6e8a
ASE: clapdevice: add basic CLAP plugin lifetime handling
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 919eb401b22
ASE: device: track children and assign parent on Device children
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 0c5131354c4
ASE: track.cc: assign parent on Device children
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 48c10a9ac2b
ASE: project.cc: assign track parent
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 09cec08a08e
ASE: api.hh: add Gadget._set_parent(), Gadget._parent()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # 27417a9735a
ASE: project.cc: fix device->_audio_processor() access
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # d1dbb63b2dd
ASE: api.hh: rename Project.discard()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-16 Tim Janik # ec75cf991a1
ASE: platform: return `const char*` from ase_version()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-15 Tim Janik # e5189fd1a3e
ASE: clapdevice.cc: share a ClapFileHandle between ClapPluginDescriptors
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-15 Tim Janik # d1c0bd5c787
ASE: clapdevice.cc: canonify features, to egalize [ _+-] etc chars
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-15 Tim Janik # a31ce4ba541
ASE: clapdevice.cc: search $CLAP_PATH and clap standard dirs recursively
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-15 Tim Janik # b20628c2162
ASE: path: add unique_realpaths()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-15 Tim Janik # 8013e5d12bb
ASE: path: add rglob()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # 0dff3976165
ASE: clapdevice: add boilerplate for CLAP plugin create() and init()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # e647edf3f38
ASE: device.cc: list CLAP devices and call create_clap_device()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # 52060191ad3
ASE: clapdevice: create ClapWrapper AudioProcessor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # 3fc0404ac2b
DEVICES: provide static_info()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # a92980d385d
ASE: track.cc: pass Engine into create_processor_device()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-12 Tim Janik # 8c6518ff2f6
ASE: processor: rewrite registration and DeviceP integration
* Require static_info() for registered AudioProcessor types
* Provide AudioProcessor::create_processor() and AudioProcessor::registry_create()
* Hookup DeviceP and AudioProcessorP upon initialization
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # 39679435d78
UI: b/devicepanel.vue: use append_device() and insert_device()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # cbd2cb83201
ASE: api.hh: rename append_device() and insert_device()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # fed5ce98e31
DEVICES: explicitely pass AudioEngine into AudioProcessor ctor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # a564db9be83
ASE: processor: explicitely pass AudioEngine into AudioProcessor ctor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # d5cf6659a18
ASE: processor: provide `DeviceP get_device()` per processor
Avoid AudioProcessor depending on DeviceImpl.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-14 Tim Janik # 184c4be7aab
ASE: api.hh: move internal AudioProcessor methods into Device
The Device methods _audio_processor(), _set_event_source() and
_disconnect_remove() use an underscore to prevent JS binding generation.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-13 Tim Janik # fe6887f8f96
UI: b/devicepanel.vue: issue debug message if create_device() failed
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-12 Tim Janik # f46a3b5badc
ASE: clapdevice.cc: list_clap_plugins(): scan CLAP plugins
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-12 Tim Janik # 55ccea1843b
ASE: Makefile.mk: link against libdl for dlopen()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-12 Tim Janik # 81f4c46b8aa
ASE: clapdevice.*: add ClapDeviceImpl skeleton
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-12 Tim Janik # 0264b1ff6dd
ASE: Makefile.mk: provide include files from free-audio/clap-1.0.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-12 Tim Janik # d7080a0e705
MISC: config-checks.mk: allow filename specification for $(AND_DOWNLOAD_SHAURL)
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-11 Tim Janik # d922d5f745b
README.md: updates, mention plans for CLAP support
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-11 Tim Janik # cb33b2b7563
Merge branch 'zmod-vs-contrast'
* zmod-vs-contrast:
MISC: package.json.in: remove chroma-js
UI: Makefile.mk: take chroma-js out of browserified bundle
UI: postcss.js: remove unused chroma-js
UI: postcss.js: remove unused contrast* functions
UI: colors.js: separate hex_from_zcam()
UI: theme.scss: use absolute Jz shifts for shades
UI: use zmod() with Jz adjustments instead of contrast-lighten, contrast-darken
UI: postcss.js: write output file directly, abort on errors
UI: remove unused chromatic-sass2.js
UI: postcss.js: remove unused chromatic-color-luminance, chromatic-color-set
UI: postcss.js: test zmod()
UI: postcss.js: remove darken, darker, lighten, lighter
UI: *.scss: use zmod instead of lighten, darken
UI: b/*.vue: use zmod instead of lighten, darken
UI: b/partthumb.vue: move $b-partthumb-* variables here
UI: theme.scss: use zmod instead of lighter, darker
UI: styles.scss: use zmod instead of darker
UI: b/databubble.vue: use zmod instead of lighter
UI: postcss.js: remove lcolor()
UI: theme.scss: use zmod(Jz) instead of lcolor()
UI: postcss.js: provide Colors.lgrey
UI: colors.js: provide lgrey() via ZCAM lightness
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-29 Tim Janik # eb45772b999
MISC: package.json.in: remove chroma-js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-29 Tim Janik # f99f6bf3312
UI: Makefile.mk: take chroma-js out of browserified bundle
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-11 Tim Janik # 730fb7522cd
UI: postcss.js: remove unused chroma-js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-11 Tim Janik # b65ddaf6afe
UI: postcss.js: remove unused contrast* functions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-29 Tim Janik # 472532e897f
UI: colors.js: separate hex_from_zcam()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-05 Tim Janik # 9e510f53f31
UI: theme.scss: use absolute Jz shifts for shades
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-28 Tim Janik # 88a7b991bd6
UI: use zmod() with Jz adjustments instead of contrast-lighten, contrast-darken
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # 415b5f56632
UI: postcss.js: write output file directly, abort on errors
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # 1b96451c1c0
UI: remove unused chromatic-sass2.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # a73931f4b0f
UI: postcss.js: remove unused chromatic-color-luminance, chromatic-color-set
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # 08db62014fc
UI: postcss.js: test zmod()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # b13eba56461
UI: postcss.js: remove darken, darker, lighten, lighter
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # fadd7822b63
UI: *.scss: use zmod instead of lighten, darken
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # 7fea5faf8fb
UI: b/*.vue: use zmod instead of lighten, darken
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # a2bfe74e6c4
UI: b/partthumb.vue: move $b-partthumb-* variables here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # 2218304d3ba
UI: theme.scss: use zmod instead of lighter, darker
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # b7b0970176a
UI: styles.scss: use zmod instead of darker
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # 3390f823314
UI: b/databubble.vue: use zmod instead of lighter
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # 2854936314a
UI: postcss.js: remove lcolor()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # f01c6235bd6
UI: theme.scss: use zmod(Jz) instead of lcolor()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # bd25907545c
UI: postcss.js: provide Colors.lgrey
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # 4433f8d2f1b
UI: colors.js: provide lgrey() via ZCAM lightness
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-11 Tim Janik # c7683b792ac
Merge branch 'generic-setget-data'
* generic-setget-data:
ASE: value: rename Value.purge_r() to Value.filter()
UI: startup.js: adjust to Server.set_data() and Server.get_data()
UI: kbd.js: adjust to Server.set_data() and Server.get_data()
ASE: api.hh: provide Gadget.set_data() and Gadget.get_data()
* Persist data of Gadgets in a Project without a '_' key prefix.
* Merge with Server.set_data() and Server.get_data().
* Simplify set/get data on the Server, persist keys without '_' prefix.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # c3e99c0d691
ASE: value: rename Value.purge_r() to Value.filter()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-05 Tim Janik # 13df3cd9e82
UI: startup.js: adjust to Server.set_data() and Server.get_data()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-05 Tim Janik # ebdf42ea0cc
UI: kbd.js: adjust to Server.set_data() and Server.get_data()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-05 Tim Janik # 41f4d12b5d0
ASE: api.hh: provide Gadget.set_data() and Gadget.get_data()
* Persist data of Gadgets in a Project without a '_' key prefix.
* Merge with Server.set_data() and Server.get_data().
* Simplify set/get data on the Server, persist keys without '_' prefix.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-11 Tim Janik # 8d85c28dcd3
Merge branch 'development-reference'
* development-reference:
UI: b/menubar.vue: add 'Help/Development Reference' menu item
DOC: style/Makefile.mk: fix charis-sil/index.css reference
MISC: package.json.in: upgrade to @fontsource/charis-sil 4.5.5
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-11 Tim Janik # 9d75a5fd01b
UI: b/menubar.vue: add 'Help/Development Reference' menu item
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-11 Tim Janik # 6b9496aea1b
DOC: style/Makefile.mk: fix charis-sil/index.css reference
Signed-off-by: Tim Janik <timj@gnu.org>
2022-06-11 Tim Janik # 083c4986b8e
MISC: package.json.in: upgrade to @fontsource/charis-sil 4.5.5
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-27 Tim Janik # ac5da8c6a05
Merge branch 'npm-updates'
* npm-updates:
MISC: package.json.in: update sass
MISC: package.json.in: update jsdoc, lit, markdown-it, mathjax, nodemon
MISC: package.json.in: update chroma-js, eslint
MISC: package.json.in: update rollup, postcss, remove cssnano
MISC: package.json.in: update eslint-parser, fonts, rollup plugins
MISC: package.json.in: update vue to 3.2.36
ELECTRON: Makefile.mk: adjust chmod for electron libs
MISC: package.json.in: update to electron-19
UI: Makefile.mk: avoid extraneous favicon generations
MISC: package.json.in: update icon-gen to 3.0.1
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # 6a870db983c
MISC: package.json.in: update sass
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # f7b22efc74a
MISC: package.json.in: update jsdoc, lit, markdown-it, mathjax, nodemon
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # 33befbf8fcc
MISC: package.json.in: update chroma-js, eslint
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # db93117b71e
MISC: package.json.in: update rollup, postcss, remove cssnano
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # d44d005d952
MISC: package.json.in: update eslint-parser, fonts, rollup plugins
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # c620bc8da8c
MISC: package.json.in: update vue to 3.2.36
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # a47271c1b4c
ELECTRON: Makefile.mk: adjust chmod for electron libs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # d68eda50180
MISC: package.json.in: update to electron-19
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # 80c468251a0
UI: Makefile.mk: avoid extraneous favicon generations
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # 984ff6a2a5a
MISC: package.json.in: update icon-gen to 3.0.1
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-26 Tim Janik # cd6c70b7664
Merge branch 'zhsv-zhsl-zmod'
* zhsv-zhsl-zmod:
UI: b/clipview.vue: use Hues + zmod() to select track colors
UI: colors.js: zmod(): add Hz/hz to select cusp colors, avoid lossy conversions
UI: postcss.js: provide zhsl() zHsl() zhsv() zHsv() zmod() CSS functions
UI: colors.js: add zhsl() zhsv() zHsl() zHsv() zmod() CSS functions
MISC: package.json.in: update to zcam-js v0.0.9 which ships zcam-js.mjs
UI: colors.js: convert to and from ZHSL
UI: b/tracklist.vue: grow clip region
UI: Makefile.mk: generate ui/zcam-js.mjs
UI: Makefile.mk: postcss.js depends on colors.js
UI: colors.js: add sRGB HSV conversions
UI: colors.js: add ZHSV conversions
UI: colors.js: new file for color modifications
MISC: package.json.in: require zcam-js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # a081f7e25da
UI: b/clipview.vue: use Hues + zmod() to select track colors
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-25 Tim Janik # 1f4e65e724f
UI: colors.js: zmod(): add Hz/hz to select cusp colors, avoid lossy conversions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # 14126e3dfac
UI: postcss.js: provide zhsl() zHsl() zhsv() zHsv() zmod() CSS functions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # 3d8f1765a5a
UI: colors.js: add zhsl() zhsv() zHsl() zHsv() zmod() CSS functions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-18 Tim Janik # de837f60535
MISC: package.json.in: update to zcam-js v0.0.9 which ships zcam-js.mjs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-18 Tim Janik # 63e9b39c464
UI: colors.js: convert to and from ZHSL
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-18 Tim Janik # 5346315d08b
UI: b/tracklist.vue: grow clip region
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-17 Tim Janik # b8cff2c6422
UI: Makefile.mk: generate ui/zcam-js.mjs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # 9f0df2517ad
UI: Makefile.mk: postcss.js depends on colors.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-17 Tim Janik # 031ef531126
UI: colors.js: add sRGB HSV conversions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-17 Tim Janik # 82762bb0a26
UI: colors.js: add ZHSV conversions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-17 Tim Janik # f43d033e441
UI: colors.js: new file for color modifications
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-11 Tim Janik # 3a8a5d85378
MISC: package.json.in: require zcam-js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-26 Tim Janik # af7e7438b28
Merge branch 'optimize-css'
* optimize-css:
UI: Makefile.mk: shrink browserified code with terser
MISC: package.json.in: install terser
UI: Makefile.mk: support :KEEPIF="__DEV__" attribute in index.html
UI: index.html: conditionally preload ./csstree-validator.esm.js
UI: little.js: conditionally load and use csstree-validator.esm.js
UI: Makefile.mk: use ui/csstree-validator.esm.js, don't browserify it
UI: index.html: preload ./postcss.js
UI: little.js: use ui/postcss.js to process CSS in the browser
UI: Makefile.mk: use ui/postcss.js for CSS processing build steps
UI: postcss.js: PostCSS CLI and browser driver in the same ESM
MISC: package.json.in: add rollup-plugin-node-resolve
UI: Makefile.mk: build with explicit .cjs extension where needed
MISC: package.json.in: add type:module, use .eslintrc.cjs for linting
UI: eslintrc.js: silence loss-of-precision warnings
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-22 Tim Janik # a130ddf7afc
UI: Makefile.mk: shrink browserified code with terser
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-22 Tim Janik # 2ad5856fe12
MISC: package.json.in: install terser
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # ec01eb18aa3
UI: Makefile.mk: support :KEEPIF="__DEV__" attribute in index.html
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # da216e89d47
UI: index.html: conditionally preload ./csstree-validator.esm.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # a2021e68605
UI: little.js: conditionally load and use csstree-validator.esm.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # 93aa4d65595
UI: Makefile.mk: use ui/csstree-validator.esm.js, don't browserify it
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # b4d21eb4fbe
UI: index.html: preload ./postcss.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # f1739cbf1a5
UI: little.js: use ui/postcss.js to process CSS in the browser
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # cf395543228
UI: Makefile.mk: use ui/postcss.js for CSS processing build steps
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # 0f28f393357
UI: postcss.js: PostCSS CLI and browser driver in the same ESM
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-20 Tim Janik # 7d55e1e3ee7
MISC: package.json.in: add rollup-plugin-node-resolve
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-18 Tim Janik # 52e5d07938d
UI: Makefile.mk: build with explicit .cjs extension where needed
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-18 Tim Janik # 2a02b8d4fc4
MISC: package.json.in: add type:module, use .eslintrc.cjs for linting
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-18 Tim Janik # b2660cc80b2
UI: eslintrc.js: silence loss-of-precision warnings
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-26 Tim Janik # 7b0d73114cd
Merge branch 'lit'
* lit:
UI: startup.js: leave create_app() to b/app.js
UI: b/app.js: move Vue App creation and component registration here
UI: index.html: extend preloads
UI: startup.js: properly handle bootup before & after onload
UI: b/more.js: port b-more from Vue to LitElement
UI: b/menutitle.js: port b-menutitle from Vue to LitElement
UI: b/menuseparator.js: port b-menuseparator from Vue to LitElement
Remove b/menuseparator.vue in favour of b/menuseparator.js.
UI: b/fed-object.vue: instantiate b-textinput explicitely
UI: b/textinput.js: port text editing field from Vue to LitElement
Remove b/fed-text.vue in favour of b/textinput.js.
UI: little.js: use csstree-validator in __DEV__ mode
UI: little.js: minor fix to error messages
UI: little.js: add CSS imports for theme.scss, mixins.scss, shadow.scss
UI: little.js: provide LitElement stubs and postcss renderer
UI: Makefile.mk: use rollup to generate ui/lit.js
MISC: package.json.in: add lit
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # a9cf6f7afdd
UI: startup.js: leave create_app() to b/app.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 3be456512b8
UI: b/app.js: move Vue App creation and component registration here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 911ccbd7ff0
UI: index.html: extend preloads
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 41dac442920
UI: startup.js: properly handle bootup before & after onload
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 8defd10c154
UI: b/more.js: port b-more from Vue to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # db9ae6304e9
UI: b/menutitle.js: port b-menutitle from Vue to LitElement
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # cf92d55d279
UI: b/menuseparator.js: port b-menuseparator from Vue to LitElement
Remove b/menuseparator.vue in favour of b/menuseparator.js.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # f583288c2f0
UI: b/fed-object.vue: instantiate b-textinput explicitely
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 5123fb2f0bd
UI: b/textinput.js: port text editing field from Vue to LitElement
Remove b/fed-text.vue in favour of b/textinput.js.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # a4603be4df1
UI: little.js: use csstree-validator in __DEV__ mode
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 5e0af47fa25
UI: little.js: minor fix to error messages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 74ed2dbd136
UI: little.js: add CSS imports for theme.scss, mixins.scss, shadow.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # abf0254f520
UI: little.js: provide LitElement stubs and postcss renderer
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # c8d8fdb40f1
UI: Makefile.mk: use rollup to generate ui/lit.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 50491f4526d
MISC: package.json.in: add lit
Signed-off-by: Tim Janik <timj@gnu.org>
2022-05-26 Tim Janik # 739ebe20e90
Merge branch 'postcss'
* postcss:
UI: eslintrc.js: allow unused imports
UI: eslintrc.js: parse es2022
UI: Makefile.mk: install ui/shadow.scss
UI: shadow.scss: provide styling for elements inside shadow DOMs
UI: b/*.vue: add missing calc() functions
UI: theme.scss: add missing calc() calls
UI: styles.scss: minor cleanups
UI: b/piano-roll.vue: directly include fonts/AnklangCursors.scss
UI: theme.scss: leave cursor includes to individual components
UI: b/databubble.vue: use hsl() for luminance based colors
UI: b/*.vue: minor CSS pseudo selector fixups
UI: b/shell.vue: avoid styles.scss import, this is loaded by index.html now
UI: b/piano-roll.vue: avoid string interpolation that stops variable expansion
UI: b/*.vue: use only functions from postcss.config.js
UI: b/fed-picklist.vue: avoid extra quotes around selector string interpolation
UI: theme.scss: avoid extra whitespaces in mixin declarations
This avoids postcss-advanced-variables ignoring some mixins.
UI: cssaux.scss: remove file with SASS-only functions
UI: sfc-compile.js: disable SASS preprocessing
UI: sfc-compile.js: implemented the possibility to generate sfc_css()
UI: sfc-compile.js: help syntax highlighters by generating html`` css`` txt``
UI: Makefile.mk: add *.js files to all-components
UI: Makefile.mk: update plugins and add CSS validation via csstree-validator
UI: Makefile.mk: check postcss.config.js transformations
UI: Makefile.mk: convert postcss.config.js to postcss.esm.js for browsers
UI: Makefile.mk: generate all-styles.css via postcss
UI: mixins.scss: move here
UI: Makefile.mk: generate ui/all-cssfiles.js
UI: Makefile.mk: add postcss and plugins to browserify bundle
UI: Makefile.mk: minor edit
UI: postcss.config.js: add config and functions with tests for postcss
MISC: package.json.in: update packages, add rollup and postcss with plugins
ASE: mime-types.hh: serve text/x-sass and text/x-scss files
UI: kbd.js: allow all elements below focus root to have focus
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 80510ba1a3f
UI: eslintrc.js: allow unused imports
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 074cb9257ac
UI: eslintrc.js: parse es2022
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 77c0e173031
UI: Makefile.mk: install ui/shadow.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 05f181d46f8
UI: shadow.scss: provide styling for elements inside shadow DOMs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # f0cc6b63231
UI: b/*.vue: add missing calc() functions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 8ae5339d964
UI: theme.scss: add missing calc() calls
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 6a38243a69f
UI: styles.scss: minor cleanups
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # be1505a0fc7
UI: b/piano-roll.vue: directly include fonts/AnklangCursors.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 40e68511ff6
UI: theme.scss: leave cursor includes to individual components
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # deb377a2aa3
UI: b/databubble.vue: use hsl() for luminance based colors
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # e7114e0bca7
UI: b/*.vue: minor CSS pseudo selector fixups
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 00f9712131d
UI: b/shell.vue: avoid styles.scss import, this is loaded by index.html now
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 194a84ad504
UI: b/piano-roll.vue: avoid string interpolation that stops variable expansion
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 36ab55b1a28
UI: b/*.vue: use only functions from postcss.config.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # cbc4cdb3dc5
UI: b/fed-picklist.vue: avoid extra quotes around selector string interpolation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 1cd45ecaf38
UI: theme.scss: avoid extra whitespaces in mixin declarations
This avoids postcss-advanced-variables ignoring some mixins.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 59ff528cb58
UI: cssaux.scss: remove file with SASS-only functions
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # e3beded606c
UI: sfc-compile.js: disable SASS preprocessing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 29628b8f729
UI: sfc-compile.js: implemented the possibility to generate sfc_css()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 9c3a81750a9
UI: sfc-compile.js: help syntax highlighters by generating html`` css`` txt``
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 581be45feb9
UI: Makefile.mk: add *.js files to all-components
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 939dd98e7a2
UI: Makefile.mk: update plugins and add CSS validation via csstree-validator
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # e0ef4226c2a
UI: Makefile.mk: check postcss.config.js transformations
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # d08d365edbb
UI: Makefile.mk: convert postcss.config.js to postcss.esm.js for browsers
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # c9b1c1f9ce5
UI: Makefile.mk: generate all-styles.css via postcss
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 28eafa76e98
UI: mixins.scss: move here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # b53c115e7b5
UI: Makefile.mk: generate ui/all-cssfiles.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 1dc0f68fb26
UI: Makefile.mk: add postcss and plugins to browserify bundle
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # b7755891b03
UI: Makefile.mk: minor edit
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # a9f0b5873d5
UI: postcss.config.js: add config and functions with tests for postcss
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 85e0a42573c
MISC: package.json.in: update packages, add rollup and postcss with plugins
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # c345e490089
ASE: mime-types.hh: serve text/x-sass and text/x-scss files
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-24 Tim Janik # 2b82a9121a8
UI: kbd.js: allow all elements below focus root to have focus
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-20 Tim Janik # 45d9a4c1c9b
Merge branch 'piano-roll-contextmenu'
* piano-roll-contextmenu:
UI: b/piano-roll.vue, b/piano-ctrl.js: turn Cut, Copy, Paste into menu entries
UI: eslintrc.js: allow WeakRef uses
UI: util.js: rename weakid() add weakid_lookup()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 76bcfcf60ea
UI: b/piano-roll.vue, b/piano-ctrl.js: turn Cut, Copy, Paste into menu entries
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 7a314156b72
UI: eslintrc.js: allow WeakRef uses
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # a5cb8170c13
UI: util.js: rename weakid() add weakid_lookup()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 748c56f3487
Merge branch 'shortcut-editor'
* shortcut-editor:
UI: kbd.js: add shortcut map and shortcut editor
UI: b/menuitem.vue: add shortcut map and support shortcut editing
UI: b/trackview.vue: hide shortcut area for MIDI channel entries
UI: startup.js: use Ase.server.{get|set}_data() for session data
ASE: api.hh: support Ase.server.{get|set}_data() for config and session data
UI: kbd.js: move KeyCode, hotkey and focus handling here
UI: kbd.js: move match_key_event() here
UI: kbd.js: add hotkey_name_from_event()
UI: kbd.js: move display_keyname() here
UI: util.js: add root_ancestor() and escape_html()
UI: b/shell.vue: add div_handler and html to dialogs, merge with menu layer
UI: b/contextmenu.vue: provide mapname property for menuitems
UI: b/piano-roll.vue: stop event handling in pianorollmenu_click()
UI: b/contextmenu.vue: pass event into clicked() and keyboard_click()
UI: util.js: pass event into keyboard_click(), provide keyboard_click_event()
UI: eslintrc.js: allow v-html
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 49c78a75fa5
UI: kbd.js: add shortcut map and shortcut editor
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 18b53d56bd1
UI: b/menuitem.vue: add shortcut map and support shortcut editing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 13e4d2c2c87
UI: b/trackview.vue: hide shortcut area for MIDI channel entries
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # db8bbc97b35
UI: startup.js: use Ase.server.{get|set}_data() for session data
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # e448ee34b14
ASE: api.hh: support Ase.server.{get|set}_data() for config and session data
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 995dfae71a8
UI: kbd.js: move KeyCode, hotkey and focus handling here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 2511195d912
UI: kbd.js: move match_key_event() here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-18 Tim Janik # e4c8d30789e
UI: kbd.js: add hotkey_name_from_event()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-18 Tim Janik # cd1522f289d
UI: kbd.js: move display_keyname() here
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-18 Tim Janik # 676dc019edb
UI: util.js: add root_ancestor() and escape_html()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-18 Tim Janik # c66fc6d5870
UI: b/shell.vue: add div_handler and html to dialogs, merge with menu layer
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-18 Tim Janik # a20e4ce7f15
UI: b/contextmenu.vue: provide mapname property for menuitems
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-17 Tim Janik # 7336914c741
UI: b/piano-roll.vue: stop event handling in pianorollmenu_click()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-17 Tim Janik # 7e38a25fc5c
UI: b/contextmenu.vue: pass event into clicked() and keyboard_click()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-17 Tim Janik # 6bde07b8a5a
UI: util.js: pass event into keyboard_click(), provide keyboard_click_event()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-17 Tim Janik # 1c633f1ae91
UI: eslintrc.js: allow v-html
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # c78a8a3ce9a
Merge branch 'initialization-fixes'
* initialization-fixes:
UI: util.js: add compile_expression()
UI: b/dialog.vue: cache done_resizing to properly set autofocus
UI: startup.js: initialize Ase.server via __resolve__()
This allows arbitrary code to depend on the presence
of Ase via await Ase.server.
UI: Makefile.mk: pre-initialize Ase.server as promise via setup_promise_type()
JSONIPC: jsonipc.js: add Jsonipc.setup_promise_type() helper
UI: startup.js: call all sfc_template() before Vue startup
This fixes an empty Vue UI at startup, due to createApp(Shell) being
called before Shell.template has been created.
MISC: package.json.in: remove unused undefsafe
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 391087579ab
UI: util.js: add compile_expression()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-18 Tim Janik # 493a1d510e3
UI: b/dialog.vue: cache done_resizing to properly set autofocus
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-16 Tim Janik # bb9df4988c5
UI: startup.js: initialize Ase.server via __resolve__()
This allows arbitrary code to depend on the presence
of Ase via await Ase.server.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-16 Tim Janik # 3a794d406e6
UI: Makefile.mk: pre-initialize Ase.server as promise via setup_promise_type()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-16 Tim Janik # 27ea09cff87
JSONIPC: jsonipc.js: add Jsonipc.setup_promise_type() helper
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-18 Tim Janik # 26c184f2648
UI: startup.js: call all sfc_template() before Vue startup
This fixes an empty Vue UI at startup, due to createApp(Shell) being
called before Shell.template has been created.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-19 Tim Janik # 4f7fca0e8e8
MISC: package.json.in: remove unused undefsafe
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-12 Tim Janik # e8f20479963
Merge branch 'clip-change-batch'
* clip-change-batch:
UI: b/piano-ctrl.js: rewrite ops to Clip.change_batch() and skip focus note
UI: util.js: debounce observable getters to less than 60Hz
ASE: api.hh, clip: add Clip.change_batch()
UI: util.js: rename copy_deep()
UI: util.js: add freeze_deep()
ASE: object.cc: reduce notification updates to ca 125Hz
ASE: eventlist.hh: allow retrieving copies of replaced and removed notes
UI: b/piano-ctrl.js: handle select-all, copy, paste keybindings
UI: b/piano-ctrl.js: avoid note overlaps during move
Overlapping notes maybe merged, so sort notes before moevements to avoid
overlaps and thus loss of moving notes.
JSONIPC: jsonipc.js: minor renames
ASE: jsonapi.cc: shorten printout of JSON messages after 1KB
JSONIPC: jsonipc.js: avoid JSON reviver calls for non-object messages
JSONIPC: jsonipc: use JSON replacer and reviver to serialize objects
ASE: main.cc: include JsonIpc messages for --jsipc
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # 8140905b6dc
UI: b/piano-ctrl.js: rewrite ops to Clip.change_batch() and skip focus note
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # 3dd3a91eccd
UI: util.js: debounce observable getters to less than 60Hz
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # 762770e7613
ASE: api.hh, clip: add Clip.change_batch()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # 04a370578ee
UI: util.js: rename copy_deep()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # 82bf375bb19
UI: util.js: add freeze_deep()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # f9fe8643d9e
ASE: object.cc: reduce notification updates to ca 125Hz
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # 08c97689d62
ASE: eventlist.hh: allow retrieving copies of replaced and removed notes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # 8c4a3d8ee35
UI: b/piano-ctrl.js: handle select-all, copy, paste keybindings
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # c471191b9f5
UI: b/piano-ctrl.js: avoid note overlaps during move
Overlapping notes maybe merged, so sort notes before moevements to avoid
overlaps and thus loss of moving notes.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-10 Tim Janik # 9b50a8b3c36
JSONIPC: jsonipc.js: minor renames
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-09 Tim Janik # ac2ff4f5d0f
ASE: jsonapi.cc: shorten printout of JSON messages after 1KB
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-09 Tim Janik # 62c4d896c34
JSONIPC: jsonipc.js: avoid JSON reviver calls for non-object messages
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-09 Tim Janik # ad5697eca71
JSONIPC: jsonipc: use JSON replacer and reviver to serialize objects
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-09 Tim Janik # 70cf2a02ead
ASE: main.cc: include JsonIpc messages for --jsipc
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 19ca44c22f0
Merge branch 'undo-redo'
* undo-redo:
ASE: project: clear undo stack upon track removal
This avoids invalid pointers across track removal.
UI: util.js: use 'Raw' prepfix for physical hotkey matching
UI: b/deviceeditor.vue: use :check for menu deactivation
UI: b/menubar.vue: fix comment
UI: b/menubar.vue: add Edit menu with Undo and Redo
UI: b/contextmenu.vue: add :check="checkuri" callback, check uri on keypress
UI: script.js: adjust to insert_note()
UI: b/piano-ctrl.js: adjust change_note(), insert_note(), group undo
ASE: api.hh, clip: add Clip.insert_note() and implement Clip undo
ASE: api.hh, project: implement undo mechanism
ASE: object: add queue_notify() to deliver notifications asynchronously
ASE: api.hh: zero-init ClipNote and add ClipNote::operator==
This fixes some bogus ClipNote fields for underspecified JSON messages.
ASE: clip.hh: fix ClipImpl::CmpNoteTicks to take channel into account
ASE: clip.hh: fix ClipImpl::CmpNoteIds to only take id into account
ASE: eventlist.hh: return bool from insert() to indicate replacing
ASE: defs.hh: provide standard decls for class Emittable
ASE: cxxaux.hh: add shared_ptr_from<>()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 51e0411d329
ASE: project: clear undo stack upon track removal
This avoids invalid pointers across track removal.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # fd14e3b069c
UI: util.js: use 'Raw' prepfix for physical hotkey matching
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 50333ebc771
UI: b/deviceeditor.vue: use :check for menu deactivation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # cae36243195
UI: b/menubar.vue: fix comment
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # ebd2dfa4148
UI: b/menubar.vue: add Edit menu with Undo and Redo
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # c453d7091fb
UI: b/contextmenu.vue: add :check="checkuri" callback, check uri on keypress
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # c3fde4cb2e7
UI: script.js: adjust to insert_note()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 6617baa10a7
UI: b/piano-ctrl.js: adjust change_note(), insert_note(), group undo
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 287c56cffcb
ASE: api.hh, clip: add Clip.insert_note() and implement Clip undo
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 3260aaa64c9
ASE: api.hh, project: implement undo mechanism
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # c8ba48d3d8c
ASE: object: add queue_notify() to deliver notifications asynchronously
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # a9141db6aa4
ASE: api.hh: zero-init ClipNote and add ClipNote::operator==
This fixes some bogus ClipNote fields for underspecified JSON messages.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 65753f0c6f4
ASE: clip.hh: fix ClipImpl::CmpNoteTicks to take channel into account
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # c8dd896e706
ASE: clip.hh: fix ClipImpl::CmpNoteIds to only take id into account
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 0ec4532ad8a
ASE: eventlist.hh: return bool from insert() to indicate replacing
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 372ed0f0f59
ASE: defs.hh: provide standard decls for class Emittable
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # e274e7b5aac
ASE: cxxaux.hh: add shared_ptr_from<>()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-08 Tim Janik # 9b8f6f208bd
Merge branch 'scripting'
* scripting:
UI: b/piano-ctrl.js: fix focus loss during note deletion
UI: b/piano-roll.vue: popup modal dialog with script parameters
UI: host.js: add simple parameter ctors: Bool, Range, Text, Choices & Choice
UI: host.js: allow script registration with parameters
UI: b/piano-roll.vue: use black as unpainted canvas background
This only affects flickering that occours when canvases are redrawn,
e.g. during window resizing.
UI: script.js: allow script registration and execution with parameters
UI: b/fed-text.vue: allow text field shrinking
UI: b/fed-number.vue: allow number shrnking
UI: b/choice.vue: allow choice shrinking
UI: b/fed-object.vue: alter layout to allow full field value shrinking
UI: b/shell.vue: support property list in modal dialogs
ASE: server: cache Preference properties and properly capture defaults
ASE: properties.cc: store initial Value as default
UI: Makefile.mk: upgrade to use material-icons-220403-1-h964709088.tar.xz
UI: b/dialog.vue: keep done_resizing==false until children are present
This avoids dialogs prematurely popping down immediately after
show==true, due to done_resizing==true while the dialog has
not created all its children.
UI: b/app.js: rename App.async_button_dialog()
DOC: copyright.ini: put ui/ch-scripting.md under MPL-2
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-07 Tim Janik # bd42d23a9c4
UI: b/piano-ctrl.js: fix focus loss during note deletion
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-06 Tim Janik # f6b3a11b9cb
UI: b/piano-roll.vue: popup modal dialog with script parameters
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-06 Tim Janik # 6680583cffb
UI: host.js: add simple parameter ctors: Bool, Range, Text, Choices & Choice
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-06 Tim Janik # 497442bca5a
UI: host.js: allow script registration with parameters
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-06 Tim Janik # 0535d7bfcbc
UI: b/piano-roll.vue: use black as unpainted canvas background
This only affects flickering that occours when canvases are redrawn,
e.g. during window resizing.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-06 Tim Janik # 836f0f8c560
UI: script.js: allow script registration and execution with parameters
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-05 Tim Janik # bcf8bfa4341
UI: b/fed-text.vue: allow text field shrinking
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-05 Tim Janik # e0b1ce13f94
UI: b/fed-number.vue: allow number shrnking
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-05 Tim Janik # 13a95db14fd
UI: b/choice.vue: allow choice shrinking
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-05 Tim Janik # 24d95f7b021
UI: b/fed-object.vue: alter layout to allow full field value shrinking
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-05 Tim Janik # 9e660ac3236
UI: b/shell.vue: support property list in modal dialogs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-05 Tim Janik # 6617d1f05ea
ASE: server: cache Preference properties and properly capture defaults
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-05 Tim Janik # 6f32447a720
ASE: properties.cc: store initial Value as default
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-03 Tim Janik # 771d9934e87
UI: Makefile.mk: upgrade to use material-icons-220403-1-h964709088.tar.xz
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-03 Tim Janik # c912cc7ba27
UI: b/dialog.vue: keep done_resizing==false until children are present
This avoids dialogs prematurely popping down immediately after
show==true, due to done_resizing==true while the dialog has
not created all its children.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-03 Tim Janik # 270b9ea744d
UI: b/app.js: rename App.async_button_dialog()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 8ba3db5841a
DOC: copyright.ini: put ui/ch-scripting.md under MPL-2
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # a2494797f77
Merge branch 'scripting-docs'
* scripting-docs:
DOC: split Anklang manual and development documentation
DOC: Makefile.mk: add scripting docs
UI: Makefile.mk: generate scripting docs
UI: ch-scripting.md: add small scripting intro
DOC: jsdoc2md.js: support class anchors and explicit #linking
UI: startup.js: Chrome-100 still has the movementX devicePixelRatio bug
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 78bde562c19
DOC: split Anklang manual and development documentation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-30 Tim Janik # f743dbad694
DOC: Makefile.mk: add scripting docs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-30 Tim Janik # f0b3f3f20dc
UI: Makefile.mk: generate scripting docs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-30 Tim Janik # 14af07ba2d2
UI: ch-scripting.md: add small scripting intro
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-30 Tim Janik # 43a9e74b887
DOC: jsdoc2md.js: support class anchors and explicit #linking
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-01 Tim Janik # f5360c32481
UI: startup.js: Chrome-100 still has the movementX devicePixelRatio bug
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 28f8de8eaed
Merge branch 'scripting-host'
* scripting-host:
UI: host.js: implement WorkerClip
UI: script.js: add piano_roll_clip_refhandle, clip_list_all_notes, clip_insert_note
UI: eslintrc.js: modern Browsers have FinalizationRegistry
UI: b/piano-roll.vue: require editable clip for contextmenu
UI: b/piano-ctrl.js: ignore button=2 for dragging
UI: b/piano-roll.vue: add piano_ctrl.move_event(), change pointer on notehover
UI: b/piano-ctrl.js: set note_canvas.data-notehover="true" in move_event()
UI: b/piano-roll.vue: run PianoRoll scripts via contextmenu
UI: startup.js: load scripts from /{Builtin|User}/{Controller|Scripts}/
UI: script.js: provide run_script_fun() and load_script()
UI: host.js: handle funid calls
UI: eslintrc.js: silence useless vue checks
UI: b/contextmenu.vue: allow setting showicons, throw on empty clicks
ASE: api.hh: add Server.url_crawler()
ASE: main: expose web_socket_server
ASE: websocket.cc: properly decode URLs
ASE: crawler: allow setting constraindir, constrainfile upon crawler creation
ASE: strings: add string_url_encode, string_url_decode
ASE: main.cc: serve /{Builtin|User}/{Controller|Scripts}/ via websocket
ASE: websocket: add http_alias, map_url to serve from different filesystem dirs
ASE: path.cc: join_with(): fix duplicate slashes in some cases
ASE: platform: rename anklang_runpath(), support adding filename
ASE: platform: add anklang_home_dir()
UI: b/contextmenu.vue: fix invalid caching of popupclass
UI: host.js: provide WorkerHost, the API endpoint for scripts
UI: eslintrc.js: support `log` and `host` globals
UI: b/trackview.vue: silence eslint
UI: startup.js: load ./script.js
UI: script.js: add run_script() to start user scripts in JS
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 5b98d7c97c4
UI: host.js: implement WorkerClip
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 2ab39128829
UI: script.js: add piano_roll_clip_refhandle, clip_list_all_notes, clip_insert_note
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # fe18c791136
UI: eslintrc.js: modern Browsers have FinalizationRegistry
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # aba17596081
UI: b/piano-roll.vue: require editable clip for contextmenu
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # ac23fdf88b9
UI: b/piano-ctrl.js: ignore button=2 for dragging
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 095918424cf
UI: b/piano-roll.vue: add piano_ctrl.move_event(), change pointer on notehover
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 431394d9060
UI: b/piano-ctrl.js: set note_canvas.data-notehover="true" in move_event()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 0acfecd3da8
UI: b/piano-roll.vue: run PianoRoll scripts via contextmenu
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # c4f0e72a8dc
UI: startup.js: load scripts from /{Builtin|User}/{Controller|Scripts}/
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 2a448f4081a
UI: script.js: provide run_script_fun() and load_script()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # bda1cf96301
UI: host.js: handle funid calls
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 8d3af1faefe
UI: eslintrc.js: silence useless vue checks
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 9457efa9fe6
UI: b/contextmenu.vue: allow setting showicons, throw on empty clicks
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 40d8a8c79bc
ASE: api.hh: add Server.url_crawler()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 8ff8268bb1f
ASE: main: expose web_socket_server
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 74006340361
ASE: websocket.cc: properly decode URLs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # c9802ae3b47
ASE: crawler: allow setting constraindir, constrainfile upon crawler creation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 01781c99b80
ASE: strings: add string_url_encode, string_url_decode
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-01 Tim Janik # 1d86dcee2f3
ASE: main.cc: serve /{Builtin|User}/{Controller|Scripts}/ via websocket
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-01 Tim Janik # 852605a8020
ASE: websocket: add http_alias, map_url to serve from different filesystem dirs
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-01 Tim Janik # 26e26959332
ASE: path.cc: join_with(): fix duplicate slashes in some cases
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-01 Tim Janik # 23bcbb41837
ASE: platform: rename anklang_runpath(), support adding filename
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-01 Tim Janik # 05d2dbe698d
ASE: platform: add anklang_home_dir()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-31 Tim Janik # cac9a31595a
UI: b/contextmenu.vue: fix invalid caching of popupclass
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-30 Tim Janik # 440b090a708
UI: host.js: provide WorkerHost, the API endpoint for scripts
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-30 Tim Janik # d9e05a59afd
UI: eslintrc.js: support `log` and `host` globals
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-30 Tim Janik # 656ffa856e6
UI: b/trackview.vue: silence eslint
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-30 Tim Janik # cf223118f83
UI: startup.js: load ./script.js
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-30 Tim Janik # 35575b39b5d
UI: script.js: add run_script() to start user scripts in JS
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 95f33cde5e3
Merge branch 'piano-roll-selection'
* piano-roll-selection:
UI: b/piano-ctrl.js: move/resize/delete/quantize groups of notes
UI: b/piano-ctrl.js: fix focus note assignments
ASE: clip.hh: allow selected to "override" a previous unselected event
ASE: clip.cc: take selected state into account in change_note, toggle_note
UI: b/piano-ctrl.js: remove unused var
UI: b/fed-object.vue: remove unused var
UI: b/editable.vue: fix missing 'change' emits
UI: Makefile.mk: allow .mjs installation
ASE: mime-types.hh: serve cjs mjs as application/javascript
MISC: package.json.in: upgrade to chroma-js-2.3.0
UI: b/piano-ctrl.js: implement rectangle selection
UI: b/piano-roll.vue: paint selection rectangle
ASE: api.hh: add 'selected' to unique note identity
* Add 'selected' to the change_note() argument list.
* Allow two notes at the same key and tick with different 'selected' bits.
UI: b/piano-roll.vue: track focus in reactive this.adata.have_focus
ASE: api.hh: add Clip::toggle_note() to /un-)select notes
ASE: mime-types.hh: add mime type for .mkv
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-28 Tim Janik # eec66a8304a
UI: b/piano-ctrl.js: move/resize/delete/quantize groups of notes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-28 Tim Janik # e61ad520537
UI: b/piano-ctrl.js: fix focus note assignments
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-27 Tim Janik # c0538c42040
ASE: clip.hh: allow selected to "override" a previous unselected event
Signed-off-by: Tim Janik <timj@gnu.org>
2022-03-27 Tim Janik # 0b814bddcdf
ASE: clip.cc: take selected state into account in change_note, toggle_note
Signed-off-by: Tim Janik <timj@gnu.org>
2022-02-07 Tim Janik # c0258bb1714
UI: b/piano-ctrl.js: remove unused var
Signed-off-by: Tim Janik <timj@gnu.org>
2022-02-07 Tim Janik # 54686d3b4a9
UI: b/fed-object.vue: remove unused var
Signed-off-by: Tim Janik <timj@gnu.org>
2022-02-07 Tim Janik # 05541dda40a
UI: b/editable.vue: fix missing 'change' emits
Signed-off-by: Tim Janik <timj@gnu.org>
2022-02-07 Tim Janik # 9cfaabd00f8
UI: Makefile.mk: allow .mjs installation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-02-07 Tim Janik # b4c2ebb4028
ASE: mime-types.hh: serve cjs mjs as application/javascript
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-28 Tim Janik # d23b81dbe90
MISC: package.json.in: upgrade to chroma-js-2.3.0
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-28 Tim Janik # 40b5a5df937
UI: b/piano-ctrl.js: implement rectangle selection
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-28 Tim Janik # ca20c8726e6
UI: b/piano-roll.vue: paint selection rectangle
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-28 Tim Janik # fa13f1f790f
ASE: api.hh: add 'selected' to unique note identity
* Add 'selected' to the change_note() argument list.
* Allow two notes at the same key and tick with different 'selected' bits.
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-27 Tim Janik # 5f25780eea8
UI: b/piano-roll.vue: track focus in reactive this.adata.have_focus
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-27 Tim Janik # 0919906c12e
ASE: api.hh: add Clip::toggle_note() to /un-)select notes
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-27 Tim Janik # 09e26efb611
ASE: mime-types.hh: add mime type for .mkv
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 9f55144ab16
Merge branch 'dialog-hide-resizing'
* dialog-hide-resizing:
UI: b/fed-object.vue: while fetching properties, block b_dialog_resizers
UI: b/dialog.vue: keep dialog invisible while b_dialog_resizers return true
UI: util.js: use indexOf() for array_remove()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-19 Tim Janik # 30970f48ae9
UI: b/fed-object.vue: while fetching properties, block b_dialog_resizers
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-19 Tim Janik # 905c07d6ed9
UI: b/dialog.vue: keep dialog invisible while b_dialog_resizers return true
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-19 Tim Janik # a165b467267
UI: util.js: use indexOf() for array_remove()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 94fb2093c39
Merge branch 'clip-looping'
* clip-looping:
ASE: clip.cc: keep looping forever
UI: b/fed-object.vue: use Util.extend_property(), parallelize all prop queries
UI: util.js: extend_property(): support property augmentation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-12-10 Tim Janik # 07ead7715fc
ASE: clip.cc: keep looping forever
Signed-off-by: Tim Janik <timj@gnu.org>
2021-12-09 Tim Janik # 723dd9b7276
UI: b/fed-object.vue: use Util.extend_property(), parallelize all prop queries
Signed-off-by: Tim Janik <timj@gnu.org>
2021-12-09 Tim Janik # 86a1c0872e8
UI: util.js: extend_property(): support property augmentation
Signed-off-by: Tim Janik <timj@gnu.org>
2022-04-02 Tim Janik # 8d8bc4b5261
Merge branch 'jsonipc-default-args'
* jsonipc-default-args:
JSONIPC: testjsonipc.cc: add tests for argument default values
JSONIPC: cxxjip.py: use set_d() to register methods with default arguments
JSONIPC: jsonipc.hh: support methods with default arguments via set_d()
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-28 Tim Janik # 5afe47b71ba
JSONIPC: testjsonipc.cc: add tests for argument default values
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-27 Tim Janik # f9b8959dae0
JSONIPC: cxxjip.py: use set_d() to register methods with default arguments
Signed-off-by: Tim Janik <timj@gnu.org>
2022-01-27 Tim Janik # 28d9eac1e8d
JSONIPC: jsonipc.hh: support methods with default arguments via set_d()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-30 Tim Janik # 9d98f789cf4
Merge branch 'insn-variants'
* insn-variants:
MISC: mkdeb.sh: use xz compression level -9
UI: Makefile.mk: consistently use $(CP)
UI: Makefile.mk: fix missing dependency
If parallel invocations of CP(1) try to create the same directory
concurrently, one can fail with EEXIST which breaks the make rule.
ASE: Makefile.mk: support AnklangSynthEngine-fma installation
ELECTRON: main.js: start AnklangSynthEngine-fma if present
ASE: Makefile.mk: add INSN to ase_version_long
ASE: platform.cc: find installpath from .text symbol instead of hardcoded name
MISC: Makefile.mk: use $UID not $USER to construct tmp directory name
Using the numeric $UID avoids special chars in the directory name.
MISC: Makefile.mk: build SSE and FMA binaries into same release package
MISC: Makefile.mk: set BUILDDIR for misc/mkdeb.sh
MISC: mkdeb.sh: support $BUILDDIR in environment
DEVICES: Makefile.mk: fix missing directory dependency for .nostray
DEVICES: blepsynth/Makefile.mk: fix missing directory dependency for .nostray
MISC: config-uname.mk: ensure to define INSN, even if it's 'native'
MISC: config-uname.mk: optimize for native CPU unless INSN=fma or INSN=sse
ASE: Makefile.mk: insn-targets: install $INSNDEST/…/AnklangSynthEngine-$INSN
MISC: Makefile.mk: publish release tag after successful release-upload
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 3bdd4a8cab4
MISC: mkdeb.sh: use xz compression level -9
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-29 Tim Janik # 649e8e63e1e
UI: Makefile.mk: consistently use $(CP)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-29 Tim Janik # cefd893ae0a
UI: Makefile.mk: fix missing dependency
If parallel invocations of CP(1) try to create the same directory
concurrently, one can fail with EEXIST which breaks the make rule.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-28 Tim Janik # 719efa74d96
ASE: Makefile.mk: support AnklangSynthEngine-fma installation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-28 Tim Janik # 80bb9b0a478
ELECTRON: main.js: start AnklangSynthEngine-fma if present
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-28 Tim Janik # 4daf1d65d0a
ASE: Makefile.mk: add INSN to ase_version_long
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-28 Tim Janik # caea0617038
ASE: platform.cc: find installpath from .text symbol instead of hardcoded name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-30 Tim Janik # 8be9940d4f2
MISC: Makefile.mk: use $UID not $USER to construct tmp directory name
Using the numeric $UID avoids special chars in the directory name.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-26 Tim Janik # feb01cb8a0d
MISC: Makefile.mk: build SSE and FMA binaries into same release package
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-26 Tim Janik # c0ef9cf93e4
MISC: Makefile.mk: set BUILDDIR for misc/mkdeb.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-26 Tim Janik # ba1ff5047a6
MISC: mkdeb.sh: support $BUILDDIR in environment
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-26 Tim Janik # 3f32e73f99d
DEVICES: Makefile.mk: fix missing directory dependency for .nostray
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-26 Tim Janik # 1c80e7d346c
DEVICES: blepsynth/Makefile.mk: fix missing directory dependency for .nostray
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-28 Tim Janik # 433263aa5d1
MISC: config-uname.mk: ensure to define INSN, even if it's 'native'
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-26 Tim Janik # 5cc1692045a
MISC: config-uname.mk: optimize for native CPU unless INSN=fma or INSN=sse
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-26 Tim Janik # 22572db59f1
ASE: Makefile.mk: insn-targets: install $INSNDEST/…/AnklangSynthEngine-$INSN
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-22 Tim Janik # 93a2dd9d8bd
MISC: Makefile.mk: publish release tag after successful release-upload
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-22 Tim Janik # bcde2f3e444
Anklang 0.0.1-alpha1
This wraps up a good year of development to reshape the code base into
something sane, modern and extensible. Let's hope we can pick up a fast
pace for releases from now on...
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-22 Tim Janik # 65517488398
Merge branch 'release-rules'
* release-rules:
MISC: Makefile.mk: upload release assets ChangeLog, deb, AppImage
MISC: Makefile.mk: force git worktree remove
MISC: Makefile.mk: show release artefacts after release build
MISC: Makefile.mk: add 'release-changelog' to 'release-build'
MISC: Makefile.mk: use make anklang-deb for release-build
MISC: Makefile.mk: add release-upload, use --news-tag options
MISC: Makefile.mk: add rule to generate release ChangeLog
MISC: Makefile.mk: add anklang-deb rule
MISC: Makefile.mk: move appimage-runtime-zstd next to appimage rule
MISC: Makefile.mk: build debian package
MISC: Makefile.mk: add release-build to build release artefacts with defaults
MISC: Makefile.mk: add release-news to help with NEWS.md updates
MISC: Makefile.mk: introduce proper AppImage dependency
MISC: version.sh: add --news-tag1, --news-tag2 to extract tags from NEWS.md
MISC: version.sh: handle 2-number versions, enforce non-release postfix
MISC: config-uname.mk: INSTALL_DIR_RULE.impl: install explicit targets only
MISC: mkdeb.sh: remove unneeded usr/share/doc/<PACKAGE> link
DOC: Makefile.mk: add missing $(docdir)/anklang installation
DOC: style/Makefile.mk: INSTALL_DIR_RULE needs dependable install targets
DOC: Makefile.mk: use preconfigured $(CP)
ELECTRON: Makefile.mk: minor cleanup
Makefile.mk: define docdir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # 459fb97b855
MISC: Makefile.mk: upload release assets ChangeLog, deb, AppImage
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # 220573b312f
MISC: Makefile.mk: force git worktree remove
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # 25b404564f4
MISC: Makefile.mk: show release artefacts after release build
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # 432cb33914a
MISC: Makefile.mk: add 'release-changelog' to 'release-build'
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # c0c89669c3d
MISC: Makefile.mk: use make anklang-deb for release-build
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # b25be361b28
MISC: Makefile.mk: add release-upload, use --news-tag options
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # d790bcd046b
MISC: Makefile.mk: add rule to generate release ChangeLog
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # d894734492b
MISC: Makefile.mk: add anklang-deb rule
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # bb55f26003e
MISC: Makefile.mk: move appimage-runtime-zstd next to appimage rule
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # c5a4af3a836
MISC: Makefile.mk: build debian package
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # 5104f1d3214
MISC: Makefile.mk: add release-build to build release artefacts with defaults
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # b7ac7ee20bc
MISC: Makefile.mk: add release-news to help with NEWS.md updates
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-21 Tim Janik # add9d225add
MISC: Makefile.mk: introduce proper AppImage dependency
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-20 Tim Janik # a102bec35f5
MISC: version.sh: add --news-tag1, --news-tag2 to extract tags from NEWS.md
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-20 Tim Janik # 2a5e3ac7ada
MISC: version.sh: handle 2-number versions, enforce non-release postfix
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-20 Tim Janik # 5b62883cf79
MISC: config-uname.mk: INSTALL_DIR_RULE.impl: install explicit targets only
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-22 Tim Janik # c240ce4e2bd
MISC: mkdeb.sh: remove unneeded usr/share/doc/<PACKAGE> link
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-22 Tim Janik # d04e6789182
DOC: Makefile.mk: add missing $(docdir)/anklang installation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-20 Tim Janik # 2b47ef08a08
DOC: style/Makefile.mk: INSTALL_DIR_RULE needs dependable install targets
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-20 Tim Janik # 3dcb8b8c2b3
DOC: Makefile.mk: use preconfigured $(CP)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-22 Tim Janik # d6663eb29f7
ELECTRON: Makefile.mk: minor cleanup
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-22 Tim Janik # ee4b1663c9d
Makefile.mk: define docdir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-19 Tim Janik # 278109c24dc
Merge branch 'print-driver-flags'
* print-driver-flags:
ASE: main.cc: --list-drivers: print driver flags if ASE_DEBUG=driver
ASE: driver: add priority_string()
UI: eslintrc.js: use OFF consistently
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-19 Tim Janik # 755dc207031
ASE: main.cc: --list-drivers: print driver flags if ASE_DEBUG=driver
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-19 Tim Janik # 07b411848b6
ASE: driver: add priority_string()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-13 Tim Janik # e35d872a5e7
UI: eslintrc.js: use OFF consistently
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-19 Tim Janik # 5b9045d6b7c
Merge branch 'with-latex'
* with-latex:
DOC: Makefile.mk: build & install anklang-manual.pdf if WITH_LATEX=y is in env
MISC: Makefile.mk: force link installation
DOC: Makefile.mk: doc/install: fix missing doc/style/ installation
NEWS.md: fix wording
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-18 Tim Janik # c43262cc90e
DOC: Makefile.mk: build & install anklang-manual.pdf if WITH_LATEX=y is in env
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-18 Tim Janik # 599d68f8834
MISC: Makefile.mk: force link installation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-18 Tim Janik # 03e2fae89e9
DOC: Makefile.mk: doc/install: fix missing doc/style/ installation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-18 Tim Janik # 0e14084eb0f
NEWS.md: fix wording
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-11 Tim Janik # 5674a32c07e
Merge branch 'clip-playback'
* clip-playback:
UI: util.js: remove unused code
UI: b/positionview.vue: make numerator/denominator editable
- use editable fields for numerator and denominator
- avoid requesting unneeded telemetry fields
UI: b/devicepanel.vue: use defaultcollapse=false for device menu
UI: b/treeselector-item.vue: honor defaultcollapse for collapsible entries
UI: b/treeselector.vue: add 'defaultcollapse'
UI: b/trackview.vue: remove unused code
UI: b/tracklist.vue: provide b-cliplist.trackindex attribute
UI: b/clipview.vue: add component to render clip thumbnails
- render thumbnail of a clip
- export tickscale
- change current piano roll contents upon clicks
UI: b/cliplist.vue: use b-clipview and show playback position
- use b-clipview to display clips
- display current clip playback position via track telemetry
- avoid Proxy-fication of telemetry
- cleanup cliplist.vue
UI: theme.scss: introduce b-clip-play-bg and b-clip-play-fg
ASE: track: add ClipScout, setup MidiProducer, feed it Clip::Generator
- create and connect MidiProducer
- install EngineMidiInput -> MidiProducer connection
- update_clips(): adjust MidiFeed when clips change
- queue_cmd: support START/STOP commands on MIDI producer
- TrackImpl: expose project()
- queue_cmd(STOP): allow `bool restart` as callback argument
- add ClipScout to determine clip succession
- export track playback telemetry fields
ASE: api.hh: export track playback telemetry fields
ASE: project: 1776 BPM, use TickSignature, fix start & stop
- add TickSignature, allow changes to numerator/denominator
- start and stop all tracks synchronously
- use TickSignature to store and export tempo
- conditionally reset transport upon second stop()
- allow up to 1776 BPM
- align telemetry fields
ASE: engine.cc: update transport position directly after rendering
ASE: transport: 1776 BPM, align fields, add modification API
- use TickSignature to store and export tempo
- allow up to 1776 BPM
- check min/max rate and bpm
- align telemetry fields
- guard against negative tick values
- provide set_tick() and set_beat()
- remove unused offset in TickSignature
- support TickSignature assignment
ASE: clip: add MIDI note Generator
- trigger update_clips() if the containing track on changes
- emit notifications after deserialization
- add ClipImpl::Generator to isolate clip note generation
- use closed-form calculation to jump across loops
- use callbacks to generate notes from generate()
- return number of generated ticks from generate()
ASE: midilib: introduce MidiProducer and helpers MidiFeed, MidiClip
- add MidiProducer class to generate MIDI events from clips and pass through
MIDI device events. Uses TRANSPORT_PPQN from transport.hh. Notes of a
MidiClip are provided as a sequnce of clips in a MidiFeed struct.
Expose the current playback positon for Ase::Track.
- add ClipImplGeneratorS to MidiFeed
- start clip on bar boundary
- call ClipImpl::Generator to generate notes
- use ClipImplGenerator to generate MIDI note events
- use TrackImpl::ClipScout to guide clip succession
- pass through incoming MIDI input events
- preserve play position across feed updates
- flush NOTE_OFF events on stop
- add `restart` flag to stop()
- allow playback continuation
ASE: midievent: ensure_order(): use non-allocating fixed_sort and inline dtors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # c84845d9a0b
UI: util.js: remove unused code
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # a77f8c386b9
UI: b/positionview.vue: make numerator/denominator editable
- use editable fields for numerator and denominator
- avoid requesting unneeded telemetry fields
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # eced4e5d430
UI: b/devicepanel.vue: use defaultcollapse=false for device menu
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # d1a7ac6e680
UI: b/treeselector-item.vue: honor defaultcollapse for collapsible entries
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # cc9bbfec450
UI: b/treeselector.vue: add 'defaultcollapse'
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 587d0f01e59
UI: b/trackview.vue: remove unused code
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 84ea9de4d42
UI: b/tracklist.vue: provide b-cliplist.trackindex attribute
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 413ff837e63
UI: b/clipview.vue: add component to render clip thumbnails
- render thumbnail of a clip
- export tickscale
- change current piano roll contents upon clicks
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # d59fe839b0d
UI: b/cliplist.vue: use b-clipview and show playback position
- use b-clipview to display clips
- display current clip playback position via track telemetry
- avoid Proxy-fication of telemetry
- cleanup cliplist.vue
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # c0bd3b55637
UI: theme.scss: introduce b-clip-play-bg and b-clip-play-fg
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-07 Tim Janik # 209ce5de23c
ASE: track: add ClipScout, setup MidiProducer, feed it Clip::Generator
- create and connect MidiProducer
- install EngineMidiInput -> MidiProducer connection
- update_clips(): adjust MidiFeed when clips change
- queue_cmd: support START/STOP commands on MIDI producer
- TrackImpl: expose project()
- queue_cmd(STOP): allow `bool restart` as callback argument
- add ClipScout to determine clip succession
- export track playback telemetry fields
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 62068d27086
ASE: api.hh: export track playback telemetry fields
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # d0fcf5dcdc5
ASE: project: 1776 BPM, use TickSignature, fix start & stop
- add TickSignature, allow changes to numerator/denominator
- start and stop all tracks synchronously
- use TickSignature to store and export tempo
- conditionally reset transport upon second stop()
- allow up to 1776 BPM
- align telemetry fields
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 59f4c4d67d1
ASE: engine.cc: update transport position directly after rendering
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 54a075e4f74
ASE: transport: 1776 BPM, align fields, add modification API
- use TickSignature to store and export tempo
- allow up to 1776 BPM
- check min/max rate and bpm
- align telemetry fields
- guard against negative tick values
- provide set_tick() and set_beat()
- remove unused offset in TickSignature
- support TickSignature assignment
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 6a26632a449
ASE: clip: add MIDI note Generator
- trigger update_clips() if the containing track on changes
- emit notifications after deserialization
- add ClipImpl::Generator to isolate clip note generation
- use closed-form calculation to jump across loops
- use callbacks to generate notes from generate()
- return number of generated ticks from generate()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 9021b9f44e8
ASE: midilib: introduce MidiProducer and helpers MidiFeed, MidiClip
- add MidiProducer class to generate MIDI events from clips and pass through
MIDI device events. Uses TRANSPORT_PPQN from transport.hh. Notes of a
MidiClip are provided as a sequnce of clips in a MidiFeed struct.
Expose the current playback positon for Ase::Track.
- add ClipImplGeneratorS to MidiFeed
- start clip on bar boundary
- call ClipImpl::Generator to generate notes
- use ClipImplGenerator to generate MIDI note events
- use TrackImpl::ClipScout to guide clip succession
- pass through incoming MIDI input events
- preserve play position across feed updates
- flush NOTE_OFF events on stop
- add `restart` flag to stop()
- allow playback continuation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 2a0dc3dbc57
ASE: midievent: ensure_order(): use non-allocating fixed_sort and inline dtors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 652242bf7e0
Merge branch 'driver-hints'
* driver-hints:
UI: startup.js: Chrome-95 still has the movementX devicePixelRatio bug
UI: b/treeselector*.vue: use :disabled="null" to enable items (Vue3)
UI: b/devicepanel.vue: add comment
UI: util.js: fix indentation
UI: b/contextmenu.vue: avoid scaling during positioning
UI: b/fed-object.vue: widen label and value widths
UI: b/choice.vue: avoid fixing width for small="0"
UI: b/icon.vue: use top-alignment for all icons
UI: b/choice.vue: properly break lines after choice spans
UI: b/contextmenu.vue: copy b-contextmenu-plaeholder classes over to b-contextmenu
UI: b/preferencesdialog.vue: use hints to assign headset and recorder icons
UI: util.js: rename observable_from_getters()
UI: b/shell.vue: use cwd=MUSIC as FS default
UI: b/filedialog.vue: give cwd property precedence
UI: b/envue.js: copy static members
UI: b/envue.js: simplify component initialization, improve docs
UI: b/envue.js: forward activated(), deactivated(), serverPrefetch()
UI: util.js: add weakoid() to weakly associate objects with a unique id
UI: util.js: improvde dom_update() robustness, add dom_change()
ASE: driver-alsa.cc: adjust priorities based on DriverEntry.hints
ASE: driver-alsa.cc: add DriverEntry.hints based on mixer configurations
ASE: driver.hh: allow finer grained priorities
ASE: server.cc: add DriverEntry.hints to icon specification
ASE: main.cc: print DriverEntry.hints during --list-drivers
ASE: driver.hh: add 'hints' to DriverEntry
ASE: api.hh: optimize ClipNote for storage size and lookups
ASE: processor, combo: rename pm_connect_event_input()
ASE: driver-alsa.cc: rename EDEBUG()
ASE: defs.hh: add DCallbackS for callback sequences that take a double
ASE: defs.hh: provide U64MAX I63MAX I63MIN U32MAX I31MAX I31MIN M23MAX M52MAX
ASE: defs.hh: define CallbackS
ASE: sortnet: fixed_sort(): use sorting networks for containers <= 16 elements
ASE: regex: support Re::sub() with count argument
ASE: utils.cc: allow '-_' in Icon specifications
ASE: internal.hh: add assert_paranoid()
ASE: cxxaux.hh: add ASE_ASSERT_PARANOID()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # b95e5fcaa9b
UI: startup.js: Chrome-95 still has the movementX devicePixelRatio bug
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-03 Tim Janik # 0df7f2402cf
UI: b/treeselector*.vue: use :disabled="null" to enable items (Vue3)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-03 Tim Janik # f12c0e55cdb
UI: b/devicepanel.vue: add comment
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-03 Tim Janik # 15948e7eaa9
UI: util.js: fix indentation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-03 Tim Janik # ccbc695968c
UI: b/contextmenu.vue: avoid scaling during positioning
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-26 Tim Janik # 2cc0b1620ef
UI: b/fed-object.vue: widen label and value widths
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-26 Tim Janik # df2da252819
UI: b/choice.vue: avoid fixing width for small="0"
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-25 Tim Janik # 8c2f7014b4c
UI: b/icon.vue: use top-alignment for all icons
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-25 Tim Janik # 79a9b2765c4
UI: b/choice.vue: properly break lines after choice spans
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-25 Tim Janik # 58bccd022ba
UI: b/contextmenu.vue: copy b-contextmenu-plaeholder classes over to b-contextmenu
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-21 Tim Janik # 6c5b2507c66
UI: b/preferencesdialog.vue: use hints to assign headset and recorder icons
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-07 Tim Janik # d678d793de5
UI: util.js: rename observable_from_getters()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # 5e661b74409
UI: b/shell.vue: use cwd=MUSIC as FS default
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # 4142788961c
UI: b/filedialog.vue: give cwd property precedence
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # e9a64a6ed7e
UI: b/envue.js: copy static members
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # ac05abcc145
UI: b/envue.js: simplify component initialization, improve docs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # 300c0cefa8d
UI: b/envue.js: forward activated(), deactivated(), serverPrefetch()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-01 Tim Janik # 49d038307bd
UI: util.js: add weakoid() to weakly associate objects with a unique id
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # b344597147b
UI: util.js: improvde dom_update() robustness, add dom_change()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-21 Tim Janik # 35e5bcb2948
ASE: driver-alsa.cc: adjust priorities based on DriverEntry.hints
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-21 Tim Janik # 49d178d8fd7
ASE: driver-alsa.cc: add DriverEntry.hints based on mixer configurations
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-21 Tim Janik # 83ff5eceacf
ASE: driver.hh: allow finer grained priorities
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-19 Tim Janik # bf6a34fb83f
ASE: server.cc: add DriverEntry.hints to icon specification
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-18 Tim Janik # 784f76eee1e
ASE: main.cc: print DriverEntry.hints during --list-drivers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-18 Tim Janik # 202a77d9229
ASE: driver.hh: add 'hints' to DriverEntry
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-15 Tim Janik # ab4ebfad50f
ASE: api.hh: optimize ClipNote for storage size and lookups
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-16 Tim Janik # 0fd6498254b
ASE: processor, combo: rename pm_connect_event_input()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-21 Tim Janik # 773a671f17a
ASE: driver-alsa.cc: rename EDEBUG()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-29 Tim Janik # 148bfea62a7
ASE: defs.hh: add DCallbackS for callback sequences that take a double
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-14 Tim Janik # 9c430870715
ASE: defs.hh: provide U64MAX I63MAX I63MIN U32MAX I31MAX I31MIN M23MAX M52MAX
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-09 Tim Janik # ee9fc72a15e
ASE: defs.hh: define CallbackS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-26 Tim Janik # d368b155aa2
ASE: sortnet: fixed_sort(): use sorting networks for containers <= 16 elements
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-18 Tim Janik # e1dd4117f53
ASE: regex: support Re::sub() with count argument
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-18 Tim Janik # ad1ad98e2eb
ASE: utils.cc: allow '-_' in Icon specifications
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-26 Tim Janik # 2ceeb6d1786
ASE: internal.hh: add assert_paranoid()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-26 Tim Janik # a3d0aa88d7e
ASE: cxxaux.hh: add ASE_ASSERT_PARANOID()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 4107f2cf18c
Merge branch 'eslint-fixes'
* eslint-fixes:
MISC: dbuild.sh: build docker image *without* caching if '-i' is given
MISC: package.json.in: upgrade nodemon-2.0.15, needs undefsafe-2.0.5
For unknown reasons, npm-7.24.1 chokes unless undefsafe@2.0.5 is
explicitely installed alongside nodemon-2.0.15.
MISC: package.json.in: upgrade to vue-3.2.21, eslint-plugin-vue-7.20.0
UI: eslintrc.js: rename eslintrc.js from .eslintrc.js
UI: .eslintrc.js: switch to plugin:vue/vue3-recommended
UI: b/treeselector-item.vue: use <component :is="li"/>, mandated by vue3
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 934b12cc3b8
MISC: dbuild.sh: build docker image *without* caching if '-i' is given
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 5b84ddde24e
MISC: package.json.in: upgrade nodemon-2.0.15, needs undefsafe-2.0.5
For unknown reasons, npm-7.24.1 chokes unless undefsafe@2.0.5 is
explicitely installed alongside nodemon-2.0.15.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 43bdcd6daaa
MISC: package.json.in: upgrade to vue-3.2.21, eslint-plugin-vue-7.20.0
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 44678b20868
UI: eslintrc.js: rename eslintrc.js from .eslintrc.js
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # f192a2bc1fb
UI: .eslintrc.js: switch to plugin:vue/vue3-recommended
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-10 Tim Janik # 96c4f79e983
UI: b/treeselector-item.vue: use <component :is="li"/>, mandated by vue3
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-09 Tim Janik # eab0f3c85c1
Merge branch 'preload-option'
* preload-option:
ASE: driver.cc: account for n_channels_ during NULL driver writes
ASE: main: allow --jsbin without --jsipc
ASE: websocket, jsonapi: allow fine grained logging via logflags
ASE: server: add global ServerImpl *SERVER;
ASE: main: provide --list-drivers
ASE: main: support --preload <prj>
Makefile.mk: use ctags-universal to generate $>/TAGS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-13 Tim Janik # 432a1edde0e
ASE: driver.cc: account for n_channels_ during NULL driver writes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-07 Tim Janik # 4b4babb4af2
ASE: main: allow --jsbin without --jsipc
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-07 Tim Janik # 8efa68ae09d
ASE: websocket, jsonapi: allow fine grained logging via logflags
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-07 Tim Janik # 6c8b093bc89
ASE: server: add global ServerImpl *SERVER;
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-02 Tim Janik # 1415526ee04
ASE: main: provide --list-drivers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-22 Tim Janik # 7238c11c440
ASE: main: support --preload <prj>
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-14 Tim Janik # ecc60b0a712
Makefile.mk: use ctags-universal to generate $>/TAGS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-09 Tim Janik # 9054d94984c
Merge branch 'update-vue-electron'
* update-vue-electron:
UI: partlist.vue: silence eslint
MISC: package.json.in: update Vue, electron, eslint, markdown-it, sass, etc
Update to vue-3.2.19 electron-15.1.0 markdown-it-12.2.0 mathjax-3.2.0
eslint-7.32.0 eslint-plugin-html-6.2.0 eslint-plugin-vue-7.18.0 sass-1.42.1
nodemon-2.0.13.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-07 Tim Janik # 1cbc495ab22
UI: partlist.vue: silence eslint
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-03 Tim Janik # 85e463bcd93
MISC: package.json.in: update Vue, electron, eslint, markdown-it, sass, etc
Update to vue-3.2.19 electron-15.1.0 markdown-it-12.2.0 mathjax-3.2.0
eslint-7.32.0 eslint-plugin-html-6.2.0 eslint-plugin-vue-7.18.0 sass-1.42.1
nodemon-2.0.13.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-11-09 Tim Janik # 505dd94447d
Merge branch 'fix-make-run'
* fix-make-run:
MISC: checkinsertions.sh: simple tool to grep commit range for keywords
ASE: eventlist.hh: fix comment
Makefile.mk: run: start Anklang without installation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-03 Tim Janik # 92a26d54ec5
MISC: checkinsertions.sh: simple tool to grep commit range for keywords
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-15 Tim Janik # f285f5e9847
ASE: eventlist.hh: fix comment
Signed-off-by: Tim Janik <timj@gnu.org>
2021-10-03 Tim Janik # d5840119ced
Makefile.mk: run: start Anklang without installation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-07 Tim Janik # 5e4d923c3b1
Merge branch 'simplify-version-sh'
* simplify-version-sh:
DOC: copyright.ini: apply MPL-2.0 to .gitattributes
MISC: version.sh: simplify version detection
ASE: provide long version string as ase_version()
.gitattributes: allow git-archive substitutions for misc/version.sh
GITHUB: workflows/testing.yml: omit explicit workflow name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-07 Tim Janik # 0953fe49055
DOC: copyright.ini: apply MPL-2.0 to .gitattributes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-07 Tim Janik # ca54b0b66bc
MISC: version.sh: simplify version detection
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-07 Tim Janik # f1226e7abff
ASE: provide long version string as ase_version()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-07 Tim Janik # e6650f911d9
.gitattributes: allow git-archive substitutions for misc/version.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-06 Tim Janik # 6274b36e83b
GITHUB: workflows/testing.yml: omit explicit workflow name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-06 Tim Janik # a77a6ed85bf
Merge branch 'playback-transport'
* playback-transport:
UI: b/positionview.vue: adjust to sixteenth telemetry
ASE: project.cc: adjust Transport.running and adapt current_sixteenth telemetry
UI: b/partlist.vue: disable unfinished logic
UI: b/editable.vue: use #000 as input bg and auto-convert "clicks"
UI: util.js: remove unused v-inlineblur
UI: b/trackview.vue: use b-editable to edit track labels
UI: b/contextmenu.vue: prevent spurious enter/leave/etc events during transitions
UI: b/editable.vue: allow explicit and double click activation
UI: b/positionview.vue: allow BPM changes via b-editable
UI: b/positionview.vue: remove unused code
UI: b/editable.vue: display an editable <span/>
ASE: jsonapi.cc: require 'Origin: http://localhost' for socket connections
ASE: websocket: provide header() getter for WebSocketConnection::Info
ASE: project: implement real BPM setter
ASE: properties: support Range() property with explicit getter and setter
ASE: api.hh: Gadget: implement list_properties(), get_value(), set_value()
UI: b/positionview.vue: add input field
UI: b/positionview.vue: move frequent updates into text node
UI: b/trackview.vue: avoid @contextmenu propagation out of INPUT field
UI: startup.js: allow button3 browser menus in INPUT fields
UI: b/positionview.vue: display bar.beat.sixteenth.fraction minutes:seconds
UI: util.js: support Int8 telemtry data
ASE: project.cc: export current bar/beat/sixteenth, minutes/seconds, etc
ASE: project: add autoplay timer
ASE: server.hh: add int8 telemetry_type
ASE: cxxaux.hh: add divmod() helper
ASE: loop: add clear_source() helper
UI: util.js: export extend_property()
UI: b/positionview.vue: display bpm, numerator, denominator
ASE: project: add musical_tuning, dirty, bpm, numerator, denominator properties
ASE: server: provide EnumInfo::impl for MusicalTuning
ASE: value: add EnumInfo to augment enumerations
ASE: properties: add ident, support float Range and extend Enum properties
JSONIPC: jsonipc.hh: add Enum<>::list_values()
ASE: gadget.cc: implement access_property() in terms of access_properties()
ASE: clip.cc: notify about note changes
UI: b/positionview.vue: show current_bpm and current_tick
ASE: project.cc: provide current_bpm and current_tick as double
UI: util.js: remove unused telemetry type "u32"
ASE: server.hh: remove unused telemetry type "u32"
ASE: api.hh: use 64bit for ticks and duration
ASE: engine: leave timing defaults to AudioTransport ctor
ASE: engine: use transport->advance()
UI: b/*.vue: use Util.PPQN
UI: util.js: export PPQN as 4838400
ASE: clip.cc: use TRANSPORT_PPQN
ASE: transport: provide TickSignature to handle all AudioTransport timing
Squashed commits to introduce TickSignature:
Move initialisation into AudioTransport()
Use 64bit for ticks and duration
Quantize current_tick_d
Provide current bar/beat/sixteenth, minutes/seconds
Add next_bar_tick()
Add TimeSignature class
Add set_tick(), tick_from_beat(), tick_from_time()
Add TimeSignature tests
Change PPQN to 4838400
Add TickSignature for musical time signature and tick conversions
Support getters and samplerate in TickSignature
Add sample_to_tick()
Add TickSignature::sample_from_tick()
Provide current_bar_tick, sample_to_tick(), sample_from_tick()
Add const to TickSignature methods
Add beats_per_bar() and beat_unit()
Constrain set_signature() inputs and return changed flag
Remove unused numerator and denominator
Construct TickSignature with defaults to avoid 0-division
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-03 Tim Janik # f24ac9fe709
UI: b/positionview.vue: adjust to sixteenth telemetry
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-03 Tim Janik # 6cdf13613b4
ASE: project.cc: adjust Transport.running and adapt current_sixteenth telemetry
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-11 Tim Janik # 48629c1ec24
UI: b/partlist.vue: disable unfinished logic
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-11 Tim Janik # 365223fda40
UI: b/editable.vue: use #000 as input bg and auto-convert "clicks"
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-11 Tim Janik # 05a5f71467d
UI: util.js: remove unused v-inlineblur
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-11 Tim Janik # b12866d1df8
UI: b/trackview.vue: use b-editable to edit track labels
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-11 Tim Janik # 11e5943d2d0
UI: b/contextmenu.vue: prevent spurious enter/leave/etc events during transitions
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-11 Tim Janik # e949f33d748
UI: b/editable.vue: allow explicit and double click activation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-11 Tim Janik # 2ef1fc27792
UI: b/positionview.vue: allow BPM changes via b-editable
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-11 Tim Janik # 99127f8f983
UI: b/positionview.vue: remove unused code
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-11 Tim Janik # c0d74d8e8a2
UI: b/editable.vue: display an editable <span/>
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-10 Tim Janik # 2a1e8422502
ASE: jsonapi.cc: require 'Origin: http://localhost' for socket connections
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-10 Tim Janik # cb622d8c1ea
ASE: websocket: provide header() getter for WebSocketConnection::Info
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-10 Tim Janik # 62fe5608082
ASE: project: implement real BPM setter
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-10 Tim Janik # 9ee14365e38
ASE: properties: support Range() property with explicit getter and setter
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-10 Tim Janik # 8eb5e92b043
ASE: api.hh: Gadget: implement list_properties(), get_value(), set_value()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-05 Tim Janik # 3034332ee0a
UI: b/positionview.vue: add input field
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-05 Tim Janik # caa4577d4bb
UI: b/positionview.vue: move frequent updates into text node
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-05 Tim Janik # 41695e83408
UI: b/trackview.vue: avoid @contextmenu propagation out of INPUT field
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-05 Tim Janik # 98a082a1a42
UI: startup.js: allow button3 browser menus in INPUT fields
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-04 Tim Janik # ea52e05dbc0
UI: b/positionview.vue: display bar.beat.sixteenth.fraction minutes:seconds
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-04 Tim Janik # d1766e19676
UI: util.js: support Int8 telemtry data
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-04 Tim Janik # 14855de3bfc
ASE: project.cc: export current bar/beat/sixteenth, minutes/seconds, etc
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-04 Tim Janik # 526b64f2b28
ASE: project: add autoplay timer
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-04 Tim Janik # d2fb59bff31
ASE: server.hh: add int8 telemetry_type
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-04 Tim Janik # 1a453d1e93d
ASE: cxxaux.hh: add divmod() helper
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-04 Tim Janik # 864d2ee206e
ASE: loop: add clear_source() helper
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-29 Tim Janik # 95b76984bbe
UI: util.js: export extend_property()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-29 Tim Janik # 00def5a6ad4
UI: b/positionview.vue: display bpm, numerator, denominator
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-29 Tim Janik # 6b1aaba3bf9
ASE: project: add musical_tuning, dirty, bpm, numerator, denominator properties
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-29 Tim Janik # 5bbf3a586ce
ASE: server: provide EnumInfo::impl for MusicalTuning
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-29 Tim Janik # 509c8f36f51
ASE: value: add EnumInfo to augment enumerations
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-29 Tim Janik # 923c4ffe5aa
ASE: properties: add ident, support float Range and extend Enum properties
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-29 Tim Janik # 6fd7b9c8a22
JSONIPC: jsonipc.hh: add Enum<>::list_values()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-29 Tim Janik # 43b45aacfda
ASE: gadget.cc: implement access_property() in terms of access_properties()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-29 Tim Janik # 77eff66f39e
ASE: clip.cc: notify about note changes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-27 Tim Janik # 5f7719cf517
UI: b/positionview.vue: show current_bpm and current_tick
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-27 Tim Janik # e80c4cd0d9a
ASE: project.cc: provide current_bpm and current_tick as double
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-27 Tim Janik # df87c016422
UI: util.js: remove unused telemetry type "u32"
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-27 Tim Janik # e1f00b54ab5
ASE: server.hh: remove unused telemetry type "u32"
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-27 Tim Janik # 479e871d28e
ASE: api.hh: use 64bit for ticks and duration
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-26 Tim Janik # 737155cdee7
ASE: engine: leave timing defaults to AudioTransport ctor
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-26 Tim Janik # fe5e87f3002
ASE: engine: use transport->advance()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-25 Tim Janik # 2c1562deb7e
UI: b/*.vue: use Util.PPQN
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-25 Tim Janik # 7c9c6e6451e
UI: util.js: export PPQN as 4838400
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-25 Tim Janik # 2571f93d30a
ASE: clip.cc: use TRANSPORT_PPQN
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-26 Tim Janik # 14d8df6472c
ASE: transport: provide TickSignature to handle all AudioTransport timing
Squashed commits to introduce TickSignature:
Move initialisation into AudioTransport()
Use 64bit for ticks and duration
Quantize current_tick_d
Provide current bar/beat/sixteenth, minutes/seconds
Add next_bar_tick()
Add TimeSignature class
Add set_tick(), tick_from_beat(), tick_from_time()
Add TimeSignature tests
Change PPQN to 4838400
Add TickSignature for musical time signature and tick conversions
Support getters and samplerate in TickSignature
Add sample_to_tick()
Add TickSignature::sample_from_tick()
Provide current_bar_tick, sample_to_tick(), sample_from_tick()
Add const to TickSignature methods
Add beats_per_bar() and beat_unit()
Constrain set_signature() inputs and return changed flag
Remove unused numerator and denominator
Construct TickSignature with defaults to avoid 0-division
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-06 Tim Janik # 0f8eb60f06a
Merge branch 'jsdoc'
* jsdoc:
DOC: jsdoc2md.js: fix export prefix for classes
DOC: copyright.ini: apply MPL-2 to doc/highlights.theme, ui/jsdocrc.json
UI: util.js: improve vue_observable_from_getters() docs
UI: startup.js: use VueApp.config.compilerOptions, recommended since Vue-3.1
MISC: package.json.in: update Vue and related packages
UI: Makefile.mk: build ui/envuejs.md and add it to the API reference
UI: Makefile.mk: build ui/utiljs.md and support triple slash comments
UI: jsdocrc.json: load ui/slashcomment as jsdoc plugin
UI: slashcomment.js: add plugin to convert triple slash to jsdoc comments
DOC: jsdoc2md.js: add anchors to functions
DOC: jsdoc2md.js: keept empty lines that serve as block seperators
DOC: jsdoc2md.js: support @overview documentation
DOC: jsdoc2md.js: generate Constants docs
DOC: style/faketex.scss: improve TOC number alignment
DOC: jsdoc2md.js: add --help
DOC: highlights.theme: turn comments redish and variables/data blueish
DOC: Makefile.mk: add highlights.theme to .html and .pdf outputs of pandoc
DOC: highlights.theme: generate from: pandoc --print-highlight-style pygments
DOC: style/faketex.scss: apply extra spacing to complex definition lists
The Latex/PDF renderer automatically adds spacing to definition lists that
include nested lists. This keeps command line option lists compact, while
spacing out definition lists that describe classes and functions.
To reproduce this behaviour in HTML renderering, extra spacing needs to
be applied inside of dl:has(dl, ol, ul).
Since browsers currently lack support for :has(), the onload.html JS helper
can be used to match these lists with dl[data-has-nestedlayout="1"] instead.
DOC: Makefile.mk: include onload.html JS snippet before </body>
DOC: style/onload.html: set data-has-nestedlayout on dl:has(dl, ol, ul)
No browser currently supports the :has() pseudo-class, so this adds a JS
workaround to apply styles to definition lists with complex nested layouts.
UI: b/ch-vue.md: document template compiler uses
UI: Makefile.mk: include docs from util.js in vue-docs.md
DOC: jsdoc2md.js: add simple jsdoc to markdown converter
MISC: package.json.in: provide jsdoc as build tool
MISC: package.json.in: upgrade to electron 13.2.2
UI: startup.js: Chrome-92 still has the movementX devicePixelRatio bug
MISC: package.json.in: support AnklangSynthEngine $ASEOPT during 'serve'
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # 1ae89f97814
DOC: jsdoc2md.js: fix export prefix for classes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # 39bdaecea37
DOC: copyright.ini: apply MPL-2 to doc/highlights.theme, ui/jsdocrc.json
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # 80c5d5e714a
UI: util.js: improve vue_observable_from_getters() docs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-01 Tim Janik # 646c1990e06
UI: startup.js: use VueApp.config.compilerOptions, recommended since Vue-3.1
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-01 Tim Janik # 0ab0a28131b
MISC: package.json.in: update Vue and related packages
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-30 Tim Janik # c57797113a2
UI: Makefile.mk: build ui/envuejs.md and add it to the API reference
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-30 Tim Janik # 37bad98fdc6
UI: Makefile.mk: build ui/utiljs.md and support triple slash comments
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-30 Tim Janik # f71ecf1dea0
UI: jsdocrc.json: load ui/slashcomment as jsdoc plugin
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-30 Tim Janik # 932067ac146
UI: slashcomment.js: add plugin to convert triple slash to jsdoc comments
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-02 Tim Janik # 30b3c840075
DOC: jsdoc2md.js: add anchors to functions
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-02 Tim Janik # c831efb7675
DOC: jsdoc2md.js: keept empty lines that serve as block seperators
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-30 Tim Janik # 1490ff0824f
DOC: jsdoc2md.js: support @overview documentation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-30 Tim Janik # 86c559e9928
DOC: jsdoc2md.js: generate Constants docs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-30 Tim Janik # ad01eb0a3f5
DOC: style/faketex.scss: improve TOC number alignment
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-29 Tim Janik # fd0d3e306f0
DOC: jsdoc2md.js: add --help
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-29 Tim Janik # 03b273d2bf6
DOC: highlights.theme: turn comments redish and variables/data blueish
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-29 Tim Janik # 9363d0a9917
DOC: Makefile.mk: add highlights.theme to .html and .pdf outputs of pandoc
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-29 Tim Janik # 55380246a3f
DOC: highlights.theme: generate from: pandoc --print-highlight-style pygments
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-29 Tim Janik # b1074f50f06
DOC: style/faketex.scss: apply extra spacing to complex definition lists
The Latex/PDF renderer automatically adds spacing to definition lists that
include nested lists. This keeps command line option lists compact, while
spacing out definition lists that describe classes and functions.
To reproduce this behaviour in HTML renderering, extra spacing needs to
be applied inside of dl:has(dl, ol, ul).
Since browsers currently lack support for :has(), the onload.html JS helper
can be used to match these lists with dl[data-has-nestedlayout="1"] instead.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-29 Tim Janik # b08dba23d2d
DOC: Makefile.mk: include onload.html JS snippet before </body>
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-29 Tim Janik # 297883dd2d0
DOC: style/onload.html: set data-has-nestedlayout on dl:has(dl, ol, ul)
No browser currently supports the :has() pseudo-class, so this adds a JS
workaround to apply styles to definition lists with complex nested layouts.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-28 Tim Janik # 6498bc2a245
UI: b/ch-vue.md: document template compiler uses
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-28 Tim Janik # 7009f7ee0d6
UI: Makefile.mk: include docs from util.js in vue-docs.md
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-28 Tim Janik # 030f900da83
DOC: jsdoc2md.js: add simple jsdoc to markdown converter
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-28 Tim Janik # 1e493b399ef
MISC: package.json.in: provide jsdoc as build tool
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-27 Tim Janik # 7df9dfe73e3
MISC: package.json.in: upgrade to electron 13.2.2
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-27 Tim Janik # 31cf18da763
UI: startup.js: Chrome-92 still has the movementX devicePixelRatio bug
Signed-off-by: Tim Janik <timj@gnu.org>
2021-07-22 Tim Janik # 2216ab10ca3
MISC: package.json.in: support AnklangSynthEngine $ASEOPT during 'serve'
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-06 Tim Janik # 1300284f8ec
Merge branch 'ircbot'
* ircbot:
GITHUB: workflows/testing.yml: cleanup leftovers
GITHUB: workflows/notifico.py: remove unused script
GITHUB: workflows/testing.yml: use ircbot.py for notifications
GITHUB: workflows/ircbot.py: allow colorized NAME DEPARTMENT STATUS prefixing
GITHUB: workflows/ircbot.py: add RFC-1459 based simple message IRC bot
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-06 Tim Janik # 23b7f25c575
GITHUB: workflows/testing.yml: cleanup leftovers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-06 Tim Janik # f5b88ec38da
GITHUB: workflows/notifico.py: remove unused script
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-06 Tim Janik # 936e4a2b43b
GITHUB: workflows/testing.yml: use ircbot.py for notifications
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-06 Tim Janik # 92171153a5b
GITHUB: workflows/ircbot.py: allow colorized NAME DEPARTMENT STATUS prefixing
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-06 Tim Janik # f3e98a77464
GITHUB: workflows/ircbot.py: add RFC-1459 based simple message IRC bot
Signed-off-by: Tim Janik <timj@gnu.org>
2021-09-05 Tim Janik # b99c17940a6
Merge branch 'telemetry'
* telemetry:
UI: startup.js: handle Jsonipc binary messages with jsonipc_binary_handler_
UI: util.js: add telemetry_subscribe() / telemetry_unsubscribe()
UI: b/positionview.vue: fetch and print project telemetry
UI: b/menubar.vue: provide b-positionview with project
ASE: server.hh: add telemetry_field()
ASE: api.hh: add TelemetryField and telemetry() queries
ASE: transport.hh: add tick_pos
ASE: processor.hh: add AudioProcessor.transport()
ASE: combo.cc: use static zeros block instead of 0-filling
ASE: randomhash: fix fnv1a_consthash64() to not use length as hash value
ASE: main: add --jsbin
ASE: websocket, jsonapi: add loglevel
ASE: engine: allocate AudioTransport from telemetry memory
ASE: api.hh: add Server.broadcast_telemetry()
ASE: server: pre-allocate 4MB for audio & transport telemetry memory
ASE: memory.cc: try locking FastMemory, maybe this should be a flag
JSONIPC: jsonipc.js: add Jsonipc.handle_binary() to handle blobs
ASE: defs.hh: declare CustomDataContainer
ASE: jsonapi: add jsonapi_connection_sender()
ASE: websocket: add WebSocketConnection::send_binary()
ASE: utils: add CustomDataContainer::custom_data_destroy()
ASE: jsonapi: add jsonapi_connection_data()
ASE: loop.hh: exec_timer(): default to PRIORITY_NORMAL like all other handlers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-25 Tim Janik # 7759adeb61d
UI: startup.js: handle Jsonipc binary messages with jsonipc_binary_handler_
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-25 Tim Janik # 67fe237b7ee
UI: util.js: add telemetry_subscribe() / telemetry_unsubscribe()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-25 Tim Janik # 78d1aa278a9
UI: b/positionview.vue: fetch and print project telemetry
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-25 Tim Janik # 822206b9665
UI: b/menubar.vue: provide b-positionview with project
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-25 Tim Janik # 3ac718b1b97
ASE: server.hh: add telemetry_field()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-25 Tim Janik # e6b678080f0
ASE: api.hh: add TelemetryField and telemetry() queries
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-25 Tim Janik # 3a8f8c4bfa6
ASE: transport.hh: add tick_pos
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-24 Tim Janik # cce9156aa66
ASE: processor.hh: add AudioProcessor.transport()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-24 Tim Janik # 01361789fb3
ASE: combo.cc: use static zeros block instead of 0-filling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-24 Tim Janik # 9f6b3a95fa1
ASE: randomhash: fix fnv1a_consthash64() to not use length as hash value
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-24 Tim Janik # b5852a8a4fc
ASE: main: add --jsbin
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-24 Tim Janik # 2c5d16d4a6f
ASE: websocket, jsonapi: add loglevel
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-24 Tim Janik # 4ca8032f156
ASE: engine: allocate AudioTransport from telemetry memory
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-23 Tim Janik # cfb474726ae
ASE: api.hh: add Server.broadcast_telemetry()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-24 Tim Janik # 6d8077e92ba
ASE: server: pre-allocate 4MB for audio & transport telemetry memory
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-24 Tim Janik # eafe511ec17
ASE: memory.cc: try locking FastMemory, maybe this should be a flag
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-23 Tim Janik # 1fe2eaed575
JSONIPC: jsonipc.js: add Jsonipc.handle_binary() to handle blobs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-23 Tim Janik # 1a044cf8fbb
ASE: defs.hh: declare CustomDataContainer
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-23 Tim Janik # dd13ab8d73a
ASE: jsonapi: add jsonapi_connection_sender()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-23 Tim Janik # 0e94ecb8a83
ASE: websocket: add WebSocketConnection::send_binary()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-23 Tim Janik # d0faaf08566
ASE: utils: add CustomDataContainer::custom_data_destroy()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-23 Tim Janik # 200f7e8ecae
ASE: jsonapi: add jsonapi_connection_data()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-23 Tim Janik # 2ab3249d10a
ASE: loop.hh: exec_timer(): default to PRIORITY_NORMAL like all other handlers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # e06c1a33ead
Merge branch 'mkcopyright.py'
* mkcopyright.py:
IMAGES: icons: add MPL-2.0 license to SVG files
IMAGES: cursors: add MPL-2.0 license to SVG files
UI: assets: add MPL-2.0 license to SVG files
DOC: copyright.ini: remove svg files
MISC: mkcopyright.py: match <cc:license/> in XML-like files
MISC: mkcopyright.py: omit empty printouts
DOC: copyright.ini: apply MPL-2.0 to devices/blepsynth/TODO
GITHUB: workflows/testing.yml: add MPL-2.0 license
MISC: add MPL-2.0 license
JSONIPC: Makefile: add MPL-2.0 license
DOC: style/mathjax-config.js: add MPL-2.0 license
DOC: style/features.scss: add MPL-2.0 license
UI: .eslintrc.js: add MPL-2.0 license
DEVICES: blepsynth/bleposcdata.cc: add MPL-2.0 license
ASE: mime-types.hh: sort extensions
ASE: mime-types.hh: add CC0 Public Domain license
DOC: Makefile.mk: generate doc/copyright
MISC: Makefile.mk: check-copyright: use doc/copyright.ini
DOC: copyright.ini: ignore license files
DOC: copyright.ini: add debian/copyright fields
DOC: copyright.ini: explicitely list license for some files
DOC: copyright: remove file, can be generated with mkcopyright.py
MISC: Makefile.mk: add check-copyright if .git is present
MISC: config-utils.mk: provide WITHOUTGIT and WITHGIT
MISC: mkcopyright.py: support [ignore] section
MISC: mkcopyright.py: read debian/copyright headers from INI
MISC: mkcopyright.py: add --spdx-licenses, and add all known SPDX licenses
MISC: mkcopyright.py: ignore utf-8 decoding errors during file input
MISC: mkcopyright.py: add helper script to check and generate copyright list
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # 53a0a3afcd5
IMAGES: icons: add MPL-2.0 license to SVG files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # 710056d0a2a
IMAGES: cursors: add MPL-2.0 license to SVG files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # e2ee93fde26
UI: assets: add MPL-2.0 license to SVG files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # e173d77aad8
DOC: copyright.ini: remove svg files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # b45274b05f1
MISC: mkcopyright.py: match <cc:license/> in XML-like files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # dd3df66c9e7
MISC: mkcopyright.py: omit empty printouts
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # 5b49e4fa230
DOC: copyright.ini: apply MPL-2.0 to devices/blepsynth/TODO
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # 50e7ddc26c9
GITHUB: workflows/testing.yml: add MPL-2.0 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # 8e52e5173ea
MISC: add MPL-2.0 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # db204b492a9
JSONIPC: Makefile: add MPL-2.0 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # b332c7fb30d
DOC: style/mathjax-config.js: add MPL-2.0 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # 849e0540bde
DOC: style/features.scss: add MPL-2.0 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # 8325b0af99d
UI: .eslintrc.js: add MPL-2.0 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # d75065de7af
DEVICES: blepsynth/bleposcdata.cc: add MPL-2.0 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # a6bba376301
ASE: mime-types.hh: sort extensions
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-16 Tim Janik # 234aa2b79a2
ASE: mime-types.hh: add CC0 Public Domain license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-15 Tim Janik # d872fcc1b1b
DOC: Makefile.mk: generate doc/copyright
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-15 Tim Janik # dfccf3dcc14
MISC: Makefile.mk: check-copyright: use doc/copyright.ini
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-15 Tim Janik # 3c9477fdf65
DOC: copyright.ini: ignore license files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-15 Tim Janik # a75423296b9
DOC: copyright.ini: add debian/copyright fields
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-15 Tim Janik # 4d3e54eddf2
DOC: copyright.ini: explicitely list license for some files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-15 Tim Janik # 07d25ee61a7
DOC: copyright: remove file, can be generated with mkcopyright.py
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-14 Tim Janik # d04fb36f5b7
MISC: Makefile.mk: add check-copyright if .git is present
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-14 Tim Janik # 9faffdb5661
MISC: config-utils.mk: provide WITHOUTGIT and WITHGIT
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-15 Tim Janik # 458c24aa435
MISC: mkcopyright.py: support [ignore] section
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-15 Tim Janik # 81b804bda75
MISC: mkcopyright.py: read debian/copyright headers from INI
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-15 Tim Janik # 621ece374ae
MISC: mkcopyright.py: add --spdx-licenses, and add all known SPDX licenses
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-14 Tim Janik # d9982a217a6
MISC: mkcopyright.py: ignore utf-8 decoding errors during file input
Signed-off-by: Tim Janik <timj@gnu.org>
2021-08-14 Tim Janik # 4fd6a760954
MISC: mkcopyright.py: add helper script to check and generate copyright list
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-26 Tim Janik # 00c00a3b65a
Merge branch 'start-stop-playback'
* start-stop-playback:
UI: b/playcontrols.vue: call stop_playback() and start_playback()
ASE: project: implement start_playback(), stop_playback(), is_playing()
ASE: processor.hh: remove unused AudioTiming
ASE: track: maintain a ClipImplS list and use container_copy()
ASE: utils.hh: add container_copy() to copy another container's elements
ASE: engine.cc: fix initial bpm to be 0
ASE: transport.hh: move samplerate, nyquist, etc into AudioTransport
ASE: utils.hh: add insert_sorted()
ASE: device.cc: add assertion
ASE: cxxaux.cc: assertion_failed(): add breakpoint with ASE_DEBUG=break
ASE: transport.hh: move AUDIO_BLOCK_MAX_RENDER_SIZE here
ASE: transport: move SpeakerArrangement here
ASE: Makefile.mk: silence websocketpp warnings with C++ flag -Wno-sign-promo
MISC: config-uname.mk: support EXTRA_CXXFLAGS and EXTRA_CFLAGS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # e83da44d295
UI: b/playcontrols.vue: call stop_playback() and start_playback()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # 3ac819016fc
ASE: project: implement start_playback(), stop_playback(), is_playing()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # 0fc514ec956
ASE: processor.hh: remove unused AudioTiming
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # afb77a65dd4
ASE: track: maintain a ClipImplS list and use container_copy()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # 62ad229f156
ASE: utils.hh: add container_copy() to copy another container's elements
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # 36268e2808a
ASE: engine.cc: fix initial bpm to be 0
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # 686683c220a
ASE: transport.hh: move samplerate, nyquist, etc into AudioTransport
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # 98369da3f71
ASE: utils.hh: add insert_sorted()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # a9b8604c407
ASE: device.cc: add assertion
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # 8fc70e7f2a4
ASE: cxxaux.cc: assertion_failed(): add breakpoint with ASE_DEBUG=break
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # 49d22c9be85
ASE: transport.hh: move AUDIO_BLOCK_MAX_RENDER_SIZE here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-22 Tim Janik # 30b7c28b9a2
ASE: transport: move SpeakerArrangement here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-21 Tim Janik # fd81ef43b8a
ASE: Makefile.mk: silence websocketpp warnings with C++ flag -Wno-sign-promo
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-21 Tim Janik # 8fd4ef20a3d
MISC: config-uname.mk: support EXTRA_CXXFLAGS and EXTRA_CFLAGS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-26 Tim Janik # 4a71db44239
Merge branch 'clip'
* clip:
UI: b/: use PPQN=1920 just like ASE
ASE: clip.cc: skip internal note fields in serialization
ASE: track.cc: serialize clips
ASE: clip: serialize notes
ASE: clip: implement ClipNote storage
ASE: defs.hh: declare ClipImpl
ASE: track: implement list_clips() and clip_index()
ASE: api.hh: fix missing const ASE: track.hh:
ASE: eventlist: add EventList to maintain a sorted array of `Event` structures
ASE: object: dispatch events only as long as the on_event() result is alive
Once the last reference to the Connection object as returned from on_event()
is released, the connection is destroyed and no further invocations of the
Connection's handler will occour.
ASE: websocket.cc: fix Re::search() invocations
ASE: regex.cc: document search() and sub()
ASE: driver.cc: fix signedness
ASE: object.cc: fix signedness warning
ASE: cxxaux.hh: ASE_CLASS_DECLS(Klass) add weak_ptr alias definitions
ASE: defs.hh: define and use EventConnectionW
UI: b/tracklist.vue: rename b-tracklist from b-track-list
UI: b/tracklist.vue: rename file
ASE: api.hh: add ClipNote, extend Clip API stubs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-18 Tim Janik # d25e9651d4b
UI: b/: use PPQN=1920 just like ASE
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-18 Tim Janik # 797ee0b6f26
ASE: clip.cc: skip internal note fields in serialization
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-18 Tim Janik # 3c9a5f0cb51
ASE: track.cc: serialize clips
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-18 Tim Janik # 83a9feb4d95
ASE: clip: serialize notes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-17 Tim Janik # b31ecc74f9f
ASE: clip: implement ClipNote storage
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-17 Tim Janik # 6115647b684
ASE: defs.hh: declare ClipImpl
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-17 Tim Janik # 18a18955939
ASE: track: implement list_clips() and clip_index()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-17 Tim Janik # 59bf852c49c
ASE: api.hh: fix missing const
ASE: track.hh:
Signed-off-by: Tim Janik <timj@gnu.org>
2020-05-28 Tim Janik # f6bf2e23011
ASE: eventlist: add EventList to maintain a sorted array of `Event` structures
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # 96ac1d47c6c
ASE: object: dispatch events only as long as the on_event() result is alive
Once the last reference to the Connection object as returned from on_event()
is released, the connection is destroyed and no further invocations of the
Connection's handler will occour.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # 317640ec853
ASE: websocket.cc: fix Re::search() invocations
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # 679ef325add
ASE: regex.cc: document search() and sub()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # fd1f93d1839
ASE: driver.cc: fix signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # 4d3476b8dee
ASE: object.cc: fix signedness warning
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # 1c5263e6cd2
ASE: cxxaux.hh: ASE_CLASS_DECLS(Klass) add weak_ptr alias definitions
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # 52e7e20a6d3
ASE: defs.hh: define and use EventConnectionW
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # cf73dc937cd
UI: b/tracklist.vue: rename b-tracklist from b-track-list
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # 7b3b23bff09
UI: b/tracklist.vue: rename file
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # d93ebc4e2be
ASE: api.hh: add ClipNote, extend Clip API stubs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-20 Tim Janik # dfcde28c460
Merge branch 'notifico'
* notifico:
GITHUB: workflows/notify_irc.py: remove unused notification script
GITHUB: workflows/testing.yml: allow plain text hook usage
GITHUB: workflows/testing.yml: issue notifications via notifico.py
GITHUB: workflows/notifico.py: add script for IRC notifications via notifico
README.md: use web.libera.chat as chat link
README.md: extend badges
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-18 Tim Janik # ddfc55dbbc6
GITHUB: workflows/notify_irc.py: remove unused notification script
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-18 Tim Janik # d3f3613a0f8
GITHUB: workflows/testing.yml: allow plain text hook usage
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-18 Tim Janik # 2f99753c484
GITHUB: workflows/testing.yml: issue notifications via notifico.py
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-18 Tim Janik # d2da6e07da7
GITHUB: workflows/notifico.py: add script for IRC notifications via notifico
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-17 Tim Janik # 5cd707b0809
README.md: use web.libera.chat as chat link
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-13 Tim Janik # 33ae34c6bfa
README.md: extend badges
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # 2a237afda57
Merge branch 'modal-dialogs'
* modal-dialogs:
UI: b/dialog.vue: slightly expand min-width
UI: b/shell.vue: make message popup buttons homogeneous
UI: startup.js: prevent Web Browser menus interfering with the UI
UI: b/shell.vue: add comment about ../styles.scss import
UI: b/noteboard.vue: fix duplicate styles.scss import
UI: styles.scss: move grid CSS decls here
The file theme.scss must only define SCSS variables and mixins, real CSS
definitions belong into styles.scss which isn't included by every component.
UI: b/fed-switch.vue: allow numeric input values
UI: b/*.vue: Vue-3 does not need .native event qualifiers
UI: util.js: remove unused dom_ondestroy()
UI: b/fed-object.vue: handle disconnector calls directly
UI: util.js: remove now unused ModalShield
UI: b/color-picker.vue: use b-contextmenu for the popup
UI: b/contextmenu.vue: add popupclass for reparented CSS styling
UI: b/contextmenu.vue: move into modal menu layer, fix transitions and shield
UI: b/shell.vue: provide layer for modal menus
UI: util.js: setup_shield_element: move ESCAPE handling into focus_root
This fixes ESCAPE handling so it honours the focus_root stacking order.
UI: util.js: rewrite dom_update() handling, add dom_create()
UI: b/dialog.vue: adjust fading
UI: util.js: remove unused dom_hidden() handling
UI: b/menubar.vue: navigate to 'about:blank' after window.close() in browsers
UI: b/modaldialog.vue: remove unused component
UI: styles.scss, theme.scss: remove b-modaldialog-shield styling
UI: b/shell.vue: use <b-dialog/> for modal message popups
UI: b/treeselector.vue: remove unused CSS
UI: b/filedialog.vue: improve chome <INPUT/>-layout-bug workaround
UI: b/filedialog.vue: use <b-dialog/> as base component
UI: util.js: fix lower case tag name
UI: b/preferencesdialog.vue: use <b-dialog/> as base component
UI: b/aboutdialog.vue: use <b-dialog/> as base component
UI: b/shell.vue: prepare stacking order for new modal dialogs
UI: b/shell.vue: turn info panel title into a focusable link
UI: b/shell.vue: disable text selection for normal UI elements
UI: b/dialog.vue: introduce new base component for (modal) dialogs
UI: util.js: add setup_shield_element()
UI: util.js: disable hotkeys while focus_guard is active
UI: util.js: rename vm_scope_style()
UI: theme.scss: tone down modal overlays
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 4f599899705
UI: b/dialog.vue: slightly expand min-width
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # ef01e15f926
UI: b/shell.vue: make message popup buttons homogeneous
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 577109c3e40
UI: startup.js: prevent Web Browser menus interfering with the UI
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 90b3f0b112e
UI: b/shell.vue: add comment about ../styles.scss import
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 68e2d52665d
UI: b/noteboard.vue: fix duplicate styles.scss import
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 6366e525220
UI: styles.scss: move grid CSS decls here
The file theme.scss must only define SCSS variables and mixins, real CSS
definitions belong into styles.scss which isn't included by every component.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 31a6efa8ba2
UI: b/fed-switch.vue: allow numeric input values
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # ce26e4e0efd
UI: b/*.vue: Vue-3 does not need .native event qualifiers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # d1c5c6d78d7
UI: util.js: remove unused dom_ondestroy()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 74b958b5175
UI: b/fed-object.vue: handle disconnector calls directly
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 0f9e359ab96
UI: util.js: remove now unused ModalShield
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 3d30497b6b9
UI: b/color-picker.vue: use b-contextmenu for the popup
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 07adc90f33a
UI: b/contextmenu.vue: add popupclass for reparented CSS styling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 8e3b815a177
UI: b/contextmenu.vue: move into modal menu layer, fix transitions and shield
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # b93d98e98bc
UI: b/shell.vue: provide layer for modal menus
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-10 Tim Janik # 49dbdc95b3a
UI: util.js: setup_shield_element: move ESCAPE handling into focus_root
This fixes ESCAPE handling so it honours the focus_root stacking order.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-09 Tim Janik # de6d5948827
UI: util.js: rewrite dom_update() handling, add dom_create()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-09 Tim Janik # 0185bce7b56
UI: b/dialog.vue: adjust fading
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-09 Tim Janik # 2049c820d36
UI: util.js: remove unused dom_hidden() handling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # fd31463af00
UI: b/menubar.vue: navigate to 'about:blank' after window.close() in browsers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # e4b91777817
UI: b/modaldialog.vue: remove unused component
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # b387f8d2ba7
UI: styles.scss, theme.scss: remove b-modaldialog-shield styling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # f2a77d4480c
UI: b/shell.vue: use <b-dialog/> for modal message popups
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # 358fb9c88fd
UI: b/treeselector.vue: remove unused CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # cb502399523
UI: b/filedialog.vue: improve chome <INPUT/>-layout-bug workaround
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # 60df1decf8e
UI: b/filedialog.vue: use <b-dialog/> as base component
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # 93b8f347b5e
UI: util.js: fix lower case tag name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # b0dcc97b276
UI: b/preferencesdialog.vue: use <b-dialog/> as base component
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # 5671c36daed
UI: b/aboutdialog.vue: use <b-dialog/> as base component
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # da3bcdea100
UI: b/shell.vue: prepare stacking order for new modal dialogs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # b72daa0cebc
UI: b/shell.vue: turn info panel title into a focusable link
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # eccfeb26664
UI: b/shell.vue: disable text selection for normal UI elements
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # b70184deecb
UI: b/dialog.vue: introduce new base component for (modal) dialogs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # e282cf20317
UI: util.js: add setup_shield_element()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # b05669a2237
UI: util.js: disable hotkeys while focus_guard is active
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # b217cbaf17a
UI: util.js: rename vm_scope_style()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-08 Tim Janik # f4d0bb7fc35
UI: theme.scss: tone down modal overlays
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # b4e9ed107ef
Merge branch 'ci-testing'
* ci-testing:
GITHUB: workflows/testing.yml: merge with IRC notification
ASE: driver-alsa.cc: gracefully handle absence of the ALSA sequencer device
ASE: driver-alsa.cc: use ADEBUG() to output ALSA errors
README.md: add unit test badges
GITHUB: workflows/testing.yml: make dockerized build and run make check
GITHUB: workflows/testing.yml: add action for unit testing
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # 7a365508cda
GITHUB: workflows/testing.yml: merge with IRC notification
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # 12eca1774db
ASE: driver-alsa.cc: gracefully handle absence of the ALSA sequencer device
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # 0fb1d05f358
ASE: driver-alsa.cc: use ADEBUG() to output ALSA errors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # b7dbe859696
README.md: add unit test badges
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # 6b5e1b64d8f
GITHUB: workflows/testing.yml: make dockerized build and run make check
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # bf33e768f95
GITHUB: workflows/testing.yml: add action for unit testing
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-12 Tim Janik # aa8a9fc3138
Merge branch 'note-board'
* note-board:
UI: b/shell.vue: handle server.usernote messages
UI: b/noteboard.vue: adjust Error/Warning/Info/Debug colors
ASE: engine.cc: send user_note()s for Device IO problems
ASE: api.hh, server: add user_note() and user_reply()
ASE: engine.cc: trigger wakeups for missing ipc_dispatch() calls
ASE: driver.hh: move DriverEntry here, out of public API
UI: b/noteboard.vue: raise noteboard when new notes are added
UI: b/noteboard.vue: move Note Board logic into its own vue component
UI: util.js: add envue_object()
UI: startup.js: Chrome-91 still has the movementX devicePixelRatio bug
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 186703e9132
UI: b/shell.vue: handle server.usernote messages
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 9fade6f2158
UI: b/noteboard.vue: adjust Error/Warning/Info/Debug colors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 92a9db6b18e
ASE: engine.cc: send user_note()s for Device IO problems
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 0222dde9385
ASE: api.hh, server: add user_note() and user_reply()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-04 Tim Janik # a028cc4b866
ASE: engine.cc: trigger wakeups for missing ipc_dispatch() calls
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-03 Tim Janik # 07c33f96cf3
ASE: driver.hh: move DriverEntry here, out of public API
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-03 Tim Janik # c8344f8458e
UI: b/noteboard.vue: raise noteboard when new notes are added
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-03 Tim Janik # be3100c4942
UI: b/noteboard.vue: move Note Board logic into its own vue component
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-03 Tim Janik # 3a3e9102145
UI: util.js: add envue_object()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-03 Tim Janik # 0a53599a598
UI: startup.js: Chrome-91 still has the movementX devicePixelRatio bug
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 42dbe58c065
Merge branch 'dbuild-dockerfile-apt'
* dbuild-dockerfile-apt:
MISC: dbuild.sh: provide git-common-dir volume for git-worktree
MISC: Makefile.mk: use just linuxdeploy-x86_64.AppImage --appimage-extract-and-run
MISC: Makefile.mk: build appimage with appimage-runtime-zstd
MISC: Dockerfile-apt: add squashfs-tools
MISC: Makefile.mk: properly disable useless linuxdeploy copyright searches
MISC: dbuild.sh: utilize cached anklang downloads
MISC: Dockerfile-apt: provide ccache
MISC: Dockerfile-apt: cleaner setup for user "dbuild"
MISC: Dockerfile-apt: allow documentation files during package installations
MISC: Dockerfile-apt: shorten retry timeouts
MISC: Dockerfile-apt: remove fixed WORKDIR
MISC: Dockerfile-apt: rename .cache.dbuild/
MISC: Dockerfile-apt: base the image on $DIST
MISC: Dockerfile-apt: rename from Dockerfile-focal
MISC: dbuild.sh: allow -d <DIST> and rename misc/.dbuild/.cache/
MISC: dbuild.sh: rename from cbuild.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # da36733c5e2
MISC: dbuild.sh: provide git-common-dir volume for git-worktree
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 63b278bfae4
MISC: Makefile.mk: use just linuxdeploy-x86_64.AppImage --appimage-extract-and-run
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 2142ac57782
MISC: Makefile.mk: build appimage with appimage-runtime-zstd
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 28ac29cb531
MISC: Dockerfile-apt: add squashfs-tools
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # dfa51ed1c58
MISC: Makefile.mk: properly disable useless linuxdeploy copyright searches
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # dd3c88d3d08
MISC: dbuild.sh: utilize cached anklang downloads
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 3d43340f843
MISC: Dockerfile-apt: provide ccache
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # 20370a560d9
MISC: Dockerfile-apt: cleaner setup for user "dbuild"
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # a02f04c7765
MISC: Dockerfile-apt: allow documentation files during package installations
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # 3491cb7e694
MISC: Dockerfile-apt: shorten retry timeouts
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # 302222909df
MISC: Dockerfile-apt: remove fixed WORKDIR
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # 7b32eefdeb6
MISC: Dockerfile-apt: rename .cache.dbuild/
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # 609284ea071
MISC: Dockerfile-apt: base the image on $DIST
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # 102eb3bde64
MISC: Dockerfile-apt: rename from Dockerfile-focal
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # 80c8b3458c9
MISC: dbuild.sh: allow -d <DIST> and rename misc/.dbuild/.cache/
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # 0288651280f
MISC: dbuild.sh: rename from cbuild.sh
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # 5dcb1a0af69
Merge branch 'quitstartup'
* quitstartup:
UI: startup.js: exit cleanly on --quitstartup
ELECTRON: main.js: tidy up exit logic so exitcode!=0 is reliable
UI: startup.js: exit early on --quitstartup
During development, this option is helpful for startup time measurements.
ELECTRON: main.js: add --quitstartup argument
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # af7718b6508
UI: startup.js: exit cleanly on --quitstartup
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # b9a1eee7361
ELECTRON: main.js: tidy up exit logic so exitcode!=0 is reliable
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # d23993032b9
UI: startup.js: exit early on --quitstartup
During development, this option is helpful for startup time measurements.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-06 Tim Janik # d2b9973e5a4
ELECTRON: main.js: add --quitstartup argument
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-07 Tim Janik # f36724061cd
Merge branch 'build-fixes'
* build-fixes:
MISC: Makefile.mk: remove prefix assertion for appimage builds
MISC: anklang.desktop: remove category dup
MISC: anklang.desktop: allow anklang icon lookups without extension
UI: Makefile.mk: provide explicit dependency for ui/anklang.png
UI: b/aboutdialog.vue: use CONFIG.buildid
UI: Makefile.mk: use $(PACKAGE_VERSIONS)
Makefile.mk: rename $(version_buildid)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-05 Tim Janik # b1b2322f814
MISC: Makefile.mk: remove prefix assertion for appimage builds
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-05 Tim Janik # 9f3fa5a5102
MISC: anklang.desktop: remove category dup
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-05 Tim Janik # 88dd9bffd9e
MISC: anklang.desktop: allow anklang icon lookups without extension
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-03 Tim Janik # b88fb41653d
UI: Makefile.mk: provide explicit dependency for ui/anklang.png
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-03 Tim Janik # f9aa6be4ce2
UI: b/aboutdialog.vue: use CONFIG.buildid
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-03 Tim Janik # e4076f788b4
UI: Makefile.mk: use $(PACKAGE_VERSIONS)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-03 Tim Janik # 924fbf87e33
Makefile.mk: rename $(version_buildid)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # a0f719692ea
Merge branch 'copyright-file'
* copyright-file:
DOC: Makefile.mk: install doc/copyright
DOC: Makefile.mk: use pkgdocdir
Makefile.mk: define pkgdocdir
DOC: copyright: describe files where MPL-2.0 applies
ELECTRON: main.js, preload.js: fix license to MPL-2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 2a1321b2d35
DOC: Makefile.mk: install doc/copyright
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 1a4da60c916
DOC: Makefile.mk: use pkgdocdir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 117495b1100
Makefile.mk: define pkgdocdir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 07884371620
DOC: copyright: describe files where MPL-2.0 applies
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 3733732cc35
ELECTRON: main.js, preload.js: fix license to MPL-2.0
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # 7098f307a7e
Merge branch 'make-deb'
* make-deb:
MISC: Makefile.mk: install anklang.desktop anklang.svg mime/.../anklang.xml
MISC: mkdeb.sh: add comment for /opt installations
MISC: mkdeb.sh: add script to build anklang_<version>_<arch>.deb
ELECTRON: Makefile.mk: remove unneeded permissions
DOC: Makefile.mk: install relative link to man1/anklang.1
MISC: anklang.desktop: fix path, improve comment and keywords
MISC: Makefile.mk: install anklang.xml, expand pkgdir in anklang.desktop
MISC: anklang-mime.xml: map *.anklang to application/x-anklang
ELECTRON: Makefile.mk: fix installation directory
ELECTRON: main.js: provide window icon
ELECTRON: Makefile.mk: install $(bindir)/anklang alias
Makefile.mk: rename sharedir
Makefile.mk: rename pkglibdir to pkgdir
Makefile.mk: rename pkgrootdir to pkgprefix
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # c620697359d
MISC: Makefile.mk: install anklang.desktop anklang.svg mime/.../anklang.xml
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # fbcd5c7a45e
MISC: mkdeb.sh: add comment for /opt installations
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 6e801ba910e
MISC: mkdeb.sh: add script to build anklang_<version>_<arch>.deb
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 538645aa8ab
ELECTRON: Makefile.mk: remove unneeded permissions
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 6dd614343e5
DOC: Makefile.mk: install relative link to man1/anklang.1
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # c014fff177e
MISC: anklang.desktop: fix path, improve comment and keywords
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 2971b26b9ac
MISC: Makefile.mk: install anklang.xml, expand pkgdir in anklang.desktop
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # 178503db125
MISC: anklang-mime.xml: map *.anklang to application/x-anklang
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # b55cda2d72d
ELECTRON: Makefile.mk: fix installation directory
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-30 Tim Janik # c3735f0b09c
ELECTRON: main.js: provide window icon
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # f4550cb84e8
ELECTRON: Makefile.mk: install $(bindir)/anklang alias
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # da052b1259e
Makefile.mk: rename sharedir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 85273093dcc
Makefile.mk: rename pkglibdir to pkgdir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 4034a87469f
Makefile.mk: rename pkgrootdir to pkgprefix
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # f8a782e0493
Merge branch 'man-page'
* man-page:
DOC: Makefile.mk: install symlink for man1/anklang.1
DOC: Makefile.mk: integrate manual pages into the manual
DOC: filt-man.py: add pandoc filter for manual pages as flow text
DOC: Makefile.mk: build and install anklang.1
DOC: anklang.1.md: add manual page for Anklang
README.md: add Usage, improve readability
DOC: Makefile.mk: add NEWS and README to docs, build .html variants
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 90eac3017a8
DOC: Makefile.mk: install symlink for man1/anklang.1
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # bd9aea43e06
DOC: Makefile.mk: integrate manual pages into the manual
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 0c66d318fea
DOC: filt-man.py: add pandoc filter for manual pages as flow text
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 4e9029b0df4
DOC: Makefile.mk: build and install anklang.1
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 14c88be3e8f
DOC: anklang.1.md: add manual page for Anklang
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 4ea95f50553
README.md: add Usage, improve readability
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 5d565505be8
DOC: Makefile.mk: add NEWS and README to docs, build .html variants
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # fb26c0a454b
Merge branch 'appimage-builds'
* appimage-builds:
MISC: Makefile.mk: fix appimage comments
UI: Makefile.mk: fix *.png double install
MISC: Makefile.mk: appimage: restore bin/* links
MISC: Makefile.mk: add appimage rule
MISC: Makefile.mk: provide linuxdeploy and appimagetool
MISC: Makefile.mk: install anklang.desktop
MISC: anklang.desktop: add desktop file for AppImage builds
UI: Makefile.mk: keep an anklang.png image from icon builds
MISC: AppRun: add startup script for AppImage builds
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # e2b88711ed3
MISC: Makefile.mk: fix appimage comments
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 5e548b318fc
UI: Makefile.mk: fix *.png double install
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 5df15190206
MISC: Makefile.mk: appimage: restore bin/* links
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 6db5b22299d
MISC: Makefile.mk: add appimage rule
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # fd96717add6
MISC: Makefile.mk: provide linuxdeploy and appimagetool
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # d961fe76662
MISC: Makefile.mk: install anklang.desktop
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 4f362bc798c
MISC: anklang.desktop: add desktop file for AppImage builds
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 44e0fc374cc
UI: Makefile.mk: keep an anklang.png image from icon builds
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 8e7e1057814
MISC: AppRun: add startup script for AppImage builds
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # 322dffc26c3
Merge branch 'version-sh'
* version-sh:
MISC: version.sh: silently handle the case where no tags are found
MISC: version.sh: prefer COMMIT_DATE over NEWS_DATE
MISC: version.sh: remove short/long/date options
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # be6793fea74
MISC: version.sh: silently handle the case where no tags are found
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # 25a17feef08
MISC: version.sh: prefer COMMIT_DATE over NEWS_DATE
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # 77173b6a4d5
MISC: version.sh: remove short/long/date options
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # 4decf99397a
Merge branch 'ghnotify-irc'
* ghnotify-irc:
.GITHUB: workflows/ghnotify.yml: notify IRC on git push
.GITHUB: workflows/notify_irc.py: support abbreviated messages
.GITHUB: workflows/notify_irc.py: add missing Copyright
.GITHUB: workflows/notify_irc.py: add rectalogic/notify-irc/notify_irc.py
Source:
https://github.com/rectalogic/notify-irc/blob/e58c048739ce0c3da8990b49a3e2b4f8108d6292/notify_irc.py
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-31 Tim Janik # 486e6056038
.GITHUB: workflows/ghnotify.yml: notify IRC on git push
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # d61f97f81e8
.GITHUB: workflows/notify_irc.py: support abbreviated messages
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Tim Janik # 4993eae67a2
.GITHUB: workflows/notify_irc.py: add missing Copyright
Signed-off-by: Tim Janik <timj@gnu.org>
2021-06-01 Andrew Wason # 0117b49e1f4
.GITHUB: workflows/notify_irc.py: add rectalogic/notify-irc/notify_irc.py
Source:
https://github.com/rectalogic/notify-irc/blob/e58c048739ce0c3da8990b49a3e2b4f8108d6292/notify_irc.py
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 97ccff9e993
Merge branch 'docker-builds'
* docker-builds:
MISC: Dockerfile-focal: electron also depends on libnss3 libgtk-3-0
MISC: cbuild.sh: add tool for docker based builds
MISC: Dockerfile-focal: add Dockerfile for release builds
MISC: config-external.mk: provide minizip for ase/minizip.c
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 525457e6ee8
MISC: Dockerfile-focal: electron also depends on libnss3 libgtk-3-0
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # ea371c44f40
MISC: cbuild.sh: add tool for docker based builds
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # e761499a2f0
MISC: Dockerfile-focal: add Dockerfile for release builds
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 375ef22f709
MISC: config-external.mk: provide minizip for ase/minizip.c
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-29 Tim Janik # 8ae3775af9d
Merge branch 'make-install'
* make-install:
UI: Makefile.mk: install ui/doc link
DOC: style/Makefile.mk: install all files and embed CSS source-map
DOC: Makefile.mk: install doc/anklang-manual.html
ELECTRON: Makefile.mk: install electron and bin/ alias
Makefile.mk: uninstall: cleanup main install dir
MISC: config-checks.mk: add silent $(RMDIR_P)
UI: Makefile.mk: install ui/
DOC: style/Makefile.mk: fix installation directory
MISC: config-uname.mk: uninstall empty directories if possible
UI: Makefile.mk: avoid scss copies, use includes
MISC: package.json.in: use .eslint.files for eslint
UI: Makefile.mk: use dot prefix for .eslint.files build file
UI: Makefile.mk: remove unused .aseignore line
MISC: package.json.in: nodemon: remove useless lib/ dir watch
UI: Makefile.mk: remove unused nodemon.json
UI: Makefile.mk: remove unused build artefact
UI: Makefile.mk: cleanup tmp build dirs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 4267b5efa0f
UI: Makefile.mk: install ui/doc link
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 5fe1d7a22f7
DOC: style/Makefile.mk: install all files and embed CSS source-map
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 4920e64dda3
DOC: Makefile.mk: install doc/anklang-manual.html
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # f374d014806
ELECTRON: Makefile.mk: install electron and bin/ alias
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # a6d2e2e7854
Makefile.mk: uninstall: cleanup main install dir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # e67cf18b74f
MISC: config-checks.mk: add silent $(RMDIR_P)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 61fba1fc1da
UI: Makefile.mk: install ui/
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 1a3ef72cca5
DOC: style/Makefile.mk: fix installation directory
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # c35c5bb2102
MISC: config-uname.mk: uninstall empty directories if possible
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 172b6989e23
UI: Makefile.mk: avoid scss copies, use includes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # c0165126fa4
MISC: package.json.in: use .eslint.files for eslint
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # c8e17751f3d
UI: Makefile.mk: use dot prefix for .eslint.files build file
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 4cec6b0e2a9
UI: Makefile.mk: remove unused .aseignore line
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 56bb5aa7762
MISC: package.json.in: nodemon: remove useless lib/ dir watch
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # dec17cef1c2
UI: Makefile.mk: remove unused nodemon.json
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 7b4de98773d
UI: Makefile.mk: remove unused build artefact
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # c7758ff197c
UI: Makefile.mk: cleanup tmp build dirs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-28 Tim Janik # 0f37a5bb246
Merge branch 'npm-updates'
* npm-updates:
UI: .eslintrc.js: whitespace fixups
UI: b/*.vue: use math.div() instead of '/' for division
UI: cssaux.scss: add divfactor() helper for 1/asfactor()
UI: theme.scss: use math.div() instead of '/' for division
UI: cssaux.scss: use math.div() instead of '/' for division
DOC: style/f*.scss: use math.div() instead of '/' for division
MISC: package.json.in: update npm packages
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # e2eb6671845
UI: .eslintrc.js: whitespace fixups
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 3431a43d88a
UI: b/*.vue: use math.div() instead of '/' for division
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # a5bcc9d48d0
UI: cssaux.scss: add divfactor() helper for 1/asfactor()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # e4725dece77
UI: theme.scss: use math.div() instead of '/' for division
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 1392f17d06f
UI: cssaux.scss: use math.div() instead of '/' for division
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 0103200013e
DOC: style/f*.scss: use math.div() instead of '/' for division
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 498d3fd7689
MISC: package.json.in: update npm packages
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 31ca2183bb7
Merge branch 'keyword-icons'
* keyword-icons:
UI: b/preferencesdialog.vue: adjust icon matching
UI: b/icon.vue: use one function to read out this.ic
ASE: regex: move Regex API into Re.* and support case insensitive matching
ASE: server.cc: leave midi/pcm hint for driver entry icons
ASE: utils.cc: ensure comma in icon keyword list
DEVICES: blepsynth/blepsynth.cc: adjust to explicit typing for IconString
ASE: api.hh: use explicit typing for IconString in Choice constructor
ASE: utils: add MakeIcon constructors for iconString
ASE: defs.hh: define IconString as String derived
ASE: unicode.cc: reserve vector space during string conversion
ASE: strings: add string_is_ascii_alnum()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 338c96abddb
UI: b/preferencesdialog.vue: adjust icon matching
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # b54c241bfc3
UI: b/icon.vue: use one function to read out this.ic
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-26 Tim Janik # fc7b9d24501
ASE: regex: move Regex API into Re.* and support case insensitive matching
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-26 Tim Janik # 0e7a06e6643
ASE: server.cc: leave midi/pcm hint for driver entry icons
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-26 Tim Janik # 4905957b0cc
ASE: utils.cc: ensure comma in icon keyword list
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-24 Tim Janik # 8431d7b472b
DEVICES: blepsynth/blepsynth.cc: adjust to explicit typing for IconString
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-24 Tim Janik # 6d5a577db90
ASE: api.hh: use explicit typing for IconString in Choice constructor
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-24 Tim Janik # 5fc7844ad86
ASE: utils: add MakeIcon constructors for iconString
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-24 Tim Janik # 00710a1dca0
ASE: defs.hh: define IconString as String derived
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-24 Tim Janik # 11c6c7a12f1
ASE: unicode.cc: reserve vector space during string conversion
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-24 Tim Janik # b72713d777a
ASE: strings: add string_is_ascii_alnum()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-27 Tim Janik # 08216329e53
Merge branch 'ui-tips'
* ui-tips:
JSONIPC: jsonipc.js: add missing globalThis prefix
UI: b/pro-input.vue: provide :prop for b-choice
UI: b/choice.vue: display value in data_tip() (not bubble)
UI: b/knob.vue: update bubble_tip via attribute
UI: b/databubble.vue: update bubble on zmoves
UI: b/preferencesdialog.vue: minor rename
UI: b/knob.vue: always show value in data bubble, improve tip
UI: b/pro-input.vue: provide knob with this.prop
UI: b/databubble.vue: add unforce()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-26 Tim Janik # f07c012a174
JSONIPC: jsonipc.js: add missing globalThis prefix
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-25 Tim Janik # e151784de59
UI: b/pro-input.vue: provide :prop for b-choice
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-25 Tim Janik # 1bf43fc6d09
UI: b/choice.vue: display value in data_tip() (not bubble)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-25 Tim Janik # c302c734cc3
UI: b/knob.vue: update bubble_tip via attribute
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-25 Tim Janik # b46c8cf20f9
UI: b/databubble.vue: update bubble on zmoves
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-24 Tim Janik # bb24cb5ed2d
UI: b/preferencesdialog.vue: minor rename
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-23 Tim Janik # d48178847f9
UI: b/knob.vue: always show value in data bubble, improve tip
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-23 Tim Janik # e5b9a80451c
UI: b/pro-input.vue: provide knob with this.prop
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-23 Tim Janik # 0bce463bdf9
UI: b/databubble.vue: add unforce()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-20 Tim Janik # e78de2246ea
Merge branch 'auto-zstd'
* auto-zstd:
ASE: project.cc: use AUTO_ZSTD for storage
ASE: storage: AUTO_ZSTD: transparently compress to/from zstd
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # f8f01a18b55
ASE: project.cc: use AUTO_ZSTD for storage
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # ecfa8812424
ASE: storage: AUTO_ZSTD: transparently compress to/from zstd
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-20 Tim Janik # e4c697d2b40
Merge branch 'zip-project'
* zip-project:
ASE: project.cc: allow project file search in dirname or dirname/..
ASE: project.cc: store projects in ZIP container
ASE: storage: separate Reader/Writer APIs and avoid temporary files
ASE: minizip.h: use minizip MZ_VERSION_MADEBY which includes OS type
ASE: api.hh: add operator! (Error)
ASE: defs.hh: add Error forward decl
ASE: compress: use zstd_{un}compress() and add interesting magic checks
ASE: project.cc: support saving into existing .anklang.project dir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 36f8e78699f
ASE: project.cc: allow project file search in dirname or dirname/..
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # c26b309e54d
ASE: project.cc: store projects in ZIP container
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 4bf643d9834
ASE: storage: separate Reader/Writer APIs and avoid temporary files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 605e6afaa6c
ASE: minizip.h: use minizip MZ_VERSION_MADEBY which includes OS type
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 536292ca435
ASE: api.hh: add operator! (Error)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 24c567e1f0e
ASE: defs.hh: add Error forward decl
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # c023e9c59dc
ASE: compress: use zstd_{un}compress() and add interesting magic checks
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 746fc62eaf4
ASE: project.cc: support saving into existing .anklang.project dir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-20 Tim Janik # fd807992be9
Merge branch 'support-zstd'
* support-zstd:
ASE: project.cc: fix comments
ASE: project.cc: pass on errors during compression
ASE: project.cc: compress project data
ASE: Makefile.mk: link against -lzstd
ASE: compress: compress data with zstd
ASE: path: add strip_slashes()
ASE: project.cc: save/load files more robustly, rename .anklang.project
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 99a73e75f1a
ASE: project.cc: fix comments
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-14 Tim Janik # 6ca6da8fb20
ASE: project.cc: pass on errors during compression
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-14 Tim Janik # ec07a4285c7
ASE: project.cc: compress project data
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-14 Tim Janik # 41d04c81b41
ASE: Makefile.mk: link against -lzstd
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-14 Tim Janik # a7a291fc2cf
ASE: compress: compress data with zstd
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-14 Tim Janik # 2ca6faa454c
ASE: path: add strip_slashes()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-14 Tim Janik # 1a2b7860758
ASE: project.cc: save/load files more robustly, rename .anklang.project
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-20 Tim Janik # ecc6f476306
Merge branch 'simplify-sysconfig'
* simplify-sysconfig:
ASE: Makefile.mk: generate ase/sysconfig.h with one simple test program
ASE: Makefile.mk: ase/sysconfig.h: remove unused macros
ASE: platform.cc: use ase_*_version
ASE: driver.cc: use ase_*_version
ASE: ase/buildversion.cc: provide ase_*_version variables
ASE: platform.hh: declare ase_*_version variables
MISC: config-checks.mk: depend on vorbisfile >= 1.3.5 to avoid seek bug
ASE: Makefile.mk: remove unused sysconfig1.h
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 1b3385845b5
ASE: Makefile.mk: generate ase/sysconfig.h with one simple test program
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # eba96335284
ASE: Makefile.mk: ase/sysconfig.h: remove unused macros
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # a5397ba1a91
ASE: platform.cc: use ase_*_version
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 7c7d81e7202
ASE: driver.cc: use ase_*_version
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # a01356eead4
ASE: ase/buildversion.cc: provide ase_*_version variables
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # 1108236b038
ASE: platform.hh: declare ase_*_version variables
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-16 Tim Janik # ceec8ad1f7e
MISC: config-checks.mk: depend on vorbisfile >= 1.3.5 to avoid seek bug
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-11 Tim Janik # cf1196627ad
ASE: Makefile.mk: remove unused sysconfig1.h
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-20 Tim Janik # f2d55320ca6
Merge branch 'synth-favicon'
* synth-favicon:
README.md: for IRC, link to #Anklang on https://libera.chat/
UI: assets/favicon.svg: update favicon to icon with piano + synth knobs
UI: theme.scss: disable border flicker for active buttons
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-20 Tim Janik # 074e7b9b53a
README.md: for IRC, link to #Anklang on https://libera.chat/
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-12 Tim Janik # dbdcad2004f
UI: assets/favicon.svg: update favicon to icon with piano + synth knobs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-13 Tim Janik # f6501be968b
UI: theme.scss: disable border flicker for active buttons
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-17 Tim Janik # b6df97ad4cf
Merge branch 'load-project'
* load-project:
UI: b/app.js: load only non-empty filenames
ASE: project: properly assign initial project name
ASE: path.cc: return ENOENT for empty file names
ASE: processor.cc: use identifiers as choice values
ASE: project.cc: store mastertrack as first track field
ASE: device.cc: store URI as first subdevice field
ASE: serialize: WritNode: add front() to create record fields at the front
ASE: value: ValueR.valuep(): allow new record fields at the front
ASE: gadget.cc: save and load storage properties
DEVICES: blepsynth/blepsynth.cc: make note toggles GUIONLY
ASE: processor: add STORAGEONLY and GUIONLY
ASE: device: serialize subdevices
UI: b/app.js: call load_project()
UI: startup.js: create Project early on
ASE: api.hh: implement load_project()
JSONIPC: testjsonipc.cc: compile std::pair<> arguments and results
JSONIPC: jsonipc.hh: support std::pair<> arguments and results
ASE: track: serialize device chain
ASE: project: serialize tracks
ASE: gadget: derive Serializable and serialize name()
ASE: serialize.hh: ignore loading of constant numeric types
ASE: serialize.cc: provide Serializable::serialize() for chaining
ASE: defs.hh: move brief Serializable definition here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-11 Tim Janik # 36c570d2efd
UI: b/app.js: load only non-empty filenames
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-11 Tim Janik # 3ff363782f2
ASE: project: properly assign initial project name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-10 Tim Janik # 3ca59b016c5
ASE: path.cc: return ENOENT for empty file names
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-09 Tim Janik # 3a2ce1db89d
ASE: processor.cc: use identifiers as choice values
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-09 Tim Janik # 2a77e240b9d
ASE: project.cc: store mastertrack as first track field
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-09 Tim Janik # 3cf5467db46
ASE: device.cc: store URI as first subdevice field
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-09 Tim Janik # 62007dfcd01
ASE: serialize: WritNode: add front() to create record fields at the front
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-09 Tim Janik # 5c4fb7ded12
ASE: value: ValueR.valuep(): allow new record fields at the front
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-13 Tim Janik # ea964d57a65
ASE: gadget.cc: save and load storage properties
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-08 Tim Janik # 86c3c7babc6
DEVICES: blepsynth/blepsynth.cc: make note toggles GUIONLY
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-08 Tim Janik # 1f80239ff61
ASE: processor: add STORAGEONLY and GUIONLY
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-08 Tim Janik # 1931d66169b
ASE: device: serialize subdevices
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-13 Tim Janik # caa61ba7002
UI: b/app.js: call load_project()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-08 Tim Janik # c980e558e7a
UI: startup.js: create Project early on
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-08 Tim Janik # f9d979ec6c5
ASE: api.hh: implement load_project()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # 50cca0a16d3
JSONIPC: testjsonipc.cc: compile std::pair<> arguments and results
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # fac834d7286
JSONIPC: jsonipc.hh: support std::pair<> arguments and results
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # e7e9564a9f8
ASE: track: serialize device chain
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # e71c8412205
ASE: project: serialize tracks
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # 7037a1d1751
ASE: gadget: derive Serializable and serialize name()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # 412f7fb312c
ASE: serialize.hh: ignore loading of constant numeric types
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # 5477a1a72cd
ASE: serialize.cc: provide Serializable::serialize() for chaining
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # e523c746ef9
ASE: defs.hh: move brief Serializable definition here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-13 Tim Janik # 025936128f3
Merge branch 'xdg-dirs'
* xdg-dirs:
ASE: avoid virtual inheritance for Impl types
UI: Makefile.mk: fix scss deps and delete unused css-imports.js
UI: .eslintrc.js: allow constant-condition
ASE: api.hh: merge errno constants into Ase::Error and offset special values
ASE: path.cc: properly assign ENOTDIR if mkdirs() fails
ASE: main.cc: enable fatal warnings for --check-integrity-tests
ASE: api.hh: add Project.save_dir() skeleton
ASE: api.hh: add Error::NOT_DIRECTORY
ASE: path: move dir_terminate() here
ASE: path: add normalize(), fix mkdirs() errno
UI: b/shell.vue: popdown filedialog as early as possible after selection
UI: b/menubar.vue: start in ~/Music, don't force '.anklang'
UI: b/track-list.vue, b/trackview.vue: fix lint
UI: b/filedialog.vue: use crawler for canonify(), allow non-existing paths
ASE: path: use std::filesystem and posix filesystem functions
Avoid GLib functions when we can use std::filesystem.
ASE: api.hh: ResourceCrawler: provide just assign() and versatile canonify()
ASE: randomhash.hh: support std::string hashing
ASE: path.cc: expand_tilde(): preserve non-expandable paths
UI: b/filedialog.vue: work around <input/> re-layouts, crbug#1116001
ASE: api.hh: rename dir_crawler() and expand special locations
ASE: platform: remove unused HOMEDIR
ASE: crawler.cc: get_dir(): also resolve xdg_dir() paths
ASE: path: add xdg_dir() to resolve dirs from $XDG_* and user-dirs.dirs
ASE: inifile: add .ini file parser
ELECTRON: Makefile.mk: change Electron app name to "anklang/electron"
The name change is not directly user visible, because index.html sets
a <title/> tag. It does change the Electron data/cache directory to
~/.config/anklang/electron/, so electron data now resides under the
~/.config/anklang/ directory which is used anyway. And it changes the
X11 WM_CLASS string to "anklang/electron".
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # 8d8dc2e0b6c
ASE: avoid virtual inheritance for Impl types
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # f6707009f42
UI: Makefile.mk: fix scss deps and delete unused css-imports.js
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-06 Tim Janik # db9ebb865e4
UI: .eslintrc.js: allow constant-condition
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-05 Tim Janik # afc38238145
ASE: api.hh: merge errno constants into Ase::Error and offset special values
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-05 Tim Janik # d45932915c1
ASE: path.cc: properly assign ENOTDIR if mkdirs() fails
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-05 Tim Janik # e758f6453a6
ASE: main.cc: enable fatal warnings for --check-integrity-tests
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-05 Tim Janik # d9c3e669d03
ASE: api.hh: add Project.save_dir() skeleton
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-05 Tim Janik # 88157f27cac
ASE: api.hh: add Error::NOT_DIRECTORY
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-05 Tim Janik # 710b8e5ad35
ASE: path: move dir_terminate() here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-04 Tim Janik # 19805e90477
ASE: path: add normalize(), fix mkdirs() errno
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-04 Tim Janik # c15e717b23d
UI: b/shell.vue: popdown filedialog as early as possible after selection
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-04 Tim Janik # 60ae7b97549
UI: b/menubar.vue: start in ~/Music, don't force '.anklang'
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-04 Tim Janik # b2f923dfca4
UI: b/track-list.vue, b/trackview.vue: fix lint
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-04 Tim Janik # feb3cde4275
UI: b/filedialog.vue: use crawler for canonify(), allow non-existing paths
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-04 Tim Janik # f7dd70e5053
ASE: path: use std::filesystem and posix filesystem functions
Avoid GLib functions when we can use std::filesystem.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-04 Tim Janik # 4a06850fd63
ASE: api.hh: ResourceCrawler: provide just assign() and versatile canonify()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-04 Tim Janik # 0889c997083
ASE: randomhash.hh: support std::string hashing
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-04 Tim Janik # c6a1fc77225
ASE: path.cc: expand_tilde(): preserve non-expandable paths
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-03 Tim Janik # 84ef3fa5044
UI: b/filedialog.vue: work around <input/> re-layouts, crbug#1116001
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-02 Tim Janik # 4d7beda16fb
ASE: api.hh: rename dir_crawler() and expand special locations
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-02 Tim Janik # 45454ab3cb1
ASE: platform: remove unused HOMEDIR
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-02 Tim Janik # bd3838ed7f7
ASE: crawler.cc: get_dir(): also resolve xdg_dir() paths
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-02 Tim Janik # c35e4fe7feb
ASE: path: add xdg_dir() to resolve dirs from $XDG_* and user-dirs.dirs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-02 Tim Janik # 97205db2475
ASE: inifile: add .ini file parser
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-02 Tim Janik # 8283a523397
ELECTRON: Makefile.mk: change Electron app name to "anklang/electron"
The name change is not directly user visible, because index.html sets
a <title/> tag. It does change the Electron data/cache directory to
~/.config/anklang/electron/, so electron data now resides under the
~/.config/anklang/ directory which is used anyway. And it changes the
X11 WM_CLASS string to "anklang/electron".
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 94665ebd3ca
Merge branch 'file-dialog'
* file-dialog:
UI: b/ch-vue.md: document Envue components
UI: b/menubar.vue: enable Open, Save, Save-As
UI: b/app.js: add load_project_checked()
UI: b/shell.vue: implement Shell.select_file()
UI: b/filedialog.vue: component to select a file name
UI: b/folderview.vue: component to browse an Ase.Entry list
UI: b/modaldialog.vue: emit 'close' event
UI: theme.scss: move focus outline styling here
UI: sfc-compile.js: fix quoting in HTML section
UI: styles.scss: style scrollbars inside .b-modaldialog-shield
UI: theme.scss: add helper classes for grid col/row
UI: util.js: use Vue.watchEffect() to monitor reactive data in Vue3
UI: util.js: ignore hotkeys during compose sequences
UI: util.js: support LEFT/RIGHT focus cycling
UI: b/envue.js: support $watch() and observable_from_getters()
UI: startup.js: Chrome-90 still has the movementX devicePixelRatio bug
UI: b/preferencesdialog.vue: remove unused code
UI: b/piano-roll.vue: minor fixes
UI: b/partlist.vue: minor fix
UI: b/modaldialog.vue: use v-flex for layout
UI: b/fed-object.vue: remove unused code
UI: util.js: export zero_pad and fmt_date
UI: util.js: allow data-subfocus=1 to constrain focus arrow movements
UI: util.js: allow dom_update() for Text nodes
MISC: package.json.in: update npm packages
ASE: api.hh: add crawler path navigation
ASE: crawler, api.hh: add ResourceCrawler for files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 5acb3f13fc4
UI: b/ch-vue.md: document Envue components
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 5a3875be78f
UI: b/menubar.vue: enable Open, Save, Save-As
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 351bb4413b9
UI: b/app.js: add load_project_checked()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 93f364f3ff7
UI: b/shell.vue: implement Shell.select_file()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 8229711e3a5
UI: b/filedialog.vue: component to select a file name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # a2f70464ac7
UI: b/folderview.vue: component to browse an Ase.Entry list
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 96f86e661e3
UI: b/modaldialog.vue: emit 'close' event
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 3dae0464e10
UI: theme.scss: move focus outline styling here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # 599f2291472
UI: sfc-compile.js: fix quoting in HTML section
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # 0368b13a4ca
UI: styles.scss: style scrollbars inside .b-modaldialog-shield
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # e660efeae73
UI: theme.scss: add helper classes for grid col/row
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # baba7adf732
UI: util.js: use Vue.watchEffect() to monitor reactive data in Vue3
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # e00ff6727ad
UI: util.js: ignore hotkeys during compose sequences
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # 43d1e45dd1d
UI: util.js: support LEFT/RIGHT focus cycling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # af9d44961a0
UI: b/envue.js: support $watch() and observable_from_getters()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-24 Tim Janik # c737eb5ed5e
UI: startup.js: Chrome-90 still has the movementX devicePixelRatio bug
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-24 Tim Janik # 8d75157c058
UI: b/preferencesdialog.vue: remove unused code
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-24 Tim Janik # a2133f66be7
UI: b/piano-roll.vue: minor fixes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-24 Tim Janik # fade1d853fd
UI: b/partlist.vue: minor fix
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-24 Tim Janik # b5637ff0e04
UI: b/modaldialog.vue: use v-flex for layout
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-24 Tim Janik # 4eb87b0b7e1
UI: b/fed-object.vue: remove unused code
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-24 Tim Janik # 7351874d0f7
UI: util.js: export zero_pad and fmt_date
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-24 Tim Janik # 56aadb3fe0c
UI: util.js: allow data-subfocus=1 to constrain focus arrow movements
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-24 Tim Janik # 7bf41a36b43
UI: util.js: allow dom_update() for Text nodes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 808b2045c32
MISC: package.json.in: update npm packages
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # 3e7f0df2170
ASE: api.hh: add crawler path navigation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-16 Tim Janik # 60a97df3708
ASE: crawler, api.hh: add ResourceCrawler for files
Signed-off-by: Tim Janik <timj@gnu.org>
2021-05-01 Tim Janik # 931b2fb4f09
Merge branch 'storage'
* storage:
ASE: server.cc: ignore read-only MIDI drivers (like Anklangs MIDI inputs)
ASE: platform: add DEMODIR and HOMEDIR
ASE: storage: add Storage to manage resource files in Ase ZIP containers
ASE: minizip: compile minizip into Ase
ASE: Makefile.mk: allow *.c files in Ase
MISC: config-external.mk: provide minizip-ng-2.9.0
ASE: utils: add uint{16|32|64}_swap_le_be()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # 0c55d291736
ASE: server.cc: ignore read-only MIDI drivers (like Anklangs MIDI inputs)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-29 Tim Janik # 7adcd8f72a9
ASE: platform: add DEMODIR and HOMEDIR
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-15 Tim Janik # c39e31dd930
ASE: storage: add Storage to manage resource files in Ase ZIP containers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-15 Tim Janik # 4fad520922f
ASE: minizip: compile minizip into Ase
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-15 Tim Janik # 6c231a87b98
ASE: Makefile.mk: allow *.c files in Ase
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-15 Tim Janik # 008c25ffb93
MISC: config-external.mk: provide minizip-ng-2.9.0
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-14 Tim Janik # 00cae8ff037
ASE: utils: add uint{16|32|64}_swap_le_be()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-14 Tim Janik # 0c3d4224c1b
Merge branch 'midi-input'
* midi-input:
UI: b/preferencesdialog.vue: adjust PCM and MIDI icons
ASE: engine.cc: synchronize open MIDI drivers with preferences
ASE: api.hh: provide up to 4 MIDI driver configs
ASE: midievent.hh: add capacity() and reserve()
ASE: driver: ensure devid() matches open (devid)
UI: b/fed-object.vue: query and display ChoiceS
UI: b/choice.vue: display Ase.Choice entries
UI: b/icon.vue: fallback to `ic` unicode display
ASE: driver.cc: fix info
ASE: api.hh: remove unused DriverEntry.modem
DEVICES: blepsynth/blepsynth.cc: adjust ChoiceS construction
ASE: processor: use Choice, ChoiceS and string_to_identifier()
ASE: server: provide ChoiceS for midi_driver and pcm_driver
ASE: api.hh: extend Choice and ChoiceS
ASE: strings: add string_to_identifier()
ASE: properties: allow Text properties with choice lists
ASE: processor: use CString as icon string type
UI: b/pro-input.vue: center input fields, widen b-choice
UI: b/pro-group.vue: allow taller inputs
UI: b/preferencesdialog.vue: augment :choice: properties
UI: b/fed-object.vue: use b-choice for :choice: properties
UI: b/choice.vue: support small, indexed and drop-down arrow
UI: b/toggle.vue: fix comment
UI: b/choice.vue: cleanups
UI: b/fed-object.vue: allow property augmentation
UI: b/fed-object.vue: use object_await_values()
UI: util.js: add object_await_values and object_zip
ASE: server.cc: list PCM and MIDI drivers
UI: startup.js: Chrome-89 still has the movementX devicePixelRatio bug
ASE: track.cc: setup event source per track
ASE: midievent.cc: fix comment
ASE: driver-alsa.cc: reduce debug verbosity
ASE: device: fix device lists and add event source setter
ASE: engine: add EngineMidiInput to provide external MIDI events
ASE: processor.cc: take event buses into account when checking outputs
ASE: cxxaux.cc: suport assertion backtraces with ASE_DEBUG=backtrace
ASE: backtrace: determine system() command for backtrace printing
DEVICES: blepsynth/blepsynth.cc: fix uri and version, add creator
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-14 Tim Janik # b92a9378c53
UI: b/preferencesdialog.vue: adjust PCM and MIDI icons
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-12 Tim Janik # 46d21d4b3c6
ASE: engine.cc: synchronize open MIDI drivers with preferences
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-12 Tim Janik # 93897a6f39e
ASE: api.hh: provide up to 4 MIDI driver configs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-12 Tim Janik # 017b901d171
ASE: midievent.hh: add capacity() and reserve()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-12 Tim Janik # 71a2720161d
ASE: driver: ensure devid() matches open (devid)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # 4b298f4f0e2
UI: b/fed-object.vue: query and display ChoiceS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # 7e1bb6ac130
UI: b/choice.vue: display Ase.Choice entries
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # 55232b0bb7c
UI: b/icon.vue: fallback to `ic` unicode display
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # 37a9a4acb83
ASE: driver.cc: fix info
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # 1136e04691b
ASE: api.hh: remove unused DriverEntry.modem
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # 84baefa8d17
DEVICES: blepsynth/blepsynth.cc: adjust ChoiceS construction
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # 7456859b42f
ASE: processor: use Choice, ChoiceS and string_to_identifier()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # 07262f1608b
ASE: server: provide ChoiceS for midi_driver and pcm_driver
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # bebcd191f1c
ASE: api.hh: extend Choice and ChoiceS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # b75a601b15e
ASE: strings: add string_to_identifier()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # 9e935c6b124
ASE: properties: allow Text properties with choice lists
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-11 Tim Janik # fb79be0715e
ASE: processor: use CString as icon string type
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-09 Tim Janik # 635328db627
UI: b/pro-input.vue: center input fields, widen b-choice
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-09 Tim Janik # 26523276fc7
UI: b/pro-group.vue: allow taller inputs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-09 Tim Janik # 2546ce12f80
UI: b/preferencesdialog.vue: augment :choice: properties
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-09 Tim Janik # 472eac4bf70
UI: b/fed-object.vue: use b-choice for :choice: properties
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-09 Tim Janik # fc5b007bd4e
UI: b/choice.vue: support small, indexed and drop-down arrow
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-09 Tim Janik # dfa1b7f13fe
UI: b/toggle.vue: fix comment
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-09 Tim Janik # 8f9c4e244af
UI: b/choice.vue: cleanups
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 11f6d85a6ae
UI: b/fed-object.vue: allow property augmentation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 5d60b010dbd
UI: b/fed-object.vue: use object_await_values()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 7a3f4c0b0dd
UI: util.js: add object_await_values and object_zip
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 6f54b3da0e4
ASE: server.cc: list PCM and MIDI drivers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # b26d2e9fda6
UI: startup.js: Chrome-89 still has the movementX devicePixelRatio bug
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 516ea062eb9
ASE: track.cc: setup event source per track
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 7953c909a41
ASE: midievent.cc: fix comment
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # cb412d50739
ASE: driver-alsa.cc: reduce debug verbosity
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 57378b44a98
ASE: device: fix device lists and add event source setter
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 5b9d98966f4
ASE: engine: add EngineMidiInput to provide external MIDI events
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 70a8dfdf179
ASE: processor.cc: take event buses into account when checking outputs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # c0fa0d3a05b
ASE: cxxaux.cc: suport assertion backtraces with ASE_DEBUG=backtrace
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-08 Tim Janik # 48066918798
ASE: backtrace: determine system() command for backtrace printing
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-07 Tim Janik # 916b1149661
DEVICES: blepsynth/blepsynth.cc: fix uri and version, add creator
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-05 Tim Janik # 6854b48fe51
Merge branch 'blepsynth'
* blepsynth:
DEVICES: blepsynth/: adjust for Ase API
DEVICES: blepsynth/Makefile.mk: integrate BlepSynth into Ase build
DEVICES: blepsynth/: relicense to MPL-2.0
Code originally by:
Stefan Westerfeld <stefan@space.twc.de>
License statement to use the code under MPL-2:
https://mail.gnome.org/archives/beast/2021-February/msg00001.html
DEVICES: blepsynth: rename namespace to Ase, adjust prefixes and includes
DEVICES: blepsynth/blepsynth.cc: fix "stereo_out" identifier
DEVICES: blepsynth/blepsynth.cc: make query_info() const, i.e. MT-Safe
DEVICES: blepsynth: rename midievent.key to match MIDI spec
DEVICES: blepsynth/blepsynth.cc: fix missing 'override'
DEVICES: blepsynth: add filter key tracking
DEVICES: blepsynth: stop filter envelope at note off
DEVICES: blepsynth: smooth "Env Cutoff Modulation" to avoid clicks
DEVICES: blepsynth: add filter envlope and cutoff modulation
DEVICES: blepsynth: add linear ADSR shape for Envelope
DEVICES: blepsynth: support osc octave + pitch properties
DEVICES: blepsynth: display unison voice text as integer
DEVICES: blepsynth: add smoothing for cutoff frequency, add drive property
DEVICES: blepsynth: copy remaining relevant files from bleposc branch
DEVICES: blepsynth/blepsynth.cc: use Logscale for cutoff parameters
DEVICES: blepsynth: fix choice range to go from 0 .. size() -1
DEVICES: blepsynth: use nyquist() and inyquist()
DEVICES: blepsynth/blepsynth.cc: allow 8s Envelope ramps and use log scales
DEVICES: blepsynth/blepsynth.cc: implement reset() via unsetting voices
DEVICES: blepsynth/blepsynth.cc: remove unused adjust_param()
DEVICES: blepsynth/blepsynth.cc: fix add_param() parameters
DEVICES: blepsynth/blepsynth.cc: remove useless copy-paste lines
DEVICES: blepsynth/GNUmakefile: support `make` command in this dir
DEVICES: blepsynth/bleposc.hh: cleanup includes
DEVICES: blepsynth: blepsynth.cc: handle ALL_NOTES_OFF event message
DEVICES: blepsynth: blepsynth.cc: re-arrange param groups to improve UI
DEVICES: blepsynth: blepsynth.cc: process NOTE_ON and NOTE_OFF
DEVICES: blepsynth: blepsynth.cc: remove unused RenderSetup argument
DEVICES: blepsynth: fixups due to moving sources into devices/blepsynth
DEVICES: blepsynth: blepsynth.cc: support different midi channels
DEVICES: blepsynth: blepsynth.cc: add lowpass filter
DEVICES: blepsynth: blepsynth.cc: add more oscillator properties
DEVICES: blepsynth: blepsynth.cc: add osc unison properties
DEVICES: blepsynth: blepsynth.cc: add "real" blep oscillators
DEVICES: blepsynth: blepsynth.cc: add ADSR volume envelope
DEVICES: blepsynth: blepsynth.cc: started to implement BlepSynth processor
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-02 Tim Janik # e288b6cfd1a
DEVICES: blepsynth/: adjust for Ase API
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-02 Tim Janik # cf71c468a5b
DEVICES: blepsynth/Makefile.mk: integrate BlepSynth into Ase build
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-03 Tim Janik # e1159a8f5af
DEVICES: blepsynth/: relicense to MPL-2.0
Code originally by:
Stefan Westerfeld <stefan@space.twc.de>
License statement to use the code under MPL-2:
https://mail.gnome.org/archives/beast/2021-February/msg00001.html
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-31 Tim Janik # 4909b41f262
DEVICES: blepsynth: rename namespace to Ase, adjust prefixes and includes
Signed-off-by: Tim Janik <timj@gnu.org>
2020-09-29 Tim Janik # 7f9c5703c5e
DEVICES: blepsynth/blepsynth.cc: fix "stereo_out" identifier
Signed-off-by: Tim Janik <timj@gnu.org>
2020-09-23 Tim Janik # e7a56737ef3
DEVICES: blepsynth/blepsynth.cc: make query_info() const, i.e. MT-Safe
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-31 Tim Janik # 6d10a8dc6aa
DEVICES: blepsynth: rename midievent.key to match MIDI spec
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-25 Tim Janik # 69633a60390
DEVICES: blepsynth/blepsynth.cc: fix missing 'override'
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-18 Stefan Westerfeld # ff66dbaa57b
DEVICES: blepsynth: add filter key tracking
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-18 Stefan Westerfeld # 5dcdae3d505
DEVICES: blepsynth: stop filter envelope at note off
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-18 Stefan Westerfeld # 190f2d57746
DEVICES: blepsynth: smooth "Env Cutoff Modulation" to avoid clicks
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-18 Stefan Westerfeld # 34093af7bee
DEVICES: blepsynth: add filter envlope and cutoff modulation
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-18 Stefan Westerfeld # 43055af4c56
DEVICES: blepsynth: add linear ADSR shape for Envelope
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-18 Stefan Westerfeld # ccddce4bb2d
DEVICES: blepsynth: support osc octave + pitch properties
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-18 Stefan Westerfeld # 82e8ea20316
DEVICES: blepsynth: display unison voice text as integer
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-14 Stefan Westerfeld # 7817c5b23ca
DEVICES: blepsynth: add smoothing for cutoff frequency, add drive property
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-13 Stefan Westerfeld # 79c0277bdc3
DEVICES: blepsynth: copy remaining relevant files from bleposc branch
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-15 Tim Janik # f4a7ecae2fb
DEVICES: blepsynth/blepsynth.cc: use Logscale for cutoff parameters
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-15 Tim Janik # 39d84a7b95b
DEVICES: blepsynth: fix choice range to go from 0 .. size() -1
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-11 Tim Janik # ee5113389c0
DEVICES: blepsynth: use nyquist() and inyquist()
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-11 Tim Janik # f68bf0ff54b
DEVICES: blepsynth/blepsynth.cc: allow 8s Envelope ramps and use log scales
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-11 Tim Janik # 634ce15fd27
DEVICES: blepsynth/blepsynth.cc: implement reset() via unsetting voices
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-09 Tim Janik # 3216c30efd0
DEVICES: blepsynth/blepsynth.cc: remove unused adjust_param()
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-09 Tim Janik # 8820f13337a
DEVICES: blepsynth/blepsynth.cc: fix add_param() parameters
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-09 Tim Janik # 9c521439ed7
DEVICES: blepsynth/blepsynth.cc: remove useless copy-paste lines
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-08 Tim Janik # f765aa45a8b
DEVICES: blepsynth/GNUmakefile: support `make` command in this dir
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-08 Tim Janik # 0fb285f33fc
DEVICES: blepsynth/bleposc.hh: cleanup includes
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-07 Tim Janik # f131d81433a
DEVICES: blepsynth: blepsynth.cc: handle ALL_NOTES_OFF event message
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-07 Tim Janik # bfd7b5e791f
DEVICES: blepsynth: blepsynth.cc: re-arrange param groups to improve UI
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-07 Tim Janik # 037e093b7bd
DEVICES: blepsynth: blepsynth.cc: process NOTE_ON and NOTE_OFF
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-07 Tim Janik # d8139adaae2
DEVICES: blepsynth: blepsynth.cc: remove unused RenderSetup argument
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-08 Tim Janik # aa5be1768b9
DEVICES: blepsynth: fixups due to moving sources into devices/blepsynth
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-04 Stefan Westerfeld # 12b9e2ee128
DEVICES: blepsynth: blepsynth.cc: support different midi channels
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-04 Stefan Westerfeld # 4d480393a77
DEVICES: blepsynth: blepsynth.cc: add lowpass filter
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-04 Stefan Westerfeld # 0065212b1ac
DEVICES: blepsynth: blepsynth.cc: add more oscillator properties
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-04 Stefan Westerfeld # e79de0406d1
DEVICES: blepsynth: blepsynth.cc: add osc unison properties
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-04 Stefan Westerfeld # 38ce46f96ce
DEVICES: blepsynth: blepsynth.cc: add "real" blep oscillators
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-04 Stefan Westerfeld # f60a3d8ac56
DEVICES: blepsynth: blepsynth.cc: add ADSR volume envelope
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2020-07-04 Stefan Westerfeld # aa37f6fcb53
DEVICES: blepsynth: blepsynth.cc: started to implement BlepSynth processor
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
2021-04-05 Tim Janik # 68fd3a04dc4
Merge branch 'math-utilities'
* math-utilities:
ASE: processor: add note_to_freq()
ASE: midievent.hh: add MidiNote and note_to_freq()
ASE: mathutils.hh, mathtables.cc: add Cent and Semitone tables
ASE: api.hh: provide error_blurb for JS
ASE: api.hh: add MusicalTuning, musical_tuning_desc, musical_tuning_blurb
ASE: signalmath.hh: add Logscale to logarithmically map a range onto 0…+1
ASE: datautils.hh: include ase/signalmath.hh
ASE: signalmath: add conversions for Voltage, Hertz, Decibell
ASE: mathutils: add irintf, fast_exp2, fast_log2
ASE: tests/benchmarks.cc: run benchmarks last
ASE: testing.cc: sort tests by name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-02 Tim Janik # b76b10f0ec0
ASE: processor: add note_to_freq()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-02 Tim Janik # 3c1c15b234d
ASE: midievent.hh: add MidiNote and note_to_freq()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-01 Tim Janik # d4c36a5a052
ASE: mathutils.hh, mathtables.cc: add Cent and Semitone tables
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-01 Tim Janik # bd972ab2fff
ASE: api.hh: provide error_blurb for JS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-01 Tim Janik # 71494330f24
ASE: api.hh: add MusicalTuning, musical_tuning_desc, musical_tuning_blurb
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-01 Tim Janik # e6ccbb157e7
ASE: signalmath.hh: add Logscale to logarithmically map a range onto 0…+1
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-01 Tim Janik # c164b7f59aa
ASE: datautils.hh: include ase/signalmath.hh
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-01 Tim Janik # 173c29cd064
ASE: signalmath: add conversions for Voltage, Hertz, Decibell
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-31 Tim Janik # 1e399e95d61
ASE: mathutils: add irintf, fast_exp2, fast_log2
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-31 Tim Janik # d8458b4e513
ASE: tests/benchmarks.cc: run benchmarks last
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-31 Tim Janik # 8f1e6bdc8a9
ASE: testing.cc: sort tests by name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-03 Tim Janik # 1b70d80f730
Merge branch 'resampler2'
* resampler2:
ASE: resampler2.cc: run resampler2_tests
ASE: resampler2: adjust for Ase API
ASE: resampler2: rename prefixes and namespace to Ase
ASE: resampler2.cc: switch to using FastMemArray<float>
ASE: resampler2: relicense to MPL-2.0
Code originally by:
Stefan Westerfeld <stefan@space.twc.de>
License statement to use the code under MPL-2:
https://mail.gnome.org/archives/beast/2021-February/msg00001.html
ASE: resampler2: import factor-2 resampler from Stefan Westerfeld
Import resampler from:
https://github.com/tim-janik/beast/blob/master/bse/bseresampler.hh
https://github.com/tim-janik/beast/blob/master/bse/bseresampler.cc
Code originally by:
Stefan Westerfeld <stefan@space.twc.de>
Squashed commits since 2006-09-16:
Added Resampler2::find_precision_for_bits to the API, and a
precision enum -> string conversion function.
The guarantee that the upsampler delay is even was removed from the API.
The reason is that we can have a shorter stream delay when the upsampler
delay is odd.
Removed unnecessary delay. The stream delay for both, upsampling and
downsampling should be truely minimal now.
Added coefficient set for linear interpolation. It will probably sound
bad, but its useful for testing.
Improved comments on delay compensation.
Added a virtual function Resampler2::delay(),
which can be used for compensation of the resampler introduced delay.
Added factor 2 resampling code (up- and downsampling), which can use SSE
instructions when available. The implementation was tuned for speed.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-01 Tim Janik # 29eaee7aab4
ASE: resampler2.cc: run resampler2_tests
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-01 Tim Janik # bd23b3bd9b9
ASE: resampler2: adjust for Ase API
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-03 Tim Janik # c07cabb2481
ASE: resampler2: rename prefixes and namespace to Ase
Signed-off-by: Tim Janik <timj@gnu.org>
2020-02-12 Tim Janik # 0970a3e6283
ASE: resampler2.cc: switch to using FastMemArray<float>
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-03 Tim Janik # 17db2f8abae
ASE: resampler2: relicense to MPL-2.0
Code originally by:
Stefan Westerfeld <stefan@space.twc.de>
License statement to use the code under MPL-2:
https://mail.gnome.org/archives/beast/2021-February/msg00001.html
Signed-off-by: Tim Janik <timj@gnu.org>
2006-09-16 Stefan Westerfeld # 0d5a0baad01
ASE: resampler2: import factor-2 resampler from Stefan Westerfeld
Import resampler from:
https://github.com/tim-janik/beast/blob/master/bse/bseresampler.hh
https://github.com/tim-janik/beast/blob/master/bse/bseresampler.cc
Code originally by:
Stefan Westerfeld <stefan@space.twc.de>
Squashed commits since 2006-09-16:
Added Resampler2::find_precision_for_bits to the API, and a
precision enum -> string conversion function.
The guarantee that the upsampler delay is even was removed from the API.
The reason is that we can have a shorter stream delay when the upsampler
delay is odd.
Removed unnecessary delay. The stream delay for both, upsampling and
downsampling should be truely minimal now.
Added coefficient set for linear interpolation. It will probably sound
bad, but its useful for testing.
Improved comments on delay compensation.
Added a virtual function Resampler2::delay(),
which can be used for compensation of the resampler introduced delay.
Added factor 2 resampling code (up- and downsampling), which can use SSE
instructions when available. The implementation was tuned for speed.
Signed-off-by: Stefan Westerfeld <stefan@space.twc.de>
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-03 Tim Janik # 024b52ad09a
Merge branch 'engine-schedule'
* engine-schedule:
ASE: server.cc: implement default error_blurb for g++
ASE: atomics.hh: provide AtomicIntrusiveStack<>
UI: b/pro-input.vue: handle Knob reset
UI: b/pro-group.vue: minor cleanup
UI: b/knob.vue: emit 'reset:value' on dblclick
DEVICES: colorednoise.cc: adjust defaults
ASE: engine: implement basic AudioProcessor scheduling
ASE: engine.hh: rename schedule_queue_update()
ASE: engine.hh: count number of AudioProcessors associated with an engine
ASE: engine, processor: schedule leafs before combos
ASE: processor.hh: minor cleanup
ASE: engine: check pcm before writing
ASE: main.cc: sort pcm/midi drivers by priority before printing
ASE: processor: fix AudioPropertyImpl notification handling
ASE: cxxaux.hh: add typeid_name() for object references
UI: b/pro-group.vue: fix title alignment
UI: b/devicepanel.vue: use list_device_types and Track API
UI: b/deviceeditor.vue: adjust to Ase.Device API
ASE: processor.cc: fix whitespace
ASE: engine.cc: dispatch pending notifications
DEVICES: colorednoise.cc: fix initialize()
ASE: main.cc: integrate engine into main event loop
ASE: track: create chain and add access_device()
ASE: device: add disconnect_remove()
ASE: combo: adapt scheduling
ASE: engine: process jobs and add enable_output()
ASE: processor: add enable_engine_output, improve scheduling methods
ASE: engine: add remove_output()
ASE: api.hh, device: implement Device API
ASE: processor: merge configure into initialize() with SpeakerArrangement hints
ASE: engine: move SpeakerArrangement here, add job queues and multiple outputs
Add const_jobs queue and async_jobs queue.
ASE: defs.hh: declare AudioProcessorInfo struct
ASE: device: move DeviceImpl here
ASE: defs.hh: move AudioCombo, AudioProcessor, DeviceImpl, ParamInfo decls here
ASE: combo: implement AudioChain methods
ASE: main: expose main_config_.engine
ASE: processor: allow bus registration in initialize() instead of configure()
ASE: engine.hh: add API comments
ASE: defs.hh: add AudioChain, AudioCombo, AudioEngine decls
ASE: defs.hh: move ProjectImpl, ServerImpl, TrackImpl decls here
ASE: cxxaux.hh: rename StringVector to StringS
ASE: defs.hh: move class and struct forward declarations here
ASE: combo: add AudioCombo, an AudioProcessor container
ASE: processor: provide DeviceImpl.audio_combo()
ASE: processor.cc: fix off-by-one in float_buffer
ASE: tests/benchmarks.cc: not_0x80_strlen_utf8: minor simplification
ASE: processor: rename DeviceImpl.audio_processor()
ASE: processor: rename get_device()
ASE: processor.hh: add prototype variants for AudioCombo, AudioProcessor, etc
DEVICES: colorednoise.cc: use register_audio_processor<>()
ASE: processor.hh: rename register_audio_processor<>()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-03 Tim Janik # c1eb9171000
ASE: server.cc: implement default error_blurb for g++
Signed-off-by: Tim Janik <timj@gnu.org>
2021-04-01 Tim Janik # 4831825cde6
ASE: atomics.hh: provide AtomicIntrusiveStack<>
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-30 Tim Janik # 871e69d0a71
UI: b/pro-input.vue: handle Knob reset
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-30 Tim Janik # e5784eaff2d
UI: b/pro-group.vue: minor cleanup
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-30 Tim Janik # 556fc6f9d49
UI: b/knob.vue: emit 'reset:value' on dblclick
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-30 Tim Janik # 5d1b0d98dca
DEVICES: colorednoise.cc: adjust defaults
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-30 Tim Janik # 10880823bbd
ASE: engine: implement basic AudioProcessor scheduling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-30 Tim Janik # 9543542f72e
ASE: engine.hh: rename schedule_queue_update()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-30 Tim Janik # 67112c2b904
ASE: engine.hh: count number of AudioProcessors associated with an engine
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-30 Tim Janik # d1c965ccc21
ASE: engine, processor: schedule leafs before combos
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-29 Tim Janik # 368b7fb8874
ASE: processor.hh: minor cleanup
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-29 Tim Janik # ef561b0ce53
ASE: engine: check pcm before writing
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-29 Tim Janik # 5329c37d6a8
ASE: main.cc: sort pcm/midi drivers by priority before printing
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-28 Tim Janik # 4b7a8b453c4
ASE: processor: fix AudioPropertyImpl notification handling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-28 Tim Janik # c6bafcdc589
ASE: cxxaux.hh: add typeid_name() for object references
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-27 Tim Janik # f3ae340e5c6
UI: b/pro-group.vue: fix title alignment
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-27 Tim Janik # dba4e9c7e90
UI: b/devicepanel.vue: use list_device_types and Track API
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-27 Tim Janik # 14a91f757da
UI: b/deviceeditor.vue: adjust to Ase.Device API
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-27 Tim Janik # cac2d09ca71
ASE: processor.cc: fix whitespace
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-27 Tim Janik # 093904a2c76
ASE: engine.cc: dispatch pending notifications
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-25 Tim Janik # ee52f77797c
DEVICES: colorednoise.cc: fix initialize()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-25 Tim Janik # 3351cce812e
ASE: main.cc: integrate engine into main event loop
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-25 Tim Janik # ce005b35174
ASE: track: create chain and add access_device()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-25 Tim Janik # ab33a10f157
ASE: device: add disconnect_remove()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-25 Tim Janik # d5a988f5afd
ASE: combo: adapt scheduling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-25 Tim Janik # e016f986699
ASE: engine: process jobs and add enable_output()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-25 Tim Janik # 14d9aff1d82
ASE: processor: add enable_engine_output, improve scheduling methods
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-25 Tim Janik # 217bf9b7193
ASE: engine: add remove_output()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-24 Tim Janik # 1fcf1e8532e
ASE: api.hh, device: implement Device API
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-24 Tim Janik # 34de65d3351
ASE: processor: merge configure into initialize() with SpeakerArrangement hints
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-24 Tim Janik # 44993cdb126
ASE: engine: move SpeakerArrangement here, add job queues and multiple outputs
Add const_jobs queue and async_jobs queue.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-22 Tim Janik # cda82c80674
ASE: defs.hh: declare AudioProcessorInfo struct
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-22 Tim Janik # 8b576eb8728
ASE: device: move DeviceImpl here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-22 Tim Janik # 491d818d37e
ASE: defs.hh: move AudioCombo, AudioProcessor, DeviceImpl, ParamInfo decls here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-22 Tim Janik # cb740cfa673
ASE: combo: implement AudioChain methods
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-22 Tim Janik # 956ddb7c897
ASE: main: expose main_config_.engine
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-22 Tim Janik # af125c6478e
ASE: processor: allow bus registration in initialize() instead of configure()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-22 Tim Janik # 63fc4d281d9
ASE: engine.hh: add API comments
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-21 Tim Janik # 5c38e3e3af6
ASE: defs.hh: add AudioChain, AudioCombo, AudioEngine decls
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-21 Tim Janik # 6922e5d0d81
ASE: defs.hh: move ProjectImpl, ServerImpl, TrackImpl decls here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-21 Tim Janik # a3ae4a85a2f
ASE: cxxaux.hh: rename StringVector to StringS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-21 Tim Janik # 318c4520f05
ASE: defs.hh: move class and struct forward declarations here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-21 Tim Janik # 3c144f4d7fd
ASE: combo: add AudioCombo, an AudioProcessor container
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-21 Tim Janik # c385d1d3abd
ASE: processor: provide DeviceImpl.audio_combo()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-21 Tim Janik # c98d8095212
ASE: processor.cc: fix off-by-one in float_buffer
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # e753001b703
ASE: tests/benchmarks.cc: not_0x80_strlen_utf8: minor simplification
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # 4d31fdcbaf5
ASE: processor: rename DeviceImpl.audio_processor()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # 23f388acaaa
ASE: processor: rename get_device()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # 6a9208b271d
ASE: processor.hh: add prototype variants for AudioCombo, AudioProcessor, etc
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-16 Tim Janik # a0ca33ecf63
DEVICES: colorednoise.cc: use register_audio_processor<>()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-16 Tim Janik # 6b5ef3d0435
ASE: processor.hh: rename register_audio_processor<>()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # 37f1503fa40
Merge branch 'create-tracks-ui'
* create-tracks-ui:
UI: b/trackview.vue: maintain a selected track across deletion
UI: util.js: add array_index_equals()
UI: b/app.js: consistently access globals through Data.*
UI: b/trackview.vue: fix double use of dblclick
UI: b/trackview.vue: use Data.project to create/remove tracks
UI: b/partlist.vue: use Track.list_clips()
UI: b/track-list.vue: use Project.list_tracks()
UI: b/: use Gadget.name()
UI: b/shell.vue: pass Project on to containees
UI: b/app.js: setup Data.current_track and Data.mtrack
UI: b/trackview.vue: consistently use trackview everywhere
UI: b/partthumb.vue: consistently use partthumb everywhere
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # cb47806d6e3
UI: b/trackview.vue: maintain a selected track across deletion
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # 450cc3a6da9
UI: util.js: add array_index_equals()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # 9644171681f
UI: b/app.js: consistently access globals through Data.*
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 9c3ccb44bb5
UI: b/trackview.vue: fix double use of dblclick
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 50b0755e048
UI: b/trackview.vue: use Data.project to create/remove tracks
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # d960702aa5f
UI: b/partlist.vue: use Track.list_clips()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # ec273d54db1
UI: b/track-list.vue: use Project.list_tracks()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # e3b75712401
UI: b/: use Gadget.name()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # 242a847478b
UI: b/shell.vue: pass Project on to containees
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # 466251e96c9
UI: b/app.js: setup Data.current_track and Data.mtrack
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # ed1ce0dccac
UI: b/trackview.vue: consistently use trackview everywhere
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # 58e284c1329
UI: b/partthumb.vue: consistently use partthumb everywhere
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # 5e024237950
Merge branch 'vue3-component-from-element'
* vue3-component-from-element:
UI: b/devicepanel.vue: minor rename
UI: util.js: move vue_mixins.vuechildren here
UI: util.js: remove unused vue_mixins.hyphen_props
UI: b/contextmenu.vue: use Util.vue_component() which handles Vue3 well
UI: util.js: export vue_component()
UI: b/*.vue: remove unused hyphen_props mixin
UI: util.js: port directive inlineblur to Vue-3
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-11 Tim Janik # 4c4b6e83ed5
UI: b/devicepanel.vue: minor rename
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 310255a390a
UI: util.js: move vue_mixins.vuechildren here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 754b20aa71f
UI: util.js: remove unused vue_mixins.hyphen_props
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 6b724d7088f
UI: b/contextmenu.vue: use Util.vue_component() which handles Vue3 well
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # ca7cc8a93b1
UI: util.js: export vue_component()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 3a8bbd80837
UI: b/*.vue: remove unused hyphen_props mixin
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 7272e264a04
UI: util.js: port directive inlineblur to Vue-3
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # 11eea6623de
Merge branch 'create-ase-tracks'
* create-ase-tracks:
ASE: gadget.cc: use fallback_name() instead of empty names
ASE: track: add stubs for list_clips() and create_monitor()
ASE: monitor: add stub for signal monitoring
ASE: track: add index to fallback name
ASE: cxxaux.hh: add ASE_CLASS_DECLS() and ASE_STRUCT_DECLS()
ASE: api.hh: forward declare structs and classes plus *P and *S variants
ASE: gadget: add fallback_name() and store an explicitly assigned name
ASE: utils: add CustomDataContainer which allows type-safe foreign data members
ASE: project: ensure Master track, create and remove tracks
ASE: track: create track with Master flag
ASE: cxxaux.hh: provide ASE_DEFINE_MAKE_SHARED() helper for private ctors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 85a45fb6c81
ASE: gadget.cc: use fallback_name() instead of empty names
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 184e761ab70
ASE: track: add stubs for list_clips() and create_monitor()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # f67aa589c9a
ASE: monitor: add stub for signal monitoring
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # ef50d8f3484
ASE: track: add index to fallback name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 1eeaadf066e
ASE: cxxaux.hh: add ASE_CLASS_DECLS() and ASE_STRUCT_DECLS()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-14 Tim Janik # 2ef4a95a49e
ASE: api.hh: forward declare structs and classes plus *P and *S variants
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # 430d1fed291
ASE: gadget: add fallback_name() and store an explicitly assigned name
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # aa15100880f
ASE: utils: add CustomDataContainer which allows type-safe foreign data members
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # 6195c5c029b
ASE: project: ensure Master track, create and remove tracks
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # d4551399b6e
ASE: track: create track with Master flag
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-13 Tim Janik # 8808bf8f77b
ASE: cxxaux.hh: provide ASE_DEFINE_MAKE_SHARED() helper for private ctors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # 1df5aaff055
Merge branch 'electron-12'
* electron-12:
UI: b/aboutdialog.vue: adjust output for window.Electron
UI: startup.js: use electron_versions() to setup window.Electron
ELECTRON: main.js: add exit(status) to bridged functions
ELECTRON: use Ipc invoke/handle to dispatch renderer calls to main
ELECTRON: main.js: handle window.open with Electron-12 handlers
Remove 'new-window' handling, used only in Electron <= 11.
MISC: package.json.in: update vue, eslint, inconsolata, Electron-12
ELECTRON: main.js: use Eshell.openExternal() to open new windows in OS browser
ELECTRON: main.js: provide electron_versions() via IPC
ELECTRON: main.js: disable (unused) enableRemoteModule
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-12 Tim Janik # 1e0f3b58498
UI: b/aboutdialog.vue: adjust output for window.Electron
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-12 Tim Janik # 918ec2134b6
UI: startup.js: use electron_versions() to setup window.Electron
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # c81919f7a76
ELECTRON: main.js: add exit(status) to bridged functions
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # 9ae8d99e88b
ELECTRON: use Ipc invoke/handle to dispatch renderer calls to main
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-15 Tim Janik # 4b05a6a0722
ELECTRON: main.js: handle window.open with Electron-12 handlers
Remove 'new-window' handling, used only in Electron <= 11.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-11 Tim Janik # 7d86ade9641
MISC: package.json.in: update vue, eslint, inconsolata, Electron-12
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-15 Tim Janik # 4998720441c
ELECTRON: main.js: use Eshell.openExternal() to open new windows in OS browser
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-12 Tim Janik # a7143812e18
ELECTRON: main.js: provide electron_versions() via IPC
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-12 Tim Janik # 45eb2dc7b49
ELECTRON: main.js: disable (unused) enableRemoteModule
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # 1c35cc618fc
Merge branch 'fast-rebuilds'
* fast-rebuilds:
MISC: package.json.in: avoid running eslint during serve, MAKE does it
UI: Makefile.mk: defer non-essential build steps during incremental rebuilds
MISC: colorize.sh: colorize error messages
We need this for e.g. the 'eslint -f unix' output which does not support
the --color option.
UI: startup.js: try fast reconnects with linear backoff
MISC: package.json.in: minimize delay during live-reload
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # 514c4592e8a
MISC: package.json.in: avoid running eslint during serve, MAKE does it
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # 49b5ec4dd3e
UI: Makefile.mk: defer non-essential build steps during incremental rebuilds
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # 557881fa9bc
MISC: colorize.sh: colorize error messages
We need this for e.g. the 'eslint -f unix' output which does not support
the --color option.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # 690faa7525b
UI: startup.js: try fast reconnects with linear backoff
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-17 Tim Janik # 6ad22b8e651
MISC: package.json.in: minimize delay during live-reload
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-19 Tim Janik # 9b65490bf25
Merge branch 'bad-invocation-exception'
* bad-invocation-exception:
UI: startup.js: adapt to Jsonipc.open options API
ASE: jsonapi.cc: use Jsonipc::bad_invocation to relay remote errors
JSONIPC: jsonipc.hh: use Jsonipc::bad_invocation for all error codes
This also removes the unused generic exception hander API.
JSONIPC: jsonipc.js: simplify Jsonipc.send() reply handling
This also allows stack-tracing error replies to the original request.
JSONIPC: jsonipc.js: always use globalThis.* to avoid clashes
The file "jsonipc.js" can be pasted as a header before generated API
code. If that defines Error, Promise, etc, lookups in the header fail
due to hoisting unless globalThis is used.
JSONIPC: jsonipc.hh: add bad_invocation() to relay exceptions generically
JSONIPC: Makefile: remove unused -D__JSONIPC_NULL_REFERENCE_THROWS__
JSONIPC: jsonipc.hh: properly relay null->reference cast errors to caller
Remove __JSONIPC_NULL_REFERENCE_THROWS__ macro which sometimes caused strange
const cast compiler errors. Increase robustness (on the C++ side) by relaying
casting errors to the caller (Javascript), when null/undefined is passed in
place of a reference argument.
JSONIPC: jsonipc.hh: fix copy-and-paste error
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-16 Tim Janik # e7e89479c2e
UI: startup.js: adapt to Jsonipc.open options API
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-16 Tim Janik # 945bcef87e9
ASE: jsonapi.cc: use Jsonipc::bad_invocation to relay remote errors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-16 Tim Janik # 0b060e0afe4
JSONIPC: jsonipc.hh: use Jsonipc::bad_invocation for all error codes
This also removes the unused generic exception hander API.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-16 Tim Janik # e4d56f1dc5b
JSONIPC: jsonipc.js: simplify Jsonipc.send() reply handling
This also allows stack-tracing error replies to the original request.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-16 Tim Janik # 81b5100baf2
JSONIPC: jsonipc.js: always use globalThis.* to avoid clashes
The file "jsonipc.js" can be pasted as a header before generated API
code. If that defines Error, Promise, etc, lookups in the header fail
due to hoisting unless globalThis is used.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-16 Tim Janik # c152e528db0
JSONIPC: jsonipc.hh: add bad_invocation() to relay exceptions generically
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-12 Tim Janik # c917a184672
JSONIPC: Makefile: remove unused -D__JSONIPC_NULL_REFERENCE_THROWS__
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-12 Tim Janik # 97fedc0ec8a
JSONIPC: jsonipc.hh: properly relay null->reference cast errors to caller
Remove __JSONIPC_NULL_REFERENCE_THROWS__ macro which sometimes caused strange
const cast compiler errors. Increase robustness (on the C++ side) by relaying
casting errors to the caller (Javascript), when null/undefined is passed in
place of a reference argument.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-16 Tim Janik # 763bad21f4a
JSONIPC: jsonipc.hh: fix copy-and-paste error
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # d8c00fda6e6
Merge branch 'devices'
* devices:
ASE: engine: assign root module and add IPC stubs
ASE: processor: rename start_group()
DEVICES: colorednoise.cc: add white noise & pink noise generator module
ASE: processor: add general purpose audio processor base type
Makefile.mk: add devices/Makefile.mk
DEVICES: GNUmakefile: allow 'make' from subdir
DEVICES: Makefile.mk: add directory for source code of devices
ASE: utils.hh: provide make_case_table<N>() for all [0…N] cases
ASE: cxxaux.hh: add rotl<> and rotr<> operations
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # d1a5644951d
ASE: engine: assign root module and add IPC stubs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # baf957979e5
ASE: processor: rename start_group()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # 55b5a450e3c
DEVICES: colorednoise.cc: add white noise & pink noise generator module
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # 80e177b7788
ASE: processor: add general purpose audio processor base type
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # c308045366a
Makefile.mk: add devices/Makefile.mk
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-27 Tim Janik # efeea263b87
DEVICES: GNUmakefile: allow 'make' from subdir
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-27 Tim Janik # adb2451ecc4
DEVICES: Makefile.mk: add directory for source code of devices
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # 5dacf792a4c
ASE: utils.hh: provide make_case_table<N>() for all [0…N] cases
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-27 Tim Janik # 8f3247a7600
ASE: cxxaux.hh: add rotl<> and rotr<> operations
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # 79053b4c095
Merge branch 'drivers'
* drivers:
ASE: properties.hh: use CString derived GroupId for group labels
ASE: api.hh: add DeviceInfo and Device API
ASE: driver-alsa.cc: fix AUDIO_BLOCK_FLOAT_ZEROS_SIZE
ASE: datautils: add helpers to fill and convert float blocks
ASE: utils.hh: add binary_lookup() helpers
ASE: cxxaux.hh: add helper class for integer IDs up to 32 Bit, possibly enums
ASE: midievent: provide event definition for MIDI message exchange
ASE: engine.cc: always hook up PCM driver to event loop
ASE: main.cc: load and print drivers
ASE: driver-alsa.cc: add ALSA PCM and SEQMIDI drivers
ASE: driver.cc: implement proper timing for 'null' PCM driver
ASE: driver: add PCM and MIDI driver framework
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-27 Tim Janik # 9efa939e92e
ASE: properties.hh: use CString derived GroupId for group labels
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-27 Tim Janik # 07154e83b72
ASE: api.hh: add DeviceInfo and Device API
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-25 Tim Janik # 43c75f1839f
ASE: driver-alsa.cc: fix AUDIO_BLOCK_FLOAT_ZEROS_SIZE
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-25 Tim Janik # 96f58786aba
ASE: datautils: add helpers to fill and convert float blocks
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-25 Tim Janik # 5423d77c1d8
ASE: utils.hh: add binary_lookup() helpers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-25 Tim Janik # d1c07c2c876
ASE: cxxaux.hh: add helper class for integer IDs up to 32 Bit, possibly enums
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-25 Tim Janik # 614d8f08a0a
ASE: midievent: provide event definition for MIDI message exchange
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-20 Tim Janik # fa61831aaf5
ASE: engine.cc: always hook up PCM driver to event loop
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-17 Tim Janik # 6ef08187c63
ASE: main.cc: load and print drivers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-18 Tim Janik # d6c9212de49
ASE: driver-alsa.cc: add ALSA PCM and SEQMIDI drivers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-20 Tim Janik # 2a27bbdb90f
ASE: driver.cc: implement proper timing for 'null' PCM driver
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-17 Tim Janik # e579bedf0c6
ASE: driver: add PCM and MIDI driver framework
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # e2ed279b3b1
Merge branch 'linting'
* linting:
MISC: Makefile.mk, run-cppcheck.sh: remove old cppcheck code
JSONIPC: jsonipc.hh: fix shadowing, missing const and explicit ctors
ASE: tests/benchmarks.cc: fix variable shadowing
ASE: tests/benchmarks.cc: avoid implicit std::string allocation
ASE: tests/benchmarks.cc: bench both, utf8len(char*) and utf8len(string&)
ASE: tests/benchmarks.cc: avoid '\0' in strlen test strings
ASE: testing.hh: fix const&
ASE: path.cc: fix signedness
ASE: memory.hh: minor fix
ASE: formatter.cc: minor fixes
ASE: fix licenses
ASE: Makefile.mk: cleanups, rename check-ase-tests
MISC: Makefile.mk: add lint-unused rule
MISC: Makefile.mk: add lint-cppcheck rule
MISC: Makefile.mk: add lint and lint-clean rules
MISC: Makefile.mk: add .LINT_CCFLAGS
MISC: Makefile.mk: exclude external headers from clang-tidy
MISC: Makefile.mk: clang-tidy: parallelize and generate one log per source file
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # fd3f68d5c05
MISC: Makefile.mk, run-cppcheck.sh: remove old cppcheck code
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # fe5508fc5a2
JSONIPC: jsonipc.hh: fix shadowing, missing const and explicit ctors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # 5b84ad6f7b4
ASE: tests/benchmarks.cc: fix variable shadowing
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # 0e65d1485ae
ASE: tests/benchmarks.cc: avoid implicit std::string allocation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # 17191c9d01e
ASE: tests/benchmarks.cc: bench both, utf8len(char*) and utf8len(string&)
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # b62bb14c73c
ASE: tests/benchmarks.cc: avoid '\0' in strlen test strings
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # 7e5ca3f9719
ASE: testing.hh: fix const&
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # 142931f196b
ASE: path.cc: fix signedness
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # ab6cb765005
ASE: memory.hh: minor fix
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # a5e5fb2b187
ASE: formatter.cc: minor fixes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # c15d045fdae
ASE: fix licenses
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-09 Tim Janik # 407e843ac9f
ASE: Makefile.mk: cleanups, rename check-ase-tests
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-07 Tim Janik # 0876ac724bc
MISC: Makefile.mk: add lint-unused rule
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-07 Tim Janik # 12e3a437dc0
MISC: Makefile.mk: add lint-cppcheck rule
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-07 Tim Janik # 8bc3840cd8e
MISC: Makefile.mk: add lint and lint-clean rules
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-06 Tim Janik # bb65f867de8
MISC: Makefile.mk: add .LINT_CCFLAGS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-05 Tim Janik # 411675f72e7
MISC: Makefile.mk: exclude external headers from clang-tidy
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-05 Tim Janik # 8d04733e602
MISC: Makefile.mk: clang-tidy: parallelize and generate one log per source file
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # a4bcb673743
Merge branch 'error-enum' plus cleanups
* error-enum:
ASE: api.hh, server.cc: add ase_error_*() helpers and Error enum
Makefile.mk, config-uname.mk: use MODE=devel for debugging and optimizations
UI: b/icon.vue: add unicode link
ASE: utils: add ase_gettext() dummy to implement _()
ASE: internal.hh: provide CLAMP()
ASE: cxxaux.hh: remove outdated ASE_DECLARE_VLA()
ASE: cxxaux.hh: always use namespaced std::map and std::vector
ASE: loop: merge prepare-phase timeout_usecs into LoopState and fix vectors
ASE: memory.hh: use std::vector
ASE: strings: use std::vector
ASE: testing.hh: use std::vector
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-17 Tim Janik # d3b0c8e57dc
ASE: api.hh, server.cc: add ase_error_*() helpers and Error enum
Signed-off-by: Tim Janik <timj@gnu.org>
2021-03-10 Tim Janik # 7ad57bba6de
Makefile.mk, config-uname.mk: use MODE=devel for debugging and optimizations
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-23 Tim Janik # 963ab190643
UI: b/icon.vue: add unicode link
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-17 Tim Janik # f773f1edf45
ASE: utils: add ase_gettext() dummy to implement _()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-18 Tim Janik # a85361805ef
ASE: internal.hh: provide CLAMP()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-19 Tim Janik # bf76472afb4
ASE: cxxaux.hh: remove outdated ASE_DECLARE_VLA()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-19 Tim Janik # dee590d6f31
ASE: cxxaux.hh: always use namespaced std::map and std::vector
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-18 Tim Janik # 04ca6c19454
ASE: loop: merge prepare-phase timeout_usecs into LoopState and fix vectors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-19 Tim Janik # 67e0113b99b
ASE: memory.hh: use std::vector
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-19 Tim Janik # 5da02f44a09
ASE: strings: use std::vector
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-19 Tim Janik # 8419440e2da
ASE: testing.hh: use std::vector
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-16 Tim Janik # f6e550a6f31
Merge branch 'engine-thread'
* engine-thread:
ASE: utils: move JobQueue here
ASE: main.cc: start AudioEngine thread and run tests from main loop
ASE: engine: add thread handling for AudioEngine
MISC: package.json.in: exit nodemon if its subprocess make fails
MISC: package.json.in: exiting AnklangSynthEngine during 'serve' is an error
UI: Makefile.mk: adjust comment
ASE: server.cc: quit the main loop on Server.shutdown()
ASE: cxxaux.hh: add VoidF type alias
ASE: platform.hh: add AsyncBlockingQueue - pop() blocks until pairing push()
ASE: Makefile.mk: integrate test functions
ASE: tests/Makefile.mk: list test sources and objects
ASE: tests/benchmarks.cc: add UTF-8 and FastMemory benchmarks
ASE: internal.hh: add TEST_BENCHMARK()
ASE: memory: add an allocator for fast huge pages and CString
ASE: internal.hh: rename TEST_INTEGRITY()
ASE: server: make Server singelton persistent
ASE: cxxaux.hh: add Persistent<> to fix static initialization order fiasco
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-12 Tim Janik # 1a5e608c819
ASE: utils: move JobQueue here
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-16 Tim Janik # 9c8f1429f9c
ASE: main.cc: start AudioEngine thread and run tests from main loop
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-16 Tim Janik # a1f086ab90d
ASE: engine: add thread handling for AudioEngine
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-16 Tim Janik # ec9d449423a
MISC: package.json.in: exit nodemon if its subprocess make fails
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-16 Tim Janik # 8b7b893f213
MISC: package.json.in: exiting AnklangSynthEngine during 'serve' is an error
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-16 Tim Janik # 30c85d327ea
UI: Makefile.mk: adjust comment
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # 36dfd80f434
ASE: server.cc: quit the main loop on Server.shutdown()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # 431ff198181
ASE: cxxaux.hh: add VoidF type alias
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # ef300eef440
ASE: platform.hh: add AsyncBlockingQueue - pop() blocks until pairing push()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # 75b6e5ada98
ASE: Makefile.mk: integrate test functions
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # ed7b60f2084
ASE: tests/Makefile.mk: list test sources and objects
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # 0ff154e6899
ASE: tests/benchmarks.cc: add UTF-8 and FastMemory benchmarks
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # cea5aa74ae2
ASE: internal.hh: add TEST_BENCHMARK()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # 05fd2039c5f
ASE: memory: add an allocator for fast huge pages and CString
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # 38266db402d
ASE: internal.hh: rename TEST_INTEGRITY()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # ae0aac8b086
ASE: server: make Server singelton persistent
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-15 Tim Janik # 08d2fde1766
ASE: cxxaux.hh: add Persistent<> to fix static initialization order fiasco
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-14 Tim Janik # 181f93e308b
Merge branch 'readme+version'
* readme+version:
README.md: add README with intro, badges, roadmap, license and links
Makefile.mk, misc/version.sh: provide version_* variables up front
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-14 Tim Janik # e653f58d7ed
README.md: add README with intro, badges, roadmap, license and links
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-14 Tim Janik # 1b064228ca8
Makefile.mk, misc/version.sh: provide version_* variables up front
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-14 Tim Janik # 4d171aa832b
Merge branch 'license'
* license:
MISC: LGPL-2.1.txt: add LGPL-2.1 license
MISC: MPL-2.0.txt: add MPL-2 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-14 Tim Janik # be79646cd37
MISC: LGPL-2.1.txt: add LGPL-2.1 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-14 Tim Janik # dc1869aa741
MISC: MPL-2.0.txt: add MPL-2 license
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-12 Tim Janik # 73117e8861f
Merge branch 'doc'
* doc:
DOC: GNUmakefile: allow subdir make
UI: Makefile.mk: build ui/vue-docs.md for the manual
DOC: Makefile.mk: generate anklang-manual.html
DOC: pandoc-pdf.tex: allow PDF generation
DOC: filt-docs2.py: all Pandoc filter to increase heading level
DOC: ch-appendix.md: add interpolation background and notes on modifier keys
DOC: ch-development.md: describe important development aspects
DOC: ch-intro.md: introduce Anklang manual
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-22 Tim Janik # dff76d119db
DOC: GNUmakefile: allow subdir make
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 0a9743a4462
UI: Makefile.mk: build ui/vue-docs.md for the manual
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-22 Tim Janik # 9bf111182e3
DOC: Makefile.mk: generate anklang-manual.html
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 0dc9a6b42a9
DOC: pandoc-pdf.tex: allow PDF generation
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 5d5390d9f5b
DOC: filt-docs2.py: all Pandoc filter to increase heading level
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 223978f7a20
DOC: ch-appendix.md: add interpolation background and notes on modifier keys
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 550efddba15
DOC: ch-development.md: describe important development aspects
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # b6e1c0214bd
DOC: ch-intro.md: introduce Anklang manual
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 973ea7b5b2c
Merge branch 'doc-style'
* doc-style:
DOC: style/Makefile.mk: build faketex.css, fonts and MathJax
DOC: style/mathjax-config.js: configure MathJax touse SVG and fit faketex.scss
DOC: style/faketex.scss, style/features.scss: mimic TeX looks with CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # bce7ad92ac5
DOC: style/Makefile.mk: build faketex.css, fonts and MathJax
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 8b1dcee44c4
DOC: style/mathjax-config.js: configure MathJax touse SVG and fit faketex.scss
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 44e9ee78239
DOC: style/faketex.scss, style/features.scss: mimic TeX looks with CSS
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 0e8010c6c2d
Merge branch 'ui'
* ui:
UI: Makefile.mk: generate ui/favicon.ico
MISC: package.json.in: add icon-gen
UI: assets/favicon.svg: add favicon for Anklang
UI: startup.js: add UI startup logic
UI: util.js: add UI utilities
UI: .eslintrc.js: add eslint config for Vue3
UI: sfc-compile.js: split single file components and process styles with scss
UI: theme.scss, styles.scss: provide main CSS theme
UI: index.html: provide main UI entry
UI: assets/eknob.svg: add SVG for knob.vue
UI: cssaux.scss: add CSS utilities
UI: chromatic-sass2.js: add chroma-js to dart-sass binding
UI: assets/spinners.svg: add image for spin button styling
UI: Makefile.mk: build HTML UI
UI: b/: add building blocks for the UI
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 1483fe20379
UI: Makefile.mk: generate ui/favicon.ico
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # eb965aefa1f
MISC: package.json.in: add icon-gen
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # f1b6b6a66bc
UI: assets/favicon.svg: add favicon for Anklang
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-09 Tim Janik # 2a1a98a1bf8
UI: startup.js: add UI startup logic
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-09 Tim Janik # 30e2c3a8cab
UI: util.js: add UI utilities
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-14 Tim Janik # a4d9d90b190
UI: .eslintrc.js: add eslint config for Vue3
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-09 Tim Janik # 8dcfd7612b3
UI: sfc-compile.js: split single file components and process styles with scss
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-09 Tim Janik # 288387e1ca5
UI: theme.scss, styles.scss: provide main CSS theme
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-09 Tim Janik # 4e2db308b11
UI: index.html: provide main UI entry
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-09 Tim Janik # e8803ee2d8b
UI: assets/eknob.svg: add SVG for knob.vue
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-09 Tim Janik # 6c4b88fd448
UI: cssaux.scss: add CSS utilities
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-09 Tim Janik # 822b206c5d8
UI: chromatic-sass2.js: add chroma-js to dart-sass binding
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-14 Tim Janik # 01aab092378
UI: assets/spinners.svg: add image for spin button styling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # f2ec2cbb942
UI: Makefile.mk: build HTML UI
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-09 Tim Janik # a1af68ca066
UI: b/: add building blocks for the UI
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 532b2e2fab5
Merge branch 'electron'
* electron:
ELECTRON: main.js: create Anklang UI window and start AnklangSynthEngine
ELECTRON: preload.js: provide minimal IPC for sandboxed electron apps
ELECTRON: Makefile.mk: build electron/anklang
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # a41a3628845
ELECTRON: main.js: create Anklang UI window and start AnklangSynthEngine
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 33e14417fac
ELECTRON: preload.js: provide minimal IPC for sandboxed electron apps
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 98fa2d5caa4
ELECTRON: Makefile.mk: build electron/anklang
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 10686f14d72
Merge branch 'package-json'
* package-json:
Makefile.mk: add PACKAGE_CONFIG to package.json and install npm packages
MISC: package.json.in: list electron, vue, and other packages for a html ui
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # b38097a4e85
Makefile.mk: add PACKAGE_CONFIG to package.json and install npm packages
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # d0292c266ab
MISC: package.json.in: list electron, vue, and other packages for a html ui
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # deffc84ecdb
Merge branch 'anklang-icons'
* anklang-icons:
IMAGES: anklangicons.sh: script to package icons and cursors
IMAGES: icons/: add on, off, folder and menu-more drawings
IMAGES: cursors/: add Eraser and Pen drawings
IMAGES: README.md: create subdir for images, icons, cursors
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-23 Tim Janik # 8d44d8a4c3c
IMAGES: anklangicons.sh: script to package icons and cursors
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-23 Tim Janik # ef249d77848
IMAGES: icons/: add on, off, folder and menu-more drawings
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-23 Tim Janik # aaeeb579e2c
IMAGES: cursors/: add Eraser and Pen drawings
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-23 Tim Janik # 847effa0678
IMAGES: README.md: create subdir for images, icons, cursors
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # b1538642e64
Merge branch 'ase'
* ase:
ASE: GNUmakefile: allow 'make' from subdir
ASE: Makefile.mk: build AnklangSynthEngine
ASE: add Anklang sound engine sources
Squashed ChangeLog of recent developments:
* main.cc: support embed-<fd> with authenticated websocket
* jsonapi: support websocket subprotocol as authentication
* websocket: support subprotocols and an unlisten callback
* platform: add user_id(), user_name(), user_real_name()
* server: store Preferences in anklangrc.json
* serialize: implement SKIP_ZERO, SKIP_EMPTYSTRING purging from Value
* server: emit change notification from Preferences properties
* properties: Bag: allow common notification hook
* api.hh: add Emittable::js_trigger() to send Events to Javascript
* jsonapi: add/kill and notify JsTrigger invocations
* jsonapi: add JsTrigger bindings
* value.hh: add JsTrigger skeleton
* utils: add Aux::contains(), Aux::erase_first(), Aux::erase_all()
* properties: notify via Emittable.emit_event()
* object: implement on_event() and emit_event() for Emittable
* api.hh: introduce Emittable
* value: add constructors, repr() and Event
* cxxaux.cc: raise SIGQUIT on fatal-warnings
* main.cc: check for ASE_FEATURE=fatal-warnings
* serialize: warn if transient object wrappers are used during serialization
* jsonapi.cc: use Jsonipc::Scope::PURGE_TEMPORARIES for IPC call stacks
* value: add INSTANCE, where InstanceP is a SharedBaseP
* api.hh: derive Property, Object from SharedBase
* cxxaux: add VirtualBase
* serialize: handle Value, ValueS, ValueR serialization
* value: allow ==, != and initializer list for Value, ValueS, ValueR
* serialize: add json_stringify() json_parse() and tests
* serialize.cc: save/load JSON root value directly
* serialize: serialize std::vector<T>
* serialize: add DataConverter<Serializable> and simplify
* serialize: serialize Jsonipc-bound types to/from Json
* jsonapi.hh: allow ValueP serialization
* value.cc: always construct a missing Value in place of nullptr
* api.hh: allow session data storage on the server
* value: turn ValueS and ValueR into pointer arrays
* properties.cc: add Value records and sequences
* internal.hh: provide __DEV__
* main.cc: debug websocket traffic with ASE_DEBUG=jsipc
* server: provide Preferences Properties
* properties: add Properties interfaces and implementations
* gadget: Base class for objects with properties
* jsonapi.cc: colorize error replies
* jsonapi.cc: print REQUEST/REPLY
* main: add --jsipc
* project: handle synth project functionality
* add Project, Track and Clip
* server: provide global API entry points
* api.hh: define the external AnklangSynthEngine API
* main: support --js-api
* jsonapi: add Value bindings
* jsonapi: dispatch Jsonipc calls via WebSocket
* jsonapi: add Jsonipc bindings and WebSocket integration
* value: add Value records, sequences and repr()
* value: add Value for handling generic value in the API
* internal.hh: add JSONIPC_INHERIT() helper
* platform: add helpers for runpath, i18n, executable_path and CPU
* platform: add helpers for ANSI colors, threads, timestamps, semaphores
* main: close all sockets on SIGUSR2
* loop: add event loop and handling for FD polling and unix signals
* mime-types.hh: add mime types for WebSocket Content-Type header fields
* websocket: add websocket handling and simple http server
* main: the main AnklangSynthEngine logic, config and main loop
* blob: add simple wrapper for file I/O
* utils: add utilities for stdout/stderr, debugging, jump tables
* strings: utilities for string handling and conversions
* path: utilities for file path and search path handling
* internal.hh: add shorthand macros
* cxxaux: provide basic C++17 types and helpers
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-30 Tim Janik # c7235acc27f
ASE: GNUmakefile: allow 'make' from subdir
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-17 Tim Janik # 916e0b538db
ASE: Makefile.mk: build AnklangSynthEngine
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-10 Tim Janik # 5a0a75db935
ASE: add Anklang sound engine sources
Squashed ChangeLog of recent developments:
* main.cc: support embed-<fd> with authenticated websocket
* jsonapi: support websocket subprotocol as authentication
* websocket: support subprotocols and an unlisten callback
* platform: add user_id(), user_name(), user_real_name()
* server: store Preferences in anklangrc.json
* serialize: implement SKIP_ZERO, SKIP_EMPTYSTRING purging from Value
* server: emit change notification from Preferences properties
* properties: Bag: allow common notification hook
* api.hh: add Emittable::js_trigger() to send Events to Javascript
* jsonapi: add/kill and notify JsTrigger invocations
* jsonapi: add JsTrigger bindings
* value.hh: add JsTrigger skeleton
* utils: add Aux::contains(), Aux::erase_first(), Aux::erase_all()
* properties: notify via Emittable.emit_event()
* object: implement on_event() and emit_event() for Emittable
* api.hh: introduce Emittable
* value: add constructors, repr() and Event
* cxxaux.cc: raise SIGQUIT on fatal-warnings
* main.cc: check for ASE_FEATURE=fatal-warnings
* serialize: warn if transient object wrappers are used during serialization
* jsonapi.cc: use Jsonipc::Scope::PURGE_TEMPORARIES for IPC call stacks
* value: add INSTANCE, where InstanceP is a SharedBaseP
* api.hh: derive Property, Object from SharedBase
* cxxaux: add VirtualBase
* serialize: handle Value, ValueS, ValueR serialization
* value: allow ==, != and initializer list for Value, ValueS, ValueR
* serialize: add json_stringify() json_parse() and tests
* serialize.cc: save/load JSON root value directly
* serialize: serialize std::vector<T>
* serialize: add DataConverter<Serializable> and simplify
* serialize: serialize Jsonipc-bound types to/from Json
* jsonapi.hh: allow ValueP serialization
* value.cc: always construct a missing Value in place of nullptr
* api.hh: allow session data storage on the server
* value: turn ValueS and ValueR into pointer arrays
* properties.cc: add Value records and sequences
* internal.hh: provide __DEV__
* main.cc: debug websocket traffic with ASE_DEBUG=jsipc
* server: provide Preferences Properties
* properties: add Properties interfaces and implementations
* gadget: Base class for objects with properties
* jsonapi.cc: colorize error replies
* jsonapi.cc: print REQUEST/REPLY
* main: add --jsipc
* project: handle synth project functionality
* add Project, Track and Clip
* server: provide global API entry points
* api.hh: define the external AnklangSynthEngine API
* main: support --js-api
* jsonapi: add Value bindings
* jsonapi: dispatch Jsonipc calls via WebSocket
* jsonapi: add Jsonipc bindings and WebSocket integration
* value: add Value records, sequences and repr()
* value: add Value for handling generic value in the API
* internal.hh: add JSONIPC_INHERIT() helper
* platform: add helpers for runpath, i18n, executable_path and CPU
* platform: add helpers for ANSI colors, threads, timestamps, semaphores
* main: close all sockets on SIGUSR2
* loop: add event loop and handling for FD polling and unix signals
* mime-types.hh: add mime types for WebSocket Content-Type header fields
* websocket: add websocket handling and simple http server
* main: the main AnklangSynthEngine logic, config and main loop
* blob: add simple wrapper for file I/O
* utils: add utilities for stdout/stderr, debugging, jump tables
* strings: utilities for string handling and conversions
* path: utilities for file path and search path handling
* internal.hh: add shorthand macros
* cxxaux: provide basic C++17 types and helpers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 726001d942a
Merge branch 'misc'
* misc:
MISC: Makefile.mk, clang-tidy.ignore: generate clang-tidy and cppcheck reports
MISC: subdirs.mk: add helper to build with make from subdirs
MISC: run-cppcheck.sh: add wrapper script to run 'cppcheck'
MISC: blame-lines: use git to blame file lines on git author
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # a94e581cf65
MISC: Makefile.mk, clang-tidy.ignore: generate clang-tidy and cppcheck reports
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # deef65de0dc
MISC: subdirs.mk: add helper to build with make from subdirs
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 9c3f357495d
MISC: run-cppcheck.sh: add wrapper script to run 'cppcheck'
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-11 Tim Janik # 612d3ffe3e8
MISC: blame-lines: use git to blame file lines on git author
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-10 Tim Janik # 9240c04bf21
Merge branch 'jsonipc'
* jsonipc:
JSONIPC: Makefile: make test targets .INTERMEDIATE
JSONIPC: jsonipc.hh: allow fallback for Serializable<T>::serialize_from_json()
JSONIPC: jsonipc.js: simplify Jsonipc.receive() interface
Get rid of the old observe/unobserve implementation.
JSONIPC: jsonipc.hh: add jsonobject_to_string() convenience routine
JSONIPC: Makefile: use -D__JSONIPC_NULL_REFERENCE_THROWS__ for testing
JSONIPC: jsonipc.hh: use const dummy if ! __JSONIPC_NULL_REFERENCE_THROWS__
JSONIPC: cxxjip.py: ignore incomplete classes
JSONIPC: jsonipc.hh: sort classes on printout by inheritance depth
JSONIPC: cxxjip.py: exclude inheritance from unknown bases
JSONIPC: jsonipc.hh: keep locals in InstanceMap unless Scope::PURGE_TEMPORARIES
JSONIPC: jsonipc.hh: add jsonvalue_to_string()
JSONIPC: jsonipc.hh: rename wrapper_from_json()
JSONIPC: jsonipc.hh: add virtual wrapper_to_json()
JSONIPC: jsonipc.hh: simplify InstanceMap.lookup_wrapper()
JSONIPC: jsonipc.hh: simplify InstanceMap::lookup_wrapper() callers
JSONIPC: jsonipc.hh: remove unused get_objectid()
JSONIPC: jsonipc.hh: remove indirection
JSONIPC: jsonipc.hh: fix static method call
JSONIPC: testjsonipc.cc: test shared_from_this() uses
JSONIPC: jsonipc.hh: use Class.shared_from_this() instead of eternal()
JSONIPC: Makefile: compile as C++17
JSONIPC: jsonipc.hh: small simplification
JSONIPC: jsonipc.hh: fix Serializable<> shared_ptr
JSONIPC: testjsonipc.cc: test Serializable<> to shared_ptr
JSONIPC: jsonipc.hh: remove leaky copy ctor handling
JSONIPC: jsonipc.hh: remove "__typename__" extension on Serializable<>
JSONIPC: jsonipc.hh: allow shared_ptr to Serializable
JSONIPC: jsonipc.js: `null` objects cannot be indexed
JSONIPC: cxxjip.py: filter out classes from includes
JSONIPC: cxxjip.py: filter out classes with underscore
JSONIPC: cxxjip.py: abort if castxml failed
JSONIPC: cxxjip.py: parse c++17 code
JSONIPC: jsonipc.js: allow onclose handler on open()
JSONIPC: guard access to JS 'Object.' since C++ might introduce 'class Object'
JSONIPC: cxxjip.py: fix class with bases and no methods
JSONIPC: jsonipc.hh: generate ENUMS before other JS bindings
JSONIPC: cxxjip.py: use castxml to generate Jsonipc binding code from C++
JSONIPC: jsonipc.hh: freeze JS objects representing enums
JSONIPC: jsonipc.js: rename file and 'export Jsonipc'
JSONIPC: testjsonipc.cc: fixup Enum initialization
JSONIPC: jsonipc.hh: simplify class printing and ensure inheritance order
JSONIPC: jsonipc.hh: introduce ClassPrinter::Op
JSONIPC: jsonipc.hh: ceate ClassPrinter with C++ type
JSONIPC: jsonipc.hh: shared_ptr are needed to auto-detect up-cast objects
JSONIPC: Makefile: fix include path for rapidjson
JSONIPC: jsonipc.hh: avoid rethrowing exceptions
GDB does not follow rethrown exceptions, so avoid it where possible.
JSONIPC: jsonipc.hh: add IpcDispatcher.set_exception_handler()
JSONIPC: jsonipc.hh: just stringify enums by substituting ':+' with '.'
This effectively yields the Javascript identifier for an enum value as
enum string *and* is predictable from typename and value name in other
languages.
JSONIPC: jsonipc.hh: always register JS classes with canonified name
Treat JS class name argument to Class<> constructor as JS class name alias.
JSONIPC: require an active Scope and support InstanceMap per-Scope
JSONIPC: Makefile: add 'make check'
JSONIPC: jsonipc.hh: always use `static inline` except where ODR applies
Generally, use `static inline` to avoid useless linker emission of unused free
standing functions. Except for functions that define `static` variables, these
need to be emitted for global linkage (via `extern inline` aka `inline`), so
the linker can apply the One-Definition-Rule to produce a single global symbol.
JSONIPC: jsonipc.hh: avoid linker emission of static class variables
JSONIPC: jsonipc.hh: add __typename__ to Serializable
JSONIPC: jsonipc.hh: fix g++-8 missing-prototype warning by inlining
JSONIPC: jsonipc.hh: freeze JS classes after initialization
The current implementation makes no efforts to match or unify Jsonipc class
instances, so several JS object references often refer to one remote instance.
As such, adding/mutating data on Jsonipc class instances is unlikely useful
and can easily appear to be lost.
To avoid accidental attempts, the classes are now frozen after construction.
JSONIPC: head.js: allow 'arraybuffer' message handling via onbinary
JSONIPC: jsonipc.hh: use getter/setter method to avoid 'async get' properties
JSONIPC: jsonipc.hh: add restrictions to IsWrappableClass<> to satisfy g++-7.4
JSONIPC: head.js: add marshalling code for Javascript
* perform object conversions recursively
* add observe/unobserve to $jsonipc for notifications
* wrap/unwrap call argument objects
* auto-unwrap object ids in $jsonipc.send()
JSONIPC: Makefile: build testjsonipc
JSONIPC: testjsonipc: add simple jsonipc test program
JSONIPC: jsonipc.hh: add binding to use C++ struct APIs via JSON messages
Introduce Jsonipc, a header-only binding to use C++ struct APIs via JSON messages
* generate data JS classes for Serializable
* deprecate Class.copy() and Class.copyable()
* introduce Serializable<>
* introduce TypeInfo base class
* use RTTI to wrap objects with their most derived Class<>
* allow passing an allocator to CallbackInfo
* add Scope to keep track of temporary objects
* specialize Convert<> for std::vector derived types
* register and use enum value strings
* rearrange the ClassPrinter to deal with enum class exports.
* move 'this' into JSON params
* rename n_args() and ntharg() of CallbackInfo
* find baseclass methods and upcast recursively
* add .set(name,getter,setter) for properties
* fix inheritance registration
* pass RTTI classnames to Javascript
* use '{"$id":<int>}' as object format
* pass JsonAllocator& into all to_json() calls
* throw method name on duplicate registration
* implement enums via std::underlying_type<>
* hide '$id' from enumeration and make it read-only
* add setter support via member object pointer
* add Class.copy() and Class.copyable() for copy ctors
* add Class.eternal() for static class instances
* implement object wrapping for shared_ptr
* add getter support via member object pointer
* generate Javascript module ouput
* add IpcDispatcher.add_method()
* simplify templates with REQUIRES<>
* add header file for IPC via JSON messages
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-07 Tim Janik # 03eb963eef7
JSONIPC: Makefile: make test targets .INTERMEDIATE
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-04 Tim Janik # 4dfa9fde5e3
JSONIPC: jsonipc.hh: allow fallback for Serializable<T>::serialize_from_json()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-01 Tim Janik # ea68aa2ec2d
JSONIPC: jsonipc.js: simplify Jsonipc.receive() interface
Get rid of the old observe/unobserve implementation.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-01 Tim Janik # f6b3e5eb533
JSONIPC: jsonipc.hh: add jsonobject_to_string() convenience routine
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-30 Tim Janik # e3412d5f1aa
JSONIPC: Makefile: use -D__JSONIPC_NULL_REFERENCE_THROWS__ for testing
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-30 Tim Janik # a6fa3594ed0
JSONIPC: jsonipc.hh: use const dummy if ! __JSONIPC_NULL_REFERENCE_THROWS__
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-30 Tim Janik # a4e7214b8b5
JSONIPC: cxxjip.py: ignore incomplete classes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-26 Tim Janik # 802a13ab935
JSONIPC: jsonipc.hh: sort classes on printout by inheritance depth
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-26 Tim Janik # a98a9048de4
JSONIPC: cxxjip.py: exclude inheritance from unknown bases
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-25 Tim Janik # b2d0f690440
JSONIPC: jsonipc.hh: keep locals in InstanceMap unless Scope::PURGE_TEMPORARIES
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-25 Tim Janik # 1e4967283bc
JSONIPC: jsonipc.hh: add jsonvalue_to_string()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # d69b7cd9aa0
JSONIPC: jsonipc.hh: rename wrapper_from_json()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # 9b29bdcd12e
JSONIPC: jsonipc.hh: add virtual wrapper_to_json()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # 660c861657b
JSONIPC: jsonipc.hh: simplify InstanceMap.lookup_wrapper()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # cb72117226e
JSONIPC: jsonipc.hh: simplify InstanceMap::lookup_wrapper() callers
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # ef8bc284e9e
JSONIPC: jsonipc.hh: remove unused get_objectid()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # 6e00b7e1344
JSONIPC: jsonipc.hh: remove indirection
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # da88cd08399
JSONIPC: jsonipc.hh: fix static method call
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # 8bee46ec979
JSONIPC: testjsonipc.cc: test shared_from_this() uses
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # e8aa255ee67
JSONIPC: jsonipc.hh: use Class.shared_from_this() instead of eternal()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # 90c83898a23
JSONIPC: Makefile: compile as C++17
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # 84ab503fb93
JSONIPC: jsonipc.hh: small simplification
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # 65e4063eca6
JSONIPC: jsonipc.hh: fix Serializable<> shared_ptr
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # f3c4aeb03ab
JSONIPC: testjsonipc.cc: test Serializable<> to shared_ptr
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # be50981f82f
JSONIPC: jsonipc.hh: remove leaky copy ctor handling
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-24 Tim Janik # ceb81c86181
JSONIPC: jsonipc.hh: remove "__typename__" extension on Serializable<>
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-18 Tim Janik # 13d220e1bf4
JSONIPC: jsonipc.hh: allow shared_ptr to Serializable
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-16 Tim Janik # 956f4dbdcc1
JSONIPC: jsonipc.js: `null` objects cannot be indexed
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-16 Tim Janik # 20d5437bb08
JSONIPC: cxxjip.py: filter out classes from includes
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-16 Tim Janik # d42c39fc019
JSONIPC: cxxjip.py: filter out classes with underscore
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-16 Tim Janik # 60e52e7f758
JSONIPC: cxxjip.py: abort if castxml failed
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-16 Tim Janik # e726a10d556
JSONIPC: cxxjip.py: parse c++17 code
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-15 Tim Janik # b6a31571fa3
JSONIPC: jsonipc.js: allow onclose handler on open()
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-04 Tim Janik # c11e28ab298
JSONIPC: guard access to JS 'Object.' since C++ might introduce 'class Object'
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-04 Tim Janik # 011e2c97811
JSONIPC: cxxjip.py: fix class with bases and no methods
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-04 Tim Janik # 23bec75c93c
JSONIPC: jsonipc.hh: generate ENUMS before other JS bindings
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-04 Tim Janik # 5ddcfd3f2e1
JSONIPC: cxxjip.py: use castxml to generate Jsonipc binding code from C++
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-04 Tim Janik # d83c63767a7
JSONIPC: jsonipc.hh: freeze JS objects representing enums
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-04 Tim Janik # ac83b4d0deb
JSONIPC: jsonipc.js: rename file and 'export Jsonipc'
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-03 Tim Janik # 5527fc329c6
JSONIPC: testjsonipc.cc: fixup Enum initialization
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-03 Tim Janik # d8c4ec009e8
JSONIPC: jsonipc.hh: simplify class printing and ensure inheritance order
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-02 Tim Janik # 528251c47df
JSONIPC: jsonipc.hh: introduce ClassPrinter::Op
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-02 Tim Janik # b9c8f5fd3ac
JSONIPC: jsonipc.hh: ceate ClassPrinter with C++ type
Signed-off-by: Tim Janik <timj@gnu.org>
2021-01-02 Tim Janik # ba578e1e254
JSONIPC: jsonipc.hh: shared_ptr are needed to auto-detect up-cast objects
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-21 Tim Janik # f4f1794c508
JSONIPC: Makefile: fix include path for rapidjson
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-14 Tim Janik # cc767f28b89
JSONIPC: jsonipc.hh: avoid rethrowing exceptions
GDB does not follow rethrown exceptions, so avoid it where possible.
Signed-off-by: Tim Janik <timj@gnu.org>
2020-07-06 Tim Janik # cb38f12c30b
JSONIPC: jsonipc.hh: add IpcDispatcher.set_exception_handler()
Signed-off-by: Tim Janik <timj@gnu.org>
2020-06-23 Tim Janik # 2bb9e5d5074
JSONIPC: jsonipc.hh: just stringify enums by substituting ':+' with '.'
This effectively yields the Javascript identifier for an enum value as
enum string *and* is predictable from typename and value name in other
languages.
Signed-off-by: Tim Janik <timj@gnu.org>
2020-05-29 Tim Janik # 663fb59c6d1
JSONIPC: jsonipc.hh: always register JS classes with canonified name
Treat JS class name argument to Class<> constructor as JS class name alias.
Signed-off-by: Tim Janik <timj@gnu.org>
2019-11-12 Tim Janik # fb85f5577f5
JSONIPC: require an active Scope and support InstanceMap per-Scope
Signed-off-by: Tim Janik <timj@gnu.org>
2019-11-12 Tim Janik # 80c3babed10
JSONIPC: Makefile: add 'make check'
Signed-off-by: Tim Janik <timj@gnu.org>
2019-10-16 Tim Janik # 59b0ea7ebca
JSONIPC: jsonipc.hh: always use `static inline` except where ODR applies
Generally, use `static inline` to avoid useless linker emission of unused free
standing functions. Except for functions that define `static` variables, these
need to be emitted for global linkage (via `extern inline` aka `inline`), so
the linker can apply the One-Definition-Rule to produce a single global symbol.
Signed-off-by: Tim Janik <timj@gnu.org>
2019-10-16 Tim Janik # bd7700c9837
JSONIPC: jsonipc.hh: avoid linker emission of static class variables
Signed-off-by: Tim Janik <timj@gnu.org>
2019-09-13 Tim Janik # 111b452d7b9
JSONIPC: jsonipc.hh: add __typename__ to Serializable
Signed-off-by: Tim Janik <timj@gnu.org>
2019-09-13 Tim Janik # 4eb01608fe2
JSONIPC: jsonipc.hh: fix g++-8 missing-prototype warning by inlining
Signed-off-by: Tim Janik <timj@gnu.org>
2019-08-31 Tim Janik # 3fb1a3b7356
JSONIPC: jsonipc.hh: freeze JS classes after initialization
The current implementation makes no efforts to match or unify Jsonipc class
instances, so several JS object references often refer to one remote instance.
As such, adding/mutating data on Jsonipc class instances is unlikely useful
and can easily appear to be lost.
To avoid accidental attempts, the classes are now frozen after construction.
Signed-off-by: Tim Janik <timj@gnu.org>
2019-08-18 Tim Janik # 17972aa32de
JSONIPC: head.js: allow 'arraybuffer' message handling via onbinary
Signed-off-by: Tim Janik <timj@gnu.org>
2019-08-11 Tim Janik # 4d8efccff82
JSONIPC: jsonipc.hh: use getter/setter method to avoid 'async get' properties
Signed-off-by: Tim Janik <timj@gnu.org>
2019-08-03 Tim Janik # 93ce0afdce8
JSONIPC: jsonipc.hh: add restrictions to IsWrappableClass<> to satisfy g++-7.4
Signed-off-by: Tim Janik <timj@gnu.org>
2019-07-31 Tim Janik # 56be3d0cda2
JSONIPC: head.js: add marshalling code for Javascript
* perform object conversions recursively
* add observe/unobserve to $jsonipc for notifications
* wrap/unwrap call argument objects
* auto-unwrap object ids in $jsonipc.send()
Signed-off-by: Tim Janik <timj@gnu.org>
2019-07-26 Tim Janik # 0b12f774523
JSONIPC: Makefile: build testjsonipc
Signed-off-by: Tim Janik <timj@gnu.org>
2019-07-26 Tim Janik # 35c84ecc386
JSONIPC: testjsonipc: add simple jsonipc test program
Signed-off-by: Tim Janik <timj@gnu.org>
2019-07-26 Tim Janik # 58d4a7953e8
JSONIPC: jsonipc.hh: add binding to use C++ struct APIs via JSON messages
Introduce Jsonipc, a header-only binding to use C++ struct APIs via JSON messages
* generate data JS classes for Serializable
* deprecate Class.copy() and Class.copyable()
* introduce Serializable<>
* introduce TypeInfo base class
* use RTTI to wrap objects with their most derived Class<>
* allow passing an allocator to CallbackInfo
* add Scope to keep track of temporary objects
* specialize Convert<> for std::vector derived types
* register and use enum value strings
* rearrange the ClassPrinter to deal with enum class exports.
* move 'this' into JSON params
* rename n_args() and ntharg() of CallbackInfo
* find baseclass methods and upcast recursively
* add .set(name,getter,setter) for properties
* fix inheritance registration
* pass RTTI classnames to Javascript
* use '{"$id":<int>}' as object format
* pass JsonAllocator& into all to_json() calls
* throw method name on duplicate registration
* implement enums via std::underlying_type<>
* hide '$id' from enumeration and make it read-only
* add setter support via member object pointer
* add Class.copy() and Class.copyable() for copy ctors
* add Class.eternal() for static class instances
* implement object wrapping for shared_ptr
* add getter support via member object pointer
* generate Javascript module ouput
* add IpcDispatcher.add_method()
* simplify templates with REQUIRES<>
* add header file for IPC via JSON messages
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-10 Tim Janik # 797cf8a05ea
Merge branch 'externals'
* externals:
MISC: config-external.mk: provide websocketpp-0.8.2.tar.gz
Download and provide websocketpp-0.8.2.tar.gz from
https://github.com/zaphoyd/websocketpp/archive/0.8.2.tar.gz
MISC: config-external.mk: provide rapidjson from git as of 13.10.2020
Download and provide rapidjson-v1.1.0.tar.gz plus recent updates from
https://github.com/Tencent/rapidjson/.
These Tencent/rapidjson.git updates clean up the code for different compilers
in various places, fix several parsing bugs, add some minor performance
improvements and API. Unfortunately there is no upstream release yet.
Signed-off-by: Tim Janik <timj@gnu.org>
2020-12-26 Tim Janik # 3e6a652517b
MISC: config-external.mk: provide websocketpp-0.8.2.tar.gz
Download and provide websocketpp-0.8.2.tar.gz from
https://github.com/zaphoyd/websocketpp/archive/0.8.2.tar.gz
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-21 Tim Janik # 67894f17797
MISC: config-external.mk: provide rapidjson from git as of 13.10.2020
Download and provide rapidjson-v1.1.0.tar.gz plus recent updates from
https://github.com/Tencent/rapidjson/.
These Tencent/rapidjson.git updates clean up the code for different compilers
in various places, fix several parsing bugs, add some minor performance
improvements and API. Unfortunately there is no upstream release yet.
Signed-off-by: Tim Janik <timj@gnu.org>
2021-02-10 Tim Janik # 298dd1a5af2
Merge branch 'build-setup'
* build-setup:
NEWS.md: start NEWS file
.gitignore: add ignores
Makefile.mk: add toplevel build rules
GNUmakefile: make Makefile.mk the toplevel makefile
MISC: config-utils.mk: add Makefile utilities for rule writing and printouts
MISC: config-uname.mk: determine system requirements and CXX build setup
MISC: config-checks.mk: check for third-party dependencies
version.sh: extract version from git tag, archive ref or NEWS file
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-16 Tim Janik # cc6ecc202bd
NEWS.md: start NEWS file
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-16 Tim Janik # 6ec2ca2050a
.gitignore: add ignores
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-16 Tim Janik # cf69e1b461d
Makefile.mk: add toplevel build rules
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-16 Tim Janik # 032e3077e51
GNUmakefile: make Makefile.mk the toplevel makefile
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-16 Tim Janik # 9b81e2f1fbc
MISC: config-utils.mk: add Makefile utilities for rule writing and printouts
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-16 Tim Janik # 2cde8ea41e1
MISC: config-uname.mk: determine system requirements and CXX build setup
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-16 Tim Janik # 30730914f67
MISC: config-checks.mk: check for third-party dependencies
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-16 Tim Janik # 2c6389c08a6
version.sh: extract version from git tag, archive ref or NEWS file
Signed-off-by: Tim Janik <timj@gnu.org>
2020-11-16 Tim Janik # 96e7881fac0
Spark