Symella S60 1.40 release notes
---------------------------------
last modified on December 11, 2009

Webpage: http://symella.aut.bme.hu


Table of contents:
------------------

    1. General info
    2. Using Symella
    3. What's new
    4. Known issues
    5. Building the project (for developers)
    6. Configuration files
    7. Credits


 1. General info
 ----------------

   Symella is a basic Gnutella client for mobile devices based on the S60 platform. It is
   capable of searching and downloading, but do not upload any data in its current release.
   It supports multi-threaded downloads which means that if multiple users have a particular 
   file then Symella can download the file from several locations simultenously.

   The number of search results returned highly depend on the quality of the peers you are
   connected to. In the current version there isn't any kind of optimalization for
   choosing which peers the client tries to connect. Searching for the same text
   after restarting the program can result in different number of hits.
   However, an anonymous profiling tool was introduced which helps us to improve the SemPeer
   protocol in order to help you obtaining more relevant files and fight against spams. However, 
   if you do not want to support us with these data, you can disable this function in the Settings
   block.

   Be patient with the downloads! It can take some time until the transfer starts
   (it happens when one of the target peers accepts your connection request).

   Symella 1.30 was tested on Nokia N91, Nokia N80 (S60 3rd) and Nokia N70, Nokia 6600 (S60 2nd) smartphones.

   Symella was developed in the mobile research laboratory of the Department of Automation and 
   Applied Informatics at BUTE. (http://www.aut.bme.hu/)

   Symella is free software and is under the GNU General Public License. Check license.txt for
   more info.


 2. Using Symella
 -----------------

   The application has three so-called "views". The first one is the Connection View which lists
   the active Gnutella connections along with their statuses. The second view is the Search View which lists 
   the current search results (query hits returned for the last search request). The last view displays
   the download queue.

   Connecting and searching the Gnutella network:
   In order to be able to search for files you must be connected to at least a couple of other peers. The Connections
   View is for displaying information about the active Gnutella connections. You can start searching if you can see
   2 or 3 connections with an "Ok" status. 

   The main menu options are as follows:

    Connect     - Selecting this menu item starts the connection procedure. You have to
                  be connected to at least one peer to be able to start searching (at
                  least one connection must have an "OK" status).

    Disconnect  - Disconnects from all servants (this doesn't effect active downloads).

    Search      - Sends a new search request. Previous search results are discarded.

    Settings    - Opens the settings dialog.

    Add peer	- It can be used to manually add a specific peer to the connection pool

    Reset cache - Deletes all entries from the host cache. This action forces the application
                  to look for new servant addresses (connects to GWebCache).

    About       - Opens the about dialog (contains version number).


3. What's new?
--------------

    1.41 -  Installer certificate update (should be valid for 10 years)
            Added support for dynamic screen size/layout change (rotating the screen while the program is
            running works)
            List of default GWebCaches has been updated to more recent ones
            Briefly tested on S60 5th (Symbian^1) and seems to work well

    1.40 -  Added access point selection setting (the default network connection can be set through the settings).
            Improved GWebCache support, the webcache addresses can be edited through the settings. Symella also queries webcaches for
            addresses of other caches. 
            More details are given in the connections view during the webcache connection process.
            Fixed a bug which caused a crash when the user tried to download an already existing file.

    1.32 -  S60 2nd edition is officially supported again.
            Added search field to the Search result view (the list of results can now be filtered based on a given word).
            T9 has been enabled in the "Search for" dialog.
            The list of default GWebCache addresses has been extended and the setting for changing the list has 
            been removed.

    1.30 -  Ported to S60 3rd edition (S60 2nd edition is not supported in current version). Tremendous number
            of bugs were discovered and fixed. Some UI tweaks (removed unnecessary menu items, renamed some
            of titles and we also have a new scalable application icon now, thank you Dorka! :). 

    1.02 -  Modified the engine to be compatible with earlier (Symbian 6.1) phones
            (have to remove EscapeUtils::EscapeEncodeL and write an own url encoder).
            Now it compiles with Series 60 SDK 1.2 too.

            Before creating the settings file, the program checks for the default download
            directory (E:\Sounds or C:\Download) and makes it if it doesn't exist.


    1.01 -  Modified the observer class MSASearchResultsObserver to allow the S80 port to display the
            file sizes in the search results list. Added some comments and created this file.
            We have some new application icons too (thx Hugo!)

    1.0  -  Initial release


4. Known issues
---------------

   For some unknown reason, the phone's built-in audio player fails to start playing downloaded audio files
   if they are started from Symella (if you open them manually then there is no problem).

   Sometimes a search query returns no hits. Doing the search once more usually solves the problem.


5. Building the project (for developers)
----------------------------------------

   This version has been developed under S60 3rd edition SDK MR1 and S60 2nd edition FP2 SDK.

   Build instructions:
        1.  In the group directory type "bldmake bldfiles"
        2.  Use makmake or abld to generate project files for emulator builds
        3.  For device builds you can use "abld build gcce" for 3rd edition and 
            "abld build thumb urel" for 2nd edition
        4.  Before using makesis to create a sis file check the directory paths
            in the supplied package file!
        5.  If you are building for S60 3rd, you will also need to generate a key for self signing

   During the build process several warning messages will show up, you can ignore them.

   The project files arranged in the following structure:

        src\engine      - source files for the engine (ui independent) part of the project
        src\series60ui  - source files for the ui (the standard application framework
                          classes)
        inc\engine      - include files for the engine
        inc\series60ui  - include files for the s60 ui dependent files
        data            - resource definitions included here
        group           - the standard project files
        gfx             - bitmaps, icons, etc.
        sis             - a package file included here, it's likely that you will have
                          to change the directory paths

   While source files (and classes) of the engine prefixed with the "SA" tag, the names of the UI
   dependent files begin with "Symella".


6. Configuration files
----------------------

   The program creates 3 configuration files:

    gwebcaches.cfg  - stores a list of predefined Gnutella Web Cache addresses, all addresses must end with '/'

    hostcache.cfg   - stores a list of working servant addresses after the
                      application exits

    settings.cfg    - general settings (download directory, maximum number of
                      simultaneous downloads, etc.)

   Theoretically these files can be edited with a text editor, but it isn't recommended.
   You can change most settings in the "Settings dialog" accessible through the options
   menu.


7. Credits
----------

   Authors:
        Imre Kelnyi (imre.kelenyi@aut.bme.hu)
		main engine, UI
	Bertalan Forstner
		lots of work on the S60 3rd edition port, bugfixes, sempeer extension
        Balzs Molnr
		some parts of the engine and UI of the initial release	

   Special thanks to Dorottya Takcs for the nice new scalable application icon!

   Thanks to Hugo for the S60 2nd edition application icons!

   Some of the gui icons (Series 80) were downloaded from http://www.treepad.com/free_icons/
