├── .gitignore ├── NetStream-DE ├── NetStream-DE.vcxproj ├── NetStream-DE.vcxproj.filters ├── NetStream-DE.vcxproj.user ├── download_enabler.cpp └── paf_runtime.c ├── NetStream.sln ├── NetStream ├── CONTENTS │ ├── module │ │ ├── download_enabler_netstream.suprx │ │ ├── libBEAVCorePlayer.suprx │ │ ├── libInvidious.suprx │ │ ├── libLootkit.suprx │ │ ├── libSceHttpForBEAVCorePlayer.suprx │ │ ├── libcurl.suprx │ │ ├── libfmodngpext.suprx │ │ ├── libfmodstudio.suprx │ │ └── libhvdb.suprx │ ├── netstream_plugin.rcd │ ├── netstream_plugin.rco │ └── sce_sys │ │ ├── icon0.png │ │ ├── livearea │ │ └── contents │ │ │ ├── gate.png │ │ │ ├── labg.png │ │ │ ├── template.xml │ │ │ └── title-en.png │ │ ├── manual │ │ ├── 001.png │ │ ├── 002.png │ │ ├── 003.png │ │ ├── 004.png │ │ ├── 005.png │ │ └── 006.png │ │ └── pic0.png ├── NetStream.vcxproj ├── NetStream.vcxproj.filters ├── NetStream.vcxproj.user ├── RES_RCO │ ├── file │ │ └── netstream_settings.xml │ ├── locale │ │ ├── netstream_locale_en.xml │ │ ├── netstream_locale_es.xml │ │ ├── netstream_locale_fr.xml │ │ ├── netstream_locale_it.xml │ │ ├── netstream_locale_ja.xml │ │ ├── netstream_locale_pl.xml │ │ ├── netstream_locale_pt-br.xml │ │ ├── netstream_locale_pt.xml │ │ ├── netstream_locale_ru.xml │ │ ├── netstream_locale_zh-s.xml │ │ └── netstream_locale_zh-t.xml │ ├── netstream_plugin.xml │ └── texture │ │ ├── tex_black.dds │ │ ├── tex_button_arrow_left.zlib │ │ ├── tex_button_arrow_right.zlib │ │ ├── tex_button_big_repeat.zlib │ │ ├── tex_button_expand.png │ │ ├── tex_button_pause.zlib │ │ ├── tex_button_play.zlib │ │ ├── tex_common_bg.png │ │ ├── tex_file_icon_folder.png │ │ ├── tex_file_icon_music.zlib │ │ ├── tex_file_icon_playlist.png │ │ ├── tex_file_icon_unsupported.png │ │ ├── tex_file_icon_video.png │ │ ├── tex_fpmenu_icon_ftp.png │ │ ├── tex_fpmenu_icon_http.png │ │ ├── tex_fpmenu_icon_hvdb.png │ │ ├── tex_fpmenu_icon_local.png │ │ ├── tex_fpmenu_icon_youtube.png │ │ ├── tex_vertical_separator.zlib │ │ ├── tex_video_control_panel_status_pause.gim │ │ ├── tex_video_control_panel_status_play.gim │ │ ├── tex_youtube_bg.png │ │ ├── tex_yt_icon_fav_for_player.png │ │ ├── tex_yt_icon_fav_for_player_glow.png │ │ ├── tex_yt_icon_favourite.zlib │ │ ├── tex_yt_icon_history.zlib │ │ ├── tex_yt_icon_live_now.png │ │ └── tex_yt_icon_search.zlib ├── ebootparam.bin ├── gen_headers.bat ├── gen_rco.bat ├── include │ ├── common.h │ ├── debug.h │ ├── dialog.h │ ├── downloader.h │ ├── event.h │ ├── ftp_server_browser.h │ ├── ftpparse.h │ ├── generic_server_browser.h │ ├── http_server_browser.h │ ├── hvdb_utils.h │ ├── local_server_browser.h │ ├── main.h │ ├── menus │ │ ├── menu_first.h │ │ ├── menu_ftp.h │ │ ├── menu_generic.h │ │ ├── menu_http.h │ │ ├── menu_hvdb.h │ │ ├── menu_local.h │ │ ├── menu_player_simple.h │ │ ├── menu_player_youtube.h │ │ ├── menu_server.h │ │ ├── menu_settings.h │ │ └── menu_youtube.h │ ├── netstream_locale.h │ ├── netstream_plugin.h │ ├── netstream_settings.h │ ├── np_utils.h │ ├── option_menu.h │ ├── player_beav.h │ ├── player_fmod.h │ ├── player_generic.h │ ├── tex_pool.h │ ├── tw_utils.h │ ├── utils.h │ └── yt_utils.h ├── libs │ ├── include │ │ ├── fmodngpext.h │ │ ├── hvdb.h │ │ ├── invidious.h │ │ └── lootkit.h │ └── lib │ │ ├── libInvidious_stub.a │ │ ├── libLootkit_stub.a │ │ ├── libfmodngpext_stub.a │ │ └── libhvdb_stub.a ├── package.conf ├── param.sfx └── source │ ├── debug.cpp │ ├── dialog.cpp │ ├── downloader.cpp │ ├── event.cpp │ ├── ftp_server_browser.cpp │ ├── ftpparse.c │ ├── http_server_browser.cpp │ ├── hvdb_utils.cpp │ ├── local_server_browser.cpp │ ├── main.cpp │ ├── menus │ ├── menu_first.cpp │ ├── menu_generic.cpp │ ├── menu_hvdb.cpp │ ├── menu_player_simple.cpp │ ├── menu_player_youtube.cpp │ ├── menu_server.cpp │ ├── menu_settings.cpp │ └── menu_youtube.cpp │ ├── np_utils.cpp │ ├── option_menu.cpp │ ├── paf_runtime.cpp │ ├── player_beav.cpp │ ├── player_fmod.cpp │ ├── tex_pool.cpp │ ├── tw_utils.cpp │ ├── utils.cpp │ └── yt_utils.cpp ├── README.md ├── demo.png ├── logo.PNG ├── loot.bin └── manual.png /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Object files 5 | *.o 6 | *.ko 7 | *.obj 8 | *.elf 9 | 10 | # Linker output 11 | *.ilk 12 | *.map 13 | *.exp 14 | 15 | # Precompiled Headers 16 | *.gch 17 | *.pch 18 | 19 | # Libraries 20 | *.lib 21 | *.la 22 | *.lo 23 | 24 | # Shared objects (inc. Windows DLLs) 25 | *.dll 26 | *.so 27 | *.so.* 28 | *.dylib 29 | 30 | # Executables 31 | *.exe 32 | *.out 33 | *.app 34 | *.i*86 35 | *.x86_64 36 | *.hex 37 | 38 | # Debug files 39 | *.dSYM/ 40 | *.su 41 | *.idb 42 | *.pdb 43 | 44 | # Kernel Module Compile Results 45 | *.mod* 46 | *.cmd 47 | .tmp_versions/ 48 | modules.order 49 | Module.symvers 50 | Mkfile.old 51 | dkms.conf 52 | 53 | # VDS 54 | *.vs 55 | *.rco 56 | *.rcd 57 | *.pptx 58 | eboot.bin 59 | eboot2.bin 60 | param.sfo 61 | param2.sfo 62 | PSVita_Debug 63 | PSVita_Release 64 | RES_RCO_TMP -------------------------------------------------------------------------------- /NetStream-DE/NetStream-DE.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | PSVita 7 | 8 | 9 | Release 10 | PSVita 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | {A6BB4747-BD6A-4DFC-B213-236038A9E766} 19 | 20 | 21 | 22 | DynamicLibrary 23 | 24 | 25 | DynamicLibrary 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | NDEBUG;%(PreprocessorDefinitions); 50 | Level3 51 | NotUsing 52 | $(SCE_PSP2_SDK_DIR)\target\include\vdsuite\user;$(SCE_PSP2_SDK_DIR)\target\include\vdsuite\common;%(AdditionalIncludeDirectories) 53 | Cpp11 54 | 55 | 56 | -lSceLibKernel_stub;-lScePafStdc_stub;-lScePafCommon_stub;-lScePafMisc_stub;-ltaihen_stub;-lsnc;%(AdditionalDependencies) 57 | --no-standard-libraries 58 | $(SCE_PSP2_SDK_DIR)\target\lib\vdsuite;%(AdditionalLibraryDirectories) 59 | 60 | 61 | "$(SCE_PSP2_SDK_DIR)/host_tools/build/bin/vdsuite-pubprx.exe" --strip --compress "$(LocalDebuggerCommand)" "$(OutDir)download_enabler_netstream.suprx" 62 | copy /Y "$(OutDir)download_enabler_netstream.suprx" "$(SolutionDir)NetStream\CONTENTS\module\download_enabler_netstream.suprx" 63 | 64 | 65 | 66 | 67 | _DEBUG;%(PreprocessorDefinitions); 68 | true 69 | NotUsing 70 | $(SCE_PSP2_SDK_DIR)\target\include\vdsuite\user;$(SCE_PSP2_SDK_DIR)\target\include\vdsuite\common;%(AdditionalIncludeDirectories) 71 | Cpp11 72 | 73 | 74 | -lSceLibKernel_stub;-lScePafStdc_stub;-lScePafCommon_stub;-lScePafMisc_stub;-ltaihen_stub;-lsnc;%(AdditionalDependencies) 75 | --no-standard-libraries 76 | $(SCE_PSP2_SDK_DIR)\target\lib\vdsuite;%(AdditionalLibraryDirectories) 77 | 78 | 79 | "$(SCE_PSP2_SDK_DIR)/host_tools/build/bin/vdsuite-pubprx.exe" --strip --compress "$(LocalDebuggerCommand)" "$(OutDir)download_enabler_netstream.suprx" 80 | copy /Y "$(OutDir)download_enabler_netstream.suprx" "$(SolutionDir)NetStream\CONTENTS\module\download_enabler_netstream.suprx" 81 | 82 | 83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /NetStream-DE/NetStream-DE.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cxx;cc;s;asm 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp 11 | 12 | 13 | 14 | 15 | Source Files 16 | 17 | 18 | Source Files 19 | 20 | 21 | -------------------------------------------------------------------------------- /NetStream-DE/NetStream-DE.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetStream-DE/download_enabler.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | VitaTweaks: Download Enabler 3 | Copyright (C) 2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | static tai_hook_ref_t GetFileTypeRef; 24 | static tai_hook_ref_t ExportFileRef; 25 | static SceUID hooks[2]; 26 | 27 | static int ExportFilePatched(uint32_t *data) 28 | { 29 | int res = TAI_NEXT(ExportFilePatched, ExportFileRef, data); 30 | 31 | if (res == 0x80101A09) 32 | { 33 | paf::string download_path; 34 | paf::string bgdl_path; 35 | char file_name[256]; 36 | char short_name[256]; 37 | uint16_t url_length = 0; 38 | uint32_t count = 0; 39 | 40 | uint32_t num = *reinterpret_cast(data[0]); 41 | 42 | bgdl_path = paf::common::FormatString("ux0:bgdl/t/%08x/d0.pdb", num); 43 | 44 | int ret = 0; 45 | paf::common::SharedPtr fd = paf::LocalFile::Open(bgdl_path.c_str(), SCE_O_RDONLY, 0, &ret); 46 | if (ret != SCE_PAF_OK) 47 | { 48 | return ret; 49 | } 50 | 51 | fd->Seek(0xD6, SCE_SEEK_SET); 52 | fd->Read(&url_length, sizeof(uint16_t)); 53 | fd->Seek(0xF7 + url_length, SCE_SEEK_SET); 54 | fd->Read(file_name, sizeof(file_name)); 55 | fd->Close(); 56 | 57 | bgdl_path.clear(); 58 | bgdl_path = paf::common::FormatString("ux0:bgdl/t/%08x/%s", num, file_name); 59 | 60 | char *ext = sce_paf_strrchr(file_name, '.'); 61 | if (ext) 62 | { 63 | int len = ext - file_name; 64 | if (len > sizeof(short_name) - 1) 65 | len = sizeof(short_name) - 1; 66 | sce_paf_strncpy(short_name, file_name, len); 67 | short_name[len] = '\0'; 68 | } 69 | else 70 | { 71 | sce_paf_strncpy(short_name, file_name, sizeof(short_name)); 72 | ext = ""; 73 | } 74 | 75 | while (1) 76 | { 77 | if (count == 0) 78 | { 79 | download_path = paf::common::FormatString("ux0:download/%s", file_name); 80 | } 81 | else 82 | { 83 | download_path = paf::common::FormatString("ux0:download/%s (%d)%s", short_name, count, ext); 84 | } 85 | 86 | if (!paf::LocalFile::Exists(download_path.c_str())) 87 | { 88 | break; 89 | } 90 | 91 | count++; 92 | } 93 | 94 | res = sceIoMkdir("ux0:download", 0006); 95 | if (res < 0 && res != 0x80010011) 96 | { 97 | return res; 98 | } 99 | 100 | return paf::LocalFile::RenameFile(bgdl_path.c_str(), download_path.c_str()); 101 | } 102 | 103 | return res; 104 | } 105 | 106 | static int32_t GetFileTypePatched(int unk, int *type, char **filename, char **mime_type) 107 | { 108 | int res = TAI_NEXT(GetFileTypePatched, GetFileTypeRef, unk, type, filename, mime_type); 109 | 110 | if (!sceClibStrcmp(*mime_type, "video/mp4")) 111 | { 112 | *type = 3; 113 | return 0; 114 | } 115 | if (res == 0x80103A21) 116 | { 117 | *type = 1; 118 | return 0; 119 | } 120 | 121 | return res; 122 | } 123 | 124 | extern "C" { 125 | 126 | #include 127 | 128 | SCE_MODULE_INFO(NetStream_DE, 2, 1, 1) 129 | 130 | int module_start(size_t args, const void * argp) 131 | { 132 | tai_module_info_t info; 133 | info.size = sizeof(info); 134 | if (taiGetModuleInfo("SceShell", &info) >= 0) 135 | { 136 | switch (info.module_nid) 137 | { 138 | case 0x0552F692: // 3.60 retail 139 | { 140 | hooks[0] = taiHookFunctionOffset(&ExportFileRef, info.modid, 0, 0x1163F6, 1, ExportFilePatched); 141 | hooks[1] = taiHookFunctionOffset(&GetFileTypeRef, info.modid, 0, 0x11B5E4, 1, GetFileTypePatched); 142 | break; 143 | } 144 | 145 | case 0x6CB01295: // 3.60 PDEL 146 | { 147 | hooks[0] = taiHookFunctionOffset(&ExportFileRef, info.modid, 0, 0x111D5A, 1, ExportFilePatched); 148 | hooks[1] = taiHookFunctionOffset(&GetFileTypeRef, info.modid, 0, 0x116F48, 1, GetFileTypePatched); 149 | break; 150 | } 151 | 152 | case 0xEAB89D5C: // 3.60 PTEL 153 | { 154 | hooks[0] = taiHookFunctionOffset(&ExportFileRef, info.modid, 0, 0x112756, 1, ExportFilePatched); 155 | hooks[1] = taiHookFunctionOffset(&GetFileTypeRef, info.modid, 0, 0x117944, 1, GetFileTypePatched); 156 | break; 157 | } 158 | 159 | case 0x5549BF1F: // 3.65 retail 160 | case 0x34B4D82E: // 3.67 retail 161 | case 0x12DAC0F3: // 3.68 retail 162 | { 163 | hooks[0] = taiHookFunctionOffset(&ExportFileRef, info.modid, 0, 0x11644E, 1, ExportFilePatched); 164 | hooks[1] = taiHookFunctionOffset(&GetFileTypeRef, info.modid, 0, 0x11B63C, 1, GetFileTypePatched); 165 | break; 166 | } 167 | 168 | case 0x0703C828: // 3.69 retail 169 | case 0x2053B5A5: // 3.70 retail 170 | case 0xF476E785: // 3.71 retail 171 | case 0x939FFBE9: // 3.72 retail 172 | case 0x734D476A: // 3.73 retail 173 | case 0x51CB6207: // 3.74 retail 174 | { 175 | hooks[0] = taiHookFunctionOffset(&ExportFileRef, info.modid, 0, 0x11644E, 1, ExportFilePatched); 176 | hooks[1] = taiHookFunctionOffset(&GetFileTypeRef, info.modid, 0, 0x11B63C, 1, GetFileTypePatched); 177 | break; 178 | } 179 | 180 | case 0xE6A02F2B: // 3.65 PDEL 181 | { 182 | hooks[0] = taiHookFunctionOffset(&ExportFileRef, info.modid, 0, 0x111DB2, 1, ExportFilePatched); 183 | hooks[1] = taiHookFunctionOffset(&GetFileTypeRef, info.modid, 0, 0x116FA0, 1, GetFileTypePatched); 184 | break; 185 | } 186 | 187 | case 0x587F9CED: // 3.65 PTEL 188 | { 189 | hooks[0] = taiHookFunctionOffset(&ExportFileRef, info.modid, 0, 0x1127AE, 1, ExportFilePatched); 190 | hooks[1] = taiHookFunctionOffset(&GetFileTypeRef, info.modid, 0, 0x11799C, 1, GetFileTypePatched); 191 | break; 192 | } 193 | } 194 | } 195 | 196 | return SCE_KERNEL_START_SUCCESS; 197 | } 198 | 199 | int module_stop(size_t args, const void * argp) 200 | { 201 | return SCE_KERNEL_STOP_SUCCESS; 202 | } 203 | } -------------------------------------------------------------------------------- /NetStream-DE/paf_runtime.c: -------------------------------------------------------------------------------- 1 | int _sceLdTlsRegisterModuleInfo() 2 | { 3 | return 0; 4 | } 5 | 6 | int _sceLdTlsUnregisterModuleInfo() 7 | { 8 | return 0; 9 | } 10 | 11 | int __at_quick_exit() 12 | { 13 | return 0; 14 | } -------------------------------------------------------------------------------- /NetStream.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.1525 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetStream", "NetStream\NetStream.vcxproj", "{CA4F859F-6FE6-413C-A24A-44CF552FCE91}" 7 | ProjectSection(ProjectDependencies) = postProject 8 | {A6BB4747-BD6A-4DFC-B213-236038A9E766} = {A6BB4747-BD6A-4DFC-B213-236038A9E766} 9 | EndProjectSection 10 | EndProject 11 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetStream-DE", "NetStream-DE\NetStream-DE.vcxproj", "{A6BB4747-BD6A-4DFC-B213-236038A9E766}" 12 | EndProject 13 | Global 14 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 15 | Debug|PSVita = Debug|PSVita 16 | Release|PSVita = Release|PSVita 17 | EndGlobalSection 18 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 19 | {CA4F859F-6FE6-413C-A24A-44CF552FCE91}.Debug|PSVita.ActiveCfg = Debug|PSVita 20 | {CA4F859F-6FE6-413C-A24A-44CF552FCE91}.Debug|PSVita.Build.0 = Debug|PSVita 21 | {CA4F859F-6FE6-413C-A24A-44CF552FCE91}.Release|PSVita.ActiveCfg = Release|PSVita 22 | {CA4F859F-6FE6-413C-A24A-44CF552FCE91}.Release|PSVita.Build.0 = Release|PSVita 23 | {A6BB4747-BD6A-4DFC-B213-236038A9E766}.Debug|PSVita.ActiveCfg = Debug|PSVita 24 | {A6BB4747-BD6A-4DFC-B213-236038A9E766}.Debug|PSVita.Build.0 = Debug|PSVita 25 | {A6BB4747-BD6A-4DFC-B213-236038A9E766}.Release|PSVita.ActiveCfg = Release|PSVita 26 | {A6BB4747-BD6A-4DFC-B213-236038A9E766}.Release|PSVita.Build.0 = Release|PSVita 27 | EndGlobalSection 28 | GlobalSection(SolutionProperties) = preSolution 29 | HideSolutionNode = FALSE 30 | EndGlobalSection 31 | GlobalSection(ExtensibilityGlobals) = postSolution 32 | SolutionGuid = {C50D68BE-AABF-49D8-B1F9-47902DAEB14E} 33 | EndGlobalSection 34 | EndGlobal 35 | -------------------------------------------------------------------------------- /NetStream/CONTENTS/module/download_enabler_netstream.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/module/download_enabler_netstream.suprx -------------------------------------------------------------------------------- /NetStream/CONTENTS/module/libBEAVCorePlayer.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/module/libBEAVCorePlayer.suprx -------------------------------------------------------------------------------- /NetStream/CONTENTS/module/libInvidious.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/module/libInvidious.suprx -------------------------------------------------------------------------------- /NetStream/CONTENTS/module/libLootkit.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/module/libLootkit.suprx -------------------------------------------------------------------------------- /NetStream/CONTENTS/module/libSceHttpForBEAVCorePlayer.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/module/libSceHttpForBEAVCorePlayer.suprx -------------------------------------------------------------------------------- /NetStream/CONTENTS/module/libcurl.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/module/libcurl.suprx -------------------------------------------------------------------------------- /NetStream/CONTENTS/module/libfmodngpext.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/module/libfmodngpext.suprx -------------------------------------------------------------------------------- /NetStream/CONTENTS/module/libfmodstudio.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/module/libfmodstudio.suprx -------------------------------------------------------------------------------- /NetStream/CONTENTS/module/libhvdb.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/module/libhvdb.suprx -------------------------------------------------------------------------------- /NetStream/CONTENTS/netstream_plugin.rco: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/netstream_plugin.rco -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/icon0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/icon0.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/livearea/contents/gate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/livearea/contents/gate.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/livearea/contents/labg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/livearea/contents/labg.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/livearea/contents/template.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | labg.png 7 | 8 | 9 | 10 | gate.png 11 | 12 | 13 | 14 | ja title-en.png 15 | en title-en.png 16 | fr title-en.png 17 | es title-en.png 18 | de title-en.png 19 | it title-en.png 20 | nl title-en.png 21 | pt title-en.png 22 | ru title-en.png 23 | ko title-en.png 24 | ch title-en.png 25 | zh title-en.png 26 | fi title-en.png 27 | sv title-en.png 28 | da title-en.png 29 | no title-en.png 30 | pl title-en.png 31 | en-gb title-en.png 32 | pt-br title-en.png 33 | tr title-en.png 34 | 35 | 36 | title-en.png 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/livearea/contents/title-en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/livearea/contents/title-en.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/manual/001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/manual/001.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/manual/002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/manual/002.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/manual/003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/manual/003.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/manual/004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/manual/004.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/manual/005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/manual/005.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/manual/006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/manual/006.png -------------------------------------------------------------------------------- /NetStream/CONTENTS/sce_sys/pic0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/CONTENTS/sce_sys/pic0.png -------------------------------------------------------------------------------- /NetStream/NetStream.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetStream/RES_RCO/locale/netstream_locale_en.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /NetStream/RES_RCO/locale/netstream_locale_es.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /NetStream/RES_RCO/locale/netstream_locale_it.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /NetStream/RES_RCO/locale/netstream_locale_ja.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /NetStream/RES_RCO/locale/netstream_locale_pt-br.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /NetStream/RES_RCO/locale/netstream_locale_zh-s.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /NetStream/RES_RCO/locale/netstream_locale_zh-t.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_black.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_black.dds -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_button_arrow_left.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_button_arrow_left.zlib -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_button_arrow_right.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_button_arrow_right.zlib -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_button_big_repeat.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_button_big_repeat.zlib -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_button_expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_button_expand.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_button_pause.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_button_pause.zlib -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_button_play.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_button_play.zlib -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_common_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_common_bg.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_file_icon_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_file_icon_folder.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_file_icon_music.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_file_icon_music.zlib -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_file_icon_playlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_file_icon_playlist.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_file_icon_unsupported.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_file_icon_unsupported.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_file_icon_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_file_icon_video.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_fpmenu_icon_ftp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_fpmenu_icon_ftp.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_fpmenu_icon_http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_fpmenu_icon_http.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_fpmenu_icon_hvdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_fpmenu_icon_hvdb.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_fpmenu_icon_local.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_fpmenu_icon_local.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_fpmenu_icon_youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_fpmenu_icon_youtube.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_vertical_separator.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_vertical_separator.zlib -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_video_control_panel_status_pause.gim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_video_control_panel_status_pause.gim -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_video_control_panel_status_play.gim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_video_control_panel_status_play.gim -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_youtube_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_youtube_bg.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_yt_icon_fav_for_player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_yt_icon_fav_for_player.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_yt_icon_fav_for_player_glow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_yt_icon_fav_for_player_glow.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_yt_icon_favourite.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_yt_icon_favourite.zlib -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_yt_icon_history.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_yt_icon_history.zlib -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_yt_icon_live_now.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_yt_icon_live_now.png -------------------------------------------------------------------------------- /NetStream/RES_RCO/texture/tex_yt_icon_search.zlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GrapheneCt/NetStream/10b0e4778be46a1be811097fb7e16c8d61759fcd/NetStream/RES_RCO/texture/tex_yt_icon_search.zlib -------------------------------------------------------------------------------- /NetStream/ebootparam.bin: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /NetStream/gen_headers.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | SET PLUGIN=netstream 3 | SET HASHGEN=%SCE_PSP2_SDK_DIR%/host_tools/build/rco/bin/psp2pafhashgen.exe 4 | 5 | "%HASHGEN%" -i "RES_RCO\%PLUGIN%_plugin.xml" -o "include\%PLUGIN%_plugin.h" 6 | "%HASHGEN%" -i "RES_RCO\file\%PLUGIN%_settings.xml" -o "include\%PLUGIN%_settings.h" 7 | "%HASHGEN%" -i "RES_RCO\locale\%PLUGIN%_locale_en.xml" -o "include\%PLUGIN%_locale.h" -------------------------------------------------------------------------------- /NetStream/gen_rco.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | SET PLUGIN=netstream 3 | SET COMPILER=%SCE_PSP2_SDK_DIR%/host_tools/build/rco/bin/acdc.exe 4 | SET TMP=RES_RCO/RES_RCO_TMP 5 | 6 | @RD /S /Q "%TMP%" 7 | mkdir "%TMP%" 8 | 9 | for %%f in (RES_RCO/locale/*.xml) do ( 10 | 11 | "%COMPILER%" -c -i "RES_RCO/locale/%%f" -s "%SCE_PSP2_SDK_DIR%/host_tools/build/rco/def/rcs.cxmldef" -o "%TMP%/%%f.rcs" 12 | 13 | ) 14 | 15 | "%COMPILER%" -c -i "RES_RCO/%PLUGIN%_plugin.xml" -s "%SCE_PSP2_SDK_DIR%/host_tools/build/rco/def/rco.cxmldef" -o "CONTENTS/%PLUGIN%_plugin.rco" -r "CONTENTS/%PLUGIN%_plugin.rcd" -------------------------------------------------------------------------------- /NetStream/include/common.h: -------------------------------------------------------------------------------- 1 | #ifndef _COMMON_H_ 2 | #define _COMMON_H_ 3 | 4 | #include 5 | 6 | #include "netstream_plugin.h" 7 | #include "netstream_settings.h" 8 | #include "netstream_locale.h" 9 | 10 | #include "menus/menu_settings.h" 11 | 12 | #define USER_AGENT "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 13 | 14 | #define NP_TUS_FAV_LOG_SLOT (2) 15 | #define NP_TUS_HIST_LOG_SLOT (1) 16 | 17 | using namespace paf; 18 | 19 | extern Plugin *g_appPlugin; 20 | 21 | extern intrusive_ptr g_texCheckMark; 22 | extern intrusive_ptr g_texTransparent; 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /NetStream/include/debug.h: -------------------------------------------------------------------------------- 1 | #ifndef _DEBUG_H_ 2 | #define _DEBUG_H_ 3 | 4 | #include 5 | #include 6 | 7 | #ifdef _DEBUG 8 | 9 | //#define DEBUG_MEM_HEAP 10 | //#define DEBUG_SURFACE_HEAP 11 | //#define DEBUG_JOB_QUEUE 12 | //#define DEBUG_EXTRA_TTY 13 | 14 | void InitDebug(); 15 | void SetCurrentDebugParam(paf::Plugin *plugin, paf::ui::Scene *page); 16 | void SetPageDebugMode(paf::Plugin *plugin, paf::IDParam const& id, paf::Plugin::PageDebugMode mode, bool on); 17 | 18 | #endif 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /NetStream/include/dialog.h: -------------------------------------------------------------------------------- 1 | #ifndef _DIALOG_H_ 2 | #define _DIALOG_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | using namespace paf; 9 | 10 | namespace dialog 11 | { 12 | enum 13 | { 14 | DialogEvent = (ui::Handler::CB_STATE + 0x40000), 15 | }; 16 | 17 | enum ButtonCode 18 | { 19 | ButtonCode_X = 1, 20 | ButtonCode_Ok, 21 | ButtonCode_Cancel, 22 | ButtonCode_Yes, 23 | ButtonCode_No, 24 | ButtonCode_Button1 = ButtonCode_Yes, 25 | ButtonCode_Button2 = ButtonCode_No, 26 | ButtonCode_Button3 = ButtonCode_Cancel 27 | }; 28 | 29 | void OpenPleaseWait(Plugin *workPlugin, const wchar_t *titleText, const wchar_t *messageText, bool withCancel = false); 30 | 31 | void OpenYesNo(Plugin *workPlugin, const wchar_t *titleText, const wchar_t *messageTextL); 32 | 33 | void OpenOk(Plugin *workPlugin, const wchar_t *titleText, const wchar_t *messageText); 34 | 35 | void OpenError(Plugin *workPlugin, int32_t errorCode, const wchar_t *messageText = NULL); 36 | 37 | void OpenTwoButton( 38 | Plugin *workPlugin, 39 | const wchar_t *titleText, 40 | const wchar_t *messageText, 41 | uint32_t button1TextHashref, 42 | uint32_t button2TextHashref); 43 | 44 | void OpenThreeButton( 45 | Plugin *workPlugin, 46 | const wchar_t *titleText, 47 | const wchar_t *messageText, 48 | uint32_t button1TextHashref, 49 | uint32_t button2TextHashref, 50 | uint32_t button3TextHashref); 51 | 52 | ui::ListView *OpenListView( 53 | Plugin *workPlugin, 54 | const wchar_t *titleText); 55 | 56 | ui::ScrollView *OpenScrollView( 57 | Plugin *workPlugin, 58 | const wchar_t *titleText); 59 | 60 | void Close(); 61 | 62 | void WaitEnd(); 63 | }; 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /NetStream/include/downloader.h: -------------------------------------------------------------------------------- 1 | #ifndef _ELEVENMPV_DOWNLOADER_H_ 2 | #define _ELEVENMPV_DOWNLOADER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | using namespace paf; 10 | 11 | class Downloader 12 | { 13 | public: 14 | 15 | enum 16 | { 17 | DownloaderEvent = (ui::Handler::CB_STATE + 0x60000), 18 | }; 19 | 20 | Downloader(); 21 | 22 | ~Downloader(); 23 | 24 | int32_t Enqueue(Plugin *workPlugin, const char *url, const char *name); 25 | 26 | int32_t EnqueueAsync(Plugin *workPlugin, const char *url, const char *name); 27 | 28 | private: 29 | 30 | class AsyncEnqueue : public job::JobItem 31 | { 32 | public: 33 | 34 | AsyncEnqueue(Plugin *workPlugin, Downloader *downloader, const char *url, const char *name) : 35 | job::JobItem("Downloader::AsyncEnqueue", NULL), m_plugin(workPlugin), m_downloader(downloader), m_url8(url), m_name8(name) 36 | { 37 | 38 | } 39 | 40 | ~AsyncEnqueue() {} 41 | 42 | void Run() 43 | { 44 | Downloader *pdownloader = (Downloader *)m_downloader; 45 | pdownloader->Enqueue(m_plugin, m_url8.c_str(), m_name8.c_str()); 46 | } 47 | 48 | void Finish() {} 49 | 50 | private: 51 | 52 | string m_url8; 53 | string m_name8; 54 | void *m_downloader; 55 | Plugin *m_plugin; 56 | }; 57 | 58 | sce::Download dw; 59 | }; 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /NetStream/include/event.h: -------------------------------------------------------------------------------- 1 | #ifndef _EVENT_UTIL_H_ 2 | #define _EVENT_UTIL_H_ 3 | 4 | #include 5 | #include 6 | 7 | using namespace paf; 8 | 9 | namespace event 10 | { 11 | void BroadcastGlobalEvent(Plugin *workPlugin, uint32_t type, int32_t d0 = 0, int32_t d1 = 0, int32_t d2 = 0, int32_t d3 = 0); 12 | }; 13 | 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /NetStream/include/ftp_server_browser.h: -------------------------------------------------------------------------------- 1 | #ifndef _FTP_SERVER_BROWSER_H_ 2 | #define _FTP_SERVER_BROWSER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include "generic_server_browser.h" 9 | 10 | using namespace paf; 11 | 12 | class FtpServerBrowser : public GenericServerBrowser 13 | { 14 | public: 15 | 16 | FtpServerBrowser(const char *host, const char *port, const char *user, const char *password); 17 | 18 | ~FtpServerBrowser(); 19 | 20 | bool Probe(); 21 | 22 | bool IsAtRoot(string *current); 23 | 24 | bool IsAtRoot(); 25 | 26 | void SetPath(const char *ref); 27 | 28 | string GetPath(); 29 | 30 | string GetBEAVUrl(string const& in); 31 | 32 | vector *GoTo(const char *ref, int32_t *result); 33 | 34 | private: 35 | 36 | static size_t DownloadCore(char *buffer, size_t size, size_t nitems, void *userdata); 37 | 38 | CURLU *m_url; 39 | CURL *m_curl; 40 | string m_root; 41 | char *m_buffer; 42 | uint32_t m_posInBuf; 43 | int32_t m_useNlst; 44 | }; 45 | 46 | #endif -------------------------------------------------------------------------------- /NetStream/include/ftpparse.h: -------------------------------------------------------------------------------- 1 | #ifndef FTPPARSE_H 2 | #define FTPPARSE_H 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | /* 9 | ftpparse(&fp,buf,len) tries to parse one line of LIST output. 10 | 11 | The line is an array of len characters stored in buf. 12 | It should not include the terminating CR LF; so buf[len] is typically CR. 13 | 14 | If ftpparse() can't find a filename, it returns 0. 15 | 16 | If ftpparse() can find a filename, it fills in fp and returns 1. 17 | fp is a struct ftpparse, defined below. 18 | The name is an array of fp.namelen characters stored in fp.name; 19 | fp.name points somewhere within buf. 20 | */ 21 | 22 | struct ftpparse { 23 | char *name; /* not necessarily 0-terminated */ 24 | int namelen; 25 | int flagtrycwd; /* 0 if cwd is definitely pointless, 1 otherwise */ 26 | int flagtryretr; /* 0 if retr is definitely pointless, 1 otherwise */ 27 | int sizetype; 28 | long size; /* number of octets */ 29 | int mtimetype; 30 | time_t mtime; /* modification time */ 31 | int idtype; 32 | char *id; /* not necessarily 0-terminated */ 33 | int idlen; 34 | } ; 35 | 36 | #define FTPPARSE_SIZE_UNKNOWN 0 37 | #define FTPPARSE_SIZE_BINARY 1 /* size is the number of octets in TYPE I */ 38 | #define FTPPARSE_SIZE_ASCII 2 /* size is the number of octets in TYPE A */ 39 | 40 | #define FTPPARSE_MTIME_UNKNOWN 0 41 | #define FTPPARSE_MTIME_LOCAL 1 /* time is correct */ 42 | #define FTPPARSE_MTIME_REMOTEMINUTE 2 /* time zone and secs are unknown */ 43 | #define FTPPARSE_MTIME_REMOTEDAY 3 /* time zone and time of day are unknown */ 44 | /* 45 | When a time zone is unknown, it is assumed to be GMT. You may want 46 | to use localtime() for LOCAL times, along with an indication that the 47 | time is correct in the local time zone, and gmtime() for REMOTE* times. 48 | */ 49 | 50 | #define FTPPARSE_ID_UNKNOWN 0 51 | #define FTPPARSE_ID_FULL 1 /* unique identifier for files on this FTP server */ 52 | 53 | int ftpparse(struct ftpparse *,char *,int); 54 | 55 | #ifdef __cplusplus 56 | } 57 | #endif 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /NetStream/include/generic_server_browser.h: -------------------------------------------------------------------------------- 1 | #ifndef _GENERIC_SERVER_BROWSER_H_ 2 | #define _GENERIC_SERVER_BROWSER_H_ 3 | 4 | #include 5 | #include 6 | 7 | using namespace paf; 8 | 9 | class GenericServerBrowser 10 | { 11 | public: 12 | 13 | class Entry 14 | { 15 | public: 16 | 17 | enum Type 18 | { 19 | Type_UnsupportedFile, 20 | Type_SupportedFile, 21 | Type_PlaylistFile, 22 | Type_Folder 23 | }; 24 | 25 | paf::string ref; 26 | uint32_t type; 27 | }; 28 | 29 | GenericServerBrowser() 30 | { 31 | 32 | } 33 | 34 | virtual ~GenericServerBrowser() 35 | { 36 | 37 | } 38 | 39 | virtual bool Probe() = 0; 40 | 41 | virtual bool IsAtRoot(string *current) = 0; 42 | 43 | virtual bool IsAtRoot() = 0; 44 | 45 | virtual void SetPath(const char *ref) = 0; 46 | 47 | virtual string GetPath() = 0; 48 | 49 | virtual string GetBEAVUrl(string const& in) = 0; 50 | 51 | virtual vector *GoTo(const char *ref, int32_t *result) = 0; 52 | }; 53 | 54 | #endif -------------------------------------------------------------------------------- /NetStream/include/http_server_browser.h: -------------------------------------------------------------------------------- 1 | #ifndef _HTTP_SERVER_BROWSER_H_ 2 | #define _HTTP_SERVER_BROWSER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include "generic_server_browser.h" 9 | 10 | using namespace paf; 11 | 12 | class HttpServerBrowser : public GenericServerBrowser 13 | { 14 | public: 15 | 16 | HttpServerBrowser(const char *host, const char *port, const char *user, const char *password); 17 | 18 | ~HttpServerBrowser(); 19 | 20 | bool Probe(); 21 | 22 | bool IsAtRoot(string *current); 23 | 24 | bool IsAtRoot(); 25 | 26 | void SetPath(const char *ref); 27 | 28 | string GetPath(); 29 | 30 | string GetBEAVUrl(string const& in); 31 | 32 | vector *GoTo(const char *ref, int32_t *result); 33 | 34 | private: 35 | 36 | static size_t DownloadCore(char *buffer, size_t size, size_t nitems, void *userdata); 37 | 38 | CURLU *m_url; 39 | CURL *m_curl; 40 | string m_root; 41 | char *m_buffer; 42 | uint32_t m_posInBuf; 43 | }; 44 | 45 | #endif -------------------------------------------------------------------------------- /NetStream/include/hvdb_utils.h: -------------------------------------------------------------------------------- 1 | #ifndef _HVDBUTILS_H_ 2 | #define _HVDBUTILS_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include "yt_utils.h" 9 | #include "downloader.h" 10 | 11 | using namespace paf; 12 | 13 | namespace hvdbutils 14 | { 15 | class EntryLog : public ytutils::Log 16 | { 17 | public: 18 | 19 | EntryLog(); 20 | 21 | static void Clean(); 22 | }; 23 | 24 | void Init(); 25 | 26 | void Term(); 27 | 28 | void Flush(); 29 | 30 | EntryLog *GetEntryLog(); 31 | 32 | int32_t EnqueueDownload(const char *url, const char *name); 33 | 34 | int32_t EnqueueDownloadAsync(const char *url, const char *name); 35 | }; 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /NetStream/include/local_server_browser.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOCAL_SERVER_BROWSER_H_ 2 | #define _LOCAL_SERVER_BROWSER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include "generic_server_browser.h" 9 | 10 | using namespace paf; 11 | 12 | class LocalServerBrowser : public GenericServerBrowser 13 | { 14 | public: 15 | 16 | static bool DefaultFsSort(const LocalServerBrowser::Entry* a, const LocalServerBrowser::Entry* b); 17 | 18 | LocalServerBrowser(); 19 | 20 | ~LocalServerBrowser(); 21 | 22 | bool Probe(); 23 | 24 | bool IsAtRoot(string *current); 25 | 26 | bool IsAtRoot(); 27 | 28 | void SetPath(const char *ref); 29 | 30 | string GetPath(); 31 | 32 | string GetBEAVUrl(string const& in); 33 | 34 | vector *GoTo(const char *ref, int32_t *result); 35 | 36 | private: 37 | 38 | string m_path; 39 | }; 40 | 41 | #endif -------------------------------------------------------------------------------- /NetStream/include/main.h: -------------------------------------------------------------------------------- 1 | #ifndef _MAIN_H_ 2 | #define _MAIN_H_ 3 | 4 | #include 5 | #include 6 | 7 | using namespace paf; 8 | 9 | extern "C" 10 | { 11 | SceUID _vshKernelSearchModuleByName(const char *, int *); 12 | } 13 | 14 | namespace menu { 15 | namespace main { 16 | class NetcheckJob : public job::JobItem 17 | { 18 | public: 19 | 20 | enum Type 21 | { 22 | Type_Initial, 23 | Type_NpOnly 24 | }; 25 | 26 | NetcheckJob(Type type) : job::JobItem("NS::NetcheckJob", NULL), m_type(type) 27 | { 28 | 29 | } 30 | 31 | ~NetcheckJob() {} 32 | 33 | void Run(); 34 | 35 | void Finish() {} 36 | 37 | private: 38 | 39 | Type m_type; 40 | }; 41 | 42 | int32_t OnNpDialogComplete(void *data); 43 | } 44 | } 45 | 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /NetStream/include/menus/menu_first.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_FIRST_H_ 2 | #define _MENU_FIRST_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "menu_generic.h" 8 | 9 | using namespace paf; 10 | 11 | namespace menu { 12 | 13 | class First : public GenericMenu 14 | { 15 | public: 16 | 17 | class ListViewFactory : public ui::listview::ItemFactory 18 | { 19 | public: 20 | 21 | ListViewFactory(menu::First *parent) : m_parent(parent) 22 | { 23 | 24 | } 25 | 26 | ~ListViewFactory() 27 | { 28 | 29 | } 30 | 31 | ui::ListItem* Create(CreateParam& param) 32 | { 33 | return m_parent->CreateListItem(param); 34 | } 35 | 36 | private: 37 | 38 | menu::First *m_parent; 39 | }; 40 | 41 | First(); 42 | 43 | ~First(); 44 | 45 | ui::ListItem* CreateListItem(ui::listview::ItemFactory::CreateParam& param); 46 | 47 | void OnListButton(ui::Widget *self); 48 | 49 | MenuType GetMenuType() 50 | { 51 | return MenuType_First; 52 | } 53 | 54 | const uint32_t *GetSupportedSettingsItems(int32_t *count) 55 | { 56 | *count = 0; 57 | return nullptr; 58 | } 59 | }; 60 | } 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /NetStream/include/menus/menu_ftp.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_FTP_H_ 2 | #define _MENU_FTP_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "dialog.h" 8 | #include "menu_server.h" 9 | #include "ftp_server_browser.h" 10 | #include "menus/menu_player_simple.h" 11 | 12 | using namespace paf; 13 | 14 | namespace menu { 15 | class Ftp : public GenericServerMenu 16 | { 17 | public: 18 | 19 | Ftp() 20 | { 21 | sce::AppSettings *settings = menu::Settings::GetAppSetInstance(); 22 | 23 | char host[256]; 24 | char port[32]; 25 | char user[256]; 26 | char password[256]; 27 | 28 | settings->GetString("ftp_host", host, sizeof(host), ""); 29 | settings->GetString("ftp_port", port, sizeof(port), ""); 30 | settings->GetString("ftp_user", user, sizeof(user), ""); 31 | settings->GetString("ftp_password", password, sizeof(password), ""); 32 | 33 | m_browser = new FtpServerBrowser(host, port, user, password); 34 | } 35 | 36 | MenuType GetMenuType() 37 | { 38 | return MenuType_Ftp; 39 | } 40 | 41 | const uint32_t *GetSupportedSettingsItems(int32_t *count) 42 | { 43 | *count = sizeof(k_settingsIdList) / sizeof(char*); 44 | return k_settingsIdList; 45 | } 46 | 47 | private: 48 | 49 | const uint32_t k_settingsIdList[1] = { 50 | ftp_setting 51 | }; 52 | }; 53 | } 54 | 55 | #endif -------------------------------------------------------------------------------- /NetStream/include/menus/menu_generic.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_GENERIC_H_ 2 | #define _MENU_GENERIC_H_ 3 | 4 | #include 5 | #include 6 | 7 | using namespace paf; 8 | 9 | namespace menu { 10 | 11 | enum MenuType 12 | { 13 | MenuType_First, 14 | MenuType_Http, 15 | MenuType_Ftp, 16 | MenuType_Local, 17 | MenuType_Youtube, 18 | MenuType_Hvdb, 19 | MenuType_PlayerSimple, 20 | MenuType_PlayerYouTube, 21 | }; 22 | 23 | void SettingsButtonCbFun(int32_t type, ui::Handler *self, ui::Event *e, void *userdata); 24 | 25 | class MenuOpenParam : public Plugin::PageOpenParam 26 | { 27 | public: 28 | 29 | MenuOpenParam( 30 | bool useFadeIn = false, 31 | float fadeinTimeMs = 200.0f, 32 | Plugin::TransitionType effectType = Plugin::TransitionType_None, 33 | uint32_t openFlags = 0, 34 | int32_t priority = -1) : 35 | m_envOpt(nullptr) 36 | { 37 | fade = useFadeIn; 38 | fade_time_ms = fadeinTimeMs; 39 | transition_type = effectType; 40 | overwrite_draw_priority = priority; 41 | 42 | if (openFlags != 0) 43 | { 44 | if ((openFlags & ui::EnvironmentParam::RESOLUTION_HD_HALF) == ui::EnvironmentParam::RESOLUTION_HD_HALF 45 | || (openFlags & ui::EnvironmentParam::RESOLUTION_HD_FULL) == ui::EnvironmentParam::RESOLUTION_HD_FULL) 46 | { 47 | if (SCE_PAF_IS_DOLCE) 48 | { 49 | m_envOpt = new ui::EnvironmentParam(openFlags); 50 | } 51 | } 52 | else 53 | { 54 | m_envOpt = new ui::EnvironmentParam(openFlags); 55 | } 56 | } 57 | 58 | env_param = m_envOpt; 59 | graphics_flag = 0x80; 60 | } 61 | 62 | ~MenuOpenParam() 63 | { 64 | delete m_envOpt; 65 | } 66 | 67 | private: 68 | 69 | ui::EnvironmentParam *m_envOpt; 70 | }; 71 | 72 | class MenuCloseParam : public Plugin::PageCloseParam 73 | { 74 | public: 75 | 76 | MenuCloseParam( 77 | bool useFadeOut = false, 78 | float fadeoutTimeMs = 200.0f, 79 | Plugin::TransitionType effectType = Plugin::TransitionType_None) 80 | { 81 | fade = useFadeOut; 82 | fade_time_ms = fadeoutTimeMs; 83 | transition_type = effectType; 84 | } 85 | 86 | ~MenuCloseParam() 87 | { 88 | 89 | } 90 | }; 91 | 92 | class GenericMenu 93 | { 94 | public: 95 | 96 | GenericMenu(const char *name, MenuOpenParam const& oparam, MenuCloseParam const& cparam); 97 | 98 | virtual ~GenericMenu(); 99 | 100 | virtual void Activate(); 101 | 102 | virtual void Deactivate(bool withDelay = false); 103 | 104 | virtual void DisableInput(); 105 | 106 | virtual void EnableInput(); 107 | 108 | virtual MenuType GetMenuType() = 0; 109 | 110 | virtual const uint32_t *GetSupportedSettingsItems(int32_t *count) = 0; 111 | 112 | ui::Scene *GetRoot() const; 113 | 114 | protected: 115 | 116 | ui::Scene *m_root; 117 | 118 | private: 119 | 120 | MenuCloseParam m_closeParam; 121 | }; 122 | 123 | void InitMenuSystem(); 124 | 125 | void TermMenuSystem(); 126 | 127 | uint32_t GetMenuCount(); 128 | 129 | menu::GenericMenu *GetTopMenu(); 130 | 131 | menu::GenericMenu *GetMenuAt(uint32_t idx); 132 | 133 | void DeactivateAll(uint32_t endMargin = 0); 134 | 135 | void ActivateAll(); 136 | } 137 | 138 | 139 | #endif -------------------------------------------------------------------------------- /NetStream/include/menus/menu_http.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_HTTP_H_ 2 | #define _MENU_HTTP_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "dialog.h" 8 | #include "menu_server.h" 9 | #include "http_server_browser.h" 10 | 11 | using namespace paf; 12 | 13 | namespace menu { 14 | class Http : public GenericServerMenu 15 | { 16 | public: 17 | 18 | Http() 19 | { 20 | sce::AppSettings *settings = menu::Settings::GetAppSetInstance(); 21 | 22 | char host[256]; 23 | char port[32]; 24 | char user[256]; 25 | char password[256]; 26 | 27 | settings->GetString("http_host", host, sizeof(host), ""); 28 | settings->GetString("http_port", port, sizeof(port), ""); 29 | settings->GetString("http_user", user, sizeof(user), ""); 30 | settings->GetString("http_password", password, sizeof(password), ""); 31 | 32 | m_browser = new HttpServerBrowser(host, port, user, password); 33 | } 34 | 35 | MenuType GetMenuType() 36 | { 37 | return MenuType_Http; 38 | } 39 | 40 | const uint32_t *GetSupportedSettingsItems(int32_t *count) 41 | { 42 | *count = sizeof(k_settingsIdList) / sizeof(char*); 43 | return k_settingsIdList; 44 | } 45 | 46 | private: 47 | 48 | const uint32_t k_settingsIdList[1] = { 49 | http_setting 50 | }; 51 | }; 52 | } 53 | 54 | #endif -------------------------------------------------------------------------------- /NetStream/include/menus/menu_hvdb.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_HVDB_H_ 2 | #define _MENU_HVDB_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "dialog.h" 8 | #include "tex_pool.h" 9 | #include "hvdb.h" 10 | #include "menu_generic.h" 11 | #include "menus/menu_player_simple.h" 12 | 13 | using namespace paf; 14 | 15 | namespace menu { 16 | class HVDB : public GenericMenu 17 | { 18 | public: 19 | 20 | class AudioItem; 21 | 22 | class EntryAddJob : public job::JobItem 23 | { 24 | public: 25 | 26 | EntryAddJob(HVDB *parent) : job::JobItem("HVDB::EntryAddJob", NULL), m_parent(parent) 27 | { 28 | 29 | } 30 | 31 | ~EntryAddJob() {} 32 | 33 | void Run() 34 | { 35 | m_parent->AddEntry(); 36 | } 37 | 38 | void Finish() {} 39 | 40 | private: 41 | 42 | HVDB *m_parent; 43 | }; 44 | 45 | class TrackParseJob : public job::JobItem 46 | { 47 | public: 48 | 49 | TrackParseJob(HVDB *parent, AudioItem *item) : job::JobItem("HVDB::TrackParseJob", NULL), m_parent(parent), m_audioItem(item) 50 | { 51 | 52 | } 53 | 54 | ~TrackParseJob() {} 55 | 56 | void Run() 57 | { 58 | m_parent->ParseTrack(m_audioItem); 59 | } 60 | 61 | void Finish() {} 62 | 63 | private: 64 | 65 | HVDB *m_parent; 66 | AudioItem *m_audioItem; 67 | }; 68 | 69 | class LogClearJob : public job::JobItem 70 | { 71 | public: 72 | 73 | LogClearJob(HVDB *parent) : job::JobItem("HVDB::LogClearJob", NULL), m_parent(parent) 74 | { 75 | 76 | } 77 | 78 | ~LogClearJob() {} 79 | 80 | void Run(); 81 | 82 | void Finish() {} 83 | 84 | private: 85 | 86 | HVDB *m_parent; 87 | }; 88 | 89 | class ListViewCb : public ui::listview::ItemFactory 90 | { 91 | public: 92 | 93 | ListViewCb(HVDB *parent) : m_parent(parent) 94 | { 95 | 96 | } 97 | 98 | ~ListViewCb() 99 | { 100 | 101 | } 102 | 103 | ui::ListItem *Create(CreateParam& param) 104 | { 105 | return m_parent->CreateListItem(param); 106 | } 107 | 108 | void Start(StartParam& param) 109 | { 110 | param.list_item->Show(common::transition::Type_Popup1); 111 | } 112 | 113 | private: 114 | 115 | HVDB *m_parent; 116 | }; 117 | 118 | class ListViewTrackCb : public ui::listview::ItemFactory 119 | { 120 | public: 121 | 122 | ListViewTrackCb(HVDB *parent) : m_parent(parent) 123 | { 124 | 125 | } 126 | 127 | ~ListViewTrackCb() 128 | { 129 | 130 | } 131 | 132 | ui::ListItem *Create(CreateParam& param) 133 | { 134 | return m_parent->CreateTrackListItem(param); 135 | } 136 | 137 | void Start(StartParam& param) 138 | { 139 | param.list_item->Show(common::transition::Type_Popup1); 140 | } 141 | 142 | private: 143 | 144 | HVDB *m_parent; 145 | }; 146 | 147 | class AudioItem 148 | { 149 | public: 150 | 151 | AudioItem() 152 | { 153 | 154 | } 155 | 156 | wstring name; 157 | wstring subtitle; 158 | string id; 159 | string cover; 160 | IDParam texId; 161 | TexPool *texPool; 162 | }; 163 | 164 | class TrackItem 165 | { 166 | public: 167 | 168 | TrackItem() 169 | { 170 | 171 | } 172 | 173 | wstring name; 174 | string url; 175 | AudioItem *audioItem; 176 | }; 177 | 178 | HVDB(); 179 | 180 | ~HVDB(); 181 | 182 | void ClearEntryResults(); 183 | 184 | void AddEntry(); 185 | 186 | void ParseTrack(AudioItem *audioItem); 187 | 188 | ui::ListItem* CreateListItem(ui::listview::ItemFactory::CreateParam& param); 189 | 190 | ui::ListItem* CreateTrackListItem(ui::listview::ItemFactory::CreateParam& param); 191 | 192 | MenuType GetMenuType() 193 | { 194 | return MenuType_Hvdb; 195 | } 196 | 197 | const uint32_t *GetSupportedSettingsItems(int32_t *count) 198 | { 199 | *count = 0; 200 | return k_settingsIdList; 201 | } 202 | 203 | private: 204 | 205 | void OnBackButton(); 206 | void OnListButton(ui::Widget *wdg); 207 | void OnDeleteButton(ui::Widget *wdg); 208 | void OnAddEntryButton(); 209 | void OnSettingsButton(); 210 | void OnOptionMenuEvent(int32_t type, int32_t subtype); 211 | void OnDialogEvent(int32_t type); 212 | void OnPlayerEvent(int32_t type); 213 | 214 | static void OnTexPoolAdd(int32_t type, ui::Handler *self, ui::Event *e, void *userdata); 215 | 216 | ui::Widget *m_browserRoot; 217 | ui::BusyIndicator *m_loaderIndicator; 218 | ui::Text *m_topText; 219 | ui::TextBox *m_addEntryTextBox; 220 | ui::ListView *m_list; 221 | ui::ListView *m_trackList; 222 | ui::Button *m_backButton; 223 | menu::PlayerSimple *m_player; 224 | string m_addEntryId; 225 | int32_t m_dialogIdx; 226 | bool m_interrupted; 227 | TexPool *m_texPool; 228 | vector m_entryResults; 229 | vector m_trackResults; 230 | 231 | const uint32_t k_settingsIdList[0] = { 232 | }; 233 | }; 234 | 235 | } 236 | 237 | #endif 238 | -------------------------------------------------------------------------------- /NetStream/include/menus/menu_local.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_LOCAL_H_ 2 | #define _MENU_LOCAL_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "dialog.h" 8 | #include "menu_server.h" 9 | #include "local_server_browser.h" 10 | 11 | using namespace paf; 12 | 13 | namespace menu { 14 | class Local : public GenericServerMenu 15 | { 16 | public: 17 | 18 | Local() 19 | { 20 | m_browser = new LocalServerBrowser(); 21 | } 22 | 23 | MenuType GetMenuType() 24 | { 25 | return MenuType_Local; 26 | } 27 | 28 | const uint32_t *GetSupportedSettingsItems(int32_t *count) 29 | { 30 | *count = sizeof(k_settingsIdList) / sizeof(char*); 31 | return k_settingsIdList; 32 | } 33 | 34 | private: 35 | 36 | const uint32_t k_settingsIdList[1] = { 37 | local_setting 38 | }; 39 | }; 40 | } 41 | 42 | #endif -------------------------------------------------------------------------------- /NetStream/include/menus/menu_player_simple.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_PLAYER_SIMPLE_H_ 2 | #define _MENU_PLAYER_SIMPLE_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "player_generic.h" 8 | #include "menu_generic.h" 9 | #include "menu_youtube.h" 10 | 11 | using namespace paf; 12 | 13 | namespace menu { 14 | class PlayerSimple : public GenericMenu 15 | { 16 | public: 17 | 18 | enum 19 | { 20 | PlayerSimpleEvent = (ui::Handler::CB_STATE + 0x10000), 21 | }; 22 | 23 | enum PlayerEvent 24 | { 25 | PlayerEvent_InitFail, 26 | PlayerEvent_InitOk, 27 | PlayerEvent_Back 28 | }; 29 | 30 | enum AccJumpState 31 | { 32 | AccJumpState_None, 33 | AccJumpState_Accumulate, 34 | AccJumpState_Perform 35 | }; 36 | 37 | enum SettingsOverride 38 | { 39 | SettingsOverride_None, 40 | SettingsOverride_YouTube 41 | }; 42 | 43 | class PadListener : public inputdevice::InputListener 44 | { 45 | public: 46 | 47 | PadListener(PlayerSimple *parent) : InputListener(inputdevice::DEVICE_TYPE_PAD), m_parent(parent) 48 | { 49 | 50 | } 51 | 52 | void OnUpdate(inputdevice::Data *data) 53 | { 54 | m_parent->OnPadUpdate(data); 55 | } 56 | 57 | private: 58 | 59 | PlayerSimple *m_parent; 60 | }; 61 | 62 | typedef void(*PlayerSimpleCallback)(PlayerSimple *player, void *pUserArg); 63 | 64 | PlayerSimple(const char *url, const char *coverUrl = NULL); 65 | 66 | ~PlayerSimple(); 67 | 68 | GenericPlayer *GetPlayer(); 69 | 70 | void SetScale(float scale); 71 | 72 | float GetScale(); 73 | 74 | void SetPosition(float x, float y); 75 | 76 | void SetSettingsOverride(SettingsOverride override); 77 | 78 | MenuType GetMenuType() 79 | { 80 | return MenuType_PlayerSimple; 81 | } 82 | 83 | const uint32_t *GetSupportedSettingsItems(int32_t *count) 84 | { 85 | switch (m_settingsOverride) 86 | { 87 | case SettingsOverride_None: 88 | *count = 0; 89 | return nullptr; 90 | case SettingsOverride_YouTube: 91 | *count = sizeof(k_settingsIdListYoutubeOverride) / sizeof(char*); 92 | return k_settingsIdListYoutubeOverride; 93 | } 94 | 95 | return nullptr; 96 | } 97 | 98 | private: 99 | 100 | static int32_t PowerCallback(SceUID notifyId, int32_t notifyCount, int32_t notifyArg, void *pCommon); 101 | static void UpdateTask(void *pArgBlock); 102 | void OnVideoPlaneTouch(); 103 | void OnProgressBarStateChange(int32_t type); 104 | void OnBackButton(); 105 | void OnPlayButton(); 106 | void OnWholeRepeatButton(); 107 | void OnPowerCallback(int32_t notifyArg); 108 | void OnGenericPlayerStateChange(int32_t state); 109 | void OnUpdate(); 110 | void OnPadUpdate(inputdevice::Data *data); 111 | 112 | ui::Widget *m_videoPlane; 113 | ui::BusyIndicator *m_loadIndicator; 114 | ui::Widget *m_leftAccText; 115 | ui::Widget *m_rightAccText; 116 | ui::Widget *m_statPlane; 117 | ui::Widget *m_backButton; 118 | ui::Widget *m_wholeRepeatButton; 119 | ui::Text *elapsedTimeText; 120 | ui::ProgressBarTouch *m_progressBar; 121 | ui::Widget *m_progressPlane; 122 | ui::Widget *m_playButton; 123 | uint32_t m_oldCurrTime; 124 | bool m_progressPlaneShown; 125 | uint32_t m_progressPlaneShownTime; 126 | bool m_isSeeking; 127 | bool m_isLS; 128 | uint32_t m_oldButtons; 129 | GenericPlayer::PlayerState m_oldState; 130 | int32_t m_accJumpTime; 131 | uint32_t m_accStartTime; 132 | AccJumpState m_accJumpState; 133 | float m_currentScale; 134 | SettingsOverride m_settingsOverride; 135 | SceUID m_pwCbId; 136 | common::SharedPtr m_padListener; 137 | GenericPlayer *m_player; 138 | 139 | const uint32_t k_settingsIdListYoutubeOverride[4] = { 140 | youtube_search_setting, 141 | youtube_comment_setting, 142 | youtube_quality_setting, 143 | youtube_player_setting 144 | }; 145 | }; 146 | } 147 | 148 | #endif 149 | -------------------------------------------------------------------------------- /NetStream/include/menus/menu_player_youtube.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_PLAYER_YOUTUBE_H_ 2 | #define _MENU_PLAYER_YOUTUBE_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "dialog.h" 8 | #include "invidious.h" 9 | #include "menu_generic.h" 10 | #include "menus/menu_player_simple.h" 11 | 12 | using namespace paf; 13 | 14 | #define HLS_COMMENT_NUM 6 15 | #define HLS_COMMENT_MAGIC 0x16865ddb 16 | 17 | namespace menu { 18 | 19 | class PlayerYoutube : public GenericMenu 20 | { 21 | public: 22 | 23 | enum CompanelMode 24 | { 25 | CompanelMode_None, 26 | CompanelMode_Description, 27 | CompanelMode_Comment 28 | }; 29 | 30 | class LoadJob : public job::JobItem 31 | { 32 | public: 33 | 34 | LoadJob(PlayerYoutube *parent) : job::JobItem("YouTube::LoadJob", NULL), m_parent(parent) 35 | { 36 | 37 | } 38 | 39 | ~LoadJob() {} 40 | 41 | void Run() 42 | { 43 | m_parent->Load(); 44 | } 45 | 46 | void Finish() {} 47 | 48 | private: 49 | 50 | PlayerYoutube *m_parent; 51 | }; 52 | 53 | class CommentItem 54 | { 55 | public: 56 | 57 | wstring author; 58 | wstring content; 59 | wstring date; 60 | int32_t likeCount; 61 | bool likedByOwner; 62 | string replyContinuation; 63 | }; 64 | 65 | class HlsCommentListViewCb : public ui::listview::ItemFactory 66 | { 67 | public: 68 | 69 | HlsCommentListViewCb(menu::PlayerYoutube *parent) : m_parent(parent) 70 | { 71 | 72 | } 73 | 74 | ~HlsCommentListViewCb() 75 | { 76 | 77 | } 78 | 79 | ui::ListItem* Create(CreateParam& param) 80 | { 81 | return m_parent->CreateHlsCommentListItem(param); 82 | } 83 | 84 | private: 85 | 86 | menu::PlayerYoutube *m_parent; 87 | }; 88 | 89 | class CommentListViewCb : public ui::listview::ItemFactory 90 | { 91 | public: 92 | 93 | CommentListViewCb(menu::PlayerYoutube *parent) : m_parent(parent) 94 | { 95 | 96 | } 97 | 98 | ~CommentListViewCb() 99 | { 100 | 101 | } 102 | 103 | ui::ListItem* Create(CreateParam& param) 104 | { 105 | return m_parent->CreateCommentListItem(param); 106 | } 107 | 108 | private: 109 | 110 | PlayerYoutube *m_parent; 111 | }; 112 | 113 | class HlsCommentParseThread : public thread::Thread 114 | { 115 | public: 116 | 117 | HlsCommentParseThread(PlayerYoutube *parent) : thread::Thread(SCE_KERNEL_DEFAULT_PRIORITY_USER + 20, SCE_KERNEL_64KiB, "YouTube::CommentParseThread", NULL), m_parent(parent) 118 | { 119 | 120 | } 121 | 122 | void EntryFunction() 123 | { 124 | m_parent->ParseHlsComments(this); 125 | } 126 | 127 | private: 128 | 129 | PlayerYoutube *m_parent; 130 | }; 131 | 132 | class CommentParseJob : public job::JobItem 133 | { 134 | public: 135 | 136 | CommentParseJob(PlayerYoutube *parent) : job::JobItem("YouTube::CommentParseJob", NULL), m_parent(parent) 137 | { 138 | 139 | } 140 | 141 | ~CommentParseJob() {} 142 | 143 | void Run() 144 | { 145 | m_parent->ParseComments(); 146 | } 147 | 148 | void Finish() {} 149 | 150 | private: 151 | 152 | PlayerYoutube *m_parent; 153 | }; 154 | 155 | PlayerYoutube(const char *id, bool isFavourite); 156 | 157 | ~PlayerYoutube(); 158 | 159 | MenuType GetMenuType() 160 | { 161 | return MenuType_PlayerYouTube; 162 | } 163 | 164 | const uint32_t *GetSupportedSettingsItems(int32_t *count) 165 | { 166 | *count = sizeof(k_settingsIdList) / sizeof(char*); 167 | return k_settingsIdList; 168 | } 169 | 170 | private: 171 | 172 | static void LoadSecondStageTask(void *pArgBlock); 173 | void OnLoadSecondStage(); 174 | void OnDwAddComplete(int32_t result); 175 | void OnBackButton(); 176 | void OnSettingsButton(); 177 | void OnExpandButton(); 178 | void OnFavButton(); 179 | void OnCommentButton(); 180 | void OnDescButton(); 181 | void OnCommentBodyButton(ui::Widget *wdg); 182 | void OnPlayerEvent(int32_t type); 183 | void OnOptionMenuEvent(int32_t type, int32_t subtype); 184 | void OnSettingsEvent(int32_t type); 185 | 186 | void Load(); 187 | void ParseComments(); 188 | ui::ListItem *CreateHlsCommentListItem(ui::listview::ItemFactory::CreateParam& param); 189 | ui::ListItem *CreateCommentListItem(ui::listview::ItemFactory::CreateParam& param); 190 | void ParseHlsComments(thread::Thread *thrd); 191 | 192 | ui::Text *m_title; 193 | ui::Text *m_stat0; 194 | ui::Text *m_stat1; 195 | ui::Text *m_stat2; 196 | ui::Button *m_expandButton; 197 | ui::Button *m_favButton; 198 | ui::Widget *m_companelBase; 199 | ui::Widget *m_commentButton; 200 | ui::Widget *m_descButton; 201 | ui::ListView *m_companelRoot; 202 | menu::PlayerSimple *m_player; 203 | string m_videoLink; 204 | string m_audioLink; 205 | string m_videoId; 206 | bool m_isHls; 207 | bool m_isHighHls; 208 | bool m_isFav; 209 | string m_description; 210 | string m_commentCont; 211 | vector m_commentItems; 212 | HlsCommentParseThread *m_hlsCommentThread; 213 | bool m_lastAttempt; 214 | 215 | const uint32_t k_settingsIdList[5] = { 216 | youtube_search_setting, 217 | youtube_comment_setting, 218 | youtube_quality_setting, 219 | youtube_player_setting, 220 | cloud_sync_setting 221 | }; 222 | }; 223 | } 224 | 225 | #endif 226 | -------------------------------------------------------------------------------- /NetStream/include/menus/menu_server.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_SERVER_H_ 2 | #define _MENU_SERVER_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "dialog.h" 8 | #include "menu_generic.h" 9 | #include "generic_server_browser.h" 10 | #include "menus/menu_player_simple.h" 11 | 12 | using namespace paf; 13 | 14 | namespace menu { 15 | class GenericServerMenu : public GenericMenu 16 | { 17 | public: 18 | 19 | class ListViewCb : public ui::listview::ItemFactory 20 | { 21 | public: 22 | 23 | ListViewCb(GenericServerMenu *parent) : m_parent(parent) 24 | { 25 | 26 | } 27 | 28 | ~ListViewCb() 29 | { 30 | 31 | } 32 | 33 | ui::ListItem *Create(CreateParam& param) 34 | { 35 | return m_parent->CreateListItem(param); 36 | } 37 | 38 | void Start(StartParam& param) 39 | { 40 | param.list_item->Show(common::transition::Type_Popup1); 41 | } 42 | 43 | private: 44 | 45 | GenericServerMenu *m_parent; 46 | }; 47 | 48 | class GoToJob : public job::JobItem 49 | { 50 | public: 51 | 52 | GoToJob(GenericServerMenu *parent) : job::JobItem("Server::GoToJob", NULL), m_parent(parent) 53 | { 54 | 55 | } 56 | 57 | ~GoToJob() {} 58 | 59 | void Run() 60 | { 61 | m_parent->GoTo(m_targetRef); 62 | } 63 | 64 | void Finish() {} 65 | 66 | void SetRef(const string& ref) 67 | { 68 | m_targetRef = ref; 69 | } 70 | 71 | private: 72 | 73 | GenericServerMenu *m_parent; 74 | string m_targetRef; 75 | }; 76 | 77 | class BrowserPage 78 | { 79 | public: 80 | 81 | BrowserPage() : m_isLoaded(false) 82 | { 83 | 84 | } 85 | 86 | ~BrowserPage() 87 | { 88 | 89 | } 90 | 91 | vector *m_itemList; 92 | ui::ListView *m_list; 93 | bool m_isLoaded; 94 | }; 95 | 96 | GenericServerMenu(); 97 | 98 | virtual ~GenericServerMenu(); 99 | 100 | virtual MenuType GetMenuType() = 0; 101 | 102 | virtual const uint32_t *GetSupportedSettingsItems(int32_t *count) = 0; 103 | 104 | ui::ListItem* CreateListItem(ui::listview::ItemFactory::CreateParam& param); 105 | 106 | void GoTo(const string& ref); 107 | 108 | bool PushBrowserPage(string *ref); 109 | 110 | bool PopBrowserPage(); 111 | 112 | protected: 113 | 114 | GenericServerBrowser *m_browser; 115 | 116 | private: 117 | 118 | void OnBackButton(); 119 | void OnListButton(ui::Widget *wdg); 120 | void OnSettingsButton(); 121 | void OnPlayerEvent(int32_t type); 122 | void OnOptionMenuEvent(int32_t type); 123 | void OnConnectionFailedDialogEvent(); 124 | void OnPlayerCreateTimeout(GenericServerBrowser::Entry *entry); 125 | 126 | ui::Widget *m_browserRoot; 127 | ui::BusyIndicator *m_loaderIndicator; 128 | ui::Text *m_topText; 129 | vector m_pageList; 130 | menu::PlayerSimple *m_player; 131 | bool m_firstBoot; 132 | bool m_playerFailed; 133 | }; 134 | } 135 | 136 | #endif -------------------------------------------------------------------------------- /NetStream/include/menus/menu_settings.h: -------------------------------------------------------------------------------- 1 | #ifndef _MENU_SETTINGS_H_ 2 | #define _MENU_SETTINGS_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "menus/menu_generic.h" 8 | 9 | using namespace paf; 10 | 11 | namespace menu { 12 | class Settings 13 | { 14 | public: 15 | 16 | enum 17 | { 18 | SettingsEvent = (ui::Handler::CB_STATE + 0x30000), 19 | }; 20 | 21 | enum SettingsEvent 22 | { 23 | SettingsEvent_Close, 24 | SettingsEvent_ValueChange 25 | }; 26 | 27 | Settings(); 28 | 29 | ~Settings(); 30 | 31 | static Settings *GetInstance(); 32 | 33 | static sce::AppSettings *GetAppSetInstance(); 34 | 35 | static void Init(); 36 | 37 | private: 38 | 39 | static void CBOnStartPageTransition(const char *elementId, int32_t type); 40 | 41 | static void CBOnPageActivate(const char *elementId, int32_t type); 42 | 43 | static void CBOnPageDeactivate(const char *elementId, int32_t type); 44 | 45 | static int32_t CBOnCheckVisible(const char *elementId, bool *pIsVisible); 46 | 47 | static int32_t CBOnPreCreate(const char *elementId, sce::AppSettings::Element *element); 48 | 49 | static int32_t CBOnPostCreate(const char *elementId, paf::ui::Widget *widget); 50 | 51 | static int32_t CBOnPress(const char *elementId, const char *newValue); 52 | 53 | static int32_t CBOnPress2(const char *elementId, const char *newValue); 54 | 55 | static void CBOnTerm(int32_t result); 56 | 57 | static wchar_t *CBOnGetString(const char *elementId); 58 | 59 | static int32_t CBOnGetSurface(graph::Surface **surf, const char *elementId); 60 | }; 61 | } 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /NetStream/include/netstream_locale.h: -------------------------------------------------------------------------------- 1 | #ifndef _netstream_locale_H_ 2 | #define _netstream_locale_H_ 3 | 4 | // 5 | //This file was generated automatically by psp2pafhshgen.exe 6 | // 7 | 8 | #define msg_title_menu_first (0xcae20590) 9 | #define msg_fpmenu_item_0 (0xab1aa619) 10 | #define msg_fpmenu_item_1 (0xc308121f) 11 | #define msg_fpmenu_item_2 (0x45965a3d) 12 | #define msg_fpmenu_item_3 (0xa8fb98bc) 13 | #define msg_fpmenu_item_4 (0x5c491dfd) 14 | #define msg_youtube_history (0xa8a29762) 15 | #define msg_youtube_description (0x336514d8) 16 | #define msg_youtube_comment_more (0xa3ada054) 17 | #define msg_youtube_comment_detail (0x057bb502) 18 | #define msg_youtube_comment_reply (0x996ef6f5) 19 | #define msg_youtube_comment_like_count (0xc4d65d6e) 20 | #define msg_next_page (0x8adf20f8) 21 | #define msg_previous_page (0xede8bfcb) 22 | #define msg_settings (0xed3441bf) 23 | #define msg_settings_http (0x6c5673f2) 24 | #define msg_settings_ftp (0x704624b0) 25 | #define msg_settings_local (0xd9a4496d) 26 | #define msg_settings_search (0x58e3fab6) 27 | #define msg_settings_comment (0x126adfcc) 28 | #define msg_settings_quality (0xe8b7b3e1) 29 | #define msg_settings_youtube_player (0xa5f0b5bf) 30 | #define msg_settings_cloud_sync (0xd17de6c8) 31 | #define msg_settings_verinfo (0x32a4c75a) 32 | #define msg_http_host (0xdcb23ff1) 33 | #define msg_http_port (0xc7f3641b) 34 | #define msg_http_user (0x4af03db0) 35 | #define msg_http_password (0x1df489af) 36 | #define msg_ftp_host (0x3bfcdb72) 37 | #define msg_ftp_port (0xa27211e8) 38 | #define msg_ftp_user (0x91940499) 39 | #define msg_ftp_password (0x8b0f92bb) 40 | #define msg_ftp_nlst (0xc8025a39) 41 | #define msg_ftp_nlst_hint (0x8bac33a4) 42 | #define msg_local_playlist_prefix (0x4278708e) 43 | #define msg_local_sort_name (0xd5e8c8fa) 44 | #define msg_local_sort_type (0x02c5dfcb) 45 | #define msg_option_local_sort_name_0 (0x6ae3e929) 46 | #define msg_option_local_sort_name_1 (0x27cace63) 47 | #define msg_option_local_sort_type_0 (0x07755294) 48 | #define msg_option_local_sort_type_1 (0xa20432c9) 49 | #define msg_youtube_quality (0xc3f81023) 50 | #define msg_youtube_hls_quality (0x20d26d06) 51 | #define msg_youtube_inv_instance (0x40157a95) 52 | #define msg_youtube_region (0xb1f1b682) 53 | #define msg_youtube_search_sort (0x656f44a5) 54 | #define msg_youtube_search_date (0xcf93868a) 55 | #define msg_youtube_comment_sort (0xfd6ca373) 56 | #define msg_option_search_sort_0 (0x522b5f02) 57 | #define msg_option_search_sort_1 (0xecde5937) 58 | #define msg_option_search_sort_2 (0xa41c4c57) 59 | #define msg_option_search_sort_3 (0x2dc7bf9f) 60 | #define msg_option_search_date_0 (0x9dc2d0cd) 61 | #define msg_option_search_date_1 (0x7972fabe) 62 | #define msg_option_search_date_2 (0x8b497f22) 63 | #define msg_option_search_date_3 (0xe22a82a1) 64 | #define msg_option_search_date_4 (0x9a7b465f) 65 | #define msg_option_search_date_5 (0xe7a24a6b) 66 | #define msg_option_comment_sort_0 (0x0715b7f3) 67 | #define msg_option_comment_sort_1 (0x59115ba0) 68 | #define msg_option_youtube_quality_0 (0x090a5a71) 69 | #define msg_option_youtube_quality_1 (0xd17626b2) 70 | #define msg_option_youtube_hls_quality_0 (0xecf44403) 71 | #define msg_option_youtube_hls_quality_1 (0x34825a88) 72 | #define msg_option_youtube_hls_quality_2 (0x935fbb15) 73 | #define msg_option_youtube_hls_quality_3 (0x78d3872d) 74 | #define msg_option_youtube_hls_quality_4 (0x80acb85a) 75 | #define msg_toggle_cloud_sync (0xe3434564) 76 | #define msg_toggle_cloud_sync_auto (0x2144bf5c) 77 | #define msg_cloud_sync_hint (0x650bd57f) 78 | #define msg_toggle_youtube_min (0x9236786a) 79 | #define msg_settings_hvdb_clean_all_entry_confirm (0x82377bf8) 80 | #define msg_settings_hvdb_clean_all_entry (0xba37d16c) 81 | #define msg_settings_hvdb_add_entry (0x31f8a85b) 82 | #define msg_settings_youtube_cloud_upload (0x5fe6009c) 83 | #define msg_settings_youtube_cloud_download (0xb35e246e) 84 | #define msg_settings_youtube_clean_history (0xce0c7a4d) 85 | #define msg_settings_youtube_clean_fav (0x0342b229) 86 | #define msg_settings_youtube_clean_history_confirm (0xd3225a4e) 87 | #define msg_settings_youtube_clean_fav_confirm (0x68a1ba57) 88 | #define msg_settings_youtube_download (0x8449e69c) 89 | #define msg_settings_youtube_download_audio (0x99364cad) 90 | #define msg_settings_youtube_download_begin (0x5ed1d900) 91 | #define msg_hvdb_add_entry (0x5207934f) 92 | #define msg_hvdb_error_id_not_exist (0xda8c3984) 93 | #define msg_error_psn_connection (0x56f0c03c) 94 | #endif -------------------------------------------------------------------------------- /NetStream/include/netstream_settings.h: -------------------------------------------------------------------------------- 1 | #ifndef _netstream_settings_H_ 2 | #define _netstream_settings_H_ 3 | 4 | // 5 | //This file was generated automatically by psp2pafhshgen.exe 6 | // 7 | 8 | #define ns_setting (0x9ae4442b) 9 | #define http_setting (0x823282d5) 10 | #define http_host (0xbe7aa61b) 11 | #define http_port (0x4d5195ab) 12 | #define http_user (0x74bca4c7) 13 | #define http_password (0x1cc16d21) 14 | #define ftp_setting (0x72e40d3f) 15 | #define ftp_host (0xe1a509f3) 16 | #define ftp_port (0xef7b3626) 17 | #define ftp_user (0x89e77ea8) 18 | #define ftp_password (0x571003fe) 19 | #define ftp_nlst (0xd6f1d921) 20 | #define local_setting (0x988ec70c) 21 | #define local_playlist_prefix (0xa088d09c) 22 | #define list_local_sort_name (0xf7bca884) 23 | #define list_local_sort_name_00 (0x8b449a7a) 24 | #define list_local_sort_name_01 (0xa0340593) 25 | #define list_local_sort_type (0x6e2b969f) 26 | #define list_local_sort_type_00 (0x8cca7adf) 27 | #define list_local_sort_type_01 (0x996d8e98) 28 | #define youtube_search_setting (0x47942f14) 29 | #define youtube_inv_instance (0xb938b374) 30 | #define youtube_region (0x4466b383) 31 | #define list_youtube_search_sort (0xcf6d2a1c) 32 | #define list_youtube_search_sort_00 (0x43d23f6c) 33 | #define list_youtube_search_sort_01 (0xa6ae18f3) 34 | #define list_youtube_search_sort_02 (0x331188e8) 35 | #define list_youtube_search_sort_03 (0x0842641b) 36 | #define list_youtube_search_date (0xcdcb47c1) 37 | #define list_youtube_search_date_00 (0xe8d5f4d5) 38 | #define list_youtube_search_date_01 (0x98d22213) 39 | #define list_youtube_search_date_02 (0x98f72046) 40 | #define list_youtube_search_date_03 (0x154a251e) 41 | #define list_youtube_search_date_04 (0xf19b986e) 42 | #define list_youtube_search_date_05 (0x8f0eac16) 43 | #define youtube_comment_setting (0x83fbebce) 44 | #define list_youtube_comment_sort (0xec9209f7) 45 | #define llist_youtube_comment_sort_00 (0x4993c0b5) 46 | #define llist_youtube_comment_sort_01 (0x197955f2) 47 | #define youtube_quality_setting (0x962064f3) 48 | #define list_youtube_quality (0x77e5a453) 49 | #define list_youtube_quality_00 (0xeb42ff53) 50 | #define list_youtube_quality_01 (0x619fad08) 51 | #define list_youtube_hls_quality (0x5f4b5e3b) 52 | #define list_youtube_hls_quality_00 (0xa1d3d966) 53 | #define list_youtube_hls_quality_01 (0x4df49f52) 54 | #define list_youtube_hls_quality_02 (0x19caa880) 55 | #define list_youtube_hls_quality_03 (0xe6bfddae) 56 | #define list_youtube_hls_quality_04 (0x4a778ca1) 57 | #define youtube_player_setting (0xb7539596) 58 | #define toggle_youtube_min (0x32513d0c) 59 | #define cloud_sync_setting (0xfb02b78a) 60 | #define toggle_cloud_sync (0x2c7de826) 61 | #define toggle_cloud_sync_auto (0x59fcfe5e) 62 | #define verinfo_setting (0x45eb30eb) 63 | #define label_verinfo (0x804ff666) 64 | #endif -------------------------------------------------------------------------------- /NetStream/include/np_utils.h: -------------------------------------------------------------------------------- 1 | #ifndef _NP_UTILS_H_ 2 | #define _NP_UTILS_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | using namespace paf; 9 | 10 | namespace nputils 11 | { 12 | class TUS 13 | { 14 | public: 15 | 16 | TUS(); 17 | 18 | ~TUS(); 19 | 20 | int32_t Init(); 21 | 22 | int32_t Term(); 23 | 24 | int32_t UploadFile(uint32_t slot, const char *path); 25 | 26 | int32_t DownloadFile(uint32_t slot, const char *path); 27 | 28 | int32_t UploadString(uint32_t slot, const string& data); 29 | 30 | int32_t DownloadString(uint32_t slot, string& data); 31 | 32 | int32_t GetDataStatus(uint32_t slot, SceNpTusDataStatus *status); 33 | 34 | int32_t DeleteData(uint32_t slot); 35 | 36 | int32_t DeleteData(const vector *slots); 37 | 38 | private: 39 | 40 | SceNpId m_npid; 41 | int32_t m_ctx; 42 | }; 43 | 44 | int32_t PreInit(thread::SyncCall::Function onComplete); 45 | 46 | int32_t Init(const char *tag = NULL, bool needTUS = false, const vector *usedTUSSlots = NULL); 47 | 48 | int32_t Term(); 49 | 50 | bool IsAllGreen(); 51 | 52 | TUS *GetTUS(); 53 | 54 | int32_t NetDialogInit(void *data); 55 | 56 | void NetDialogCheck(void *data); 57 | }; 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /NetStream/include/option_menu.h: -------------------------------------------------------------------------------- 1 | #ifndef _OPTION_MENU_H_ 2 | #define _OPTION_MENU_H_ 3 | 4 | #include 5 | #include 6 | 7 | using namespace paf; 8 | 9 | #define OPTION_MENU_BUTTON_MAGIC 0xa5448baf 10 | 11 | class OptionMenu 12 | { 13 | public: 14 | 15 | enum 16 | { 17 | OptionMenuEvent = (ui::Handler::CB_STATE + 0x50000), 18 | }; 19 | 20 | enum OptionMenuEvent 21 | { 22 | OptionMenuEvent_Button, 23 | OptionMenuEvent_Close 24 | }; 25 | 26 | class Button 27 | { 28 | public: 29 | 30 | wstring label; 31 | }; 32 | 33 | OptionMenu(Plugin *workPlugin, ui::Widget *root, vector