Alexander Capehart
024cadf530
musikr: add id3v1 tag
2025-02-17 08:39:09 -07:00
Alexander Capehart
0cb1b3a309
musikr: introduce this abstraction
...
Gets rid of a lot of the duplicate pin stuff
2025-02-17 08:17:04 -07:00
Alexander Capehart
c8d645c282
musikr: reformat
2025-02-15 16:02:55 -07:00
Alexander Capehart
b45e41bc3b
musikr: cleanup
2025-02-15 16:02:30 -07:00
Alexander Capehart
59f66978ff
musikr: make id3v2 naming consistent
2025-02-15 15:47:33 -07:00
Alexander Capehart
f7d61cd1dc
musikr: add id3v2 tags
2025-02-15 15:37:54 -07:00
Alexander Capehart
0f3bed413d
musikr: improve lifecycles
2025-02-15 13:04:50 -07:00
Alexander Capehart
f5de03dfee
musikr: refined flac pic support
2025-02-15 12:02:32 -07:00
Alexander Capehart
3dfcf0f67a
musikr: initial flac pic support
...
Probably broken
2025-02-14 23:24:22 -07:00
Alexander Capehart
61069bd4fe
musikr: redo bridge api
...
Try to introduce some level of standardization in use.
2025-02-14 22:20:48 -07:00
Alexander Capehart
03d8f70ecd
musikr: get rid of warnings
2025-02-14 21:15:32 -07:00
Alexander Capehart
7906fcf5af
musikr: improve iostream lifecycle mgmt
2025-02-14 21:05:54 -07:00
Alexander Capehart
249915c3be
musikr: fix iostream pinning
2025-02-14 15:14:14 -07:00
Alexander Capehart
74edd1dbdf
musikr: fix rustiostream ownership problem
...
Sadly this requires me to more or less give an &mut off to TagLib to
own while also owning the core type to drop later, but since stream
is only owned to be dropped it's fine.
2025-02-14 14:26:25 -07:00
Alexander Capehart
3ecdbf289b
musikr: reorganize ffi module
...
Still don't fully like the segregation, but now at least the bridge
unsafety is fully isolated.
2025-02-12 22:45:56 -07:00
Alexander Capehart
86b04eaead
musikr: add flac file
2025-02-12 21:40:48 -07:00
Alexander Capehart
42dfe4edcc
musikr: reformat
2025-02-12 19:15:01 -07:00
Alexander Capehart
f3f349847a
Revert "musikr: use no_std in crate"
...
This reverts commit 7f84349f2e
.
2025-02-12 19:14:25 -07:00
Alexander Capehart
520e52b100
musikr: improve taglib buildscript
2025-02-12 19:11:31 -07:00
Alexander Capehart
854164a523
musikr: eliminate need for libc++_shared
2025-02-12 17:44:50 -07:00
Alexander Capehart
7f84349f2e
musikr: use no_std in crate
...
Doesn't really help since jni uses std excessively.
2025-02-10 13:02:02 -07:00
Alexander Capehart
c115e34aac
musikr: reformat shim
2025-02-10 11:21:49 -07:00
Alexander Capehart
20785300bb
musikr: partially clean up ffi mod
2025-02-10 10:48:49 -07:00
Alexander Capehart
5c4d0ab5f6
musikr: remove taglib build shell script
2025-02-08 21:46:46 -07:00
Alexander Capehart
289582964c
musikr: start putting unsafe stuff into ffi mod
...
Aiming for like 3 layers of abstraction:
Layer 1: Top-level taglib-esque API translated to jni
Layer 2: Slightly extended unsafe wrappers over bindings
Level 3: Raw taglib bindings and shims
2025-02-08 21:42:39 -07:00
Alexander Capehart
3aa39a7065
musikr: basic vorbis support
2025-02-08 19:52:10 -07:00
Alexander Capehart
013f25f46f
musikr: more fine-grained file handling
2025-02-08 17:45:20 -07:00
Alexander Capehart
acee4ddedd
musikr: minimize ffi shims
2025-02-08 17:03:47 -07:00
Alexander Capehart
cf597cb98e
msuikr: split up shims
2025-02-08 16:16:03 -07:00
Alexander Capehart
cd102369a0
musikr: ignore .vscode
2025-02-08 16:15:43 -07:00
Alexander Capehart
16fc14a4da
musikr: add format-specific file api
2025-02-08 15:27:17 -07:00
Alexander Capehart
005898d776
musikr: add audioproperties to metajni interface
2025-02-08 15:08:38 -07:00
Alexander Capehart
2ee9556564
musikr: integrate metadatajni into app
...
Just extracts title rn while I still work on the ffi.
2025-02-08 11:56:28 -07:00
Alexander Capehart
729a3c3273
musikr: basic taglib rust shim
2025-02-08 10:15:36 -07:00
Alexander Capehart
534f06d7e1
musikr: link to library
2025-02-06 14:46:29 -07:00
Alexander Capehart
ed0abb661c
musikr: implement taglib build step for rust module
2025-02-04 17:02:59 -07:00
Alexander Capehart
6216e1d591
musikr: move taglib to new rust module
2025-02-04 16:20:48 -07:00
Alexander Capehart
d6cf484d61
musikr: init rust metadata jni library
2025-02-04 16:15:17 -07:00
Alexander Capehart
df68768842
musikr.metadata: handle case w/no mp4 covers
...
Otherwise could have triggered an exception.
2025-01-31 14:41:44 -07:00
Alexander Capehart
72ffac4209
musikr: reformat
2025-01-31 13:45:18 -07:00
Alexander Capehart
ee7e63d1dc
musikr: stop possible use-after-free in metabuild
2025-01-31 13:41:23 -07:00
Alexander Capehart
f9109b8a9c
musikr.build: enable symbols in taglibjni w/debug
2025-01-31 11:09:35 -07:00
Alexander Capehart
2e4b6681d1
build: bump to v4.0.0-dev5
2025-01-30 12:50:10 -07:00
Alexander Capehart
a0c82ac812
musikr: reformat
2025-01-30 09:38:38 -07:00
Alexander Capehart
c881a1c5b4
build: bump coroutines to 1.10.1
...
Fixes some more coroutine memory leaks.
2025-01-30 09:37:30 -07:00
Alexander Capehart
e78fde44e0
Revert "musikr: use channel-based pipeline"
...
This reverts commit 7c8863bd3a
.
2025-01-30 09:30:38 -07:00
Alexander Capehart
7880c777ba
musikr: fix inputstream memory leak
...
Apparently allocating the bytes on the JVM side of the taglib parser
will wind up leaking memory due to a bugged cache in ByteBuffer.
Instead, allocate the bytes in native, wrap it into a ByteBuffer, and
then pass it upwards into NativeInputStream. This seems to fix the
leak.
2025-01-30 09:29:26 -07:00
Alexander Capehart
7c8863bd3a
musikr: use channel-based pipeline
...
Much more repeated code, but no more memory leaks.
2025-01-29 15:31:48 -07:00
Alexander Capehart
97bd259728
musikr: handle duplicate playlist songs in graph
...
Accidentally flattened these out during graphing.
2025-01-22 12:57:11 -07:00
Alexander Capehart
e3e19fb0ac
playback: avoid huge allocation on printing cmd
2025-01-21 13:18:23 -07:00