{"action":"created","issue":{"url":"https://api.github.com/repos/team-phoenix/Phoenix/issues/162","labels_url":"https://api.github.com/repos/team-phoenix/Phoenix/issues/162/labels{/name}","comments_url":"https://api.github.com/repos/team-phoenix/Phoenix/issues/162/comments","events_url":"https://api.github.com/repos/team-phoenix/Phoenix/issues/162/events","html_url":"https://github.com/team-phoenix/Phoenix/issues/162","id":108417056,"number":162,"title":"Separate control and consumer roles of VideoItem into separate objects","user":{"login":"athairus","id":1216337,"avatar_url":"https://avatars.githubusercontent.com/u/1216337?v=3","gravatar_id":"","url":"https://api.github.com/users/athairus","html_url":"https://github.com/athairus","followers_url":"https://api.github.com/users/athairus/followers","following_url":"https://api.github.com/users/athairus/following{/other_user}","gists_url":"https://api.github.com/users/athairus/gists{/gist_id}","starred_url":"https://api.github.com/users/athairus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/athairus/subscriptions","organizations_url":"https://api.github.com/users/athairus/orgs","repos_url":"https://api.github.com/users/athairus/repos","events_url":"https://api.github.com/users/athairus/events{/privacy}","received_events_url":"https://api.github.com/users/athairus/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/team-phoenix/Phoenix/labels/enhancement","name":"enhancement","color":"207de5"}],"state":"open","locked":false,"assignee":{"login":"athairus","id":1216337,"avatar_url":"https://avatars.githubusercontent.com/u/1216337?v=3","gravatar_id":"","url":"https://api.github.com/users/athairus","html_url":"https://github.com/athairus","followers_url":"https://api.github.com/users/athairus/followers","following_url":"https://api.github.com/users/athairus/following{/other_user}","gists_url":"https://api.github.com/users/athairus/gists{/gist_id}","starred_url":"https://api.github.com/users/athairus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/athairus/subscriptions","organizations_url":"https://api.github.com/users/athairus/orgs","repos_url":"https://api.github.com/users/athairus/repos","events_url":"https://api.github.com/users/athairus/events{/privacy}","received_events_url":"https://api.github.com/users/athairus/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/team-phoenix/Phoenix/milestones/2","html_url":"https://github.com/team-phoenix/Phoenix/milestones/alpha","labels_url":"https://api.github.com/repos/team-phoenix/Phoenix/milestones/2/labels","id":974672,"number":2,"title":"alpha","description":"An initial alpha-quality preview release of Phoenix. Though it's an alpha build, it should be well-polished.","creator":{"login":"athairus","id":1216337,"avatar_url":"https://avatars.githubusercontent.com/u/1216337?v=3","gravatar_id":"","url":"https://api.github.com/users/athairus","html_url":"https://github.com/athairus","followers_url":"https://api.github.com/users/athairus/followers","following_url":"https://api.github.com/users/athairus/following{/other_user}","gists_url":"https://api.github.com/users/athairus/gists{/gist_id}","starred_url":"https://api.github.com/users/athairus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/athairus/subscriptions","organizations_url":"https://api.github.com/users/athairus/orgs","repos_url":"https://api.github.com/users/athairus/repos","events_url":"https://api.github.com/users/athairus/events{/privacy}","received_events_url":"https://api.github.com/users/athairus/received_events","type":"User","site_admin":false},"open_issues":32,"closed_issues":47,"state":"open","created_at":"2015-02-11T02:44:58Z","updated_at":"2015-09-26T17:52:01Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-09-25T22:21:33Z","updated_at":"2015-09-30T00:37:12Z","closed_at":null,"body":"As it stands now, loading a game blocks the qml aka UI thread. We don't want `Core ` to block the UI, and we can't move `VideoItem` out from its qml thread. \r\n\r\nSo, the only solution is to make `VideoItem` much simpler than it is right now, strip out any control functions it has, and move them to a new object. I'm thinking `CoreControl`. \r\n\r\nWe'll then have `Core` and `CoreControl` live in the same thread. Their signals against each other will block like they should and the signals will be independent of video output. It remains to be seen how this will affect vsync-based performance (the signal to produce a frame will now cross threads), but I'm guessing it won't be a huge deal.\r\n\r\nI'm also going to rename VideoItem to VideoOutput."},"comment":{"url":"https://api.github.com/repos/team-phoenix/Phoenix/issues/comments/144229012","html_url":"https://github.com/team-phoenix/Phoenix/issues/162#issuecomment-144229012","issue_url":"https://api.github.com/repos/team-phoenix/Phoenix/issues/162","id":144229012,"user":{"login":"athairus","id":1216337,"avatar_url":"https://avatars.githubusercontent.com/u/1216337?v=3","gravatar_id":"","url":"https://api.github.com/users/athairus","html_url":"https://github.com/athairus","followers_url":"https://api.github.com/users/athairus/followers","following_url":"https://api.github.com/users/athairus/following{/other_user}","gists_url":"https://api.github.com/users/athairus/gists{/gist_id}","starred_url":"https://api.github.com/users/athairus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/athairus/subscriptions","organizations_url":"https://api.github.com/users/athairus/orgs","repos_url":"https://api.github.com/users/athairus/repos","events_url":"https://api.github.com/users/athairus/events{/privacy}","received_events_url":"https://api.github.com/users/athairus/received_events","type":"User","site_admin":false},"created_at":"2015-09-30T00:37:11Z","updated_at":"2015-09-30T00:37:11Z","body":"I think it'll make things simpler if we make the QML interface as simple as possible. In the future, games shouldn't be launched from QML by setting `core` and `game` path properties but instead a launch should be triggered by setting the current game UUID to a new value, but only once `CoreControl` is `CoreControl.STOPPED`."}}