Exemplo n.º 1
0
void LoadLocalZooms(struct LocalZooms **to){
	int num_lines=DC_LoadI();
	struct LocalZooms *localzoom;
	struct LocalZooms *uplevel;
	Place place;
	int lokke;
	int ret;

	place.counter=0;
	place.dividor=1;

	for(lokke=0;lokke<num_lines;lokke++){
		localzoom=DC_alloc(sizeof(struct LocalZooms));
		localzoom->Tline=lokke;
		localzoom->Tdividor=1;
		localzoom->zoomline=lokke;
		ListAddElement3(to,&localzoom->l);
	}

	for(;;){
		ret=DC_Next();
		switch(ret){
			case LS_OBJECT:

				localzoom=DC_alloc(sizeof(struct LocalZooms));
				LoadPlace(&localzoom->l.p);
				localzoom->zoomline=DC_LoadI();
				localzoom->level=DC_LoadI();
                                if(disk_load_version>0.725)
                                  localzoom->autogenerated=DC_LoadB();

				place.line=localzoom->Tline;
				uplevel=ListFindElement3(&((*to)->l),&place);
				DC_ListAdd3(&uplevel->uplevel,localzoom);

				LoadLocalZooms_Uplevel(&localzoom->uplevel);
				break;

			case LS_ENDOBJECT:
			case LS_ERROR:
				return;
		}
	}

error:
	return;
}
Exemplo n.º 2
0
struct Signatures *SetSignature(
	struct Blocks *block,
	const Place *place,
        Ratio ratio
){
        struct Signatures *signature=(struct Signatures *)ListFindElement3(&block->signatures->l,place);

	if(signature!=NULL && PlaceEqual(&signature->l.p,place)){
               signature->signature=ratio;
	}else{
                signature=(struct Signatures*)talloc(sizeof(struct Signatures));
		PlaceCopy(&signature->l.p,place);
		signature->signature=ratio;
		ListAddElement3(&block->signatures,&signature->l);
	}
        
	//UpdateSTimes(block);
        UpdateBeats(block);

        return signature;
}