make all codec crates export just register_all functions and document them
[nihav.git] / nihav-game / src / codecs / mod.rs
index 1b6e473db7c081e1421c0f953738da015b800b85..a3d5555276d73f8eb79f66a2e11de01dc88e527a 100644 (file)
@@ -4,18 +4,41 @@ macro_rules! validate {
     ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } };
 }
 
+#[cfg(feature="decoder_bmv")]
+pub mod bmv;
+#[cfg(feature="decoder_bmv3")]
+pub mod bmv3;
 #[cfg(feature="decoder_gdvvid")]
 pub mod gremlinvideo;
+#[cfg(feature="decoder_midivid")]
+pub mod midivid;
+#[cfg(feature="decoder_vmd")]
+pub mod vmd;
 
 const GAME_CODECS: &[DecoderInfo] = &[
 #[cfg(feature="decoder_gdvvid")]
     DecoderInfo { name: "gdv-audio", get_decoder: gremlinvideo::get_decoder_audio },
 #[cfg(feature="decoder_gdvvid")]
     DecoderInfo { name: "gdv-video", get_decoder: gremlinvideo::get_decoder_video },
+#[cfg(feature="decoder_bmv")]
+    DecoderInfo { name: "bmv-audio", get_decoder: bmv::get_decoder_audio },
+#[cfg(feature="decoder_bmv")]
+    DecoderInfo { name: "bmv-video", get_decoder: bmv::get_decoder_video },
+#[cfg(feature="decoder_bmv3")]
+    DecoderInfo { name: "bmv3-audio", get_decoder: bmv3::get_decoder_audio },
+#[cfg(feature="decoder_bmv3")]
+    DecoderInfo { name: "bmv3-video", get_decoder: bmv3::get_decoder_video },
+#[cfg(feature="decoder_vmd")]
+    DecoderInfo { name: "vmd-audio", get_decoder: vmd::get_decoder_audio },
+#[cfg(feature="decoder_vmd")]
+    DecoderInfo { name: "vmd-video", get_decoder: vmd::get_decoder_video },
+#[cfg(feature="decoder_midivid")]
+    DecoderInfo { name: "midivid", get_decoder: midivid::get_decoder_video },
 ];
 
+/// Registers all available codecs provided by this crate.
 pub fn game_register_all_codecs(rd: &mut RegisteredDecoders) {
-    for decoder in GAME_CODECS.into_iter() {
+    for decoder in GAME_CODECS.iter() {
         rd.add_decoder(decoder.clone());
     }
 }