[PATCH] KPlayObject fixes for asynchronous generation + patch for kaboodle

Neil Stevens neil at qualityassistant.com
Sat Aug 31 23:11:24 BST 2002


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Saturday August 31, 2002 02:50, Matthias Welwarsky wrote:
> On Saturday 31 August 2002 22:59, Neil Stevens wrote:
> > How is a user supposed to be able to know whether a playobject is
> > seekable or pausable then?  This is a major regression.
>
> Ok, I added a signal "playObjectCreated" to KPlayObject, so you can
> connect it and know when capabilities() are valid.

Super, thank you.

> Streams are 
> not seekable anyway so this is not really a problem.

1.  The PlayObject needs to avoid returning seekable for non-seekable 
streams, then.

2.  This patch applies to KPlayObject, which is used for more than just 
non-seekable streams.  If you want apps to assume that this PlayObject is 
a stream, then you should make a new KStreamingPlayObject.  For without 
the capability returning the correct value, apps can't just guess on this!

> Pausable is admittedly a problem, though I'd not call
> it a "major regression". Just be sure not to cache the capabilities.

Well, as long as I will reasonably quickly get the signal, I can just 
assume non-pausable, then enable pausing once the signal arrives and the 
capabilities include pausable.

But without the new signal warning when the capabilities are accurate, this 
wasn't possible, and would force me to remove the seek ability from 
everything, which *is* a regression in functionality.

> > This will seriously hurt the usability of apps like kaboodle, and is
> > also a regression.
>
> No, not really, in fact kaboodle does work happily with the changed
> KPlayObject. Noatun still needs some work, however. I'll try to figure
> that out and make a patch, or adapt KPlayObject so that it works. I'm
> not sure if I expressed it clear enough: The proxy object will relay all
> calls to the real playobject once it is created, so after a certain
> time, capabilities() as well as state() return the correct values. Just
> don't cache them.

I didn't say it doesn't work.  I said it would hurt usability.  Kaboodle 
makes sure to disable actions which are not available:  disabling pause 
and stop when stopped, enabling pause and disabling play when playing, 
disabling pause when paused.  If the state from the playobject is 
inaccurate, then this gets broken.

- -- 
Neil Stevens - neil at qualityassistant.com
"I always cheer up immensely if an attack is particularly wounding
because I think, well, if they attack one personally, it means they
have not a single political argument left." - Margaret Thatcher
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE9cT8Mf7mnligQOmERApWRAJ9vqy5sXCw2wCRdM/zUZp2xGoxm2QCghCT+
y+0g6QRncSUfXnJfEeWW/YM=
=VGjb
-----END PGP SIGNATURE-----



More information about the kde-multimedia mailing list