jaseg / python-mpv

Python interface to the awesome mpv media player
https://git.jaseg.de/python-mpv.git
Other
554 stars 69 forks source link

Fix unobserve_property #4

Closed Frechdachs closed 8 years ago

Frechdachs commented 8 years ago

There were three problems:

  1. MPV.unobserve_property called _mpv_observe_property instead of _mpv_unobserve_property.
  2. _mpv_unobserve_property returns the number of properties that were assigned to the handler that is being removed. Because the return value is not 0 in such a case, ErrorCode.raise_for_ec tries to raise an error. To fix that, I changed the ErrorCode.raise_for_ec functon not to raise an error if ec is larger than 0. (If there is a positive return value, there should not have been an error anyway, if I'm not mistaken.)
  3. Calling MPV.unobserve_property for a handle that is not currently been used should not result in a KeyError being raised.

An alternative to 2. would be to add a restype to the _handle_func of 'mpv_unobserve_property' and returning that value in MPV.unobserve_property. (That way, raise_for_ec is never called.) But I don't think this value is useful in any way. Even the built in lua interface does not return that value.

jaseg commented 8 years ago

Thank you, I actually forgot to test this.

jaseg commented 8 years ago

I think your handling of 2. is alright.