2377a84a32e71978a0be2ed45624ddaedd1fbd2a
[nihav.git] / nihav-game / src / demuxers / mod.rs
1 use nihav_core::demuxers::*;
2
3 #[allow(unused_macros)]
4 macro_rules! validate {
5 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
6 }
7
8 #[cfg(any(feature="demuxer_bmv",feature="demuxer_bmv3"))]
9 mod bmv;
10 #[cfg(any(feature="demuxer_fst",feature="demuxer_fcmp"))]
11 mod fst;
12 #[cfg(feature="demuxer_gdv")]
13 mod gdv;
14 #[cfg(feature="demuxer_imax")]
15 mod imax;
16 #[cfg(feature="demuxer_q")]
17 mod q;
18 #[cfg(feature="demuxer_vmd")]
19 mod vmd;
20 #[cfg(feature="demuxer_vx")]
21 mod vx;
22
23 const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
24 #[cfg(feature="demuxer_bmv")]
25 &bmv::BMVDemuxerCreator {},
26 #[cfg(feature="demuxer_bmv3")]
27 &bmv::BMV3DemuxerCreator {},
28 #[cfg(feature="demuxer_fcmp")]
29 &fst::FCMPDemuxerCreator {},
30 #[cfg(feature="demuxer_fst")]
31 &fst::FSTDemuxerCreator {},
32 #[cfg(feature="demuxer_gdv")]
33 &gdv::GDVDemuxerCreator {},
34 #[cfg(feature="demuxer_imax")]
35 &imax::IMAXDemuxerCreator {},
36 #[cfg(feature="demuxer_q")]
37 &q::QDemuxerCreator {},
38 #[cfg(feature="demuxer_vmd")]
39 &vmd::VMDDemuxerCreator {},
40 #[cfg(feature="demuxer_vx")]
41 &vx::VXDemuxerCreator {},
42 ];
43
44 /// Registers all available demuxers provided by this crate.
45 pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
46 for demuxer in GAME_DEMUXERS.iter() {
47 rd.add_demuxer(*demuxer);
48 }
49 }