mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 11:14:25 +00:00
Added extra documentation.
This commit is contained in:
122
CODING.md
Normal file
122
CODING.md
Normal file
@@ -0,0 +1,122 @@
|
||||
Coding
|
||||
======
|
||||
|
||||
Contributing with code to DiscImageChef has three very simple rules:
|
||||
|
||||
- Use same style as currently used. In a nutshell:
|
||||
- Tabs instead of spaces
|
||||
- Brackets in separate lines
|
||||
- UNIX line endings
|
||||
- Do not separate parenthesis,
|
||||
- Indent every code block (for, foreach, while, if, switch, case)
|
||||
- Do not modify the interfaces. If you need or want to, comment in an issue how and why you want to change it and we'll discuss it.
|
||||
Same applies for creating new interfaces.
|
||||
- Everything has a place, a module and an interface. Following is the list of interfaces.
|
||||
|
||||
|
||||
[Claunia.RsrcFork](https://github.com/claunia/Claunia.RsrcFork)
|
||||
---------------------------------------------------------------
|
||||
- License: MIT
|
||||
|
||||
This library includes code for handling Mac OS resource forks, and decoding them, so any code relating to Mac OS resource forks should be added here.
|
||||
|
||||
[Claunia.Encoding](https://github.com/claunia/Claunia.Encoding)
|
||||
---------------------------------------------------------------
|
||||
- License: MIT
|
||||
|
||||
This library includes code for converting codepages not supported by .NET, like those used by ancient operating systems, to/from UTF-8.
|
||||
|
||||
[plist-cil](https://github.com/claunia/plist-cil)
|
||||
-------------------------------------------------
|
||||
- License: MIT
|
||||
|
||||
This library includes code for handling Apple property lists.
|
||||
|
||||
[SharpCompress](https://github.com/adamhathcock/sharpcompress)
|
||||
--------------------------------------------------------------
|
||||
- License: MIT
|
||||
|
||||
This library includes code for handling compression algorithms and compressed archives.
|
||||
Any need you have of compression or decompression should be handled with this library, and any new algorithm should be added here.
|
||||
|
||||
[DiscImageChef](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef)
|
||||
-----------------------------------------------------------------------------------
|
||||
- License: GPL
|
||||
|
||||
This module contains the command line interface and core code.
|
||||
In the future the core code will be separated from the CLI and a GUI will be added.
|
||||
|
||||
[DiscImageChef.Checksums](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Checksums)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module contains the checksum, hashing and error correction algorithms.
|
||||
|
||||
[DiscImageChef.Checksums](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.CommonTypes)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module contains structs and enumerations needed by more than one of the other modules.
|
||||
|
||||
[DiscImageChef.Decoders](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Decoders)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module contains internal disk, drive and protocol structures as well as code to marshal, decode and print them.
|
||||
|
||||
[DiscImageChef.Devices](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Devices)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module contains code to talk with hardware devices in different platforms.
|
||||
|
||||
Each platform has lowlevel calls in its own folder, and each device protocol has highlevel calls in its own folder.
|
||||
Device commands are separated by protocol standard, or vendor name.
|
||||
|
||||
[DiscImageChef.DiscImages](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.DiscImages)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module provides reading capabilities for the disk/disc images, one per file.
|
||||
|
||||
[DiscImageChef.Filesystems](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Filesystems)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module provides the filesystem support. If only identification is implemented a single file should be used. For full read-only support, a folder should be used.
|
||||
|
||||
[DiscImageChef.Filters](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Filters)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
A filter is a modification of the data before it can be passed to the disk image module (compression, fork union, etc), and this module provides support for them.
|
||||
|
||||
[DiscImageChef.Helpers](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Helpers)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module contains a collection of helpers for array manipulation, big-endian marshalling, datetime conversion, hexadecimal printing, string manipulation and byte swapping.
|
||||
|
||||
[DiscImageChef.Interop](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Interop)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: MIT
|
||||
|
||||
This module contains calls to the underlying operating system. Currently only OS detection is needed.
|
||||
|
||||
[DiscImageChef.Metadata](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Metadata)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module contains handling of CICM XML metadata, media types and dimensions.
|
||||
|
||||
[DiscImageChef.Partitions](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Partitions)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module contains code for reading partition schemes.
|
||||
|
||||
[DiscImageChef.Settings](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Settings)
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
- License: LGPL
|
||||
|
||||
This module contains code for handling DiscImageChef settings.
|
||||
7
CONTRIBUTING.md
Normal file
7
CONTRIBUTING.md
Normal file
@@ -0,0 +1,7 @@
|
||||
So, if you're reading this file it meants you are interested on helping DiscImageChef somehow.
|
||||
There are basically four ways to help. Click on each one for details.
|
||||
|
||||
- [Testing and bug reporting](TESTING.md)
|
||||
- [Information and test data](NEEDINFO.md)
|
||||
- [Coding](CODING.md)
|
||||
- [Hardware donations](DONATING.md)
|
||||
59
DONATING.md
Normal file
59
DONATING.md
Normal file
@@ -0,0 +1,59 @@
|
||||
Hardware donations
|
||||
==================
|
||||
|
||||
This is a list of hardware that I'm searching but is too rare or too expensive for me to get them.
|
||||
The reason I want this hardware is because having it is the only way to add enhanced support for them (e.g. media detection, ECC support, raw dumping, etc.).
|
||||
After adding enhanced support all drives will be given to the Canary Islands Computer Museum.
|
||||
|
||||
- Matsushita LS-240 and media
|
||||
- Iomega ZIP750 and media
|
||||
- Sony MD-DATA and media
|
||||
- Sony Hi-MD and media
|
||||
- SCSI floppy drive (e.g. Teac FD235JS806-U)
|
||||
- Apple twiggy and media
|
||||
- 8" shugart drive
|
||||
- DiscFerret
|
||||
- Caleb UHD144
|
||||
- Sony HiFD
|
||||
- Insite floptical
|
||||
- 5.25" magneto-optical drive and media
|
||||
- 3.5" magneto-optical media: 128MiB, 540MiB, 630MiB, 1.3GiB
|
||||
- PD-650 drives (e.g. Panasonic LF-D111) and media
|
||||
- Plasmon UDO and UDO2 drives and media
|
||||
- Sony Professional Disc for DATA
|
||||
- HD-DVD recorder and media
|
||||
- Panasonic Blu-ray recorder
|
||||
- Plextor DVD recorder
|
||||
- Stringy floppy
|
||||
- Iomega Bernoulli
|
||||
- Iomega JAZ and JAZ 2
|
||||
- Iomega REV
|
||||
- Castlewood Orb 2.2 and 5.7
|
||||
- Syquest SQ306RD drive and SQ100 media
|
||||
- Syquest SQ312RD drive and SQ200 media
|
||||
- Syquest SQ319RD drive and SQ300 media
|
||||
- Syquest SQ2542 drive and media
|
||||
- Syquest SQ555 drive and SQ400 media
|
||||
- Syquest SQ5110 drive and SQ800 media
|
||||
- Syquest SQ5200C drive and SQ2000 media
|
||||
- Syquest SQ3105 drive and SQ310 media
|
||||
- Syquest SQ3270 drive and SQ327 media
|
||||
- Syquest EZ135 drive and media
|
||||
- Syquest EZFlyer drive and media
|
||||
- Syquest SyJet drive and media
|
||||
- Syquest SparQ drive and media
|
||||
- Syquest Quest drive and media
|
||||
- Triton drive and media
|
||||
- LV-ROM drive and media
|
||||
- LD-ROM drive and media
|
||||
- Iomega Ditto drive and tapes
|
||||
- DLT drive and tapes
|
||||
- Travan drive and tapes
|
||||
- SLR drive and tapes
|
||||
- T9840, T9940, T10000 drive and tapes
|
||||
- ADR drive and tapes
|
||||
- AIT drive and tapes
|
||||
- LTO drive and tapes
|
||||
- VXA drive and tapes
|
||||
- Mammoth drive and tapes
|
||||
- Host-aware and host-controller SAS and SATA zoned hard disks
|
||||
11
NEEDINFO.md
Normal file
11
NEEDINFO.md
Normal file
@@ -0,0 +1,11 @@
|
||||
Information and test data
|
||||
=========================
|
||||
|
||||
This is a list of information I need, including test disk images.
|
||||
|
||||
- DiscFerret stream images
|
||||
- KryoFlux stream images
|
||||
- NetWare 286 license and installation media for adding support to its filesystem
|
||||
- NetWare 386 license and installation media for adding support to its filesystem
|
||||
- Information about the structure and compression algorithm for XPACK disk images, or an implementation in C
|
||||
- Information about the KenCode compression algorithm, or an implementation in C or Pascal
|
||||
22
TESTING.md
Normal file
22
TESTING.md
Normal file
@@ -0,0 +1,22 @@
|
||||
How to test and bug report
|
||||
==========================
|
||||
|
||||
First of all take in account that DiscImageChef master from git is unstable, prone to crashing and not working as expected, so don't suppose anything will work at all.
|
||||
Specially compiling.
|
||||
|
||||
Once you've taken that in account normal testing procedures apply.
|
||||
|
||||
You must report bugs using GitHub issues facilities.
|
||||
|
||||
Sending an email telling the bug is the perfect way to get it forgotten in oblivion.
|
||||
|
||||
In the bug report you must indicate the following:
|
||||
- Your operating system exact version, release and distribution
|
||||
- The .NET Framework or Mono version you used to run DiscImageChef
|
||||
- The exact command line used
|
||||
- Expected results
|
||||
- If DiscImageChef was used against a disk image you may need to provide us a copy
|
||||
- If DiscImageChef was used against a device or physical media you may need to retest it several times
|
||||
|
||||
When you create the issue I'll check it as soon as I can and provide feedback.
|
||||
However, solving it, will enter in the current queue of things to do.
|
||||
Reference in New Issue
Block a user