{"id":47,"date":"2016-07-10T11:53:47","date_gmt":"2016-07-10T11:53:47","guid":{"rendered":"https:\/\/blogs.scummvm.org\/tkachov\/?p=47"},"modified":"2022-05-24T12:25:27","modified_gmt":"2022-05-24T12:25:27","slug":"gsoc-game-download-wi-fi-sharing","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/tkachov\/2016\/07\/10\/gsoc-game-download-wi-fi-sharing\/","title":{"rendered":"GSoC: Game Download &#038; Wi-Fi Sharing"},"content":{"rendered":"<p>This week started with the DownloadDialog, which allows users to\u00a0download directories from their cloud storage onto their device. Navigating through the remote directories is\u00a0a\u00a0bit slower than browsing local ones, but it\u00a0works fine. Download is\u00a0done in\u00a0the background. On\u00a0the completion, OSD message is\u00a0shown. If\u00a0DownloadDialog was not closed, ScummVM automatically detects the game in\u00a0the directory (the way it\u00a0works in\u00a0\u00abAdd Game\u00bb) and suggests options. \u00abAdd Game\u00bb also checks whether you\u2019re trying to\u00a0specify the currently downloading directory\u00a0\u2014 and notifies that this is\u00a0forbidden. I\u2019ve also recorded a\u00a0video showing how storage connecting and game downloading features work:<\/p>\n<div style=\"width: 580px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-47-1\" width=\"580\" height=\"327\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blogs.scummvm.org\/tkachov\/wp-content\/uploads\/sites\/60\/2022\/05\/ScummVM-Cloud-Connection-and-Game-Download-Test-CFVPsv_deAo.mp4?_=1\" \/><a href=\"https:\/\/blogs.scummvm.org\/tkachov\/wp-content\/uploads\/sites\/60\/2022\/05\/ScummVM-Cloud-Connection-and-Game-Download-Test-CFVPsv_deAo.mp4\">https:\/\/blogs.scummvm.org\/tkachov\/wp-content\/uploads\/sites\/60\/2022\/05\/ScummVM-Cloud-Connection-and-Game-Download-Test-CFVPsv_deAo.mp4<\/a><\/video><\/div>\n<p><em>(Source: https:\/\/www.youtube.com\/watch?v=CFVPsv_deAo)<\/em><\/p>\n<p>Then I\u00a0started working on\u00a0the next feature on\u00a0the plan\u00a0\u2014 Wi-Fi Sharing. Now there is\u00a0a\u00a0special \u00abRun Server\u00bb button in\u00a0the Cloud tab, which one can use to\u00a0start local webserver. It\u00a0also shows its\u00a0IP there (works on\u00a0Windows only yet):<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blogs.scummvm.org\/tkachov\/wp-content\/uploads\/sites\/60\/2022\/05\/server.png\" \/><\/p>\n<p>I\u2019ve added \u00ab\/files\u00bb path to\u00a0the webserver, so\u00a0that\u2019s where one can browse directories on\u00a0the device. Clicking on\u00a0a\u00a0file causes its download, obviously. There are also two buttons: \u00abCreate directory\u00bb and \u00abUpload files\u00bb. One can\u2019t upload directories yet, but multiple files uploading works fine.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blogs.scummvm.org\/tkachov\/wp-content\/uploads\/sites\/60\/2022\/05\/root.png\" \/><\/p>\n<p>I\u2019ve tried downloading a\u00a0349\u00a0MB file from that webserver and it\u00a0took me\u00a016\u00a0seconds. That\u2019s about 22\u00a0megabytes per second! Unfortunately, I\u00a0can\u2019t say the same about uploading. It\u00a0took me\u00a020\u00a0seconds to\u00a0upload a\u00a09,5\u00a0MB file and 11:15 to\u00a0upload that 349\u00a0MB file. That\u2019s about a\u00a00.5 megabyte per second. Handling multipart\/form-data POST is\u00a0not an\u00a0easy thing, and it\u00a0doesn\u2019t work fast in\u00a0my\u00a0webserver implementation yet.<\/p>\n<p>What\u2019s next? My\u00a0Container PR\u00a0is\u00a0not merged yet and this week features might need some polishing after review. The next thing in\u00a0the plan is\u00a0to\u00a0implement the fourth cloud support.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week started with the DownloadDialog, which allows users to\u00a0download directories from their cloud storage onto their device. Navigating through the remote directories is\u00a0a\u00a0bit slower than browsing local ones, but it\u00a0works fine. Download is\u00a0done in\u00a0the background. On\u00a0the completion, OSD message is\u00a0shown. If\u00a0DownloadDialog was not closed, ScummVM automatically detects the game in\u00a0the directory (the way it\u00a0works [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-47","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts\/47","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/comments?post=47"}],"version-history":[{"count":2,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts\/47\/revisions"}],"predecessor-version":[{"id":86,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/posts\/47\/revisions\/86"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/media?parent=47"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/categories?post=47"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/tkachov\/wp-json\/wp\/v2\/tags?post=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}