| 1 | /*************************************************************************** |
|---|
| 2 | * Copyright (c) 2007 Broadcom Corporation |
|---|
| 3 | * All Rights Reserved |
|---|
| 4 | * Confidential Property of Broadcom Corporation |
|---|
| 5 | * |
|---|
| 6 | * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE |
|---|
| 7 | * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR |
|---|
| 8 | * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. |
|---|
| 9 | * |
|---|
| 10 | * $brcm_Workfile: bsink_playback.h $ |
|---|
| 11 | * $brcm_Revision: 2 $ |
|---|
| 12 | * $brcm_Date: 6/5/08 2:15p $ |
|---|
| 13 | * |
|---|
| 14 | * Module Description: |
|---|
| 15 | * |
|---|
| 16 | * ATOM playback data sink |
|---|
| 17 | * |
|---|
| 18 | * Revision History: |
|---|
| 19 | * |
|---|
| 20 | * $brcm_Log: /BSEAV/lib/utils/bsink_playback.h $ |
|---|
| 21 | * |
|---|
| 22 | * 2 6/5/08 2:15p vsilyaev |
|---|
| 23 | * PR 42318: Use 'const void *' for address translation |
|---|
| 24 | * |
|---|
| 25 | * 1 8/2/07 3:58p vsilyaev |
|---|
| 26 | * PR 33751: Playback sink (destination) in SPF framework |
|---|
| 27 | * |
|---|
| 28 | * |
|---|
| 29 | ***************************************************************************/ |
|---|
| 30 | #ifndef __BSINK_PLAYBACK_H__ |
|---|
| 31 | #define __BSINK_PLAYBACK_H__ |
|---|
| 32 | |
|---|
| 33 | #include "bioatom.h" |
|---|
| 34 | #include "bpvrlib_feed.h" |
|---|
| 35 | #ifdef __cplusplus |
|---|
| 36 | extern "C" |
|---|
| 37 | { |
|---|
| 38 | #endif |
|---|
| 39 | |
|---|
| 40 | typedef struct bsink_playback *bsink_playback_t; |
|---|
| 41 | |
|---|
| 42 | typedef struct bsink_playback_cfg { |
|---|
| 43 | uint32_t (*addr_to_offset)(const void *ptr); |
|---|
| 44 | void (*cache_flush)(const void *addr, size_t len); |
|---|
| 45 | BPVRlib_Feed_Handle feed; |
|---|
| 46 | } bsink_playback_cfg; |
|---|
| 47 | |
|---|
| 48 | typedef struct bsink_playback_status { |
|---|
| 49 | bool idle; /* set to true if no data is accumulated in the sink */ |
|---|
| 50 | } bsink_playback_status; |
|---|
| 51 | |
|---|
| 52 | void bsink_playback_default_cfg(bsink_playback_cfg *cfg); |
|---|
| 53 | bsink_playback_t bsink_playback_create(batom_factory_t factory, const bsink_playback_cfg *cfg); |
|---|
| 54 | void bsink_playback_destroy(bsink_playback_t sink); |
|---|
| 55 | BERR_Code bsink_playback_start(bsink_playback_t sink); |
|---|
| 56 | void bsink_playback_stop(bsink_playback_t sink); |
|---|
| 57 | void bsink_playback_get_status(bsink_playback_t sink, bsink_playback_status *status); |
|---|
| 58 | size_t bsink_playback_feed(bsink_playback_t sink, batom_pipe_t in_pipe); |
|---|
| 59 | |
|---|
| 60 | #ifdef __cplusplus |
|---|
| 61 | } |
|---|
| 62 | #endif |
|---|
| 63 | |
|---|
| 64 | #endif /* __BSINK_PLAYBACK_H__ */ |
|---|
| 65 | |
|---|