Index: Plug.tmpasm =================================================================== --- Plug.tmpasm (revision 18303) +++ Plug.tmpasm (revision 18304) @@ -1,5 +1,6 @@ put /local/pcb/mod {cam} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/cam/cam.o @] +put /local/pcb/mod/CONF {$(PLUGDIR)/cam/cam_conf.h} switch /local/pcb/cam/controls case {buildin} include /local/pcb/tmpasm/buildin; end; @@ -6,3 +7,17 @@ case {plugin} include /local/pcb/tmpasm/plugin; end; case {disable} include /local/pcb/tmpasm/disable; end; end + +switch /local/pcb/cam/controls + case {disable} end; + default + append /local/pcb/DEPDEPS { ../src_plugins/cam/conf_internal.c } + append /local/pcb/DISTCLEANFILES { ../src_plugins/cam/conf_internal.c } + append /local/pcb/rules/install_ {\n $(SCCBOX) $(HOW) "../src_plugins/cam/cam.conf" "$(DATADIR)/cam.conf"} + + append /local/pcb/RULES [@ +../src_plugins/cam/conf_internal.c: ../src_plugins/cam/cam.conf $(CQUOTE) + $(CQUOTE) -n cam_conf_internal < ../src_plugins/cam/cam.conf > ../src_plugins/cam/conf_internal.c +@] + end +end Index: cam.c =================================================================== --- cam.c (revision 18303) +++ cam.c (revision 18304) @@ -34,20 +34,31 @@ #include "hid_attrib.h" #include "hid_init.h" #include "plugins.h" +#include "cam_conf.h" +#include "../src_plugins/cam/conf_internal.c" + static const char *cam_cookie = "cam exporter"; +conf_cam_t conf_cam; +#define CAM_CONF_FN "cam.conf" + int pplg_check_ver_cam(int ver_needed) { return 0; } void pplg_uninit_cam(void) { - pcb_hid_remove_attributes_by_cookie(cam_cookie); + conf_unreg_file(CAM_CONF_FN, cam_conf_internal); + conf_unreg_fields("plugins/cam/"); } int pplg_init_cam(void) { PCB_API_CHK_VER; + conf_reg_file(CAM_CONF_FN, cam_conf_internal); +#define conf_reg(field,isarray,type_name,cpath,cname,desc,flags) \ + conf_reg_field(conf_cam, field,isarray,type_name,cpath,cname,desc,flags); +#include "cam_conf_fields.h" return 0; } Index: cam.conf =================================================================== --- cam.conf (nonexistent) +++ cam.conf (revision 18304) @@ -0,0 +1,14 @@ +li:pcb-rnd-conf-v1 { + ha:overwrite { + ha:plugins { + ha:cam { + li:jobs { + doc_png { + png;top.png=top-copper,top-silk;dpi=600 + png;bottom.png=bottom-copper,bottom-silk;dpi=600 + } + } + } + } + } +} \ No newline at end of file Index: cam_conf.h =================================================================== --- cam_conf.h (nonexistent) +++ cam_conf.h (revision 18304) @@ -0,0 +1,14 @@ +#ifndef PCB_VENDOR_CONF_H +#define PCB_VENDOR_CONF_H + +#include "conf.h" + +typedef struct { + const struct plugins { + const struct cam { + CFT_LIST jobs; /* named cam scripts */ + } cam; + } plugins; +} conf_cam_t; + +#endif