make validate!() print message only in debug builds
[nihav.git] / nihav-game / src / demuxers / mod.rs
... / ...
CommitLineData
1use nihav_core::demuxers::*;
2
3#[allow(unused_macros)]
4#[cfg(debug_assertions)]
5macro_rules! validate {
6 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
7}
8#[cfg(not(debug_assertions))]
9macro_rules! validate {
10 ($a:expr) => { if !$a { return Err(DemuxerError::InvalidData); } };
11}
12
13#[cfg(any(feature="demuxer_bmv",feature="demuxer_bmv3"))]
14mod bmv;
15#[cfg(feature="demuxer_cnm")]
16mod cnm;
17#[cfg(any(feature="demuxer_fst",feature="demuxer_fcmp"))]
18mod fst;
19#[cfg(feature="demuxer_gdv")]
20mod gdv;
21#[cfg(feature="demuxer_hl_fmv")]
22mod hl_fmv;
23#[cfg(feature="demuxer_imax")]
24mod imax;
25#[cfg(feature="demuxer_q")]
26mod q;
27#[cfg(feature="demuxer_siff")]
28mod siff;
29#[cfg(feature="demuxer_smush")]
30mod smush;
31#[cfg(feature="demuxer_vmd")]
32mod vmd;
33#[cfg(feature="demuxer_vx")]
34mod vx;
35
36const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
37#[cfg(feature="demuxer_bmv")]
38 &bmv::BMVDemuxerCreator {},
39#[cfg(feature="demuxer_bmv3")]
40 &bmv::BMV3DemuxerCreator {},
41#[cfg(feature="demuxer_cnm")]
42 &cnm::CNMDemuxerCreator {},
43#[cfg(feature="demuxer_fcmp")]
44 &fst::FCMPDemuxerCreator {},
45#[cfg(feature="demuxer_fst")]
46 &fst::FSTDemuxerCreator {},
47#[cfg(feature="demuxer_gdv")]
48 &gdv::GDVDemuxerCreator {},
49#[cfg(feature="demuxer_hl_fmv")]
50 &hl_fmv::HighlanderFMVDemuxerCreator {},
51#[cfg(feature="demuxer_imax")]
52 &imax::IMAXDemuxerCreator {},
53#[cfg(feature="demuxer_q")]
54 &q::QDemuxerCreator {},
55#[cfg(feature="demuxer_siff")]
56 &siff::SIFFDemuxerCreator {},
57#[cfg(feature="demuxer_smush")]
58 &smush::SmushDemuxerCreator {},
59#[cfg(feature="demuxer_smush")]
60 &smush::MCMPDemuxerCreator {},
61#[cfg(feature="demuxer_vmd")]
62 &vmd::VMDDemuxerCreator {},
63#[cfg(feature="demuxer_vx")]
64 &vx::VXDemuxerCreator {},
65];
66
67/// Registers all available demuxers provided by this crate.
68pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
69 for demuxer in GAME_DEMUXERS.iter() {
70 rd.add_demuxer(*demuxer);
71 }
72}