Index: trunk/scconfig/Rev.h =================================================================== --- trunk/scconfig/Rev.h (revision 16410) +++ trunk/scconfig/Rev.h (revision 16411) @@ -1 +1 @@ -static const int myrev = 16265; +static const int myrev = 16411; Index: trunk/scconfig/Rev.tab =================================================================== --- trunk/scconfig/Rev.tab (revision 16410) +++ trunk/scconfig/Rev.tab (revision 16411) @@ -1,3 +1,4 @@ +16411 configure new plugin: import_ipcd356 16265 configure introducing pcb api ver 16233 configure retire hid_srv_ws: we are not going to use websockets for the web variant 16155 configure rewrite route style anchored menu to be central Index: trunk/scconfig/plugins.h =================================================================== --- trunk/scconfig/plugins.h (revision 16410) +++ trunk/scconfig/plugins.h (revision 16411) @@ -62,6 +62,7 @@ plugin_def("import_dsn", "specctra .dsn importer", sbuildin, 1) plugin_def("import_edif", "import edif", sbuildin, 1) plugin_def("import_hpgl", "import HP-GL plot files", sbuildin, 1) +plugin_def("import_ipcd356", "import IPC-D-356 Netlist", sdisable, 1) plugin_def("import_ltspice", "import ltspice .net+.asc", sbuildin, 1) plugin_def("import_mentor_sch","import mentor graphics sch", sbuildin, 1) plugin_def("import_mucs", "import mucs routing", sbuildin, 1) Index: trunk/src_plugins/import_ipcd356/Makefile =================================================================== --- trunk/src_plugins/import_ipcd356/Makefile (nonexistent) +++ trunk/src_plugins/import_ipcd356/Makefile (revision 16411) @@ -0,0 +1,5 @@ +all: + cd ../../src && $(MAKE) mod_import_ipcd356 + +clean: + rm *.o *.so 2>/dev/null ; true Index: trunk/src_plugins/import_ipcd356/Plug.tmpasm =================================================================== --- trunk/src_plugins/import_ipcd356/Plug.tmpasm (nonexistent) +++ trunk/src_plugins/import_ipcd356/Plug.tmpasm (revision 16411) @@ -0,0 +1,8 @@ +put /local/pcb/mod {import_ipcd356} +put /local/pcb/mod/OBJS [@ $(PLUGDIR)/import_ipcd356/ipcd356.o @] + +switch /local/pcb/import_ipcd356/controls + case {buildin} include /local/pcb/tmpasm/buildin; end; + case {plugin} include /local/pcb/tmpasm/plugin; end; + case {disable} include /local/pcb/tmpasm/disable; end; +end Index: trunk/src_plugins/import_ipcd356/import_ipcd356.pup =================================================================== --- trunk/src_plugins/import_ipcd356/import_ipcd356.pup (nonexistent) +++ trunk/src_plugins/import_ipcd356/import_ipcd356.pup (revision 16411) @@ -0,0 +1,9 @@ +$class import +$short import IPC-D-356 Netlist +$long IPC-D-356 Netlist and pad centroid import +$state WIP +$fmt-native no +$fmt-feature-w import IPC-D-356 Netlist (from automated testing) +$package import-net +default disable +autoload 1 Index: trunk/src_plugins/import_ipcd356/ipcd356.c =================================================================== --- trunk/src_plugins/import_ipcd356/ipcd356.c (nonexistent) +++ trunk/src_plugins/import_ipcd356/ipcd356.c (revision 16411) @@ -0,0 +1,56 @@ + +#include "config.h" + +#include "board.h" +#include "data.h" +#include "safe_fs.h" + +#include "hid.h" +#include "action_helper.h" +#include "hid_actions.h" +#include "plugins.h" + +static const char *ipcd356_cookie = "ipcd356 importer"; + +static int ipc356_parse(pcb_board_t *pcb, FILE *f) +{ + + return 0; +} + +static const char pcb_acts_LoadIpc356From[] = "LoadIpc356From(filename)"; +static const char pcb_acth_LoadIpc356From[] = "Loads the specified IPC356-D netlist"; +int pcb_act_LoadIpc356From(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +{ + FILE *f; + int res; + + f = pcb_fopen(argv[0], "r"); + if (f == NULL) { + pcb_message(PCB_MSG_ERROR, "Can't open %s for read\n", argv[0]); + return 1; + } + res = ipc356_parse(PCB, f); + fclose(f); + return res; +} + +pcb_hid_action_t import_ipcd356_action_list[] = { + {"LoadIpc356From", 0, pcb_act_LoadIpc356From, pcb_acth_LoadIpc356From, pcb_acts_LoadIpc356From} +}; +PCB_REGISTER_ACTIONS(import_ipcd356_action_list, ipcd356_cookie) + +int pplg_check_ver_import_ipcd356(int ver_needed) { return 0; } + +void pplg_uninit_import_ipcd356(void) +{ + pcb_hid_remove_actions_by_cookie(ipcd356_cookie); +} + +#include "dolists.h" +int pplg_init_import_ipcd356(void) +{ + PCB_API_CHK_VER; + PCB_REGISTER_ACTIONS(import_ipcd356_action_list, ipcd356_cookie); + return 0; +} Index: trunk/src_plugins/plugins_ALL.tmpasm =================================================================== --- trunk/src_plugins/plugins_ALL.tmpasm (revision 16410) +++ trunk/src_plugins/plugins_ALL.tmpasm (revision 16411) @@ -46,6 +46,7 @@ include {../src_plugins/import_dsn/Plug.tmpasm} include {../src_plugins/import_edif/Plug.tmpasm} include {../src_plugins/import_hpgl/Plug.tmpasm} +include {../src_plugins/import_ipcd356/Plug.tmpasm} include {../src_plugins/import_ltspice/Plug.tmpasm} include {../src_plugins/import_mentor_sch/Plug.tmpasm} include {../src_plugins/import_mucs/Plug.tmpasm}