1 use nihav_core::demuxers::*;
3 #[allow(unused_macros)]
4 macro_rules! validate {
5 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
8 #[cfg(any(feature="demuxer_bmv",feature="demuxer_bmv3"))]
10 #[cfg(any(feature="demuxer_fst",feature="demuxer_fcmp"))]
12 #[cfg(feature="demuxer_gdv")]
14 #[cfg(feature="demuxer_hl_fmv")]
16 #[cfg(feature="demuxer_imax")]
18 #[cfg(feature="demuxer_q")]
20 #[cfg(feature="demuxer_smush")]
22 #[cfg(feature="demuxer_vmd")]
24 #[cfg(feature="demuxer_vx")]
27 const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
28 #[cfg(feature="demuxer_bmv")]
29 &bmv::BMVDemuxerCreator {},
30 #[cfg(feature="demuxer_bmv3")]
31 &bmv::BMV3DemuxerCreator {},
32 #[cfg(feature="demuxer_fcmp")]
33 &fst::FCMPDemuxerCreator {},
34 #[cfg(feature="demuxer_fst")]
35 &fst::FSTDemuxerCreator {},
36 #[cfg(feature="demuxer_gdv")]
37 &gdv::GDVDemuxerCreator {},
38 #[cfg(feature="demuxer_hl_fmv")]
39 &hl_fmv::HighlanderFMVDemuxerCreator {},
40 #[cfg(feature="demuxer_imax")]
41 &imax::IMAXDemuxerCreator {},
42 #[cfg(feature="demuxer_q")]
43 &q::QDemuxerCreator {},
44 #[cfg(feature="demuxer_smush")]
45 &smush::SmushDemuxerCreator {},
46 #[cfg(feature="demuxer_smush")]
47 &smush::MCMPDemuxerCreator {},
48 #[cfg(feature="demuxer_vmd")]
49 &vmd::VMDDemuxerCreator {},
50 #[cfg(feature="demuxer_vx")]
51 &vx::VXDemuxerCreator {},
54 /// Registers all available demuxers provided by this crate.
55 pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
56 for demuxer in GAME_DEMUXERS.iter() {
57 rd.add_demuxer(*demuxer);