Skip to content

Fix/unify types between mobile and web #576

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 11 commits into
base: main
Choose a base branch
from
Draft
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 packages/audiodocs/docs/core/audio-context.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 2
sidebar_position: 1
---

# AudioContext
Expand Down
2 changes: 1 addition & 1 deletion packages/audiodocs/docs/core/audio-node.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 3
sidebar_position: 2
---

import { Optional, ReadOnly } from '@site/src/components/Badges';
Expand Down
2 changes: 1 addition & 1 deletion packages/audiodocs/docs/core/audio-param.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 4
sidebar_position: 3
---

import { Optional, ReadOnly } from '@site/src/components/Badges';
Expand Down
2 changes: 1 addition & 1 deletion packages/audiodocs/docs/core/base-audio-context.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 1
sidebar_position: 4
---

import { Optional, ReadOnly, MobileOnly } from '@site/src/components/Badges';
Expand Down
9 changes: 9 additions & 0 deletions packages/audiodocs/docs/core/offline-audio-context.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
sidebar_position: 5
---

import { Optional, ReadOnly} from '@site/src/components/Badges';

# OfflineAudioContext

## 🚧 Under development 🚧
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
sidebar_position: 3
---

# AudioDestinationNode

## 🚧 Under development 🚧
7 changes: 7 additions & 0 deletions packages/audiodocs/docs/effects/periodic-wave.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
sidebar_position: 3
---

# PeriodicWave

## 🚧 Under development 🚧
2 changes: 1 addition & 1 deletion packages/audiodocs/docs/effects/stereo-panner-node.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 3
sidebar_position: 4
---

import AudioNodePropsTable from "@site/src/components/AudioNodePropsTable"
Expand Down
4 changes: 2 additions & 2 deletions packages/audiodocs/docs/sources/audio-buffer-source-node.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ sidebar_position: 4
---

import AudioNodePropsTable from "@site/src/components/AudioNodePropsTable"
import { Optional, Overridden } from '@site/src/components/Badges';
import { Optional, Overridden, MobileOnly } from '@site/src/components/Badges';

# AudioBufferSourceNode

Expand Down Expand Up @@ -49,7 +49,7 @@ function App() {
| :----: | :----: | :-------- |
| `buffer` | [`AudioBuffer`](/docs/sources/audio-buffer) | Associated `AudioBuffer`. |
| `loop` | `boolean` | Boolean indicating if audio data must be replayed after when end of the associated `AudioBuffer` is reached. |
| `loopSkip` | `boolean` | Boolean indicating if upon setting up `loopStart` we want to skip immediately to the loop start. |
| `loopSkip` <MobileOnly /> | `boolean` | Boolean indicating if upon setting up `loopStart` we want to skip immediately to the loop start. |
| `loopStart` | `number` | Float value indicating the time, in seconds, at which playback of the audio must begin, if loop is true. |
| `loopEnd` | `number` | Float value indicating the time, in seconds, at which playback of the audio must end and loop back to `loopStart`, if loop is true. |

Expand Down
40 changes: 20 additions & 20 deletions packages/react-native-audio-api/src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import type {
IAudioRecorder,
IOfflineAudioContext,
IAudioEventEmitter,
} from './interfaces';
} from './mobile/interfaces';

/* eslint-disable no-var */
declare global {
Expand Down Expand Up @@ -40,25 +40,25 @@ if (
NativeAudioAPIModule.install();
}

export { default as RecorderAdapterNode } from './core/RecorderAdapterNode';
export { default as AudioBuffer } from './core/AudioBuffer';
export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
export { default as AudioBufferQueueSourceNode } from './core/AudioBufferQueueSourceNode';
export { default as AudioContext } from './core/AudioContext';
export { default as OfflineAudioContext } from './core/OfflineAudioContext';
export { default as AudioDestinationNode } from './core/AudioDestinationNode';
export { default as AudioNode } from './core/AudioNode';
export { default as AnalyserNode } from './core/AnalyserNode';
export { default as AudioParam } from './core/AudioParam';
export { default as AudioScheduledSourceNode } from './core/AudioScheduledSourceNode';
export { default as BaseAudioContext } from './core/BaseAudioContext';
export { default as BiquadFilterNode } from './core/BiquadFilterNode';
export { default as GainNode } from './core/GainNode';
export { default as OscillatorNode } from './core/OscillatorNode';
export { default as StereoPannerNode } from './core/StereoPannerNode';
export { default as AudioRecorder } from './core/AudioRecorder';
export { default as AudioManager } from './system';
export { default as useSystemVolume } from './hooks/useSytemVolume';
export { default as AudioBuffer } from './mobile/sources/AudioBuffer';
export { default as AudioBufferSourceNode } from './mobile/sources/AudioBufferSourceNode';
export { default as AudioBufferQueueSourceNode } from './mobile/sources/AudioBufferQueueSourceNode';
export { default as AudioContext } from './mobile/core/AudioContext';
export { default as OfflineAudioContext } from './mobile/core/OfflineAudioContext';
export { default as AudioDestinationNode } from './mobile/destinations/AudioDestinationNode';
export { default as AudioNode } from './mobile/core/AudioNode';
export { default as AnalyserNode } from './mobile/analysis/AnalyserNode';
export { default as AudioParam } from './mobile/core/AudioParam';
export { default as AudioScheduledSourceNode } from './mobile/sources/AudioScheduledSourceNode';
export { default as BaseAudioContext } from './mobile/core/BaseAudioContext';
export { default as BiquadFilterNode } from './mobile/effects/BiquadFilterNode';
export { default as GainNode } from './mobile/effects/GainNode';
export { default as OscillatorNode } from './mobile/sources/OscillatorNode';
export { default as StereoPannerNode } from './mobile/effects/StereoPannerNode';
export { default as AudioRecorder } from './mobile/inputs/AudioRecorder';
export { default as AudioManager } from './mobile/system';
export { default as useSystemVolume } from './mobile/hooks/useSystemVolume';
export { default as RecorderAdapterNode } from './mobile/sources/RecorderAdapterNode';

export {
OscillatorType,
Expand Down
30 changes: 15 additions & 15 deletions packages/react-native-audio-api/src/api.web.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
export { default as AudioBuffer } from './web-core/AudioBuffer';
export { default as AudioBufferSourceNode } from './web-core/AudioBufferSourceNode';
export { default as AudioContext } from './web-core/AudioContext';
export { default as OfflineAudioContext } from './web-core/OfflineAudioContext';
export { default as AudioDestinationNode } from './web-core/AudioDestinationNode';
export { default as AudioNode } from './web-core/AudioNode';
export { default as AnalyserNode } from './web-core/AnalyserNode';
export { default as AudioParam } from './web-core/AudioParam';
export { default as AudioScheduledSourceNode } from './web-core/AudioScheduledSourceNode';
export { default as BaseAudioContext } from './web-core/BaseAudioContext';
export { default as BiquadFilterNode } from './web-core/BiquadFilterNode';
export { default as GainNode } from './web-core/GainNode';
export { default as OscillatorNode } from './web-core/OscillatorNode';
export { default as StereoPannerNode } from './web-core/StereoPannerNode';
export { default as AudioBuffer } from './web/sources/AudioBuffer';
export { default as AudioBufferSourceNode } from './web/sources/AudioBufferSourceNode';
export { default as AudioContext } from './web/core/AudioContext';
export { default as OfflineAudioContext } from './web/core/OfflineAudioContext';
export { default as AudioDestinationNode } from './web/destinations/AudioDestinationNode';
export { default as AudioNode } from './web/core/AudioNode';
export { default as AnalyserNode } from './web/analysis/AnalyserNode';
export { default as AudioParam } from './web/core/AudioParam';
export { default as AudioScheduledSourceNode } from './web/sources/AudioScheduledSourceNode';
export { default as BaseAudioContext } from './web/core/BaseAudioContext';
export { default as BiquadFilterNode } from './web/effects/BiquadFilterNode';
export { default as GainNode } from './web/effects/GainNode';
export { default as OscillatorNode } from './web/sources/OscillatorNode';
export { default as StereoPannerNode } from './web/effects/StereoPannerNode';

export * from './web-core/custom';
export * from './web/custom';

export {
OscillatorType,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { IndexSizeError } from '../errors';
import { IndexSizeError } from '../../errors';
import { IAnalyserNode } from '../interfaces';
import { WindowType } from '../types';
import AudioNode from './AudioNode';
import { WindowType } from '../../types';
import AudioNode from '../core/AudioNode';

export default class AnalyserNode extends AudioNode {
private static allowedFFTSize: number[] = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { IAudioContext } from '../interfaces';
import BaseAudioContext from './BaseAudioContext';
import AudioManager from '../system';
import { AudioContextOptions } from '../types';
import { NotSupportedError } from '../errors';
import { AudioContextOptions } from '../../types';
import { NotSupportedError } from '../../errors';

export default class AudioContext extends BaseAudioContext {
constructor(options?: AudioContextOptions) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { IAudioNode } from '../interfaces';
import AudioParam from './AudioParam';
import { ChannelCountMode, ChannelInterpretation } from '../types';
import { ChannelCountMode, ChannelInterpretation } from '../../types';
import BaseAudioContext from './BaseAudioContext';
import { InvalidAccessError } from '../errors';
import { InvalidAccessError } from '../../errors';

export default class AudioNode {
readonly context: BaseAudioContext;
Expand Down Expand Up @@ -42,8 +42,10 @@ export default class AudioNode {
public disconnect(destination?: AudioNode | AudioParam): void {
if (destination instanceof AudioParam) {
this.node.disconnect(destination.audioParam);
} else if (destination instanceof AudioNode) {
this.node.disconnect(destination.node);
} else {
this.node.disconnect(destination?.node);
this.node.disconnect();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { IAudioParam } from '../interfaces';
import { RangeError, InvalidStateError } from '../errors';
import { RangeError, InvalidStateError } from '../../errors';
import BaseAudioContext from './BaseAudioContext';

export default class AudioParam {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ import {
ContextState,
PeriodicWaveConstraints,
AudioBufferSourceNodeOptions,
} from '../types';
import AudioDestinationNode from './AudioDestinationNode';
import OscillatorNode from './OscillatorNode';
import GainNode from './GainNode';
import StereoPannerNode from './StereoPannerNode';
import BiquadFilterNode from './BiquadFilterNode';
import AudioBufferSourceNode from './AudioBufferSourceNode';
import AudioBuffer from './AudioBuffer';
import PeriodicWave from './PeriodicWave';
import AnalyserNode from './AnalyserNode';
import AudioBufferQueueSourceNode from './AudioBufferQueueSourceNode';
import { InvalidAccessError, NotSupportedError } from '../errors';
import RecorderAdapterNode from './RecorderAdapterNode';
} from '../../types';
import AudioDestinationNode from '../destinations/AudioDestinationNode';
import OscillatorNode from '../sources/OscillatorNode';
import GainNode from '../effects/GainNode';
import StereoPannerNode from '../effects/StereoPannerNode';
import BiquadFilterNode from '../effects/BiquadFilterNode';
import AudioBufferSourceNode from '../sources/AudioBufferSourceNode';
import AudioBuffer from '../sources/AudioBuffer';
import PeriodicWave from '../effects/PeriodicWave';
import AnalyserNode from '../analysis/AnalyserNode';
import AudioBufferQueueSourceNode from '../sources/AudioBufferQueueSourceNode';
import RecorderAdapterNode from '../sources/RecorderAdapterNode';
import { InvalidAccessError, NotSupportedError } from '../../errors';

export default class BaseAudioContext {
readonly destination: AudioDestinationNode;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { IOfflineAudioContext } from '../interfaces';
import BaseAudioContext from './BaseAudioContext';
import { OfflineAudioContextOptions } from '../types';
import { InvalidStateError, NotSupportedError } from '../errors';
import AudioBuffer from './AudioBuffer';
import { OfflineAudioContextOptions } from '../../types';
import { InvalidStateError, NotSupportedError } from '../../errors';
import AudioBuffer from '../sources/AudioBuffer';

export default class OfflineAudioContext extends BaseAudioContext {
private isSuspended: boolean;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import AudioNode from './AudioNode';
import AudioNode from '../core/AudioNode';

export default class AudioDestinationNode extends AudioNode {}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { InvalidAccessError } from '../errors';
import { InvalidAccessError } from '../../errors';
import { IBiquadFilterNode } from '../interfaces';
import AudioNode from './AudioNode';
import AudioParam from './AudioParam';
import BaseAudioContext from './BaseAudioContext';
import { BiquadFilterType } from '../types';
import AudioNode from '../core/AudioNode';
import AudioParam from '../core/AudioParam';
import BaseAudioContext from '../core/BaseAudioContext';
import { BiquadFilterType } from '../../types';

export default class BiquadFilterNode extends AudioNode {
readonly frequency: AudioParam;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { IGainNode } from '../interfaces';
import AudioNode from './AudioNode';
import AudioParam from './AudioParam';
import BaseAudioContext from './BaseAudioContext';
import AudioNode from '../core/AudioNode';
import AudioParam from '../core/AudioParam';
import BaseAudioContext from '../core/BaseAudioContext';

export default class GainNode extends AudioNode {
readonly gain: AudioParam;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { IStereoPannerNode } from '../interfaces';
import AudioNode from './AudioNode';
import AudioParam from './AudioParam';
import BaseAudioContext from './BaseAudioContext';
import AudioNode from '../core/AudioNode';
import AudioParam from '../core/AudioParam';
import BaseAudioContext from '../core/BaseAudioContext';

export default class StereoPannerNode extends AudioNode {
readonly pan: AudioParam;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { AudioEventName } from './types';
import { AudioEventEmitter } from './';
import AudioEventEmitter from './AudioEventEmitter';

export default class AudioEventSubscription {
private readonly audioEventEmitter: AudioEventEmitter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import AudioBuffer from '../core/AudioBuffer';
import AudioBuffer from '../sources/AudioBuffer';

export interface EventEmptyType {}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { IAudioRecorder } from '../interfaces';
import { AudioRecorderOptions } from '../types';
import AudioBuffer from './AudioBuffer';
import { AudioRecorderOptions } from '../../types';
import AudioBuffer from '../sources/AudioBuffer';
import { OnAudioReadyEventType } from '../events/types';
import { AudioEventEmitter } from '../events';
import RecorderAdapterNode from './RecorderAdapterNode';
import RecorderAdapterNode from '../sources/RecorderAdapterNode';

export default class AudioRecorder {
protected readonly recorder: IAudioRecorder;
Expand Down
1 change: 1 addition & 0 deletions packages/react-native-audio-api/src/mobile/inputs/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from './AudioRecorder';
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
BiquadFilterType,
ChannelCountMode,
ChannelInterpretation,
} from './types';
} from '../types';
import { AudioEventName, AudioEventCallback } from './events/types';

export interface IBaseAudioContext {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { IAudioBuffer } from '../interfaces';
import { IndexSizeError } from '../errors';
import { IndexSizeError } from '../../errors';

export default class AudioBuffer {
readonly length: number;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import AudioParam from './AudioParam';
import BaseAudioContext from './BaseAudioContext';
import AudioParam from '../core/AudioParam';
import BaseAudioContext from '../core/BaseAudioContext';
import { AudioEventSubscription } from '../events';
import { EventTypeWithValue } from '../events/types';
import { IAudioBufferBaseSourceNode } from '../interfaces';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { IAudioBufferQueueSourceNode } from '../interfaces';
import AudioBufferBaseSourceNode from './AudioBufferBaseSourceNode';
import AudioBuffer from './AudioBuffer';
import { RangeError } from '../errors';
import { RangeError } from '../../errors';

export default class AudioBufferQueueSourceNode extends AudioBufferBaseSourceNode {
public enqueueBuffer(buffer: AudioBuffer): string {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { IAudioBufferSourceNode } from '../interfaces';
import AudioBufferBaseSourceNode from './AudioBufferBaseSourceNode';
import AudioBuffer from './AudioBuffer';
import { InvalidStateError, RangeError } from '../errors';
import { InvalidStateError, RangeError } from '../../errors';
import { EventEmptyType } from '../events/types';

export default class AudioBufferSourceNode extends AudioBufferBaseSourceNode {
Expand Down
Loading