Beam Software SIFF format support
[nihav.git] / nihav-game / src / demuxers / mod.rs
... / ...
CommitLineData
1use nihav_core::demuxers::*;
2
3#[allow(unused_macros)]
4macro_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"))]
9mod bmv;
10#[cfg(any(feature="demuxer_fst",feature="demuxer_fcmp"))]
11mod fst;
12#[cfg(feature="demuxer_gdv")]
13mod gdv;
14#[cfg(feature="demuxer_hl_fmv")]
15mod hl_fmv;
16#[cfg(feature="demuxer_imax")]
17mod imax;
18#[cfg(feature="demuxer_q")]
19mod q;
20#[cfg(feature="demuxer_siff")]
21mod siff;
22#[cfg(feature="demuxer_smush")]
23mod smush;
24#[cfg(feature="demuxer_vmd")]
25mod vmd;
26#[cfg(feature="demuxer_vx")]
27mod vx;
28
29const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
30#[cfg(feature="demuxer_bmv")]
31 &bmv::BMVDemuxerCreator {},
32#[cfg(feature="demuxer_bmv3")]
33 &bmv::BMV3DemuxerCreator {},
34#[cfg(feature="demuxer_fcmp")]
35 &fst::FCMPDemuxerCreator {},
36#[cfg(feature="demuxer_fst")]
37 &fst::FSTDemuxerCreator {},
38#[cfg(feature="demuxer_gdv")]
39 &gdv::GDVDemuxerCreator {},
40#[cfg(feature="demuxer_hl_fmv")]
41 &hl_fmv::HighlanderFMVDemuxerCreator {},
42#[cfg(feature="demuxer_imax")]
43 &imax::IMAXDemuxerCreator {},
44#[cfg(feature="demuxer_q")]
45 &q::QDemuxerCreator {},
46#[cfg(feature="demuxer_siff")]
47 &siff::SIFFDemuxerCreator {},
48#[cfg(feature="demuxer_smush")]
49 &smush::SmushDemuxerCreator {},
50#[cfg(feature="demuxer_smush")]
51 &smush::MCMPDemuxerCreator {},
52#[cfg(feature="demuxer_vmd")]
53 &vmd::VMDDemuxerCreator {},
54#[cfg(feature="demuxer_vx")]
55 &vx::VXDemuxerCreator {},
56];
57
58/// Registers all available demuxers provided by this crate.
59pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
60 for demuxer in GAME_DEMUXERS.iter() {
61 rd.add_demuxer(*demuxer);
62 }
63}