[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libcdio-devel] Miscellaneous questions, primarily on design
From: |
Samuel May |
Subject: |
[Libcdio-devel] Miscellaneous questions, primarily on design |
Date: |
Fri, 20 Mar 2020 13:48:55 -0700 |
Hello everyone!
I'm working on Haskell bindings to libcdio (I have ~plans~ for wrangling
my weird music library requirements and/or preferences into a generally
usable program suite and just love that language; of course I couldn't
simply half-ass the layers nobody cares about...), and in the process of
writing those I've come up with a few questions:
* Is there any deliberate reasoning behind 2.1.0 not adding a
cdtext_get_language_index(..) with cdtext_select_language_index(..)?
Having the means to jump exactly where you want doesn't mean that you
can get back to where you started with just cdtext_get_language(..) --
what if we just happen to have been on the /second/
CDTEXT_LANGUAGE_ENGLISH block by some perverse CDTEXT author, or more
realistically which of several CDTEXT_LANGUAGE_UNUSED?
* What about changing the language of a block? I know libcdio
isn't primarily a disc-authoring library, though with cdtext_set(..)
and cdio_get_cdtext_raw(..) it can definitely be used constructively
-- but without cdtext_set_current_language(..) or similar, there's
always a little bit which would need to be tweaked afterward, or empty
blocks which need to be generated and piped into cdtext_data_init(..)
manually before starting to write anything new.
* Likewise should cdtext_set(..) really leave cdtext_get_first_track(..)
and cdtext_get_last_track(..) with the original bounds? I'm sure some
weirdness might crop up if those don't match with the start/end tracks
from the disc as a whole, but on the other hand I didn't expect the
current behaviour and I'm sure I'm not the only one -- at the very
least, it should be documented.
* On a less general note, is there any API or #define means to disable
or redirect the warning messages printed to stdout? I still need to
figure out how to pass them to the user, but Haskell has a thing about
avoiding unexpected side effects, and text suddenly appearing in the
terminal certainly counts.
* More troublingly, has anyone ever run into issues with CdIo_t sessions
locking up your drives? If I call some functions (I don't /think/ it
happens across the board, but I haven't gone looking for a pattern
yet) the physical button on the front of my drive stops working until
I call cdio_eject_media(..) or *_drive(..) from the software side. I
know it's an issue with my Haskell, and likely with cdio_destroy(..)
not getting called by the garbage collector for some reason, but I
figured if anyone had come across before it in earlier development,
you could save me time digging to verify that.
* Finally, is there a vetting process or anything else I should be aware
of for language bindings? It's not ready for prime time yet, as that
last question shows, but I will be hoping to release these for public
use once I get a bit more patching and polishing done -- at first with
just what an "#import <cdio/cdio.h>" will get you, but eventually with
the entire library.
Thanks!
Sam
- [Libcdio-devel] Miscellaneous questions, primarily on design,
Samuel May <=
- Re: [Libcdio-devel] Miscellaneous questions, primarily on design, Thomas Schmitt, 2020/03/21
- Re: [Libcdio-devel] Miscellaneous questions, primarily on design, Rocky Bernstein, 2020/03/21
- Re: [Libcdio-devel] Miscellaneous questions, primarily on design, Samuel May, 2020/03/21
- Re: [Libcdio-devel] Miscellaneous questions, primarily on design, Thomas Schmitt, 2020/03/22
- Re: [Libcdio-devel] Miscellaneous questions, primarily on design, Leon Merten Lohse, 2020/03/22
- Re: [Libcdio-devel] Miscellaneous questions, primarily on design, Rocky Bernstein, 2020/03/22
- Re: [Libcdio-devel] Miscellaneous questions, primarily on design, Samuel May, 2020/03/25