Changeset c5b8548 in mainline
- Timestamp:
- 2013-04-05T12:24:43Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 704baed
- Parents:
- 50179b63
- Location:
- uspace/srv/audio/hound
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/audio/hound/audio_data.c
r50179b63 rc5b8548 69 69 } 70 70 71 audio_data_link_t *audio_data_link_create(audio_data_t *adata) 71 /* Data link helpers */ 72 73 typedef struct { 74 link_t link; 75 audio_data_t *adata; 76 size_t position; 77 } audio_data_link_t; 78 79 static inline audio_data_link_t * audio_data_link_list_instance(link_t *l) 80 { 81 return l ? list_get_instance(l, audio_data_link_t, link) : NULL; 82 } 83 84 static audio_data_link_t *audio_data_link_create(audio_data_t *adata) 72 85 { 73 86 assert(adata); … … 81 94 } 82 95 83 audio_data_link_t * audio_data_link_create_data(const void *data, size_t size, 84 pcm_format_t format) 85 { 86 audio_data_link_t *link = NULL; 87 audio_data_t *adata = audio_data_create(data, size, format); 88 if (adata) { 89 link = audio_data_link_create(adata); 90 /* This will either return refcount to 1 or clean adata if 91 * cloning failed */ 92 audio_data_unref(adata); 93 } 94 return link; 95 } 96 97 void audio_data_link_destroy(audio_data_link_t *link) 96 static void audio_data_link_destroy(audio_data_link_t *link) 98 97 { 99 98 assert(link); … … 103 102 } 104 103 105 size_t audio_data_link_available_frames(audio_data_link_t *alink) 104 static inline const void * audio_data_link_start(audio_data_link_t *alink) 105 { 106 assert(alink); 107 assert(alink->adata); 108 return alink->adata->data + alink->position; 109 } 110 111 static inline size_t audio_data_link_remain_size(audio_data_link_t *alink) 112 { 113 assert(alink); 114 assert(alink->adata); 115 assert(alink->position <= alink->adata->size); 116 return alink->adata->size - alink->position; 117 } 118 119 120 static inline size_t audio_data_link_available_frames(audio_data_link_t *alink) 106 121 { 107 122 assert(alink); -
uspace/srv/audio/hound/audio_data.h
r50179b63 rc5b8548 51 51 52 52 typedef struct { 53 link_t link;54 audio_data_t *adata;55 size_t position;56 } audio_data_link_t;57 58 typedef struct {59 53 list_t list; 60 54 size_t bytes; … … 63 57 } audio_pipe_t; 64 58 65 static inline audio_data_link_t * audio_data_link_list_instance(link_t *l)66 {67 return l ? list_get_instance(l, audio_data_link_t, link) : NULL;68 }69 70 59 audio_data_t * audio_data_create(const void *data, size_t size, 71 60 pcm_format_t format); 72 61 void audio_data_addref(audio_data_t *adata); 73 62 void audio_data_unref(audio_data_t *adata); 74 75 audio_data_link_t * audio_data_link_create_data(const void *data, size_t size,76 pcm_format_t format);77 audio_data_link_t *audio_data_link_create(audio_data_t *adata);78 void audio_data_link_destroy(audio_data_link_t *link);79 80 size_t audio_data_link_available_frames(audio_data_link_t *alink);81 static inline const void * audio_data_link_start(audio_data_link_t *alink)82 {83 assert(alink);84 assert(alink->adata);85 return alink->adata->data + alink->position;86 }87 88 static inline size_t audio_data_link_remain_size(audio_data_link_t *alink)89 {90 assert(alink);91 assert(alink->adata);92 assert(alink->position <= alink->adata->size);93 return alink->adata->size - alink->position;94 }95 63 96 64 void audio_pipe_init(audio_pipe_t *pipe);
Note:
See TracChangeset
for help on using the changeset viewer.