BRisa Release 0.10.0

2009-06-15 Thread Leandro Sales
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

2009-02-05 Thread ext Leandro Sales
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

2008-08-07 Thread Leandro Sales
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

2008-07-06 Thread Leandro Sales
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

2008-06-02 Thread Leandro Sales
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

2008-01-28 Thread Leandro Sales
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!

2007-08-20 Thread Leandro Sales
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

2007-07-18 Thread Leandro Sales
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