Skip to main content

i2s-std

I2S Standard mode bindings for ESP32 Provides I2S (Inter-IC Sound) standard mode functionality for audio applications

export enum I2sDataBitWidth {
Width8 = 0,
Width16 = 1,
Width24 = 2,
Width32 = 3
}

export enum I2sSlotMode {
Mono = 0,
Stereo = 1
}

export enum I2sRole {
Master = 0,
Slave = 1
}

export enum I2sError {
Ok = 0,
InvalidArg = 1,
InvalidState = 2,
NotSupported = 3,
Timeout = 4,
NoMemory = 5
}


// @ts-ignore
@external("i2s_std", "i2s_std_config_create")
export declare function i2sStdConfigCreate(): u32;


// @ts-ignore
@external("i2s_std", "i2s_std_config_clk_cfg_set_sample_rate_hz")
export declare function i2sStdConfigClkCfgSetSampleRateHz(config: u32, sampleRateHz: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_std_config_slot_cfg_set_data_bit_width")
export declare function i2sStdConfigSlotCfgSetDataBitWidth(config: u32, dataBitWidth: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_std_config_slot_cfg_set_slot_mode")
export declare function i2sStdConfigSlotCfgSetSlotMode(config: u32, slotMode: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_std_config_slot_cfg_set_ws_width")
export declare function i2sStdConfigSlotCfgSetWsWidth(config: u32, wsWidth: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_std_config_gpio_cfg_set_mclk")
export declare function i2sStdConfigGpioCfgSetMclk(config: u32, mclk: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_std_config_gpio_cfg_set_bclk")
export declare function i2sStdConfigGpioCfgSetBclk(config: u32, bclk: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_std_config_gpio_cfg_set_ws")
export declare function i2sStdConfigGpioCfgSetWs(config: u32, ws: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_std_config_gpio_cfg_set_dout")
export declare function i2sStdConfigGpioCfgSetDout(config: u32, dout: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_std_config_gpio_cfg_set_din")
export declare function i2sStdConfigGpioCfgSetDin(config: u32, din: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_std_config_destroy")
export declare function i2sStdConfigDestroy(config: u32): void;


// @ts-ignore
@external("i2s_std", "i2s_channel_enable")
export declare function i2sChannelEnable(chanHandle: u32): I2sError;


// @ts-ignore
@external("i2s_std", "i2s_channel_disable")
export declare function i2sChannelDisable(chanHandle: u32): I2sError;


// @ts-ignore
@external("i2s_std", "i2s_channel_read")
export declare function i2sChannelRead(chanHandle: u32, buffer: u32, size: u32, timeoutMs: i32): u32;


// @ts-ignore
@external("i2s_std", "i2s_channel_read_result_get_bytes_read")
export declare function i2sChannelReadResultGetBytesRead(result: u32): u32;


// @ts-ignore
@external("i2s_std", "i2s_channel_read_result_get_ret")
export declare function i2sChannelReadResultGetRet(result: u32): u32;


// @ts-ignore
@external("i2s_std", "i2s_channel_read_result_destroy")
export declare function i2sChannelReadResultDestroy(result: u32): void;


// @ts-ignore
@external("i2s_std", "i2s_channel_preload_data")
export declare function i2sChannelPreloadData(txHandle: u32, buffer: u32, size: i32): I2sError;


// @ts-ignore
@external("i2s_std", "i2s_channel_preload_data_result_get_ret")
export declare function i2sChannelPreloadDataResultGetRet(result: u32): u32;


// @ts-ignore
@external("i2s_std", "i2s_channel_preload_data_result_get_bytes_loaded")
export declare function i2sChannelPreloadDataResultGetBytesLoaded(result: u32): u32;


// @ts-ignore
@external("i2s_std", "i2s_channel_preload_data_result_destroy")
export declare function i2sChannelPreloadDataResultDestroy(result: u32): void;


// @ts-ignore
@external("i2s_std", "i2s_channel_write")
export declare function i2sChannelWrite(chanHandle: u32, buffer: u32, size: i32): u32;


// @ts-ignore
@external("i2s_std", "i2s_channel_write_result_destroy")
export declare function i2sChannelWriteResultDestroy(result: u32): void;


// @ts-ignore
@external("i2s_std", "i2s_channel_write_result_get_ret")
export declare function i2sChannelWriteResultGetRet(result: u32): I2sError;


// @ts-ignore
@external("i2s_std", "i2s_channel_write_result_get_bytes_written")
export declare function i2sChannelWriteResultGetBytesWritten(result: u32): i32;


// @ts-ignore
@external("i2s_std", "i2s_chan_cfg_create")
export declare function i2sChanCfgCreate(): u32;


// @ts-ignore
@external("i2s_std", "i2s_chan_cfg_set_id")
export declare function i2sChanCfgSetId(config: u32, id: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_chan_cfg_set_role")
export declare function i2sChanCfgSetRole(config: u32, role: i32): void;


// @ts-ignore
@external("i2s_std", "i2s_chan_cfg_destroy")
export declare function i2sChanCfgDestroy(config: u32): void;


// @ts-ignore
@external("i2s_std", "i2s_new_channel")
export declare function i2sNewChannel(chanCfg: u32, createTxHandle: boolean, createRxHandle: boolean): I2sError;


// @ts-ignore
@external("i2s_std", "i2s_new_channel_result_get_ret")
export declare function i2sNewChannelResultGetRet(result: u32): I2sError;


// @ts-ignore
@external("i2s_std", "i2s_new_channel_result_get_tx_handle")
export declare function i2sNewChannelResultGetTxHandle(result: u32): u32;


// @ts-ignore
@external("i2s_std", "i2s_new_channel_result_get_rx_handle")
export declare function i2sNewChannelResultGetRxHandle(result: u32): u32;


// @ts-ignore
@external("i2s_std", "i2s_new_channel_result_destroy")
export declare function i2sNewChannelResultDestroy(result: u32): void;


// @ts-ignore
@external("i2s_std", "i2s_channel_init_std_mode")
export declare function i2sChannelInitStdMode(chanHandle: u32, stdConfig: u32): I2sError;