LucasArts SMUSH formats support
[nihav.git] / nihav-game / src / demuxers / mod.rs
index 884539c0f664fa78d31fb00ea16af60cdefc2188..fe35075f670ab73712f91e700592fd00d01e14a8 100644 (file)
@@ -7,24 +7,47 @@ macro_rules! validate {
 
 #[cfg(any(feature="demuxer_bmv",feature="demuxer_bmv3"))]
 mod bmv;
+#[cfg(any(feature="demuxer_fst",feature="demuxer_fcmp"))]
+mod fst;
 #[cfg(feature="demuxer_gdv")]
 mod gdv;
+#[cfg(feature="demuxer_imax")]
+mod imax;
+#[cfg(feature="demuxer_q")]
+mod q;
+#[cfg(feature="demuxer_smush")]
+mod smush;
 #[cfg(feature="demuxer_vmd")]
 mod vmd;
+#[cfg(feature="demuxer_vx")]
+mod vx;
 
-const GAME_DEMUXERS: &[&'static DemuxerCreator] = &[
+const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
 #[cfg(feature="demuxer_bmv")]
     &bmv::BMVDemuxerCreator {},
 #[cfg(feature="demuxer_bmv3")]
     &bmv::BMV3DemuxerCreator {},
+#[cfg(feature="demuxer_fcmp")]
+    &fst::FCMPDemuxerCreator {},
+#[cfg(feature="demuxer_fst")]
+    &fst::FSTDemuxerCreator {},
 #[cfg(feature="demuxer_gdv")]
     &gdv::GDVDemuxerCreator {},
+#[cfg(feature="demuxer_imax")]
+    &imax::IMAXDemuxerCreator {},
+#[cfg(feature="demuxer_q")]
+    &q::QDemuxerCreator {},
+#[cfg(feature="demuxer_smush")]
+    &smush::SmushDemuxerCreator {},
 #[cfg(feature="demuxer_vmd")]
     &vmd::VMDDemuxerCreator {},
+#[cfg(feature="demuxer_vx")]
+    &vx::VXDemuxerCreator {},
 ];
 
+/// Registers all available demuxers provided by this crate.
 pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
-    for demuxer in GAME_DEMUXERS.into_iter() {
+    for demuxer in GAME_DEMUXERS.iter() {
         rd.add_demuxer(*demuxer);
     }
 }