217 Commits

Author SHA1 Message Date
cuu e15f6155cd update gsnotify bin file 2023-01-03 13:04:31 +00:00
cuu 6e005cf435 update .xinitrc 2023-01-02 20:20:13 +08:00
cuu 13ed96d83c replace a new aria2c ,for bug tls handshake failed with github 2021-10-22 15:57:49 +08:00
GNU 83de5fc575 Merge pull request #330 from prashantkamdar/master
updating the pic8 to latest version
2021-03-05 19:17:55 +08:00
Prashant Kamdar 95a14f6dfc formatting the file for better visualisation
updating the pic8 to latest version along with the md5
2021-02-15 15:27:16 +05:30
Prashant Kamdar 8aee33e672 typo correction
updating the pico8 zip to latest along with the md5
2021-02-15 15:25:58 +05:30
Prashant Kamdar f030dc52ff adding the latest pico8 zip and md5 2021-02-15 15:25:12 +05:30
cuu e701756207 update pico8 version infos 2020-05-03 10:07:50 +08:00
cuu 2f263ff707 bux fix,list index out of range 2020-04-29 19:55:29 +08:00
GNU 2b136fae3c Merge pull request #328 from cuu/master
readme beeprint
2020-04-15 11:19:10 +08:00
cuu 8dcdc977a8 readme beeprint 2020-04-15 01:19:38 +08:00
GNU 76e61b521c Merge pull request #324 from krushinru/master
Add Russian language support
2020-01-15 22:52:56 +08:00
Alexander Krushin 15424129f0 Update 09_Russian.ini 2020-01-15 00:55:34 +03:00
Alexander Krushin e6fefe5779 Update 09_Russian.ini 2020-01-14 22:08:58 +03:00
Alexander Krushin de9248f87e Update 09_Russian.ini 2020-01-14 22:07:56 +03:00
Alexander Krushin d55fed3a78 Adding Russian language 2020-01-14 20:41:09 +03:00
cpi 75b74e4c6a add mad address in wifi info page 2020-01-14 10:38:40 +00:00
GNU 661250f7b1 Merge pull request #323 from cuu/master
add GlobalScale
2020-01-14 18:24:10 +08:00
cuu e15cf60412 pygame.DOUBLEBUF | pygame.HWSURFACE 2020-01-13 15:26:24 +08:00
cuu 712ce14fc5 add dest surface in GlobalScale 2020-01-13 14:49:02 +08:00
cuu 6e9d146e80 set default GlobalScale to 1 2020-01-12 01:37:50 +08:00
Parallels 5180b74a91 add GlobalScale 2020-01-12 01:33:33 +08:00
GNU 18c1b186af Merge pull request #311 from O4k/patch-1
Allows for new skin config.ini format(s)
2020-01-07 17:08:01 +08:00
GNU 879a734666 Merge pull request #321 from Taffer/codestyle-cleanup
shellcheck cleanup
2020-01-07 17:07:06 +08:00
GNU c4a12ce2d2 Merge pull request #322 from cuu/master
for skin OP1
2020-01-02 10:49:38 +08:00
cuu 8d662e0f19 for skin OP1 2020-01-02 10:46:44 +08:00
Taffer 9b5e3b411b Merge branch 'master' of github.com:Taffer/launcher into codestyle-cleanup 2019-12-30 15:35:54 -05:00
GNU df170b71ab Merge pull request #320 from cuu/master
add RestoreScrolled in Warehouse
2019-12-29 21:23:02 +08:00
cuu 987587c5af add RestoreScrolled in Warehouse 2019-12-29 20:31:22 +08:00
Taffer b0d5517b5e Fix shellcheck warnings. 2019-12-28 11:55:06 -05:00
Taffer ac61a305ba Add SublimeText 3 project file. 2019-12-28 11:54:26 -05:00
GNU 7ea30feba7 Merge pull request #319 from cuu/master
warehouse
2019-12-29 00:47:17 +08:00
cuu e9db2ac4d1 warehouse 2019-12-29 00:46:19 +08:00
GNU d7b75ddec5 Merge pull request #318 from cuu/master
Warehouse
2019-12-29 00:31:15 +08:00
cuu 557cd04b64 Warehouse 2019-12-29 00:30:03 +08:00
GNU 6ba59fc9c0 Merge pull request #317 from cuu/master
warehouse tic80 icon bug
2019-12-29 00:12:54 +08:00
cuu 9062cc8e9b warehouse tic80 icon bug 2019-12-29 00:11:14 +08:00
GNU edbcd7d47a Merge pull request #316 from cuu/master
try to add a simple way to re-install the CommercialSoftwarePackage
2019-12-25 21:32:44 +08:00
cuu 5be4bc20ff try to add a simple way to re-install the CommercialSoftwarePackage 2019-12-25 21:31:54 +08:00
GNU 1219a615fa Merge pull request #315 from cuu/master
bug fix
2019-12-25 21:06:51 +08:00
cuu 3febbf7425 GCommercialSoftwarePackage 2019-12-25 21:04:47 +08:00
cuu c9d9ad64fe warehouse pico8 purchase tips take longer 2019-12-25 16:46:22 +08:00
GNU 708c863a33 Merge pull request #314 from cuu/master
warehouse bug fix of adding URL repeatedly
2019-12-25 14:16:48 +08:00
cuu f9a62573de warehouse bug fix of adding URL repeatedly 2019-12-25 05:59:06 +00:00
GNU 743c82fc26 Merge pull request #313 from cuu/master
warehouse
2019-12-24 20:52:58 +08:00
cuu 58877ba643 Merge branch 'master' of https://github.com/clockworkpi/launcher 2019-12-24 20:49:38 +08:00
O4k 639f4c1700 Allows for new skin config.ini format(s)
The new code checks for a config.ini file in the Skin's folder. Then it checks for a "Font_Paths" section where it replaces the default fonts with the names of the new fonts listed in the Config. You will have to add the desired fonts to the truetype folder within the skin folder and update the config to match the fonts you have added. If you remove the existing fonts in that folder, the launcher will not load if there is a problem with the config file.

Note that the system-wide font name variables do not change, but their referenced file does.

The new Config file would look something like this:
    
    [Font_Paths]
    varela = Roboto-Black
    veramono = Roboto-Regular
    noto = Roboto-Bold
    notocjk = Roboto-Light

    [Colors]
    High = #f0ffff
    Text = #ffffff
    ReadOnlyText = #ffffff
    Front = #614f7d
    URL = #f0ffff
    Line = #614f7d
    TitleBg = #111013
    Active = #ff70ba
    Disabled = #e6e6ff
    White = #111013
    Black = #614f7d
2019-12-21 10:32:14 -08:00
cuu ad4a82bad5 run.py add CurrentPage.OnAria2CompleteCb
21_Warehouse/__init__.py text correspondence[_FootMsg]
Warehouse beta now
2019-12-19 05:13:07 +00:00
cuu 9b1c89af4c title_bar hide the dlstatus icon 2019-12-19 04:58:13 +00:00
cuu 46b67bc12f warehouse alpha 2019-12-18 13:07:47 +00:00
cuu 31f117d65f add aria2 websocket in run.py
improve the way to open a warehouse
slow down the reflash freq of download progress in download_process_page.py
2019-12-17 13:40:16 +00:00
cuu 42fd86bce6 run.py RestoreLastBackLightBrightness bug fix 2019-12-16 14:26:11 +00:00
cuu 5db3db2ee3 preview game alpha 2019-12-16 07:41:33 +00:00
cuu 128e37e06a preview game screenshot 2019-12-15 16:03:25 +00:00
cuu 7e6d172512 warehouse bug fix 2019-12-15 07:38:15 +00:00
cuu 0af791192f prepare to multi warehouses 2019-12-14 14:03:44 +00:00
cuu ccb11daa44 GameStore to Warehouse 2019-12-14 06:34:58 +00:00
cuu 579164ce19 add icons 2019-12-13 21:42:06 +08:00
cuu 66d0558dfa Add open pico8 and tic80 in gamestore 2019-12-09 06:19:23 +00:00
cuu 9c69b6a637 gamestore alpha 2019-12-08 14:37:14 +00:00
cuu 103838c531 daily update for gamestore 2019-12-07 22:48:09 +08:00
cuu b725a86b9e add yes_cancel_confirm_page.py
update aria2.conf,keep and auto continue the donwloading tasks
try to show downloading status in the title_bar
2019-12-07 00:58:40 +08:00
cuu 3371393733 gamestore bug fix 2019-12-05 22:00:22 +08:00
cuu 85d67dc218 ```
def Click(self):
        if self._PsIndex > len(self._MyList) -1:
```
* use this to avoid PsIndex out of the range of self._MyList

* download games and showed up
2019-12-05 17:20:38 +08:00
GNU ebe816ba5f Merge pull request #310 from KortanZ/master
fix typo
2019-12-04 23:55:39 +08:00
cuu 2bb22f3914 submodule sys.py/pyaria2_rpc update 2019-12-04 21:38:13 +08:00
cuu 764aa61b7f rename submodule 2019-12-04 21:36:04 +08:00
cuu e9ed6d7cf1 add appinstaller 2019-12-04 01:01:13 +08:00
cuu 1aac399de6 ... 2019-12-02 01:36:13 +08:00
cuu ac0df61352 add aria2c pyaria2-rpc 2019-12-01 15:40:15 +00:00
Kortan f605b4bf91 fix typo 2019-12-01 01:56:04 +08:00
cuu 0b42901e26 add gamestore 2019-11-30 17:39:14 +08:00
GNU 105a5fa596 Merge pull request #299 from arthurlutz/requirements-txt
[requirements] initial version
2019-10-18 18:13:22 +08:00
Arthur Lutz 888fdbbd18 [requirements] initial version 2019-10-15 18:13:33 +02:00
cuu c54191505d capitalized sound volume in 00_English.ini 2019-10-06 21:51:24 +08:00
cuu f55cb1aa8d https://forum.clockworkpi.com/t/launcher-adding-bulgarian-language-suport/4666 Adding Bulgarian language suport 2019-10-06 13:30:43 +08:00
GNU 972219570c Merge pull request #293 from cuu/master
fix bug in title_bar auto redraw when in Low backlight
2019-09-03 13:21:33 +08:00
cpi e0dfe211a9 fix bug in title_bar auto redraw when in Low backlight 2019-09-03 05:19:40 +00:00
GNU 4e7bebbdb2 Merge pull request #292 from cuu/master
info_page_selector bug fix
2019-08-26 16:06:23 +08:00
cpi afe616de9e info_page_selector bug fix 2019-08-26 08:05:34 +00:00
GNU c9f06d2a55 Merge pull request #291 from cuu/master
Cores manager bug fix
2019-08-26 16:03:45 +08:00
cpi 3829a2a7f9 Cores manager bug fix 2019-08-26 08:02:51 +00:00
GNU 1c6bd61575 Merge pull request #290 from cuu/master
update pico8 hash
2019-08-24 13:59:02 +08:00
cpi 784edd007a update pico8 hash 2019-08-24 05:54:06 +00:00
GNU 870e71b85b Merge pull request #288 from cuu/master
unzip with override
2019-08-22 21:17:15 +08:00
cpi 852610914d unzip with override 2019-08-22 13:15:13 +00:00
GNU 98e39edcdf Merge pull request #286 from cuu/master
alias list_item encode utf8
2019-08-22 16:30:47 +08:00
cpi 818916e0fb alias list_item encode utf8 2019-08-22 08:30:07 +00:00
GNU 087a10da31 Merge pull request #246 from Cecilectomy/fix-footbar-button-layout
fix foot bar button layouts being swapped
2019-08-20 17:44:58 +08:00
GNU 03302a3f70 Merge pull request #284 from cuu/master
Correction of translations
2019-08-19 17:47:01 +08:00
cuu b26b9f7fbd correction of translations 2019-08-19 17:45:19 +08:00
cuu 7fcdf54385 Correction of translations 2019-08-19 17:43:07 +08:00
GNU ab07fadf71 Merge pull request #281 from undancer/master
翻译改进
2019-08-15 22:53:27 +08:00
undancer 9597203d8f 添加更新启动器的翻译 2019-08-15 02:08:49 +08:00
undancer a6accdad18 添加主题管理的翻译 2019-08-15 02:05:41 +08:00
undancer 4245bb3085 添加GPU翻译 2019-08-15 02:02:31 +08:00
undancer a6b2c1cdb8 更新音量的拼写 2019-08-15 01:56:18 +08:00
GNU f4d0766edb Merge pull request #276 from cuu/master
...
2019-08-07 21:45:41 +08:00
cuu 2e472ae11c ... 2019-08-07 21:44:53 +08:00
GNU 2a6899cb52 Merge pull request #274 from cuu/master
rename Cores page title
2019-08-07 17:12:54 +08:00
cuu 78c5bb3d76 rename Cores page title 2019-08-07 17:12:12 +08:00
GNU 0730d86fa4 Merge pull request #273 from cuu/master
add HiddenSos in Cores Manager
2019-08-07 17:01:15 +08:00
cuu 0f1b4bd57f add HiddenSos in Cores Manager 2019-08-07 17:00:29 +08:00
GNU 58e9d1430a Merge pull request #272 from cuu/master
add update for ~/apps/Menu
2019-08-07 16:06:54 +08:00
cuu 07805d7fd5 add update ~/apps/Menu 2019-08-07 16:05:36 +08:00
cuu 07fc53c11d add update ~/apps/Menu 2019-08-07 16:04:27 +08:00
GNU f08d0faebf Merge pull request #271 from cuu/master
add patches in download_process_page
2019-08-07 16:00:12 +08:00
cuu 3dd659860e ... 2019-08-07 15:29:39 +08:00
cuu a8b3a7084c add patches in download_process_page 2019-08-07 15:27:45 +08:00
GNU 29ca4c4ac6 Merge pull request #267 from cuu/master
add German Translation
2019-07-20 20:55:44 +08:00
cuu 1e1c8f7f4c add German Translation 2019-07-20 20:54:52 +08:00
GNU e09d197be0 Merge pull request #265 from cuu/master
lima text revision
2019-07-18 10:39:01 +08:00
cuu 9de0f722c8 lima text revision 2019-07-18 10:38:23 +08:00
GNU e22a3286f3 Merge pull request #264 from cuu/master
TinyCloud use hostname as ariplay_name
2019-07-18 06:55:44 +08:00
cuu c4411fc1aa TinyCloud use hostname as ariplay_name 2019-07-18 06:55:06 +08:00
GNU a89304b250 Merge pull request #261 from cuu/master
revert about page
2019-07-17 17:08:58 +08:00
cuu 3557feb44c revert about page 2019-07-17 17:08:25 +08:00
GNU ad94fbebfd Merge pull request #260 from cuu/master
fix about page
2019-07-17 15:50:28 +08:00
cuu 2ca466257b fix about page 2019-07-17 15:49:52 +08:00
GNU 86fa05e619 Merge pull request #254 from cuu/master
theme background.png
2019-07-14 10:53:19 +08:00
cuu 3826d3cfe2 theme background.png 2019-07-14 10:52:32 +08:00
GNU 63a30be0f6 Merge pull request #250 from losernator/master
Korean translation
2019-07-11 11:06:04 +08:00
Joohan Lee 8113002aa7 Korean translation
Korean translation for cpi launcher
2019-07-10 02:07:41 +09:00
Joohan Lee 8f2fe08400 Merge pull request #1 from clockworkpi/master
Update from master
2019-07-10 02:05:23 +09:00
Daniel Cecil 48bb893a5c Revert SetLabelTexts
This causes SNES button actions to be backwards.
Please merge this pull request to revert back, or properly fix whatever the update was supposed to change in the first place.
2019-07-07 18:28:48 -07:00
Daniel Cecil 41729a4b2a fix foot bar button layouts being swapped
When using SNES it shows the button actions for XBOX
When using XBOX it shows the button actions for SNES
2019-07-06 12:14:47 -07:00
GNU 954f158f73 Merge pull request #245 from cuu/master
make a confirmation when switch to launchergo
2019-07-04 09:21:14 +08:00
cuu be3f53850b make a confirmation when switch to launchergo 2019-07-04 09:20:35 +08:00
GNU 04120e0841 Merge pull request #243 from cuu/master
add bluetooth_firmware.sh
2019-07-03 15:22:56 +08:00
cuu 467a5623f6 add bluetooth_firmware.sh 2019-07-03 15:22:20 +08:00
GNU 546523359b Merge pull request #241 from cuu/master
main_screen ReadTheDirIntoPages ,ignore hidden files/folders
2019-07-02 15:13:04 +08:00
cuu 9b63fc4c8f main_screen ReadTheDirIntoPages ,ignore hidden files/folders 2019-07-02 15:09:57 +08:00
GNU b6fb439ae1 Merge pull request #240 from cuu/master
add No.909.png
2019-07-01 23:53:00 +08:00
cuu e94897c5ec add No.909.png 2019-07-01 23:46:53 +08:00
GNU 9c9896b06e Merge pull request #239 from cuu/master
Update icons,fix border width
2019-07-01 22:31:25 +08:00
cuu d4a6c417bb Update icons,fix border width 2019-07-01 22:30:33 +08:00
GNU 75300a6e7b Merge pull request #238 from cuu/master
add GiveWallpaper to allow the custom wallpaper from any Theme/skin
2019-07-01 20:36:22 +08:00
cuu 4f354f28c2 add GiveWallpaper to allow the custom wallpaper from any Theme/skin 2019-07-01 20:30:07 +08:00
GNU 80c732b261 Merge pull request #235 from cuu/master
update icons
2019-06-28 21:00:22 +08:00
cuu 528e79648b update icons 2019-06-28 20:59:40 +08:00
GNU eb0f43fd07 Merge pull request #234 from cuu/master
update icons
2019-06-28 20:40:47 +08:00
cuu 7d9146c6cf update icons 2019-06-28 20:40:11 +08:00
GNU 2c75adb1ae Merge pull request #233 from cuu/master
update icons
2019-06-28 20:36:43 +08:00
cuu 4e9d7a42f0 update icons 2019-06-28 20:36:06 +08:00
GNU b520e83dd6 Merge pull request #231 from cuu/master
text revision
2019-06-27 19:50:52 +08:00
cuu 273db99c78 text revision 2019-06-27 19:41:44 +08:00
GNU 638f23a8b8 Merge pull request #229 from cuu/master
wifi list, FootMsg changes for the buttons layout,bug fix
2019-06-26 22:21:54 +08:00
cuu 3673da1bf4 bug fix 2019-06-26 22:15:41 +08:00
cuu badeb13268 FootMsg changes for the buttons layout 2019-06-26 21:12:20 +08:00
cuu 0f2cf846eb wifilist 2019-06-26 17:29:25 +08:00
cuu 8c0c6ac86a ... 2019-06-26 17:23:18 +08:00
cuu 0b733435f6 10 times to force wifi disconnect when try to connect a new one 2019-06-26 17:18:53 +08:00
cuu 24abd55f86 wifilist 2019-06-26 17:11:06 +08:00
GNU 03e0385cda Merge pull request #228 from cuu/master
update .gitignore
2019-06-26 11:31:25 +08:00
cuu d17a89e80c update .gitignore 2019-06-26 11:30:31 +08:00
cuu fb0c45229c update icons 2019-06-25 17:30:15 +08:00
GNU 457adc1b21 Merge pull request #227 from cuu/master
RUNEVT RUNSYS dirname strip and split space
2019-06-24 19:47:46 +08:00
cuu 8e943d2751 RUNEVT,RUNSYS bug fix 2019-06-24 19:46:14 +08:00
cuu dd6aa87ee6 RUNEVT RUNSYS dirname split space 2019-06-24 17:49:43 +08:00
GNU 1c7ca69a8f Merge pull request #226 from cuu/master
launcher forks now 1.25
2019-06-24 16:50:19 +08:00
cuu 70a4c48c67 launcher forks now 2019-06-24 16:48:37 +08:00
cuu aad54336e8 Remove all emulators to ~/apps/Menu/20_Retro\ Games 2019-06-24 16:47:44 +08:00
GNU fb8937fe0f Merge pull request #225 from cuu/master
update icons for mame,mgba,nestopia,pcsx
2019-06-24 13:19:17 +08:00
cuu ef0d5a6b52 update icons for mame,mgba,nestopia,pcsx 2019-06-24 13:18:48 +08:00
GNU 5ef12f8081 Merge pull request #223 from cuu/master
In special cases, allow ROM_SO to become LAUNCHER-like functionality …
2019-06-21 18:54:21 +08:00
cuu a9a179fe47 In special cases, allow ROM_SO to become LAUNCHER-like functionality in Emulator 2019-06-21 18:49:59 +08:00
GNU 2b1952c59d Merge pull request #222 from cuu/master
...
2019-06-21 18:36:14 +08:00
cuu 68d3ec052c ... 2019-06-21 18:35:40 +08:00
GNU 9a3161eb05 Merge pull request #221 from cuu/master
pcsx
2019-06-21 18:33:26 +08:00
cuu 380c972b13 ignore pcsx addtional files ,folders,log 2019-06-21 18:32:43 +08:00
cuu 77707a8118 pcsx action.config bug fix 2019-06-21 18:30:13 +08:00
cuu 16f521b8da pcsx extensions 2019-06-21 17:47:23 +08:00
cuu b435507935 add pcsx action.config 2019-06-21 17:44:19 +08:00
cuu 8468102ee5 remove Pcsx submodule 2019-06-21 17:38:47 +08:00
GNU 7da6542a1e Merge pull request #220 from cuu/master
add DrawRect in multi_icon_item
2019-06-21 13:20:12 +08:00
cuu 3ad1c48fce stretch canvas of about 2019-06-21 13:18:31 +08:00
cuu dd92daa60f add DrawRect in multi_icon_item 2019-06-21 12:44:34 +08:00
GNU 7a592353b0 Merge pull request #219 from cuu/master
minor update
2019-06-21 12:18:05 +08:00
cuu 055ee12867 add launcher and os version in About 2019-06-21 12:16:44 +08:00
cuu 4d67c053ff ChocoDM 2019-06-20 14:23:01 +08:00
cuu 29cbe9297a switch lima improvements 2019-06-17 18:18:18 +08:00
cuu c559728454 replace all MyIconPool._Icons to be MyIconPool.GiveIconSurface 2019-06-13 21:24:56 +08:00
GNU acb6774495 Merge pull request #218 from cuu/master
minor update
2019-06-13 16:21:48 +08:00
cuu baae2545f1 IconPool 2019-06-13 16:17:51 +08:00
cuu 5aa744cb6b PreparationInAdv fix 2019-06-13 15:59:24 +08:00
cuu d75fcc6f1c PreparationInAdv to config.py 2019-06-13 15:58:08 +08:00
cuu 58fd2e6a1a add skin rescan 2019-06-13 15:13:26 +08:00
cuu bac3f7899d add skins selection 2019-06-13 14:55:15 +08:00
cuu 0302741ac2 MySkinManager.GiveColor instead of RGB 2019-06-12 23:10:36 +08:00
GNU 16b226dbc3 Merge pull request #217 from cuu/master
...
2019-06-12 20:16:27 +08:00
cuu 8c77f3ffc5 ... 2019-06-12 20:15:52 +08:00
GNU da29679180 Merge pull request #216 from cuu/master
rename modesetting_drv.so to toggle lima driver
2019-06-12 20:11:18 +08:00
cuu e73c9138ea rename modesetting_drv.so to toggle lima driver 2019-06-12 20:10:00 +08:00
GNU 9ce60ff62f Merge pull request #215 from cuu/master
Because the high version of xorg prohibits the use of absolute paths …
2019-06-11 19:48:49 +08:00
cuu fe44274594 Because the high version of xorg prohibits the use of absolute paths for xf86config parameters, changes to relative paths in dotcpirc 2019-06-11 19:48:06 +08:00
GNU 1b1cbbca28 Merge pull request #214 from cuu/master
CommercialSoftwarePackage buttons  swap
2019-06-10 13:57:51 +08:00
cuu 858540bb7d CommercialSoftwarePackage keys 2019-06-10 13:52:35 +08:00
GNU 8018bbfe1f Merge pull request #212 from noahbechtel/master
Allows for the rendering and rescaling of images to be used as a back…
2019-06-02 09:20:10 +08:00
Noah 24d711e538 Allows for the rendering and rescaling of images to be used as a background to the launcher 2019-06-01 16:56:02 -05:00
GNU a9220fc66e Merge pull request #210 from cuu/master
except the python UnicodeDecodeError in Emulator
2019-05-13 19:48:13 +08:00
cuu ed8699d6d4 except the python UnicodeDecodeError in Emulator 2019-05-13 19:43:43 +08:00
GNU e3624948d0 Merge pull request #207 from cuu/master
TrFont bug fix
2019-05-11 17:53:48 +08:00
cuu ce72585632 TrFont bug fix 2019-05-11 17:53:17 +08:00
GNU 75975dea37 Update LICENSE 2019-05-10 19:03:04 +08:00
GNU 1b48ca875b Merge pull request #205 from cuu/master
wifi_list bug fix
2019-05-09 20:32:04 +08:00
cuu 1590ea44b8 wifi_list bug fix 2019-05-09 20:31:12 +08:00
GNU d360b72007 Merge pull request #204 from cuu/master
off to OFF
2019-05-09 17:00:49 +08:00
cuu 67148d102b off to OFF 2019-05-09 17:00:14 +08:00
GNU c9221e5a2a Merge pull request #202 from cuu/master
bug fix
2019-05-07 13:32:41 +08:00
cuu d6a5294afb bug fix 2019-05-07 13:30:31 +08:00
GNU 1753a687e4 Merge pull request #201 from cuu/master
bug fix download_process_page.py
2019-05-07 13:04:47 +08:00
cuu 8ee95d9648 bug fix download_process_page.py 2019-05-07 13:04:12 +08:00
GNU 29e52bbaea Merge pull request #197 from cuu/master
add absolute path in .cpirc
2019-05-05 18:33:28 +08:00
cuu 0dc85f2407 add absolute path in .cpirc 2019-05-05 18:32:55 +08:00
GNU fb156214f9 Merge pull request #192 from cuu/master
add pico-8.zip
2019-05-05 15:58:45 +08:00
cuu 1b783d3ce2 ... 2019-05-05 15:56:56 +08:00
cuu 201f2fb89c add pico-8.zip 2019-05-05 15:54:02 +08:00
224 changed files with 5838 additions and 616 deletions
+11
View File
@@ -12,3 +12,14 @@ sys.py/.lang
!**/Jobs/00_lowpower.sh
!**/Jobs/00_lowpower.alias
.done
bios
bios/*
screenshots
screenshots/*
.pcsx
.pcsx/*
*.log
.DS_Store
sys.py/.*
sys.py/*.db
launcher.sublime-workspace
+3
View File
@@ -0,0 +1,3 @@
[submodule "sys.py/pyaria2_rpc"]
path = sys.py/pyaria2_rpc
url = https://github.com/cuu/pyaria2_rpc.git
+5 -1
View File
@@ -2,14 +2,18 @@ session=${1:-gameshell}
case $session in
hdmi )
exec aria2c --conf-path=/home/cpi/launcher/aria2.conf &
feh --bg-center ~/launcher/sys.py/gameshell/wallpaper/desktopbg.jpg
cd ~/launcher/sys.py/ ; python appinstaller.py > /tmp/appinstaller.log & cd ~/
exec ~/launcher/load.sh &
exec ~/launcher/sys.py/gsnotify/gsnotify-arm daemon &
#exec /usr/bin/twm -f ~/launcher/.twmrc
exec ~/launcher/dwm-mod
;;
gameshell )
gameshell )
exec aria2c --conf-path=/home/cpi/launcher/aria2.conf &
feh --bg-center ~/launcher/sys.py/gameshell/wallpaper/loading.png
cd ~/launcher/sys.py/ ; python appinstaller.py > /tmp/appinstaller.log & cd ~/
exec ~/launcher/load.sh &
exec ~/launcher/sys.py/gsnotify/gsnotify-arm &
#exec awesome -c ~/launcher/awesome/rc.lua
Binary file not shown.
-3
View File
@@ -1,3 +0,0 @@
#!/bin/bash
love MANUAL.love gameshell
Binary file not shown.
-3
View File
@@ -1,3 +0,0 @@
#!/bin/bash
love OPERATION.love gameshell
Binary file not shown.
-4
View File
@@ -1,4 +0,0 @@
#!/bin/bash
love MAIL.love gameshell
@@ -266,7 +266,7 @@ class AboutPage(Page):
li.SetSmallText( self._AList[u]["value"] )
last_height += li._Height+2 ## fix offset for long line text covered on the right background png
last_height += li._Height
self._MyList.append(li)
@@ -19,7 +19,7 @@ from UI.icon_pool import MyIconPool
from UI.icon_item import IconItem
from UI.multi_icon_item import MultiIconItem
from UI.lang_manager import MyLangManager
from UI.skin_manager import MySkinManager
from UI.multilabel import MultiLabel
class AirplanePage(Page):
@@ -63,35 +63,34 @@ class AirplanePage(Page):
self._Height = self._Screen._Height
"""
airwire = IconItem()
airwire._ImgSurf = MyIconPool._Icons["airwire"]
airwire._ImgSurf = MyIconPool.GiveIconSurface("airwire")
airwire._MyType = ICON_TYPES["STAT"]
airwire._Parent = self
airwire.Adjust(0,0,5,43,0)
self._Icons["airwire"] = airwire
GS = IconItem()
GS._ImgSurf = MyIconPool._Icons["GS"]
GS._ImgSurf = MyIconPool.GiveIconSurface("GS")
GS._MyType = ICON_TYPES["STAT"]
GS._Parent = self
GS.Adjust(0,0,72,95,0)
self._Icons["GS"] = GS
"""
DialogBoxs = MultiIconItem()
DialogBoxs._ImgSurf = MyIconPool._Icons["DialogBoxs"]
DialogBoxs._ImgSurf = MyIconPool.GiveIconSurface("DialogBoxs")
DialogBoxs._MyType = ICON_TYPES["STAT"]
DialogBoxs._Parent = self
DialogBoxs._IconWidth = 180
DialogBoxs._IconHeight = 80
DialogBoxs.Adjust(0,0,180,320,0)
DialogBoxs._IconWidth = 134
DialogBoxs._IconHeight = 93
DialogBoxs.Adjust(0,0,134,372,0)
self._Icons["DialogBoxs"] = DialogBoxs
"""
bgpng = MultiIconItem()
bgpng._ImgSurf = MyIconPool._Icons["about_bg"]
bgpng._ImgSurf = MyIconPool.GiveIconSurface("about_bg")
bgpng._MyType = ICON_TYPES["STAT"]
bgpng._Parent = self
bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
@@ -232,24 +231,19 @@ class AirplanePage(Page):
def Draw(self):
self.ClearCanvas()
self._Icons["DialogBoxs"].NewCoord(70,58)
#self._Icons["airwire"].NewCoord(80,self._airwire_y)
self._Icons["DialogBoxs"].NewCoord(145,23)
self._Icons["airwire"].NewCoord(80,self._airwire_y)
self._Icons["DialogBoxs"]._IconIndex = self._dialog_index
self._Icons["DialogBoxs"].DrawTopLeft()
#self._Icons["airwire"].Draw()
self._Icons["airwire"].Draw()
#self._Icons["GS"].NewCoord(98,118)
#self._Icons["GS"].Draw()
self.DrawCross(10,10)
self.DrawCross(self._Screen._Width-20,10)
self.DrawCross(10,self._Screen._Height-20)
self.DrawCross(self._Screen._Width-20,self._Screen._Height-20)
self._Icons["GS"].NewCoord(98,118)
self._Icons["GS"].Draw()
if self._HWND != None:
self._HWND.fill(MySkinManager.GiveColor("White"))
self._HWND.fill((255,255,255))
self._HWND.blit(self._CanvasHWND,(self._PosX,self._PosY,self._Width, self._Height ) )
@@ -71,7 +71,7 @@ class BleForgetConfirmPage(ConfirmPage):
class BleInfoPageSelector(PageSelector):
_BackgroundColor = MySkinManager.GiveColor('Line')
_BackgroundColor = MySkinManager.GiveColor('Front')
def __init__(self):
self._PosX = 0
@@ -92,9 +92,8 @@ class BleInfoPageSelector(PageSelector):
self._PosY = y
self._Height = h
#aa_round_rect(self._Parent._CanvasHWND,
# (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
pygame.draw.rect(self._Parent._CanvasHWND,self._BackgroundColor,(x,y,self._Width-4,h),0)
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
class BleInfoPage(Page):
_FootMsg = ["Nav","Forget","Disconnect","Back",""]
@@ -316,7 +315,7 @@ class BleInfoPage(Page):
class BleListSelector(PageSelector):
_BackgroundColor = MySkinManager.GiveColor('Line')
_BackgroundColor = MySkinManager.GiveColor('Front')
def __init__(self):
self._PosX = 0
@@ -337,9 +336,8 @@ class BleListSelector(PageSelector):
self._PosY = y
self._Height = h
#aa_round_rect(self._Parent._CanvasHWND,
# (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
pygame.draw.rect(self._Parent._CanvasHWND,self._BackgroundColor, (x,y,self._Width-4,h),0 )
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
class BleListMessageBox(Label):
_Parent = None
@@ -353,7 +351,7 @@ class BleListMessageBox(Label):
padding = 10
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),(x-padding,y-padding, w+padding*2,h+padding*2))
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),(x-padding,y-padding, w+padding*2,h+padding*2),1)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Black'),(x-padding,y-padding, w+padding*2,h+padding*2),1)
self._CanvasHWND.blit(my_text,(x,y,w,h))
@@ -98,7 +98,7 @@ class NetItem(object):
self._Labels["mac_addr"] = name_label
done_icon = NetItemIcon()
done_icon._ImgSurf = MyIconPool._Icons["done"]
done_icon._ImgSurf = MyIconPool.GiveIconSurface("done")
done_icon._CanvasHWND = self._Parent._CanvasHWND
done_icon._Parent = self
@@ -15,18 +15,19 @@ from UI.keys_def import CurKeys, IsKeyMenuOrB
from UI.slider import Slider
from UI.icon_pool import MyIconPool
from UI.multi_icon_item import MultiIconItem
from UI.skin_manager import MySkinManager
from config import BackLight
import myvars
class BSlider(Slider):
OnChangeCB = None
_BGpng = None
_BGwidth = 179
_BGheight = 153
_NeedleSurf = None
_Scale = None
_Parent = None
_Icons = {}
@@ -37,11 +38,22 @@ class BSlider(Slider):
self._Width = self._Parent._Width
self._Height = self._Parent._Height
self._BrightnessLabel = Label()
self._BrightnessLabel.SetCanvasHWND(self._CanvasHWND)
self._BrightnessLabel.Init("BRIGHT",MySkinManager.GiveFont("EurostileBold13"))
self._BrightnessLabel.SetColor(MySkinManager.GiveColor('Text'))
bgpng = IconItem()
bgpng._ImgSurf = MyIconPool.GiveIconSurface("light")
bgpng._MyType = ICON_TYPES["STAT"]
bgpng._Parent = self
bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
self._Icons["bg"] = bgpng
##self._NeedleSurf = pygame.Surface( (38,12),pygame.SRCALPHA )
scale = MultiIconItem()
scale._MyType = ICON_TYPES["STAT"]
scale._Parent = self
scale._ImgSurf = MyIconPool.GiveIconSurface("scale")
scale._IconWidth = 82
scale._IconHeight = 63
scale.Adjust(0,0,82,63,0)
self._Icons["scale"] = scale
def SetValue(self,brt):
self._Value = brt
@@ -66,40 +78,27 @@ class BSlider(Slider):
self.OnChangeCB(self._Value)
def Draw(self):
start_x = 82
start_y = self._Parent._Screen._Height/2-5
height = 30
width = 4
padding = 15
seg = self._Value-1
for i in range(0,9):
rect = pygame.Rect(start_x+i*(width+padding),start_y,width,height)
if i > seg:
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),rect, 1)
#aa_round_rect(self._CanvasHWND,rect, MySkinManager.GiveColor('Text'),1,1, MySkinManager.GiveColor('White'))
else:
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),rect, 0)
#aa_round_rect(self._CanvasHWND,rect, MySkinManager.GiveColor('Text'),1,0, MySkinManager.GiveColor('White'))
self._BrightnessLabel.NewCoord(118,self._Parent._Screen._Height/2-30)
self._BrightnessLabel.Draw(True)
minus_box_rect = pygame.Rect(start_x- (4+6)*4,start_y,6*4,30)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),minus_box_rect, 0)
minus_rect = pygame.Rect(start_x-8*4,start_y+14,2*4,2)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),minus_rect, 0)
plus_box_rect = pygame.Rect(start_x + 39*4 +4*4,start_y,6*4,30)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),plus_box_rect, 0)
cross1_rect = pygame.Rect(start_x+39*4+4*4+2*4,start_y+14,2*4,2)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),cross1_rect, 0)
cross2_rect = pygame.Rect(start_x+39*4+4*4+2*4+3,start_y+14-3,2,2*4)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),cross2_rect, 0)
self._Icons["bg"].NewCoord(self._Width/2,self._Height/2 +11 )
self._Icons["bg"].Draw()
self._Icons["scale"].NewCoord(self._Width/2,self._Height/2 )
icon_idx = self._Value - 1
if icon_idx < 0:
icon_idx = 0
self._Icons["scale"]._IconIndex = icon_idx
self._Icons["scale"].Draw()
"""
pygame.draw.line(self._CanvasHWND,(255,0,0), (posx,self._PosY),(self._Width,self._PosY),3) ## range line
pygame.draw.line(self._CanvasHWND,(0,0,255), (self._PosX,self._PosY),(posx,self._PosY),3) ## range line
pygame.draw.circle(self._CanvasHWND,(255,255,255),( posx, self._PosY),7,0)
pygame.draw.circle(self._CanvasHWND,(0,0,0) ,( posx, self._PosY),7,1)## outer border
"""
class BrightnessPage(Page):
@@ -153,7 +153,7 @@ class ButtonsLayoutPage(Page):
self._Height = self._Screen._Height
DialogBoxs = MultiIconItem()
DialogBoxs._ImgSurf = MyIconPool._Icons["buttonslayout"]
DialogBoxs._ImgSurf = MyIconPool.GiveIconSurface("buttonslayout")
DialogBoxs._MyType = ICON_TYPES["STAT"]
DialogBoxs._Parent = self
DialogBoxs._IconWidth = 300
@@ -213,9 +213,9 @@ class CoresPage(Page):
def Draw(self):
self.ClearCanvas()
self._Ps.Draw()
if len(self._MyList) > 0:
self._Ps.Draw()
for i in self._MyList:
i.Draw()
@@ -38,9 +38,8 @@ class ListPageSelector(InfoPageSelector):
self._PosY = y
self._Height = h
#aa_round_rect(self._Parent._CanvasHWND,
# (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
pygame.draw.rect(self._Parent._CanvasHWND,self._BackgroundColor,(x,y,self._Width-4,h) ,0)
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
class PageListItem(InfoPageListItem):
@@ -134,7 +133,7 @@ class GateWayPage(Page):
self._Height = self._Screen._Height
done = IconItem()
done._ImgSurf = MyIconPool._Icons["done"]
done._ImgSurf = MyIconPool.GiveIconSurface("done")
done._MyType = ICON_TYPES["STAT"]
done._Parent = self
self._Icons["done"] = done
@@ -319,7 +318,7 @@ class GateWayPage(Page):
i.Draw()
if self._HWND != None:
self._HWND.fill((255,255,255))
self._HWND.fill(MySkinManager.GiveColor("White"))
self._HWND.blit(self._CanvasHWND,(self._PosX,self._PosY,self._Width, self._Height ) )
@@ -37,9 +37,9 @@ class ListPageSelector(InfoPageSelector):
self._PosY = y
self._Height = h
#aa_round_rect(self._Parent._CanvasHWND,
# (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
pygame.draw.rect(self._Parent._CanvasHWND,self._BackgroundColor,(x,y,self._Width-4,h) ,0)
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
class PageListItem(InfoPageListItem):
_PosX = 0
@@ -133,7 +133,7 @@ class LanguagesPage(Page):
self._Height = self._Screen._Height
done = IconItem()
done._ImgSurf = MyIconPool._Icons["done"]
done._ImgSurf = MyIconPool.GiveIconSurface("done")
done._MyType = ICON_TYPES["STAT"]
done._Parent = self
self._Icons["done"] = done
@@ -278,7 +278,7 @@ class LanguagesPage(Page):
i.Draw()
if self._HWND != None:
self._HWND.fill((255,255,255))
self._HWND.fill(MySkinManager.GiveColor("White"))
self._HWND.blit(self._CanvasHWND,(self._PosX,self._PosY,self._Width, self._Height ) )
@@ -0,0 +1,55 @@
# -*- coding: utf-8 -*-
import os
import pygame
#import math
#mport subprocess
#from beeprint import pp
from libs.roundrects import aa_round_rect
## local UI import
from UI.keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB
from UI.util_funcs import ArmSystem
from UI.lang_manager import MyLangManager
from UI.confirm_page import ConfirmPage
class SwitchToLauncherGoConfirmPage(ConfirmPage):
def KeyDown(self,event):
if IsKeyMenuOrB(event.key):
self.ReturnToUpLevelPage()
self._Screen.Draw()
self._Screen.SwapAndShow()
if IsKeyStartOrA(event.key):
self._Screen._MsgBox.SetText("Rebooting to LauncherGo")
self._Screen._MsgBox.Draw()
self._Screen.SwapAndShow()
pygame.time.delay(300)
ArmSystem("sed -i s/launcher/launchergo/g ~/.bashrc" )
ArmSystem("sudo reboot")
class APIOBJ(object):
_Page = None
def __init__(self):
pass
def Init(self,main_screen):
self._Page = SwitchToLauncherGoConfirmPage()
self._Page._Screen = main_screen
self._Page._Name ="Switch To LauncherGo"
self._Page.Init()
def API(self,main_screen):
if main_screen !=None:
main_screen.PushPage(self._Page)
main_screen.Draw()
main_screen.SwapAndShow()
OBJ = APIOBJ()
def Init(main_screen):
OBJ.Init(main_screen)
def API(main_screen):
OBJ.API(main_screen)
@@ -152,7 +152,7 @@ class GPUDriverPage(Page):
self._Scroller.SetCanvasHWND(self._HWND)
def Click(self):
if len(self._MyList) == 0:
if self._PsIndex > len(self._MyList) -1:
return
cur_li = self._MyList[self._PsIndex]
@@ -44,7 +44,7 @@ class NotifyJobListItem(InfoPageListItem):
self._Labels["Text"] = l
done_icon = IconItem()
done_icon._ImgSurf = MyIconPool._Icons["done"]
done_icon._ImgSurf = MyIconPool.GiveIconSurface("done")
done_icon._CanvasHWND = self._Parent._CanvasHWND
done_icon._Parent = self
@@ -7,6 +7,8 @@ from UI.constants import RUNSYS
from UI.keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB
from UI.confirm_page import ConfirmPage
from UI.lang_manager import MyLangManager
from UI.skin_manager import MySkinManager
import config
class PowerOffConfirmPage(ConfirmPage):
@@ -48,9 +50,9 @@ class PowerOffConfirmPage(ConfirmPage):
if IsKeyStartOrA(event.key):
if self.CheckBattery() < 20:
cmdpath = "feh --bg-center gameshell/wallpaper/gameover.png;"
cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("gameover.png")
else:
cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;"
cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png")
cmdpath += "sleep 3;"
@@ -24,7 +24,7 @@ from UI.lang_manager import MyLangManager
import config
class ListPageSelector(PageSelector):
_BackgroundColor = MySkinManager.GiveColor('Line')
_BackgroundColor = MySkinManager.GiveColor('Front')
def __init__(self):
self._PosX = 0
@@ -47,9 +47,9 @@ class ListPageSelector(PageSelector):
self._PosY = y
self._Height = h
#aa_round_rect(self._Parent._CanvasHWND,
# (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
pygame.draw.rect(self._Parent._CanvasHWND,self._BackgroundColor,(x,y,self._Width-4,h),0 )
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
class PageListItem(object):
_PosX = 0
@@ -378,7 +378,7 @@ class PowerOptionsPage(Page):
self._Height = self._Screen._Height
done = IconItem()
done._ImgSurf = MyIconPool._Icons["done"]
done._ImgSurf = MyIconPool.GiveIconSurface("done")
done._MyType = ICON_TYPES["STAT"]
done._Parent = self
self._Icons["done"] = done
@@ -521,7 +521,7 @@ class PowerOptionsPage(Page):
i.Draw()
if self._HWND != None:
self._HWND.fill((255,255,255))
self._HWND.fill(MySkinManager.GiveColor("White"))
self._HWND.blit(self._CanvasHWND,(self._PosX,self._PosY,self._Width, self._Height ) )
@@ -0,0 +1,294 @@
# -*- coding: utf-8 -*-
import os
import pygame
#import commands
import glob
#from beeprint import pp
from libs.roundrects import aa_round_rect
## local UI import
from UI.constants import Width,Height,ICON_TYPES,RESTARTUI
from UI.page import Page,PageSelector
from UI.label import Label
from UI.util_funcs import midRect,FileExists
from UI.keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB
from UI.scroller import ListScroller
from UI.icon_pool import MyIconPool
from UI.icon_item import IconItem
from UI.multilabel import MultiLabel
from UI.skin_manager import MySkinManager
from UI.lang_manager import MyLangManager
from UI.info_page_list_item import InfoPageListItem
from UI.info_page_selector import InfoPageSelector
import config
class ListPageSelector(InfoPageSelector):
def Draw(self):
idx = self._Parent._PsIndex
if idx < len(self._Parent._MyList):
x = self._Parent._MyList[idx]._PosX+2 ## ++
y = self._Parent._MyList[idx]._PosY+1
h = self._Parent._MyList[idx]._Height -3
self._PosX = x
self._PosY = y
self._Height = h
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
class PageListItem(InfoPageListItem):
_PosX = 0
_PosY = 0
_Width = 0
_Height = 30
_Labels = {}
_Icons = {}
_Fonts = {}
_LinkObj = None
_Active = False
_Value = ""
def Draw(self):
self._Labels["Text"]._PosY = self._PosY+ (self._Height- self._Labels["Text"]._Height)/2
if self._Active == True:
self._Parent._Icons["done"].NewCoord( self._Parent._Width-30,self._PosY+5)
self._Parent._Icons["done"].Draw()
self._Labels["Text"].Draw(self._Active)
if "Small" in self._Labels:
self._Labels["Small"]._PosX = self._Width - self._Labels["Small"]._Width -10
self._Labels["Small"]._PosY = self._PosY + (self._Height- self._Labels["Small"]._Height)/2
self._Labels["Small"].Draw()
pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1)
class SkinsPage(Page):
_FootMsg = ["Nav","","Scan","Back","Select"]
_MyList = []
_ListFont = MyLangManager.TrFont("notosanscjk15")
_AList = {}
_Scrolled = 0
_BGwidth = 320
_BGheight = 240-24-20
_DrawOnce = False
_Scroller = None
_InfoPage = None
def __init__(self):
Page.__init__(self)
self._Icons = {}
def GenList(self):
self._MyList = []
start_x = 0
start_y = 0
last_height = 0
skins = [["../skin/default","Default"]]
files_path = glob.glob("/home/cpi/skins/*")
for i ,v in enumerate(files_path):
if os.path.isdir(v):
bname = os.path.basename(v)
print(v,bname)
skins.append([v,bname])
for i,u in enumerate( skins ):
#print(i,u)
li = PageListItem()
li._Parent = self
li._PosX = start_x
li._PosY = start_y + last_height
li._Width = Width
li._Fonts["normal"] = self._ListFont
li._Active = False
li._Value = u[0]
li.Init( u[1] )
last_height += li._Height
self._MyList.append(li)
def Init(self):
if self._Screen != None:
if self._Screen._CanvasHWND != None and self._CanvasHWND == None:
self._HWND = self._Screen._CanvasHWND
self._CanvasHWND = pygame.Surface( (self._Screen._Width,self._BGheight) )
self._PosX = self._Index*self._Screen._Width
self._Width = self._Screen._Width ## equal to screen width
self._Height = self._Screen._Height
done = IconItem()
done._ImgSurf = MyIconPool.GiveIconSurface("done")
done._MyType = ICON_TYPES["STAT"]
done._Parent = self
self._Icons["done"] = done
ps = ListPageSelector()
ps._Parent = self
self._Ps = ps
self._PsIndex = 0
self.GenList()
self._Scroller = ListScroller()
self._Scroller._Parent = self
self._Scroller._PosX = self._Width - 10
self._Scroller._PosY = 2
self._Scroller.Init()
self._Scroller.SetCanvasHWND(self._HWND)
def Click(self):
if len(self._MyList) == 0:
return
cur_li = self._MyList[self._PsIndex]
if cur_li._Active == True:
return
print(cur_li._Value)
for i in self._MyList:
i._Active = False
cur_li._Active = True
self._Screen._MsgBox.SetText("Applying")
self._Screen._MsgBox.Draw()
self._Screen.SwapAndShow()
if "../skin/default" in cur_li._Value:
os.system("rm %s/.gameshell_skin" % os.path.expanduser('~') )
else:
os.system("echo %s > %s/.gameshell_skin" % (cur_li._Value,os.path.expanduser('~') ))
pygame.time.delay(700)
pygame.event.post( pygame.event.Event(RESTARTUI, message=""))
def OnLoadCb(self):
self._Scrolled = 0
self._PosY = 0
self._DrawOnce = False
for i in self._MyList:
i._Active = False
for i in self._MyList:
if config.SKIN in i._Value:
i._Active = True
def OnReturnBackCb(self):
pass
"""
self.ReturnToUpLevelPage()
self._Screen.Draw()
self._Screen.SwapAndShow()
"""
def KeyDown(self,event):
if IsKeyMenuOrB(event.key):
self.ReturnToUpLevelPage()
self._Screen.Draw()
self._Screen.SwapAndShow()
if IsKeyStartOrA(event.key):
self.Click()
if event.key == CurKeys["Up"]:
self.ScrollUp()
self._Screen.Draw()
self._Screen.SwapAndShow()
if event.key == CurKeys["Down"]:
self.ScrollDown()
self._Screen.Draw()
self._Screen.SwapAndShow()
if event.key == CurKeys["X"]:
self.GenList()
for i in self._MyList:
i._Active = False
for i in self._MyList:
if config.SKIN in i._Value:
i._Active = True
self._Screen.Draw()
self._Screen.SwapAndShow()
def Draw(self):
self.ClearCanvas()
if len(self._MyList) == 0:
return
else:
if len(self._MyList) * PageListItem._Height > self._Height:
self._Ps._Width = self._Width - 11
self._Ps.Draw()
for i in self._MyList:
if i._PosY > self._Height + self._Height/2:
break
if i._PosY < 0:
continue
i.Draw()
self._Scroller.UpdateSize( len(self._MyList)*PageListItem._Height, self._PsIndex*PageListItem._Height)
self._Scroller.Draw()
else:
self._Ps._Width = self._Width
self._Ps.Draw()
for i in self._MyList:
if i._PosY > self._Height + self._Height/2:
break
if i._PosY < 0:
continue
i.Draw()
if self._HWND != None:
self._HWND.fill(MySkinManager.GiveColor("White"))
self._HWND.blit(self._CanvasHWND,(self._PosX,self._PosY,self._Width, self._Height ) )
class APIOBJ(object):
_Page = None
def __init__(self):
pass
def Init(self,main_screen):
self._Page = SkinsPage()
self._Page._Screen = main_screen
self._Page._Name ="Skin selection"
self._Page.Init()
def API(self,main_screen):
if main_screen !=None:
main_screen.PushPage(self._Page)
main_screen.Draw()
main_screen.SwapAndShow()
OBJ = APIOBJ()
def Init(main_screen):
OBJ.Init(main_screen)
def API(main_screen):
OBJ.API(main_screen)
@@ -7,7 +7,7 @@ import myvars
def InitSoundPage(main_screen):
myvars.SoundPage = SoundPage()
myvars.SoundPage._Screen = main_screen
myvars.SoundPage._Name = "Sound volume"
myvars.SoundPage._Name = "Sound Volume"
myvars.SoundPage.Init()
@@ -15,19 +15,25 @@ from UI.util_funcs import midRect
from UI.keys_def import CurKeys, IsKeyMenuOrB
from UI.slider import Slider
from UI.multi_icon_item import MultiIconItem
from UI.skin_manager import MySkinManager
from UI.icon_pool import MyIconPool
from libs.roundrects import aa_round_rect
import myvars
class SoundSlider(Slider):
OnChangeCB = None
_BGpng = None
_BGwidth = 192
_BGheight = 173
_NeedleSurf = None
_Scale = None
_Parent = None
_VolumeLabel =None
snd_segs = [ [0,20],[21,40],[41,50],[51,60],[61,70],[71,85],[86,90],[91,95],[96,100] ]
def __init__(self):
Slider.__init__(self)
@@ -36,67 +42,64 @@ class SoundSlider(Slider):
self._Width = self._Parent._Width
self._Height = self._Parent._Height
self._VolumeLabel = Label()
self._VolumeLabel.SetCanvasHWND(self._CanvasHWND)
self._VolumeLabel.Init("VOLUME",MySkinManager.GiveFont("EurostileBold13"))
self._VolumeLabel.SetColor(MySkinManager.GiveColor('Text'))
self._BGpng = IconItem()
self._BGpng._ImgSurf = MyIconPool.GiveIconSurface("vol")
self._BGpng._MyType = ICON_TYPES["STAT"]
self._BGpng._Parent = self
self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
##self._NeedleSurf = pygame.Surface( (38,12),pygame.SRCALPHA )
self._Scale = MultiIconItem()
self._Scale._MyType = ICON_TYPES["STAT"]
self._Scale._Parent = self
self._Scale._ImgSurf = MyIconPool.GiveIconSurface("scale")
self._Scale._IconWidth = 82
self._Scale._IconHeight = 63
self._Scale.Adjust(0,0,82,63,0)
def SetValue(self,vol):#pct 0-100
if vol >= 0 and vol <= 100:
self._Value = vol
for i,v in enumerate(self.snd_segs):
if vol >= v[0] and vol <= v[1]:
self._Value = i # self._Value : 0 - 8
break
def Further(self):
self._Value+=5
self._Value+=1
if self._Value > 100:
self._Value = 100
if self._Value > len(self.snd_segs)-1:
self._Value = len(self.snd_segs) -1
vol = self.snd_segs[self._Value][0] + (self.snd_segs[self._Value][1] - self.snd_segs[self._Value][0])/2
if self.OnChangeCB != None:
if callable(self.OnChangeCB):
self.OnChangeCB( self._Value )
self.OnChangeCB( vol )
def StepBack(self):
self._Value-=5
self._Value-=1
if self._Value < 0:
self._Value = 0
vol = self.snd_segs[self._Value][0] + (self.snd_segs[self._Value][1] - self.snd_segs[self._Value][0])/2
if self.OnChangeCB != None:
if callable(self.OnChangeCB):
self.OnChangeCB( self._Value )
self.OnChangeCB( vol )
def Draw(self):
start_x = 82
start_y = self._Parent._Screen._Height/2-5
height = 30
width = 4
seg = self._Value / 5
self._BGpng.NewCoord(self._Width/2,self._Height/2 )
self._BGpng.Draw()
for i in range(0, 20):
rect = pygame.Rect(start_x+i*(width*2),start_y,width,height)
if i > seg:
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),rect, 1)
#aa_round_rect(self._CanvasHWND,rect, MySkinManager.GiveColor('Text'),1,1, MySkinManager.GiveColor('White'))
else:
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),rect, 0)
#aa_round_rect(self._CanvasHWND,rect, MySkinManager.GiveColor('Text'),1,0, MySkinManager.GiveColor('White'))
self._Scale.NewCoord(self._Width/2,self._Height/2)
self._Scale._IconIndex = self._Value
self._VolumeLabel.NewCoord(118,self._Parent._Screen._Height/2-30)
self._VolumeLabel.Draw(True)
self._Scale.Draw()
minus_box_rect = pygame.Rect(start_x- (4+6)*4,start_y,6*4,30)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),minus_box_rect, 0)
minus_rect = pygame.Rect(start_x-8*4,start_y+14,2*4,2)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),minus_rect, 0)
plus_box_rect = pygame.Rect(start_x + 39*4 +4*4,start_y,6*4,30)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),plus_box_rect, 0)
cross1_rect = pygame.Rect(start_x+39*4+4*4+2*4,start_y+14,2*4,2)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),cross1_rect, 0)
cross2_rect = pygame.Rect(start_x+39*4+4*4+2*4+3,start_y+14-3,2,2*4)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),cross2_rect, 0)
class SoundPage(Page):
@@ -13,6 +13,8 @@ from UI.icon_pool import MyIconPool
from UI.label import Label
from UI.util_funcs import midRect
from libs.roundrects import aa_round_rect
class StoragePage(Page):
_Icons = {}
@@ -22,10 +24,10 @@ class StoragePage(Page):
_BGlabel = None
_FreeLabel = None
_GBmsg = "%.1fGB of %.1fGB Used"
_BGmsg = "%.1fGB of %.1fGB Used"
_DskUsg = None
_TextColor = MySkinManager.GiveColor('Text')
_HighColor = MySkinManager.GiveColor('High')
_FootMsg = ["Nav.","","","Back",""]
def __init__(self):
@@ -51,24 +53,27 @@ class StoragePage(Page):
self._Width = self._Screen._Width
self._Height = self._Screen._Height
self._GBLabel = Label()
self._GBLabel.SetCanvasHWND(self._CanvasHWND)
self._GBLabel.Init(self._GBmsg % (self._DskUsg[1]-self._DskUsg[0], self._DskUsg[1]),MySkinManager.GiveFont("varela11") )
self._GBLabel.SetColor(self._TextColor)
self._BGpng = IconItem()
self._BGpng._ImgSurf = MyIconPool.GiveIconSurface("icon_sd")
self._BGpng._MyType = ICON_TYPES["STAT"]
self._BGpng._Parent = self
self._PctLabel = Label()
self._PctLabel.SetCanvasHWND(self._CanvasHWND)
self._BGpng.AddLabel(self._BGmsg % (self._DskUsg[1]-self._DskUsg[0], self._DskUsg[1]), MySkinManager.GiveFont("varela15"))
self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
self._BGlabel = Label()
self._BGlabel.SetCanvasHWND(self._CanvasHWND)
usage_percent = (self._DskUsg[0]/self._DskUsg[1] )*100.0
self._PctLabel.Init("%d%%"% int(usage_percent),MySkinManager.GiveFont("EurostileBold30"))
self._PctLabel.SetColor( self._TextColor )
self._BGlabel.Init("%d%%"% int(usage_percent),MySkinManager.GiveFont("varela25"))
self._BGlabel.SetColor( self._HighColor )
self._FreeLabel = Label()
self._FreeLabel.SetCanvasHWND(self._CanvasHWND)
self._FreeLabel.Init("FREE",MySkinManager.GiveFont("varela12"))
self._FreeLabel.SetColor(self._PctLabel._Color)
self._FreeLabel.Init("Free",MySkinManager.GiveFont("varela13"))
self._FreeLabel.SetColor(self._BGlabel._Color)
def OnLoadCb(self):
@@ -77,43 +82,31 @@ class StoragePage(Page):
def Draw(self):
self.ClearCanvas()
self._PctLabel.NewCoord(32,102- 33)
self._PctLabel.Draw()
self._BGpng.NewCoord(self._Width/2,self._Height/2-10)
self._BGpng.Draw()
self._BGlabel.NewCoord(self._Width/2-28,self._Height/2-30)
self._BGlabel.Draw()
self._FreeLabel.NewCoord(33 ,130-25)
self._FreeLabel.NewCoord(self._BGlabel._PosX+10 ,self._Height/2)
self._FreeLabel.Draw()
self._GBLabel.NewCoord(145,103-29)
self._GBLabel.Draw()
#bgcolor = (238,238,238), fgcolor = (126,206,244)
#aa_round_rect
usage_percent = (self._DskUsg[0]/self._DskUsg[1] )
if usage_percent < 0.1:
usage_percent = 0.1
rect_ = pygame.Rect(144,118-25, 283-144,139-117)
rect_ = midRect(self._Width/2,self._Height-30,170,17, Width,Height)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'), rect_, 1)
aa_round_rect(self._CanvasHWND, rect_, MySkinManager.GiveColor('Line'), 5, 0, MySkinManager.GiveColor('Line'))
rect2 = pygame.Rect(144,118-25,int((283-144)*(1.0-usage_percent)),139-117)
rect2 = midRect(self._Width/2,self._Height-30,int(170*(1.0-usage_percent)),17, Width,Height)
rect2.left = rect_.left
rect2.top = rect_.top
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),rect2, 0)
sep_rect = pygame.Rect(129,99-25,2,42)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Inactive'),sep_rect, 0)
##4 cross
self.DrawCross(10,10)
self.DrawCross(self._Screen._Width-20,10)
self.DrawCross(10,self._Screen._Height-20)
self.DrawCross(self._Screen._Width-20,self._Screen._Height-20)
aa_round_rect(self._CanvasHWND,rect2, MySkinManager.GiveColor('Front'),5,0,MySkinManager.GiveColor('Front'))
class APIOBJ(object):
@@ -50,7 +50,7 @@ class TimeLibStack:
return len(self.stack)
class ListPageSelector(PageSelector):
_BackgroundColor = MySkinManager.GiveColor('Line')
_BackgroundColor = MySkinManager.GiveColor('Front')
def __init__(self):
self._PosX = 0
@@ -73,9 +73,9 @@ class ListPageSelector(PageSelector):
self._PosY = y
self._Height = h
#aa_round_rect(self._Parent._CanvasHWND,
# (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
pygame.draw.rect(self._Parent._CanvasHWND,self._BackgroundColor,(x,y,self._Width-4,h),0)
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
class TimezoneListPage(Page):
@@ -176,7 +176,7 @@ class TimezoneListPage(Page):
self.SyncList("/usr/share/zoneinfo/posix")
icon_for_list = MultiIconItem()
icon_for_list._ImgSurf = MyIconPool._Icons["sys"]
icon_for_list._ImgSurf = MyIconPool.GiveIconSurface("sys")
icon_for_list._MyType = ICON_TYPES["STAT"]
icon_for_list._Parent = self
@@ -185,7 +185,7 @@ class TimezoneListPage(Page):
self._BGpng = IconItem()
self._BGpng._ImgSurf = MyIconPool._Icons["empty"]
self._BGpng._ImgSurf = MyIconPool.GiveIconSurface("empty")
self._BGpng._MyType = ICON_TYPES["STAT"]
self._BGpng._Parent = self
self._BGpng.AddLabel("No timezones found on system!", MyLangManager.TrFont("varela22"))
@@ -314,7 +314,7 @@ class APIOBJ(object):
self._UpdatePage = UpdatePage()
self._UpdatePage._Screen = main_screen
self._UpdatePage._Name = "Update"
self._UpdatePage._Name = "Update Launcher"
self._UpdatePage.Init()
def API(self,main_screen):
@@ -10,7 +10,7 @@ from wicd import misc
from UI.constants import Width,Height
from UI.page import Page,PageSelector
from UI.label import Label
from UI.util_funcs import midRect,SwapAndShow
from UI.util_funcs import midRect,SwapAndShow,FileExists,ReadTheFileContent
from UI.keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB
from UI.scroller import ListScroller
from UI.confirm_page import ConfirmPage
@@ -82,7 +82,11 @@ class WifiInfoPage(Page):
self._AList["ip"]["value"] = ip
self._AList["bssid"]["value"] = self._Wireless.GetWirelessProperty(self._NetworkId,"bssid")
if FileExists("/sys/class/net/wlan0/address"):
self._AList["mac_addr"]["value"] = ReadTheFileContent("/sys/class/net/wlan0/address").strip().upper()
else:
self._AList["mac_addr"]["value"] = ""
start_x = 0
start_y = 0
@@ -130,10 +134,16 @@ class WifiInfoPage(Page):
bssid["key"] = "bssid"
bssid["label"] = "BSSID"
bssid["value"] = ""
mac_addr = {}
mac_addr["key"] = "mac_addr"
mac_addr["label"] = "MAC ADDR"
mac_addr["value"] = ""
self._AList["ip"] = ip
self._AList["bssid"] = bssid
self._AList["mac_addr"] = mac_addr
self.GenList()
self._DisconnectConfirmPage = WifiDisconnectConfirmPage()
@@ -202,7 +212,7 @@ class WifiInfoPage(Page):
class WifiListSelector(PageSelector):
_BackgroundColor = MySkinManager.GiveColor('Line')
_BackgroundColor = MySkinManager.GiveColor('Front')
def __init__(self):
pass
@@ -221,8 +231,9 @@ class WifiListSelector(PageSelector):
self._PosX = x
self._PosY = y
self._Height = h
pygame.draw.rect(self._Parent._CanvasHWND,self._BackgroundColor,(x,y,self._Width,h),0)
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width,h),self._BackgroundColor,4,0,self._BackgroundColor)
class WifiListMessageBox(Label):
@@ -237,7 +248,7 @@ class WifiListMessageBox(Label):
padding = 10
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),(x-padding,y-padding, w+padding*2,h+padding*2))
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),(x-padding,y-padding, w+padding*2,h+padding*2),1)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Black'),(x-padding,y-padding, w+padding*2,h+padding*2),1)
self._CanvasHWND.blit(my_text,(x,y,w,h))
@@ -8,8 +8,6 @@ import pygame
from UI.page import Page
from UI.label import Label
from UI.lang_manager import MyLangManager
from UI.skin_manager import MySkinManager
# a item for List
# - - - - - - - - - - - --
# | Icon Text..... > |
@@ -52,6 +50,6 @@ class ListItem(object):
self._Labels["Text"]._PosY = self._PosY + (self._Height - self._Labels["Text"]._Height)/2
self._Labels["Text"].Draw()
pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1)
pygame.draw.line(self._Parent._CanvasHWND,(169,169,169),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1)
@@ -49,7 +49,7 @@ class ListPage(Page):
ps._PosX = 2
self._Ps = ps
self._PsIndex = 0
# "" pkgname, label
alist = [["","Airplane","Airplane Mode"],
["","PowerOptions","Power Options"],
@@ -61,14 +61,15 @@ class ListPage(Page):
["","Time","Timezone"],
["","Languages","Languages"],
["","Notification","Notification"],
["","Update", ""],
["","Update", "Update Launcher"],
["","Cores", "Retroarch cores manager"],
["","About", "About"],
["","PowerOFF","Power OFF"],
["","ButtonsLayout","Buttons Layout"],
#["","LauncherGo","Switch to LauncherGo"],
["","Skins","Theme Manager"],
["","LauncherGo","Switch to LauncherGo"],
["","Lima","GPU Driver Switch"],
["","GateWay","Network Gateway Switch"]]
["","GateWay","Network gateway switch"]]
start_x = 0
start_y = 0
File diff suppressed because it is too large Load Diff
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
retroarch
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
retroarch -L /home/cpi/apps/emulators/nxengine_libretro.so /home/cpi/games/nxengine/cavestory/data
+6
View File
@@ -0,0 +1,6 @@
ROM=/home/cpi/games/ChocoDM
ROM_SO=
EXT=wad
LAUNCHER=chocolate-doom -iwad
TITLE=ChocoDM
SO_URL=
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
cd /home/cpi/games/PICO-8/pico-8 || exit
SDL_VIDEODRIVER=x11 DISPLAY=:0 ./pico8_dyn -splore -draw_rect 32,0,256,240
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
mkdir ~/.lexaloffle
cp -rf pico-8 ~/.lexaloffle
mkdir ~/.lexaloffle/pico-8/carts
ln -s ~/.lexaloffle/pico-8/carts/ ~/games/PICO-8/carts
touch .done
+19
View File
@@ -0,0 +1,19 @@
{
"GameDir": "/home/cpi/games/PICO-8/",
"InstallDir": "pico-8",
"NotFoundMsg": [
"Please purchase the PICO-8 \n|None|varela16",
"and copy it to the \"~/games/PICO-8\"|None|varela16"
],
"MD5": {
"pico-8_0.2.2_raspi.zip": "e2dba152bf507d337459e9316061411d",
"pico-8_0.1.11g_raspi.zip": "a3f2995cf117499f880bd964d6a0e1f2",
"pico-8_0.1.11g_amd64.zip": "6726141c784afd4a41be6b7414c1b932",
"pico-8_0.1.12_raspi.zip": "08eda95570e63089a2b9f5531503431e",
"pico-8_0.1.12c_raspi.zip": "1a62b0d7d4e4be65f89f23ec9757cb66",
"pico-8_0.1.12c2_raspi.zip": "7a878795472fa39304e9a10128c1f712",
"pico-8_0.2.0e_raspi.zip": "085edfecd111c2b195b878b2197afe7a",
"pico-8.zip": "whatever it takes"
},
"Post-Up": "bash Post-Up.sh"
}
@@ -0,0 +1,99 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Configuration for pico-8
//
// config.txt is read on startup and saved on exit.
// To generate the default config.txt, delete this file.
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// :: Video Settings
window_size 0 0 // window width, height
screen_size 0 0 // screen width, height (stretched to window)
show_fps 0 // Draw frames per second in the corner
// :: Window Settings
windowed 0 // 1 to start up in windowed mode
window_position -1 -1 // x and y position of window, or -1, -1 to let the window manager decide
frameless 0 // 1 to use a window with no frame
fullscreen_method 0 // 0 maximized window (linux) 1 borderless desktop-sized window 2 fullscreen
// :: System Settings
foreground_sleep_ms 1 // number of milliseconds to sleep each frame. Try 10 to conserve battery power
background_sleep_ms 20 // number of milliseconds to sleep each frame when running in the background
sessions 4 // number of times program has been run
// (scancode) hold this key down and left-click to simulate right-click
rmb_key 0 // 0 for none 226 for LALT
// 0:off 1: ignore SDL_TEXTINPUT and use SDL_GetKeyboardState instead (mapped to a US layout)
emulate_textinput 1
// Desktop for saving screenshots etc. Defaults to $HOME/Desktop
desktop_path
// :: Audio Settings
sound_volume 256 // 0..256
music_volume 256 // 0..256
mix_buffer_size 1024 // usually 1024. Try 2048 if you get choppy sound
// ::
version 0.1.11g
// Location of pico-8's root folder
root_path /home/cpi/.lexaloffle/pico-8/carts/
// Location of cartridge save data
cdata_path /home/cpi/.lexaloffle/pico-8/cdata/
// Specify which player index joystick control begins at (0..7)
joystick_index 0
// Custom keyboard scancodes for buttons. player0 0..6, player1 0..5
button_keys 0 0 0 0 13 14 0 0 0 0 0 0 0
// Play notes as they are plotted in frequency mode
live_notes 0
// iff 1: when using keyboard cursor, snap to closest pixel / map cel
cursor_snap 0
// maximum length of gif in seconds (1..120, default 8)
gif_len 8
// 0 classic 1 dark blue background in code editor
gui_theme 0
// scale of screenshots and gifs // 2 means 256x256
screenshot_scale 3
gif_scale 2
// when 1 can enter glyphs using shift-A..Z
shift_glyphs 1
// 0 for off. 1 to notify whenever unsaved changes are backed up
show_backup_messages 1
// 0 for off. 1 to allow control of a cart's framerate due to host machine's cpu capacity (recommended)
host_framerate_control 1
// filter splore content
// 0 for no filter (18+) 1 medium (13+) 2 maximum (kid-friendly)
content_filter 1
+90
View File
@@ -0,0 +1,90 @@
codo_init
platform: Linux
Found config.txt
01 window_size 0 0 // window width, height
02 screen_size 0 0 // screen width, height (stretched to window)
03 show_fps 0 // Draw frames per second in the corner
04 windowed 0 // 1 to start up in windowed mode
05 window_position -1 -1 // x and y position of window, or -1, -1 to let the window manager decide
new window position: -1, -1
06 frameless 0 // 1 to use a window with no frame
07 fullscreen_method 1 // 0 maximized window (linux) 1 borderless desktop-sized window 2 fullscreen
08 foreground_sleep_ms 1 // number of milliseconds to sleep each frame. Try 10 to conserve battery power
09 background_sleep_ms 20 // number of milliseconds to sleep each frame when running in the background
10 sessions 3 // number of times program has been run
11 rmb_key 0 // 0 for none 226 for LALT
12 emulate_textinput 1
13 desktop_path
14 sound_volume 256 // 0..256
15 music_volume 256 // 0..256
16 mix_buffer_size 1024 // usually 1024. Try 2048 if you get choppy sound
17 version 0.1.11g
18 root_path /home/cpi/.lexaloffle/pico-8/carts/
19 cdata_path /home/cpi/.lexaloffle/pico-8/cdata/
20 joystick_index 0
21 button_keys 0 0 0 0 0 0 0 0 0 0 0 0 0
22 live_notes 0
23 cursor_snap 0
24 gif_len 8
25 gui_theme 0
26 screenshot_scale 3
27 gif_scale 2
28 shift_glyphs 1
29 show_backup_messages 1
30 host_framerate_control 1
31 content_filter 1
codo_system_init
Compiled against SDL version: 2.0.7
Linked against SDL version: 2.0.5
Built-in video drivers: 0 x11 1 wayland 2 dummy
Current video driver: x11
Built-in render drivers:
Renderer opengl:
Flags: 0x0000000E ( | | )
Texture formats (1): ARGB8888
Renderer opengles2:
Flags: 0x0000000E ( | | )
Texture formats (4): ARGB8888, ABGR8888, RGB888, BGR888
Renderer software:
Flags: 0x00000009 ( | )
Texture formats (8): ARGB8888, ABGR8888, RGBA8888, BGRA8888, RGB888, BGR888, RGB565, RGB555
codo_reset_timer
codo_gui_init
codo_keys_init
codo_text_init
codo_video_init
codo_mouse_init
codo_joystick_init
Reading controller mappings: /home/cpi/.lexaloffle/pico-8/sdl_controllers.txt
searching for joysticks
found 0 joysticks
ok
ok
codo_load_pod: /home/cpi/apps/Menu/50_PICO-8/pico8.dat ok
codo_set_screen 128 128 8 100
set pixel_perfect 1
window size: 640 480
codo_plat_pi: forcing fullscreen mode
Current renderer:
Renderer opengl:
Flags: 0x0000000A ( | )
Texture formats (5): ARGB8888, YV12, IYUV, 0x3231564e, 0x3132564e
Max Texture Size: 8192x8192
codo_sound_init mix_buffer_size: 1024
codo_sound_init
SDL_INIT_AUDIO ok
SDL_OpenAudio ok
Built-in audio drivers: 0 pulseaudio 1 alsa 2 sndio 3 dsp 4 disk 5 dummy
Current audio driver: alsa
codo_exit
cmusic_stop
codo_main_exit
codo_config_save
codo_sound_exit
codo_video_exit
codo_joystick_exit
codo_system_exit
codo_items_created: 1023
ok
@@ -0,0 +1 @@
// add SDL2 game controller mappings to this file
@@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
import os
import pygame
#import math
#mport subprocess
import platform
#from beeprint import pp
from libs.roundrects import aa_round_rect
## local UI import
from UI.lang_manager import MyLangManager
class APIOBJ(object):
_Page = None
def __init__(self):
pass
def Init(self,main_screen):
pass
def API(self,main_screen):
if main_screen !=None:
main_screen._MsgBox.SetText("Rebooting to LauncherGo")
main_screen._MsgBox.Draw()
main_screen.SwapAndShow()
pygame.time.delay(300)
if "arm" in platform.machine():
os.system("sed -i s/launcher/launchergo/g ~/.bashrc" )
os.system("sudo reboot")
OBJ = APIOBJ()
def Init(main_screen):
OBJ.Init(main_screen)
def API(main_screen):
OBJ.API(main_screen)
@@ -136,26 +136,26 @@ class MPDSpectrumPage(Page):
"""
self._BGpng = IconItem()
self._BGpng._ImgSurf = MyIconPool._Icons["sheep_bg"]
self._BGpng._ImgSurf = MyIconPool.GiveIconSurface("sheep_bg")
self._BGpng._MyType = ICON_TYPES["STAT"]
self._BGpng._Parent = self
self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
self._SheepHead = IconItem()
self._SheepHead._ImgSurf = MyIconPool._Icons["sheep_head"]
self._SheepHead._ImgSurf = MyIconPool.GiveIconSurface("sheep_head")
self._SheepHead._MyType = ICON_TYPES["STAT"]
self._SheepHead._Parent = self
self._SheepHead.Adjust(0,0,self._SheepHeadW,self._SheepHeadH,0)
self._SheepBody = IconItem()
self._SheepBody._ImgSurf = MyIconPool._Icons["sheep_body"]
self._SheepBody._ImgSurf = MyIconPool.GiveIconSurface("sheep_body")
self._SheepBody._MyType = ICON_TYPES["STAT"]
self._SheepBody._Parent = self
self._SheepBody.Adjust(0,0,self._SheepBodyW,self._SheepBodyH,0)
"""
self._cwp_png = IconItem()
self._cwp_png._ImgSurf = MyIconPool._Icons["tape"]
self._cwp_png._ImgSurf = MyIconPool.GiveIconSurface("tape")
self._cwp_png._MyType = ICON_TYPES["STAT"]
self._cwp_png._Parent = self
self._cwp_png.Adjust(0,0,79,79,0)
@@ -163,22 +163,22 @@ class MPDSpectrumPage(Page):
self._song_title = Label()
self._song_title.SetCanvasHWND(self._RollCanvas)
self._song_title.Init("Untitled",self._SongFont,MySkinManager.GiveColor('Text'))
self._song_title.Init("Untitled",self._SongFont,MySkinManager.GiveColor('White'))
self._title = Label()
self._title.SetCanvasHWND(self._CanvasHWND)
self._title.Init("Title:",self._ListFont,MySkinManager.GiveColor('Text'))
self._title.Init("Title:",self._ListFont,MySkinManager.GiveColor('White'))
self._time = Label()
self._time.SetCanvasHWND(self._CanvasHWND)
self._time.Init("Time:",self._ListFont,MySkinManager.GiveColor('Text'))
self._time.Init("Time:",self._ListFont,MySkinManager.GiveColor('White'))
self._time2 = Label()
self._time2.SetCanvasHWND(self._CanvasHWND)
self._time2.Init("00:00-00:00", self._ListFont,
MySkinManager.GiveColor('Text'))
MySkinManager.GiveColor('White'))
self.Start()
@@ -336,7 +336,7 @@ class MPDSpectrumPage(Page):
if self._RollCanvas != None:
# self._RollCanvas.fill((111,22,33))
self._RollCanvas.fill(MySkinManager.GiveColor('White'))
self._RollCanvas.fill(MySkinManager.GiveColor('Black'))
if self._song_title._Width > self._RollW:
if (self._song_title._PosX + self._song_title._Width) > self._RollW and self._frames % 30 == 0:
self._song_title._PosX -= 1
@@ -410,9 +410,9 @@ class MPDSpectrumPage(Page):
else:
self._capYPositionArray[i] = value
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),(i*(bw+gap)+margin_left,self._Height-gap-self._capYPositionArray[i]-margin_bottom,bw,gap),0)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),(i*(bw+gap)+margin_left,self._Height-gap-self._capYPositionArray[i]-margin_bottom,bw,gap),0)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),(i*(bw+gap)+margin_left,self._Height-value-gap-margin_bottom,bw,value+gap),0)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),(i*(bw+gap)+margin_left,self._Height-value-gap-margin_bottom,bw,value+gap),0)
self._vis_values[i] -= 2
@@ -2,7 +2,7 @@
import os
import pygame
#from libs.roundrects import aa_round_rect
from libs.roundrects import aa_round_rect
## local UI import
from UI.constants import Width,Height,ICON_TYPES
@@ -49,7 +49,7 @@ class MusicLibStack:
return len(self.stack)
class ListPageSelector(PageSelector):
_BackgroundColor = MySkinManager.GiveColor('Line')
_BackgroundColor = MySkinManager.GiveColor('Front')
def __init__(self):
self._PosX = 0
@@ -72,9 +72,9 @@ class ListPageSelector(PageSelector):
self._PosY = y
self._Height = h
#aa_round_rect(self._Parent._CanvasHWND,
# (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
pygame.draw.rect(self._Parent._CanvasHWND,self._BackgroundColor,(x,y,self._Width-4,h),0)
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
class MusicLibListPage(Page):
@@ -172,7 +172,7 @@ class MusicLibListPage(Page):
self.SyncList("/")
icon_for_list = MultiIconItem()
icon_for_list._ImgSurf = MyIconPool._Icons["sys"]
icon_for_list._ImgSurf = MyIconPool.GiveIconSurface("sys")
icon_for_list._MyType = ICON_TYPES["STAT"]
icon_for_list._Parent = self
@@ -181,11 +181,11 @@ class MusicLibListPage(Page):
self._BGpng = IconItem()
self._BGpng._ImgSurf = MyIconPool._Icons["empty"]
self._BGpng._ImgSurf = MyIconPool.GiveIconSurface("empty")
self._BGpng._MyType = ICON_TYPES["STAT"]
self._BGpng._Parent = self
self._BGpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"), MyLangManager.TrFont("varela18"))
self._BGpng.SetLableColor(MySkinManager.GiveColor('Text'))
self._BGpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"), MyLangManager.TrFont("varela22"))
self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled'))
self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
@@ -196,6 +196,7 @@ class MusicLibListPage(Page):
self._Scroller.Init()
def Click(self):
self.RefreshPsIndex()
if len(self._MyList) == 0:
return
@@ -3,7 +3,7 @@ import os
import pygame
import gobject
#from libs.roundrects import aa_round_rect
from libs.roundrects import aa_round_rect
## local UI import
from UI.constants import Width,Height,ICON_TYPES
@@ -23,7 +23,7 @@ from list_item import ListItem
import myvars
class ListPageSelector(PageSelector):
_BackgroundColor = MySkinManager.GiveColor('Line')
_BackgroundColor = MySkinManager.GiveColor('Front')
def __init__(self):
self._PosX = 0
@@ -51,9 +51,9 @@ class ListPageSelector(PageSelector):
self._PosY = y
self._Height = h
#aa_round_rect(self._Parent._CanvasHWND,
# (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
pygame.draw.rect(self._Parent._CanvasHWND,self._BackgroundColor,(x,y,self._Width-4,h),0)
aa_round_rect(self._Parent._CanvasHWND,
(x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor)
class PlayListPage(Page):
@@ -180,11 +180,11 @@ class PlayListPage(Page):
gobject.timeout_add(850,self.GObjectInterval)
self._BGpng = IconItem()
self._BGpng._ImgSurf = MyIconPool._Icons["heart"]
self._BGpng._ImgSurf = MyIconPool.GiveIconSurface("heart")
self._BGpng._MyType = ICON_TYPES["STAT"]
self._BGpng._Parent = self
self._BGpng.AddLabel(MyLangManager.Tr("my favorite music"), MyLangManager.TrFont("varela18"))
self._BGpng.SetLableColor(MySkinManager.GiveColor('Text'))
self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled'))
self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
self._Scroller = ListScroller()
@@ -235,9 +235,10 @@ class PlayListPage(Page):
self._MyList[i]._PosY += self._Scrolled * self._MyList[i]._Height
def Click(self):
self.RefreshPsIndex()
if len(self._MyList) == 0:
return
cur_li = self._MyList[self._PsIndex]
play_pos_id = myvars.Poller.play(self._PsIndex)
@@ -19,9 +19,8 @@ class TinyCloudPage(Page):
_FootMsg = ["Nav","","","Back",""]
_MyList = []
_ListFontObj = MyLangManager.TrFont("veramono13")
_ListLabelFontObj = MyLangManager.TrFont("varela13")
_ListFontObj = MyLangManager.TrFont("varela13")
_AList = {}
_Labels = {}
@@ -121,23 +120,19 @@ class TinyCloudPage(Page):
hostname = commands.getstatusoutput("hostname")[1]
if hostname == "":
hostname = "clockworkpi"
labels = \
[["forssh","For ssh and scp:",self._ListLabelFontObj,self._TextColor],
[["forssh","For ssh and scp:",self._ListFontObj,self._TextColor],
["ssh_addr","ssh cpi@%s" % self._IP, self._ListFontObj,self._URLColor],
["forwin", "For Windows network:", self._ListLabelFontObj, self._TextColor],
["forwin", "For Windows network:", self._ListFontObj, self._TextColor],
["samba_games", "\\\\%s\games" % self._IP, self._ListFontObj,self._URLColor],
["samba_music", "\\\\%s\music" % self._IP, self._ListFontObj,self._URLColor],
["forID", "ID:", self._ListLabelFontObj, self._TextColor],
["forKey", "Key:", self._ListLabelFontObj, self._TextColor],
["forID", "ID:", self._ListFontObj, self._TextColor],
["forKey", "Key:", self._ListFontObj, self._TextColor],
["key_and_pass", "cpi", self._ListFontObj, self._URLColor],
["for_airplay", "Airplay:", self._ListLabelFontObj, self._TextColor],
["for_airplay", "Airplay:", self._ListFontObj, self._TextColor],
["airplay_name",hostname, self._ListFontObj, self._URLColor],
["for-usb-eth","USB-Ethernet:", self._ListLabelFontObj, self._TextColor],
["for-usb-eth","USB-Ethernet:", self._ListFontObj, self._TextColor],
["usb-eth-addr","192.168.10.1", self._ListFontObj, self._URLColor]]
for i in labels:
@@ -162,25 +157,24 @@ class TinyCloudPage(Page):
self._Height = self._Screen._Height
self._PngSize["bg"] = (253,114)
#self._PngSize["online"] = (75,122)
self._PngSize["online"] = (75,122)
bgpng = IconItem()
bgpng._ImgSurf = MyIconPool._Icons["needwifi_bg"]
bgpng._ImgSurf = MyIconPool.GiveIconSurface("needwifi_bg")
bgpng._MyType = ICON_TYPES["STAT"]
bgpng._Parent = self
bgpng.Adjust(0,0,self._PngSize["bg"][0],self._PngSize["bg"][1],0)
self._Icons["bg"] = bgpng
"""
onlinepng = IconItem()
onlinepng._ImgSurf = MyIconPool._Icons["online"]
onlinepng._ImgSurf = MyIconPool.GiveIconSurface("online")
onlinepng._MyType = ICON_TYPES["STAT"]
onlinepng._Parent = self
onlinepng.Adjust(0,0,self._PngSize["online"][0], self._PngSize["online"][1],0)
self._Icons["online"] = onlinepng
"""
self.SetLabels()
def KeyDown(self,event):
@@ -195,8 +189,8 @@ class TinyCloudPage(Page):
if is_wifi_connected_now():
#self._Icons["online"].NewCoord(self._Coords["online"].x, self._Coords["online"].y)
#self._Icons["online"].Draw()
self._Icons["online"].NewCoord(self._Coords["online"].x, self._Coords["online"].y)
self._Icons["online"].Draw()
self.SetLabels()
@@ -235,7 +229,7 @@ class APIOBJ(object):
def Init(self,main_screen):
self._Page = TinyCloudPage()
self._Page._Screen = main_screen
self._Page._Name ="CONNECT"
self._Page._Name ="Tiny cloud"
self._Page.Init()
def API(self,main_screen):
@@ -7,6 +7,7 @@ from UI.constants import RUNSYS
from UI.keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB
from UI.confirm_page import ConfirmPage
from UI.lang_manager import MyLangManager
from UI.skin_manager import MySkinManager
import config
@@ -49,9 +50,9 @@ class PowerOffConfirmPage(ConfirmPage):
if IsKeyStartOrA(event.key):
if self.CheckBattery() < 20:
cmdpath = "feh --bg-center gameshell/wallpaper/gameover.png;"
cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("gameover.png")
else:
cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;"
cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png")
cmdpath += "sleep 3;"
@@ -61,7 +62,7 @@ class PowerOffConfirmPage(ConfirmPage):
pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))
if event.key == CurKeys["X"]:
cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;"
cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png")
cmdpath += "sleep 3;"
cmdpath += "sudo reboot"
pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))
@@ -76,7 +77,7 @@ class APIOBJ(object):
self._Page = PowerOffConfirmPage()
self._Page._Screen = main_screen
self._Page._Name ="SHUTDOWN"
self._Page._Name ="Power OFF"
self._Page.Init()
+10 -1
View File
@@ -46,7 +46,14 @@ sudo apt-get -y install mpd ncmpcpp git libuser
sudo apt-get -y install python-wicd wicd wicd-curses python-pycurl python-alsaaudio python-pygame python-gobject python-xlib
sudo apt-get -y install python-pip
sudo pip install validators numpy requests python-mpd2
sudo pip install validators numpy requests python-mpd2 beeprint
```
### With pip install and virtualenv
```
mkvirtualenv launcher
pip install -r requirements.txt
```
# Create “.mpd_cpi.conf” config
@@ -83,3 +90,5 @@ audio_output {
filesystem_charset "UTF-8"
```
+18
View File
@@ -0,0 +1,18 @@
max-connection-per-server=5
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
log-level=error
log=/tmp/aria.log
dir=/home/cpi/aria2download
daemon=true
allow-overwrite=true
split=1
max-concurrent-downloads=100
disk-cache=15M
timeout=600
retry-wait=30
max-tries=50
save-session-interval=10
disable-ipv6=true
save-session=/home/cpi/aria2download/aria.session.txt
Executable
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/bash
FIRM=`cat /proc/driver/brcmf_fw`
FIRM=$(cat /proc/driver/brcmf_fw)
if [[ $FIRM =~ .*a0.* ]]
then
+9
View File
@@ -0,0 +1,9 @@
{
"folders":
[
{
"path": ".",
"name": "GameShell launcher"
}
],
}
+2 -13
View File
@@ -1,18 +1,7 @@
#!/bin/bash
BASENAME=`dirname "$0"`
BASENAME=$(dirname "$0")
cd $BASENAME/sys.py
if [ ! -f ~/.apps_menu_updated ]
then
cd ~/apps/Menu && git pull origin gcores
if [ $? -eq 0 ]; then
touch ~/.apps_menu_updated
fi
cd -
fi
cd "$BASENAME"/sys.py || exit
python run.py
+10
View File
@@ -0,0 +1,10 @@
pycurl
pygame
#gobject
xlib
pyalsaaudio
dbus-python
#wicd - not pip installable yet
#beeprint - causes bugs
validators
python-mpd
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Some files were not shown because too many files have changed in this diff Show More