2007-10-01 wilkason * lib/soundControl.tcl: Use sort -real for autolevel numbers, since they are real numbers. * lib/gpUtils.tcl: Updated background copy routine, and added faster version as well * lib/commandline.tcl: Utility updated to make sure tags are updated and upgraded when gain is applied * lib/saGUI.tcl: Clicking on the snackamp tray icon will always bring the player to the top, used to toggle visibility. * lib/catalog.tcl: * lib/saSettings.tcl: Added option to use a faster file copy method for removable media, downside the currently playing music may studder * lib/metakit.tcl: Fixed bug that would not always upgrade a V1 tag to V2 even if the option was enabled. * lib/autoPlayList.tcl: Added option to re-check gain tags to make sure they are up to date * lib/id3.tcl: Commented out some unused code * lib/freedb.tcl: Updated parsing of query data for newer freedb format. 2007-07-03 wilkason * lib/id3.tcl: Catch invalid (non-numerical) tag lengths * lib/gpUtils.tcl: Return 0 instead of blank for commified zeros * lib/metakit.tcl: - Fix syntax error when removing files - Upgrade tag type in database when tagging for track album gain * lib/macros.tcl: Add option to prompt user to replace playlist when selecting a new autoplaylist * lib/saSettings.tcl: - Add option to upgrade V1 to V2 tags to hold track_gain and album_gain tags (rockbox uses them) - Add option to confirm a playlist change when selecting a new auto-playlist * lib/imageScale.tcl: Handle divide by zero error 2007-04-15 wilkason * lib/saSettings.tcl: - Bump up default and allowable buffer size for http server * lib/catalog.tcl: Show % progress when indexing tracks and removing stale entries * lib/HttpD.tcl: - Ignore file extension case - Common buffer size setting * lib/metakit.tcl: - Optiont o show a dialog when pruning old tracks 2007-03-17 wilkason * lib/urlBrowser.tcl: - Put playlist track information in separate table colums - When browsing only show prev/next if some data actually exists * lib/saSettings.tcl: Change help text for buffer size * lib/HttpD.tcl: Catch minor version error * lib/gpUtils.tcl: * lib/saGUI.tcl: Change rating from circle to diamond shape * lib/soundControl.tcl: Added pushTitle function * lib/playurl_mc.tcl: - Change characters that are shown for buffering - Adjust buffer sizes to ensure snack consumes entire fifo, otherwise some data is lost causing a skip (this overcomes a bug somewhere in snack, socket buffers, or memchan - Restore title after volume change 2007-03-10 wilkason * lib/urlBrowser.tcl: - Added seach form to browser page to allow seaching in jukebox mode - Browse button can now cycle through multiple hits (folders) of the same text rather than always find the first one found. * lib/saSettings.tcl: - increased default socket counter value from 200 to 5000 * lib/autoPlayList.tcl: When auto-renaming paths, replace _ with space * lib/macros.tcl: Don't try and configure time scale widget to a non numeric time * lib/urlRedirect.tcl: Changed method to add shadows under album art. Old method didn t allow text to wrap properly under the album name. Requires use of new snackamp.css file, or at least merging in the shadow .. css entries. * lib/HttpD.tcl: - added .js type and changed .css to text/css - fixed bug to retain ip address on connect - Make file buffer size same as socket for fcopy * lib/metakit.tcl: When returning tracks in a folder, always sub-sort by album name. Used for web interface * lib/catalog.tcl: - Bug fix: strip embedded / in tags when auto renaming files - Bug fix: cache base folder names to ensure autoplaylist shows tree on restart 2007-03-03 wilkason * lib/metakit.tcl: Slight dialog change * lib/id3Editor.tcl: * lib/id3Renamer.tcl: - Combined smart file name with catalog namespace * lib/catalog.tcl: - Improved code to mount/unmount active media folders - Improved smart file name code for copying to media players and ID3 renaming based on tags * lib/macros.tcl: * lib/saGUI.tcl: Moved copytomedial player routine to catalog namespace 2007-02-25 wilkason * lib/autoPlayList.tcl: minor code clean up * lib/saSettings.tcl: - Simplified method to pack/clean database - Added default file renaming tag schemes * lib/gpUtils.tcl: Improved smart naming and case fixing scheme Tweaking parameters on bcopy * lib/catalog.tcl: Added some instructions to media path dialog * snackAmp.tcl: Commit the database on a slower schedule * lib/playurl_mc.tcl: Handle error when reading fifo * lib/id3Editor.tcl: Allow / folder separater when renaming tracks from tags * lib/HttpD.tcl: Use TrackFromDb instead of fileByPosition * lib/id3Renamer.tcl: Uses history combo box for file renaming to maintain history of different methods * lib/gpWidgets.tcl: Added width option to history combo box * lib/catalog.tcl: Added dialog to ask user how tracks should be split when copying to a media player. Can now customize this function. * lib/metakit.tcl: - Added function to return all tracks flagged with APL flag - Restored missing function to return database size - Functions to simplify packing and cleaning up the database for missing tracks * lib/trackList.tcl: Use TrackFromDb rather than fileByPosition * lib/urlStreaming.tcl: - Improved efficency of stream auto playlists - Corrected windows only situation where streaming playlists would produce an empty list and thus a server error. * lib/macros.tcl: - Fixed bug when creating playlists from APL files for certain media mount names - Fixed bug when copying tracks to media players for certain media mount names 2007-02-16 wilkason * lib/gpUtils.tcl: Add roman numeral detection when automatically renaming tracks names and id3 tags * lib/metakit.tcl: using dbObj method rather than mk::get/set when retrieving or setting rows. Improves speed a bit. * lib/autoPlayList.tcl: Added function to clean up selected folder name * lib/catalog.tcl: - Cleaned up code to handle moving files, especially with duplicate names of different case (for windows) - Add roman numeral detection when automatically renaming tracks names and id3 tags * lib/saSettings.tcl: Completed improvements to code when changing media folder paths Will not rename all of the database entries, playlists and autoplaylists. Just make sure the actual files are under the new location. * lib/metakit.tcl: Added missing variable DB reference 2007-02-10 wilkason * lib/saSettings.tcl: - Added icon to apply button in settings - Made the Change button functional in the media manager, now when you use it the database tracks are all renamed to the new folder. Use this if the underlying folder changes names and you don't want to reindex everything. * lib/metakit.tcl: Added function to rename a branch 2007-02-08 wilkason * lib/metakit.tcl: By default use the unsorted database and sort results when needed. This greatly speeds up database scans and updates. Don t immediatly force a commit when scanning a folder. * lib/gpUtils.tcl: Ignore hidden folders when only looking for files * lib/saGUI.tcl: Put credits on the About menu * lib/id3Editor.tcl: * lib/id3Renamer.tcl: Replace "Save" with "Apply" on buttons * lib/gpWidgets.tcl: Reverse cancel/ok button on note editor * lib/id3Table.tcl: Replace "Save" with "Apply" on buttons Add one more case when parsing freedb various files 2007-02-03 wilkason * lib/miniPlayer.tcl: Disable system menu on RMB if one doesn't exist (borderless main window) * lib/macros.tcl: Rewrite of redirect follwoing code * lib/macros.tcl: Remove unused code * lib/gpUtils.tcl: Minor cleanup * lib/playurl_mc.tcl: Force http 2.4+ package Modified buffering scheme to stay within buffer limits better Handle redirects properly without relying on a HEAD request * lib/freedb.tcl: * lib/playurl.tcl: Force http 2.4+ package 2007-01-30 wilkason * lib/metakit.tcl: Comment out non-error puts * lib/imageScale.tcl: Cleaned up use of array variable to track megawidget properties * lib/HttpD.tcl: Added function to substitute html codes for letters * lib/id3Table.tcl: Handle searching for artist and album for freedb on table editor * lib/freedb.tcl: Allow searching freedb for artist and/or album * lib/browser.tcl: Allow searching freedb for artist and/or album fix bug where limit wasn't displayed on html page * lib/playurl_mc.tcl: Allow passing in metadata for tags of usk shortcut files * lib/gpWidgets.tcl: Fixed bug recently added when decoding toplevel position on screen * snackAmp.tcl: Parameter to pass to dnd target * lib/macros.tcl: Improved handleling of playlist file delete Reset sound object if a different file type is being played (linux thingy) Much improved and robust handling of deleting files from the playlist Big cleanup and simplification of handling html and other files when dragged to the playlist or main gui. Now reads the http meta data for html vs. relying on the file extension (which isn't reliable). Handles redirects of streams and xml files * lib/saGUI.tcl: Register scale trough color * lib/id3.tcl: Fixed fringe issue when the code would be left in the database Properly decode Id3 2.4 utf Validate replay_gain numeric values * lib/uri/pkgIndex.tcl: * lib/uri/uri.tcl: Latest Versions 2007-01-09 wilkason * lib/IconSupport.tcl: Changes to support showing pop-up when mouse over icon tray * lib/saSettings.tcl: When adding a new media folder, check to see if an import file exists and use it if possible. * lib/metakit.tcl: Allow the user to place the export file for a path in any folder. Useful if the original folder has gone offline but you still need the database entries (i.e. if you moved it). * lib/gpWidgets.tcl: Fixed a few bugs in positioning the track transition window properly. 2006-12-19 wilkason * lib/browser.tcl: Added search for walmart images as well as google images * lib/saSettings.tcl: Added option to search walmart for images * lib/macros.tcl: Support http redirection when only metadata is provided. * lib/pkgIndex.tcl: added browser package * lib/uri/pkgIndex.tcl: * lib/uri/uri.tcl: * lib/uri/urn-scheme.tcl: Initial Checkin * lib/commandline.tcl: Utility function to search for folders without coverart 2006-12-17 wilkason * lib/saSettings.tcl: - Added option to set limits on the width/height and height/width pixel size ratio to try and get "square" images, i.e. ones that look like typical cover art. - Add options to limit the number of images (that are screened/sorted from the total) to the image browser. Useful for slower links. * lib/gpUtils.tcl: - Added code when querying album art from Google to sort the images by their native size and restrict their width/height ratio to a user defined setting. This ensures "squarish" images are returned with the highest quality images first. - Added option to restrict the number of images returned to the web browser independent of the number of images screened (both are user settings). * lib/catalog.tcl: Remove a couple additional illegal characters when naming tracks based on track title when copying to media player. * lib/browser.tcl: * lib/gpUtils.tcl: * lib/saGUI.tcl: Split our browser related functions into separate package 2006-12-10 wilkason * lib/saSettings.tcl: Option added to filter by album image w/h ratio * lib/gpUtils.tcl: Improved Google image search, uses my CSS, sorts the images descending to make it easier to pick the highest res ones. * lib/autoPlayList.tcl: * lib/saGUI.tcl: Handle a few more image extensions * lib/macros.tcl: Improved copying of images to folders. Support overwriting hidden/read-only files (and restoring attributes), handle more image extensions, handle recursive html redirects, notify user when image can't be copied. 2006-12-09 wilkason * lib/gpUtils.tcl: Extract image size from google image results and display it to make it easier to fix their size in the web browser. 2006-12-07 wilkason * lib/macros.tcl: When playing a url, strip off the parameters before determing file type * lib/catalog.tcl: When checking hard folder exists, try a file exists before checking to help bring it back on line if it was previously out of standby (this may not help). * snackAmphotKeys.tcl: Bind keys 1-5 for track rating (and * for none) 2006-10-24 wilkason * lib/gpUtils.tcl: Change to adapt to newer format of google image query 2006-10-23 wilkason * lib/IconSupport.tcl: * lib/saGUI.tcl: Added track info to balloon info on windows taskbar icon 2006-09-12 wilkason * lib/autoPlayList.tcl: Miinor code cleanup * lib/id3.tcl: Catch id3V2WalkBlock errors 2006-06-10 wilkason * lib/macros.tcl: Use different naming scheme on some mp3 players * snackAmphotKeys.tcl: Control-A on tree averages gains * lib/metakit.tcl: Just log gain error and continue * lib/commandline.tcl: Add command to rename file structure on players * lib/catalog.tcl: Change file structure when copying to smaller mp3 players to reduce tree depth * lib/playurl_mc.tcl: Catch additional socket errors * lib/gpUtils.tcl: Also check hidden files when copying to media players, this gets hidden album art. * lib/autoPlayList.tcl: Make sure current playing track exists when launching APL on it 2006-04-29 wilkason * lib/playList.tcl: Sync to playing for APL was broken, now working again * lib/ircserver.tcl: Support undecorated window for minimize/deiconify properly * lib/metakit.tcl: Handle case on import when field doesn't exist 2006-03-30 wilkason * snackAmp.tcl: Add some functions for platform checking On linux, raise snackamp if running a second instance * lib/saGUI.tcl: Show playlist summary on bottom of playlist for gui without decoration * lib/macros.tcl: Enforce geturl as binary * lib/gpWidgets.tcl: When iterating over windows to set cursor, only use stacked windows * lib/catalog.tcl: Loop every 60 rather than 10 seconds for dirty database flush * lib/metakit.tcl: Show more status when importing tracks * lib/ircserver.tcl: Iterate over stacked windows when changing cursor * lib/id3Editor.tcl: * lib/id3Renamer.tcl: * lib/id3Table.tcl: Improve gridding for edit window * lib/cframe.tcl: Allow control to set a button as sunken when frame is open 2006-03-11 wilkason * lib/gpUtils.tcl: Add some functions to support log conversions for volume * lib/macros.tcl: - Minor code cleanup and rearranging - Display volume in title momentaraly when changing * lib/imageScale.tcl: Support dynamic resizing of the image scaler * lib/soundControl.tcl: - support for log vol scaling - Show vol in title window momentarlay when changing * lib/cframe.tcl: Use fancier image for button * lib/playList.tcl: Add function to return number of viewed lines in the playlist for later saving and restoration. * lib/gpWidgets.tcl: Remove some test code * lib/IconSupport.tcl: Add trayicon support for Linux * lib/autoPlayList.tcl: Catch errors when displaying album art * lib/remoteif.tcl: Support log gain * lib/macros.tcl: Don't save last width if gui is zoomed full screen * lib/miniPlayer.tcl: - Support log volume scale - Minor linux specific gui fix * lib/saGUI.tcl: - Added Borderless main window functionality * lib/ircserver.tcl: Bump the volume in 1 db increments * lib/saSettings.tcl: - Changed some default colors - Save/restore viewed playlist lines - support for log vol scaling * lib/id3.tcl: Put update back in when rewriting a file after editing the tag * lib/id3Table.tcl: Make sure window still exists after coming back from a long operation (http get) and trying to update the gui. * lib/saImages.tcl: - Added change some images 2006-03-07 wilkason * lib/urlMinicontrol.tcl: Support log vol scale 2006-02-16 wilkason * lib/pkgIndex.tcl: Add imageScale package * lib/imageScale.tcl: Initial check of imageScale, a replacement for the regular scale. Allows images to be placed on the handle. * lib/saGUI.tcl: - Globally changes saImages:: to saImages. - Changed the sliders and look-n-feel * lib/saImages.tcl: - Globally changes saImages:: to saImages. - Changed some and added other icons, mostly from KDE distributions, cyrstal or nuvelo * lib/cframe.tcl: Changed the icon * lib/gpWidgets.tcl: - Globally changes saImages:: to saImages. - Added routines to manipulate images and colors * lib/commandline.tcl: Added routine to dump images to files * lib/autoPlayList.tcl: - Globally changes saImages:: to saImages - Added a few more icons * lib/soundControl.tcl: - Globally changes saImages:: to saImages. - Changed how buttons are changed during pause - Don't round the vol position on a change * lib/id3Editor.tcl: * lib/id3Renamer.tcl: * lib/id3Table.tcl: - Globally changes saImages:: to saImages. - Changed some of the icons * lib/gpUtils.tcl: * lib/miniPlayer.tcl: * lib/playurl.tcl: * lib/playurl_mc.tcl: * lib/saFiltering.tcl: * lib/subSorting.tcl: * lib/trackList.tcl: - Globally changes saImages:: to saImages. * lib/saSettings.tcl: - Globally changes saImages:: to saImages. - Changed default colors * snackAmp.tcl: - Changed a couple of default options * lib/macros.tcl: - Immediately pack shown cover art when dropped to target 2006-01-31 wilkason * lib/HttpD.tcl: * lib/catalog.tcl: * lib/ircserver.tcl: * lib/pane.tcl: * lib/playurl_mc.tcl: lsearch -exact * lib/macros.tcl: Fix bug when copying to media as artist/album, was always using unknown for names 2006-01-26 wilkason * lib/catalog.tcl: Added album gain code Move out rename folder function * lib/playList.tcl: Added code to better handle dragging files in playlist * lib/metakit.tcl: Added AlbumGain field, cleaned up some gain control code * lib/id3.tcl: When modifying a track update the last time tag in db with new date * lib/remoteif.tcl: Force a recache on xmms_remote_playlist_add for mp3split * lib/saSettings.tcl: Added gainType, either album or track gain * lib/trackList.tcl: Tracklist handling code, broken out of autoplaylst code * lib/commandline.tcl: Command line tools * lib/soundControl.tcl: Added code to check slope for dynamic range * lib/autoPlayList.tcl: Added album gain menus Broke out tracklist code to separate file * lib/macros.tcl: Use function to limit gain * lib/pkgIndex.tcl: Added trackList package (split off from autoPlaylist) 2006-01-14 wilkason * lib/macros.tcl: * lib/playList.tcl: * lib/saGUI.tcl: * lib/urlBrowser.tcl: * lib/urlRemote.tcl: Update APL File list when rating is changed * lib/gpUtils.tcl: Remove unnecessary albumart cache clear * lib/id3Table.tcl: Add Album<->Title swaip, relayout buttons 2006-01-10 wilkason * lib/saSettings.tcl: - Hide access to teFolders - Fix but when removing an attached media folder, it would be doubly added to the fixed folders. * lib/saGUI.tcl: - Restore location of cover art viewer properly * lib/gpUtils.tcl: - Added lextract list function * lib/playurl.tcl: * lib/playurl_mc.tcl: - Wrapping access to mounted media folders * lib/metakit.tcl: - Wasn't catching mods to all catalog events * lib/remoteif.tcl: - Return Artist - Title on remote title call * lib/pkgIndex.tcl: - Added commandline * lib/catalog.tcl: - Cleaned up use of mounted base folders * lib/macros.tcl: - Removed all the command line macros into commandline.tcl * lib/id3Table.tcl: Added option to swap artist<->album and artist<->track on table editor 2006-01-05 wilkason * lib/saGUI.tcl: Don't show remaining time for streams * lib/playurl_mc.tcl: Cleaned up code and improved error handling * lib/gpWidgets.tcl: Use menu font for status dialog * lib/catalog.tcl: - Add dragged in files to catalog even if they are not being renamed - Fix missing var bug introduced recently for checking file overwrites * lib/autoPlayList.tcl: - Fixed bug preventing new files from being dnd on APL tree - When renaming files from tag info, strip out unwanted characters * lib/urlBrowser.tcl: * lib/urlJukebox.tcl: * lib/urlMinicontrol.tcl: * lib/urlRemote.tcl: * lib/urlSearch.tcl: * lib/urlStreaming.tcl: Checking in url... files that are split out for maintenance * lib/urlRedirect.tcl: Added remote/psp display * lib/playurl.tcl: Support usk files with ID3V2 tags * lib/macros.tcl: - Read .pls formatted playlist files, including urls - Add more matches for rss files with podcast files 2006-01-01 wilkason * lib/HttpD.tcl: - Respond with no icy-metadata available (yet) * lib/saGUI.tcl: - Simplify code to display cover art, and scale image correctly in all cases - Support WM_SAVE_YOURSELF logoff/shutdown event - Remove non-liner scaling of volume control - Allow both native and internal volume control of audio level - Added time slider to cover art viewer - Fixed some layout bugs on the main interface * lib/remoteif.tcl: - Liner volume control * lib/playurl_mc.tcl: - Support throttling of input stream when it can be very fast (such as playing from an mp3 file directly) - SnackAmp can play back it's own streams now (not that you would want to) - Correct display issues with icy and meta data on streams - Display buffering in the Artist field - User setting for fifo buffer size * lib/metakit.tcl: - debug message * lib/saSettings.tcl: - Added option to Control System Volume (default is on) - Added option for fifo buffer (250K) * lib/autoPlayList.tcl: - When selecting a folder, display the tracks also - Simplify code to display cover art, and scale image correctly in all cases - When a file is selected, display its id3 cover art if available and if not, try the folder art * lib/gpWidgets.tcl: Simplify code to display cover art, and scale image correctly in all cases * lib/macros.tcl: - Remove non-liner scaling of volume control - Allow both native and internal volume control of audio level - Read pls playlist files (still need to handle http urls correctly) * lib/catalog.tcl: - Verify a track file when grabbing trackInfo * lib/soundControl.tcl: - Allow both native and internal volume control of audio level * lib/cframe.tcl: - Raise the cframe button when cursor is over it * lib/miniPlayer.tcl: - Simplify code to display cover art, and scale image correctly in all cases - Handle linear volume * lib/id3.tcl: - Added code to embed an image into a ID3 tag. - Added routines to extract an image from an ID3 tag. - Handle invalid encoding error cleanly * lib/gpUtils.tcl: - Fix but when looping over returned amazon images - Add generic clamp routine to limit a value between floor and ceil 2005-12-28 wilkason * lib/freedb.tcl: - Added http::cleanup after url get to prevent memory leaks * snackAmp.tcl: Add check for Memchan package * lib/saSettings.tcl: - Rearranged a few settings - Added options for desired cover art size, show cover art in various areas, google image returns, cataloging of playlist tracks * lib/id3Renamer.tcl: * lib/id3Table.tcl: - Tweak height of window based on number of files * lib/playurl_mc.tcl: Version of playurl that uses a memory channel driver to detect embedded stream tags and improved buffering control. * lib/gpUtils.tcl: - Don't search for small cover art images on google - Support up to 100 images returned by google (before was 20) - Simplify file scanning by doing two different scans per folder. Appears to be faster as well. * lib/id3.tcl: - Return an embedded image - Writing an image not yet complete - Don't write a field if the special or fields are present * lib/autoPlayList.tcl: - Improve folder list history scheme - Move cover label to paned window under the tree - Incorporate scaled images, be smart about how it is scaled. - Show cover art image for any selected file not just the folder * lib/catalog.tcl: - Common routine to mount/unmount a branch - Simplify file scanning by doing two different scans per folder. Appears to be faster as well. - When updating the table list, blank out entries if the tag is no longer present. - Don't ask to overwrite file on copy if they are the same (bcopy handles this automatically) * lib/playurl.tcl: - bug fix to return default stream name * lib/miniPlayer.tcl: - Added cover art support in a collapsable frame * lib/gpWidgets.tcl: - Simplified cover art code by combining similar functions - Cache image locations per folder for faster access * lib/macros.tcl: - Merge PlayFile and TranslateFile code into a single unit - Helper command line routine (missingArt *) to show folders with missing cover art * lib/saGUI.tcl: - Moved out saLog image to saImages file - Incorporate tkImageTools replacement if resize command not available from C library. - Added scaled cover art image to the main player. * lib/pkgIndex.tcl: - Added playurl_mc for memory channel enhanced streams * lib/saImages.tcl: - Moved in saLog image to saImages file * lib/urlRedirect.tcl: - common functions for playlist and auto-playlist files - Move out coverart code to gpWidgets since it is also used by the GUIs * lib/metakit.tcl: - Common routine to mount/unmount a branch - Allow user break when cataloging files * lib/playList.tcl: User option if they want to automatically catalog tracks that are added to the playlist. * lib/IconSupport.tcl: Don't try and load winico if not on windows 2005-12-22 wilkason * lib/gpUtils.tcl: - Improved automatic name casing to hande words embedded in special chars - rglob code returns both file and folder list * snackAmp.tcl: Dummy busyCursor command until APL is loaded * lib/catalog.tcl: - Added new moveTrackFolderPairs and copyTrackFolderPairs code to greatly simplify the method used to copy, move and rename files. All references to files changed are made in other areas of the database. - Tracks are now moved track by track to improve response as well as accuracy in references to the track, handling overwrite prompts and error handling. - Added a couple status dialogs when cleaning up the database * lib/id3Table.tcl: * lib/soundControl.tcl: - Using ne/eq expression commands for string comparison * lib/metakit.tcl: - When determining if a track needs to be cataloged check if old date < new date rather than comparing. Handles incorrect timezone issues on windows better. - Added db::countMatchingPattern function to display number of tracks in tree - Check if track start/stop time needs to be computed separate from gain. Handles imports of gain from replay_gain better. - Add alias for string is double -> isnumber * lib/id3Editor.tcl: * lib/id3Renamer.tcl: * lib/macros.tcl: - Using ne/eq expression commands for string comparison - Reference new Rename code properly * lib/saTree.tcl: Added Tree::hasParent function to determine if a parent node needs to be created * lib/playList.tcl: - Added LB::changePlaylistFile to change a single playlist entry * lib/id3.tcl: - Add -- to regexp (code cleanup) * lib/autoPlayList.tcl: - Show total tracks in selected branch - Use new move/copy folder pair routines - Support native drag-n-drop of files to APL branchs, copy or move files - Added another rename dialog that can rename any (or multiple) portion of the folder name at once - Added Move folder names under ID3 tags for the APL tree, to break out tracks by their tag info - Added more images to menus - Improved code to add/remove nodes in APL tree * lib/gpWidgets.tcl: * lib/saGUI.tcl: - Initial work on resize command handling * lib/freedb.tcl: - Handle long track names that are split across two lines * lib/saSettings.tcl: - Using ne/eq expression commands for string comparison - Use sorted list rather than hash for the words not to uppercase, more efficient searching 2005-12-16 wilkason * lib/catalog.tcl: - Simplified code to check file extensions - copyFile allows nested folders - deleteFile makes ure the current directory doesn't contain the track being deleted - When moving a folder, stop an enclosed track playing, then restart after it is moved. Prevents file errors on the rename. - Helper functions to return fixed and attached folders that are active * lib/autoPlayList.tcl: - Added options to remove specific favorites - Added handling of files and folders dropped from a file manager onto the APL tree. Copy or Moves are performed depending if Ctrl key is held down on drag. - When navigating the APL tree with the mouse, the left/right keys will move up/down the tree as necessary to continue navigating. - Added RMB APL menu to copy either the shown levels or entire tree branch to the media player. - Added handling of properties and indexing to the RMB over the /Attached Folders and /Fixed Folders icon - Added RMB option to the APL playlist to move selected tracks under the Album, Artist or Artist/Album thus creating subfolders with tracks in them. * lib/playList.tcl: Fix bug allowing end as an index for a track append * lib/saGUI.tcl: * lib/soundControl.tcl: Added code to better close playing file when stop is pressed * lib/saSettings.tcl: Simplified code to check file extensions * lib/id3.tcl: - Changed V2 tag reading to walk the tag rather than search it. Better preserves existing tags but does not tolerate tags that aren't linked properly (before it would still find them) - Better handle when a V2 tag write fails * lib/metakit.tcl: - Allow statistics (properties) on /Fixed or /Attached folders - Move gaincontrol snackAmpSettings to upvars in namespace - Limit replay_gain tag values to setting limits rather than any value. * lib/macros.tcl: Don't CD to current track directory on each track, allows file operations on playing track folder to be performed without errors. * lib/id3Table.tcl: Show track time on the freedb albums * lib/freedb.tcl: - Return track length for an album 2005-12-09 wilkason * lib/metakit.tcl: - Fixed case where a conditional catalog wasn't always getting the chance to catalog the track. - Fixed bug where the cataloged field wasn't updated correctly. Now it is set when the file name is first cached and won't change thereafter. Can use to find "recent" or "old" files by using it as a sort field. - Rounding cataloged time during sorting like lastplay and timestamp. * lib/catalog.tcl: - added backslashing regexp escape case - When getting the track descriptive text, always re-catalog the track if needed first. - When renaming a folder go through all the auto-playlist and playlist files for that user and rename the affected entries as well. * lib/playList.tcl: - Changed algorithm to associated playlist entries to their file name. Using sync list instead of hash. Uses less code, less memory, is faster and more accurate. - When moving or dragging disjointed selections, only the selected files move rather than all within the range. - Will calcuate the playlist duration even if tracks arn't displayed. Currently will catalog tracks in the background. May change this to a use option. * lib/autoPlayList.tcl: Code to handle bindings to prepend the year to the folder name * snackAmphotKeys.tcl: Changed a couple defaults, added prepend folders to Ctrl-Y and F10 * lib/remoteif.tcl: - Fixed some issues caused by /\ file names. - Cache to hold track info to prevent fast repeat calls to the database * lib/macros.tcl: - When F5 to select a file is used on a filtered or unfiltered track listing in the APL, the correct folder is navigated to. - Fixed bug to handle case where prev operation at top of playlist caused an error. - When a track is played, verify re-catalog it and update the playlist data accordingly. Handles case where file has changed duration or id3 tags and playlist time wasn't updated. - Code changes to handle simplified playlist key handling - Added a couple routines (for me) to prepend the year to the beginning of the album folder name to help with sorting. The data is looked up in freedb if needed. Using the F10 and ctrl-y key bindings in my hotkey file. * Albums Shuffled.ss: * Artist-Album-Track.ss: * Big.scs: * Black on White.scs: * Brown.scs: * Duration.ss: * Favorites.ss: * Just Playcount.ss: * Least Played Favorites First.ss: * Least Played First.ss: * Light Brown.scs: * Sample Rate.ss: * Shuffle Artists.ss: * Shuffle.ss: * White on Black.scs: * iTunes.scs: Initial checkin * lib/id3Editor.tcl: - After editing ID3 tags, update any affected playlist entries * lib/gpWidgets.tcl: - Simplified playlist api * lib/gpUtils.tcl: Added a couple of very fast inplace list manipulation routines for the playlist handling. * lib/subSorting.tcl: Added Cataloged to sorting list * lib/urlRedirect.tcl: Changed html pop-up to pass in full file name rather than playlist entry name * lib/id3Table.tcl: - After editing ID3 tags, update any affected playlist entries - Fix bug when no freedb albums returned and user selected a blank entry 2005-12-08 wilkason * lib/tcl8.4/encoding/big5.enc: * lib/tcl8.4/encoding/cp1250.enc: * lib/tcl8.4/encoding/cp1251.enc: * lib/tcl8.4/encoding/cp1253.enc: * lib/tcl8.4/encoding/cp1254.enc: * lib/tcl8.4/encoding/cp1255.enc: * lib/tcl8.4/encoding/cp1256.enc: * lib/tcl8.4/encoding/cp1257.enc: * lib/tcl8.4/encoding/cp1258.enc: * lib/tcl8.4/encoding/cp437.enc: * lib/tcl8.4/encoding/cp737.enc: * lib/tcl8.4/encoding/cp775.enc: * lib/tcl8.4/encoding/cp850.enc: * lib/tcl8.4/encoding/cp852.enc: * lib/tcl8.4/encoding/cp855.enc: * lib/tcl8.4/encoding/cp857.enc: * lib/tcl8.4/encoding/cp860.enc: * lib/tcl8.4/encoding/cp861.enc: * lib/tcl8.4/encoding/cp862.enc: * lib/tcl8.4/encoding/cp863.enc: * lib/tcl8.4/encoding/cp864.enc: * lib/tcl8.4/encoding/cp865.enc: * lib/tcl8.4/encoding/cp866.enc: * lib/tcl8.4/encoding/cp869.enc: * lib/tcl8.4/encoding/cp874.enc: * lib/tcl8.4/encoding/cp932.enc: * lib/tcl8.4/encoding/cp950.enc: * lib/tcl8.4/encoding/dingbats.enc: * lib/tcl8.4/encoding/ebcdic.enc: * lib/tcl8.4/encoding/euc-cn.enc: * lib/tcl8.4/encoding/euc-jp.enc: * lib/tcl8.4/encoding/gb12345.enc: * lib/tcl8.4/encoding/gb1988.enc: * lib/tcl8.4/encoding/gb2312.enc: * lib/tcl8.4/encoding/iso2022-jp.enc: * lib/tcl8.4/encoding/iso2022-kr.enc: * lib/tcl8.4/encoding/iso2022.enc: * lib/tcl8.4/encoding/iso8859-10.enc: * lib/tcl8.4/encoding/iso8859-13.enc: * lib/tcl8.4/encoding/iso8859-14.enc: * lib/tcl8.4/encoding/iso8859-16.enc: * lib/tcl8.4/encoding/iso8859-3.enc: * lib/tcl8.4/encoding/iso8859-4.enc: * lib/tcl8.4/encoding/iso8859-5.enc: * lib/tcl8.4/encoding/iso8859-6.enc: * lib/tcl8.4/encoding/iso8859-7.enc: * lib/tcl8.4/encoding/iso8859-8.enc: * lib/tcl8.4/encoding/iso8859-9.enc: * lib/tcl8.4/encoding/jis0201.enc: * lib/tcl8.4/encoding/jis0208.enc: * lib/tcl8.4/encoding/jis0212.enc: * lib/tcl8.4/encoding/koi8-r.enc: * lib/tcl8.4/encoding/koi8-u.enc: * lib/tcl8.4/encoding/macCentEuro.enc: * lib/tcl8.4/encoding/macCroatian.enc: * lib/tcl8.4/encoding/macCyrillic.enc: * lib/tcl8.4/encoding/macDingbats.enc: * lib/tcl8.4/encoding/macGreek.enc: * lib/tcl8.4/encoding/macIceland.enc: * lib/tcl8.4/encoding/macJapan.enc: * lib/tcl8.4/encoding/macRomania.enc: * lib/tcl8.4/encoding/macThai.enc: * lib/tcl8.4/encoding/macTurkish.enc: * lib/tcl8.4/encoding/macUkraine.enc: * lib/tcl8.4/encoding/shiftjis.enc: * lib/tcl8.4/encoding/symbol.enc: * lib/tcl8.4/encoding/tis-620.enc: Initial Baseline of encodings I am using 2005-12-01 wilkason * lib/remoteif.tcl: Changed xmms_remote_playlist_add to insert list after currently playing track, added xmms_remote_playlist_queue to insert after last insert * lib/catalog.tcl: Better handling of dirty data and how to commit it to files/db * lib/saFiltering.tcl: Removed unused routine * lib/playurl.tcl: Commented out unused line that was causing errors occasionally * lib/gpUtils.tcl: - Album Art search returns gridded images in the browser - Added options to search amazon/jpeg in album art query - Removed unused routine * lib/playList.tcl: Function to insert list after currently playing track * lib/autoPlayList.tcl: Added function to prepend the folder name with the year in the album * lib/soundControl.tcl: Save gain settings rather than just commit db after gain * lib/saSettings.tcl: Added options to restrict amazon/jpeg search in album art search * lib/urlRedirect.tcl: cleaner array unset * snackAmphotKeys.tcl: Changed a couple defaults * lib/id3.tcl: * lib/id3Editor.tcl: * lib/id3Table.tcl: Better array unset * lib/metakit.tcl: Improved handling of dirty db data * lib/macros.tcl: -Save settings on major event - Use file track time rather than db track time for display of time - Function to save settings without exiting 2005-11-06 wilkason * lib/pkgIndex.tcl: Added references to new packages * lib/autoPlayList.tcl: * lib/gpUtils.tcl: * lib/playList.tcl: Fixed total time display bug introduced recently * lib/HttpD.tcl: Properly initialize services so they can be loaded dynamically instead all at once. * lib/urlRedirect.tcl: - Cleaned up caching and initialization of cache data - Added Rating * lib/saSettings.tcl: Changed default web links to active on remote control * lib/id3Table.tcl: Fixed bug in freedb tagging so blank genres & years get populated correctly 2005-10-23 wilkason * lib/HttpD.tcl: - Don't startup the web server on package require * lib/catalog.tcl: - Replaced interp alias info exists code for speed * lib/urlRedirect.tcl: Use symbol bullets for ratings rather than ** * lib/autoPlayList.tcl: - Added option to reset ratings on menus - using if eq/ne construct * lib/metakit.tcl: - Replaced alias Exists with info exists for speed - bump ratings now starts at 3 stars rather than 1 from -- - Function to set a whole tree/folder rating to a specific value - Support regexp on ratings for web searching * lib/id3Renamer.tcl: - Removed some white space on table editor * snackAmp.tcl: - Replaced package command with one of my own to track package use - Startup web server explicitily * lib/macros.tcl: - Console ctrl-w handling to toggle window - Prev macro doesn't have idle callback to support web page updates * lib/gpWidgets.tcl: Added some debugging utilities * lib/pkgIndex.tcl: Commented out unused packages * lib/gpUtils.tcl: - Replaced some interp alias for speed - Option to ask to enable web server for url open * lib/id3.tcl: - Removed some interp alias code for speed - Using new string eq/ne functions in if statements - Improved zero padding for track numbers * lib/saGUI.tcl: - Ask user to enable web server when help->webserver is chosen - Bind Crtl-W to close the console * lib/urlRedirect.tcl: - Added code to skip 20 seconds each way - Added code to handle ratings for tracks - Added code to show siblings when browsing tracks - Added code to seach with ratings parameters * lib/saSettings.tcl: Added option to not show now playing info when browsing on web interface * lib/id3Table.tcl: - Changed Exists to info exists for speed 2005-10-17 wilkason * lib/autoPlayList.tcl: - Changed ID3 editor names - Added id3 tag editing to the edit menu - moved out code to check for media changes since it is now common * lib/catalog.tcl: Moved catalog::rebuildIfNewMedia to here from auto playlist * lib/remoteif.tcl: Added some improvements for remote interface for mp3split support * lib/id3.tcl: - Using string length interp alias * lib/freedb.tcl: - Initial checkin freedb query and parse code * lib/macros.tcl: - Changed names of various id3 editors * lib/pkgIndex.tcl: - Added freedb.tcl and id3table, id3renamer files * lib/id3Table.tcl: Initial checkin of table edit code with multiple tabs and freedb support * lib/saSettings.tcl: - Added option to minimze to taskbar - Added freedb server settings - Added functions to hide screens rather than iconify/withdraw them during creation. Works around some deiconify issues on windows. * lib/id3Renamer.tcl: - Initial checkin of renamer code, moved out from id3editor * lib/playList.tcl: Fixed total time display in LB::totTime to handle new time formats * lib/gpWidgets.tcl: - Improved handling to prevent focus command erros * lib/IconSupport.tcl: - Handle minimize to tray callback * lib/id3Editor.tcl: - Moved out table and renamer editors to separate files - Using window hide code at startup * lib/gpUtils.tcl: Changes to support freedb being used a couple of different ways * lib/saGUI.tcl: - Added code to handle minimizing to system tray - Can check for media changes from main gui file menu 2005-10-08 wilkason * lib/saSettings.tcl: - Created separate cover art section - Option to show 100ths of ms when displaying track time * lib/saGUI.tcl: - Replace clock format with built in function for 8.5 - Minor dialog tweaks * lib/metakit.tcl: - More info when averaging gains - Prompt before removing any tracks when cleaning out database - Replace clock format with faster function for 8.5 * lib/autoPlayList.tcl: * lib/catalog.tcl: * lib/gpUtils.tcl: * lib/urlRedirect.tcl: Changed clock format to internal function to regain speed for 8.5 * lib/subSorting.tcl: - Minor text display - Remove commented code * lib/gpWidgets.tcl: Force rounding on menu for 64 bit support in Tcl 8.5 * lib/soundControl.tcl: - Replace clock format with built in function for 8.5 - background timer runs at difference speeds depending on ms display * lib/miniPlayer.tcl: - Force round menu number for 8.5 64 bit numbers - Replace clock format with faster function for 8.5 * lib/playList.tcl: - Replace clock format with faster function for 8.5 * lib/macros.tcl: - Synchronize cover art pop-up and static window change - More info on function to remove unused tracks 2005-09-25 wilkason * lib/macros.tcl: - Call to track transition with options - Only call cover art update if option is set - Added macros::setGains function to make sure all tracks have the replay gain track_gain set (for rockbox) - Added macros::chkMounted to remove all tracks from database that are "Mounted" but do not actually exist anymore. * lib/saSettings.tcl: - Added additional pop-up cover art options - Rearranged a few other options * lib/saGUI.tcl: - Move coverart check to caller level * lib/gpWidgets.tcl: - Added code to allow an embeded cover art in the pop-up track info - Improved cancel logic when switching tracks and canceling pending pop-up track windows - Added logic to slide in the pop-up track window from one of eight places * lib/gpUtils.tcl: - Added comment 2005-09-14 wilkason * lib/remoteif.tcl: Changes requested by Alex * lib/remoteif.tcl: Oops! * lib/catalog.tcl: Restore gain control setting from ID3 tag * snackAmp.tcl: Bug Fix: Dummy functions for renameFiles and populate if APL hasn't been launched when these functions are called * lib/metakit.tcl: Only add necessary gain tags, prevent redundancies * lib/gpWidgets.tcl: * lib/saGUI.tcl: Fix issue on windows where refreshing the cover art moves the focus to the cover art window * lib/soundControl.tcl: Add option to calibrateAudio * lib/playList.tcl: Comment Typo * lib/id3Editor.tcl: Improved update of status while tagging files * lib/id3.tcl: - Removed duplicate genres - return Gain tag from replay_gain * lib/macros.tcl: Macro to create a playlist for all auto-playlists for some selected media folder (i.e. portable) * lib/saSettings.tcl: - Add option to create playlists from APL settings for attached media - Fixed bug to allow Escape to close dialog - Add option to recalibrate all vs. needed tracks * lib/autoPlayList.tcl: Add option to export the playlist from the highlighted node 2005-08-31 wilkason * lib/saGUI.tcl: - Support time slider sizes on init - Menu option to show/hide playlist - Handle missing output device and default gently (good for usb audio) - * lib/metakit.tcl: - Return the file data blocked per sorting options - Added gaincontrol function to return gain control tags and insert into ID3 V2 tag if appropriate. * lib/id3.tcl: - Handle reading and writing of ID3V2 replay_gain track and album tags (mostly for rockbox support) - Support reading of multiple tags of the same type of Id3V2 * lib/subSorting.tcl: Change Last Play window to Date Window to support sorting blocking on other time codes. * lib/saSettings.tcl: - Win2K vs. WinXP draws icons in reverse order on winico task bar. - Change some sliders to spinboxes on settings - Added options to adjust the time slider height/width - Added option to tag file with track/album gain values as replay gain tags - Added function to export the database for a single folder tree, useful if you move it and want to reimport settings to another player instance. * lib/catalog.tcl: - Fixed bug when copying only a single file - Remove extra counter increment for display - Handle case where file is renamed with / inserted to create additional levels of sub-folders. * lib/cframe.tcl: Clicking anywere on title will expand/collapse the frame. * lib/autoPlayList.tcl: - Function to update gui title - Added specific functions to copy/append tracks to clipboard and specifically move/copy them (Edit menu) - Menu option to export/import database for selected folder node - Ctrl-C copy default is to NOT append to clipboard, works more like other apps. * snackAmp.tcl: Version bump * lib/remoteif.tcl: - Cleaned up the API for Alex Munteanu * lib/macros.tcl: - Handle case where playlist is blank, stop gently - When Stop is hit cancel any pending Next commands. Useful for a bunch of invalid playlist entries (.e.g. the folder isn't mounted) - Save the last playlist file name with the last autoplaylist file name. That way you can save the playlist under the same name as the autoplaylist by default. - Change the gui title more consistently - Handle more podcast xml types for DND from web page to player 2005-07-02 wilkason * lib/pkgIndex.tcl: Added remoteif package * lib/remoteif.tcl: Fixed a couple problems in the remote interface 2005-06-05 wilkason * lib/gpWidgets.tcl: - Added tcl 8.5 code to have pop-up menus stick like they do under windows. - Added check to ensure window is mapped before forcing a balloon on top * lib/saSettings.tcl: Add parameters to handle socket interface * lib/remoteif.tcl: Initial checkin of socket interface * lib/ircserver.tcl: Print out details of error if one occurs * lib/urlRedirect.tcl: Added default streaming/getplaylist.pls::process file method * lib/soundControl.tcl: Added soundControl::bitrate function to return bitrate * lib/catalog.tcl: Fixed message during cataloging 2005-05-29 wilkason * lib/macros.tcl: Support folder or artist name method of copying files to portable media * snackAmp.tcl: Changed version to 3.1.1 * lib/playList.tcl: Always make sure the playlist has the correct file key * lib/autoPlayList.tcl: Bug fix for entering characters into filter box * lib/saGUI.tcl: Only show connected media players if they are mounted in menus * lib/gpUtils.tcl: Fixed bug where copy error was being ignored * lib/saSettings.tcl: Browse cover art now on by default When removing a mounted folder, only remove entries if needed * lib/catalog.tcl: Support folder and artist methods of copying files to media players 2005-03-22 wilkason * lib/macros.tcl: Fixed bug caused when removeable folders code deleted (Tickner) 2005-03-19 wilkason * lib/gpWidgets.tcl: - Added flashmouse command - Show snackamp icon in tracktransition pop-up * lib/gpUtils.tcl: - Move more bcopy code into a catch - If bcopy fails, remove the dest file (in case it is partial or zero size) * lib/playList.tcl: Quickly change the mouse icon when inserting into the playlist * lib/saGUI.tcl: Add hook to allow ctrl-mousewheel to adjust overall font size ( like browsers) * lib/saSettings.tcl: Remove default copy/cut/paste commands * lib/catalog.tcl: catalog::bgIndexCheck: Set incorrect variable, causing variable not found in some cases 2005-02-09 wilkason * lib/gpUtils.tcl: - Add additional linux browsers to look for - Adaptive bcopy chunk size - Use prettier rating stars * snackAmphotKeys.tcl: Change control-return default in playlist search * lib/miniPlayer.tcl: Tweak padding for improved look * lib/catalog.tcl: Fixed bug when determing if bgindex was in the correct time slot * lib/saSettings.tcl: Make sure known extensions exist during initial startup scan * lib/id3Editor.tcl: Force colors for Combobox for linux bug on certain KDE versions * lib/gpWidgets.tcl: * lib/id3.tcl: Used fixed chunk size when writing files * lib/saGUI.tcl: - Added show updates about menu - Dynamiclly build copy to media player menu * lib/macros.tcl: Check file existence before trying to play * lib/autoPlayList.tcl: - Dynamically build mediaPlayer menu - Add prettier rating stars * snackAmp.tcl: Force normal weight to menus 2005-02-07 wilkason * lib/urlRedirect.tcl: Fix bug with extra parameter 2005-01-30 wilkason * lib/saSettings.tcl: - Added push/restoresize functions - Removed listbox selection types, now multi select is working since Alt-1 is used for drags (was conflicting with Ctrl-1) * lib/id3Editor.tcl: Double click on Note field to edit in pop-up window * lib/autoPlayList.tcl: Added composer to search fields * lib/autoPlayList.tcl: * lib/catalog.tcl: * lib/gpWidgets.tcl: * lib/macros.tcl: * lib/playList.tcl: * lib/saFiltering.tcl: * lib/saGUI.tcl: * lib/saSettings.tcl: * lib/urlRedirect.tcl: Removed old code for removable media, which is no longer supported * snackAmp.tcl: Use Alt-Mouse to drag files from playlist * lib/id3.tcl: Return Composer as an additional field for ID3V2 tags * lib/saGUI.tcl: Added Open Folder command to File Menu * lib/urlRedirect.tcl: Use LB::insertList instead of looing inserFile, more efficient * lib/macros.tcl: Aded OpenFolder function to insert an entire folder, recsurively into the playlist * lib/soundControl.tcl: Add one time increment when determining last frame with sound (off by one error) * lib/metakit.tcl: Only allow one pending gainControl::createIfNeeded * lib/playList.tcl: - Improved inserting a long list (faster now) - Use user insert position for some additional inserts * lib/gpUtils.tcl: Added back album/artist search button to cover art dialog (for allmusic) * lib/gpWidgets.tcl: Added pop-up editwindow for editing ID3 Comments in a text window 2005-01-27 wilkason * lib/soundControl.tcl: - reference different miniplayer button * lib/autoPlayList.tcl: * lib/saGUI.tcl: Use Alt instead of Ctrl for dragging files to allow multi select to work * lib/id3Editor.tcl: * lib/macros.tcl: - Added remove tag macro * lib/saImages.tcl: - Added button for transparency * lib/saFiltering.tcl: - Don't search database if filter is blank * lib/saGUI.tcl: - Add new TA entry for miniplayer display * lib/gpWidgets.tcl: - Make tracktransition popup slide in/out rather than fade * lib/gpUtils.tcl: - Added transparency menu to system menu for systems that support transparency - Modified track transistion to use scooting windows rather than fading windows for more platform support * lib/id3.tcl: - Handle case where V2 padding is insufficent better - When modifying tags, if primary tag doesn't exist, read alternate tag first - Replace string equal with sequal via alias * lib/autoPlayList.tcl: - Added option to remove ID3 tags - menu handler to set the genre directly via a menu * lib/saSettings.tcl: - Added units for background index * lib/miniPlayer.tcl: - Changed look around a bit, added search options * lib/catalog.tcl: - Modified bgindex to handle time, units and start after fields 2005-01-22 wilkason * lib/urlRedirect.tcl: - Comment changes * lib/saGUI.tcl: - Changed some nomenclature on menus - Added search media library button (replacing the toggle apl/playlist button which wasn't very useful) - Added fadin/out calls for albumart * lib/playList.tcl: - Supporting option to change the selection method of playlist * lib/id3Editor.tcl: - Fixed size bug on ID3 single/group editor window - Added Control-E binding on table/tag editor to clear a tag field * lib/saSettings.tcl: - Added listbox selection types (may remove later) - Used spinners instead of entry fields for some numeric fields - Added option to always catalog when indexing - Added last bgindex time/date field - Added ability to restrict the times the bgIndex can start - Better support for default fonts, can substitute invalid fonts, good for using themes from other systems. - Changed some of the defaults to better values - Simplified dialogs used for first time use of snackamp * lib/metakit.tcl: - Fixed a bug when cataloging a file that was recently introduced - Added function to return the average gain of a folder * lib/saFiltering.tcl: - Added filtering::searchFilter routine to allow the medial library to be searched from the player (or mini-player) - Removed an unused routine * lib/miniPlayer.tcl: Added text field and search buttons to be able to search the playlist or media library from the mini-player * lib/gpWidgets.tcl: * lib/saGUI.tcl: * lib/saSettings.tcl: * lib/subSorting.tcl: Fixed some minor default and regColor settings to work better on linux * lib/macros.tcl: Internal code to show albums with largest gain correct (to launch mp3gain on them) * snackAmp.tcl: - Moved check for database up in order to fix a potential bug at startup - Created dummy trackList namespace for startup * lib/id3.tcl: - Improved check to determine if tag data has changed before writing to the disk (don't update tag if not necessary) - Ogg tags still not working in snack, but the tcl code is ready * lib/subSorting.tcl: - Registered spinbox colors * lib/cframe.tcl: - Added tryOpen/tryClose methods for external calls * lib/gpWidgets.tcl: - Fixed window fading bug for coverart - Added trackTransition namespace to fade in/out tracks in the lower right hand corner of screen during a track change. * lib/gpUtils.tcl: Added copyArrayData to only copy non-blank fields over to a new array * lib/catalog.tcl: - Support option to index/catalog at the same time - Support option to only bg index/catalog during a time window (such as night) * lib/metakit.tcl: Fix recent bug where index instead of file was passed in to db :cacheFile * snackAmphotKeys.tcl: - Comment Change * lib/autoPlayList.tcl: - Menu text case changes - Only show folder types on APL if they are needed - Added a genre popup for the APL tracklist for editing 2005-01-16 wilkason * lib/saSettings.tcl: - Tweaked the GUI * lib/saGUI.tcl: - Added mousewheel support for cover art mini-playbar * lib/macros.tcl: * lib/metakit.tcl: * lib/playList.tcl: * lib/saFiltering.tcl: Changes to support more efficient sorting and applying of AutoPlaylists. * lib/subSorting.tcl: - Removed fill option for buttons * lib/saImages.tcl: - Added snackamp icon * lib/id3Editor.tcl: - Cleaned up button creation to be more consistent * lib/catalog.tcl: - Improved playlist cache file handling - Removed old master catalog code that is no longer used * snackAmphotKeys.tcl: - Added Alt-A to averge levels for selected folder * snackAmp.tcl: - Tweaked some options to standardize * lib/autoPlayList.tcl: * lib/metakit.tcl: * lib/saFiltering.tcl: * lib/saSettings.tcl: Allow Max APL value to be 0, in that case assume it is infinity * lib/autoPlayList.tcl: - Added some more menu icons for media player 2005-01-15 wilkason * lib/catalog.tcl: - When copying files, build a list of files and copy one by one rather than who folders at once to reduce event loop hang-ups - User manual menu reference was broken - Replacing allmusic with lycos query (allmusic no longer supports queries) - Added bcopy routine to copy a file in chunks, effecient yet doesn't tie up event loop. * lib/id3.tcl: - Can now read ID3 2.4 tags - When writing complete file, using a looping fcopy method to keep event loop running. * lib/autoPlayList.tcl: - Added icons to menus - Change name of Auto-Playlist to AutoPlaylist - Added a favorites menu * lib/urlRedirect.tcl: - Display no-cover image if none found * snackAmphotKeys.tcl: - Added hotkey to toggle console * lib/saGUI.tcl: - Added icons to buttons and menus - Added mini play-bar on cover art viewer - Removed staging menu (only for my testing) * snackAmp.tcl: - Added a few tk options * lib/id3Editor.tcl: - Replaced allmusic reference - Added icons to buttons * lib/gpUtils.tcl: - Changed allmusic to lycos when possible - Added routine to combine checks for browser enabled * lib/metakit.tcl: - Update status more often on import/export - Added routine to return files in a folder - LastPlay is now computed a query time and rounded per user settings * lib/macros.tcl: - Detect state of console rather than assume (need to check on linux) - Added code to parse xml podcasting file * lib/gpWidgets.tcl: - Status dialog cleaned up and more modern/informative * lib/saImages.tcl: Added some and changed other images, migrating to a crystal look * lib/saSettings.tcl: - Added icons to buttons - Tweaked some default settings - Added function to return an image based on menu name * lib/subSorting.tcl: Added sorting option to round LastPlay during sort/shuffle by number and units. Saving the setting with each configuration. * lib/soundControl.tcl: Linked all internal settings to snackAmpSettings to clean up code * lib/playurl.tcl: * lib/saFiltering.tcl: - Added icons to buttons 2005-01-03 wilkason * lib/autoPlayList.tcl: - DND fixes for firefox support * lib/saSettings.tcl: - Increased last play time range - Added cataloged and LastPlay defaults * lib/saSettings.tcl: - Added image fading option * lib/urlRedirect.tcl: Find hidden album art images also (such as those from Windows Media Player) * lib/id3.tcl: - When return formatted text, wrap the Note filed if needed * snackAmp.tcl: - Version is now 3.0.4 - Tweaked DND settings for firefox support * lib/playList.tcl: - Helper function to return name of current track for DND * lib/metakit.tcl: - Added cataloged date field to db - Round LastPlay setting on database query rather then when updating the database. - More details shown on display when cataloging tracks * lib/gpWidgets.tcl: - Added fadein/fadeout functions & calls for balloon help * lib/soundControl.tcl: - Tweaked start/stop detection to be more accurate - Display more info when auto-leveling * lib/saGUI.tcl: - Dragging current track from track display added - Tweaked DND settings and album art copying to support firefox better - Reduced one potential image copy operation when displaying album art * lib/macros.tcl: - Handle http files dragged to the player better (such as playing an mp3 link) - Handle bug when trying to autolevel usk files * lib/miniPlayer.tcl: - Added fadein/fadeout calls * lib/playurl.tcl: Set description to URL if no description provided when adding a URL manually. * lib/saGUI.tcl: - Added fading calls * lib/gpUtils.tcl: - Added helper functions to wrap text and return fractional time * lib/catalog.tcl: - More precision shown for start/stop times 2004-12-05 wilkason * lib/saGUI.tcl: Add a delay after a drop action, seems to fix problem on firefox * lib/autoPlayList.tcl: * lib/catalog.tcl: Handle focus on rename windows properly for 8.4.8 * lib/soundControl.tcl: - Configure the sound object explicitly when auto-leveling * lib/metakit.tcl: - Added filtered view to returning searched fields for web page - Auto-Level didn't always work when changing between file types, now fixed * lib/urlRedirect.tcl: Show/search searched tracks using database rather than file names 2004-10-18 wilkason * lib/saGUI.tcl: - On unix, ensure window icon is shown - Handle firefox browers issue for drag-n-drop of cover art * lib/playurl.tcl: - Read/handle ID3 lead tag on mp3 files if existing - Display when buffering on pop-up - Delay a bit when transitioning tracks * lib/urlRedirect.tcl: - Clean up cover art display, handle no cover art better - Change a few buttons on web page * lib/saSettings.tcl: - Options for cover art albums per row * lib/saImages.tcl: - Added a few images for tree view * lib/metakit.tcl: - matchindb only works for mounted tracks * lib/autoPlayList.tcl: - Folder position history is now more accurate - When searching folders, don't look at non-mounted ones - Unix menu border more like windows - Choose icon for building tree is a bit more efficient - Improved check when media folders changed - Improvied icons for APL tree to denote folder types - Added code to rename multiple entries at once to ensure APL file list is updated when a user changes a number of file names at once. * lib/id3Editor.tcl: Block rename tracks for tag2name editor so they all get updated at once in apl tree list * lib/catalog.tcl: - Remove commented out code - background index also handles APL folders - Add support for attached folders (mp3 players) - Added code to rename a multiple tracks at once * lib/id3.tcl: - Handle passed in file channels for getting ID3V2 tags * lib/saTree.tcl: - Improve handling of opening/closing nodes and handling errors * lib/macros.tcl: - Display error when copying zero length cover art images 2004-10-17 wilkason * snackAmp.tcl: - Change version to 3.0.3 - Pass in command line args properly under windows and unix for all cases - Change unix default menu borderwidth to 1 2004-09-12 wilkason * lib/saSettings.tcl: - Added background indexing/cataloging database settings - Coverart images per row setting - Removed some dead code * lib/playList.tcl: Fixed bug that wasn't renaming playlist entries/lookups correctly on track file rename * lib/metakit.tcl: - Fixed a lookup bug in db::lookup when a row number was specified - db::cacheFile now has a parameter to read track data before updating the database - Added total duration to the database status function - Removed some unused functions * lib/gpWidgets.tcl: - Removed commented code - Replace a catch with a check first * lib/catalog.tcl: - Added support for background indexing/cataloging - Leaving APL folder history in correct order rather than restoing it sorted. - Removed a few unneeded calls - Rearranged some returned data when reading track info - Bug fix when renaming tracks for the playlist and APL * lib/urlRedirect.tcl: - Changes to support newer track info display - Decoding/Encoding of utf-8 urls now supported (good for non-ascii file names) - Replaced forms with GET instead of POST due to web server issue. * lib/HttpD.tcl: - Noted that post is not working - Added powered by to http header - Added code to convert from/to utf-8 for urls * lib/soundControl.tcl: soundControl::trackInfo tweak * lib/saGUI.tcl: - Removed some dead code * lib/gpUtils.tcl: Removed hyperlink to all music search for web pages (since they no longer support external queries) * lib/macros.tcl: - Removed commented code line * lib/autoPlayList.tcl: - Added function to rename track names and update track data if it is displayed in the auto-playlist following a rename or id3 editing operation - Removed some old comments 2004-09-05 wilkason * lib/subSorting.tcl: - Added Title and File Name for filtering/searching fields - When pressing apply on sort dialog, the current settings are saved first * lib/id3Editor.tcl: After making changes, try and update the APL file list for track info * lib/id3.tcl: Removed some unused procedures 2004-08-04 wilkason * lib/macros.tcl: Added ToggleArt macro for icons * lib/IconSupport.tcl: * lib/saSettings.tcl: Added additional taskbar icons for windows * lib/saGUI.tcl: Create main window Icon explicitly * lib/miniPlayer.tcl: Make sliders the same size on miniplayer 2004-08-03 wilkason * lib/pkgIndex.tcl: Moved TkWinTools to its own folder * lib/saSettings.tcl: Option to zero pad track numbers during ID3 reading * lib/saGUI.tcl: Show tkdnd and tkimg versions in about menu * snackAmp.tcl: Labeled 3.0.1 * lib/saTree.tcl: Bug Fix: 990172 v3.0: removing directory (node) from tree caused error Bug Fix: 997525 Moving folders error message * lib/gpUtils.tcl: Change hasData to optionally just check for array element existence * lib/catalog.tcl: Bug Fix: 997525 Moving folders error message * lib/autoPlayList.tcl: Add group edit menu entry in tree * lib/urlRedirect.tcl: Use lsearch -exact to handle [] in medir dir names * lib/id3Editor.tcl: Simplified group editing dialog * lib/id3.tcl: Bug Fix: 997503 errors in ID3 tag editor 2004-07-20 wilkason * lib/autoPlayList.tcl: * lib/saGUI.tcl: Change balloon help on album display to clarify that images can be dragged over it. 2004-07-17 wilkason * lib/gpUtils.tcl: - Handle error better when retrieving a failed URL - lappendunique funcation added - When building album query html file, put title under image - When converting a number to unsigend, force to 2 chars mininum * snackAmp.tcl: Labeled 3.0.1 * lib/catalog.tcl: - When removing folders, remove one on APL only after it is physically removed - When indexing, make sure the base folder still exists before putting it on the APL tree * lib/HttpD.tcl: Removed No Cache-control header entry for streaming (was added in 3.0a2), causes stream problems on windows * lib/urlRedirect.tcl: Minor label change * lib/saTree.tcl: Improved error handling when removing nodes * lib/playList.tcl: Removed some dead code * lib/gpWidgets.tcl: Entry history width is 12 instead of 15 as default 2004-07-12 wilkason * lib/macros.tcl: Handle error when getting a http binary * lib/saSettings.tcl: Added Custom genres * lib/id3.tcl: BugFix: off by one on comment length * snackAmp.tcl: Use left_ptr as unix pointer Set defaults for text box * lib/metakit.tcl: Show folder name in cataloging * lib/id3Editor.tcl: Added Custom genres Combo box of different choices on tag editor 2004-07-09 wilkason * lib/catalog.tcl: Bugfix: monitoring folders wasn't using the monitor depth popup more often when indexing tracks * lib/saFiltering.tcl: - pop-up when sorting tracks during delay * lib/playurl.tcl: Bug Fix: Blank out tag data before adding a url manually * lib/macros.tcl: popup when applying auto-playlist * lib/saTree.tcl: - Speedup delitem a bit - Handle errors when creating a node better * lib/saSettings.tcl: - Corrected mislabel in settings - Change the default columns in file manager * lib/metakit.tcl: Remove unused routines * lib/autoPlayList.tcl: Sped up translation of folder to tree node name * snackAmp.tcl: - Rename to 3.0 - Return real folder name under win9x when wrapped 2004-06-27 wilkason * lib/saSettings.tcl: - Text Change * lib/gpWidgets.tcl: Added afterCancel routine * lib/metakit.tcl: Added some test code * lib/catalog.tcl: Comment change * lib/autoPlayList.tcl: - Command to re-check media folders to see if media plugged-in/or just unplugged - Attach bindings after gui is drawn * lib/id3Editor.tcl: - Button bar doesn't hide on table editor - Alt tag balloon fix * lib/catalog.tcl: Fix error when importing new zero length catalogs * lib/saSettings.tcl: Changed a couple defaults * lib/id3.tcl: Only write V2 filelds that have data * snackAmphotKeys.tcl: Added a couple keys 2004-06-24 wilkason * lib/macros.tcl: Internal test code * lib/playList.tcl: Initialize oldPosition * lib/autoPlayList.tcl: * lib/saGUI.tcl: * snackAmp.tcl: Force update prior to tkdnd bind * lib/id3.tcl: - Function to return syncafe length (for reuse) - Support unicode in comments - Detect unsync tags (don't do anything yet though) * lib/catalog.tcl: * lib/gpWidgets.tcl: When closing the properties dialog, close the tabbed option frame to clear its memory 2004-06-20 wilkason * lib/macros.tcl: - Improved status dialog - Cleaned up some media player support code * lib/saSettings.tcl: - User selectable unicode writing for ID3V2 - Incremental filter option - Improved status display * lib/playList.tcl: Remove <8.4 support * lib/console.tcl: * lib/gpUtils.tcl: - Removed < 8.4 support * lib/metakit.tcl: - Cleaned up some import/export code - Limit APL tracks returned to maxAPLApply for filtering or everything * snackAmp.tcl: Require 8.4 or higher version of Tcl/Tk * lib/autoPlayList.tcl: - Improved folder position history - Function to incrementally search the filter as the user enters keystrokes - Maintain open/close state of a node when re-indexing it - Removed < 8.4 support * lib/saFiltering.tcl: Use Update not update * lib/ircserver.tcl: - Check eof before read * lib/gpWidgets.tcl: - Improved status dialog - Removed < 8.4 support * lib/saGUI.tcl: macros::copyToMediaPlayer supports multiple sources * lib/id3.tcl: - Added some more genres - Fixed string length bug to make sure the tag length is correct - Before writing tag, make sure it has been modified - Support unicode tags for ID3V2 * lib/id3Editor.tcl: - Alt tag is now the non-default tag rather than ID3V2 * lib/catalog.tcl: - Removed < 8.4 support - catalog::addNewEntry to both cache a track and update the APL display when copying to finding a new track during monitoring - Rebuild the tree better/faster when indexing a branch - Improved status dialog * lib/saTree.tcl: Added Tree::isOpen function Faster search for children clearner Tree:buildwhenidle * lib/soundControl.tcl: Use improved status window 2004-06-07 wilkason * lib/saSettings.tcl: - Added separate font for track artist - Move around a couple options - Added option to --hide/show main player labels --Tick marks on volume control - Album art min/max size - External media player - mp3gain launching - Various options for reading/writing ID3 tags (now that ID3V2 writing is supported) * lib/gpWidgets.tcl: - Minor tweaks * snackAmp.tcl: - Added tkdnd support - Call to restore folder names for faster startup * lib/catalog.tcl: - Added support for media players * lib/gpUtils.tcl: - Broswer utils added to query for and parse the returned google images - On windows, try to reuse the browser window as much as possible * lib/urlRedirect.tcl: - Restore insert option for web client - Added some parameters internally * lib/saGUI.tcl: - Ability to hide/show main gui info area labels - Album art button/display ability (requires Img extension) - Moved location of volume control and time slider for a cleaner look - Menus to handle media players - Can set track rating by clicking the displayed track rating * lib/id3Editor.tcl: - Handle preferences for reading/writing ID3 tags * lib/HttpD.tcl: - Handle error when a file doesn't exisit more fully * lib/metakit.tcl: - Fixed bug where ratings where being reset when a forced catalog was performed, now they are preserved - When returning filtered table data, use a much faster method to return the tracks. Also supports filtering on many different criteria. - Supprot for returning album tracks for current track * lib/autoPlayList.tcl: - When dragging/pasting files into a media player folder, copy rather than move - Add support to display cover art for selected folder - Multiple attributes to filter tracks on - Support tkdnd for incoming/outgoing files, using Cntl-Mouse to use - Folder auto-level options to launch mp3gain on specific tracks or albums * lib/ircserver.tcl: - Update display of track when you change its rating * lib/saImages.tcl: - Tweaked some images * lib/macros.tcl: - Add option to pre-compute next tracks auto-level to support gapless playback better. - Added some functions to handle DND callbacks * lib/playList.tcl: - Fixed bug where the insert position wasn't always reset properly - Callback to handle dragging a playlist to the playlist box * lib/soundControl.tcl: - Added check in findstart to prevent an infinite loop under rate circumstatnces - Some internal routines added * lib/id3.tcl: - Much improved ID3V2 tag reading (up 20 2.3) - Support ID3V3 tag writing (up to 2.3) with support for padding, inserting and overwriting existing tags, retaining existing tags not supported by SnackAmp (lyrics, images ...) 2004-05-23 wilkason * lib/catalog.tcl: - Added Coverart Support - Support for connected media players * lib/soundControl.tcl: Allow timer scale display to update less than 1 sec (small jumps) 2004-04-25 wilkason * lib/saSettings.tcl: Added scheme settings * lib/metakit.tcl: Rename file name at end of set since using sorted view on file name * lib/gpWidgets.tcl: Implement Bwidgets combobox for some radiobuttons and scrolled frames Clicking mouse will cancel a ballooon help Added historyentry to keep track of entry widgets history (using a bwidget combobox) * lib/subSorting.tcl: Menus use tkoption menu font Use combobox instead of scale for mopph * lib/playurl.tcl: * lib/saFiltering.tcl: * lib/saGUI.tcl: Menus use tkoption menu font * lib/id3Editor.tcl: Using bwidget scrolled frames * lib/catalog.tcl: Removed a Trace call * lib/gpUtils.tcl: Don't specify menu font * lib/autoPlayList.tcl: Menus use tkoption menu font Use combobox instead of entry for filtering * snackAmp.tcl: Tweaked a few TK options 2004-03-27 wilkason * lib/catalog.tcl: Speed up initital set of tefolders a bit * lib/metakit.tcl: More info after an import 2004-03-21 wilkason * lib/saFiltering.tcl: * lib/urlRedirect.tcl: removed db::unsortedlist call, no longer needed * lib/ircserver.tcl: Handle case where socket value is set but no longer in the list of file channels * lib/autoPlayList.tcl: Handle error when get freespace fails * lib/metakit.tcl: - data is accessed via a sorted view which keeps the tracks sorted - removed db::unsortedlist call, no longer needed - Update user status during export/import 2004-03-08 wilkason * lib/saFiltering.tcl: * lib/urlRedirect.tcl: Using lpush * lib/catalog.tcl: Simplified some code * snackAmp.tcl: Option tweak on unix * lib/gpUtils.tcl: - Added morph function - Added some queue functions * lib/autoPlayList.tcl: Added rebuild tree function * lib/HttpD.tcl: Using lpush/lpop functions to simplify code * lib/metakit.tcl: - Added more info on an import - Added morphing for subsorting * lib/macros.tcl: Added MoveTo function to simulate up/down in list box * lib/ircserver.tcl: Changed a couple bindings * lib/gpWidgets.tcl: Removed unused code * lib/subSorting.tcl: Added post sort morph feature * lib/saSettings.tcl: Set default APL trees when importing folders * lib/soundControl.tcl: More info when no mixer available 2004-02-22 wilkason * lib/saGUI.tcl: ifdef out removeable catalog menu * lib/saSettings.tcl: Moved HttpUsers setting up on page * lib/ircserver.tcl: Retry open socket in case it closes * lib/id3.tcl: Simplify read statement * lib/gpUtils.tcl: - Added lipinsert & lipreplace functions - Tweaked freedb query url * lib/saFiltering.tcl: Using lipinsert fuction * lib/HttpD.tcl: Remote enabled check now works for all remote/* uls * snackAmp.tcl: Version change to 3.0a2 * lib/catalog.tcl: Removed old documentcache function, now done in database * lib/urlRedirect.tcl: Using lipinsert function * lib/macros.tcl: Removed unused focus statements * lib/metakit.tcl: Added document function 2004-02-12 wilkason * lib/gpWidgets.tcl: Tweaked balloon help for destroying balloon after timeout * lib/catalog.tcl: Moved out balloonSongInfo * lib/saSettings.tcl: Added delay to kill balloon 2004-02-11 wilkason * lib/macros.tcl: - Delay a second on an invalid file * lib/id3Editor.tcl: - Clear array before reading tag * lib/id3.tcl: Test code to see if unexpected fields show up when changing id3 tags * lib/gpUtils.tcl: Log ip address in use * lib/catalog.tcl: - Better balloon display for tracks with no gain set - Monitor cachefolders is out * lib/autoPlayList.tcl: Database Statistics for a selected Tree * lib/metakit.tcl: - Added some test code - Format of gain was spaced wrong * lib/metakit.tcl: Database Statistics for a pattern * lib/saSettings.tcl: - Removed direct editing of folder names - Re-read the APL file after a folder index * lib/cframe.tcl: Move the collapable frame arrow up 2 pixels for better cross platform goodness * snackAmp.tcl: Remove scan for cache files (no longer used) 2004-02-09 wilkason * lib/saSettings.tcl: Fixed some import/export issues * lib/soundControl.tcl: Update time more often, looks more fluid on linux * lib/saGUI.tcl: Ability to launch snack mixer * lib/macros.tcl: Bug on log printing out invalid variable * lib/metakit.tcl: Busy cursor when exporting 2004-02-08 wilkason * lib/metakit.tcl: Removed old test code * lib/macros.tcl: Fixed bug where initial APL files were reset to 0 * lib/gpWidgets.tcl: Change APL browser cursor on a Wait * lib/gpUtils.tcl: Fixed bug in nameToShort translation * lib/catalog.tcl: Fixed bug when creating default folders for the first time * lib/HttpD.tcl: - Handle some additional socket errors cleanly - Don't enforce authentication when playing a stream (since this is done by a player, not a browser) * lib/saSettings.tcl: - More info on export - Additional LIRC options * snackAmp.tcl: Corrected order of finding the home folder * lib/urlRedirect.tcl: Changes to support the new sorting modes * lib/ircserver.tcl: Added some additonal options * lib/autoPlayList.tcl: Couple minor tweaks related to debug code 2004-02-05 wilkason * lib/saSettings.tcl: Lots of changes * lib/autoPlayList.tcl: Changes to tablelist interface * lib/fileAssociation.tcl: Incorrect call during a menu queue * lib/saImages.tcl: Added and changed some images * lib/playList.tcl: Much cleanup to standarized interface * lib/id3.tcl: - Fixed a number of decoding bugs and cleaned up code - Handle more genres * lib/urlRedirect.tcl: Changes to support abstracted database * lib/saTree.tcl: Minor pixel tweak * lib/macros.tcl: Refactoring * lib/IconSupport.tcl: Remove unused code * lib/HttpD.tcl: - Fixed minor stream size issue - Workaround for fcopy not calling end callback in a starkit * lib/metakit.tcl: Lots of changes, still includes test code * lib/ircserver.tcl: New to implement LIRC handler * lib/id3Editor.tcl: Show tag types * lib/playurl.tcl: Use valid media dirs list * lib/saGUI.tcl: Cleaned up some menus * lib/saFiltering.tcl: * lib/subSorting.tcl: Implemented custom sorting * lib/soundControl.tcl: Added silence detection code * lib/gpWidgets.tcl: Little Changes * lib/gpUtils.tcl: Little changes * lib/catalog.tcl: Lots of database related interface changes 2003-09-25 wilkason * lib/metakit.tcl: - Added bumpplayed functions to adjust played count - Better commit logic - Improved some of the database access speed * lib/autoPlayList.tcl: Added menus to adjust ratings * lib/macros.tcl: - Added bumpplayed call - Default to .m3u playlists * lib/fileDB.tcl: Added dummy functions for adjusting played and ratings (not supported with file based database) * lib/saSettings.tcl: Added played & rating database entries * lib/id3.tcl: Added unknown genre * lib/fileAssociation.tcl: Changed the windows popup text * lib/catalog.tcl: Popup to tell user when removing stale entries 2003-09-08 wilkason * lib/saSettings.tcl: - Changed windows default fonts - Improve cancel settings better - Added a couple more options * lib/saTree.tcl: Incorporated changes by Leslie Brooks and myself to make the tree more publically useful * snackAmp.tcl: - Moved a bunch of code out to various functions to simplify the main file - Cleaned up comments - Removed freewrap code * lib/pkgIndex.tcl: Added new packages * lib/IconSupport.tcl: - Cleaned up comments - Removed freewrap code * lib/id3Editor.tcl: Move id3 editor functions out of id3.tcl to here * lib/saGUI.tcl: Moved all main GUI code here * lib/saFiltering.tcl: - Moved out listbox code - Refactored some code * lib/metakit.tcl: Metakit database wrapper * lib/playList.tcl: Moved all playlist/listbox handling code here * lib/autoPlayList.tcl: - Refactored code to isolate catalog access - Cleaned up comments * lib/saImages.tcl: Put images into namespace * lib/HttpD.tcl: * lib/cframe.tcl: * lib/console.tcl: * lib/fileAssociation.tcl: * lib/pane.tcl: * lib/playurl.tcl: - Minor comment changes * lib/fileDB.tcl: Moved all file based database code here * lib/miniPlayer.tcl: Put miniplayer in a namespace * lib/macros.tcl: Move macros here * lib/gpWidgets.tcl: - Cleaned up comments - Added my own option menus * lib/catalog.tcl: Moved out direct database access to fileDB and metakit.tcl ( depending on which one the user is using) * lib/soundControl.tcl: Moved all snack sound access here * lib/id3.tcl: - Moved out id3 editor code - Improved ID3V2 handling for different version and more complete detection of tags - Support native language encoding when writing tags * lib/urlRedirect.tcl: Cleaned up code bit, no major changes * lib/gpUtils.tcl: - Added a number of gp routines - Fixed env(NETSCAPE) bug - Cleaned up comments * snackAmphotKeys.tcl: - Cleaned up comments - Changed a few macro names 2003-07-10 wilkason * lib/id3.tcl: - Moved cols around a bit on APL - Added guess logic for web interface * snackAmp.tcl: - Changed version to 2.2.1 - Using userInsert logic - Handle embedded http files in playlists * lib/saFiltering.tcl: Added userInsert code to smartly insert items into the playlist (Thanks Dag Wieers) * lib/urlRedirect.tcl: Added better jukebox interface (Thanks Dag Wieers) * lib/saSettings.tcl: Added web server ui settings * lib/gpUtils.tcl: Added logic to link to allmusic on web interface * lib/catalog.tcl: Delay a full second before restarting track on startup * lib/autoPlayList.tcl: - Replaced Insert tracks with userInsert logic to smartly insert data at end of user queue - Prevent some skips when starting APL for the first time * lib/HttpD.tcl: - Changed logic to not create a temp file for dynamic data * lib/playurl.tcl: Removed a diagnostic parray 2003-05-30 wilkason * lib/gpUtils.tcl: Try a number of times to find own IP in case some ports are blocked 2003-05-22 wilkason * lib/id3.tcl: - Sort Year as a dictionary not integer to allow blanks 2003-05-18 wilkason * lib/IconSupport.tcl: * snackAmp.tcl: Change Music File Player to Music Player * lib/HttpD.tcl: Handle case where regexp fails on tml entries * snackAmp.tcl: Format CVS Version Info 2003-05-17 wilkason * lib/gpUtils.tcl: Added safeWrite routine to not overwrite a file unless succesful * lib/id3.tcl: - Read ogg tags * lib/saSettings.tcl: Move some settings items around and put them in labeled frames to improve organization * lib/saSettings.tcl: Make smal track label italic by default * lib/gpWidgets.tcl: - Added Mousewheel support for scrollbars on *nix * lib/miniPlayer.tcl: - Mousewheel bindings for *nix to adjust volume * lib/saTree.tcl: - Option to show tree nodes with more modern (no lines) interface - Replace image bitmaps with image photos in all cases * snackAmp.tcl: - Labeled 2.2 final - Mousewheel bindings to adjust volume on *nix - Handle 8.4 64 bit clock clicks - Paste about message to clipboard * lib/urlRedirect.tcl: - Break track name apart to show info when no tag data exists - Show same folder level info in http tables as playlist * lib/IconSupport.tcl: - Fixed printout bug first time creating an icon * lib/autoPlayList.tcl: - Added File Media Folder commands from SnackAmp GUI to Auto Playlist GUI - Added mousewheel support on *nix for scrolling * lib/HttpD.tcl: - Support new socket2 command (David G) if package is available - Default remote control is no longer user adjustable * lib/catalog.tcl: - Use safeWrite to write out files so failures don't delete original file (e.g. disk full) - When smart renaming a file, insert a separator between first number and rest of text (i.e. track number) if one doesn't already exist. - Only write gain control file out if it has changed. 2003-04-28 wilkason * lib/playurl.tcl: Don't "stop" after closing the socket, this is done automatically and can cause errors on windows * snackAmp.tcl: - On usk error process nextcommand instead of stopping - On invalid file, process nextcommand instead of Next 2003-04-18 wilkason * lib/urlRedirect.tcl: - Handle ' in browser 2003-04-16 wilkason * lib/saImages.tcl: - Added filter image * lib/id3.tcl: - Bug: songDetails was using hardcode s sound object * lib/urlRedirect.tcl: - Renamed some urls to keep streaming and remote control separate - Improved browser url code * lib/autoPlayList.tcl: - Removed legacy play list box support (table is too integrated now) - Added filtering for files on table * lib/playurl.tcl: - Prevent playing a url from same snackamp instance (to prevent hangs) - On play errors, process next command anyway - Add function to validate the usk folder * lib/gpUtils.tcl: - Added a couple console debug commands * lib/saFiltering.tcl: - bug fix: Handle blank playlists * lib/catalog.tcl: Removed legacy play list box support (table is too integrated now) * lib/saSettings.tcl: - Options to enable/disable streaming/remote control individually - Added option to resume playing a track that was saved with a playlist - Added option to save a corresponding playlist file for each auto-playlist setting when changing to a new auto-playlist. * lib/HttpD.tcl: - Support individual enabling of streaming/remote control - Added functions for web browser to show playing streams * lib/gpWidgets.tcl: - Commented out some unused code - Handle mono signals for level meter * snackAmp.tcl: - On unix, direct arguments (or raise) to running copy of snackamp rather than just notifiy user. - On unix, load the console immediatly so all output goes there, to help launching from the browser. - Verify the usk folder is set properly before adding a usk file - remove code for non-table APL wndow - playlists are now m3u types by default 2003-03-28 wilkason * lib/autoPlayList.tcl: - Withdraw gui first on close to reduce delay on close * lib/saSettings.tcl: - Simplified initial dialog * snackAmp.tcl: - Fixed bug in PlayFile for single track - Help launchs main web file which then links to play control or remote streaming. * lib/urlRedirect.tcl: - Added sorting capability to streaming - Improved streaming browser http, work in progress * lib/playurl.tcl: - Read additional icy meta data if available - Added some interface functions for shortkey files * lib/HttpD.tcl: - Remove special handling of root folder, allow index.* files to be there - Send additional icy meta data if available * lib/id3.tcl: - Handle octal track numbers better - use upvar to access gui globals to simplify code - Added url shortcut field for usk files * lib/fileAssociation.tcl: - Namespaced procs in file - Added ability to associate mime types for clicking file types in web browsers * lib/catalog.tcl: - Fixed recent problem when applying the APL, only files previously in playlist were used as candidates. - Added indexMatchingPattern catalog method 2003-03-18 wilkason * lib/saTree.tcl: - Fully namespaced, no more globals - Using faster upvar method to access widget specific options - Using buildwhenidle rather than build when expanding/collapsing a complete tree. At least 100X faster now! * lib/playurl.tcl: Added playurl package, plays streaming audio * snackAmp.tcl: - Labeling 2.2 Beta 1 - Handle both file name and -home parameter - Modified PlayFile dde function to handle playlists for playing streaming audio - Added level meter to gui to show relative sound level - Menu option to open a URL to play - Modified Play function to play http streams as well as files * lib/fileAssociation.tcl: TA(appname) is figured out in snackAmp.tcl now * lib/HttpD.tcl: - Added handlers for streaming audio (mp3, ogg, playlists) - Will stream music pulling off a playlist in a continuous fashion - Added local net access only support * lib/urlRedirect.tcl: - Modified process functions to return wheather a file or content is to be sent as a response - Added getplaylist process method to process playlist requests for streaming - Added streaming process method to display playlists and auto-playlists (in work) * lib/gpWidgets.tcl: Added code to update the level meter (snack provides the meter itself) * lib/autoPlayList.tcl: - Access Tree functions properly via namespace - Added function to create a stream shortcut to highlighted path - Different function with latest tablelist to cancel cell editing * lib/id3.tcl: - Function to just compute offset of ID3Tag end for streaming - Fixed minor bug in ID3v1.2 note fields - Don't automatically correct case issues in ID3 tags, added button for that - Handle invalid song data cleaner * lib/gpUtils.tcl: Added localUrl function to determine if an address is local or remote * lib/saSettings.tcl: - Added user interface, changed other options to support streaming audio - Numeric parameters now use sliders to limit the values in a reasonable way * lib/catalog.tcl: - Access Tree functions properly via namespace - changed channelinfo to songinfo to return info on a stream - Fixed issue when pasting a folder on a folder with the same name, need to still copy duplicate files * lib/pkgIndex.tcl: Added playurl package 2003-03-04 wilkason * lib/urlRedirect.tcl: - Lowercase play state - Use stylesheet for all displayed data formats * lib/id3.tcl: - Optimized and speed up Id3 tag access - Incorporated v1.2 tags * lib/gpWidgets.tcl: - Removed some dead commented code * lib/saSettings.tcl: - Added limit to # of tracks to edit in id3 editors - Add options to use id3 1.2 tags - Added subnet/local web options to allow local only access to web server * lib/saImages.tcl: Updated some bitmaps for better overall look * lib/catalog.tcl: - Moved auto level gain access to namespace - Reread the APL file in certain cases after modificaiton * lib/gpUtils.tcl: Updated iptools namespace to not need a socket to find local ip address * lib/autoPlayList.tcl: - History and AutoPlaylist menus are now only on button/menus, not both - Added ability to shown multiple folder levels in track listing * snackAmphotKeys.tcl: Added a couple more default assignments * snackAmp.tcl: - Use namespace for auto-level access, no uses folder/file for tagging auto-level settings (rather than file only). - Enforce file limits on tag editing 2003-02-21 wilkason * lib/gpUtils.tcl: Added iptools namespace to detect local vs. remote ip addresses * snackAmp.tcl: Added APL_TreeNodeAssign macro 2003-02-13 wilkason * lib/autoPlayList.tcl: APLFilterAssign was called before GUI existed, now called after * snackAmp.tcl: APLFilterAssign should not run if APL doesn't exist 2003-02-11 wilkason * snackAmp.tcl: - Added a number of playlist file options to the menus - Added insert playlist at current * lib/saSettings.tcl: - Added web logging - Don't hardcody in head, should be in tml file - Show number of http accepts in settings * lib/catalog.tcl: Don't check if file exists after it is moved, the old dos file name may show up. The check is superflouous anyway * lib/saFiltering.tcl: - Added ability to insert a playlist - More playlist & filtering options on menu pull-down * lib/autoPlayList.tcl: - Added APLFilterAssign macro for hotkeys to be assigned to APL filter box - Added a couple macros to use by APLFilterAssign (see hotkey file) * lib/HttpD.tcl: - Added logging - Cleaned up web server a bit, still not "perfect" however. Lots of socket issues depending on which starkit is used. * lib/urlRedirect.tcl: - Pass in css from outside to support tml files better - Don't hardcody in head, should be in tml file * lib/id3.tcl: Added "fix" button to clean up file names on tag2name editor * lib/gpWidgets.tcl: Add patch to handle windows invalid posting of menus * snackAmphotKeys.tcl: - Copied out some buitl-in assignments for users to change 2003-02-03 wilkason * lib/saFiltering.tcl: Added functions to insert files and return index of playing track * lib/pkgIndex.tcl: - Added urlRedirect package * snackAmp.tcl: - Bumped version to 2.1.2 - More accurate timestamp - Orderly shutdown - Don't prompt when appending to playlist (Carsten Lawrenz) * lib/urlRedirect.tcl: - Added row headers - Ability to insert and append songs to playlist 2003-02-02 wilkason * lib/urlRedirect.tcl: Initial checking of URL processing code, stripped from server code to maintain easier * lib/HttpD.tcl: - Removed -gmt on timestamp, caused lots of file busy problems - Cleaned up some potential leaks when not closing file properly 2003-01-31 wilkason * lib/HttpD.tcl: - Cleaned up error handling - Headers contain content size for dynamic info - Using stylesheet for all table attributes * lib/gpUtils.tcl: - Properly encode cddb query data 2003-01-30 wilkason * lib/HttpD.tcl: Partial fix for invalid header on dynamic content * lib/catalog.tcl: When the master list has changed, detect it when returning the list for the APL to use * lib/HttpD.tcl: Use GMT * snackAmp.tcl: Fix Typo on menu 2003-01-22 wilkason * main.tcl: Work if running without starkit * snackAmp.tcl: Launch user manual from web if web server disabled 2003-01-21 wilkason * lib/saSettings.tcl: - Remote control enable is now web server enable * lib/gpUtils.tcl: - Don't automatically enable help file * lib/console.tcl: - Package require Tk in interp * lib/HttpD.tcl: - SECURITY FIX, if local user folder is blank, don't try and map files on it. - If enable remote control is off, don't even fire up the web server. * snackAmp.tcl: - Version 2.1.1 - Don't show help/remote menus if web server is disabled 2003-01-18 wilkason * lib/IconSupport.tcl: Support starkit/pack for icon files 2003-01-17 wilkason * lib/saSettings.tcl: - Fixed bug during init where playlist was being accessed before it was created - Incorrect default location of hotkey file, not the same as the snackAmp * snackAmp.tcl: Added changes to support tclkits * lib/HttpD.tcl: - Added some changes to better handle non-existent files - Highlight active song by index to prevent duplicate highlights for duplicate songs * main.tcl: Initial checkin of main.tcl for tclkits 2003-01-08 wilkason * snackAmp.tcl: Removed Unecessary notice on message * lib/miniPlayer.tcl: Removed Comment 2002-12-31 wilkason * lib/saImages.tcl: - Replace snackamp logo with smaller one for splash * lib/HttpD.tcl: - Handle tml and html file open errors - Using stylesheets for dynamic content - Adjust vol, back to sending playlist, however not performing a vwait unless the query is a play control. - Have separate refresh for playlist and display - Question button just launches new browser, problems with javascript parameters. * lib/catalog.tcl: - Verify permissions on delete/move - ReadCacheFiles speed improved again - When sorting TFList, make it unqiue (8.3+) * lib/autoPlayList.tcl: - Add permission check on deleting files * lib/saSettings.tcl: file normalize is not on tcl 8.2, so handling 8.2 and lower tcl versions * lib/saSettings.tcl: Move global Colors into a namespace * snackAmp.tcl: - Bug: Make initial blank auto-playlist selection - Add permission check on deleting files * lib/saFiltering.tcl: - Folder sort uses dictionary * lib/gpWidgets.tcl: - Splash screen made smaller * lib/gpUtils.tcl: - When sorting by folder, use a dictionary sort for tracks 2002-12-28 wilkason * lib/id3.tcl: - Ctrl-N note added to balloon text * snackAmp.tcl: When auto-leveling, use add a button to the pop-up to stop process, don't use a separate toplevel * lib/gpUtils.tcl: Handle invalid data sent to timify routine * lib/HttpD.tcl: - Used encode/decode from tcl http server - refresh doesn't have to specify the url - using hidden fields on form for back button - better file name handling for ? pop-up, still not all the way there though 2002-12-26 wilkason * lib/catalog.tcl: - Only sort the master list when needed, speeds up use - Remove wait window on errors so it doesn't oclude the dialogs * snackAmp.tcl: - Added menu option to remove a playlist file - Move drag handlers to LB namespace - Don't necessarly apply the auto-playlist if saving it - Make *nix menu borders 1 instead of 2 pixels * lib/saFiltering.tcl: - A few menu name changes for consistency - Speed up filter operation for applying auto-playlist - Added routine to retrieve full file name from playlist * lib/id3.tcl: Handle file read errors * lib/autoPlayList.tcl: - Changed a few menu items for consistency - Open the folder after cataloging it - Handle delete errors on .saDetails - Access master list via wrappers - Auto add a new file to master list (for 8.4+) * lib/HttpD.tcl: - Handle POST query data - Lots of additions to play control, many new features added - Now has special handling for /local for to map to a user specified folder even if running from a wrapped web-server. * lib/saSettings.tcl: Add setting for local HTTP web folder 2002-12-19 wilkason * lib/miniPlayer.tcl: - Show track time when dragging time slider * lib/catalog.tcl: - Functions to Save/Restore sorted order of master list * lib/autoPlayList.tcl: Saving the auto-playlist no longer applies it, that must be done separate * snackAmp.tcl: Support dynamic layout of main display to show various levels of info * lib/saSettings.tcl: - Added option to set various level of Display info - Don't show error stack on first time use dialog, can be deceiving - If settings point to a hotkey file that doesn't exist, and the folder also doesn't exist, then create one in the default location. Can be caused by sharing config files. * lib/saFiltering.tcl: - Speed up application of auto-playlist (noticable on large music sets) - Order is preserved when filtering at startup (not just after an auto-playlist is applied) * snackAmp.tcl: - Improved speed when applying the auto-playlist 2002-12-17 wilkason * lib/id3.tcl: - Handle track numbers > 127 - Added name template for the tag to name editor to simplify renaming - Added some more smarts to the smart tagger based on file name. Parses out correct location of track numbers. - Shorter format for date on main display. - Added Ctrl-N in track field on table editor to generate a sequential list of track numbers. * lib/cframe.tcl: - Changed button to one with flush icons. * lib/HttpD.tcl: Added /display URL to just show tracks in list (no control avalable), requested for parties and such. * lib/miniPlayer.tcl: - Can now restore location and display of miniplayer on startup - RMB on miniplayer shows the main system menu. * lib/gpUtils.tcl: Added shuffleByFolder function to support shuffling by folder keeping tracks within the folder together. * wrap50.tcl: - Change of freewrap location * snackAmp.tcl: - SnackAmp 2.1 will be next version - Cleaned up access to script home so snackamp icon is shown on all windows (ms windows) after a song starts playing. - Main window can shink a little more than before - Single sort icon with drop down menu to show the 4 sort/shuffe modes. - Show correct snack/ogg version on about menu under all cases. - Main menu saving to playlist works for entire playlist if only a single track is selected, no longer need to manually select all files. - Bleed down track position on new track if > 3600 seconds for better compatability with snack 2.2 to prevent internal counter roll-overs. - Restore miniplayer if option chosen * lib/saSettings.tcl: - Added option to restore mini-player on play settings - Added new sort mode defaults to play settings - Added fast scan option to diagnostics (on by default) * lib/autoPlayList.tcl: - Migrating direct access to file list to catalog namespace - Speed up searching for next track/folder a bit - Bound delete key to folder tree to delete a the highlighted folder - Added menu option to split a group of files into folders based on components of file name (split) - Added menu options to rename a group of files based on the folder names they are contained in (combine) - Added menu options to append the selected folder or selected files to a playlist file. * lib/saFiltering.tcl: - Added two new sort options: -- Shuffle by folder, sort by track; use this to play albums in random order (if you keep album tracks separate) -- Shuffle by folder, shuffle by track; same as above but plays the tracks within an album in random order. - Use catalog api for accessing tracks * lib/catalog.tcl: - Added some abstracted access functions to interface with the catalog. - Took atvantage of 8.4 lsearch/lsort speed improvements when 8.4 is available. - Fast Scan Option (on by default) to catalog folders 2X faster than before, only caveat is folders named with audio file extensions aren't found. (Turn option off in this rare case) - Large speed Improvements made to reading catalogs, SnackAmp should start up much faster now (with larger music collections) - Handle file renaming when path separator added to new file name (create new folder as required) - Don't show inplace edit windows if the underlying window isn't mapped. - When cataloging part of a folder tree, don't add folders to treeview that are empty. - Keep master file list sorted at all time to take advantage of indexed searching in 8.4 2002-11-21 wilkason * lib/id3.tcl: Disallow full quotes in guessing filenames, convert to single quote 2002-11-19 wilkason * lib/id3.tcl: - Force file format guessing to speed detection - Don't allow * and : in file names 2002-11-18 wilkason * wrap50.tcl: Smaller Header * snackAmp.tcl: Create separate sound for log power, to allow concurrent leveling and playing. Needs updated snack engine. * lib/saSettings.tcl: Add option to save settings in old or new format. Needed for backwards compatibility. * lib/id3.tcl: If no ID3 tag available, use file name as title. 2002-10-31 wilkason * lib/gpUtils.tcl: - Added cddb search to tag editor (not yet complete) * lib/catalog.tcl: - Use handle to sound object rather than hardcode - Prompt user if they didn't specifiy a catalog name for removable media - Flag the cache as dirty when moving folders so updated cache file is saved (was broken sometime after 2.0) * snackAmp.tcl: - Tweak on about box - Added output device options (shouldn't have to use) * lib/saSettings.tcl: Use clean text format for settings file * lib/id3.tcl: - Added gain and tag type columns - Use temp sound for balloon help * snackAmphotKeys.tcl: Added Control-Right macros to jump within track * lib/autoPlayList.tcl: Handle additional columns in table view not previoully saved in settings 2002-10-14 wilkason * lib/HttpD.tcl: * lib/IconSupport.tcl: * lib/autoPlayList.tcl: * lib/catalog.tcl: * lib/cframe.tcl: * lib/fileAssociation.tcl: * lib/gpUtils.tcl: * lib/gpWidgets.tcl: * lib/id3.tcl: * lib/miniPlayer.tcl: * lib/saFiltering.tcl: * lib/saImages.tcl: * lib/saSettings.tcl: * lib/saTree.tcl: * snackAmp.tcl: - Just CVS Header in file header * snackAmp.tcl: - About box has additional info - Don't moun't rem. media if not enabled * lib/saSettings.tcl: Back to disable removeable media by default, user is now prompted to enable if needed. * lib/catalog.tcl: - Prompt user to enable removable media if disabled when trying to mount or catalog media - When unknown media found during a mount, user is prompted to catalog it. - Escape/Return invokes buttons on catalog dialog - file subcommands, use full name not abbrevation * lib/HttpD.tcl: - Display message in browser when remote control is enabled * lib/id3.tcl: Use two or more track digits when suggesting auto renames from tag info 2002-10-09 wilkason * lib/gpWidgets.tcl: Force ontop only if toplevel has it on * lib/saSettings.tcl: Removable Media is on by default now, also calling it Removable Media in settings, not Removabe Volumes * lib/autoPlayList.tcl: - Catch sort errors on tablelist when a col is removed, then resorted - Bug: When renaming inplace, force the rename window on top if the toplevel was. * lib/catalog.tcl: - Prompt user if Removable Media is off before a catalog operation - Bug: When renaming inplace, force the rename window on top if the toplevel was. * snackAmp.tcl: Bug: If old style unix font used for menu, then replace with Helvetica 2002-09-20 wilkason * lib/autoPlayList.tcl: Verify column number exists when updating to remove spurious error statement * lib/catalog.tcl: added \n to fix log output * snackAmp.tcl: - Remove autofade option till it is compatible with snack 2.2 - Faster track transition * lib/HttpD.tcl: Removed SSL server statement, server is not SSL capable * lib/saSettings.tcl: - Remove autofade option till it is compatible with snack 2.2 - Corrected broken help browser setting 2002-09-12 wilkason * lib/console.tcl: Add 8.4 internal calls 2002-09-10 wilkason * snackAmp.tcl: Made Linux/Windows more similar for options * lib/gpWidgets.tcl: Relief changed for buttons so they are raised on windows/linux/unix * snackAmphotKeys.tcl: * wrap50.tcl: 2.0 final * lib/saSettings.tcl: Minor changes to color descriptions in settings * lib/id3.tcl: Minor padding added to edit window 2002-09-09 wilkason * lib/catalog.tcl: When moving files show splash and update between each one * snackAmp.tcl: - Make sure options represent settings after they are read - Support task priority switching on windows * lib/saSettings.tcl: - Add option to expand folder and DND drop on it - Tweak default colors a bit - Register selectbackground in settings gui * lib/gpWidgets.tcl: Set selectbackground for tabbedOptionFrame * lib/autoPlayList.tcl: - Support color scheme same as rest of SnackAmp * lib/saTree.tcl: Use color options from the rest of snackamp * lib/id3.tcl: Additional character striped in cleaning tag data 2002-08-31 wilkason * snackAmp.tcl: - Play during paused resumes - Wasn't find proper script folder on linked files under unix * lib/miniPlayer.tcl: Play during paused resumes * lib/HttpD.tcl: - Added more trace statements - Close socket on read error, allow browser to retry naturally. Fixes 100% cpu on certain files, especially when wrapped. * snackAmphotKeys.tcl: Added example to jump 30 seconds ahead * lib/autoPlayList.tcl: - When copying folders to clipboard, make sure they are space separated to allow a later iteration. - Verify dnd folder target exists 2002-08-23 wilkason * lib/autoPlayList.tcl: Add columns menu option to easily enable/disable columns * wrap50.tcl: Replace 8.4 broken code for menu pop-us (temp) * snackAmp.tcl: Version 2.0 * lib/saSettings.tcl: - Use table columns from array - Default of enable remote control off (security) * lib/id3.tcl: - Table column order tweaked - Clean 0x255 properly 2002-08-19 wilkason * lib/autoPlayList.tcl: Hourglass when dnd moving files, it can be slow across file systems 2002-08-18 wilkason * lib/autoPlayList.tcl: Added cut/paste to toplevel menu Remove break from menu copy command that was causing an error * lib/saSettings.tcl: Lock minimim size of settings guis * lib/id3.tcl: Add sample rate in sound info * lib/gpWidgets.tcl: Added lockSize procedure * snackAmp.tcl: Add Sample Rate in front screen 2002-08-13 wilkason * lib/saSettings.tcl: - Can now pre-compute all auto-level values from settings * lib/saImages.tcl: - Added unpinit image * lib/miniPlayer.tcl: - Swapped two images * lib/catalog.tcl: Resume pause if exiting while paused * lib/autoPlayList.tcl: - Bug fix: Don't try to sort if no last sorted column * snackAmp.tcl: - Improved Auto Level algorithm - Can now pre-compute all auto-level values from settings * lib/gpWidgets.tcl: Raise splash if needed * wrap50.tcl: Write out files from wrap if timestamps are different, not necessarly later 2002-08-01 wilkason * lib/saSettings.tcl: - Added run-time limit for auto play level - Cleaned up the settings advanced tab a bit * lib/saImages.tcl: - Added additional icons for APL * lib/gpWidgets.tcl: - Fix button widths on dialog * lib/id3.tcl: - Swapped Artist/Track in APL Table - Show snackamp icon for all toplevels - Force focus when bring up ID3 editors - Improved string cleanup for ID3 to fix case of huge string returned. - Show clamped auto level value. * lib/catalog.tcl: - Fix button widths on dialog - call LB::getListName - Make inplace rename window stretch to underlying widow width - Dialog after removing stale auto level settings * lib/autoPlayList.tcl: - Changed some icons - Added refresh button - Added search folder/search file buttons replacing "Search" button * lib/HttpD.tcl: - Change to support no file extensions for highlighted track * lib/saFiltering.tcl: - Move in getListName to LB namespace * snackAmp.tcl: - Move out getListName to LB namespace - Added run-time limit for auto play level 2002-07-28 wilkason * lib/autoPlayList.tcl: Save/restore last Column widths and current sort column on close/open * lib/saSettings.tcl: - Play Latency is now a setting - Renames Troubleshooting tab to Advanced, added button to reset stale gain values. - Added a couple Http settings - Save APL settings on exit - Save APL active column and its sort value * lib/miniPlayer.tcl: - Added lock button for "Always on Top" (windows) - Changed hide checkbutton to an icon - Much "smarter" initial placement * lib/HttpD.tcl: - Max remote users is now a setting - Number of queued songs shown in browser is now a seting * lib/gpWidgets.tcl: - Balloon show now puts balloon on non left-bottom side of mouse if the balloon won't fit on the screen. - Added ontop namespace for Always on top code (and other TkWinTools) (Windows only). * wrap50.tcl: Unix lf format to allow running as wrap50.tcl * snackAmp.tcl: - Play Latency is now a setting - Added system menu for "Always on Top" for windows - Option to inhibit console on settings menu - Save APL settings on exit - Fix bug on mousewheel and gain when gain was previously 0 - Fix for fading songs didn't stop them when gain was 1. * lib/saImages.tcl: Added images for show/hide main gui and Lock icon for Always on Top for mini-player (Windows) * lib/pkgIndex.tcl: Added TkWinTools dll (Windows), has keep on top code and info on available screen size taking into account the taskbar. Used to place the mini-player. * lib/id3.tcl: - Table initial col widths for certain fields now automatic 2002-07-26 wilkason * snackAmp.tcl: - Workaround for ogg play problem on linux (start offset=0) - TA(currentMF) is now untranslated file, prob on highlighting removable media with full file name in playlist. - Label changed to Beta 2 2002-07-17 wilkason * lib/catalog.tcl: - Change order when message is printed to see what is timing out * lib/saSettings.tcl: - Fixed some typos - Force Alt-F4 to exit, prevents F4 binding from fireing * snackAmp.tcl: - Use unix lf - Replace exec wish with better one 2002-07-09 wilkason * lib/saSettings.tcl: - Defaults of fading off - Bug fix, remove reference to ::splash * snackAmp.tcl: - Final fix for snack 2.2 compatibility * lib/id3.tcl: - On tag info, return "Unknown" if not known, don't log it * lib/catalog.tcl: During init, sort/shuffle the playlist if not restoring playlist (Lemburg) * lib/HttpD.tcl: - Don't log broken connections, they are common - Handle data global being cleared after a process - Link Debug command to Tracing - Initially make last file xxxx and not "", which allows page to come up if no initial file playing. * snackAmp.tcl: - Buf fix, didn't find Arrow fast enough - Buf fix, removed reference to ::splash, no longer used - Delay 200 ms before Next command - Add time stamp to saLog - Sort/shuffle the playlist if not restoring playlist (Lemburg) - Clamp ramp factor on fadeFast to prevent runaways 2002-07-08 wilkason * snackAmp.tcl: - Cleaned up some init code - Move a couple filtering routines to fillter namespace - Finished moving sound related calls to soundControl namespace - Remove the 20db mute feature when clicking title - Not using current_position call anymore due to snack 2.2 issue - Improved play state for unix - Tweaked log power to weight toward peak 2002-07-07 wilkason * lib/saSettings.tcl: Add function to reset auto level gains * lib/catalog.tcl: Latency now in namespace * lib/saFiltering.tcl: Move in a couple of filter functions from snackamp * lib/HttpD.tcl: Failed to cache last file name * lib/saImages.tcl: Add saLogo * lib/miniPlayer.tcl: Balloon call fixed * lib/gpWidgets.tcl: Add logo to wait message * lib/autoPlayList.tcl: Show total size in mbytes * wrap50.tcl: Fix dept of glob for new docs 2002-07-01 wilkason * lib/id3.tcl: - Use shorter date display * lib/gpUtils.tcl: - Removed code to access readme, now accessed from user manual * lib/IconSupport.tcl: - Indenting * lib/HttpD.tcl: - remote control now under remote/snackamp.html - wrap snack sound calls * lib/saSettings.tcl: - Moved fonts and colors into settings namespace * lib/catalog.tcl: * lib/saFiltering.tcl: - Wrap snack sound calls * lib/autoPlayList.tcl: - Nothing Significant * snackAmp.tcl: - Wrapped snack sound access in soundControl namespace - Added option for minimum rate on menu - Move out color and font defaults 2002-06-26 wilkason * lib/saSettings.tcl: Use PlaylistAssign macro instead of binding for some built in bindings. * lib/gpWidgets.tcl: - Can remove scale binding for 8.4, they are not in the core * lib/id3.tcl: - Use explicit -- on regsub to prevent confusion - When renaming files on tag editor, use string map to allow unmatched braces and such * lib/catalog.tcl: - Use soundControl namespace for sound object - prevent possible regsub error * lib/autoPlayList.tcl: - Verify target window exists on dnd - prevent possible regsub error * lib/HttpD.tcl: - Use explicit -- on regsub to prevent confusion * wrap50.tcl: - Allow snack 2.1+ - Look for different magic text to insert magic code when wrapping * lib/gpUtils.tcl: - Add debug function * snackAmp.tcl: - Allow snack 2.1+ - Use different magic text to insert magic code when wrapping - expanded functions in soundControl namespace to start isolating snack unique calls. - Minor changes to adapt to snack 2.2, but not there yet. Works with 2.1 2002-06-23 wilkason * lib/gpWidgets.tcl: Change -col to -column on grid command for 8.4 compatibility * lib/gpWidgets.tcl: - Removed some diagnostic puts statements * lib/miniPlayer.tcl: Removed transient $w $w since this raises an error on 8.4 * snackAmp.tcl: - Fix:Removed on to many menus for APL * lib/autoPlayList.tcl: - Added properties menu selection for folders - Added removal menus for APL files * snackAmp.tcl: Add functions to remove APL files 2002-06-22 wilkason * snackAmp.tcl: Fixed bug when file doesn't exists and next after playing is enabled * lib/saTree.tcl: - Abstrct reference to selected tag - Add seme debug code * lib/autoPlayList.tcl: Functions and cursor key bindings for moving within the tree using up/down 2002-06-21 wilkason * lib/saTree.tcl: - Added function to return the tag at some location - Save current selection - When losing focus draw outline around selection * lib/miniPlayer.tcl: - balloon is now in namespace * lib/gpWidgets.tcl: - Using namespace for balloons now - Don't user sizer image on listboxes - APLExists function added * lib/autoPlayList.tcl: - Call function to append shortcut to menus - Create menus after applying shortcuts - Added rename in place function for the tree (works like explorer) * snackAmp.tcl: - Added macros for the APL list and tree widgets - Install menus after the macros are assigned so shortcuts can be shown on menu - Changed menus to call function to add shortcut automatically - balloons to namespace - Volume allows mousewheel on enter event - Seek allows mousewheel when clicking in slider * lib/catalog.tcl: - Added function to check if APL is active - Added rename in place function for listboxes (works like explorer) * lib/saSettings.tcl: - Added troubleshooting tab - balloon is now in namespace - Added code (bindings namespace) to lookup shortcuts and put them in the menu * lib/id3.tcl: - balloon is now in namespace - Don't initially guess file name on ID3 editor for consistency * lib/gpUtils.tcl: Added cleankeyName function for shortcuts * snackAmphotKeys.tcl: - Added macros for the APL list and tree widgets 2002-06-10 wilkason * lib/saSettings.tcl: Move default hotkey assignments here * snackAmphotKeys.tcl: Swapped F5 and Ctrl-F5 functions * snackAmp.tcl: - Moved out default keys and scale bindings into procs - Using more of the LB namespace * lib/catalog.tcl: Improve name cleaning, now uses user specified split char * lib/autoPlayList.tcl: - Added bindings for table mode for ID3 editing - Some in process code for a pop-up file rename dialog * lib/gpWidgets.tcl: Move scale bindings for pre 8.3.4 here * lib/HttpD.tcl: * lib/saFiltering.tcl: Use more accurate current playing index 2002-06-09 wilkason * lib/gpWidgets.tcl: Allow cursor the change the tab 2002-06-08 wilkason * lib/autoPlayList.tcl: - Search label replaced with button to perform the search 2002-06-07 wilkason * lib/saSettings.tcl: - Minor Option rearangement and defaults - Added option to ramp vol down on pause * lib/id3.tcl: - Comment * lib/gpUtils.tcl: - Cleaned up widgetWatch code * snackAmp.tcl: - When bringing up APL, sync to playing not selected track * wrap50.tcl: - Default assumes freewrap in local folder on windows * lib/catalog.tcl: - Repopulate table on a file delete * lib/autoPlayList.tcl: - Be smarter about when to actually update the table data 2002-06-06 wilkason * lib/saSettings.tcl: - Cleaned up folder manage selections - Only show the browser entry on unix - Minor L&F tweaks * lib/saSettings.tcl: - balloon help change * lib/autoPlayList.tcl: - Added sync APL to actve and selected to menu * snackAmphotKeys.tcl: - Added F4 to table edit ID3 (hardcoded in APL) - Shift-Return in playlist filter box will set the selection on all matching tracks, you can then use the RMB to work with them. More Shift-Returns will select more tracks. * snackAmp.tcl: - Removed SelectPlayingFile - Save playlist cache then stop music * lib/autoPlayList.tcl: - moved some global callback code into functions - can now drag folders to the playlist (dnd) to add them - wrapped some playlist calls to LB namespace * snackAmp.tcl: - Moved out some init code to a proc in catalog namespace - Move PlayList namespace to saFiltering.tcl, not call it LB:: - Wrapped some direct playlist listbox stuff in LB namespace calls - Added feature to ramp volume down when stopping, reworked Play, Next and Prev functions to support it. - Now high lighting current track and keeping it separate from the selection, allows user to either play from current track or the selection. Still a minor issue if the same file is in the playlist twice or more, then the correct one may not be found. * lib/catalog.tcl: - Using more LB wrapper access functions for playlist - Added initCacheFiles function to handle initialization - Removed old check for v1 cache files, long since dead - Cleaned up code that reads cache files and prompts user if file not there. * lib/saFiltering.tcl: - Moved in PlayList box LB namespace - Added code to handle inverse highlighting the current track * snackAmphotKeys.tcl: - Sharing SelectFile for active & selected * lib/catalog.tcl: - Save index of playing, not active file for resume play * lib/gpWidgets.tcl: - Added waitWindow splash namespace * lib/gpUtils.tcl: Added widgetWatch namespace to highlight fields in a widget when the text changes from the initial state. * lib/id3.tcl: - Now highlighting tag editing entry fields when the text changes - minor L&F changes 2002-06-02 wilkason * lib/saFiltering.tcl: * snackAmp.tcl: Changes to support reverse video playing file independent of playlist cursor * lib/saSettings.tcl: - Added option to play from current or selection - Reorganized settings a bit * lib/id3.tcl: Use Replace and not Rename for search/replace button * lib/gpWidgets.tcl: killAfter routine moved here * lib/autoPlayList.tcl: - Fixed clipboard cut function - Remove unused code - improved pack of APL status at bottom 2002-06-01 wilkason * lib/id3.tcl: - Added table columns for APL table - Generazied some of the widget options (using option database) - Tag2Name can now individually guess names and to a search/replace for text in a file name. * lib/autoPlayList.tcl: Lots of changes to support new table display, too numerous to list * wrap50.tcl: - Now wrapping tablelist code * lib/saSettings.tcl: - Added code to configure the new table display in the APL * lib/catalog.tcl: - Use waitwindow when cataloging - support both old and new table display * snackAmphotKeys.tcl: Added F5->SelectFile and Ctrl-F5-> for SelectPlayingFile macro assignments * snackAmp.tcl: - Abstracted some of the playlist listbox functions - Added SelectFile and SelectPlayingFile macros for bindings. - Cleaned up some of the option database settings * lib/gpWidgets.tcl: - Added wait window (splash) when cataloging - Scrollbars can now be "forgotton" when they are not needed on some widgets. - afterExists command to see if a command is pending in the queue. * lib/HttpD.tcl: Cache the song details until a new song plays for remote controller. 2002-05-31 wilkason * lib/gpWidgets.tcl: - Added tabbedOptionFrame namespace for user configuration * lib/saTree.tcl: - Use lighter color line - Callback to re-compute bbox on configure event * lib/catalog.tcl: - Added Option to save current file in another format (e.g. ogg) - Option to prohibit moving/modding files * lib/saSettings.tcl: - Completly new settings GUI, uses a listbox instead of tabs - Many more options configureable * snackAmp.tcl: - Replace freewrap glob with one that handles unmatch [ in file names - Add option on how to play a single track * lib/id3.tcl: - Added additional options to block editor for guessing tags - Added songdata function for use with upcoming table list * lib/pane.tcl: Increase width of resizer * lib/gpUtils.tcl: - Add timify function for format time - Added Trace function * lib/autoPlayList.tcl: - Added (unused) option to remove a tag * lib/cframe.tcl: Tweak l&f of collapable frame, use button now * lib/HttpD.tcl: - Minor error handling improvements - Minor config enhancements * lib/miniPlayer.tcl: Show balloon for initial popup * lib/gpUtils.tcl: - Can launch readme file from help * wrap50.tcl: Bigger dialog on *nix 2002-05-10 wilkason * lib/saTree.tcl: Allow different icons for folder open/close * lib/saSettings.tcl: Change "song" to "track" on menus and such * snackAmp.tcl: - Change references of "song" to "track" - A few less ticks on time scale * lib/catalog.tcl: - Support removing a rem. media catalog (file) from from Tree - Created a couple routines for common use - Prevent attempt writing files to or moving removable catalog folders * lib/id3.tcl: Support changing all Artist/Album or Genre in Block Editor * lib/autoPlayList.tcl: - Allow DND for APL files to the PlayList, still need to work on dropping under cursor not the active selection. - Created a few common routines and cleaned up a bit 2002-05-08 wilkason * lib/HttpD.tcl: - Print gain in dB - Adjust col widths 2002-05-04 wilkason * lib/saSettings.tcl: Fixed bug on setting font styles 2002-05-02 wilkason * lib/IconSupport.tcl: * lib/autoPlayList.tcl: * lib/catalog.tcl: * lib/cframe.tcl: * lib/fileAssociation.tcl: * lib/gpWidgets.tcl: * lib/id3.tcl: * lib/miniPlayer.tcl: * lib/saFiltering.tcl: * lib/saImages.tcl: * lib/saSettings.tcl: * lib/saTree.tcl: Added CVS Keyword Header * lib/gpUtils.tcl: Added CVS Keyword Header Move web help file defintion to server code * lib/HttpD.tcl: Fully namespaced, simplified names * wrap50.tcl: Added CVS Keyword Header Grab tml files in wrap * snackAmp.tcl: Fire up the HttpD server here 2002-05-01 wilkason * lib/autoPlayList.tcl: Added search window to locate a folder of file within a folder. * lib/catalog.tcl: When duplicate files exist on target, tell the user some info about them to allow a good decision on an overwrite * snackAmp.tcl: Add Append wrapper for registry/macros * wrap50.tcl: Don't wrap the CVS files * lib/id3.tcl: Init height for scrolled frames (will be a saved param) * lib/id3.tcl: Cleaned up some tag editing functions, not fully baked yet * lib/gpWidgets.tcl: Fix initialization of scrolled canvas * lib/gpUtils.tcl: Turned off tracing (need to add this to internal switch) * lib/HttpD.tcl: Lots of changes, still mixin the dough but now servicable * snackAmp.tcl: Set wrapped flag * lib/saSettings.tcl: Write out hotkey file if wrapped and it doesn't exist * snackAmphotKeys.tcl: Added a few more macros for use with a remote control * lib/saSettings.tcl: Remove withdraw/deiconify for drawing speed * snackAmp.tcl: - Added routine to play a specific song for web links - NextPrev play immediatly so web shows current status * lib/miniPlayer.tcl: kill balloon when moving mouse 2002-04-22 wilkason * lib/catalog.tcl: - Ignore duplicates on a paste * lib/saSettings.tcl: - Add option to preserve file time during an ID3 tag edit * lib/autoPlayList.tcl: - When DND target is not in tree, ignore the event * snackAmp.tcl: - Make sure all time displays update in concert - Ignore duplicates during a paste 2002-04-20 wilkason * lib/gpUtils.tcl: Launching help now looks for VFS location also * lib/pkgIndex.tcl: Add HttpD package * snackAmp.tcl: - Option to not show tick marks on time scale - Options for additional ID3 Edit modes * lib/saSettings.tcl: Clean up L&F of settings GUIs a bit * lib/miniPlayer.tcl: RMB under windows in TB icon toggles state of miniplayer, the mouse wheel adjust volume when MP as the focus. - Damon Courtney * lib/id3.tcl: Added GUIsto - Edit multiple tags either all at once or in table mode - Propose file names and tags based on tags/filenames for a number of files at once. * lib/catalog.tcl: Ignore errors when pulling data of the clipboard * lib/gpWidgets.tcl: Added labeled frame & scrolled frame * lib/autoPlayList.tcl: Added menu options for additional ID3 editing modes * lib/HttpD.tcl: Add HttpD package, now has an embedded web server * wrap50.tcl: - Now wrapping html files for embedded web server 2002-04-07 wilkason * lib/catalog.tcl: Warn user if destination file exists during a move/rename * lib/saSettings.tcl: Use term Shuffle Play rather than Random Play for consistency * lib/gpWidgets.tcl: Balloon text color is always black now * lib/autoPlayList.tcl: Windows Drive letters only have a / appended to them, account for this when finding files to update the playlist * snackAmp.tcl: Added individual song control, repeat, single or normal (Damon Courtney) * lib/saSettings.tcl: Fix bug introduced when namespacing, the settings GUI did not set the monitor flags correctly. * lib/id3.tcl: Handle seek errors (for very small files) * snackAmp.tcl: 1.8.1 Header 2002-04-05 wilkason * lib/gpUtils.tcl: Called saLog before it was created, using puts instead * snackAmp.tcl: Use built in audio active to detect if not stopped 2002-04-03 wilkason * lib/saSettings.tcl: Support volumne control on different mixer lines * lib/autoPlayList.tcl: History menu next to nav bars * snackAmp.tcl: Support volumne control on different mixer lines Additional edit menu options * snackAmp.tcl: Verify available output devices * lib/gpUtils.tcl: Comment out debugging puts, change others to saLog 2002-03-31 wilkason * lib/autoPlayList.tcl: - Fixed bug in folder history insertion * snackAmphotKeys.tcl: Changes saRenameFile to RenameFile and saEditPLID3 to EditPLID3 for naming consistency. * snackAmp.tcl: - Changed order of getting ID3 info, seems to fix bug with ogg files on freewrap 5.1 causing a crash. - Attempt reset output device on a file error to fix some Linux problems of snack losing the output device (workaround for snack error). * lib/fileAssociation.tcl: - Added ability to check and restore associations * lib/catalog.tcl: - Added some manual routines to attempt to find duplicate files * lib/saImages.tcl: - Added cool icons by Adrian Davis * lib/saTree.tcl: - Fixed memory leak on repeated expand/contracts * lib/autoPlayList.tcl: - Added history & nav buttons * lib/saSettings.tcl: - Added file association dialog on windows * lib/id3.tcl: Restored ogg rate check, was checking this right as song starting * lib/gpWidgets.tcl: - Catch attempt to install icons * wrap50.tcl: - Wrap using freewrap 5.1 * lib/miniPlayer.tcl: - Changed close icon * lib/gpUtils.tcl: - Handle both local and remote files for launching browser 2002-03-27 wilkason * lib/gpUtils.tcl: On *nix, launch browser with stdio poiting to /dev/null. This works around a problem with freewrap on Linux. * snackAmp.tcl: - Don't load console package unless it is needed - fix broken reference to findNextSong * lib/autoPlayList.tcl: * lib/catalog.tcl: - Don't need to pass in image for tree anymore, will use default * snackAmp.tcl: - Update music count on clearing the list * lib/saTree.tcl: - Updated Icons for open/close folder * lib/id3.tcl: - Use icon to copy V2 to V1 data - Update current display info if active song being edited * lib/saImages.tcl: - Removed unused icons - Updated web and find icons 2002-03-26 wilkason * lib/autoPlayList.tcl: * lib/catalog.tcl: * lib/fixPlayList.tcl: * lib/gpUtils.tcl: * lib/gpWidgets.tcl: * lib/id3.tcl: * lib/miniPlayer.tcl: * lib/saFiltering.tcl: * lib/saSettings.tcl: * snackAmp.tcl: Moved files into additional namespaces, consolidated some functions into common routines. 2002-03-22 wilkason * lib/catalog.tcl: Allow multiple folders to path when reading specific cache files * lib/autoPlayList.tcl: Use OS default arrow cursor & hand cursor when moving files/folders * lib/id3.tcl: - Use OS default arrow cursor - OGG files crash when reading nominalbitrate under freewrap 5.1, don't read it for now * lib/gpWidgets.tcl: - Use OS default arrow cursor - Allow OS to min size list box scale * lib/saSettings.tcl: - Use OS default arrow cursor * snackAmp.tcl: - Make sure lookup for selection exists before play * lib/gpUtils.tcl: - Added Trace function to help debugging - Get full file name on *nix when launching browser, doesn't like ~ * snackAmphotKeys.tcl: - Use plus not + for Linux compatibility * snackAmp.tcl: - Use OS default error, rather than Tk one - Clean up media folder after media gui dialog 2002-03-21 wilkason * lib/id3.tcl: - Created a new GUI to edit ID3 information. Also has smartTag and smartName features to intellegently name a file based on tag data and vice versa. - Reworked ID3 routines to return arrays rather than lists. Also split out V1 and V2 processing. - Now takes preference to V1 tags over V2 since we can edit those. * lib/catalog.tcl: - Added fixplus::cleanName routine as a GP way to clean a file name - Added internal routine cleanStaleEqualizations to remove old equalization entries for dead files. * snackAmphotKeys.tcl: Added F3 keys to edit ID3 info * snackAmp.tcl: - Beefed up TFReplace to do a complete rename of a file, including searching list boxes for it. - Added menu to edit ID3 * snackAmp.tcl: - Left out -start offset when debugging, put back in * lib/gpUtils.tcl: - Use short file name one windows for exec - Added browser::allMusic function to query the allMusic web site for info from the ID3 editor. Launches an external browser on it. * lib/saImages.tcl: Added web image * lib/autoPlayList.tcl: Using TFReplace for renames - Added function to launch the ID3 editor 2002-03-11 wilkason * lib/gpWidgets.tcl: Increase text width of entry dialog * lib/autoPlayList.tcl: Added ability to drag files from APL file list to the APL tree to move them 2002-03-08 wilkason * lib/catalog.tcl: Support dirty caches to only update file list cache when needed * lib/autoPlayList.tcl: Added cut/paste and DND to manage folders (like a file manager) * lib/catalog.tcl: Verify a folder ID exists before checking if it is dirty * lib/IconSupport.tcl: - Set icon file before the update so the APL can use it quickly * snackAmp.tcl: - Version 1.8 Label - Support dirty cache handling 2002-02-13 wilkason * lib/pkgIndex.tcl: Add saConsole package * snackAmp.tcl: Add console command for non-windows * lib/console.tcl: - Initial checkin of console for non-windows by Don Porter 2002-02-09 wilkason * lib/IconSupport.tcl: - Incorrectly made the icon file an absolute path, s/b relative 2002-02-08 wilkason * lib/saImages.tcl: - Created snackamp icon image (not used yet) * snackAmp.tcl: - Don't unconfig file on stop (revert to prior version) - Call iconbitmap for *nix * lib/gpWidgets.tcl: - New function to set an icon on unix or windows * lib/IconSupport.tcl: - Save away the icon file name * lib/saSettings.tcl: Changed order or Buttons for text colors. * lib/autoPlayList.tcl: - Call iconbitmap for *nix * wrap.tcl: - Minor mod for wrap to work x-platform 2002-02-07 wilkason * lib/saTree.tcl: - Clamp node spacing at a minimum size for very small fonts. * lib/catalog.tcl: - Catch file open error * lib/saSettings.tcl: - Improved default fault sizes on *nix - Font selection shows affect immediatly - Added a couple more fonts/colors to configure * lib/gpUtils.tcl: - Allow title for choose directory - Some work on browser/Unix, still not working right * lib/gpUtils.tcl: - Can't saLog during init, just puts for now * lib/autoPlayList.tcl: Don't force raise the APL, this causes a few second delay on RH/KDE * snackAmp.tcl: - Improved default fault sizes on *nix - Font selection shows affect immediatly - Added a couple more fonts/colors to configure - Default dialog width widened for *nix - Stop command disassociates file to close it 2002-01-29 wilkason * snackAmp.tcl: - Add file join to last resorr startup location on windows 2002-01-26 wilkason * lib/saSettings.tcl: - Support font slants (italic/roman) * snackAmp.tcl: - Support font slants (italic/roman) - Added font for APL tree * lib/saTree.tcl: - Adjust node spacing to font height * lib/autoPlayList.tcl: - Set the tree font at initialization - Fix bug where listbox didn't have its background color set 2002-01-24 wilkason * lib/autoPlayList.tcl: - Small trees did not anchor to top of window, now they do * snackAmp.tcl: - Be smarter about where we think HOME should be - Tell user what to do if we fail to create HOME on first time use * lib/saSettings.tcl: - Show HOME folder on settings dialog - Add option to catalog individual folders from folder manager 2002-01-23 wilkason * lib/catalog.tcl: Don't assume if a file is in the master list it exists because the master list may include removeable files, which have dummy volume names * lib/id3.tcl: - Handle errors during songDetails when file is invalid * lib/id3.tcl: Call findIfExists on balloon help to be smart about checking if a file exists * snackAmp.tcl: - Handle .m3u playlist files - Option to open playlist in another folder - Inform user which playlist files don't exist * lib/catalog.tcl: - Added findIfExists to be smart about checking if a file exists 2002-01-21 wilkason * snackAmp.tcl: Auto gain didn't always get set 2002-01-20 wilkason * snackAmp.tcl: Bug fix, did not use real file name for removable media song ( .D.) 2002-01-19 wilkason * snackAmp.tcl: - Remove debugging s destroy for each song - After delete file, only a Play is needed not Next - Changed Email address * lib/autoPlayList.tcl: * lib/catalog.tcl: * lib/gpUtils.tcl: * lib/gpWidgets.tcl: * lib/id3.tcl: * lib/miniPlayer.tcl: * lib/saFiltering.tcl: * lib/saImages.tcl: * lib/saSettings.tcl: - Changed Email address * snackAmp.tcl: - Verify file assocations on windows 2002-01-18 wilkason * snackAmp.tcl: When rescan is set at startup, also restore prior playlist if that option is selected. (L.D.) 2002-01-16 wilkason * lib/saSettings.tcl: - Withdraw/update/center/deiconify when creating windows * snackAmp.tcl: When deleting a file, play the next one if one is playing (L. .) * snackAmp.tcl: - Default file extension on *nix needs a . in front 2002-01-15 wilkason * lib/saSettings.tcl: - Don't display settings gui until it is centered * snackAmp.tcl: - Handle s play errors gracefully - Test code in to remove/create sound objects each play for possible fix for Linux write problem. * lib/miniPlayer.tcl: - Test changes to make mini-player behave on Linux * lib/gpWidgets.tcl: - Added resizer image to list boxes * lib/catalog.tcl: - Remove cr from Title during catalog operation 2002-01-14 wilkason * lib/cframe.tcl: keep application width for both expanded and contracted the same * snackAmp.tcl: - Song title no longer as cr causing it to split 2002-01-13 wilkason * lib/catalog.tcl: Changed lable name for notifications to support new layout * snackAmp.tcl: - Prevent multiple instances on *nix - -col -> -column for 8.4 * snackAmp.tcl: - Align labels right on song info * lib/id3.tcl: - Clear song details first to remove stale data - Added sample rate in returned detailed data * snackAmp.tcl: - Changed layout to show more song info - Save the window width at shutdown and restore next run * snackAmp.tcl: Draw the song title as pink when the mute (-20db) function is on, i.e. when you click on the title. 2002-01-12 wilkason * lib/saSettings.tcl: - fileChooser function added (L.D) - Added buttons to select hotkey/browse files (L.D.) - Added buttons to launch list manager directly from dialog * lib/gpUtils.tcl: - chooseFile function (L.D.) added for settings - Workaround for bug in Tcl working with upvar/env * snackAmp.tcl: -Fix for 8.4 -col on grid is ambiguous (L.D.) -Hotkey function bumpScaling to tweak the autogain level for a song (bind to +/-) -Removing a song from playlist will stop it playing also -Fix to get name of file to delete when user select menu, not at time of deletion -Changes to support user selectable browser (non-windows) (L.D) -Remove splash at more appropriate times (L.D.) * snackAmphotKeys.tcl: - Added bindings for +/- to adjust autogain * wrap.tcl: - Cleaned up code/better comments - load function is a bit faster on dlls * lib/autoPlayList.tcl: - Added explsicit raise so windows comes on top when selected 2002-01-03 wilkason * snackAmp.tcl: - Use new lset command (tcl script if not there) - Support individual cache files not being there - Handle a folder if it is offline * lib/gpUtils.tcl: - Use new lset command (tcl script if not there) - Ability to launch a browser on help file * lib/catalog.tcl: - Support individual cache files not being there - Handle a folder if it is offline 2001-12-28 wilkason * lib/saFiltering.tcl: - Cleaned up Headers - Using CRLF - moved shuffle to gpUtils * snackAmp.tcl: - Cleaned up Headers - Using CRLF - Expanded initial user dialog box * lib/saSettings.tcl: Cleaned up Headers * lib/gpUtils.tcl: - Cleaned up Headers - Using CRLF - shuffle moved here * lib/IconSupport.tcl: * lib/autoPlayList.tcl: * lib/catalog.tcl: * lib/cframe.tcl: * lib/fileAssociation.tcl: * lib/fixPlayList.tcl: * lib/gpWidgets.tcl: * lib/id3.tcl: * lib/miniPlayer.tcl: * lib/saImages.tcl: * snackAmphotKeys.tcl: - Cleaned up Headers - Using CRLF 2001-12-24 wilkason * lib/IconSupport.tcl: * lib/autoPlayList.tcl: * lib/catalog.tcl: * lib/cframe.tcl: * lib/fileAssociation.tcl: * lib/fixPlayList.tcl: * lib/gpUtils.tcl: * lib/gpWidgets.tcl: * lib/id3.tcl: * lib/miniPlayer.tcl: * lib/pane.tcl: * lib/pkgIndex.tcl: * lib/saFiltering.tcl: * lib/saImages.tcl: * lib/saSettings.tcl: * lib/saTree.tcl: * snackAmp.tcl: * snackAmphotKeys.tcl: * wrap.tcl: Initial Import