<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Aqualung SVN logs</title>
<link>http://aqualung.factorial.hu</link>
<description>SVN commit messages (diffs not included).</description>
<language>en</language>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<pubDate>Sat, 24 Nov 2007 20:00:00 GMT</pubDate>
<lastBuildDate>Wed, 26 May 2010 00:15:31 GMT</lastBuildDate>
<image>
  <title>Aqualung homepage</title>
  <url>http://aqualung.factorial.hu/img/drop.png</url>
  <link>http://aqualung.factorial.hu</link>
  <width>48</width>
  <height>48</height>
</image>
<item>
<title>R-1142 2010-05-25 18:39:29 peterszilagyi</title>
<pubDate>Tue, 25 May 2010 +0200 18:39:29</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1142</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1142</guid>
<description><![CDATA[Reverting last commit.
]]></description>
</item>
<item>
<title>R-1141 2010-04-30 13:59:47 peterszilagyi</title>
<pubDate>Fri, 30 Apr 2010 +0200 13:59:47</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1141</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1141</guid>
<description><![CDATA[Disk thread scheduling is done via pthread_cond_timedwait(). This
function expects absolute time, which causes problem if the system
clock is adjusted (e.g. via NTP) while the disk thread is
sleeping. The clock change may cause the disk thread never to wake up
(or suffer huge delays), causing massive hangup in playback.
<br/>This patch fixes the problem by launching a new thread and using
sleep() for waiting. Thanks to Zoltan Kovacs for investigating the
problem and providing the patch.
]]></description>
</item>
<item>
<title>R-1140 2010-04-03 00:18:28 quasireality</title>
<pubDate>Sat, 03 Apr 2010 +0200 00:18:28</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1140</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1140</guid>
<description><![CDATA[Some GUI tweaking, don't reload Lua interpreter on every settings OK
<br/>In line with Tom's suggestions, this moves the Title format stuff
onto the main General Settings page, and changes the settings to
not reload the Lua interpreter every time the settings page is
closed.  It now only reloads the interpreter if the file name
has changed.
<br/>To reload the Lua interpreter manually, a playlist menu entry
is added.  Some other minor restructuring of the playlist menu
is also done.
]]></description>
</item>
<item>
<title>R-1139 2010-04-03 00:17:59 quasireality</title>
<pubDate>Sat, 03 Apr 2010 +0200 00:17:59</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1139</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1139</guid>
<description><![CDATA[Minor cleanup of files to use Lua extension support/file as the official setting
<br/>No restructuring of the options GUI, yet.  This changes the configure
output, about box, and aqualung -v output.
<br/>While here, rename the ext_title_format.* files to ext_lua.*.
<br/>Also, update the documentation to move the programmable title format
information to the end with the rest of the extension information.
]]></description>
</item>
<item>
<title>R-1138 2010-03-30 20:33:08 tszilagyi</title>
<pubDate>Tue, 30 Mar 2010 +0200 20:33:08</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1138</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1138</guid>
<description><![CDATA[Fix array boundary check off-by-one error in M3U and PLS loader. Patch from Chris Craig.
]]></description>
</item>
<item>
<title>R-1137 2010-03-28 17:22:07 tszilagyi</title>
<pubDate>Sun, 28 Mar 2010 +0200 17:22:07</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1137</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1137</guid>
<description><![CDATA[configure.ac fix from Akio Idehara
]]></description>
</item>
<item>
<title>R-1136 2010-03-16 11:58:54 peterszilagyi</title>
<pubDate>Tue, 16 Mar 2010 +0100 11:58:54</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1136</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1136</guid>
<description><![CDATA[Fixed error in French translation leading to crash.
]]></description>
</item>
<item>
<title>R-1135 2010-02-11 19:24:19 peterszilagyi</title>
<pubDate>Thu, 11 Feb 2010 +0100 19:24:19</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1135</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1135</guid>
<description><![CDATA[Fixed French translation.
]]></description>
</item>
<item>
<title>R-1134 2010-02-11 00:19:25 peterszilagyi</title>
<pubDate>Thu, 11 Feb 2010 +0100 00:19:25</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1134</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1134</guid>
<description><![CDATA[Typo fix and French translation update.
]]></description>
</item>
<item>
<title>R-1133 2010-02-08 18:10:45 tszilagyi</title>
<pubDate>Mon, 08 Feb 2010 +0100 18:10:45</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1133</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1133</guid>
<description><![CDATA[Fix long-standing stupid thinko of mine in output thread ringbuffer flush code. Found it while just looking at the source. Apparently never surfaced as a bug, but ugly nevertheless.
]]></description>
</item>
<item>
<title>R-1132 2010-02-08 02:10:08 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 02:10:08</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1132</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1132</guid>
<description><![CDATA[Fix an attempt to acquire the mutex when it has already been required.
<br/>I'm not sure why this didn't cause any problems with my system, but
it definitely shouldn't be attempting to acquire the mutex when it
already has it.
<br/>Fix some end tags in aqualung-doc.xml
<br/>Remove some pointless or wrong comments
]]></description>
</item>
<item>
<title>R-1131 2010-02-08 01:56:46 tszilagyi</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:56:46</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1131</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1131</guid>
<description><![CDATA[Add missing include
]]></description>
</item>
<item>
<title>R-1130 2010-02-08 01:39:08 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:39:08</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1130</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1130</guid>
<description><![CDATA[Remove some pointless or wrong comments
]]></description>
</item>
<item>
<title>R-1129 2010-02-08 01:39:01 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:39:01</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1129</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1129</guid>
<description><![CDATA[Add support for hooks for executing extension code when certain events occur.
<br/>This is the final piece of the extension support foundation.  After
this, it's just adding additional functions/hooks/etc, not new types
of extensions.
<br/>Currently, the only hook supported is track_change, which fires when
a new track is cued up.  See the included documentation patch for
an example.
<br/>While here, fix the error message for errors when running a
custom keybinding function.
]]></description>
</item>
<item>
<title>R-1128 2010-02-08 01:38:47 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:38:47</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1128</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1128</guid>
<description><![CDATA[Add a current_file() Lua extension method for the currently playing file
]]></description>
</item>
<item>
<title>R-1127 2010-02-08 01:38:26 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:38:26</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1127</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1127</guid>
<description><![CDATA[No longer provide an argument to the custom menu callback function
<br/>Previously, the callback received an array of selected files for
the playlist.  However, it's possible that the menu callback
doesn't need such a list.  Inside, have the menu callback accept
0 arguments, and if an array of selected filenames is desired,
the extension writer can call selected_files(), a global method
that gives the same results as the argument previously given to
the menu callback.  This has the advantage of making the array
of selected filenames available both to custom remote commands
as well as custom keybindings.
]]></description>
</item>
<item>
<title>R-1126 2010-02-08 01:38:03 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:38:03</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1126</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1126</guid>
<description><![CDATA[Add support for custom keybindings in the main window
<br/>This commit adds complete support for custom keybindings to the
main window, as well as the ground work for supporting custom
keybindings in the playlist and music store windows.  I don't use
the music store and I embed the playlist in the main window, so
I haven't hooked into the keybindings of either of those two
separately.  It should be fairly simple add support similar to
how the main window keybindings are handled.
<br/>The custom keybinding support is started with the Ctrl-z or
Ctrl-Z keys.  When that key combination is received, it signals
that the next keypress is a custom keybinding.  The custom
keybinding can be any keyboard key, as well as any of the shift,
control, alt (Mod1), and super (Mod4/Windows) keys.  See the
included documentation patch for more details.
]]></description>
</item>
<item>
<title>R-1125 2010-02-08 01:37:38 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:37:38</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1125</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1125</guid>
<description><![CDATA[Fix a few errors in the extension support
<br/>Previously, calling m or l functions outside and after a call to
playlist_title or application title caused a pointer dereference
for the last fdec used, which is no longer valid.
<br/>Also, previously, removing the use of an extension file left the
Lua interpreter open and didn't close the command menu (among
other issues).
<br/>Switch from using lightuserdata and manually keeping track of
pointers in the Lua registry for the strings used for menu
command function callback arguments, to just using regular
userdata.  It's much simpler.
<br/>While here, make the error messages more consistent.
<br/>Also while here, grab the mutex as soon as it is available.
Unlikely to have a significant effect, but more correct.
<br/>Finally, always create the custom commands playlist menu
entry on startup, so that even if there is no extension file
used when you are starting Aqualung, adding one after will
still add the custom commands to the playlist menu.
]]></description>
</item>
<item>
<title>R-1124 2010-02-08 01:37:31 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:37:31</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1124</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1124</guid>
<description><![CDATA[Don't leak memory when reloading the Lua interpreter
<br/>Before, reloading the Lua interpreter leaked memory for each
custom playlist menu entry, because it has to strdup the strings
it received from Lua before using them as the pointer arguments in
GTK callbacks, but it wasn't keeping track of them.
<br/>This commit keeps track of them in the Lua registry, and frees them
before closing the interpreter.
<br/>It also adds a prototype for add_custom_commands_to_playlist_menu
to fix a compiler warning.
]]></description>
</item>
<item>
<title>R-1123 2010-02-08 01:37:14 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:37:14</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1123</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1123</guid>
<description><![CDATA[Teardown and rebuild custom command menu when reloading the settings
<br/>Previously, the custom playlist command menu entries were fixed on
startup, the entries were added directly to the playlist menu.  This
commit makes it so that custom playlist commands are always on a
submenu, and that submenu is torn down and rebuilt every time the
lua interpreter is reloaded (when the settings window is saved).
<br/>This commit refactors Aqualung.process_playlist_menu into itself
and Aqualung.build_playlist_menu.  process_playlist_menu will
return true if there are custom playlist commands and false
otherwise, and no longer takes an argument.  build_playlist_menu
takes a lightuserdata argument and calls build_menu with it.
<br/>The basic strategy for rebuilding the menu is to keep the main
playlist menu entry for the custom playlist command submenu hidden
by default.  If there are custom commands, they are added to the
submenu and the main playlist menu entry is shown.  Everytime the
settings are reloaded, the submenu is destroyed, and rebuilt based
on the reloaded .lua file.
<br/>Reloading the settings still leaks a small amount of memory, but
hopefully that will be fixed soon.
]]></description>
</item>
<item>
<title>R-1122 2010-02-08 01:36:52 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:36:52</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1122</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1122</guid>
<description><![CDATA[Minor documentation fix
]]></description>
</item>
<item>
<title>R-1121 2010-02-08 01:36:36 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:36:36</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1121</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1121</guid>
<description><![CDATA[Add ability to define custom remote commands in Lua
<br/>See the included documentation for usage and an example.  Currently,
this isn't useful for much, since we haven't added any functions to
Lua that the user can call to affect Aqualung's behavior, or even
get information from Aqualung.
<br/>Remote functions defined by the user currently must accept 0
arguments.  This limits the utility, but in order to work around it
we'd need to decide on a protocol to use to pass the arguments over
the socket to Aqualung.
<br/>This commit also partly fixes the reloading of custom playlist menu
commands.  Previously, saving the settings page (which reloads the
Lua interpreter) caused all custom menu settings not to work (and
potentially a SEGV).  This avoids that but causes a memory leak
instead.  It is still not possible to add new menu entries
dynamically (or remove those that are no longer defined), and
fixing that will require some work and potentially a UI change.
<br/>This also adds a default case when receiving remote commands, which
prints an error message if an unsupported command type is received.
]]></description>
</item>
<item>
<title>R-1120 2010-02-08 01:36:07 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:36:07</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1120</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1120</guid>
<description><![CDATA[Add some error checking in the extension code
]]></description>
</item>
<item>
<title>R-1119 2010-02-08 01:35:49 quasireality</title>
<pubDate>Mon, 08 Feb 2010 +0100 01:35:49</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1119</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1119</guid>
<description><![CDATA[Add support for custom playlist menu commands, using add_playlist_menu_command
<br/>This is the first step in adding a more general extension layer to
Aqualung, beyond simply formatting titles.  This commit adds the
ability to define custom playlist menu commands (and submenus),
with callbacks that call user-written Lua functions.
<br/>The basics are described in the documentation patch included in this
commit.
<br/>To make this and future extension patches easier, I've added
default functions to ext_title_format.c in the cases where HAVE_LUA
is not defined.  This way, such functions can be called in other
parts of the code without having to surround them with an
ifdef HAVE_LUA.
<br/>The attached patch is reflective of the general strategy for adding
extension code, which is to write as much of it as possible in Lua
itself.  It probably should be moved out of a .c file and into it's
own file that is statically compiled into the source, but that can
be done later.
<br/>Currently, the code lacks error checking when retrieving information
from Lua, and it's probably possible to crash Aqualung given a poorly
coded .lua file.  This will be fixed.
<br/>In order for extensions to be generally useful, the entire Lua
standard library is now added to the embedded interpreter.
Previously, only a few libraries were loaded.
<br/>Currently, the custom playlist menu gui is only created at startup
so you need to restart Aqualung for changes to take effect.
Hopefully this can be fixed without much difficulty.
]]></description>
</item>
<item>
<title>R-1118 2010-02-07 21:34:52 peterszilagyi</title>
<pubDate>Sun, 07 Feb 2010 +0100 21:34:52</pubDate>
<link>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1118</link>
<guid>http://aqualung.svn.sourceforge.net/viewvc/aqualung?view=rev&amp;revision=1118</guid>
<description><![CDATA[Documentation build fix.
]]></description>
</item>
</channel>
</rss>
