-
Notifications
You must be signed in to change notification settings - Fork 67
My personal OSCam TODO
Georgi Chorbadzhiyski edited this page Mar 12, 2013
·
8 revisions
This page lists TODO items that I personally think should be done. Not all of them are important, not all of them would be done and not all of them even make sense. This is just a list of things that I'm planning to work on when I have time.
WebIf:
- Use config tables to reduce WebIf code related to config editing.
- Currently we have two places that generate config vars and check default values.
- three places if we count module-monitor.
- Currently we have two places that generate config vars and check default values.
- Generate uniq template id in enum based on filename and use it instead
of the names (makes it easier to find templates on the disk and reduces binary size).
- Discuss this in the forum.
- pushed to github, saves 1.2K text size...
- Do not pass pictures internally as base64.
- Load pictures directly from disk (picons).
- Discuss this in the forum.
- Load pictures directly from disk (picons).
- Save templates using the same names as files in webif/ in addition to XXX.tpl files.
- Discuss this in the forum.
- Add sensitive data filtering in WebIf (what, where?).
Memory:
- Improve structure sizes: http://www.streamboard.tv/wbb2/thread.php?postid=452820
- FTAB is big offender (2.2k).
- Most of modules don't use the whole PTAB (use only 1 port).
- Use ptab only for modules that need more than one port?
- Investigate all static variables.
- Investigate dynamic stack usage.
- make EXTRA_CC_WARN=-Wstack-usage=2048
Config/Build:
- Create configure script (NOT BASED ON AUTOCONF!!!) that checks compilers, libusb, libcrypto, pcsc, etc and suggests the correct make params. It should be pretty simple script, not a monstrosity.
- Once "configure" is created:
- Investigate what advantages cmake offers and add improvements to build system until cmake can be axed.
Releases/Infrastructure:
- Create changelog from 1.10 to -current and start the release process of 1.20 (more like 2.0).
- Where is the cutout point? I think we can already do it, we have more than enough since 1.10
- WISHLIST Setup build service similar to download.oscam.to
- WISHLIST Convert oscam repo to git (trac integration would be needed).
- WISHLIST We should have mailing list like a normal project.
Reduce ifdefs where it makes sense:
- There still too many CS_CACHEEX and CS_ANTICASC ifdefs.
- git grep '#if'| grep -E -v "^(minilzo|extapi)" | cut -d" " -f2- | sed 's/ *//' | sort | uniq -c | sort -rn
Irdeto reader:
- Record gamma card init and make it work (when I get my season intf).
Docs:
- Finish cross compiling page (nobody is stepping up...) - http://www.streamboard.tv/oscam/wiki/crosscompiling
-
BIG TASK Convert docs in Documentation to use asciidoc and stop shipping docs in three formats.
Using asciidoc we can write ordinary text files and when needed we can convert them to
nice HTML, MAN pages and so on. See http://www.methods.co.nz/asciidoc/
- Discuss this with landlord (docman)
Completed tasks that were on the TODO:
- done Remove static vars from module-monitor.
- done Move big reader specific variables into private structures.
- done Fix PTAB size because its excessive (68k!) r8456
- done Use minilzo to compress the templates thus reducing the binary size. r8446
- done Use jhash to generate template name hashes in page_gen.c /implemented differently in r8434/
- done webif: Convert templates array to struct template.
- done webif: Handle CSS and other resources like templates.
- done webif: Extract content from module-webif-pages.h into different files and build the header on the fly.
- done Split lcd/monitor/webif configuration in WebIf.
- done Split oscam.c its too big for its own good.
- done create oscam-ecm.c
- done create oscam-emm.c
- done Fix signal handling of the parent process (ctrl-c in the console is not catched by the sig handler).
- done Add getopt_long() support.
- done Parse configuration based on data structures.
- done Create real drivers from card readers.
- done Add configuration for different card readers.
- done Update minilzo code to the latest version.
- done Add cs_{malloc,realloc}_nofail() and cleanup the call sites (remove the last parameter of cs_malloc()).
- done Add cs_strdup() and use it where it is needed (the new config parser have kind of obsoleted this one).
- done Reduce ARM ifdefs (they are related to leds).
- done Add led_type configuration to remove even more ifdefs (see: cs_switch_led_from_thread())
- done Split STAPI code from module-dvbapi and csctapi/ifd_phoenix.c into separate files.
- done Add --enable and --disable to config.sh to allow control of configuration variables.