add Arxel Tribe video 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;
1991b7da
KS
10#[cfg(feature="demuxer_cnm")]
11mod cnm;
8d91d85f
KS
12#[cfg(any(feature="demuxer_fst",feature="demuxer_fcmp"))]
13mod fst;
5641dccf
KS
14#[cfg(feature="demuxer_gdv")]
15mod gdv;
ff6a914f
KS
16#[cfg(feature="demuxer_hl_fmv")]
17mod hl_fmv;
3813fe8a
KS
18#[cfg(feature="demuxer_imax")]
19mod imax;
afe1e5ba
KS
20#[cfg(feature="demuxer_q")]
21mod q;
561d0f79
KS
22#[cfg(feature="demuxer_siff")]
23mod siff;
c17769db
KS
24#[cfg(feature="demuxer_smush")]
25mod smush;
9895bd7b
KS
26#[cfg(feature="demuxer_vmd")]
27mod vmd;
55d85231
KS
28#[cfg(feature="demuxer_vx")]
29mod vx;
5641dccf 30
ac818eac 31const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
9067c1f8
KS
32#[cfg(feature="demuxer_bmv")]
33 &bmv::BMVDemuxerCreator {},
ecda1cc1
KS
34#[cfg(feature="demuxer_bmv3")]
35 &bmv::BMV3DemuxerCreator {},
1991b7da
KS
36#[cfg(feature="demuxer_cnm")]
37 &cnm::CNMDemuxerCreator {},
8d91d85f
KS
38#[cfg(feature="demuxer_fcmp")]
39 &fst::FCMPDemuxerCreator {},
40#[cfg(feature="demuxer_fst")]
41 &fst::FSTDemuxerCreator {},
5641dccf
KS
42#[cfg(feature="demuxer_gdv")]
43 &gdv::GDVDemuxerCreator {},
ff6a914f
KS
44#[cfg(feature="demuxer_hl_fmv")]
45 &hl_fmv::HighlanderFMVDemuxerCreator {},
3813fe8a
KS
46#[cfg(feature="demuxer_imax")]
47 &imax::IMAXDemuxerCreator {},
afe1e5ba
KS
48#[cfg(feature="demuxer_q")]
49 &q::QDemuxerCreator {},
561d0f79
KS
50#[cfg(feature="demuxer_siff")]
51 &siff::SIFFDemuxerCreator {},
c17769db
KS
52#[cfg(feature="demuxer_smush")]
53 &smush::SmushDemuxerCreator {},
9e08bfdd
KS
54#[cfg(feature="demuxer_smush")]
55 &smush::MCMPDemuxerCreator {},
9895bd7b
KS
56#[cfg(feature="demuxer_vmd")]
57 &vmd::VMDDemuxerCreator {},
55d85231
KS
58#[cfg(feature="demuxer_vx")]
59 &vx::VXDemuxerCreator {},
5641dccf
KS
60];
61
e64739f8 62/// Registers all available demuxers provided by this crate.
5641dccf 63pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
e69b1148 64 for demuxer in GAME_DEMUXERS.iter() {
5641dccf
KS
65 rd.add_demuxer(*demuxer);
66 }
67}