イベントインターフェース¶
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
evt
to the listener, then we can listenevt
event 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
evt
from 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
evt
to the listener, then we can listenevt
event 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
¶