sndplay: support various input kinds
[nihav-player.git] / sndplay / src / allreg.rs
1 use nihav_core::codecs::{RegisteredDecoders, RegisteredPacketisers};
2 use nihav_core::demuxers::{RegisteredDemuxers, RegisteredRawDemuxers};
3
4 use nihav_commonfmt::generic_register_all_decoders;
5 use nihav_commonfmt::generic_register_all_demuxers;
6
7 use nihav_duck::duck_register_all_decoders;
8
9 use nihav_flash::flash_register_all_decoders;
10 use nihav_flash::flash_register_all_demuxers;
11
12 use nihav_game::game_register_all_decoders;
13 use nihav_game::game_register_all_demuxers;
14
15 use nihav_indeo::indeo_register_all_decoders;
16
17 use nihav_llaudio::llaudio_register_all_decoders;
18 use nihav_llaudio::llaudio_register_all_demuxers;
19
20 use nihav_mpeg::mpeg_register_all_decoders;
21 use nihav_mpeg::mpeg_register_all_packetisers;
22
23 use nihav_ms::ms_register_all_decoders;
24
25 use nihav_qt::qt_register_all_decoders;
26
27 use nihav_rad::rad_register_all_decoders;
28 use nihav_rad::rad_register_all_demuxers;
29
30 use nihav_realmedia::realmedia_register_all_decoders;
31 use nihav_realmedia::realmedia_register_all_demuxers;
32
33 use nihav_vivo::vivo_register_all_decoders;
34 use nihav_vivo::vivo_register_all_demuxers;
35
36 fn register_all_decoders(rd: &mut RegisteredDecoders) {
37 generic_register_all_decoders(rd);
38 duck_register_all_decoders(rd);
39 flash_register_all_decoders(rd);
40 game_register_all_decoders(rd);
41 indeo_register_all_decoders(rd);
42 llaudio_register_all_decoders(rd);
43 mpeg_register_all_decoders(rd);
44 ms_register_all_decoders(rd);
45 qt_register_all_decoders(rd);
46 rad_register_all_decoders(rd);
47 realmedia_register_all_decoders(rd);
48 vivo_register_all_decoders(rd);
49 }
50
51 fn register_all_packetisers(rp: &mut RegisteredPacketisers) {
52 mpeg_register_all_packetisers(rp);
53 }
54
55 fn register_all_demuxers(rd: &mut RegisteredDemuxers) {
56 generic_register_all_demuxers(rd);
57 flash_register_all_demuxers(rd);
58 game_register_all_demuxers(rd);
59 llaudio_register_all_demuxers(rd);
60 rad_register_all_demuxers(rd);
61 realmedia_register_all_demuxers(rd);
62 vivo_register_all_demuxers(rd);
63 }
64
65 fn register_all_raw_demuxers(_rd: &mut RegisteredRawDemuxers) {
66 //llaudio_register_all_raw_demuxers(rd);
67 }
68
69
70 pub struct FullRegister {
71 pub dmx_reg: RegisteredDemuxers,
72 pub rdmx_reg: RegisteredRawDemuxers,
73 pub pkt_reg: RegisteredPacketisers,
74 pub dec_reg: RegisteredDecoders,
75 }
76
77 impl FullRegister {
78 pub fn new() -> Self {
79 let mut dmx_reg = RegisteredDemuxers::new();
80 register_all_demuxers(&mut dmx_reg);
81 let mut rdmx_reg = RegisteredRawDemuxers::new();
82 register_all_raw_demuxers(&mut rdmx_reg);
83 let mut dec_reg = RegisteredDecoders::new();
84 register_all_decoders(&mut dec_reg);
85 let mut pkt_reg = RegisteredPacketisers::new();
86 register_all_packetisers(&mut pkt_reg);
87 Self { dmx_reg, rdmx_reg, pkt_reg, dec_reg }
88 }
89 }
90