Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
},
"dependencies": {
"@hono/zod-validator": "^0.7.2",
"@moq/token": "^0.1.2",
"@moq/token": "^0.2.3",
"drizzle-orm": "^0.44.5",
"hono": "^4.9.4",
"jose": "^6.0.13",
Expand Down
11 changes: 6 additions & 5 deletions app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
"@fontsource-variable/montserrat": "^5.2.6",
"@hang/api": "workspace:*",
"@huggingface/transformers": "^4.0.0",
"@moq/hang": "^0.2.1",
"@moq/lite": "^0.1.7",
"@moq/publish": "^0.2.3",
"@moq/signals": "^0.1.4",
"@moq/watch": "^0.2.3",
"@moq/hang": "^0.2.12",
"@moq/json": "^0.1.1",
"@moq/lite": "^0.3.0",
"@moq/publish": "^0.2.16",
"@moq/signals": "^0.1.10",
"@moq/watch": "^0.2.18",
"@solidjs/router": "^0.15.3",
"@tailwindcss/vite": "^4.1.12",
"@tauri-apps/api": "^2.8.0",
Expand Down
4 changes: 2 additions & 2 deletions app/src/components/meme-selector.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import type * as Publish from "@moq/publish";
import solid from "@moq/signals/solid";
import { createEffect, createSignal, For, onCleanup, onMount, type Setter, Show } from "solid-js";
import type { JSX } from "solid-js/jsx-runtime";
import * as Meme from "../room/meme";
import type { HangPublishBroadcast } from "../room/metadata";
import Settings from "../settings";

export type Tab = "emoji" | "audio" | "video";

export type MemeSelectorProps = {
broadcast: Publish.Broadcast;
broadcast: HangPublishBroadcast;
chatInput: HTMLInputElement | undefined;
chatMessage: string;
setChatMessage: Setter<string>;
Expand Down
4 changes: 2 additions & 2 deletions app/src/components/profile.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import * as Publish from "@moq/publish";
import { Effect } from "@moq/signals";
import solid from "@moq/signals/solid";
import { createSignal, JSX, onCleanup, Show } from "solid-js";
import * as Api from "../api";
import { Camera, Microphone } from "../controls";
import { Canvas } from "../room/canvas";
import { Local } from "../room/local";
import type { HangPublishBroadcast } from "../room/metadata";
import { Sound } from "../room/sound";
import { Space } from "../room/space";
import Settings from "../settings";
Expand Down Expand Up @@ -122,7 +122,7 @@ class LocalPreview {

signals = new Effect();

constructor(element: HTMLCanvasElement, camera: Publish.Broadcast) {
constructor(element: HTMLCanvasElement, camera: HangPublishBroadcast) {
// Create a minimal canvas without the background effects
this.canvas = new Canvas(element);

Expand Down
3 changes: 2 additions & 1 deletion app/src/controls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { Tutorial } from "./components/tutorial";
import type { Room } from "./room";
import type { Canvas } from "./room/canvas";
import { Local } from "./room/local";
import type { HangPublishBroadcast } from "./room/metadata";
import { Sound } from "./room/sound";
import Settings, { Modal } from "./settings";
import * as Tauri from "./tauri";
Expand Down Expand Up @@ -738,7 +739,7 @@ export function Visualize(props: { audio: Publish.Audio.Encoder }): JSX.Element
);
}

function Chat(props: { broadcast: Publish.Broadcast; room: Room }): JSX.Element {
function Chat(props: { broadcast: HangPublishBroadcast; room: Room }): JSX.Element {
const [input, setInput] = createSignal<HTMLInputElement | undefined>(undefined);
const [message, setMessage] = createSignal("");
const [showMemeSelector, setShowMemeSelector] = createSignal(false);
Expand Down
4 changes: 2 additions & 2 deletions app/src/room/broadcast.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import * as Publish from "@moq/publish";
import { Effect, Signal } from "@moq/signals";
import { Audio } from "./audio";
import { Canvas } from "./canvas";
Expand All @@ -8,12 +7,13 @@ import { FakeBroadcast } from "./fake";
import { Bounds, Vector } from "./geometry";
import { MeshBuffer } from "./gl/mesh";
import * as Meme from "./meme";
import type { HangPublishBroadcast } from "./metadata";
import { Name } from "./name";
import { Sound } from "./sound";
import { Video } from "./video";
import { WatchBroadcast } from "./watch";

export type BroadcastSource = WatchBroadcast | Publish.Broadcast | FakeBroadcast;
export type BroadcastSource = WatchBroadcast | HangPublishBroadcast | FakeBroadcast;

export type ChatMessage = {
audio?: HTMLAudioElement;
Expand Down
7 changes: 4 additions & 3 deletions app/src/room/fake.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { Catalog } from "@moq/hang";
import { Effect, Signal } from "@moq/signals";
import { Canvas } from "./canvas";
import type { Position, User } from "./metadata";
import { Sound } from "./sound";
import { Space } from "./space";

export type FakeBroadcastProps = {
position?: Catalog.Position;
user?: Catalog.User;
position?: Position;
user?: User;
};

export class FakeBroadcast {
Expand All @@ -16,7 +17,7 @@ export class FakeBroadcast {

location = {
window: {
position: new Signal<Catalog.Position | undefined>(undefined),
position: new Signal<Position | undefined>(undefined),
handle: new Signal<string | undefined>(undefined),
},
};
Expand Down
9 changes: 5 additions & 4 deletions app/src/room/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { Broadcast } from "./broadcast";
import type { Canvas } from "./canvas";
import { Local } from "./local";
import { Locator } from "./locator";
import type { HangPublishBroadcast } from "./metadata";
import { Sound } from "./sound";
import { Space } from "./space";
import { WatchBroadcast } from "./watch";
Expand All @@ -28,8 +29,8 @@ export class Room {
// The physics space for the room.
space: Space;

#cameraBroadcast = new Signal<Broadcast<Publish.Broadcast> | undefined>(undefined);
#shareBroadcast = new Signal<Broadcast<Publish.Broadcast> | undefined>(undefined);
#cameraBroadcast = new Signal<Broadcast<HangPublishBroadcast> | undefined>(undefined);
#shareBroadcast = new Signal<Broadcast<HangPublishBroadcast> | undefined>(undefined);

#signals = new Effect();

Expand Down Expand Up @@ -108,7 +109,7 @@ export class Room {
if (update.path === this.local.camera.name.peek()) {
if (update.active) {
const broadcast = this.space.add(update.path, this.local.camera);
this.#cameraBroadcast.set(broadcast as Broadcast<Publish.Broadcast>);
this.#cameraBroadcast.set(broadcast as Broadcast<HangPublishBroadcast>);
} else {
this.space.remove(update.path);
this.#cameraBroadcast.set(undefined);
Expand All @@ -120,7 +121,7 @@ export class Room {
if (update.path === this.local.share.name.peek()) {
if (update.active) {
const broadcast = this.space.add(update.path, this.local.share);
this.#shareBroadcast.set(broadcast as Broadcast<Publish.Broadcast>);
this.#shareBroadcast.set(broadcast as Broadcast<HangPublishBroadcast>);
} else {
this.space.remove(update.path);
this.#shareBroadcast.set(undefined);
Expand Down
9 changes: 5 additions & 4 deletions app/src/room/local.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import type * as Moq from "@moq/lite";
import * as Publish from "@moq/publish";
import { Effect, Signal } from "@moq/signals";
import Settings from "../settings";
import { createPublishBroadcast, type HangPublishBroadcast } from "./metadata";

export interface LocalProps {
connection?: Signal<Moq.Connection.Established | undefined> | Moq.Connection.Established;
Expand All @@ -15,11 +16,11 @@ export interface LocalProps {
export class Local {
connection: Signal<Moq.Connection.Established | undefined>;

camera: Publish.Broadcast;
camera: HangPublishBroadcast;
microphone: Publish.Source.Microphone;
webcam: Publish.Source.Camera;

share: Publish.Broadcast;
share: HangPublishBroadcast;
screen: Publish.Source.Screen;

// Name and avatar signals that can be overridden
Expand Down Expand Up @@ -65,7 +66,7 @@ export class Local {
this.#signals.cleanup(() => this.microphone.close());

// Create the camera broadcast
this.camera = new Publish.Broadcast({
this.camera = createPublishBroadcast({
enabled: Local.join,
connection: this.connection,
user: {
Expand Down Expand Up @@ -139,7 +140,7 @@ export class Local {
this.#signals.cleanup(() => this.screen.close());

// Create the screen broadcast
this.share = new Publish.Broadcast({
this.share = createPublishBroadcast({
connection: this.connection,
audio: {
enabled: this.screen.enabled,
Expand Down
6 changes: 3 additions & 3 deletions app/src/room/locator.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import type * as Publish from "@moq/publish";
import { Effect, Signal } from "@moq/signals";
import * as DOM from "@moq/signals/dom";
import type { Broadcast } from "./broadcast";
import { Bounds, Vector } from "./geometry";
import type { HangPublishBroadcast } from "./metadata";

export class Locator {
broadcast: Broadcast<Publish.Broadcast>;
broadcast: Broadcast<HangPublishBroadcast>;
signals = new Effect();

#visible = new Signal(true);

constructor(broadcast: Broadcast<Publish.Broadcast>) {
constructor(broadcast: Broadcast<HangPublishBroadcast>) {
this.broadcast = broadcast;

this.signals.effect(this.#render.bind(this));
Expand Down
Loading
Loading