Files
audio-library-manager/private/flac2opus-state.rkt
T
2026-06-09 08:41:01 +02:00

31 lines
841 B
Racket

#lang racket/base
(require keystore)
(provide open-flac2opus-state
flac2opus-state-get-file
flac2opus-state-set-file!
flac2opus-state-drop-file!
flac2opus-state-known-relpaths)
(define prefix "flac2opus:file:")
(define (open-flac2opus-state state-file)
(ks-open state-file))
(define (file-state-key relpath)
(string-append prefix relpath))
(define (flac2opus-state-get-file ks relpath [default #f])
(ks-get ks (file-state-key relpath) default))
(define (flac2opus-state-set-file! ks relpath value)
(ks-set! ks (file-state-key relpath) value))
(define (flac2opus-state-drop-file! ks relpath)
(ks-drop! ks (file-state-key relpath)))
(define (flac2opus-state-known-relpaths ks)
(map (lambda (k) (substring k (string-length prefix)))
(ks-keys-glob ks (string-append prefix "*"))))