BRisa Release 0.10.0
Hi list, I'm pleased to announce the release of python-brisa version 0.10.0. This version contains a lot of improvements and optimizations. Thanks to all developers who helped us for this release. Website: http://brisa.garage.maemo.org/ Development: http://garage.maemo.org/projects/brisa/ Download: https://garage.maemo.org/frs/?group_id=138 Mailing list: https://garage.maemo.org/mailman/listinfo/brisa-discuss/ What is python-brisa? Python-brisa is a UPnP framework written in Python provided under MIT License. It contains facilities for building UPnP devices, services and control points. Features: * Integration with Qt, Gtk, Glib2 and Ecore * Simple but powerful API for writing devices, services and control points * Complete UPnP device architecture implementation (SSDP, SOAP, MSearch, Eventing (GENA)) * Network transport and API facilities (UDP, TCP, HTTP, XML, IP and network interfaces) * DIDL/DLNA * Facilities for logging, configurations, threading, application management Multiplatform == Being a pure python solution, python-brisa is supposed to run on every platform that enables python. It's been tested with both Python 2.5 and Python 2.6 versions. We would really appreciate community feedback, bug reports and feature requests concerning attempts to run it on other platforms. In this release, we have to highlight our step further on multiplatform compliance: a WSGI (Web Server Gateway Interface). The python-brisa framework requires a webserver and we have provided this feature through WSGI. We have implemented adapters for Cherrypy, Circuits and Python-Paste WSGI servers, but this is easily extended to any other WSGI servers. Requirements === - Python 2.5.x, Python 2.5.x-dev (or 2.6) - http://www.python.org One of the following: - Python-Cherrypy (= 3.1.1) - http://www.cherrypy.org - Circuits - http://trac.softcircuit.com.au/circuits/ - Python-paste http://pythonpaste.org/ Contact === Our developers are usually at our official channel on freenode. * IRC Channel: #brisa @ irc.freenode.net * Mailing List: https://garage.maemo.org/mailman/listinfo/brisa-discuss/ Feel free to provide feedbacks, ask questions and so on. Tasks of the release === * Implemented WSGI server adapters for cherrypy, circuits.web and paste * Webserver is now WSGI with pluggable server adapters * Implemented ServiceBuilder that builds the service object from a scpd.xml * Implemented two ways of creating a service: with a scpd.xml file or by specifying service parameters through code - and the framework generates the scpd.xml * Reactor infrastructure added * Webserver is not a singleton anymore * Arrangement for device abstracts the user from a lot of things, such as the webserver * Implemented Gtk2Reactor, Glib2Reactor, EcoreReactor, SelectReactor (default) * Plugin architecture refactored * Log messages are a bit more cleaner now. Most log messages were for debug purposes, so, changed most of them to DEBUG. INFO level now should be only used for informing the user high-level events, such as New device, Device is gone, Publishing device, and so on. * Control point objects are now reusable. They can now be stopped, and started again. * Closure procedure is now chained. Some classes (such as ssdp msearch) now have these 3 methods: start(), stop(), destroy(). start() - starts the class, stop() - stops the class, but it can be start()'ed again later and destroy() - stops the class DEFINITELY, clean references to help with garbage collection, makes the class unusable. For a clearer view, take a look at upnp/control_point/control_point.py. You will notice that these three methods are chained. * Device webserver publishing is now chained and transparent to the user. Added some options to BRisa for customizing device/service build (these options have default values for making everything work, automatic as possible) * Packages created: - core: framework core stuff - core.reactors: reactors implementations - upnp.control_point: API for writing control points - upnp.device: API for writing devices - upnp.services: general services implemented by us (ConnectionManager, ContentDirectory) - upnp.services.xmls: XML folder for the services of the item above * Removed lots of threads: most are now integrated with the main loop (fd's and sleeps) * Implemented UPnP eventing API on the device side * Removed deprecated modules: utils.sqlite, threading * Packages moves (from - to): - utils.network - core.network - utils.network_listeners - core.network_listeners - utils.network_senders - core.network_senders - utils.system - core.system - utils.failure - core.failure - threading.threaded_call - core.threaded_call - log - core.log - config -
BRisa UPnP Framework has been released
Hello list! I'm pleased to announce the release of Python-BRisa version 0.8. We have awesome worked for this release and due to this, the BRisa project has started a new phase: we finally have a separation of the BRisa framework and the applications. Please, try it, we are still working hard to make the BRisa project much better than today. What is Python-BRisa ? = Python-BRisa is an UPnP framework written in Python with facilities for building UPnP devices, services and control points. The Python-BRisa API comprehends Internet messaging protocols and basic services (TCP, UDP, HTTP, SOAP, SSDP), networking facilities, threading management, logging, configurations, web server and more. Python-BRisa's runs on the maemo platform, Linux and on Mac with a few tweaks. We would really appreciate community feedback, bug reports and feature requests concerning attempts to run it on other systems. Requirements = - Python 2.5.x, Python 2.5.x-dev - http://www.python.org - Python-Cherrypy - http://www.cherrypy.org Features of this release == - Major cleanup on the framework (old/unused modules removed) - Fixed PEP8 errors and files/methods/variables with wrong naming convention - Split between framework and applications - Separate documentation for developers and users - Various bug-fixes on the framework and applicationss - Thread management improvements (assured control over threads) - Better programmatic control over the control point - Better support for multiple instances of BRisa - Configuration API stabilized, using cPickle - Logging with more information (file, line, time) - DIDL completely refactored and now uses cElementTree - Added a simple command line tool for configuring (brisa-conf) - UPnP A/V specifics moved out from python-brisa - Added simple watch API for objects and SQLite databases - Improved debian packaging - Installation script (setup.py) enhanced - Added more examples to the directory Bugs fixed in this release == #2980: didl_lite using parse_xml incorrectly #3242: difficulties in control point start/stop #3244, #3270, #3273: ThreadObject problem with blocking run()'s fixed with interruption mechanism #3247: attributes moved to object scope #3271: run_async_call() performing the call even when cancelled #3273: ThreadManager.stop_all using list dangerously #3274: webserver does not remove itself from ThreadManager list #3288: service XML is never parsed #3289: control point event not sending changed_vars #3291: some UPnP devices sending empty controlURL #3306: default number of trials and intervals of url_fetch should be configurable #3306: device which failed to download XML is being ignored forever by SSDPSearch #3371: instances of ThreadObject not being garbage-collected Next release plans === - Improve the thread interrupt with a higher level mechanism (probably pipes) - Provide framework's own exception classes - Implement more basic devices as examples - Add more basic examples of framework usage - Complete unit test suite for the framework - Add scripts for automatic packaging for gentoo, rpm - Create an universal control point Links = Website: http://brisa.garage.maemo.org/ Development: http://garage.maemo.org/projects/brisa/ Download: https://garage.maemo.org/frs/?group_id=138 Mailing list: https://garage.maemo.org/mailman/listinfo/brisa-discuss/ Meet us on IRC = #brisa @ irc.freenode.net Acknowledgement === Thanks to the following contributors who awesome worked for this release: - Andre Moreira Magalhaes (andrunko) andru...@gmail.com - Elvis Pfutzenreuter (epx) e...@epx.com.br ___ maemo-users mailing list maemo-users@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-users
[Announce] Release of the DCCP Plugin 0.7 for GStreamer
Hello list! I'm pleased to announce the version v0.7 of the DCCP GStreamer Plugin. Please, let me know if you have any problem on running the plugin, suggestions and improvements that you provided for it. The main news for this release is that the plugin can now support multiple connection in the server element and share the same sockid between to GStreamer elements. What is GStreamer? == GStreamer [1] is a library that allows the construction of graphs of media-handling components, ranging from simple Ogg/Vorbis playback to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently. Developers can add new codecs and filters by writing a simple plugin with a clean, generic interface. GStreamer is released under the LGPL. What is DCCP? = The Datagram Congestion Control Protocol (DCCP) [2] is a transport protocol that provides bidirectional unicast connections of congestion-controlled unreliable datagrams. DCCP is suitable for applications that transfer fairly large amounts of data and that can benefit from control over the tradeoff between timeliness and reliability. It is a message-oriented transport layer protocol that implements reliable connection setup, teardown, ECN, congestion control, and feature negotiation. It was published as RFC 4340 by IETF in March, 2006. Linux had an implementation of DCCP since version 2.6.14 and this continues to improve with each release. The latest official version of the DCCP code can be found at [3] and at [4]. What is DCCP Plugin for GStreamer? == It is a plugin that allows transfer data over the network via DCCP for GStreamer. According to all the tests that we proceeded, the plugin is able to stream audio files, such as mp3, audio captured from the microphone and raw data files. CHANGELOG = - Setting the default format of the source elements (dccpclientsrc and dccpserversrc) to GST_FORMAT_TIME. We use the function gst_base_src_set_format. - Configure source elements to automatically timestamp outgoing buffers based on the current running_time of the pipeline. We use the function gst_base_src_set_do_timestamp. We test if the gstreamer installed is 0.10.15 or more to use this function. - Code refactor - Adding gtk-doc to the elements TODO List = - Improve the implementation of the send mechanism adding the Paraslash solution based on queue - Improve the send mechanism to support the new feature of dccp in the linux kernel that allows application to get the packet sequence number. How to contribute? == Please, contact me at leandroal [at] gmail [dot] com Where is DCCP Plugin? = The DCCP plugin for GStreamer is under version control of the E-Phone. The E-Phone (Embedded-Phone) project aims to develop a VoIP client for Maemo platform based on DCCP transport protocol. In this project we are also implementing the CCID-4 [5] IETF drafts on the linux kernel. Development: http://garage.maemo.org/projects/ephone Mailing list: http://garage.maemo.org/pipermail/ephone-discuss/ Download: https://garage.maemo.org/frs/?group_id=297 or directly from https://garage.maemo.org/frs/download.php/4415/gst-dccp-0.7.tar.bz2 How to use it with gst-launch command line? = A basic example to stream a multimedia file using ccid-3: * Server: gst-launch -v filesrc location=music.mp3 ! mp3parse ! dccpserversink port=9011 ccid=2 * Client: gst-launch -v dccpclientsrc host=localhost port=9011 ! decodebin ! alsasink -- We also tested with mpg123, to use it: mpg123 dccp://localhost:9011 Please, refer to the src/examples_app/README file for more examples. Is there any application examples? == Yes, refer to the examples_app directory of the source file. Requirements - Linux Kernel with DCCP enabled (see [6]) - GStreamer - Additional GStreamer Plugins to make the example app works Best regards, Leandro. References: [1] http://gstreamer.freedesktop.org/ [2] http://www.read.cs.ucla.edu/dccp/ [3] git://git.kernel.org/pub/scm/linux/kernel/git/acme/net-2.6.25.git [4] git://eden-feed.erg.abdn.ac.uk/dccp_exp [5] http://tools.ietf.org/html/draft-ietf-dccp-ccid4-01 [6] http://www.linuxfoundation.org/en/Net:DCCP -- Leandro Melo de Sales Pervasive and Embedded Computing Laboratory Computer Science MSc. BRisa and E-Phone Projects Manager Network Admin @ http://embedded.ufcg.edu.br/indexen.html +55 83 3310-1404 (extension 208) http://www.leandrosales.com/ ___ maemo-users mailing list maemo-users@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-users
[Announce] Release of the DCCP Plugin 0.6 for GStreamer
Hello list! I'm pleased to announce the version v0.6 of the DCCP GStreamer Plugin. Please, let me know if you have any problem on running the plugin, suggestions and improvements that you provided for it. The main news for this release is that the plugin can now support multiple connection in the server element and share the same sockid between to GStreamer elements. What is GStreamer? == GStreamer [1] is a library that allows the construction of graphs of media-handling components, ranging from simple Ogg/Vorbis playback to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently. Developers can add new codecs and filters by writing a simple plugin with a clean, generic interface. GStreamer is released under the LGPL. What is DCCP? = The Datagram Congestion Control Protocol (DCCP) [2] is a transport protocol that provides bidirectional unicast connections of congestion-controlled unreliable datagrams. DCCP is suitable for applications that transfer fairly large amounts of data and that can benefit from control over the tradeoff between timeliness and reliability. It is a message-oriented transport layer protocol that implements reliable connection setup, teardown, ECN, congestion control, and feature negotiation. It was published as RFC 4340 by IETF in March, 2006. Linux had an implementation of DCCP since version 2.6.14 and this continues to improve with each release. The latest official version of the DCCP code can be found at [3] and at [4]. What is DCCP Plugin for GStreamer? == It is a plugin that allows transfer data over the network via DCCP for GStreamer. According to all the tests that we proceeded, the plugin is able to stream audio files, such as mp3, audio captured from the microphone and raw data files. CHANGELOG = - Adding support to many client connections to dccpserversink. new property: wait-connections - Wait for many client connections flags: readable, writable Boolean. Default: false Current: false - Adding sample for sharing socket id between two instances of an element See folder examples/call - Adding sample of send MP3 stream. See folder examples/mp3Stream - Changing the name of the property sock-fd to sockfd. - More code refactoring and some internal fixes to remove some warnings TODO List = - Improve the implementation of the send mechanism adding the Paraslash solution based on queue How to contribute? == Please, contact me at leandroal [at] gmail [dot] com Where is DCCP Plugin? = The DCCP plugin for GStreamer is under version control of the E-Phone. The E-Phone (Embedded-Phone) project aims to develop a VoIP client for Maemo platform based on DCCP transport protocol. In this project we are also implementing the CCID-4 [5] IETF drafts on the linux kernel. Development: http://garage.maemo.org/projects/ephone Mailing list: http://garage.maemo.org/pipermail/ephone-discuss/ Download: https://garage.maemo.org/frs/?group_id=297 or directly from https://garage.maemo.org/frs/download.php/4252/gst-dccp-0.6.tar.bz2 How to use it with gst-launch command line? = A basic example to stream a multimedia file using ccid-3: * Server: gst-launch -v filesrc location=music.mp3 ! mp3parse ! dccpserversink port=9011 ccid=2 * Client: gst-launch -v dccpclientsrc host=localhost port=9011 ! decodebin ! alsasink -- We also tested with mpg123, to use it: mpg123 dccp://localhost:9011 Please, refer to the src/examples_app/README file for more examples. Is there any application examples? == Yes, refer to the examples_app directory of the source file. Requirements - Linux Kernel with DCCP enabled - GStreamer - Additional GStreamer Plugins to make the example app works Best regards, Leandro. References: [1] http://gstreamer.freedesktop.org/ [2] http://www.read.cs.ucla.edu/dccp/ [3] git://git.kernel.org/pub/scm/linux/kernel/git/acme/net-2.6.25.git [4] git://eden-feed.erg.abdn.ac.uk/dccp_exp [5] http://tools.ietf.org/html/draft-ietf-dccp-ccid4-01 -- Leandro Melo de Sales Pervasive and Embedded Computing Laboratory Computer Science MSc. BRisa and E-Phone Projects Manager Network Admin @ http://embedded.ufcg.edu.br/indexen.html +55 83 3310-1404 (extension 208) http://www.leandrosales.com/ ___ maemo-users mailing list maemo-users@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-users
Farsight 2 for maemo
Is Farsight 2 available for maemo? Thank you, Leandro. ___ maemo-users mailing list maemo-users@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-users
Changing ESSID
Hi list. How can I change the wireless access point via programming code in maemo platform? I have the following piece of code that works perfectly in my laptop, but when used in maemo, the wlan0 interface disconnect but not reconnect to the new ESSID. Any suggestion? Thanks Leandro. int setEssid (char iface[6], char essid[IW_ESSID_MAX_SIZE]) { int soc; struct iwreq wrq; cout Changing Access Points...; strcpy(wrq.ifr_name, iface); wrq.u.essid.pointer = (caddr_t)essid; wrq.u.essid.length = strlen(essid)+1; wrq.u.essid.flags = 1; soc = socket(AF_UNIX, SOCK_DGRAM, 0); if (ioctl(soc, SIOCSIWESSID, wrq) 0) { printf(Error setting ESSID on %s: %s\n, iface, strerror(errno)); close(soc); exit(-1); } else { cout done!\n; } return 1; } ___ maemo-users mailing list maemo-users@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-users
BRisa 0.6 is released!
Hello list! I'm pleased to announce the 0.6 release of BRisa Project. What is BRisa === BRisa intend to be a framework for the Audio/Video/Image UPnP standard. It is written in python and enables creation of MediaServer/MediaRenderer/ ControlPoint UPnP devices. In this way users can share and search content from UPnP A/V devices. It also offers a plugin architecture enabling new services such as Flick, SHOUTcast and *now* YouTube to be added as UPnP media shares. Our main target is the maemo platform, but we recently fix many issues to make it works possibly in windows and Mac OS. What's New since 0.5? = - Many improvements on the SQLObject usage for the Filesystem plug-in - New implementation of XML DIDLite generation - Reimplementation of the content directory service browsing. - Now the content directory is responsible to generate the DIDL response - Support of namespace:id in the id field of XML DIDL - Call specific browser method according to the namespace (which represents a plugin identifier) - A completely reimplementation of the plug-in architecture of the Media Server - The plugin manager becomes a singleton and now the it supports load and unload of plug-ins according to the plug-ins priority field - The usage flag of plug-ins can be controlled through programming (although the default value is read from brisa.conf file) - The plugins now support the implementation of a specific browse method. - Implementation of YouTube plug-in - Many improvements on the SHOUTcast and FlickR plugins - Completely separation of the persistence layer and filesystem plug-ins - Many improvements on the UPnP API: - Now there is just on webserver instance shared between UPnP devices TODO List: === - Enable support to XBox and PS3 control points - Real-time multimedia transcoding according to the renderer capacities of the device target - Implementation of a D-BUS subsystem - Improvements on the UPnP API - Improvements on the new YouTube plugin - Improvements on the use of DIDLite classes - Improvements on the web configuration interface (possibly use django framework) - Improvements on the Python PEP-8 recommendations: although many works have being done here, some classes still out-of PEP-8 recommendations - Adjust the implementation of inotify in the filesystem plugin to support make it able to be notified when a new file (or directory) is created into any shared directory and then read file information and store them into the database - Integration with DLNA standard Where is BRisa Site: http://brisa.garage.maemo.org/ Development: http://garage.maemo.org/projects/brisa/ Mailing list: https://garage.maemo.org/mailman/listinfo/brisa-discuss/ Archives: https://garage.maemo.org/pipermail/brisa-discuss/ Download: https://garage.maemo.org/frs/?group_id=138 UPnP Standard Extension We are also developing an extension* to enable the UPnP standard to support users profile through SOAP web service. This will allow UPnP compliant applications to know more detailed information related to the user that is using the system. The consequence of this stay on the implementation of recommendation systems to improve the way how the media servers (or other UPnP servers) expose information to the users according to the user profile. * Still a working in progress implementation and not merged into the main development line in SVN repository. Best regards, Leandro. Leandro Melo de Sales. Pervasive and Embedded Computing Laboratory BRisa and E-Phone Projects Manager Network Administrator http://embedded.ufcg.edu.br/ There are 10 types of people in this world: those who understand binary, those who don't ___ maemo-users mailing list maemo-users@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-users
N800 as usb host
Hi! I have N800 and since I need to use the kernel git version of linux-omap and in this way it is not possible to compile the WLAN driver against this kernel, I want to plug a usb hub on it (with a mini-usb connector in both of the cable) and use a usb wireless pen drive to connect to a wlan network. Did someone already do this? If I do this, will it work? Any suggestion/clue will be accepted. Thank you. -- Leandro Melo de Sales. Pervasive and Embedded Computing Laboratory http://embedded.ufcg.edu.br/ +55 083 3310-1404 (extension 208) There are 10 types of people in this world: those who understand binary, those who don't ___ maemo-users mailing list maemo-users@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-users