Initial commit

This commit is contained in:
redclawsystems
2026-03-04 00:08:42 +00:00
commit 4d88dc0584
4449 changed files with 1556714 additions and 0 deletions
@@ -0,0 +1,46 @@
//! EGI (Electrical Geodesics, Inc.) EEG File Format Reader
//!
//! Reads data from EGI/Philips Geodesic EEG systems.
//!
//! ## File Types
//!
//! - `.raw` - Simple binary format with ASCII header
//! - `.mff` - MFF (Meta File Format) directory structure
//!
//! ## Data Format
//!
//! ### Simple RAW Format
//! The .raw format has an ASCII header followed by binary data:
//! - Header contains version, sample rate, channel count, etc.
//! - Data is big-endian float32 or int16
//!
//! ### MFF Format
//! MFF is a directory containing:
//! - `info.xml` - Session information
//! - `signal1.bin`, `signal2.bin`, ... - Binary signal files
//! - `coordinates.xml` - Sensor positions (optional)
//! - `categories.xml` - Event categories
//!
//! ## Example
//!
//! ```rust,ignore
//! use rtx_neuro_io::egi::EgiReader;
//!
//! // Read simple RAW format
//! let reader = EgiReader::open("recording.raw")?;
//! println!("Channels: {}", reader.n_channels());
//! println!("Sample rate: {} Hz", reader.sfreq());
//!
//! let data = reader.read_data(0.0, 10.0)?; // Read 10 seconds
//!
//! // Read MFF format
//! let mff_reader = EgiReader::open("recording.mff")?;
//! ```
mod constants;
mod header;
mod reader;
pub use constants::*;
pub use header::{EgiChannel, EgiChannelKind, EgiFormat, EgiHeader};
pub use reader::EgiReader;