Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pmcgui [2007/07/13 17:06] – MathieuPrevotpmcgui [2008/06/17 21:37] (current) – converted to 1.6 markup 127.0.0.1
Line 10: Line 10:
  
 Management / welcome screen: Management / welcome screen:
-The user associates PMCs (measurements) and processes. A set of allowed measurements i.e. according to the CPU - will be proposed to the user. Target processes can be selected by mouse.+The user associates PMCs (measurements) and processes. A set of allowed measurements i.e. according to the CPU  - will be proposed to the user. Target processes can be selected by mouse.
  
 Display/monitoring: Display/monitoring:
Line 17: Line 17:
 ==== Implementation ==== ==== Implementation ====
  
-It's mostly in python and c, and is event driven (asynchronous). The GUI itself use wxPython. The program use %%FreeBSD%% specific and non %%FreeBSD%% specific system calls. A makefile generate a quick and dirty python module to pmc(3). It can be a good idea to simulate //pmc_read()// output in a first time. See http://blogs.freebsdish.org/mprevot/ for more details, and discussion.+It is committed with the Enlightenment 0.17 libraries, that are BSD licensed. Lastest sources can be obtained by
  
-A port is not done yet, but you can use ''%%pkg_add -r py24-wxPython py24-freebsd py24-ezpyinline%%'' for dependencies.+**cvs -z3 -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e17**
  
-A main event loop [G] manage user interface events (mouse and keyboard events) and other workers. One thread [S] get every second the state of the system, eg active processes that can be bound to. One thread [P] get pmc data. One thread [V] build images every 1/25s. +The following APIs can be found in the directory freshly created e17/libs:
-[G] can create or kill workers, but have readonly access to the data they generate. [V] have readonly access to [S] and [P] generated data.+
  
-==== Next week schedule ====+  * Imlib2 
 +  * Eet 
 +  * Evas 
 +  * Ecore 
 +  * Edje 
 +  * Epeg 
 +  * Epsilon 
 +  * Ewl 
 +  * Etk 
 +  * Emotion 
 +  * Engrave 
 +  * Efreet
  
-  * State system thread worker. Processes are displayed and sortable per uid, cpu usage, name.+However **Ecore** and **Evas** are the only libraries necessary to implement a UI. **Edje** is a theming library. It combines complex groups of evas objects into a single evas ‘smart object’. This Edje_Object can be placed on the canvas and used in almost the exact same manner as the primitive Evas objects. It also handles animation.
  
-  * pmc(3) simulator.+**Evas**
  
-  * Double buffering display, graph constructor.+Evas is a canvas library that handles all the low level graphics work. Rather than painting pixels yourself, you simply define a set of Evas_Objects such as rectangles, images and gradients. Tell Evas where you want these object to be located, set their color, transparency and stacking, and Evas does all the calulating to blend these together into a single image, ready for display on the screen. Evas includes several engines that output to different display environments. (Software_X11, OpenGL_X11, %%DirectFB%%, Buffer, etc).
  
-The GUI loop will naturally grow as other parts of the program are added, and feedbacks are made.+**Ecore** 
 + 
 +Ecore is really a set of small libraries. It handles a lot of the guts of the EFL; things like Events, Timers and IPC. It also includes Ecore_Evas, which wraps creation of an Evas and a window to put it in into a simple API. 
 + 
 +In e17/apps several applications can be found but many tricks and patches are needed to put these application to life. Not all libraries are in the %%FreeBSD%% port system, are outdated and, in particular, there is no Python bindings to the APIs. 
 + 
 +===== How you can install and test the user interface ===== 
 + 
 +Download the package (not yet a port) at ?, build and install the UI by: 
 + 
 +../autogen.sh; make; make install 
 + 
 +To allow the UI to work,you need the following ports: 
 + 
 +and you need the following kernel configuration: 
 + 
 +Optionally, you can also have: 
 + 
 +===== How you can help ===== 
 + 
 +First, suggestions are welcome. For this, write to me at mprevot@freebsd.org. 
 +Many things need to be done yet. Find here a TODO list and ideas for your involvement. 
 + 
 +  * make a port 
 + 
 +  * update dependencies, ie. APIs on which the UI depends 
 + 
 +  * make a documentation 
 + 
 +  * ... 
 + 
 +and: 
 + 
 +  * test UI schemes, provide feedback and, suggest new schemes 
 + 
 +  * report bugs
  
  • pmcgui.1184346377.txt.gz
  • Last modified: 2007/07/13 17:06
  • by MathieuPrevot