{"action":"created","issue":{"url":"https://api.github.com/repos/greshake/i3status-rust/issues/245","repository_url":"https://api.github.com/repos/greshake/i3status-rust","labels_url":"https://api.github.com/repos/greshake/i3status-rust/issues/245/labels{/name}","comments_url":"https://api.github.com/repos/greshake/i3status-rust/issues/245/comments","events_url":"https://api.github.com/repos/greshake/i3status-rust/issues/245/events","html_url":"https://github.com/greshake/i3status-rust/pull/245","id":356140828,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEyNTA3MzI3","number":245,"title":"[WIP] PulseAudio Support","user":{"login":"SWW13","id":1280142,"node_id":"MDQ6VXNlcjEyODAxNDI=","avatar_url":"https://avatars0.githubusercontent.com/u/1280142?v=4","gravatar_id":"","url":"https://api.github.com/users/SWW13","html_url":"https://github.com/SWW13","followers_url":"https://api.github.com/users/SWW13/followers","following_url":"https://api.github.com/users/SWW13/following{/other_user}","gists_url":"https://api.github.com/users/SWW13/gists{/gist_id}","starred_url":"https://api.github.com/users/SWW13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SWW13/subscriptions","organizations_url":"https://api.github.com/users/SWW13/orgs","repos_url":"https://api.github.com/users/SWW13/repos","events_url":"https://api.github.com/users/SWW13/events{/privacy}","received_events_url":"https://api.github.com/users/SWW13/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"atheriel","id":1448326,"node_id":"MDQ6VXNlcjE0NDgzMjY=","avatar_url":"https://avatars2.githubusercontent.com/u/1448326?v=4","gravatar_id":"","url":"https://api.github.com/users/atheriel","html_url":"https://github.com/atheriel","followers_url":"https://api.github.com/users/atheriel/followers","following_url":"https://api.github.com/users/atheriel/following{/other_user}","gists_url":"https://api.github.com/users/atheriel/gists{/gist_id}","starred_url":"https://api.github.com/users/atheriel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atheriel/subscriptions","organizations_url":"https://api.github.com/users/atheriel/orgs","repos_url":"https://api.github.com/users/atheriel/repos","events_url":"https://api.github.com/users/atheriel/events{/privacy}","received_events_url":"https://api.github.com/users/atheriel/received_events","type":"User","site_admin":false},"assignees":[{"login":"atheriel","id":1448326,"node_id":"MDQ6VXNlcjE0NDgzMjY=","avatar_url":"https://avatars2.githubusercontent.com/u/1448326?v=4","gravatar_id":"","url":"https://api.github.com/users/atheriel","html_url":"https://github.com/atheriel","followers_url":"https://api.github.com/users/atheriel/followers","following_url":"https://api.github.com/users/atheriel/following{/other_user}","gists_url":"https://api.github.com/users/atheriel/gists{/gist_id}","starred_url":"https://api.github.com/users/atheriel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atheriel/subscriptions","organizations_url":"https://api.github.com/users/atheriel/orgs","repos_url":"https://api.github.com/users/atheriel/repos","events_url":"https://api.github.com/users/atheriel/events{/privacy}","received_events_url":"https://api.github.com/users/atheriel/received_events","type":"User","site_admin":false}],"milestone":null,"comments":5,"created_at":"2018-08-31T22:31:05Z","updated_at":"2018-09-30T22:17:03Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/greshake/i3status-rust/pulls/245","html_url":"https://github.com/greshake/i3status-rust/pull/245","diff_url":"https://github.com/greshake/i3status-rust/pull/245.diff","patch_url":"https://github.com/greshake/i3status-rust/pull/245.patch"},"body":"I started working on PulseAudio support (#20).\r\n\r\nCurrently the connection to the PulseAudio server works. Retrieving the current state will require callbacks as the PulseAudio library doesn't offer synchronous calls. Besides getting the callbacks to work the whole sound block should be refactored to work with different audio systems.\r\n\r\nCurrent State:\r\n- [x] retrieve volume / mute state\r\n- [x] listen to state changes\r\n- [x] increase / decrease volume\r\n- [x] mute / unmute\r\n- [x] pulse audio / alsa fallback\r\n- [x] clean up\r\n- [x] documentation"},"comment":{"url":"https://api.github.com/repos/greshake/i3status-rust/issues/comments/425756549","html_url":"https://github.com/greshake/i3status-rust/pull/245#issuecomment-425756549","issue_url":"https://api.github.com/repos/greshake/i3status-rust/issues/245","id":425756549,"node_id":"MDEyOklzc3VlQ29tbWVudDQyNTc1NjU0OQ==","user":{"login":"SWW13","id":1280142,"node_id":"MDQ6VXNlcjEyODAxNDI=","avatar_url":"https://avatars0.githubusercontent.com/u/1280142?v=4","gravatar_id":"","url":"https://api.github.com/users/SWW13","html_url":"https://github.com/SWW13","followers_url":"https://api.github.com/users/SWW13/followers","following_url":"https://api.github.com/users/SWW13/following{/other_user}","gists_url":"https://api.github.com/users/SWW13/gists{/gist_id}","starred_url":"https://api.github.com/users/SWW13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SWW13/subscriptions","organizations_url":"https://api.github.com/users/SWW13/orgs","repos_url":"https://api.github.com/users/SWW13/repos","events_url":"https://api.github.com/users/SWW13/events{/privacy}","received_events_url":"https://api.github.com/users/SWW13/received_events","type":"User","site_admin":false},"created_at":"2018-09-30T22:17:03Z","updated_at":"2018-09-30T22:17:03Z","author_association":"CONTRIBUTOR","body":"> I'm a little uncomfortable with the complexity of the code, and I don't know if I have the bandwidth to really understand it. However, I don't think that's necessarily a barrier to merging it.\r\n\r\nI'm also not happy with the complexity, but I don't see how it could be reduced much further. \r\n\r\n> Could we have an explicit `driver = \"pulseaudio\" | \"alsa\" | \"\"` configuration option?\r\n\r\nThat's something I also thought about. Adding an option to explicitly select an driver seems like a good decision.\r\nBut I'd like to keep the fallback as default `\"auto\"` option for easier usage. If pulseaudio is installed it should definitely be used, as the default device is maybe only available in pulseaudio (e.g. bluetooth headphones). But having pulseaudio as default would break alsa only systems when no driver is set."}}
{"actor":{"display_login":"SWW13"}}