Skip to content

Commit 0e8abc9

Browse files
author
lijiahao
committed
1.5.0
1 parent a81ef93 commit 0e8abc9

File tree

20 files changed

+129
-24
lines changed

20 files changed

+129
-24
lines changed

app/background.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15983,7 +15983,7 @@ module.exports = path.URL;
1598315983
/***/ ((module) => {
1598415984

1598515985
"use strict";
15986-
module.exports = /*#__PURE__*/JSON.parse('{"private":true,"name":"xstreaming","description":"xstreaming","version":"1.4.0","author":"Geocld <lijiahao5372@gmail.com>","main":"app/background.js","scripts":{"dev":"DEBUG=xstreaming:authenticationV2 nextron","build":"nextron build","lint":"eslint . --ext .ts && eslint renderer/ --ext .tsx","lint:fix":"eslint . --ext .ts --fix && eslint renderer/ --ext .tsx --fix","postinstall":"electron-builder install-app-deps","publish":"electron-builder -p onTag","flatpak-build":"nextron build --no-pack && electron-builder --dir"},"dependencies":{"@nextui-org/react":"^2.4.6","axios":"^1.7.7","compare-versions":"^6.1.0","debounce":"^2.1.1","debug":"^4.3.4","electron-serve":"^1.3.0","electron-store":"^8.0.1","express":"^4.18.3","express-http-proxy":"^2.0.0","express-ws":"^5.0.2","framer-motion":"^11.5.4","github-url-to-object":"^4.0.6","i18next":"23.14.0","ip-address":"^9.0.5","jose":"^5.1.0","moment":"^2.30.1","next-i18next":"^15.3.1","next-themes":"^0.3.0","react-i18next":"^15.0.1","react-query":"^3.39.3","semver":"^7.6.3","uplot":"^1.6.30","uuid-1345":"^1.0.2","xbox-webapi":"^1.4.1","xstreaming-player":"0.2.6","xvfb-maybe":"^0.2.1"},"devDependencies":{"@babel/core":"^7.24.4","@fortawesome/fontawesome-free":"^6.5.1","@next/eslint-plugin-next":"^14.2.2","@types/node":"^20.12.7","@types/react":"^18.2.47","@typescript-eslint/eslint-plugin":"^8.6.0","@typescript-eslint/parser":"^8.6.0","autoprefixer":"^10.4.20","babel-loader":"^9.1.3","electron":"33","electron-builder":"^24.13.3","eslint":"^8.57.0","eslint-plugin-react-hooks":"^4.6.2","eslint-plugin-react-refresh":"^0.4.12","next":"^13.5.6","nextron":"^8.13.0","node-loader":"^2.0.0","postcss":"^8.4.45","react":"^18.1.0","react-dom":"^18.1.0","sass":"^1.78.0","tailwindcss":"^3.4.10","typescript":"^5.3.3"},"packageManager":"yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447"}');
15986+
module.exports = /*#__PURE__*/JSON.parse('{"private":true,"name":"xstreaming","description":"xstreaming","version":"1.4.0","author":"Geocld <lijiahao5372@gmail.com>","main":"app/background.js","scripts":{"dev":"DEBUG=xstreaming:authenticationV2 nextron","build":"nextron build","lint":"eslint . --ext .ts && eslint renderer/ --ext .tsx","lint:fix":"eslint . --ext .ts --fix && eslint renderer/ --ext .tsx --fix","postinstall":"electron-builder install-app-deps","publish":"electron-builder -p onTag","flatpak-build":"nextron build --no-pack && electron-builder --dir"},"dependencies":{"@nextui-org/react":"^2.4.6","axios":"^1.7.7","compare-versions":"^6.1.0","debounce":"^2.1.1","debug":"^4.3.4","electron-serve":"^1.3.0","electron-store":"^8.0.1","express":"^4.18.3","express-http-proxy":"^2.0.0","express-ws":"^5.0.2","framer-motion":"^11.5.4","github-url-to-object":"^4.0.6","i18next":"23.14.0","ip-address":"^9.0.5","jose":"^5.1.0","moment":"^2.30.1","next-i18next":"^15.3.1","next-themes":"^0.3.0","react-i18next":"^15.0.1","react-query":"^3.39.3","semver":"^7.6.3","uplot":"^1.6.30","uuid-1345":"^1.0.2","xbox-webapi":"^1.4.1","xstreaming-player":"0.2.7","xvfb-maybe":"^0.2.1"},"devDependencies":{"@babel/core":"^7.24.4","@fortawesome/fontawesome-free":"^6.5.1","@next/eslint-plugin-next":"^14.2.2","@types/node":"^20.12.7","@types/react":"^18.2.47","@typescript-eslint/eslint-plugin":"^8.6.0","@typescript-eslint/parser":"^8.6.0","autoprefixer":"^10.4.20","babel-loader":"^9.1.3","electron":"33","electron-builder":"^24.13.3","eslint":"^8.57.0","eslint-plugin-react-hooks":"^4.6.2","eslint-plugin-react-refresh":"^0.4.12","next":"^13.5.6","nextron":"^8.13.0","node-loader":"^2.0.0","postcss":"^8.4.45","react":"^18.1.0","react-dom":"^18.1.0","sass":"^1.78.0","tailwindcss":"^3.4.10","typescript":"^5.3.3"},"packageManager":"yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447"}');
1598715987

1598815988
/***/ })
1598915989

app/preload.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flatpak/io.github.Geocld.XStreamingDesktop.metainfo.xml

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,40 @@
77
<developer_name>Geocld</developer_name>
88
<summary>XStreaming is an open-source client for xCloud and Xbox home streaming</summary>
99
<metadata_license>CC0-1.0</metadata_license>
10-
<url type="homepage">https://github.com/Geocld/XStreaming-desktop</url>
11-
<url type="help">https://github.com/Geocld/XStreaming-desktop/issues</url>
12-
<url type="bugtracker">https://github.com/Geocld/XStreaming-desktop/issues</url>
10+
<url type="homepage">https://github.com/Geocld/XStreamingDesktop</url>
11+
<url type="help">https://github.com/Geocld/XStreamingDesktop/issues</url>
12+
<url type="bugtracker">https://github.com/Geocld/XStreamingDesktop/issues</url>
1313
<description>
1414
<p>Xbox streaming client, you can play Xbox games anywhere.</p>
1515
</description>
1616
<screenshots>
1717
<screenshot type="default">
18-
<image type="source">https://raw.githubusercontent.com/Geocld/XStreaming-desktop/main/images/console.jpg</image>
18+
<image type="source">https://raw.githubusercontent.com/Geocld/XStreamingDesktop/main/images/console.jpg</image>
1919
</screenshot>
2020
<screenshot>
21-
<image type="source">https://raw.githubusercontent.com/Geocld/XStreaming-desktop/main/images/xcloud.jpg</image>
21+
<image type="source">https://raw.githubusercontent.com/Geocld/XStreamingDesktop/main/images/xcloud.jpg</image>
2222
</screenshot>
2323
<screenshot>
24-
<image type="source">https://raw.githubusercontent.com/Geocld/XStreaming-desktop/main/images/xcloud2.jpg</image>
24+
<image type="source">https://raw.githubusercontent.com/Geocld/XStreamingDesktop/main/images/xcloud2.jpg</image>
2525
</screenshot>
2626
<screenshot>
27-
<image type="source">https://raw.githubusercontent.com/Geocld/XStreaming-desktop/main/images/settings.jpg</image>
27+
<image type="source">https://raw.githubusercontent.com/Geocld/XStreamingDesktop/main/images/settings.jpg</image>
2828
</screenshot>
2929
</screenshots>
3030
<releases>
31+
<release version="1.5.0" date="2025-03-24">
32+
<description>
33+
<ul>
34+
<li>Fixed:</li>
35+
<li>Stream black screen in some case.</li>
36+
</ul>
37+
<ul>
38+
<li>Features:</li>
39+
<li>New logo</li>
40+
<li>Stick maping in keyboard supported.</li>
41+
</ul>
42+
</description>
43+
</release>
3144
<release version="1.4.1" date="2025-03-04">
3245
<description>
3346
<ul>
-45.2 KB
Loading

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"private": true,
33
"name": "xstreaming",
44
"description": "xstreaming",
5-
"version": "1.4.0",
5+
"version": "1.5.0",
66
"author": "Geocld <lijiahao5372@gmail.com>",
77
"main": "app/background.js",
88
"scripts": {
@@ -39,7 +39,7 @@
3939
"uplot": "^1.6.30",
4040
"uuid-1345": "^1.0.2",
4141
"xbox-webapi": "^1.4.1",
42-
"xstreaming-player": "0.2.6",
42+
"xstreaming-player": "0.2.7",
4343
"xvfb-maybe": "^0.2.1"
4444
},
4545
"devDependencies": {

renderer/common/settings.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,19 @@ const getSettingsMetas = (t) => {
7373
{value: false, label: t('Disable')},
7474
],
7575
},
76+
{
77+
name: 'fontSize',
78+
type: 'radio',
79+
title: t('Font Size'),
80+
needRestart: true,
81+
description: t('Set the app font size'),
82+
data: [
83+
{value: '14', label: t('Small')},
84+
{value: '16', label: t('Normal')},
85+
{value: '18', label: t('Big')},
86+
{value: '20', label: t('Super Big')},
87+
],
88+
},
7689
],
7790
streaming: [
7891
{

renderer/components/KeyboardMap.tsx

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ function KeyboardMap() {
3232
"RightTrigger",
3333
"LeftThumb",
3434
"RightThumb",
35+
"LeftThumbXAxisPlus",
36+
"LeftThumbXAxisMinus",
37+
"LeftThumbYAxisPlus",
38+
"LeftThumbYAxisMinus",
39+
"RightThumbXAxisPlus",
40+
"RightThumbXAxisMinus",
41+
"RightThumbYAxisPlus",
42+
"RightThumbYAxisMinus"
3543
];
3644
const { theme } = useTheme();
3745
const { settings, setSettings } = useSettings();
@@ -121,6 +129,30 @@ function KeyboardMap() {
121129
case "RightThumb":
122130
fullBtnText = "Right Thumbstick";
123131
break;
132+
case "LeftThumbXAxisPlus":
133+
fullBtnText = "Left Stick +x";
134+
break;
135+
case "LeftThumbXAxisMinus":
136+
fullBtnText = "Left Stick -x";
137+
break;
138+
case "LeftThumbYAxisPlus":
139+
fullBtnText = "Left Stick +y";
140+
break;
141+
case "LeftThumbYAxisMinus":
142+
fullBtnText = "Left Stick -y";
143+
break;
144+
case "RightThumbXAxisPlus":
145+
fullBtnText = "Right Stick +x";
146+
break;
147+
case "RightThumbXAxisMinus":
148+
fullBtnText = "Right Stick -x";
149+
break;
150+
case "RightThumbYAxisPlus":
151+
fullBtnText = "Right Stick +y";
152+
break;
153+
case "RightThumbYAxisMinus":
154+
fullBtnText = "Right Stick -y";
155+
break;
124156
default:
125157
fullBtnText = btn;
126158
break;

renderer/components/SettingItem.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ const SettingItem = (props) => {
2626
if (item.name === 'theme') {
2727
const localTheme = localStorage.getItem('theme') || 'xbox-dark'
2828
setDefaultValue(localTheme)
29+
} else if (item.name === 'fontSize') {
30+
const localTheme = localStorage.getItem('fontSize') || '18'
31+
setDefaultValue(localTheme)
2932
} else {
3033
setDefaultValue(settings[item.name])
3134
}
@@ -66,6 +69,9 @@ const SettingItem = (props) => {
6669
} else if (key === 'theme') {
6770
localStorage.setItem('theme', value)
6871
props.onRestartWarn && props.onRestartWarn()
72+
} else if (key === 'fontSize') {
73+
localStorage.setItem('fontSize', value)
74+
document.documentElement.style.fontSize = value + 'px';
6975
} else {
7076
setSettings({
7177
...settings,

renderer/pages/[locale]/home.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ function Home() {
6565
if (localTheme === 'xbox-light') {
6666
setTheme(localTheme)
6767
}
68+
69+
const localFontSize = localStorage.getItem('fontSize');
70+
if (localFontSize !== '16') {
71+
document.documentElement.style.fontSize = localFontSize + 'px';
72+
}
73+
6874
setLoading(true);
6975
setLoadingText(t("Loading..."));
7076

@@ -279,7 +285,7 @@ function Home() {
279285
<AuthModal show={showLoginModal} onConfirm={handleLogin} />
280286

281287
<Layout>
282-
<div className="gap-4 grid grid-cols-2 sm:grid-cols-3 md:grid-cols-3 lg:grid-cols-4">
288+
<div className="gap-4 grid grid-cols-3">
283289
{consoles.map((console) => {
284290
let consoleName: string
285291
switch (console.consoleType) {

renderer/pages/[locale]/stream.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,11 @@ function Stream() {
240240
});
241241
}, 30 * 1000);
242242
}
243+
244+
// Refresh video player
245+
if (settings.display_options) {
246+
refreshPlayer(settings.display_options)
247+
}
243248
}, 500);
244249
} else if (event.state === "closed") {
245250
console.log(":: We are disconnected!");
@@ -360,6 +365,7 @@ function Stream() {
360365
return () => {
361366
if (xPlayer !== undefined) {
362367
xPlayer.close();
368+
setxPlayer(null);
363369
}
364370

365371
if (keepaliveInterval.current) {

0 commit comments

Comments
 (0)