Index: trunk/src/layer.c =================================================================== --- trunk/src/layer.c (revision 19367) +++ trunk/src/layer.c (revision 19368) @@ -226,7 +226,7 @@ return pcb_false; } -pcb_layer_id_t pcb_layer_id(pcb_data_t *Data, pcb_layer_t *Layer) +pcb_layer_id_t pcb_layer_id(const pcb_data_t *Data, const pcb_layer_t *Layer) { if (Layer->parent_type == PCB_PARENT_UI) return pcb_uilayer_get_id(Layer); @@ -244,7 +244,7 @@ return -1; } -unsigned int pcb_layer_flags(pcb_board_t *pcb, pcb_layer_id_t layer_idx) +unsigned int pcb_layer_flags(const pcb_board_t *pcb, pcb_layer_id_t layer_idx) { pcb_layer_t *l; @@ -261,7 +261,7 @@ return pcb_layergrp_flags(pcb, l->meta.real.grp); } -unsigned int pcb_layer_flags_(pcb_layer_t *layer) +unsigned int pcb_layer_flags_(const pcb_layer_t *layer) { /* real layer: have to do a layer stack based lookup; but at least we have a real layer ID */ @@ -292,7 +292,7 @@ return layer->meta.bound.type; } -int pcb_layer_purpose(pcb_board_t *pcb, pcb_layer_id_t layer_idx, const char **out) +int pcb_layer_purpose(const pcb_board_t *pcb, pcb_layer_id_t layer_idx, const char **out) { pcb_layergrp_t *grp; @@ -311,7 +311,7 @@ return -1; } - grp = pcb_get_layergrp(pcb, pcb->Data->Layer[layer_idx].meta.real.grp); + grp = pcb_get_layergrp((pcb_board_t *)pcb, pcb->Data->Layer[layer_idx].meta.real.grp); if (out != NULL) { if (grp == NULL) { @@ -328,7 +328,7 @@ return grp->purpi; } -int pcb_layer_purpose_(pcb_layer_t *layer, const char **out) +int pcb_layer_purpose_(const pcb_layer_t *layer, const char **out) { /* real layer: have to do a layer stack based lookup; but at least we have a real layer ID */ if (!layer->is_bound) { @@ -389,7 +389,7 @@ -int pcb_layer_list(pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len) +int pcb_layer_list(const pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len) { int n, used = 0; pcb_virt_layer_t *v; @@ -411,7 +411,7 @@ } /* optimization: code dup for speed */ -int pcb_layer_listp(pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len, int purpi, const char *purpose) +int pcb_layer_listp(const pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len, int purpi, const char *purpose) { int n, used = 0; pcb_virt_layer_t *v; @@ -439,7 +439,7 @@ } -int pcb_layer_list_any(pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len) +int pcb_layer_list_any(const pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len) { int n, used = 0; pcb_virt_layer_t *v; Index: trunk/src/layer.h =================================================================== --- trunk/src/layer.h (revision 19367) +++ trunk/src/layer.h (revision 19368) @@ -160,7 +160,7 @@ }; /* returns the layer number for the passed copper or silk layer pointer */ -pcb_layer_id_t pcb_layer_id(pcb_data_t *Data, pcb_layer_t *Layer); +pcb_layer_id_t pcb_layer_id(const pcb_data_t *Data, const pcb_layer_t *Layer); /* the offsets of the two additional special layers (e.g. silk) for 'component' @@ -233,13 +233,13 @@ /* returns a bitfield of pcb_layer_type_t; returns 0 if layer_idx or layer is invalid. */ -unsigned int pcb_layer_flags(pcb_board_t *pcb, pcb_layer_id_t layer_idx); -unsigned int pcb_layer_flags_(pcb_layer_t *layer); +unsigned int pcb_layer_flags(const pcb_board_t *pcb, pcb_layer_id_t layer_idx); +unsigned int pcb_layer_flags_(const pcb_layer_t *layer); /* Return the purpi of the group of a layer; if out is not NULL, also copy a pointer to the purpose string there (valid until a layer change) */ -int pcb_layer_purpose(pcb_board_t *pcb, pcb_layer_id_t layer_idx, const char **out); -int pcb_layer_purpose_(pcb_layer_t *layer, const char **out); +int pcb_layer_purpose(const pcb_board_t *pcb, pcb_layer_id_t layer_idx, const char **out); +int pcb_layer_purpose_(const pcb_layer_t *layer, const char **out); /* map bits of a layer type (call cb for each bit set); return number of bits @@ -266,9 +266,9 @@ The version that ends in 'p' also matches purpose if purpi is not -1 and/or purpose is not NULL. */ -int pcb_layer_list(pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len); -int pcb_layer_list_any(pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len); -int pcb_layer_listp(pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len, int purpi, const char *purpose); +int pcb_layer_list(const pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len); +int pcb_layer_list_any(const pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len); +int pcb_layer_listp(const pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layer_id_t *res, int res_len, int purpi, const char *purpose); /**** layer creation (for load/import code) ****/ @@ -335,7 +335,7 @@ /* Return the real layer, resolving layer bindings. Returns NULL on error (e.g. binding loop) */ -PCB_INLINE pcb_layer_t *pcb_layer_get_real(pcb_layer_t *layer) +PCB_INLINE pcb_layer_t *pcb_layer_get_real(const pcb_layer_t *layer) { int rec = 0; @@ -345,7 +345,7 @@ if ((rec > PCB_MAX_BOUND_LAYER_RECURSION) || (layer == NULL)) return NULL; } - return layer; + return (pcb_layer_t *)layer; } /* list of virtual layers: these are generated by the draw code but do not