mirror of
https://github.com/pavlobu/deskreen.git
synced 2025-05-21 01:40:12 -07:00
Correct spelling mistakes
This commit is contained in:
parent
436ca1c919
commit
13d44a22a6
2
.github/workflows/build-and-test.yml
vendored
2
.github/workflows/build-and-test.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-10.15, windows-2019, ubuntu-18.04] # IMPORTANT!!! here ubuntu-18.04 should be same as in codecov and release workflows, this is for making shure cahes used in most efficient way
|
os: [macos-10.15, windows-2019, ubuntu-18.04] # IMPORTANT!!! here ubuntu-18.04 should be same as in codecov and release workflows, this is for making sure caches are used in most efficient way
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check out Git repository
|
- name: Check out Git repository
|
||||||
|
2
.github/workflows/codecov.yml
vendored
2
.github/workflows/codecov.yml
vendored
@ -10,7 +10,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
run:
|
run:
|
||||||
runs-on: ubuntu-18.04 # IMPORTANT!!! this LINUX os should be the same as in build-and-test and release workflows! this is for making shure cahes used in most efficient way
|
runs-on: ubuntu-18.04 # IMPORTANT!!! this LINUX os should be the same as in build-and-test and release workflows! this is for making sure caches are used in most efficient way
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check out Git repository
|
- name: Check out Git repository
|
||||||
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -30,7 +30,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-18.04 # IMPORTANT!!! this LINUX os should be the same as in build-and-test and covecov workflows! this is for making shure cahes used in most efficient way
|
- os: ubuntu-18.04 # IMPORTANT!!! this LINUX os should be the same as in build-and-test and covecov workflows! this is for making sure caches are used in most efficient way
|
||||||
artifact_name: 'release/{*.AppImage,*.rpm,*.deb,*.yml}'
|
artifact_name: 'release/{*.AppImage,*.rpm,*.deb,*.yml}'
|
||||||
- os: windows-2019
|
- os: windows-2019
|
||||||
artifact_name: 'release/{*.msi,*.exe,*.blockmap,*.yml}'
|
artifact_name: 'release/{*.msi,*.exe,*.blockmap,*.yml}'
|
||||||
|
@ -21,9 +21,9 @@ Why this was made? Because a client served with `http` without SSL, which makes
|
|||||||
## NOTE: We are looking for a solution to get rid from Dummy Display Plugs while using Deskreen as a second screen. Your code support is highly valuable and welcome in Deskreen!
|
## NOTE: We are looking for a solution to get rid from Dummy Display Plugs while using Deskreen as a second screen. Your code support is highly valuable and welcome in Deskreen!
|
||||||
|
|
||||||
Display Dummy Plugs are good temporary solution, but it is not that good for everyone.
|
Display Dummy Plugs are good temporary solution, but it is not that good for everyone.
|
||||||
If you are a seasoned Windows or Linux or MacOS hacker with a knowledge of low level tweaks and triks, you can help us to make Deskreen better!
|
If you are a seasoned Windows or Linux or MacOS hacker with a knowledge of low level tweaks and tricks, you can help us to make Deskreen better!
|
||||||
On a long run Deskreen seeks for getting rid of Display Dummy Plugs, because most people don't like using them. Sometimes they can't use them because all available display ports are already taken.
|
On a long run Deskreen seeks for getting rid of Display Dummy Plugs, because most people don't like using them. Sometimes they can't use them because all available display ports are already taken.
|
||||||
**So we need to have native drivers for Win / Mac / Linux that will help to enable virtual display wihtout Dummy Display Plugs.**
|
**So we need to have native drivers for Win / Mac / Linux that will help to enable virtual display without Dummy Display Plugs.**
|
||||||
There are already working commercial solutions out there with their own drivers which they don't disclose, but this task is doable with a help of entire community.
|
There are already working commercial solutions out there with their own drivers which they don't disclose, but this task is doable with a help of entire community.
|
||||||
The goal of Deskreen is to enable community power and knowledge to overcome these technical challenges and make it a go-to second screen solution that everyone will benefit from!
|
The goal of Deskreen is to enable community power and knowledge to overcome these technical challenges and make it a go-to second screen solution that everyone will benefit from!
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"Waiting for user to click ALLOW button on screen sharing device...": "Waiting for user to click ALLOW button on screen sharing device...",
|
"Waiting for user to click ALLOW button on screen sharing device...": "Waiting for user to click ALLOW button on screen sharing device...",
|
||||||
"Wating for user to select source to share from screen sharing device...": "Wating for user to select source to share from screen sharing device..."
|
"Waiting for user to select source to share from screen sharing device...": "Waiting for user to select source to share from screen sharing device..."
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"Waiting for user to click ALLOW button on screen sharing device...": "Жду когда пользователь нажмет кнопку РАЗРЕШИТЬ доступ к экрану компьютера...",
|
"Waiting for user to click ALLOW button on screen sharing device...": "Жду когда пользователь нажмет кнопку РАЗРЕШИТЬ доступ к экрану компьютера...",
|
||||||
"Wating for user to select source to share from screen sharing device...": "Жду когда пользователь выберет весь экран или окно приложения для демонстрации..."
|
"Waiting for user to select source to share from screen sharing device...": "Жду когда пользователь выберет весь экран или окно приложения для демонстрации..."
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"Waiting for user to click ALLOW button on screen sharing device...": "Чекаэмо коли користувач натисне кнопку ДОЗВОЛИТИ доступ до екрану комп'ютера...",
|
"Waiting for user to click ALLOW button on screen sharing device...": "Чекаэмо коли користувач натисне кнопку ДОЗВОЛИТИ доступ до екрану комп'ютера...",
|
||||||
"Wating for user to select source to share from screen sharing device...": "Чекаю коли користувач вибере весь екран або вікно програми для демонстрації..."
|
"Waiting for user to select source to share from screen sharing device...": "Чекаю коли користувач вибере весь екран або вікно програми для демонстрації..."
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ function getConnectingStepContent(
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
default:
|
default:
|
||||||
return <Text>Error occured :(</Text>;
|
return <Text>Error occurred :(</Text>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
export enum ErrorMessage {
|
export enum ErrorMessage {
|
||||||
UNKNOWN_ERROR = 'An unknonw error uccured.',
|
UNKNOWN_ERROR = 'An unknown error uccured.',
|
||||||
DENY_TO_CONNECT = 'You were not allowed to connect.',
|
DENY_TO_CONNECT = 'You were not allowed to connect.',
|
||||||
DISCONNECTED = 'You were disconnected.',
|
DISCONNECTED = 'You were disconnected.',
|
||||||
NOT_ALLOWED = 'You were not allowed to connect.',
|
NOT_ALLOWED = 'You were not allowed to connect.',
|
||||||
|
@ -153,7 +153,7 @@ exports[`when getPromptContent is called should match exact snapshot on each ste
|
|||||||
<h3
|
<h3
|
||||||
className="bp3-heading"
|
className="bp3-heading"
|
||||||
>
|
>
|
||||||
Error occured :(
|
Error occurred :(
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -175,7 +175,7 @@ exports[`when getPromptContent is called should match exact snapshot on each ste
|
|||||||
<div
|
<div
|
||||||
className=""
|
className=""
|
||||||
>
|
>
|
||||||
Error occured :(
|
Error occurred :(
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -820,7 +820,7 @@ exports[`when getPromptContent is called should match exact snapshot on each ste
|
|||||||
<h3
|
<h3
|
||||||
className="bp3-heading"
|
className="bp3-heading"
|
||||||
>
|
>
|
||||||
Wating for user to select source to share from screen sharing device...
|
Waiting for user to select source to share from screen sharing device...
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -39,12 +39,12 @@ function getPromptContent(step: number, t: TFunction) {
|
|||||||
return (
|
return (
|
||||||
<H3>
|
<H3>
|
||||||
{t(
|
{t(
|
||||||
'Wating for user to select source to share from screen sharing device...'
|
'Waiting for user to select source to share from screen sharing device...'
|
||||||
)}
|
)}
|
||||||
</H3>
|
</H3>
|
||||||
);
|
);
|
||||||
default:
|
default:
|
||||||
return <H3>Error occured :(</H3>;
|
return <H3>Error occurred :(</H3>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,8 +85,8 @@ describe('PeerConnection class', () => {
|
|||||||
jest.restoreAllMocks();
|
jest.restoreAllMocks();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when new PeerConnection is created with not corrent roomId', () => {
|
describe('when new PeerConnection is created with incorrect roomId', () => {
|
||||||
it('should change UI accordingly and notify user that error occured', () => {
|
it('should change UI accordingly and notify user that error occurred', () => {
|
||||||
peerConnection = new PeerConnection(
|
peerConnection = new PeerConnection(
|
||||||
'',
|
'',
|
||||||
jest.fn(),
|
jest.fn(),
|
||||||
|
@ -176,7 +176,7 @@ describe('peerConnectionHandlePeer callback', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when quality is AUTO and when video quality optimizer requiests GOOD quality', () => {
|
describe('when quality is AUTO and when video quality optimizer requests GOOD quality', () => {
|
||||||
it('should call .send with proper data message', () => {
|
it('should call .send with proper data message', () => {
|
||||||
peerConnectionHandlePeer(peerConnection);
|
peerConnectionHandlePeer(peerConnection);
|
||||||
peerConnection.peer?.emit('stream');
|
peerConnection.peer?.emit('stream');
|
||||||
@ -191,7 +191,7 @@ describe('peerConnectionHandlePeer callback', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when quality is NOT AUTO and when video quality optimizer requiests GOOD quality', () => {
|
describe('when quality is NOT AUTO and when video quality optimizer requests GOOD quality', () => {
|
||||||
it('should call NOT .send with proper data message', () => {
|
it('should call NOT .send with proper data message', () => {
|
||||||
peerConnection.videoQuality = VideoQuality.Q_25_PERCENT;
|
peerConnection.videoQuality = VideoQuality.Q_25_PERCENT;
|
||||||
peerConnectionHandlePeer(peerConnection);
|
peerConnectionHandlePeer(peerConnection);
|
||||||
@ -203,7 +203,7 @@ describe('peerConnectionHandlePeer callback', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when quality is AUTO and when video quality optimizer requiests HALF quality', () => {
|
describe('when quality is AUTO and when video quality optimizer requests HALF quality', () => {
|
||||||
it('should call .send with proper data message', () => {
|
it('should call .send with proper data message', () => {
|
||||||
peerConnectionHandlePeer(peerConnection);
|
peerConnectionHandlePeer(peerConnection);
|
||||||
peerConnection.peer?.emit('stream');
|
peerConnection.peer?.emit('stream');
|
||||||
@ -219,7 +219,7 @@ describe('peerConnectionHandlePeer callback', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when quality is NOT AUTO and when video quality optimizer requiests GOOD quality', () => {
|
describe('when quality is NOT AUTO and when video quality optimizer requests GOOD quality', () => {
|
||||||
it('should call NOT .send with proper data message', () => {
|
it('should call NOT .send with proper data message', () => {
|
||||||
peerConnection.videoQuality = VideoQuality.Q_25_PERCENT;
|
peerConnection.videoQuality = VideoQuality.Q_25_PERCENT;
|
||||||
peerConnectionHandlePeer(peerConnection);
|
peerConnectionHandlePeer(peerConnection);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
export default class CanvasNotDefinedError extends Error {
|
export default class CanvasNotDefinedError extends Error {
|
||||||
constructor() {
|
constructor() {
|
||||||
super('internal variable of canvas DOM elemenent should be defined!');
|
super('internal variable of canvas DOM element should be defined!');
|
||||||
// Set the prototype explicitly.
|
// Set the prototype explicitly.
|
||||||
Object.setPrototypeOf(this, CanvasNotDefinedError.prototype);
|
Object.setPrototypeOf(this, CanvasNotDefinedError.prototype);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
export default class ImageDataIsUndefinedError extends Error {
|
export default class ImageDataIsUndefinedError extends Error {
|
||||||
constructor() {
|
constructor() {
|
||||||
super('imageData retreived is undefined!');
|
super('imageData retrieved is undefined!');
|
||||||
// Set the prototype explicitly.
|
// Set the prototype explicitly.
|
||||||
Object.setPrototypeOf(this, ImageDataIsUndefinedError.prototype);
|
Object.setPrototypeOf(this, ImageDataIsUndefinedError.prototype);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
export default class VideoNotDefinedError extends Error {
|
export default class VideoNotDefinedError extends Error {
|
||||||
constructor() {
|
constructor() {
|
||||||
super('internal variable of video DOM elemenent should be defined!');
|
super('internal variable of video DOM element should be defined!');
|
||||||
// Set the prototype explicitly.
|
// Set the prototype explicitly.
|
||||||
Object.setPrototypeOf(this, VideoNotDefinedError.prototype);
|
Object.setPrototypeOf(this, VideoNotDefinedError.prototype);
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ export default class Crypto {
|
|||||||
const input = forge.util.createBuffer(data);
|
const input = forge.util.createBuffer(data);
|
||||||
const decipher = forge.cipher.createDecipher('AES-CBC', secretKey);
|
const decipher = forge.cipher.createDecipher('AES-CBC', secretKey);
|
||||||
decipher.start({ iv });
|
decipher.start({ iv });
|
||||||
decipher.update(input); // input should be a strng here
|
decipher.update(input); // input should be a string here
|
||||||
decipher.finish();
|
decipher.finish();
|
||||||
const decryptedPayload = decipher.output.toString();
|
const decryptedPayload = decipher.output.toString();
|
||||||
resolve(decryptedPayload);
|
resolve(decryptedPayload);
|
||||||
|
@ -131,7 +131,7 @@ const ScanQRStep: React.FC = () => {
|
|||||||
</div>
|
</div>
|
||||||
<div style={{ marginBottom: '10px' }}>
|
<div style={{ marginBottom: '10px' }}>
|
||||||
<Text className="bp3-text-muted">
|
<Text className="bp3-text-muted">
|
||||||
or type the following address manualy in browser address bar on any
|
or type the following address manually in browser address bar on any
|
||||||
device:
|
device:
|
||||||
</Text>
|
</Text>
|
||||||
</div>
|
</div>
|
||||||
|
@ -293,7 +293,7 @@ exports[`should match exact snapshot on each step 1`] = `
|
|||||||
<div
|
<div
|
||||||
className="bp3-text-muted"
|
className="bp3-text-muted"
|
||||||
>
|
>
|
||||||
or type the following address manualy in browser address bar on any device:
|
or type the following address manually in browser address bar on any device:
|
||||||
</div>
|
</div>
|
||||||
</Blueprint3.Text>
|
</Blueprint3.Text>
|
||||||
</div>
|
</div>
|
||||||
|
@ -78,7 +78,7 @@ exports[`<ScanQRStep /> when rendered should match exact snapshot 1`] = `
|
|||||||
ellipsize={false}
|
ellipsize={false}
|
||||||
tagName="div"
|
tagName="div"
|
||||||
>
|
>
|
||||||
or type the following address manualy in browser address bar on any device:
|
or type the following address manually in browser address bar on any device:
|
||||||
</Blueprint3.Text>
|
</Blueprint3.Text>
|
||||||
</div>
|
</div>
|
||||||
<Blueprint3.Tooltip
|
<Blueprint3.Tooltip
|
||||||
|
@ -1199,7 +1199,7 @@ exports[`should match exact snapshot 1`] = `
|
|||||||
<div
|
<div
|
||||||
className="bp3-text-muted"
|
className="bp3-text-muted"
|
||||||
>
|
>
|
||||||
or type the following address manualy in browser address bar on any device:
|
or type the following address manually in browser address bar on any device:
|
||||||
</div>
|
</div>
|
||||||
</Blueprint3.Text>
|
</Blueprint3.Text>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2121,7 +2121,7 @@ exports[`should match exact snapshot 1`] = `
|
|||||||
<div
|
<div
|
||||||
className="bp3-text-muted"
|
className="bp3-text-muted"
|
||||||
>
|
>
|
||||||
or type the following address manualy in browser address bar on any device:
|
or type the following address manually in browser address bar on any device:
|
||||||
</div>
|
</div>
|
||||||
</Blueprint3.Text>
|
</Blueprint3.Text>
|
||||||
</div>
|
</div>
|
||||||
|
@ -103,7 +103,7 @@ describe('ConnectedDevicesService tests', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('when .setPendingConnectionDevice() was called', () => {
|
describe('when .setPendingConnectionDevice() was called', () => {
|
||||||
it('should set passed device as pendingConnectionDevice adn call .emitPendingConnectionDeviceConnected', () => {
|
it('should set passed device as pendingConnectionDevice and call .emitPendingConnectionDeviceConnected', () => {
|
||||||
service.emitPendingConnectionDeviceConnected = jest.fn();
|
service.emitPendingConnectionDeviceConnected = jest.fn();
|
||||||
|
|
||||||
service.setPendingConnectionDevice(testDevice);
|
service.setPendingConnectionDevice(testDevice);
|
||||||
|
@ -22,7 +22,7 @@ export default async function createDesktopCapturerStream(
|
|||||||
);
|
);
|
||||||
peerConnection.localStream = stream;
|
peerConnection.localStream = stream;
|
||||||
} else {
|
} else {
|
||||||
// when souce is app window
|
// when source is app window
|
||||||
const stream = await getDesktopSourceStreamBySourceID(sourceID);
|
const stream = await getDesktopSourceStreamBySourceID(sourceID);
|
||||||
peerConnection.localStream = stream;
|
peerConnection.localStream = stream;
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ describe('SharingSession unit tests', () => {
|
|||||||
expect(sharingSession.statusChangeListeners.length).toBe(1);
|
expect(sharingSession.statusChangeListeners.length).toBe(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when .peerConnectionHelperRenderer.webContents.on(did-finish-load event occured', () => {
|
describe('when .peerConnectionHelperRenderer.webContents.on(did-finish-load event occurred', () => {
|
||||||
it('should call .peerConnectionHelperRenderer?.webContents.send( with proper parameters', () => {
|
it('should call .peerConnectionHelperRenderer?.webContents.send( with proper parameters', () => {
|
||||||
const callback =
|
const callback =
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
@ -105,7 +105,7 @@ describe('SharingSession unit tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when .peerConnectionHelperRenderer.webContents.on("ipc-message" event occured on "peer-connected" channel and when onDeviceConnectedCallback is defined', () => {
|
describe('when .peerConnectionHelperRenderer.webContents.on("ipc-message" event occurred on "peer-connected" channel and when onDeviceConnectedCallback is defined', () => {
|
||||||
it('should call .onDeviceConnectedCallback(data) with proper data', () => {
|
it('should call .onDeviceConnectedCallback(data) with proper data', () => {
|
||||||
const testData = 'alsi33i223';
|
const testData = 'alsi33i223';
|
||||||
const testCallback = jest.fn();
|
const testCallback = jest.fn();
|
||||||
@ -121,7 +121,7 @@ describe('SharingSession unit tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when .peerConnectionHelperRenderer.webContents.on("ipc-message" event occured NOT on "peer-connected" channel or when .onDeviceConnectedCallback is UNdefined', () => {
|
describe('when .peerConnectionHelperRenderer.webContents.on("ipc-message" event occurred NOT on "peer-connected" channel or when .onDeviceConnectedCallback is UNdefined', () => {
|
||||||
it('should call .onDeviceConnectedCallback()', () => {
|
it('should call .onDeviceConnectedCallback()', () => {
|
||||||
const testData = 'alsi33i223';
|
const testData = 'alsi33i223';
|
||||||
const testCallback = jest.fn();
|
const testCallback = jest.fn();
|
||||||
|
@ -6,8 +6,8 @@ import ConnectedDevicesService from '../ConnectedDevicesService';
|
|||||||
import PeerConnectionHelperRendererService from '../PeerConnectionHelperRendererService';
|
import PeerConnectionHelperRendererService from '../PeerConnectionHelperRendererService';
|
||||||
|
|
||||||
// this may look as an ugly mock, but hey, this works! and don't forget that it is a unit test
|
// this may look as an ugly mock, but hey, this works! and don't forget that it is a unit test
|
||||||
// why do we make it like that ? bacuse jest doesnt allow ex.
|
// why do we make it like that ? because jest doesn't allow ex.
|
||||||
// duplicated __mock__/electron in different subfolders of the project, so.. better do mainual mock in a test file itself
|
// duplicated __mock__/electron in different subfolders of the project, so.. better do manual mock in a test file itself
|
||||||
// jest bug reference on duplicated mocks found: https://github.com/facebook/jest/issues/2070
|
// jest bug reference on duplicated mocks found: https://github.com/facebook/jest/issues/2070
|
||||||
// it is a bad design of jest itself by default, so this is the best workaround, simply by making manual mock in this way:
|
// it is a bad design of jest itself by default, so this is the best workaround, simply by making manual mock in this way:
|
||||||
jest.mock('../PeerConnectionHelperRendererService', () => {
|
jest.mock('../PeerConnectionHelperRendererService', () => {
|
||||||
|
@ -61,7 +61,7 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when ipcRenderer.on("start-peer-connection" callback occured', () => {
|
describe('when ipcRenderer.on("start-peer-connection" callback occurred', () => {
|
||||||
it('should set ipcRenderer.on("create-peer-connection-with-data"', () => {
|
it('should set ipcRenderer.on("create-peer-connection-with-data"', () => {
|
||||||
handleIpcRenderer();
|
handleIpcRenderer();
|
||||||
|
|
||||||
@ -126,8 +126,8 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when ipcRenderer.on("create-peer-connection-with-data" callback occured', () => {
|
describe('when ipcRenderer.on("create-peer-connection-with-data" callback occurred', () => {
|
||||||
it('should intialize PeerConnection', () => {
|
it('should initialize PeerConnection', () => {
|
||||||
handleIpcRenderer();
|
handleIpcRenderer();
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
let callback = ipcRenderer.on.mock.calls[0][1];
|
let callback = ipcRenderer.on.mock.calls[0][1];
|
||||||
@ -154,7 +154,7 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
).toBeCalled();
|
).toBeCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when on device connected callback occured', () => {
|
describe('when on device connected callback occurred', () => {
|
||||||
it('should call ipcRenderer.send("peer-connected" with device data', () => {
|
it('should call ipcRenderer.send("peer-connected" with device data', () => {
|
||||||
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
||||||
// eslint-disable-next-line prefer-destructuring
|
// eslint-disable-next-line prefer-destructuring
|
||||||
@ -174,7 +174,7 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when ipcRenderer.on("set-desktop-capturer-source-id" callback occured', () => {
|
describe('when ipcRenderer.on("set-desktop-capturer-source-id" callback occurred', () => {
|
||||||
it('should call peerConnection.setDesktopCapturerSourceID(id) with proper source id', () => {
|
it('should call peerConnection.setDesktopCapturerSourceID(id) with proper source id', () => {
|
||||||
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
||||||
|
|
||||||
@ -191,7 +191,7 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when ipcRenderer.on("call-peer" callback occured', () => {
|
describe('when ipcRenderer.on("call-peer" callback occurred', () => {
|
||||||
it('should call peerConnection.callPeer()', () => {
|
it('should call peerConnection.callPeer()', () => {
|
||||||
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
||||||
|
|
||||||
@ -205,7 +205,7 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when ipcRenderer.on("disconnect-by-host-machine-user" callback occured', () => {
|
describe('when ipcRenderer.on("disconnect-by-host-machine-user" callback occurred', () => {
|
||||||
it('should call peerConnection.disconnectByHostMachineUser()', () => {
|
it('should call peerConnection.disconnectByHostMachineUser()', () => {
|
||||||
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
||||||
|
|
||||||
@ -221,7 +221,7 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when ipcRenderer.on("deny-connection-for-partner" callback occured', () => {
|
describe('when ipcRenderer.on("deny-connection-for-partner" callback occurred', () => {
|
||||||
it('should call peerConnection.denyConnectionForPartner()', () => {
|
it('should call peerConnection.denyConnectionForPartner()', () => {
|
||||||
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
||||||
|
|
||||||
@ -237,7 +237,7 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when ipcRenderer.on("send-user-allowed-to-connect" callback occured', () => {
|
describe('when ipcRenderer.on("send-user-allowed-to-connect" callback occurred', () => {
|
||||||
it('should call peerConnection.sendUserAllowedToConnect()', () => {
|
it('should call peerConnection.sendUserAllowedToConnect()', () => {
|
||||||
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when ipcRenderer.on("app-color-theme-changed" callback occured', () => {
|
describe('when ipcRenderer.on("app-color-theme-changed" callback occurred', () => {
|
||||||
it('should call peerConnection.setAppTheme(newTheme)', () => {
|
it('should call peerConnection.setAppTheme(newTheme)', () => {
|
||||||
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
||||||
|
|
||||||
@ -270,7 +270,7 @@ describe('peerConnectionHelperRendererWindowIndex tests', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when ipcRenderer.on("app-language-changed" callback occured', () => {
|
describe('when ipcRenderer.on("app-language-changed" callback occurred', () => {
|
||||||
it('should call peerConnection.testAppLang(newLang)', () => {
|
it('should call peerConnection.testAppLang(newLang)', () => {
|
||||||
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
const peerConnectionInstance = mockAndGetPeerConnectionInstance();
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ export default class Crypto {
|
|||||||
const input = forge.util.createBuffer(data);
|
const input = forge.util.createBuffer(data);
|
||||||
const decipher = forge.cipher.createDecipher('AES-CBC', secretKey);
|
const decipher = forge.cipher.createDecipher('AES-CBC', secretKey);
|
||||||
decipher.start({ iv });
|
decipher.start({ iv });
|
||||||
decipher.update(input); // input should be a strng here
|
decipher.update(input); // input should be a string here
|
||||||
decipher.finish();
|
decipher.finish();
|
||||||
const decryptedPayload = decipher.output.toString();
|
const decryptedPayload = decipher.output.toString();
|
||||||
resolve(decryptedPayload);
|
resolve(decryptedPayload);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
## Deskreen `drivers` : getting rid from Display Dummy Plugs
|
## Deskreen `drivers` : getting rid from Display Dummy Plugs
|
||||||
|
|
||||||
We plan to add vritual display driver support for three most popular operating systems. The driver related codes can be placed in following subdirectories `win`, `mac`, `linux`.
|
We plan to add virtual display driver support for three most popular operating systems. The driver related codes can be placed in following subdirectories `win`, `mac`, `linux`.
|
||||||
It is a challenging technical task and we need to enable an entire community power to solve it. If you know a solution and willing to contribute, you are highly welcome!
|
It is a challenging technical task and we need to enable an entire community power to solve it. If you know a solution and willing to contribute, you are highly welcome!
|
||||||
|
|
||||||
### Things that you need to keep in mind while making your virtual display driver solution for Deskreen:
|
### Things that you need to keep in mind while making your virtual display driver solution for Deskreen:
|
||||||
@ -13,7 +13,7 @@ It is a challenging technical task and we need to enable an entire community pow
|
|||||||
- **get available resolutions of virtual display**
|
- **get available resolutions of virtual display**
|
||||||
- **remove the virtual display**
|
- **remove the virtual display**
|
||||||
|
|
||||||
2. Your driver code will be interfaced with Typescript/JavaScript after your successful submission. You **don't** have to write an interface for JS yourself. The community will come to help. It is going to be implemented by maintainer and other community members if there are any to voluneer. But if you want, you can participate in making a JS interface for it.
|
2. Your driver code will be interfaced with Typescript/JavaScript after your successful submission. You **don't** have to write an interface for JS yourself. The community will come to help. It is going to be implemented by maintainer and other community members if there are any to volunteer. But if you want, you can participate in making a JS interface for it.
|
||||||
3. After creating virtual display with you driver code API, it should display virtual screen in native **OS** _Displays_ settings, so that user will be able to arrange it as a normal display. (similar to how commercial solutions work)
|
3. After creating virtual display with you driver code API, it should display virtual screen in native **OS** _Displays_ settings, so that user will be able to arrange it as a normal display. (similar to how commercial solutions work)
|
||||||
|
|
||||||
### What Your Driver API Should Have:
|
### What Your Driver API Should Have:
|
||||||
@ -64,7 +64,7 @@ driver.getAllVirtualDisplays() : // returns array of virtual display objects cr
|
|||||||
|
|
||||||
### OS Patches: To Be Discussed to Make a Right Decision
|
### OS Patches: To Be Discussed to Make a Right Decision
|
||||||
|
|
||||||
After OS updates your driver code **may** break. This happens even in commertial second screen software, so we need to think on how to add patches for OS updates in that case.
|
After OS updates your driver code **may** break. This happens even in commercial second screen software, so we need to think on how to add patches for OS updates in that case.
|
||||||
|
|
||||||
#### Ideas on how patching done in other projects can be found here:
|
#### Ideas on how patching done in other projects can be found here:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user