diff options
| author | Mel <einebeere@gmail.com> | 2022-02-19 20:00:38 +0100 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-02-19 20:00:38 +0100 |
| commit | bf1450799df0deb424a9675be89e13c29e3620d7 (patch) | |
| tree | 6a5f2f7559c5946058deadf8375f6609485a3d3f /assets/src/network/transfer/request_transfer.ts | |
| parent | 5384c34952b031995ecb8aa58d72954b0c685e18 (diff) | |
| download | rook-bf1450799df0deb424a9675be89e13c29e3620d7.tar.zst rook-bf1450799df0deb424a9675be89e13c29e3620d7.zip | |
Split state into stages to handle messages
Diffstat (limited to 'assets/src/network/transfer/request_transfer.ts')
| -rw-r--r-- | assets/src/network/transfer/request_transfer.ts | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/assets/src/network/transfer/request_transfer.ts b/assets/src/network/transfer/request_transfer.ts index e69a9a8..6e4b322 100644 --- a/assets/src/network/transfer/request_transfer.ts +++ b/assets/src/network/transfer/request_transfer.ts @@ -1,17 +1,13 @@ -import data from "../../stores/data"; -import { on, send } from "../channel/connection"; -import type { ShareIceCandidateMessage } from "../channel/messages/messages"; -import { - createTransfer, - onIncomingIceCandidate, - Transfer, - unregisterIceOnComplete, -} from "./transfer"; - -export async function createAnswerTransfer( - offer: RTCSessionDescriptionInit +import data from "../../state/data"; +import type { Connection } from "../channel/connection"; +import { createTransfer, Transfer } from "./transfer"; + +export async function respondToOffer( + c: Connection, + offer: RTCSessionDescriptionInit, + onComplete: () => void ): Promise<Transfer> { - const transfer = createTransfer(onChannel); + const transfer = createTransfer(c => onChannel(c, onComplete)); const offerDescription = new RTCSessionDescription(offer); transfer.pc.setRemoteDescription(offerDescription); @@ -22,19 +18,12 @@ export async function createAnswerTransfer( transfer.pc.onicecandidate = event => { const candidate = event.candidate; if (event.candidate !== null) { - send("ice_candidate", { candidate }); + // TODO: Check whether transfer was cancelled + c.send("ice_candidate", { candidate }); } }; - const unregisterIce = on( - "share_ice_candidate", - (message: ShareIceCandidateMessage) => - onIncomingIceCandidate(transfer, message) - ); - - unregisterIceOnComplete(transfer, unregisterIce); - - send("accept_share", { + c.send("accept_share", { sdp: answer.sdp, type: answer.type, }); |
