イベントインターフェース¶
Event Interface
ADFは、パイプライン内のオーディオ要素間の通信を確立するためのイベントインターフェイスAPIを提供します。 APIはFreeRTOSキューを中心に構築されています。 着信メッセージを監視し、コールバック関数を使用してそれらについて通知する「リスナー」を実装します。
The ADF provides the Event Interface API to establish communication between Audio Elements in a pipeline. The API is built around FreeRTOS queue. It implements ‘listeners’ to watch for incoming messages and inform about them with a callback function.
アプリケーション例¶
Application Examples
このAPIの実装は、get-started/play_mp3を含むいくつかの例で示されています。
Implementation of this API is demonstrated in couple of examples including get-started/play_mp3.
APIリファレンス¶
API Reference
関数¶
Functions
- 
audio_event_iface_handle_t 
audio_event_iface_init(audio_event_iface_cfg_t *config)¶ オーディオイベントを初期化します。
Initialize audio event.
- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 config: 構成config: The configurations
- 
esp_err_t 
audio_event_iface_destroy(audio_event_iface_handle_t evt)¶ クリーンアップイベント。evtポインタは解放されません。
Cleanup event, it doesn’t free evt pointer.
- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 evt: イベントevt: The event
- 
esp_err_t 
audio_event_iface_set_listener(audio_event_iface_handle_t evt, audio_event_iface_handle_t listener)¶ オーディオイベント
evtをリスナーに追加すると、聞き取りからevtイベントを聞くことができますAdd audio event
evtto the listener, then we can listenevtevent fromlisten- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 listener: イベントは別のイベントを聞くことができますlistener: The event can listen another eventevt: 追加するイベントevt: The event to be added to
- 
esp_err_t 
audio_event_iface_remove_listener(audio_event_iface_handle_t listener, audio_event_iface_handle_t evt)¶ リスナーからオーディオイベント
evtを削除します。Remove audio event
evtfrom the listener.- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 listener: イベントリスナーlistener: The event listenerevt: 削除するイベントevt: The event to be removed from
- 
esp_err_t 
audio_event_iface_set_cmd_waiting_timeout(audio_event_iface_handle_t evt, TickType_t wait_time)¶ イベントの現在のキュー待機時間を設定します。
Set current queue wait time for the event.
- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 evt: イベントevt: The eventwait_time: 待ち時間wait_time: The wait time
- 
esp_err_t 
audio_event_iface_waiting_cmd_msg(audio_event_iface_handle_t evt)¶ 内部キューメッセージを待機しています。
Waiting internal queue message.
- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 evt: イベントevt: The event
- 
esp_err_t 
audio_event_iface_cmd(audio_event_iface_handle_t evt, audio_event_iface_msg_t *msg)¶ メッセージを使用して内部キューのイベントをトリガーします。
Trigger an event for internal queue with a message.
- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 evt: イベントevt: The eventmsg: メッセージmsg: The message
- 
esp_err_t 
audio_event_iface_cmd_from_isr(audio_event_iface_handle_t evt, audio_event_iface_msg_t *msg)¶ audio_event_iface_cmdと同じですが、ISRからメッセージを送信できます。It’s same with
audio_event_iface_cmd, but can send a message from ISR.- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 evt: イベントevt: The eventmsg: メッセージmsg: The message
- 
esp_err_t 
audio_event_iface_sendout(audio_event_iface_handle_t evt, audio_event_iface_msg_t *msg)¶ メッセージでトリガーしてイベントを出します。
Trigger and event out with a message.
- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 evt: イベントevt: The eventmsg: メッセージmsg: The message
- 
esp_err_t 
audio_event_iface_discard(audio_event_iface_handle_t evt)¶ 進行中のイベントメッセージをすべて破棄します。
Discard all ongoing event message.
- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 evt: イベントevt: The event
- 
esp_err_t 
audio_event_iface_listen(audio_event_iface_handle_t evt, audio_event_iface_msg_t *msg, TickType_t wait_time)¶ イベントが発生した場合は、コールバック関数をリッスンして呼び出します。
Listening and invoke callback function if there are any event are comming.
- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 evt: イベントevt: The eventmsg: メッセージmsg: The messagewait_time: 待ち時間wait_time: The wait time
- 
QueueHandle_t 
audio_event_iface_get_queue_handle(audio_event_iface_handle_t evt)¶ エミッタの外部キューハンドルを取得します。
Get External queue handle of Emmitter.
- Return
 - 外部QueueHandle_t
  
External QueueHandle_t
 - Parameters
 evt: 外部キューevt: The external queue
- 
esp_err_t 
audio_event_iface_read(audio_event_iface_handle_t evt, audio_event_iface_msg_t *msg, TickType_t wait_time)¶ インターフェイスのキューセットに登録されているすべてのイベントエミッタからイベントを読み取ります。
Read the event from all the registered event emitters in the queue set of the interface.
- Return
 - ESP_OKイベントの正常な受信時
  
ESP_OK On successful receiving of event
 - ESP_FAILタイムアウトまたは無効なパラメーターが渡された場合
  
ESP_FAIL In case of a timeout or invalid parameter passed
 
- ESP_OKイベントの正常な受信時
  
 - Parameters
 evt: イベントインターフェイスevt: The event interfacemsg: イベントを受信する構造体へのポインタmsg: The pointer to structure in which event is to be receivedwait_time: イベント受信のタイムアウトwait_time: Timeout for receiving event
- 
QueueHandle_t 
audio_event_iface_get_msg_queue_handle(audio_event_iface_handle_t evt)¶ エミッタの内部キューハンドルを取得します。
Get Internal queue handle of Emmitter.
- Return
 - 内部QueueHandle_t
  
Internal QueueHandle_t
 - Parameters
 evt: 内部キューevt: The Internal queue
- 
esp_err_t 
audio_event_iface_set_msg_listener(audio_event_iface_handle_t evt, audio_event_iface_handle_t listener)¶ オーディオ内部イベント
evtをリスナーに追加すると、聞き取りからevtイベントを聞くことができますAdd audio internal event
evtto the listener, then we can listenevtevent fromlisten- Return
 - ESP_OK
 - ESP_FAIL
 
- Parameters
 listener: イベントは別のイベントを聞くことができますlistener: The event can listen another eventevt: 追加するイベントevt: The event to be added to
構造体¶
Structures
- 
struct 
audio_event_iface_msg_t¶ イベントメッセージ
Event message
Public Members
- 
int 
cmd¶ コマンドID
Command id
- 
void *
data¶ データポインタ
Data pointer
- 
int 
data_len¶ データ長
Data length
- 
void *
source¶ ソースイベント
Source event
- 
int 
source_type¶ ソースタイプ(それがどこから来たのかを知るため)
Source type (To know where it came from)
- 
bool 
need_free_data¶ イベントが処理された後、データポインタを解放する必要があります
Need to free data pointer after the event has been processed
- 
int 
 
- 
struct 
audio_event_iface_cfg_t¶ イベントインターフェイスの構成
Event interface configurations
Public Members
- 
int 
internal_queue_size¶ オプションです。イベント
internal_queueのキューサイズIt’s optional, Queue size for event
internal_queue
- 
int 
external_queue_size¶ オプションです。イベント
external_queueのキューサイズIt’s optional, Queue size for event
external_queue
- 
int 
queue_set_size¶ オプションで、イベント
queue_setのQueueSetサイズIt’s optional, QueueSet size for event
queue_set
- 
on_event_iface_func 
on_cmd¶ イベントが到着したときのリスナーの関数コールバック
Function callback for listener when any event arrived
- 
void *
context¶ コンテキストはコールバック関数に渡されます
Context will pass to callback function
- 
TickType_t 
wait_time¶ イベントキューをチェックするためのタイムアウト
Timeout to check for event queue
- 
int 
type¶ audio_event_iface_msg_t source_typeに渡されます(どこから来たのかを知るため)
it will pass to audio_event_iface_msg_t source_type (To know where it came from)
- 
int 
 
タイプ定義¶
Type Definitions
- 
typedef esp_err_t (*
on_event_iface_func)(audio_event_iface_msg_t *, void *)¶ 
- 
typedef struct audio_event_iface *
audio_event_iface_handle_t¶