ChangeLog for YAMMI

31.07.2005 version 1.2.2
########################
- fixed: not properly replacing umlauts for building valid filenames
- fixed: missing icons and translation files in tarball (bug 1248755)

30.07.2005 version 1.2.1
########################
- added: playlist view (using a configurable html template)
- improved: loading media players in background (reduces startup time) (except noatun)
- fixed: song info dialog: deactivate "correct filename/path" when no filename (song only on media)
- fixed: bug 1241570 (Not completly scanned / Corrupt database) (thanks to Marco)
- added: debian packaging support for the source tree (thanks to Janne)
- updated my development environment to a Suse 9.3 based KDE 3.4.1 (KDevelop 3.2.1)

10.03.2005 version 1.2
######################
- fixed: problems with umlauts in categories/history (saving to correct UTF-8 encoding now)
- fixed: crash when scanning unreadable directories (eg. over samba shares)
- fixed: exit program instead of infinite loop when noatun option "allow only one instance" checked
- fixed: noatun stops playback sometimes
- fixed: icon transparency in prelisten icons (on dark backgrounds)
- improved: song info dialog nicely shows inconsistent filenames/paths and allows to correct them
- improved: prelisten functionality now fully configurable (also fixes prelistening to flac files)
- improved: added confirm dialog when editing more than 20 songs
- improved: made gstreamer audiosink configurable
- updated: italian translation
- updated: handbook


18.01.2005 version 1.2-rc2
##########################
- improved: finally switched to taglib
  - removed dependency to id3lib and ogglibs
  - correct handling of all file types and tags that taglib can handle (eg. flac)
  - custom genres are allowed now
    (changed representation from int to string and added menu entry to fix an existing database)
- improved: consistency mode:
  - save tags immediately (after changing song attributes in song info dialog)
  - keep filenames consistent (also after changing song attributes in song info dialog)
  - keep directories consistent (also after changing song attributes in song info dialog)
- improved: application icon (thanks to Alessandro)
- improved: context menu -> go to Folder (menu shows available folders, samplers correctly treated)
- fixed: artsplayer crash (sorry for that one...)
- fixed: yammi becoming unresponsive if noatun not available (thanks to Bernhard)
- fixed: character conversion when reading characters from id3 tags (using fromLocal8Bit on reading tags)
- fixed: deleting files (moving to trash dir) if moving across partitions (thanks to Bernhard)
- fixed: deadlock when closing yammi while initialization
- fixed: restoring "guessing mode" setting
- fixed: crash (NPE) when reading layer information from corrupt mp3 files


13.12.2004 version 1.2-rc
#########################
- added: italian translation (thanks to Alessandro)
- added: spanish translation (thanks to Miguel)
- added: GStreamer support (experimental, thanks to Martin)

- added: reading ogg vorbis or id3 tags in *.flac files (no layer info(length, bitrate) yet)
- added: option to follow symlinks on scanning
- added: trying to read ogg vorbis tags in flac files
- updated: yammi handbook

- fixed: proper escaping of filenames for playing in artsplayer or noatun (eg. files containing '#')
- fixed: starting yammi via yammi.desktop file (no more console opened by default)
- fixed: application icons in bigger sizes
- fixed: corrected installation in KDE menu under Multimedia/Audio Player
- fixed: export to m3u plugin: no more empty line at end of resulting playlist
- fixed: suffix "..mp3" shown in proposed filename in song info dialog
- fixed: corrected makefile.am in icons to correctly create directories
- fixed: crash on closing yammi (correctly waiting for search thread to terminate)
- fixed: yammi can be called with --nofork option now (eg. for debugging)
- fixed: scanning id3 tags with umlaute in certain environments (=> calling Link() on id3lib with local8Bit() conversion)
- fixed: conflict on findSignal() for XmmsPlayer / NoatunPlayer
- fixed: correct default value + saving of filename pattern (for scanning)
- fixed: crash after deleting songs (when in folder "All Songs")
- fixed: crash on checking consistency (correcting directory, but no leading slash in pattern)
- fixed: goto Artist/Album/... via keyboard shortcut: correct selection of songs
- fixed: all songs (invisibly) selected after right-clicking on empty folder
- fixed: crash when using "Switch To/From Playlist" without a folder  remembered
- fixed: crash on first start when clicking on songlist when no folder was chosen
  ...and some more minor issues

14.09.2004 version 1.2-beta
###########################
Major:
- added: dcop interface (thanks to Daniel Raneland)
- added: toolbar button for "Switch to/from playlist"
- added: configurable key bindings (according to kde standard)
- added: i18n support (translation capability according following the KDE standard)
- improved: consistency check
- fixed: compiling with --disable-xmms

Minor:
- ported yammi handbook from sgml to docbook format
  - including documented requirements for installation / compilation
- improved: media player can be changed on-the-fly (no restart of yammi necessary)
- fixed: proposed filename changes while you type in songinfo dialog
- fixed: bug: only selecting first 201 songs in folder popup menu
- fixed: saving setting for filenamePattern (like "*.mp3 *.ogg")
- fixed: shuffle playlist/toggle_playlist are back in the playlist menu
- fixed: search for similar: put the search text into the search field
- fixed: behaviour of shift+up/down after search (when focus still in search field)
- fixed: proper replacements of placeholders in group mode
- fixed: progress dialog disappearing on scanning harddisk
- fixed: restore on startup: autoplay mode, playlist, song position
- fixed: check consistency for whole song database: only one song selected
- fixed: media player integration: cleanup and fixed some incorrect behaviour in noatun and artsplayer
- fixed: appropriate applicaton icon installed
- fixed: smaller size for dialogs to work on 800x600 screen
- fixed: {fileDialog} replacement for plugins, adding of standard plugins


02.07.2004 version 1.2-alpha-3
##############################
Fixed some major bugs:
- fixed: importing old database
  (if you already used another 1.2-alpha version of yammi and have an empty song database now:
   if you delete the directory ~/.kde/share/apps/yammi, then yammi will automatically import your old
   database from ~/.yammi)
- fixed: updating id3 tags did not work if no tags were present in the file
- fixed: loading database from a given dir (using a command line parameter, try "yammi -h")
- fixed: connecting to xmms
- fixed: yammiui.rc not installed => aborting with correct error message
  (you have to have the yammiui.rc file correctly installed at (eg.) /opt/kde3/share/apps/yammi/yammiui.rc,
  please set KDEDIR to (eg.) /opt/kde3 before calling configure: "export KDEDIR=/opt/kde3")
- fixed: qt versions of .ui files (now QT >= 3.2 should be sufficient for compiling)
- fixed: fixed-size (g)char arrays: now using QString classes whenever possible


07.06.2004 version 1.2-alpha-2
##############################
- fixed: a bug that caused a crash when yammi was started without any existing song database

06.06.2004 version 1.2-alpha
############################
MAJOR CHANGES:
- new: yammi is a proper KDE application now!
  => new translation scheme (i18n kde default scheme)
  => requires kde libs
  => --disable-KDE and --disable-noatun switches removed from configure script, both are enabled by default now
  => making use of KDE's xml GUI framework
  => first version developed and tested on new development environment (Suse 9.0)
     - kde 3.2.1, gcc 3.3.1, qt 3.2.1, kdevelop 3.0.2
     - autoconf 2.5.7, automake 1.7.6
     - noatun 2.4.1, xmms 1.2.10 (not working on my system yet)
  
- added: arts media player (thanks to Luis)
- added: consistency check which checks location of a file, moving it if necessary
- added: progress dialogs on startup for reading database, categories and history 
- improved: fuzzy search now gets done in a background thread


MINOR CHANGES:
- added: button to add standard plugins
- added: option to delete empty directories on consistency check 
- added: automatic folder "by year"
- added: (ugly) application icons in 16x16, 32x32, 48x48, 64x64
- added: cancel button for consistency check confirm dialog 
- improved: placeholder usage in plugins ({artist} instead of %a)
- improved: converted xpm icons to png icons that get installed properly
- improved: random song selection (applied random number patch, thanks to Patrik)
- improved: replaced custom icons with existing ones 
- fixed: broken noatun communication (apparently due to API changes in a newer version of noatun)
- fixed: recent folder now works again
- fixed: symlinks are not followed when scanning directories
- fixed: interpreting ogg vorbis comments as utf-8
- fixed: clicking with left mouse button or using wheel on track slider works now as expected
- fixed: removed configure option for "number of best matches" for fuzzy search (not necessary, possibly - - fixed: implemented skip backward functionality in artsplayer
caused a bug)


######################
24.10.2003 version 1.0
- added a "go to fuzzy folder" functionality using yammi's fuzzy search capabilities for switching to a folder:
  press Ctrl-G to switch to the folder best matching your search term
  (press multiple times to iterate over the best matches)
- added a virtual "Not on media" subfolder to media folder
  (to quickly access all songs not contained on any media)
- finished replacing the "butt ugly" icons (thanks to Sandra for her artwork!)
- put prelisten toolbuttons in a separate toolbar
- improved german translation (thanks to various contributors)
- added hungarian translation (thanks to Marcel)
- fixed: sorting in "Recently Added" folder
- fixed: scanning removable media: take directory from dialog, not settings
- fixed: memory leak in folder.cpp (thanks for the patch, David)
- fixed: crash when applying "clear playlist" to an empty playlist
- fixed: "cannot move songs in playlist"-bug


########################
31.08.2003 version 1.0-rc1
- implemented "reread tags from file" functionality in consistency check
- started improving the icons, thanks to Sandra (to be finished...)
- added the possibility to ignore case in filename check (tick the checkbox in the settings)
- checking for existence of directory "categories" before saving, creating it if necessary
- added possibility to select files or m3u files to import into database,
  see Database menu (as an alternative to recursively scanning a directory)
- added "Recent Additions" folder, yammi switches to that folder after scanning for songs
- moved all classes from mp3info into top-level folder (due to compilation issues)
- "dequeue" called from playlist now only dequeues the selected entry (if song more than once in playlist)
- replaced my personal email address with the new mailing list address (yammi-developer@lists.sourceforge.net)
- added a "Go to folder..." functionality in song context menu to quickly go to corresponding album/artist/genre folder
- added a "Load .m3u into category" menu entry with the corresponding functionality
- current autoplay mode now also gets saved for next session
- hopefully fixed problems with reading/writing genre tags with id3v2
- fixed problems when renaming files which are currently enqueued in xmms
- fixed setting baseDir correctly (preferences got read from /written to different locations)
- fixed the sorting bug when hiding columns, correctly sorting last played "never" to end of list
- fixed a bug when invoking "Play now" on multiple songs (first songs were not enqueued)
- fixed renaming files on windows file system when filenames are identical except case
- fixed compilation issue when configuring with --disable-id3lib and --disable-xmms
  (undefined reference to `g_strconcat' / `g_free')
- fixed: file permissions are now preserved when modifying ogg tags
- fixed: deleting or moving a file should work, even if directory ends with slash


########################
14.05.2003 version 0.8.2
- "longest not played" now chooses randomly from the candidate songs (if more than one song with same timestamp)
- switch to/from playlist with toolbutton or keyboard (CTRL-P)
- patch from Stefan applied (cleaning up and probably fixing some memory leaks)
- new configure.in from Bob
- implemented a "partly checked" icon & behavior for "Insert Into" category
- songs already in a category won't be added again
- fixed song slider/window title refresh behavior
- fixed grouping bug: empty values will now be grouped, too (if threshold was set to 1, empty entries caused problems)
- implemented a dummy player class (if no media player available, easier code maintenance)
- dialog for clearing playlist improved
- check for existing file on grabAndEncode
- changed the executable in the grabAndEncode script from "notlame" to "lame" (as this is the executable on my system)
- fixed writing ogg tag album ("testing album" bug)
- fixed behavior (song order) when using EnqueueAsNext/PlayNow on more than one song
- added EnqueueRandom and EnqueueAsNextRandom (enqueue with a random order of songs)
- added "Shuffle Playlist" as an item into new menu "Playlist"
- removed "current song" toolbutton and functionality (was too buggy and crappy)
- added a workaround for noatun stops playing if crossfading set to 0 (but creates pauses between songs)
- added viewing/hiding toolbars via view menu + saving to next session (but not position yet)
- added hiding of columns via view menu + saving to next session
- adding to media: entries already existing on that media won't be added

########################
 version 0.8.1
- just a fix in the config.h file due to compiling problems


############################
25.03.2003 version 0.8.0
- changed and hopefully improved configure script and makefiles
- added an advanced guessing mode (identifying "/artist/album/01 - trackname")
- added command-line parameter to specify different base directory (for database and settings)
- inserted a proper autoplay function (working on all folders)
- finished noatun support (skip backward, restarting instances)
- set default sort order for albums: trackNr
- fixed: genre grouping bug
- fixed: table headers not restoring to saved value on first appearance
- last open folder will be remembered for next session
- a lot of minor changes and cleanups
############################
12.02.2003 version 0.8.0beta
- support for noatun!!! (controlling two noatun instances via dcop, enabling crossfading!)
  - added configuration for crossfading with noatun
  - cleaned up the abstract media player class and communication between player and Yammi
    (=> enabling to more easily support other players)
- introduced an option to configure the filename pattern
- added warning dialog boxes when correcting tags or filenames
- added a field "proposed filename" to song info dialog, changed labels to (read-only)lineEdit widgets
- using genre table provided with id3lib
- little changes to configure.in (no more checking for id3lib, you have to disable it manually if needed)
- added some new replacements: %X, %Y, %W, %L, %r
- added "insert into->new category" (finally, Tom!)
- Autoplay function now takes the songs that haven't been played longest (based on logging)
- minor bugfixes
- started cleaning up code...(eg. abstract media player class)

######################
14.12.2002 version 0.7
- fixed a lot of bugs that prevented compiling on many systems:
  - replaced stdlib io functions with the corresponding QT file access methods
  - added "using namespace std" declarations (needed by gcc3.x compiler)
  - conformance to stricter rules of gcc3.2
  => successfully reported to compile with gcc3.2/QT3.1/KDE3.1rc3
  => successfully compiled on sourceforge's compile farm on Linux 2.4/RedHat 7.3
- added --disable-ogglibs and --disable-id3lib configure switches to disable linking aginst these libs
- added a (experimental and primitive) autoplay function for categories
- added writing of ogg tags (beta-status)
  (only the tags corresponding to id3v1 tags will be written, other tags will get lost)
- improved system for checking consistency of database or a selection of songs
- added a dialog box for configuring the consistency check
- improved "Burn to media" function: takes size of existing files into account
- Yammi now waits for Xmms to have started when it is not running yet
- many minor improvements and bugfixes
- for mp3 tag scanning, use of newest id3lib (3.8.2) is recommended!
  (problems of not recognized tags with older versions (probably, if both id3v1 and id3v2 tags present)

##########################
28.9. 2002 version 0.7beta
- improved playlist management: last played song now also gets deleted from playlist when xmms stops
- started supporting session management (saving database before shutdown)
- started using an abstract "MediaPlayer" class to prepare support for other media players than xmms
- cleaned up menu structure
- added support to extract header from ".wav" files to extract length and bitrate from wave files
- column order and position in songlistview gets remembered, saved and restored
- maybe still not working correct: restoring session geometry:
  => reported x/y-position *sometimes* gets shifted by size of decorations...strange!
- new icon set for media player controls (ie. currently only xmms controls)
- added basic support for .ogg files (Thanks to Philip Scott!):
  - only reading ogg tags, no saving implemented yet
- new id3 layer reading, handles VBR correctly
  (thanks to Gustav Munkby and his CMP3Info class, see http://home.swipnet.se/grd/mp3info/mp3doc.html)
- new mechanism to read id3 tags (now using id3lib, see http://www.id3lib.org)
- improved plugin configuration: uniformly dealing with song and playlist plugins
- added a dialog for scanning harddisk and media, allowing:
  - option to check existence of files in Yammi's database, if necessary update or delete the entry
  - scan arbitrary files (eg. ".mp3 *.ogg *.wav", ...anything you like)
    (however, only on mp3 files and (new!) ogg files Yammi will be able to read tag information)
- successfully tested dcop commands for sending a song to noatun / shutting down kde in a regular way
  => see new plugin page on homepage for examples



#########################
13.8.2002   version 0.6.1
- bugfix: removed the #include "id3/tag.h", to make Yammi compile without id3lib installed

#######################
9.8.2002    version 0.6

- ported to Qt3
- dialogs scale reasonably now
- added a toolbar for controlling shutdown mode
- window position & size will be saved for next start
- does not automatically set Windows-Style => allows any styles (such as Liquid)
- Yammi finally gets an individual icon (for titlebar and kicker)
- toolbutton + key-combination (SHIFT-F7) for playing a song immediately without crossfading
- improved handling of customlist in playlist plugin
  (gets written/read from a file now instead of simply inserted into the command)
- simplified sleep mode (shutdown mode), added dialog box to cancel the shutdown
- bugfix: all defined playlist plugins show up in context menu now


#####################
19.5.   version 0.5.3

- changed database format: primary key now is artist + title + album!!!
	(The necessary updates to your categories and history file will be done automatically
	on first start.)
- corrected the format of the database XML file (was not 100% correct XML)
  (Will be corrected automatically on first start, too.)

=> future versions of Yammi will not be able to read a song database saved with
a Yammi version 0.5.2 or earlier!

- probably last version based on qt2.x, next version will require qt3.x

- changed format of history file to XML
- history file will be updated on database changes (to keep consistency)
- improved "update song database" function, should behave more consistent now
- replaced most of the system calls with the corresponding QT calls
- added skip backward functionality (moves songs from folder SongsPlayed to Playlist)
- adding songs to folder "Songs Played" is now done after they have been played, not before
- changed shift/ctrl+left click to shift/ctrl+middle click
  (as shift/ctrl+left is needed for standard listbox operations)
- added progress dialog to "burning media"
- fixed a few bugs


#####################
28.4.   version 0.5.2

- a few bug fixes related to jukebox functionality
- added progress dialogs+cancel possibility to operations that might take longer
- added shift/ctrl + left click for configurable actions, all actions configurable now

#####################
17.4.   version 0.5.1

- added jukebox functionality:
  - additional toolbar with needed media / load button
  - "Scan removable media" entry in file menu
  - a lot of rewriting of internal structures to cope with songs that are not
    available on local harddisk
- rewritten "Update Database" function, should better react to
  - moved songfiles
  - songs added twice at different locations
  - problematic songs
- multiple plugin commands can be configured now
- implemented replacements for song plugin

###################
7.4. 		version 0.5

- added version to preferences and songdatabase
- only changed categories will be saved
- moved "new category" from main menu to context menu on categories
- added a basic song and songlist plugin possibility (eg. for mp3burn, cdlabelgen)
  to invoke a program with parameters from selected songs (filename, title, length, ...)
- improved internal folder structure
- improved update actions on database changes
- changed communication with xmms a bit, now requires xmms 1.2.6 or later!
- changed categories into ordered lists (=> now can be used as true playlists)
- added folder for genres
- completed docs


#####################
16.3.			version 0.4
- 16. 3. updated documentation, should be a good basis now
- 15. 3. new checkConsistency diagnosis
					tags/filename will only be checked if enabled in prefs
- 14. 3. added basic support for id3 genres (sorted list would be nice)
- 14. 3. added "search for similar" to context menu

- 18. 2. added slider for song position
- 17. 2. logging of songs is now done at every songchange, not when ending program
- 17. 2. added lastPlayed attribute to songs, computed when reading history
- 15. 2. bugfix: scanning from non existing directory

#######################
11.2.			version 0.3.1
- 11. 2. cleaned up distribution
- 11. 2. little bugfix

#####################
10.2.			version 0.3
- 9. 2. added extended song info (timestamp, string, int) to certain song entry lists
- 6. 2.	added number of songs to folder name in several folders

#####################
18.1.			version 0.2
- 18.1. took over playlist management (adding, deleting, moving songs)
- 18.1. completed toolbar with quite ugly buttons
- 13.1. a more reasonable option to grab(paranoia) & encode(notlame) songs from cd
- 13.1. snappy filling up of lists
- 12.1.	first step to take over playlist management (dragging songs around)
- 12.1.	restructered context menu

#####################
10.12.		version 0.1
- 5.12. got sourceforge project page, preparing for first release
- 17.9.	showing currently played + last n songs in a folder
- 14.9.	search & play only mode
	(eg. for partys, so nobody can by accident damage your database and files)
- 10.9.	new configure dialog, make more things configurable
- 8.9.	support for removable media (CDs and DVDs) containing mp3s (initial)
- 8.9.	support for burning mp3s on CD? (initial)
- 4.9.	check consistency (songs contained twice)
- 1.9 	logging of played songs (initial)
- 31.8. implemented "enqueue as next"