Files
e36/readme.md

137 lines
5.0 KiB
Markdown

# sstv e36 encoder
This is a SSTV "encoder", currently it is in work, but it has some modes already:
Future plans for a decoder have been made. I do not plan to do any decoding
soon. Wayy to much of a workload, high cortisol!
## Support Table:
|Support?|Mode | Encode | Decode |
|--------|------------|--------|--------|
|[x] |Martin 1 |[x] |[] |
|[x] |Martin 2 |[x] |[] |
|[x] |Robot 36 |[x] |[] |
|[x] |Scottie 1 |[x] |[] |
|[x] |Scottie 2 |[x] |[] |
|[x] |ScottieD(S)X|[x] |[] |
Written in _pure_ **C** with some _Makefiles_ to pull it together
## License:
This project is distributed under the MiT License!
### For developing or adding to the source code:
_**This is just standard C17 Standard**_
Compilation is done via the gcc compiler, we do NOT allow MSVC here.
If you are on Windows then i suggest to use the WSL.
Be sure to follow this style of code, it is not that complex,
and some parts you can even tell Vim or Emacs or whatever you use to automate it,
like the header definitions (default i think on vs and some others).
#### Defining Headers:
Try to follow this general pattern.
In of itself it is relativley easy to maintain this structure.
And it is also relativley easy to write in this style!
_**This is just standard C17 Standard**_
```h
#ifndef HEADER_H
#define HEADER_H
#include <stdint.h> // <> is for "glibc" stuff
#include "encoder/sound/wav.h" // "" for local stuff. which isnt "glibc"
typedef struct {
uint8_t type;
} mystruct_t;
int method_to_use(mystruct_t type);
#endif // !HEADER_H
```
Refer to "[Using Headers](#using-headers)" for how to use Headers!
#### Using Headers:
You may define your Header files as module like structures! Like in Java!
This is nicer to work with cause you dont need to then dump everything into the project root!
In you C File:
```c
#include "decoder/modes/martin.h" // for example
```
If you add a new module, you may add to the Makefile. as a -I CFLAG!
#### C Files:
For a real implementation this stub below would make 0 sense,
but this is the general style you should follow, it includes CAPITAL definitions,
local imports in "" and at the top, others below.
Try to comment your code if it does not make sense.
If you encounter something like `Q_rsqrt` (The Quake inverse square root), then you are
permitted to comment some swear words.
Great example of commenting : "robot36.c"
```c
#include "header.h" // Refer to Using Headers
#define PI 3
#define SOME_DEF 67
int method_to_use(mystruct_t type) {
return 67 * type;
}
```
References:
- [Using Headers](#using-headers)
- [Defining Headers](#defining-headers)
#### Defining new Modes:
If you have the balls to define a new Mode, then refer to the Dayton Papers!
And when your done make this [Table](#support-table) complete!
### Our License:
#### MIT :
```
Copyright 2026 , rattatwinko
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
#### For stb_image.h:
```
ALTERNATIVE A - MIT License
Copyright (c) 2017 Sean Barrett
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```