Make the purpose of BaseMediaViewModel.local explicit

This commit is contained in:
Hugh Nimmo-Smith
2024-12-02 13:47:35 +00:00
parent 743638dfc4
commit 3d0bfaefe8

View File

@@ -217,6 +217,11 @@ abstract class BaseMediaViewModel extends ViewModel {
public readonly encryptionStatus: Observable<EncryptionStatus>; public readonly encryptionStatus: Observable<EncryptionStatus>;
/**
* Whether this media corresponds to the local participant.
*/
public abstract readonly local: boolean;
public constructor( public constructor(
/** /**
* An opaque identifier for this media. * An opaque identifier for this media.
@@ -392,13 +397,16 @@ abstract class BaseUserMediaViewModel extends BaseMediaViewModel {
public toggleFitContain(): void { public toggleFitContain(): void {
this._cropVideo.next(!this._cropVideo.value); this._cropVideo.next(!this._cropVideo.value);
} }
public get local(): boolean {
return this instanceof LocalUserMediaViewModel;
}
} }
/** /**
* The local participant's user media. * The local participant's user media.
*/ */
export class LocalUserMediaViewModel extends BaseUserMediaViewModel { export class LocalUserMediaViewModel extends BaseUserMediaViewModel {
public readonly local = true;
/** /**
* Whether the video should be mirrored. * Whether the video should be mirrored.
*/ */
@@ -438,8 +446,6 @@ export class LocalUserMediaViewModel extends BaseUserMediaViewModel {
* A remote participant's user media. * A remote participant's user media.
*/ */
export class RemoteUserMediaViewModel extends BaseUserMediaViewModel { export class RemoteUserMediaViewModel extends BaseUserMediaViewModel {
public readonly local = false;
private readonly locallyMutedToggle = new Subject<void>(); private readonly locallyMutedToggle = new Subject<void>();
private readonly localVolumeAdjustment = new Subject<number>(); private readonly localVolumeAdjustment = new Subject<number>();
private readonly localVolumeCommit = new Subject<void>(); private readonly localVolumeCommit = new Subject<void>();