Hi, in xmms2-devel.git, xmmsc_result_disconnect() is broken. In the old days (ie, before we had xmmsv), it used to work like this: 1.) User runs: my_result = xmmsc_signal_foo(); 2.) Eventually, the callback is hit and the user runs: my_result = xmmsc_result_restart(); Now, my_result refers to the *new* result, which is different from the original result ;) 3.) On client shutdown, the user can call: xmmsc_result_disconnect(my_result); which will nicely clean up the result.
In the new world order, there's no equivalent to my_result = xmmsc_result_restart(); anymore. The user only ever knows the *original* result that was retrieved by calling xmmsc_signal_foo(). Since the *new* result instances aren't known to the user, he cannot disconnect them at all. Calling xmmsc_result_disconnect(original_result) won't do anything about the new results, because the original result doesn't reference those either. -> FAIL. How do we fix this? I had the idea of sticking another xmmsc_result_t * in the xmmsc_result_St struct that would always point to the latest restarted signal. That way, xmmsc_result_disconnect() could look like this: void xmmsc_result_disconnect (result) { xmmsc_result_unref (result->latest_restarted_signal); } I haven't tried that approach yet, though. It would be cool if we could fix this before DrM gets released, but it's not critical IMO. Regards, Tilman -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
pgps3P9QaFn2j.pgp
Description: PGP signature
-- _______________________________________________ Xmms2-devel mailing list Xmms2-devel@lists.xmms.se http://lists.xmms.se/cgi-bin/mailman/listinfo/xmms2-devel