1
0
mirror of https://github.com/pavlobu/deskreen.git synced 2025-06-01 07:10:09 -07:00

ready for v1.0.8

This commit is contained in:
Pavlo Buidenkov 2021-02-23 19:47:10 +02:00
parent b3dc152ae2
commit 671763ba15
14 changed files with 49 additions and 127 deletions

View File

@ -1,3 +1,13 @@
# 1.0.8 (23 Feb 2021)
Changes:
- added locales for Traditional Chinese language, special thanks to @taotieren
- minor UI improvements
<br/>
<br/>
# 1.0.7 (21 Feb 2021) # 1.0.7 (21 Feb 2021)
Changes: Changes:

View File

@ -121,6 +121,7 @@ exports[`should match exact snapshot 1`] = `
style={ style={
Object { Object {
"transform": "translateY(2px) translateX(-5px)", "transform": "translateY(2px) translateX(-5px)",
"width": "max-content",
} }
} }
> >
@ -137,27 +138,6 @@ exports[`should match exact snapshot 1`] = `
</span> </span>
</span> </span>
</div> </div>
<div
className="col-xs-12 col-md-1"
>
<div
className="row center-xs"
style={
Object {
"height": "42px",
}
}
>
<div
className=""
>
FPS: 
</div>
<p
id="fps-show"
/>
</div>
</div>
<div <div
className="col-xs-12 col-md-5" className="col-xs-12 col-md-5"
> >
@ -237,7 +217,7 @@ exports[`should match exact snapshot 1`] = `
className="col-xs" className="col-xs"
> >
<div <div
className="bp3-text-large" className="bp3-text-large play-pause-text"
> >
Pause Pause
</div> </div>

View File

@ -0,0 +1,3 @@
.play-pause-text {
width: max-content;
}

View File

@ -30,6 +30,8 @@ import handlePlayerToggleFullscreen from './handlePlayerToggleFullscreen';
import initScreenfullOnChange from './initScreenfullOnChange'; import initScreenfullOnChange from './initScreenfullOnChange';
import ScreenSharingSource from '../../features/PeerConnection/ScreenSharingSourceEnum'; import ScreenSharingSource from '../../features/PeerConnection/ScreenSharingSourceEnum';
import { REACT_PLAYER_WRAPPER_ID } from '../../constants/appConstants'; import { REACT_PLAYER_WRAPPER_ID } from '../../constants/appConstants';
import './index.css'
const videoQualityButtonStyle: React.CSSProperties = { const videoQualityButtonStyle: React.CSSProperties = {
width: '100%', width: '100%',
@ -152,7 +154,10 @@ function PlayerControlPanel(props: PlayerControlPanelProps) {
</Col> </Col>
<Col xs> <Col xs>
<div <div
style={{ transform: 'translateY(2px) translateX(-5px)' }} style={{
transform: 'translateY(2px) translateX(-5px)',
width: 'max-content',
}}
> >
<Text>{t('Donate')}</Text> <Text>{t('Donate')}</Text>
</div> </div>
@ -161,12 +166,6 @@ function PlayerControlPanel(props: PlayerControlPanelProps) {
</Button> </Button>
</Tooltip> </Tooltip>
</Col> </Col>
<Col xs={12} md={1}>
<Row center="xs" style={{ height: '42px' }}>
<Text>FPS:&nbsp;</Text>
<p id="fps-show"></p>
</Row>
</Col>
<Col xs={12} md={5}> <Col xs={12} md={5}>
<Row center="xs" style={{ height: '42px' }}> <Row center="xs" style={{ height: '42px' }}>
<Row <Row
@ -206,7 +205,8 @@ function PlayerControlPanel(props: PlayerControlPanelProps) {
/> />
</Col> </Col>
<Col xs> <Col xs>
<Text className="bp3-text-large"> { /* @ts-ignore */ }
<Text className="bp3-text-large play-pause-text">
{isPlaying ? t('Pause') : t('Play')} {isPlaying ? t('Pause') : t('Play')}
</Text> </Text>
</Col> </Col>
@ -252,7 +252,9 @@ function PlayerControlPanel(props: PlayerControlPanelProps) {
toaster?.show({ toaster?.show({
icon: 'clean', icon: 'clean',
intent: Intent.PRIMARY, intent: Intent.PRIMARY,
message: `${t('Video quality has been changed to')} ${q}`, message: `${t(
'Video quality has been changed to'
)} ${q}`,
}); });
}} }}
> >
@ -266,7 +268,10 @@ function PlayerControlPanel(props: PlayerControlPanelProps) {
position={Position.BOTTOM} position={Position.BOTTOM}
popoverClassName={Classes.POPOVER_CONTENT_SIZING} popoverClassName={Classes.POPOVER_CONTENT_SIZING}
> >
<Tooltip content={t('Click to Open Video Settings')} position={Position.BOTTOM}> <Tooltip
content={t('Click to Open Video Settings')}
position={Position.BOTTOM}
>
<Button minimal> <Button minimal>
<Icon icon="cog" color="white" /> <Icon icon="cog" color="white" />
</Button> </Button>
@ -321,7 +326,9 @@ function PlayerControlPanel(props: PlayerControlPanelProps) {
icon: 'video', icon: 'video',
intent: Intent.PRIMARY, intent: Intent.PRIMARY,
message: `${ message: `${
isDefaultPlayerTurnedOn ? t('Default video player has been turned OFF') : t('Default video player has been turned ON') isDefaultPlayerTurnedOn
? t('Default video player has been turned OFF')
: t('Default video player has been turned ON')
}`, }`,
}); });
}} }}

View File

@ -133,6 +133,7 @@ exports[`should match exact snapshot 1`] = `
style={ style={
Object { Object {
"transform": "translateY(2px) translateX(-5px)", "transform": "translateY(2px) translateX(-5px)",
"width": "max-content",
} }
} }
> >
@ -149,27 +150,6 @@ exports[`should match exact snapshot 1`] = `
</span> </span>
</span> </span>
</div> </div>
<div
className="col-xs-12 col-md-1"
>
<div
className="row center-xs"
style={
Object {
"height": "42px",
}
}
>
<div
className=""
>
FPS: 
</div>
<p
id="fps-show"
/>
</div>
</div>
<div <div
className="col-xs-12 col-md-5" className="col-xs-12 col-md-5"
> >
@ -249,7 +229,7 @@ exports[`should match exact snapshot 1`] = `
className="col-xs" className="col-xs"
> >
<div <div
className="bp3-text-large" className="bp3-text-large play-pause-text"
> >
Play Play
</div> </div>

View File

@ -14,63 +14,6 @@ export function getSharingShourceType(peerConnection: PeerConnection) {
} }
} }
let lastFramesReceived = 0;
let lastCalculatedFPS = 0;
let lastCalculatedFPSTimestamp = 0;
function dumpStatsFramesPerSecondOnly(results: any) {
// framesReceived
let isFremsPerSecondSet;
// let statsString = '';
results.forEach((res: any) => {
// statsString += '<h3>Report type=';
// statsString += res.type;
// statsString += '</h3>\n';
// statsString += `id ${res.id}<br>`;
// statsString += `time ${res.timestamp}<br>`;
Object.keys(res).forEach(k => {
if (k.includes('framesPerSecond') && k !== 'timestamp' && k !== 'type' && k !== 'id') {
// statsString += `${k}: ${res[k]}<br>`;
const fpsElement = document.getElementById('fps-show');
if (fpsElement) {
fpsElement.innerHTML = res[k];
}
isFremsPerSecondSet = true;
}
if (k.includes('framesReceived') && k !== 'timestamp' && k !== 'type' && k !== 'id') {
const currentTime = new Date().getTime();
const currentFramesReceived = parseInt(res[k], 10);
if (lastFramesReceived === 0) {
lastFramesReceived = currentFramesReceived;
lastCalculatedFPSTimestamp = currentTime;
return;
}
const framesDifference = currentFramesReceived - lastFramesReceived;
console.log('framesDifference', framesDifference);
const timeDifference = currentTime - lastCalculatedFPSTimestamp;
console.log('timeDifference', timeDifference);
const howManyTimesTimeDifferenceIsMorThanOneSecond = timeDifference / 1000;
console.log('howManyTimesTimeDifferenceIsMorThanOneSecond', howManyTimesTimeDifferenceIsMorThanOneSecond);
lastCalculatedFPS = Math.floor(framesDifference / howManyTimesTimeDifferenceIsMorThanOneSecond);
lastFramesReceived = currentFramesReceived;
lastCalculatedFPSTimestamp = currentTime;
}
});
});
if (!isFremsPerSecondSet) {
const fpsElement = document.getElementById('fps-show');
if (fpsElement) {
fpsElement.innerHTML = `~${lastCalculatedFPS}`;
}
}
// return statsString;
}
export default (peerConnection: PeerConnection) => { export default (peerConnection: PeerConnection) => {
if (peerConnection.peer === null) { if (peerConnection.peer === null) {
throw new PeerConnectionPeerIsNullError(); throw new PeerConnectionPeerIsNullError();
@ -100,17 +43,6 @@ export default (peerConnection: PeerConnection) => {
}); });
}, 1000); }, 1000);
setInterval(() => {
// console.log('peerConnection framerate', peerConnection.peer);
// @ts-ignore
if (peerConnection.peer && peerConnection.peer._pc) {
// @ts-ignore
peerConnection.peer._pc.getStats(null).then((results: any) => {
dumpStatsFramesPerSecondOnly(results);
});
}
}, 2000);
peerConnection.videoAutoQualityOptimizer.startOptimizationLoop(); peerConnection.videoAutoQualityOptimizer.startOptimizationLoop();
setTimeout(getSharingShourceType, 1000, peerConnection); setTimeout(getSharingShourceType, 1000, peerConnection);

View File

@ -169,6 +169,7 @@ export default function ChooseAppOrScreenOverlay(
onClick={handleRefreshSources} onClick={handleRefreshSources}
style={{ style={{
borderRadius: '100px', borderRadius: '100px',
width: 'max-content',
}} }}
> >
{t('Refresh')} {t('Refresh')}

View File

@ -550,6 +550,7 @@ exports[`should match exact snapshot 1`] = `
style={ style={
Object { Object {
"borderRadius": "100px", "borderRadius": "100px",
"width": "max-content",
} }
} }
> >
@ -562,6 +563,7 @@ exports[`should match exact snapshot 1`] = `
style={ style={
Object { Object {
"borderRadius": "100px", "borderRadius": "100px",
"width": "max-content",
} }
} }
type="button" type="button"

View File

@ -103,7 +103,12 @@ export default function TopPanel(props: any) {
/> />
</Col> </Col>
<Col xs> <Col xs>
<div style={{ transform: 'translateY(2px) translateX(-5px)' }}> <div
style={{
transform: 'translateY(2px) translateX(-5px)',
width: 'max-content',
}}
>
<Text>{t('Donate')}</Text> <Text>{t('Donate')}</Text>
</div> </div>
</Col> </Col>

View File

@ -58,6 +58,7 @@ exports[`<TopPanel /> should match exact snapshot 1`] = `
style={ style={
Object { Object {
"transform": "translateY(2px) translateX(-5px)", "transform": "translateY(2px) translateX(-5px)",
"width": "max-content",
} }
} }
> >

View File

@ -212,6 +212,7 @@ exports[`should match exact snapshot 1`] = `
style={ style={
Object { Object {
"transform": "translateY(2px) translateX(-5px)", "transform": "translateY(2px) translateX(-5px)",
"width": "max-content",
} }
} }
> >

2
app/package-lock.json generated
View File

@ -1,5 +1,5 @@
{ {
"name": "Deskreen", "name": "Deskreen",
"version": "1.0.7", "version": "1.0.8",
"lockfileVersion": 1 "lockfileVersion": 1
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "deskreen", "name": "deskreen",
"productName": "Deskreen", "productName": "Deskreen",
"version": "1.0.7", "version": "1.0.8",
"description": "Deskreen turns any device into a secondary screen for your computer", "description": "Deskreen turns any device into a secondary screen for your computer",
"main": "./main.prod.js", "main": "./main.prod.js",
"author": { "author": {

View File

@ -1,7 +1,7 @@
{ {
"name": "deskreen", "name": "deskreen",
"productName": "Deskreen", "productName": "Deskreen",
"version": "1.0.7", "version": "1.0.8",
"description": "Deskreen turns any device into a secondary screen for your computer", "description": "Deskreen turns any device into a secondary screen for your computer",
"scripts": { "scripts": {
"build": "yarn build-client && yarn build-main && yarn build-renderer", "build": "yarn build-client && yarn build-main && yarn build-renderer",