FutureVision game formats support
[nihav.git] / nihav-game / src / demuxers / mod.rs
CommitLineData
5641dccf
KS
1use nihav_core::demuxers::*;
2
674ebc33 3#[allow(unused_macros)]
5641dccf
KS
4macro_rules! validate {
5 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
6}
7
ecda1cc1 8#[cfg(any(feature="demuxer_bmv",feature="demuxer_bmv3"))]
9067c1f8 9mod bmv;
8d91d85f
KS
10#[cfg(any(feature="demuxer_fst",feature="demuxer_fcmp"))]
11mod fst;
5641dccf
KS
12#[cfg(feature="demuxer_gdv")]
13mod gdv;
9895bd7b
KS
14#[cfg(feature="demuxer_vmd")]
15mod vmd;
55d85231
KS
16#[cfg(feature="demuxer_vx")]
17mod vx;
5641dccf 18
ac818eac 19const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
9067c1f8
KS
20#[cfg(feature="demuxer_bmv")]
21 &bmv::BMVDemuxerCreator {},
ecda1cc1
KS
22#[cfg(feature="demuxer_bmv3")]
23 &bmv::BMV3DemuxerCreator {},
8d91d85f
KS
24#[cfg(feature="demuxer_fcmp")]
25 &fst::FCMPDemuxerCreator {},
26#[cfg(feature="demuxer_fst")]
27 &fst::FSTDemuxerCreator {},
5641dccf
KS
28#[cfg(feature="demuxer_gdv")]
29 &gdv::GDVDemuxerCreator {},
9895bd7b
KS
30#[cfg(feature="demuxer_vmd")]
31 &vmd::VMDDemuxerCreator {},
55d85231
KS
32#[cfg(feature="demuxer_vx")]
33 &vx::VXDemuxerCreator {},
5641dccf
KS
34];
35
e64739f8 36/// Registers all available demuxers provided by this crate.
5641dccf 37pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
e69b1148 38 for demuxer in GAME_DEMUXERS.iter() {
5641dccf
KS
39 rd.add_demuxer(*demuxer);
40 }
41}