Home | History | Annotate | Download | only in libFLAC

Lines Matching defs:node

949 static void node_delete_(FLAC__Metadata_Node *node)
951 FLAC__ASSERT(0 != node);
952 if(0 != node->data)
953 FLAC__metadata_object_delete(node->data);
954 free(node);
972 FLAC__Metadata_Node *node, *next;
976 for(node = chain->head; node; ) {
977 next = node->next;
978 node_delete_(node);
979 node = next;
988 static void chain_append_node_(FLAC__Metadata_Chain *chain, FLAC__Metadata_Node *node)
991 FLAC__ASSERT(0 != node);
992 FLAC__ASSERT(0 != node->data);
994 node->next = node->prev = 0;
995 node->data->is_last = true;
1000 chain->head = node;
1003 chain->tail->next = node;
1004 node->prev = chain->tail;
1006 chain->tail = node;
1010 static void chain_remove_node_(FLAC__Metadata_Chain *chain, FLAC__Metadata_Node *node)
1013 FLAC__ASSERT(0 != node);
1015 if(node == chain->head)
1016 chain->head = node->next;
1018 node->prev->next = node->next;
1020 if(node == chain->tail)
1021 chain->tail = node->prev;
1023 node->next->prev = node->prev;
1031 static void chain_delete_node_(FLAC__Metadata_Chain *chain, FLAC__Metadata_Node *node)
1033 chain_remove_node_(chain, node);
1034 node_delete_(node);
1039 const FLAC__Metadata_Node *node;
1041 for(node = chain->head; node; node = node->next)
1042 length += (FLAC__STREAM_METADATA_HEADER_LENGTH + node->data->length);
1046 static void iterator_insert_node_(FLAC__Metadata_Iterator *iterator, FLAC__Metadata_Node *node)
1048 FLAC__ASSERT(0 != node);
1049 FLAC__ASSERT(0 != node->data);
1056 node->data->is_last = false;
1058 node->prev = iterator->current->prev;
1059 node->next = iterator->current;
1061 if(0 == node->prev)
1062 iterator->chain->head = node;
1064 node->prev->next = node;
1066 iterator->current->prev = node;
1071 static void iterator_insert_node_after_(FLAC__Metadata_Iterator *iterator, FLAC__Metadata_Node *node)
1073 FLAC__ASSERT(0 != node);
1074 FLAC__ASSERT(0 != node->data);
1083 node->prev = iterator->current;
1084 node->next = iterator->current->next;
1086 if(0 == node->next)
1087 iterator->chain->tail = node;
1089 node->next->prev = node;
1091 node->prev->next = node;
1098 /* return true iff node and node->next are both padding */
1099 static FLAC__bool chain_merge_adjacent_padding_(FLAC__Metadata_Chain *chain, FLAC__Metadata_Node *node)
1101 if(node->data->type == FLAC__METADATA_TYPE_PADDING && 0 != node->next && node->next->data->type == FLAC__METADATA_TYPE_PADDING) {
1102 const unsigned growth = FLAC__STREAM_METADATA_HEADER_LENGTH + node->next->data->length;
1103 node->data->length += growth;
1105 chain_delete_node_(chain, node->next);
1134 FLAC__Metadata_Node *node;
1140 if(0 == (node = node_new_())) {
1145 node->data = padding;
1146 chain_append_node_(chain, node);
1175 FLAC__Metadata_Node *node;
1213 node = node_new_();
1214 if(0 == node) {
1220 node_delete_(node);
1225 node->data = FLAC__metadata_object_new(type);
1226 if(0 == node->data) {
1227 node_delete_(node);
1232 node->data->is_last = is_last;
1233 node->data->length = length;
1235 chain->status = get_equivalent_status_(read_metadata_block_data_cb_(handle, read_cb, seek_cb, node->data));
1237 node_delete_(node);
1240 chain_append_node_(chain, node);
1282 FLAC__Metadata_Node *node;
1286 node = node_new_();
1287 if(0 == node) {
1292 node->data = FLAC__metadata_object_clone(metadata);
1293 if(0 == node->data) {
1294 node_delete_(node);
1299 chain_append_node_(chain, node);
1350 FLAC__Metadata_Node *node;
1360 for(node = chain->head; node; node = node->next) {
1361 if(!write_metadata_block_header_cb_(handle, write_cb, node->data)) {
1365 if(!write_metadata_block_data_cb_(handle, write_cb, node->data)) {
1402 const FLAC__Metadata_Node *node;
1425 for(node = chain->head; node; node = node->next) {
1426 if(!write_metadata_block_header_(tempfile, &status, node->data)) {
1430 if(!write_metadata_block_data_(tempfile, &status, node->data)) {
1461 const FLAC__Metadata_Node *node;
1474 for(node = chain->head; node; node = node->next) {
1475 if(!write_metadata_block_header_cb_(temp_handle, temp_write_cb, node->data)) {
1479 if(!write_metadata_block_data_cb_(temp_handle, temp_write_cb, node->data)) {
1685 const FLAC__Metadata_Node *node;
1688 for(node = chain->head; node; node = node->next)
1689 chain->last_offset += (FLAC__STREAM_METADATA_HEADER_LENGTH + node->data->length);
1785 const FLAC__Metadata_Node *node;
1788 for(node = chain->head; node; node = node->next)
1789 chain->last_offset += (FLAC__STREAM_METADATA_HEADER_LENGTH + node->data->length);
1797 FLAC__Metadata_Node *node;
1801 for(node = chain->head; node; ) {
1802 if(!chain_merge_adjacent_padding_(chain, node))
1803 node = node->next;
1809 FLAC__Metadata_Node *node, *save;
1818 for(i = 0, node = chain->head; i < chain->nodes; i++) {
1819 if(node->data->type == FLAC__METADATA_TYPE_PADDING) {
1820 save = node->next;
1821 chain_remove_node_(chain, node);
1822 chain_append_node_(chain, node);
1823 node = save;
1826 node = node->next;
1937 FLAC__Metadata_Node *node;
1951 if(0 == (node = node_new_()))
1954 node->data = block;
1955 iterator_insert_node_(iterator, node);
1956 iterator->current = node;
1962 FLAC__Metadata_Node *node;
1971 if(0 == (node = node_new_()))
1974 node->data = block;
1975 iterator_insert_node_after_(iterator, node);
1976 iterator->current = node;