SoCo/SoCo — pull request #194 by lawrenceakka (2014-07-17 15:12:39+00:00)
Title: Special event processing for LastChange events

Incorporating @robwebset 's ideas into the event processing code - see #189

To see it in operation:

```python
try:
from queue import Empty
except: # Py2.7
from Queue import Empty

import soco
import time
from pprint import pprint
from soco.events import event_listener
# import logging
# logging.basicConfig(level=logging.DEBUG)
# pick a device
device = soco.discover().pop()
sub = device.renderingControl.subscribe()
sub2 = device.avTransport.subscribe()

while True:
try:
event = sub.events.get(timeout=0.5)
pprint (event.variables)
except Empty:
pass
try:
event = sub2.events.get(timeout=0.5)
pprint (event.variables)
except Empty:
pass

except KeyboardInterrupt:
sub.unsubscribe()
sub2.unsubscribe()
event_listener.stop()
break
```

Then fiddle with your volume/add tracks/play etc

The next step would be to integrate this with #192 so that track metadata is returned as an ML_Library_Item instance, once #192 is committed.