קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

audio_stream_out סימוכין למבנה

audio_stream_out סימוכין למבנה

#include < audio.h >

שדות נתונים

struct audio_stream מְשׁוּתָף
uint32_t(* get_latency )(const struct audio_stream_out *stream)
int(* set_volume )(struct audio_stream_out *stream, float left, float right)
ssize_t(* כתוב )(struct audio_stream_out *stream, const void *buffer, size_t bytes)
int(* get_render_position )(const struct audio_stream_out *stream, uint32_t *dsp_frames)
int(* get_next_write_timestamp )(const struct audio_stream_out *stream, int64_t *timestamp)
int(* set_callback )(struct audio_stream_out *stream, stream_callback_t callback, void *cookie)
int(* pause )(struct audio_stream_out *stream)
int(* resume )(struct audio_stream_out *stream)
int(* drain )(struct audio_stream_out *stream, audio_drain_type_t type)
int(* flush )(struct audio_stream_out *stream)
int(* get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *חותמת זמן)

תיאור מפורט

audio_stream_out הוא ממשק ההפשטה עבור חומרת פלט האודיו.

הוא מספק מידע על מאפיינים שונים של מנהל ההתקן של חומרת פלט השמע.

הגדרה בשורה 276 של הקובץ audio.h .

תיעוד שטח

struct audio_stream נפוץ

שיטות נפוצות של זרם האודיו החוצה. זה חייב להיות החבר הראשון ב- audio_stream_out מכיוון שמשתמשים במבנה זה ישליכו מצביע audio_stream ל- audio_stream_out בהקשרים שבהם ידוע שה- audio_stream מתייחס ל- audio_stream_out .

הגדרה בשורה 282 של הקובץ audio.h .

int(* drain)(struct audio_stream_out *stream, audio_drain_type_t type)

מבקש הודעה כאשר הופעלו נתונים המאוחסנים על ידי מנהל ההתקן/חומרה. אם set_callback() נקרא בעבר כדי לאפשר מצב ללא חסימה, אסור ל- drain() לחסום, במקום זאת הוא אמור לחזור במהירות והשלמת הניקוז מקבלת הודעה באמצעות ה-callback. אם set_callback() לא נקרא, ה- drain() חייב לחסום עד להשלמתו. אם סוג==AUDIO_DRAIN_ALL, הניקוז יסתיים כאשר כל הנתונים שנכתבו בעבר הושמעו. אם סוג==AUDIO_DRAIN_EARLY_NOTIFY, הניקוז יסתיים זמן קצר לפני שהושמעו כל הנתונים של הרצועה הנוכחית כדי לאפשר למסגרת לבצע החלפת רצועות ללא פערים.

Drain חייב לחזור מיד בקריאה לעצור() ו- flush() .

יישום של פונקציה זו הוא חובה עבור השמעה מנותקת.

הגדרה בשורה 372 של הקובץ audio.h .

int(* flush)(struct audio_stream_out *stream)

מודיע למנהל התקן האודיו לשטוף את הנתונים בתור. הזרם כבר חייב להיות מושהה לפני קריאת flush() .

יישום של פונקציה זו הוא חובה עבור השמעה מנותקת.

הגדרה בשורה 380 של הקובץ audio.h .

uint32_t(* get_latency)(const struct audio_stream_out *stream)

החזר את זמן האחזור המשוער של מנהל ההתקן של חומרת השמע באלפיות שניות.

הגדרה בשורה 287 של הקובץ audio.h .

int(* get_next_write_timestamp)(const struct audio_stream_out *stream, int64_t *timestamp)

קבל את השעה המקומית שבה תוצג הכתיבה הבאה למנהל התקן האודיו. היחידות הן מיקרו-שניות, כאשר העידן נקבע על ידי HAL האודיו המקומי.

הגדרה בשורה 324 של הקובץ audio.h .

int(* get_presentation_position)(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *חותמת זמן)

החזר ספירה עדכנית של מספר מסגרות השמע שהוצגו לצופה חיצוני. זה לא כולל מסגרות שנכתבו אך עדיין בצנרת. הספירה אינה מאופסת לאפס כאשר הפלט נכנס למצב המתנה. מחזירה גם את הערך של CLOCK_MONOTONIC החל מספירת מצגות זו. הספירה המוחזרת צפויה להיות 'עדכנית', אך אינה חייבת להיות הערך העדכני ביותר האפשרי. עם זאת, הזמן המשויך צריך להתאים לכל ספירה שהוחזרה. דוגמה: נניח שהוצגו N+M מסגרות, כאשר M הוא מספר 'קטן'. אז מותר להחזיר N במקום N+M, וחותמת הזמן צריכה להתאים ל-N ולא ל-N+M. המונחים 'אחרונים' ו'קטנים' אינם מוגדרים. הם משקפים את איכות היישום.

3.0 ומעלה בלבד.

הגדרה בשורה 398 של הקובץ audio.h .

int(* get_render_position)(const struct audio_stream_out *stream, uint32_t *dsp_frames)

הגדרה בשורה 317 של הקובץ audio.h .

int(* pause)(struct audio_stream_out *stream)

מודיע למנהל התקן האודיו להפסיק את ההשמעה, אולם המאגרים בתור נשמרים על ידי החומרה. שימושי ליישום השהייה/קורות חיים. יישום ריק אם אינו נתמך עם זאת, יש ליישם עבור חומרה עם חביון לא טריוויאלי. במצב ההשהיה ייתכן שחומרת השמע עדיין משתמשת בכוח. המשתמש עשוי לשקול להשהות שיחות לאחר פסק זמן.

יישום של פונקציה זו הוא חובה עבור השמעה מנותקת.

הגדרה בשורה 345 של הקובץ audio.h .

int(* resume)(struct audio_stream_out *stream)

מודיע למנהל התקן השמע לחדש את ההשמעה לאחר הפסקה. מחזיר שגיאה אם ​​נקרא ללא הפסקה תואמת.

יישום של פונקציה זו הוא חובה עבור השמעה מנותקת.

הגדרה בשורה 353 של הקובץ audio.h .

int(* set_callback)(struct audio_stream_out *stream, stream_callback_t callback, void *cookie)

הגדר את פונקציית ה-callback להודיע ​​על השלמת כתיבה וניקוז ללא חסימה. קריאת פונקציה זו מרמזת שכל הכתיבה() וה- drain() העתידיים חייבים להיות לא חוסמים ולהשתמש בהתקשרות חזרה כדי לאותת על סיום.

הגדרה בשורה 333 של הקובץ audio.h .

int(* set_volume)(struct audio_stream_out *stream, float left, float right)

השתמש בשיטה זו במצבים שבהם ערבול אודיו נעשה בחומרה. שיטה זו משמשת כממשק ישיר עם חומרה, ומאפשרת לך להגדיר ישירות את עוצמת הקול כנדרש באמצעות המסגרת. שיטה זו עשויה לייצר יציאות PCM מרובות או רכיבי Codec מואצים בחומרה, כגון MP3 או AAC.

הגדרה בשורה 296 של הקובץ audio.h .

ssize_t(* write)(struct audio_stream_out *stream, const void *buffer, size_t bytes)

כתוב חוצץ שמע לנהג. מחזירה מספר בתים שנכתבו, או status_t שלילי. אם לפחות מסגרת אחת נכתבה בהצלחה לפני השגיאה, מומלץ שהנהג יחזיר את ספירת הבתים המוצלחת (הקצרה) ולאחר מכן יחזיר שגיאה בקריאה הבאה.

אם set_callback() נקרא בעבר כדי לאפשר מצב לא חסימה, ה- write() אינו רשאי לחסום. עליו לכתוב רק את מספר הבתים המתאימים כעת למאגר מנהל ההתקן/חומרה ולאחר מכן להחזיר את ספירת הבתים הזו. אם זה קטן מגודל הכתיבה המבוקש יש לקרוא לפונקציית ה-callback כאשר יש יותר מקום פנוי במאגר מנהל ההתקן/חומרה.

הגדרה בשורה 311 של הקובץ audio.h .


התיעוד עבור מבנה זה נוצר מהקובץ הבא:
  • hardware/libhardware/include/hardware/ audio.h