-
- Share FPS
-
+
+
+
+
+
+ Screen sharing
+
+
+
@@ -118,10 +136,11 @@ definePageMeta({
})
const { isTauri, version, commitSha } = useApp()
const { checking, checkForUpdates, lastUpdate } = useUpdater()
-const { audioInputs, audioOutputs } = useDevices()
+const { audioInputs, audioOutputs, videoInputs } = useDevices()
const {
inputDeviceId,
outputDeviceId,
+ videoDeviceId,
autoGainControl,
noiseSuppression,
echoCancellation,
@@ -129,6 +148,7 @@ const {
toggleOutputHotkey,
inputDeviceExist,
outputDeviceExist,
+ videoDeviceExist,
shareFps,
} = usePreferences()
diff --git a/client/nuxt.config.ts b/client/nuxt.config.ts
index b13acdc..7e9777f 100644
--- a/client/nuxt.config.ts
+++ b/client/nuxt.config.ts
@@ -86,8 +86,8 @@ export default defineNuxtConfig({
strictPort: true,
proxy: {
'/api': {
- target: 'http://localhost:4000/chad',
- // target: 'https://api.koptilnya.xyz/chad',
+ // target: 'http://localhost:4000/chad',
+ target: 'https://api.koptilnya.xyz/chad',
ws: true,
changeOrigin: true,
rewrite: (path) => {
diff --git a/client/package.json b/client/package.json
index e54c225..eb6e11c 100644
--- a/client/package.json
+++ b/client/package.json
@@ -4,7 +4,7 @@
"private": true,
"scripts": {
"build": "nuxt build",
- "dev": "nuxt dev",
+ "dev": "nuxt dev --host",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare"
@@ -20,7 +20,7 @@
"@vueuse/core": "^13.9.0",
"hotkeys-js": "^4.0.0",
"lucide-vue-next": "^0.562.0",
- "mediasoup-client": "^3.16.7",
+ "mediasoup-client": "^3.18.6",
"nuxt": "^4.2.2",
"postcss": "^8.5.6",
"primeicons": "^7.0.0",
diff --git a/client/shared/types.ts b/client/shared/types.ts
index 6aec3e8..0aaa22a 100644
--- a/client/shared/types.ts
+++ b/client/shared/types.ts
@@ -1,3 +1,5 @@
+import type { Consumer as MediasoupConsumer, Producer as MediasoupProducer } from 'mediasoup-client/types'
+
export interface ChadClient {
socketId: string
userId: string
@@ -5,11 +7,30 @@ export interface ChadClient {
displayName: string
inputMuted?: boolean
outputMuted?: boolean
+
+ consumers: unknown[]
+ producers: unknown[]
+ volume: number
+ isDominant: boolean
+}
+
+export interface AppData {
+ socketId?: ChadClient['socketId']
+ source?: 'share' | 'mic-video'
+}
+
+export interface Consumer {
+ id: MediasoupConsumer['id']
+ paused: MediasoupConsumer['paused']
+ appData: AppData
+ raw: MediasoupConsumer
+}
+
+export interface Producer {
+ id: MediasoupProducer['id']
+ paused: MediasoupProducer['paused']
+ appData: AppData
+ raw: MediasoupProducer
}
export type UpdatedClient = Omit
-
-export interface SpeakingClient {
- clientId: ChadClient['socketId']
- volume: number
-}
diff --git a/client/src-tauri/tauri.conf.json b/client/src-tauri/tauri.conf.json
index c3decf7..4d9725f 100644
--- a/client/src-tauri/tauri.conf.json
+++ b/client/src-tauri/tauri.conf.json
@@ -1,7 +1,7 @@
{
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
"productName": "chad",
- "version": "0.2.22",
+ "version": "0.2.23",
"identifier": "xyz.koptilnya.chad",
"build": {
"frontendDist": "../.output/public",
diff --git a/client/yarn.lock b/client/yarn.lock
index 962821f..2fd2c39 100644
--- a/client/yarn.lock
+++ b/client/yarn.lock
@@ -4060,7 +4060,7 @@ __metadata:
eslint-plugin-format: "npm:^1.0.2"
hotkeys-js: "npm:^4.0.0"
lucide-vue-next: "npm:^0.562.0"
- mediasoup-client: "npm:^3.16.7"
+ mediasoup-client: "npm:^3.18.6"
nuxt: "npm:^4.2.2"
postcss: "npm:^8.5.6"
primeicons: "npm:^7.0.0"
@@ -6176,12 +6176,12 @@ __metadata:
languageName: node
linkType: hard
-"h264-profile-level-id@npm:^2.3.1":
- version: 2.3.1
- resolution: "h264-profile-level-id@npm:2.3.1"
+"h264-profile-level-id@npm:^2.3.2":
+ version: 2.3.2
+ resolution: "h264-profile-level-id@npm:2.3.2"
dependencies:
debug: "npm:^4.4.3"
- checksum: 10c0/c3459549bb28e456db62428c79885cffd4958ce282099c4181b09576f8e5ad90b42395a77209fff4f20a7cb920aaeb660f73902f08343daead0f5527faeb4015
+ checksum: 10c0/75bd12ff36707ffacf379c31c403d4508f3116ef2065e375deadcfafd4f7d163521cf0c70ae5385ebac970fa0acc07f9dd497c4248cfc1ee5623b4533707731d
languageName: node
linkType: hard
@@ -7302,9 +7302,9 @@ __metadata:
languageName: node
linkType: hard
-"mediasoup-client@npm:^3.16.7":
- version: 3.16.7
- resolution: "mediasoup-client@npm:3.16.7"
+"mediasoup-client@npm:^3.18.6":
+ version: 3.18.6
+ resolution: "mediasoup-client@npm:3.18.6"
dependencies:
"@types/debug": "npm:^4.1.12"
"@types/events-alias": "npm:@types/events@^3.0.3"
@@ -7312,10 +7312,10 @@ __metadata:
debug: "npm:^4.4.3"
events-alias: "npm:events@^3.3.0"
fake-mediastreamtrack: "npm:^2.2.1"
- h264-profile-level-id: "npm:^2.3.1"
- sdp-transform: "npm:^2.15.0"
+ h264-profile-level-id: "npm:^2.3.2"
+ sdp-transform: "npm:^3.0.0"
supports-color: "npm:^10.2.2"
- checksum: 10c0/da44c6de8889963192c5b0b7907ed628e04d48be73b7bbfbf18012d66b07ede9d7367c0723466e496a87c7002c07f1af432d854c4c5e16cbd0887013870d8abe
+ checksum: 10c0/f5baff9139afccf88de5db767c1139efa5cdd68f4871e2fa9d6ff94d2e71d2365dc40e9ba6e903cde5fbb51a2d82972e738da656be9f6fc7006640fdd82dd5da
languageName: node
linkType: hard
@@ -9829,12 +9829,12 @@ __metadata:
languageName: node
linkType: hard
-"sdp-transform@npm:^2.15.0":
- version: 2.15.0
- resolution: "sdp-transform@npm:2.15.0"
+"sdp-transform@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "sdp-transform@npm:3.0.0"
bin:
sdp-verify: checker.js
- checksum: 10c0/96c060f113a3d5418defa168db609f7e23e5bd7954fa1cf7784f103dbe702e24d667e5310d2ac6d88abdb32322af83d6ebd0df08e07f4f172d5ed5888f921386
+ checksum: 10c0/828a4595041ba64c86b29075aa4007ab384519b1fa29882db59ccb83b54b2b2a33b60848293f8da537fe151c52f5844fc17c8325396cac309fb19e2e81ec5bf4
languageName: node
linkType: hard