{"action":"created","issue":{"url":"https://api.github.com/repos/mopidy/mopidy/issues/1064","labels_url":"https://api.github.com/repos/mopidy/mopidy/issues/1064/labels{/name}","comments_url":"https://api.github.com/repos/mopidy/mopidy/issues/1064/comments","events_url":"https://api.github.com/repos/mopidy/mopidy/issues/1064/events","html_url":"https://github.com/mopidy/mopidy/pull/1064","id":63326881,"number":1064,"title":"backend: Change playback API (breaking change!)","user":{"login":"adamcik","id":82534,"avatar_url":"https://avatars.githubusercontent.com/u/82534?v=3","gravatar_id":"","url":"https://api.github.com/users/adamcik","html_url":"https://github.com/adamcik","followers_url":"https://api.github.com/users/adamcik/followers","following_url":"https://api.github.com/users/adamcik/following{/other_user}","gists_url":"https://api.github.com/users/adamcik/gists{/gist_id}","starred_url":"https://api.github.com/users/adamcik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamcik/subscriptions","organizations_url":"https://api.github.com/users/adamcik/orgs","repos_url":"https://api.github.com/users/adamcik/repos","events_url":"https://api.github.com/users/adamcik/events{/privacy}","received_events_url":"https://api.github.com/users/adamcik/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mopidy/mopidy/labels/2%20-%20Working","name":"2 - Working","color":"CCCCCC"}],"state":"open","locked":false,"assignee":{"login":"jodal","id":43726,"avatar_url":"https://avatars.githubusercontent.com/u/43726?v=3","gravatar_id":"","url":"https://api.github.com/users/jodal","html_url":"https://github.com/jodal","followers_url":"https://api.github.com/users/jodal/followers","following_url":"https://api.github.com/users/jodal/following{/other_user}","gists_url":"https://api.github.com/users/jodal/gists{/gist_id}","starred_url":"https://api.github.com/users/jodal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodal/subscriptions","organizations_url":"https://api.github.com/users/jodal/orgs","repos_url":"https://api.github.com/users/jodal/repos","events_url":"https://api.github.com/users/jodal/events{/privacy}","received_events_url":"https://api.github.com/users/jodal/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/mopidy/mopidy/milestones/30","html_url":"https://github.com/mopidy/mopidy/milestones/v1.0%20-%20Audio%20cleanup%201","labels_url":"https://api.github.com/repos/mopidy/mopidy/milestones/30/labels","id":697828,"number":30,"title":"v1.0 - Audio cleanup 1","description":"","creator":{"login":"jodal","id":43726,"avatar_url":"https://avatars.githubusercontent.com/u/43726?v=3","gravatar_id":"","url":"https://api.github.com/users/jodal","html_url":"https://github.com/jodal","followers_url":"https://api.github.com/users/jodal/followers","following_url":"https://api.github.com/users/jodal/following{/other_user}","gists_url":"https://api.github.com/users/jodal/gists{/gist_id}","starred_url":"https://api.github.com/users/jodal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodal/subscriptions","organizations_url":"https://api.github.com/users/jodal/orgs","repos_url":"https://api.github.com/users/jodal/repos","events_url":"https://api.github.com/users/jodal/events{/privacy}","received_events_url":"https://api.github.com/users/jodal/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":118,"state":"open","created_at":"2014-06-22T08:42:13Z","updated_at":"2015-03-20T23:26:13Z","due_on":"2015-03-21T23:00:00Z","closed_at":null},"comments":2,"created_at":"2015-03-20T23:11:47Z","updated_at":"2015-03-20T23:29:37Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mopidy/mopidy/pulls/1064","html_url":"https://github.com/mopidy/mopidy/pull/1064","diff_url":"https://github.com/mopidy/mopidy/pull/1064.diff","patch_url":"https://github.com/mopidy/mopidy/pull/1064.patch"},"body":"While trying to remove traces of stop calls in core to get gapless working I\r\nfound we had no way to switch to switch tracks without triggering a play. This\r\nchange fixes this by changing the backends playback provider API.\r\n\r\n- play() now _only_ starts playback and does not take any arguments.\r\n- prepare_change() has been added, this could have been avoided with a kwarg to\r\n  change_track(track), but that would break more backends.\r\n- core has been updated to call prepare_change+change_track+play as needed.\r\n- tests have been updated to handle this change.\r\n\r\nLonger term I hope to completely rework the playback API in backends, as 99% of\r\nour backends only use change_track(track) to translate URIs. So we should make\r\nsimple case simple, and handle mopidy-spotify / appsrc in some other way.\r\n\r\nCherry picked from the WIP gapless branch."},"comment":{"url":"https://api.github.com/repos/mopidy/mopidy/issues/comments/84193857","html_url":"https://github.com/mopidy/mopidy/pull/1064#issuecomment-84193857","issue_url":"https://api.github.com/repos/mopidy/mopidy/issues/1064","id":84193857,"user":{"login":"jodal","id":43726,"avatar_url":"https://avatars.githubusercontent.com/u/43726?v=3","gravatar_id":"","url":"https://api.github.com/users/jodal","html_url":"https://github.com/jodal","followers_url":"https://api.github.com/users/jodal/followers","following_url":"https://api.github.com/users/jodal/following{/other_user}","gists_url":"https://api.github.com/users/jodal/gists{/gist_id}","starred_url":"https://api.github.com/users/jodal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodal/subscriptions","organizations_url":"https://api.github.com/users/jodal/orgs","repos_url":"https://api.github.com/users/jodal/repos","events_url":"https://api.github.com/users/jodal/events{/privacy}","received_events_url":"https://api.github.com/users/jodal/received_events","type":"User","site_admin":false},"created_at":"2015-03-20T23:29:37Z","updated_at":"2015-03-20T23:29:37Z","body":"Oh, and a changelog entry!"}}