= FreeJ Development sketches/ideas/TODOs = {{{#!wiki red/solid Please sign your notes! }}} * MovieLayer (audio/video) - http://www.dranger.com/ffmpeg/ (shammash) * Closure / Closing testing on FreeBSD ok? (shammash) * What is the design now? (MultiContext / ContextLess / Whatever) (shammash) * Fps/Blitters/LayerStarting situation? (shammash) * DumbCallback must be replaced with some Signal/Slot code (must be SWIG aware, what about libsigc++?) (shammash) * Further changes in bindings API? (shammash) * Limiting Layers resources (like zoom) (MrGoil) * Import Wii fixes from roma-fixes (shammash) * Controllers return value really needed? What's the advantage of a notification about signal handled/unhandled? Controllers list is not that long! I think this only adds complexity for SWIG scripters because they need to return a value. (shammash) * provide more controller examples for py/rb scripting (jaromil) * make bluetooth support conditional in configure (jaromil) * solve FTBFS on ia64 http://bugs.debian.org/533765 (probably solved with git commit: 97b015491c710fbf733e15802591399b127f95a0 , but maybe it's better to avoid optimizations for ia64.. who cares about freej on itanium? :) ) (shammash) * import closuretest.cpp inside freej tree (with a unit-test system using CxxTest?) (shammash) * improve ruby.m4 macro, now it's a bit delicate, especially with install paths (shammash) * fix VideoLayer. All methods I've tried from python and ruby cause segfaults (x37v) * Should set_position respect the zoom setting? It used to but now it doesn't. Layer.fit doesn't work anymore because of that. (x37v) * Understand why if we create a pthread in C++ while running as a python API may lead to crashes (on Midori it does on debian not) (shammash) * Compatibility layer with gstreamer (jaromil) * Establish minimum _mandatory_ libraries and FAIL HARD on that missing (godog) * Explicit minimum version (if any) for libraries (godog) End Of Stream Callback example: {{{#!python import threading import freej class MyCall(freej.DumbCall): def __init__(self, *args): super(MyCall, self).__init__(*args) def callback(self): print "detected EOS from python" W = 400 H = 300 cx = freej.Context() cx.init(W,H,0,0) cx.clear_all = True th = threading.Thread(target = cx.start , name = "freej") th.start(); v = freej.VideoLayer() v.init(cx) v.open('/home/film/video/yue/live/nothing/cubo.avi') v.start() v.active = True cx.add_layer(v) cb = MyCall() v.add_eos_call(cb) }}} == Discussion Agenda == 1. closure + error handling + automatic subclassing 2. build time checks policy + coding style and conventions + move "lib" in a contrib-subsystem 3. javascript architecture + garbage collector + automatic subclassing ScriptTree/JsLibs some notes about script glue