@basmilius/apple-raop 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +189 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +5 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +14 -13
- package/dist/const.d.ts +0 -8
- package/dist/controlClient.d.ts +0 -12
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -1030
- package/dist/packets.d.ts +0 -19
- package/dist/raop.d.ts +0 -26
- package/dist/rtspClient.d.ts +0 -28
- package/dist/statistics.d.ts +0 -13
- package/dist/streamClient.d.ts +0 -19
- package/dist/types.d.ts +0 -68
- package/dist/utils.d.ts +0 -5
package/dist/packets.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export declare class PacketFifo {
|
|
2
|
-
#private;
|
|
3
|
-
constructor(maxSize: number);
|
|
4
|
-
get(seqno: number): Buffer | undefined;
|
|
5
|
-
set(seqno: number, packet: Buffer): void;
|
|
6
|
-
has(seqno: number): boolean;
|
|
7
|
-
clear(): void;
|
|
8
|
-
}
|
|
9
|
-
export declare const AudioPacketHeader: {
|
|
10
|
-
encode(header: number, payloadType: number, seqno: number, timestamp: number, ssrc: number): Buffer;
|
|
11
|
-
};
|
|
12
|
-
export declare const SyncPacket: {
|
|
13
|
-
encode(header: number, payloadType: number, seqno: number, rtpTimestamp: number, ntpSec: number, ntpFrac: number, rtpTimestampNow: number): Buffer;
|
|
14
|
-
};
|
|
15
|
-
export type RetransmitRequest = {
|
|
16
|
-
readonly lostSeqno: number;
|
|
17
|
-
readonly lostPackets: number;
|
|
18
|
-
};
|
|
19
|
-
export declare function decodeRetransmitRequest(data: Buffer): RetransmitRequest;
|
package/dist/raop.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "node:events";
|
|
2
|
-
import { type AudioSource, Context, type DiscoveryResult, TimingServer } from "@basmilius/apple-common";
|
|
3
|
-
import type { MediaMetadata, PlaybackInfo } from "./types";
|
|
4
|
-
export type EventMap = {
|
|
5
|
-
readonly playing: [playbackInfo: PlaybackInfo];
|
|
6
|
-
readonly stopped: [];
|
|
7
|
-
};
|
|
8
|
-
export type StreamOptions = {
|
|
9
|
-
readonly metadata?: MediaMetadata;
|
|
10
|
-
readonly volume?: number;
|
|
11
|
-
};
|
|
12
|
-
export declare class RaopClient extends EventEmitter<EventMap> {
|
|
13
|
-
#private;
|
|
14
|
-
get context(): Context;
|
|
15
|
-
get deviceId(): string;
|
|
16
|
-
get address(): string;
|
|
17
|
-
get modelName(): string;
|
|
18
|
-
get info(): Record<string, unknown>;
|
|
19
|
-
private constructor();
|
|
20
|
-
stream(source: AudioSource, options?: StreamOptions): Promise<void>;
|
|
21
|
-
stop(): void;
|
|
22
|
-
setVolume(volume: number): Promise<void>;
|
|
23
|
-
close(): Promise<void>;
|
|
24
|
-
static create(discoveryResult: DiscoveryResult, timingServer: TimingServer): Promise<RaopClient>;
|
|
25
|
-
static discover(deviceId: string, timingServer: TimingServer): Promise<RaopClient>;
|
|
26
|
-
}
|
package/dist/rtspClient.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Connection, type Context } from "@basmilius/apple-common";
|
|
2
|
-
import type { MediaMetadata } from "./types";
|
|
3
|
-
export default class RtspClient extends Connection<{}> {
|
|
4
|
-
#private;
|
|
5
|
-
get activeRemoteId(): string;
|
|
6
|
-
get dacpId(): string;
|
|
7
|
-
get rtspSessionId(): string;
|
|
8
|
-
get sessionId(): number;
|
|
9
|
-
get uri(): string;
|
|
10
|
-
get connection(): {
|
|
11
|
-
localIp: string;
|
|
12
|
-
remoteIp: string;
|
|
13
|
-
};
|
|
14
|
-
constructor(context: Context, address: string, port: number);
|
|
15
|
-
info(): Promise<Record<string, unknown>>;
|
|
16
|
-
authSetup(): Promise<void>;
|
|
17
|
-
announce(bytesPerChannel: number, channels: number, sampleRate: number, password?: string): Promise<Response>;
|
|
18
|
-
setup(headers?: Record<string, string>, body?: Buffer | string | Record<string, unknown>): Promise<Response>;
|
|
19
|
-
record(headers?: Record<string, string>): Promise<void>;
|
|
20
|
-
flush(options: {
|
|
21
|
-
headers: Record<string, string>;
|
|
22
|
-
}): Promise<void>;
|
|
23
|
-
setParameter(name: string, value: string): Promise<void>;
|
|
24
|
-
setMetadata(session: string, rtpseq: number, rtptime: number, metadata: MediaMetadata): Promise<void>;
|
|
25
|
-
setArtwork(session: string, rtpseq: number, rtptime: number, artwork: Buffer): Promise<void>;
|
|
26
|
-
feedback(allowError?: boolean): Promise<Response>;
|
|
27
|
-
teardown(session: string): Promise<void>;
|
|
28
|
-
}
|
package/dist/statistics.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export default class Statistics {
|
|
2
|
-
readonly sampleRate: number;
|
|
3
|
-
readonly startTimeNs: bigint;
|
|
4
|
-
intervalTime: number;
|
|
5
|
-
totalFrames: number;
|
|
6
|
-
intervalFrames: number;
|
|
7
|
-
constructor(sampleRate: number);
|
|
8
|
-
get expectedFrameCount(): number;
|
|
9
|
-
get framesBehind(): number;
|
|
10
|
-
get intervalCompleted(): boolean;
|
|
11
|
-
tick(sentFrames: number): void;
|
|
12
|
-
newInterval(): [number, number];
|
|
13
|
-
}
|
package/dist/streamClient.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "node:events";
|
|
2
|
-
import { type AudioSource, type Context, type TimingServer } from "@basmilius/apple-common";
|
|
3
|
-
import { type MediaMetadata, type PlaybackInfo, type Settings, type StreamContext, type StreamProtocol } from "./types";
|
|
4
|
-
import RtspClient from "./rtspClient";
|
|
5
|
-
export type EventMap = {
|
|
6
|
-
readonly playing: [playbackInfo: PlaybackInfo];
|
|
7
|
-
readonly stopped: [];
|
|
8
|
-
};
|
|
9
|
-
export default class StreamClient extends EventEmitter<EventMap> {
|
|
10
|
-
#private;
|
|
11
|
-
get info(): Record<string, unknown>;
|
|
12
|
-
get playbackInfo(): PlaybackInfo;
|
|
13
|
-
constructor(context: Context, rtsp: RtspClient, streamContext: StreamContext, protocol: StreamProtocol, settings: Settings, timingServer: TimingServer);
|
|
14
|
-
close(): void;
|
|
15
|
-
initialize(properties: Map<string, string>): Promise<void>;
|
|
16
|
-
stop(): void;
|
|
17
|
-
setVolume(volume: number): Promise<void>;
|
|
18
|
-
sendAudio(source: AudioSource, metadata?: MediaMetadata, volume?: number): Promise<void>;
|
|
19
|
-
}
|
package/dist/types.d.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import type { Socket as UdpSocket } from 'node:dgram';
|
|
2
|
-
|
|
3
|
-
export type MediaMetadata = {
|
|
4
|
-
readonly title: string;
|
|
5
|
-
readonly artist: string;
|
|
6
|
-
readonly album: string;
|
|
7
|
-
readonly duration: number;
|
|
8
|
-
readonly artwork?: Buffer;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export type PlaybackInfo = {
|
|
12
|
-
readonly metadata: MediaMetadata;
|
|
13
|
-
readonly position: number;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export type StreamContext = {
|
|
17
|
-
sampleRate: number;
|
|
18
|
-
channels: number;
|
|
19
|
-
bytesPerChannel: number;
|
|
20
|
-
rtpseq: number;
|
|
21
|
-
rtptime: number;
|
|
22
|
-
headTs: number;
|
|
23
|
-
latency: number;
|
|
24
|
-
serverPort: number;
|
|
25
|
-
controlPort: number;
|
|
26
|
-
rtspSession: string;
|
|
27
|
-
volume: number;
|
|
28
|
-
position: number;
|
|
29
|
-
packetSize: number;
|
|
30
|
-
frameSize: number;
|
|
31
|
-
paddingSent: number;
|
|
32
|
-
|
|
33
|
-
reset(): void;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface StreamProtocol {
|
|
37
|
-
setup(timingPort: number, controlPort: number): Promise<void>;
|
|
38
|
-
startFeedback(): Promise<void>;
|
|
39
|
-
sendAudioPacket(transport: UdpSocket, header: Buffer, audio: Buffer): Promise<[number, Buffer]>;
|
|
40
|
-
teardown(): void;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface Settings {
|
|
44
|
-
protocols: {
|
|
45
|
-
raop: {
|
|
46
|
-
controlPort: number;
|
|
47
|
-
timingPort: number;
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export enum EncryptionType {
|
|
53
|
-
Unknown = 0,
|
|
54
|
-
Unencrypted = 1 << 0,
|
|
55
|
-
MFiSAP = 1 << 1
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export enum MetadataType {
|
|
59
|
-
NotSupported = 0,
|
|
60
|
-
Text = 1 << 0,
|
|
61
|
-
Artwork = 1 << 1,
|
|
62
|
-
Progress = 1 << 2
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface RaopListener {
|
|
66
|
-
playing(playbackInfo: PlaybackInfo): void;
|
|
67
|
-
stopped(): void;
|
|
68
|
-
}
|
package/dist/utils.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { EncryptionType, MetadataType } from "./types";
|
|
2
|
-
export declare function pctToDbfs(volume: number): number;
|
|
3
|
-
export declare function getEncryptionTypes(properties: Map<string, string>): EncryptionType;
|
|
4
|
-
export declare function getMetadataTypes(properties: Map<string, string>): MetadataType;
|
|
5
|
-
export declare function getAudioProperties(properties: Map<string, string>): [number, number, number];
|