As I dug more into using EDF.jl for handling EDF annotations, it seemed like there was an impedance mismatch between the EDF.jl API and my understanding of the specification. This PR attempts to bring the codebase closer to alignment with the specification, as well as a more general code clean-up.
Two main contributions of this PR:
Multiple EDF Annotations signals per file are now handled properly.
A lot of special-casing was previously needed due to the specialized handling of initial record TALs vs. subsequent record TALs. Some edge cases surrounding that special-casing seemed to be missing, e.g. in https://github.com/beacon-biosignals/EDF.jl/blob/7612980b27f2e9151c7868b588affd622fb01b30/src/write.jl#L117 there's a missing isnothing check that AFAICT would cause write on non-annotated files to error. This PR removes all such special-casing, which simplifies the code a bit and removes a few of these edge cases.
As I dug more into using EDF.jl for handling EDF annotations, it seemed like there was an impedance mismatch between the EDF.jl API and my understanding of the specification. This PR attempts to bring the codebase closer to alignment with the specification, as well as a more general code clean-up.
Two main contributions of this PR:
Multiple EDF Annotations signals per file are now handled properly.
A lot of special-casing was previously needed due to the specialized handling of initial record TALs vs. subsequent record TALs. Some edge cases surrounding that special-casing seemed to be missing, e.g. in https://github.com/beacon-biosignals/EDF.jl/blob/7612980b27f2e9151c7868b588affd622fb01b30/src/write.jl#L117 there's a missing
isnothing
check that AFAICT would causewrite
on non-annotated files to error. This PR removes all such special-casing, which simplifies the code a bit and removes a few of these edge cases.This PR spiritually revives #11 and resolves #17.
I still need to do a docs/tests pass here.