Send commitlog mailing list submissions to
        commitlog@lists.openmoko.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        commitlog-requ...@lists.openmoko.org

You can reach the person managing the list at
        commitlog-ow...@lists.openmoko.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. r5480 - trunk/eda/fped (wer...@docs.openmoko.org)
   2. r5481 - trunk/eda/fped (wer...@docs.openmoko.org)
   3. r5482 - trunk/eda/fped (wer...@docs.openmoko.org)
   4. r5483 - trunk/gta02-core/modules (wer...@docs.openmoko.org)
   5. r5484 - trunk/eda/fped (wer...@docs.openmoko.org)
   6. r5485 - in trunk/gta02-core: . modules (wer...@docs.openmoko.org)
--- Begin Message ---
Author: werner
Date: 2009-08-18 22:52:09 +0200 (Tue, 18 Aug 2009)
New Revision: 5480

Modified:
   trunk/eda/fped/TODO
   trunk/eda/fped/gui_tool.c
   trunk/eda/fped/inst.c
   trunk/eda/fped/inst.h
   trunk/eda/fped/meas.c
   trunk/eda/fped/meas.h
Log:
Finally found a nice way to draw arcs in the GUI.

- we freed a package's samples list after recalculating the number of samples,
  which caused a crash after adding a new vector. We now record the original 
  list length in the package structure.
- when dragging a circle, offer the end point first, so that it becomes an arc



Modified: trunk/eda/fped/TODO
===================================================================
--- trunk/eda/fped/TODO 2009-08-17 21:00:09 UTC (rev 5479)
+++ trunk/eda/fped/TODO 2009-08-18 20:52:09 UTC (rev 5480)
@@ -35,7 +35,6 @@
 - whenever we call parse_* for input parsing, we may leak lots of expressions
 - can't edit measurement labels through the GUI
 - r of rpads is misleading, particularly if we have a circle
-- we can't enter an arc through the GUI / can't convert a circle to an arc
 - using variables in a measurement offset causes a crash because evaluation
   takes place after all table entries have been visited
 

Modified: trunk/eda/fped/gui_tool.c
===================================================================
--- trunk/eda/fped/gui_tool.c   2009-08-17 21:00:09 UTC (rev 5479)
+++ trunk/eda/fped/gui_tool.c   2009-08-18 20:52:09 UTC (rev 5480)
@@ -471,12 +471,10 @@
        case 0:
                c = pos;
                break;
-       case 1:
-               from = pos;
-               if (inst->obj->u.arc.start != inst->obj->u.arc.end)
-                       break;
-               /* fall through */
        case 2:
+               from = pos;
+               break;
+       case 1:
                to = pos;
                break;
        default:
@@ -502,7 +500,7 @@
        buf = save_pix_buf(DA,
            c.x-r_save, c.y-r_save, c.x+r_save, c.y+r_save, 1);
        draw_arc(DA, gc_drag, FALSE, c.x, c.y, r, a1, a2);
-       if (i == 2) {
+       if (i == 1) {
                end = rotate_r(c, r_save, -a2);
                gdk_draw_line(DA, gc_drag, c.x, c.y, end.x, end.y);
        }
@@ -514,19 +512,15 @@
 {
        struct vec *vec = inst_get_vec(to);
        struct obj *obj = inst->obj;
-       int is_circle;
 
-       is_circle = obj->u.arc.start == obj->u.arc.end;
        switch (i) {
        case 0:
                obj->base = vec;
                break;
-       case 1:
-               obj->u.arc.start = vec;
-               if (!is_circle)
-                       break;
-               /* fall through */
        case 2:
+               obj->u.arc.start = vec;
+               break;
+       case 1:
                obj->u.arc.end = vec;
                break;
        default:

Modified: trunk/eda/fped/inst.c
===================================================================
--- trunk/eda/fped/inst.c       2009-08-17 21:00:09 UTC (rev 5479)
+++ trunk/eda/fped/inst.c       2009-08-18 20:52:09 UTC (rev 5480)
@@ -737,9 +737,13 @@
 {
        struct obj *obj = inst->obj;
 
+       /*
+        * Put end point first so that this is what we grab if dragging a
+        * circle (thereby turning it into an arc).
+        */
        anchors[0] = &obj->base;
-       anchors[1] = &obj->u.arc.start;
-       anchors[2] = &obj->u.arc.end;
+       anchors[1] = &obj->u.arc.end;
+       anchors[2] = &obj->u.arc.start;
        return 3;
 }
 
@@ -959,6 +963,7 @@
                        (*pkg)->next_inst[prio] = &(*pkg)->insts[prio];
                (*pkg)->samples =
                    zalloc_size(sizeof(struct sample *)*n_samples);
+               (*pkg)->n_samples = n_samples;
        }
        curr_pkg = *pkg;
 }
@@ -986,7 +991,7 @@
                                next = inst->next;
                                free(inst);
                        }
-               reset_samples(pkg->samples);
+               reset_samples(pkg->samples, pkg->n_samples);
                free(pkg->samples);
                free(pkg);
                pkg = next_pkg;

Modified: trunk/eda/fped/inst.h
===================================================================
--- trunk/eda/fped/inst.h       2009-08-17 21:00:09 UTC (rev 5479)
+++ trunk/eda/fped/inst.h       2009-08-18 20:52:09 UTC (rev 5480)
@@ -114,6 +114,7 @@
        struct inst *insts[ip_n];
        struct inst **next_inst[ip_n];
        struct sample **samples;
+       int n_samples;
        struct pkg *next;
 };
 

Modified: trunk/eda/fped/meas.c
===================================================================
--- trunk/eda/fped/meas.c       2009-08-17 21:00:09 UTC (rev 5479)
+++ trunk/eda/fped/meas.c       2009-08-18 20:52:09 UTC (rev 5480)
@@ -27,12 +27,12 @@
 struct num eval_unit(const struct expr *expr, const struct frame *frame);
 
 
-void reset_samples(struct sample **samples)
+void reset_samples(struct sample **samples, int n)
 {
        struct sample *next;
        int i;
 
-       for (i = 0; i != n_samples; i++)
+       for (i = 0; i != n; i++)
                while (samples[i]) {
                        next = samples[i]->next;
                        free(samples[i]);

Modified: trunk/eda/fped/meas.h
===================================================================
--- trunk/eda/fped/meas.h       2009-08-17 21:00:09 UTC (rev 5479)
+++ trunk/eda/fped/meas.h       2009-08-18 20:52:09 UTC (rev 5480)
@@ -60,7 +60,7 @@
 struct coord meas_find_max(lt_op_type lt, const struct sample *s);
 
 
-void reset_samples(struct sample **samples);
+void reset_samples(struct sample **samples, int n);
 void meas_start(void);
 void meas_post(const struct vec *vec, struct coord pos);
 int instantiate_meas(void);




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2009-08-18 22:57:09 +0200 (Tue, 18 Aug 2009)
New Revision: 5481

Modified:
   trunk/eda/fped/inst.c
Log:
- stupid typo made us crash when setting the package name



Modified: trunk/eda/fped/inst.c
===================================================================
--- trunk/eda/fped/inst.c       2009-08-18 20:52:09 UTC (rev 5480)
+++ trunk/eda/fped/inst.c       2009-08-18 20:57:09 UTC (rev 5481)
@@ -1016,7 +1016,7 @@
        struct pkg *pkg;
 
        if (active_pkg) {
-               for (pkg = pkgs; pkgs && pkg->name != active_pkg->name;
+               for (pkg = pkgs; pkg && pkg->name != active_pkg->name;
                    pkg = pkg->next);
                active_pkg = pkg;
        }




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2009-08-19 00:03:51 +0200 (Wed, 19 Aug 2009)
New Revision: 5482

Modified:
   trunk/eda/fped/inst.c
   trunk/eda/fped/inst.h
   trunk/eda/fped/postscript.c
Log:
- replaced awkward FOR_GLOBAL_INSTS / FOR_PKG_INSTS sequence with single
  FOR_ALL_INSTS
- several functions only walked the active package instances, so we couldn't 
  access the origin of the root frame



Modified: trunk/eda/fped/inst.c
===================================================================
--- trunk/eda/fped/inst.c       2009-08-18 20:57:09 UTC (rev 5481)
+++ trunk/eda/fped/inst.c       2009-08-18 22:03:51 UTC (rev 5482)
@@ -158,7 +158,7 @@
        enum inst_prio prio;
        struct inst *inst;
        int best_dist = 0; /* keep gcc happy */
-       int dist;
+       int dist, i;
 
        deselect_outside();
        edit_nothing();
@@ -170,7 +170,7 @@
        FOR_INST_PRIOS_DOWN(prio) {
                if (!show(prio))
                        continue;
-               for (inst = active_pkg->insts[prio]; inst; inst = inst->next) {
+               FOR_ALL_INSTS(i, prio, inst) {
                        if (!inst->active || !inst->ops->distance)
                                continue;
                        if (!inst_connected(inst))
@@ -190,7 +190,7 @@
 
        /* give vectors a second chance */
 
-       for (inst = active_pkg->insts[ip_vec]; inst; inst = inst->next) {
+       FOR_ALL_INSTS(i, ip_vec, inst) {
                if (!inst->active)
                        continue;
                if (!inst_connected(inst))
@@ -215,10 +215,10 @@
 {
        struct inst *inst, *found;
        int best_dist = 0; /* keep gcc happy */
-       int dist;
+       int dist, i;
 
        found = NULL;
-       for (inst = active_pkg->insts[ip_frame]; inst; inst = inst->next) {
+       FOR_ALL_INSTS(i, ip_frame, inst) {
                if (!inst->u.frame.active)
                        continue;
                dist = gui_dist_frame_eye(inst, pos, draw_ctx.scale);
@@ -230,7 +230,7 @@
        if (found)
                return found;
 
-       for (inst = active_pkg->insts[ip_vec]; inst; inst = inst->next) {
+       FOR_ALL_INSTS(i, ip_vec, inst) {
                if (!inst->active || !inst->ops->distance)
                        continue;
                dist = inst->ops->distance(inst, pos, draw_ctx.scale);
@@ -249,14 +249,13 @@
        int n, best_i, i;
        struct inst *best = NULL;
        struct inst *inst;
-       int d_min, d;
+       int d_min, d, j;
 
        assert(selected_inst);
        n = inst_anchors(selected_inst, anchors);
        for (i = 0; i != n; i++) {
                if (*anchors[i]) {
-                       for (inst = active_pkg->insts[ip_vec]; inst;
-                           inst = inst->next) {
+                       FOR_ALL_INSTS(j, ip_vec, inst) {
                                if (inst->vec != *anchors[i])
                                        continue;
                                d = gui_dist_vec(inst, pos, draw_ctx.scale);
@@ -267,8 +266,7 @@
                                }
                        }
                } else {
-                       for (inst = active_pkg->insts[ip_frame]; inst; 
-                           inst = inst->next) {
+                       FOR_ALL_INSTS(j, ip_vec, inst) {
                                if (inst != selected_inst->outer)
                                        continue;
                                d = gui_dist_frame(inst, pos, draw_ctx.scale);
@@ -345,10 +343,11 @@
 void inst_select_vec(struct vec *vec)
 {
        struct inst *inst;
+       int i;
 
        if (vec->frame != active_frame)
                select_frame(vec->frame);
-       for (inst = active_pkg->insts[ip_vec]; inst; inst = inst->next)
+       FOR_ALL_INSTS(i, ip_vec, inst)
                if (inst->vec == vec && inst->active) {
                        inst_deselect();
                        inst_select_inst(inst);
@@ -362,17 +361,14 @@
 {
        enum inst_prio prio;
        struct inst *inst;
+       int i;
 
        if (obj->frame != active_frame)
                select_frame(obj->frame);
-       FOR_INST_PRIOS_DOWN(prio) {
-               FOR_GLOBAL_INSTS(prio, inst)
+       FOR_INST_PRIOS_DOWN(prio)
+               FOR_ALL_INSTS(i, prio, inst)
                        if (inst->obj && inst->obj == obj && inst->active)
                                goto found;
-               FOR_PKG_INSTS(prio, inst)
-                       if (inst->obj && inst->obj == obj && inst->active)
-                               goto found;
-       }
        obj_edit(obj);
        return;
 
@@ -1037,35 +1033,22 @@
 {
        enum inst_prio prio;
        struct inst *inst;
+       int i;
 
-       FOR_INST_PRIOS_UP(prio) {
-               FOR_GLOBAL_INSTS(prio, inst)
+       FOR_INST_PRIOS_UP(prio)
+               FOR_ALL_INSTS(i, prio, inst)
                        if (show(prio) && !inst->active && inst->ops->draw)
                                inst->ops->draw(inst);
-               FOR_PKG_INSTS(prio, inst)
-                       if (show(prio) && !inst->active && inst->ops->draw)
-                               inst->ops->draw(inst);
-       }
-       FOR_INST_PRIOS_UP(prio) {
-               FOR_GLOBAL_INSTS(prio, inst)
+       FOR_INST_PRIOS_UP(prio)
+               FOR_ALL_INSTS(i, prio, inst)
                        if (show(prio) && prio != ip_frame && inst->active &&
                            inst != selected_inst && inst->ops->draw)
                                inst->ops->draw(inst);
-               FOR_PKG_INSTS(prio, inst)
-                       if (show(prio) && prio != ip_frame && inst->active &&
-                           inst != selected_inst && inst->ops->draw)
-                               inst->ops->draw(inst);
-       }
-       if (show_stuff) {
-               FOR_GLOBAL_INSTS(ip_frame, inst)
+       if (show_stuff)
+               FOR_ALL_INSTS(i, ip_frame, inst)
                        if (inst->active && inst != selected_inst &&
                            inst->ops->draw)
                                inst->ops->draw(inst);
-               FOR_PKG_INSTS(ip_frame, inst)
-                       if (inst->active && inst != selected_inst &&
-                           inst->ops->draw)
-                               inst->ops->draw(inst);
-       }
        if (selected_inst && selected_inst->ops->draw)
                selected_inst->ops->draw(selected_inst);
 }
@@ -1074,13 +1057,11 @@
 void inst_highlight_vecs(int (*pick)(struct inst *inst, void *user), void 
*user)
 {
        struct inst *inst;
+       int i;
 
-       FOR_GLOBAL_INSTS(ip_vec, inst)
+       FOR_ALL_INSTS(i, ip_vec, inst)
                if (pick(inst, user))
                        gui_highlight_vec(inst);
-       FOR_PKG_INSTS(ip_vec, inst)
-               if (pick(inst, user))
-                       gui_highlight_vec(inst);
 }
 
 
@@ -1089,10 +1070,10 @@
 {
        struct inst *inst, *found;
        int best_dist = 0; /* keep gcc happy */
-       int dist;
+       int dist, i;
 
        found = NULL;
-       FOR_GLOBAL_INSTS(ip_vec, inst) {
+       FOR_ALL_INSTS(i, ip_vec, inst) {
                if (!inst->ops->distance)
                        continue;
                dist = inst->ops->distance(inst, pos, draw_ctx.scale);
@@ -1103,17 +1084,6 @@
                found = inst;
                best_dist = dist;
        }
-       FOR_PKG_INSTS(ip_vec, inst) {
-               if (!inst->ops->distance)
-                       continue;
-               dist = inst->ops->distance(inst, pos, draw_ctx.scale);
-               if (dist < 0 || (found && best_dist <= dist))
-                       continue;
-               if (!pick(inst, user))
-                       continue;
-               found = inst;
-               best_dist = dist;
-       }
        return found;
 }
 

Modified: trunk/eda/fped/inst.h
===================================================================
--- trunk/eda/fped/inst.h       2009-08-18 20:57:09 UTC (rev 5481)
+++ trunk/eda/fped/inst.h       2009-08-18 22:03:51 UTC (rev 5482)
@@ -137,19 +137,18 @@
  * allow other items shared by all packages be there as well.
  */
 
-#define FOR_INST_PRIOS_UP(prio)                                        \
+#define FOR_INST_PRIOS_UP(prio)                                                
\
        for (prio = 0; prio != ip_n; prio++)
 
-#define FOR_INST_PRIOS_DOWN(prio)                              \
+#define FOR_INST_PRIOS_DOWN(prio)                                      \
        for (prio = ip_n-1; prio != (enum inst_prio) -1; prio--)
 
-#define        FOR_GLOBAL_INSTS(prio, inst)                    \
-       for (inst = pkgs->insts[prio]; inst; inst = inst->next)
+#define        FOR_ALL_INSTS(i, prio, inst)                                    
\
+       for (i = 0; i != 2; i++)                                        \
+               for (inst = (i ? active_pkg : pkgs)->insts[prio]; inst; \
+                   inst = inst->next)
 
-#define        FOR_PKG_INSTS(prio, inst)                               \
-       for (inst = active_pkg->insts[prio]; inst; inst = inst->next)
 
-
 void inst_select_outside(void *item, void (*deselect)(void *item));
 int inst_select(struct coord pos);
 void inst_deselect(void);

Modified: trunk/eda/fped/postscript.c
===================================================================
--- trunk/eda/fped/postscript.c 2009-08-18 20:57:09 UTC (rev 5481)
+++ trunk/eda/fped/postscript.c 2009-08-18 22:03:51 UTC (rev 5482)
@@ -278,6 +278,7 @@
 {
        enum inst_prio prio;
        const struct inst *inst;
+       int i;
 
        fprintf(file, "%%!PS\n");
 
@@ -373,18 +374,12 @@
 "    dup false charpath stroke grestore\n"
 "    show } def\n");
 
-       FOR_INST_PRIOS_UP(prio) {
-               FOR_GLOBAL_INSTS(prio, inst)
+       FOR_INST_PRIOS_UP(prio)
+               FOR_ALL_INSTS(i, prio, inst)
                        ps_background(file, prio, inst);
-               FOR_PKG_INSTS(prio, inst)
-                       ps_background(file, prio, inst);
-       }
-       FOR_INST_PRIOS_UP(prio) {
-               FOR_GLOBAL_INSTS(prio, inst)
+       FOR_INST_PRIOS_UP(prio)
+               FOR_ALL_INSTS(i, prio, inst)
                        ps_foreground(file, prio, inst);
-               FOR_PKG_INSTS(prio, inst)
-                       ps_foreground(file, prio, inst);
-       }
 
        fprintf(file, "showpage\n");
        fprintf(file, "%%%%EOF\n");




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2009-08-19 00:08:54 +0200 (Wed, 19 Aug 2009)
New Revision: 5483

Added:
   trunk/gta02-core/modules/ge865.fpd
Modified:
   trunk/gta02-core/modules/INFO
   trunk/gta02-core/modules/STATUS
Log:
Added experimental GE865 module. (Incomplete - need to add measurements and
have to find a way to drop H4.)



Modified: trunk/gta02-core/modules/INFO
===================================================================
--- trunk/gta02-core/modules/INFO       2009-08-18 22:03:51 UTC (rev 5482)
+++ trunk/gta02-core/modules/INFO       2009-08-18 22:08:54 UTC (rev 5483)
@@ -13,6 +13,10 @@
 S: atr0635
 # ATR0635 data sheet page 33
 
+# Telit GE865 BGA module
+F: ge865
+D: http://www.telit.com/module/infopool/download.php?id=1666
+
 # Standard rectangular passive components
 F: stdpass
 D: http://www.vishay.com/doc?20035

Modified: trunk/gta02-core/modules/STATUS
===================================================================
--- trunk/gta02-core/modules/STATUS     2009-08-18 22:03:51 UTC (rev 5482)
+++ trunk/gta02-core/modules/STATUS     2009-08-18 22:08:54 UTC (rev 5483)
@@ -1,4 +1,5 @@
 Footprint (file name)          Author  Review  2nd rv. 3rd rv. Remarks
 -----------------------                ------- ------- ------- ------- 
-------------
 bga96-8x12-0mm8                        Werner
+ge865                          Werner  EXPERIMENTAL - DO NOT USE YET
 stdpass                                Werner  EXPERIMENTAL - DO NOT USE YET

Added: trunk/gta02-core/modules/ge865.fpd
===================================================================
--- trunk/gta02-core/modules/ge865.fpd                          (rev 0)
+++ trunk/gta02-core/modules/ge865.fpd  2009-08-18 22:08:54 UTC (rev 5483)
@@ -0,0 +1,70 @@
+/* MACHINE-GENERATED ! */
+
+frame ball {
+       set diam = 1mm
+
+       __0: vec @(-diam/2, -diam/2)
+       __1: vec @(diam/2, diam/2)
+       rpad "$cname$row" __0 .
+}
+
+frame balls {
+       table
+           { cname, col }
+           { "A", 1 }
+           { "B", 2 }
+           { "C", 3 }
+           { "D", 4 }
+           { "E", 5 }
+           { "F", 6 }
+           { "G", 7 }
+           { "H", 8 }
+
+       set pitch = 2.4mm
+
+       loop row = 1, 8
+
+       __0: vec @((col-4.5)*pitch, (4.5-row)*pitch)
+       frame ball .
+}
+
+frame keepout {
+       set border = 1.5mm
+
+       __0: vec @(-w/2-border, -h/2-border)
+       __1: vec @(w/2+border, h/2+border)
+       rect __0 . silk
+}
+
+frame outline {
+       set cdiam = 0.8mm
+
+       __0: vec @(-w/2, h/2)
+       __1: vec @(w/2, -h/2)
+       __2: vec @(w/2, h/2)
+       __3: vec @(-w/2, -h/2)
+       __4: vec __2(-cdiam/2, 0mm)
+       line __0 . silk
+       __5: vec __2(0mm, -cdiam/2)
+       arc __2 __4 . silk
+       __6: vec __1(0mm, cdiam/2)
+       line __5 . silk
+       __7: vec __1(-cdiam/2, 0mm)
+       arc __1 __6 . silk
+       __8: vec __3(cdiam/2, 0mm)
+       line . __7 silk
+       __9: vec __3(0mm, cdiam/2)
+       line __0 . silk
+       arc __3 __8 . silk
+}
+
+package "GE865"
+set silk = 5mil
+
+set h = 22mm
+
+set w = 22mm
+
+frame outline @
+frame keepout @
+frame balls @




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2009-08-19 01:49:54 +0200 (Wed, 19 Aug 2009)
New Revision: 5484

Modified:
   trunk/eda/fped/gui_inst.c
   trunk/eda/fped/gui_style.c
   trunk/eda/fped/inst.c
   trunk/eda/fped/inst.h
   trunk/eda/fped/unparse.c
Log:
- fixed precedence of unary minus, so that -(a+b) isn't printed as -a+b
- removed in_path logic (never missed not having it) and made selected vectors
  a little brighter



Modified: trunk/eda/fped/gui_inst.c
===================================================================
--- trunk/eda/fped/gui_inst.c   2009-08-18 22:08:54 UTC (rev 5483)
+++ trunk/eda/fped/gui_inst.c   2009-08-18 23:49:54 UTC (rev 5484)
@@ -111,9 +111,7 @@
 {
        if (selected_inst == self)
                return mode_selected;
-       if (self->active)
-               return self->in_path ? mode_active_in_path : mode_active;
-       return self->in_path ? mode_inactive_in_path : mode_inactive;
+       return self->active ? mode_active : mode_inactive;
 }
 
 

Modified: trunk/eda/fped/gui_style.c
===================================================================
--- trunk/eda/fped/gui_style.c  2009-08-18 22:08:54 UTC (rev 5483)
+++ trunk/eda/fped/gui_style.c  2009-08-18 23:49:54 UTC (rev 5484)
@@ -49,13 +49,10 @@
 
 
 static void style(GdkGC *gcs[mode_n],
-    const char *in, const char *in_path, const char *act, const char *act_path,
-    const char *sel)
+    const char *in, const char *act, const char *sel)
 {
        gcs[mode_inactive]              = gc(in, 1);
-       gcs[mode_inactive_in_path]      = gc(in_path, 1);
        gcs[mode_active]                = gc(act, 1);
-       gcs[mode_active_in_path]        = gc(act_path, 1);
        gcs[mode_selected]              = gc(sel, 2);
 }
 
@@ -65,13 +62,13 @@
        gc_bg = gc("#000000", 0);
        gc_bg_error = gc("#000040", 0);
        gc_drag = gc("#ffffff", 2);
-       /*              inactive   in+path    active     act+path   selected */
-       style(gc_vec,   "#202000", "#404020", "#909040", "#c0c080", "#ffff80");
-       style(gc_obj,   "#006060", INVALID,   "#00ffff", INVALID,   "#ffff80");
-       style(gc_pad,   "#400000", INVALID,   "#ff0000", INVALID,   "#ffff80");
-       style(gc_ptext, "#404040", INVALID,   "#ffffff", INVALID,   "#ffffff");
-       style(gc_meas,  "#280040", INVALID,   "#ff00ff", INVALID,   "#ffff80");
-       style(gc_frame, "#004000", "#205020", "#009000", INVALID,   "#ffff80");
+       /*              inactive   active     selected */
+       style(gc_vec,   "#202000", "#b0b050", "#ffff80");
+       style(gc_obj,   "#006060", "#00ffff", "#ffff80");
+       style(gc_pad,   "#400000", "#ff0000", "#ffff80");
+       style(gc_ptext, "#404040", "#ffffff", "#ffffff");
+       style(gc_meas,  "#280040", "#ff00ff", "#ffff80");
+       style(gc_frame, "#004000", "#009000", "#ffff80");
 
        gc_active_frame = gc("#00ff00", 2);
 //     gc_highlight = gc("#ff8020", 2);

Modified: trunk/eda/fped/inst.c
===================================================================
--- trunk/eda/fped/inst.c       2009-08-18 22:08:54 UTC (rev 5483)
+++ trunk/eda/fped/inst.c       2009-08-18 23:49:54 UTC (rev 5484)
@@ -127,25 +127,9 @@
 /* ----- selection --------------------------------------------------------- */
 
 
-static void set_path(int on)
-{
-       struct inst *inst;
-return;
-       if (inst->ops != &vec_ops && inst->ops != &frame_ops)
-               return;
-/* @@@ wrong */
-       for (inst = selected_inst; inst; inst = inst->outer) {
-               if (inst->ops != &vec_ops && inst->ops != &frame_ops)
-                       break;
-               inst->in_path = on;
-       }
-}
-
-
 static void inst_select_inst(struct inst *inst)
 {
        selected_inst = inst;
-       set_path(1);
        tool_selected_inst(inst);
        gui_frame_select_inst(inst);
        if (inst->ops->select)
@@ -315,7 +299,6 @@
 void inst_deselect(void)
 {
        if (selected_inst) {
-               set_path(0);
                tool_selected_inst(NULL);
                gui_frame_deselect_inst(selected_inst);
        }
@@ -448,7 +431,6 @@
        inst->base = inst->bbox.min = inst->bbox.max = base;
        inst->outer = curr_frame;
        inst->active = IS_ACTIVE;
-       inst->in_path = 0;
        inst->next = NULL;
        *curr_pkg->next_inst[prio] = inst;
        curr_pkg->next_inst[prio] = &inst->next;

Modified: trunk/eda/fped/inst.h
===================================================================
--- trunk/eda/fped/inst.h       2009-08-18 22:08:54 UTC (rev 5483)
+++ trunk/eda/fped/inst.h       2009-08-18 23:49:54 UTC (rev 5484)
@@ -23,9 +23,7 @@
 
 enum mode {
        mode_inactive,          /* on inactive frame */
-       mode_inactive_in_path,  /* inactive but is in path to selected */
        mode_active,            /* on active frame */
-       mode_active_in_path,    /* active and is in path to selected */
        mode_selected,          /* item is selected */
        mode_hover,             /* hovering over item's contact area */
        mode_n                  /* number of modes */
@@ -80,7 +78,6 @@
        struct obj *obj; /* NULL if not object */
        struct inst *outer; /* frame containing this item */
        int active;
-       int in_path;
        union {
                struct {
                        const struct frame *ref;

Modified: trunk/eda/fped/unparse.c
===================================================================
--- trunk/eda/fped/unparse.c    2009-08-18 22:08:54 UTC (rev 5483)
+++ trunk/eda/fped/unparse.c    2009-08-18 23:49:54 UTC (rev 5484)
@@ -90,7 +90,7 @@
        if (expr->op == op_var)
                return stralloc(expr->u.var);
        if (expr->op == op_minus)
-               return merge2("-", unparse_op(expr->u.op.a, prec_add));
+               return merge2("-", unparse_op(expr->u.op.a, prec_unary));
        if (expr->op == op_add)
                return merge3(unparse_op(expr->u.op.a, prec_add), "+",
                    unparse_op(expr->u.op.b, prec_add));




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2009-08-19 09:31:34 +0200 (Wed, 19 Aug 2009)
New Revision: 5485

Modified:
   trunk/gta02-core/AUTHORS
   trunk/gta02-core/modules/STATUS
   trunk/gta02-core/modules/ge865.fpd
   trunk/gta02-core/modules/mkloe
Log:
- finished GE865 footprint
- added GE865 to modules/mkloe



Modified: trunk/gta02-core/AUTHORS
===================================================================
--- trunk/gta02-core/AUTHORS    2009-08-18 23:49:54 UTC (rev 5484)
+++ trunk/gta02-core/AUTHORS    2009-08-19 07:31:34 UTC (rev 5485)
@@ -81,3 +81,4 @@
   The scripts under scripts/ and expanded/
   components/mkloe
   modules/bga96-8x12-0mm8.fpd
+  modules/ge865.fpd

Modified: trunk/gta02-core/modules/STATUS
===================================================================
--- trunk/gta02-core/modules/STATUS     2009-08-18 23:49:54 UTC (rev 5484)
+++ trunk/gta02-core/modules/STATUS     2009-08-19 07:31:34 UTC (rev 5485)
@@ -1,5 +1,5 @@
 Footprint (file name)          Author  Review  2nd rv. 3rd rv. Remarks
 -----------------------                ------- ------- ------- ------- 
-------------
 bga96-8x12-0mm8                        Werner
-ge865                          Werner  EXPERIMENTAL - DO NOT USE YET
+ge865                          Werner
 stdpass                                Werner  EXPERIMENTAL - DO NOT USE YET

Modified: trunk/gta02-core/modules/ge865.fpd
===================================================================
--- trunk/gta02-core/modules/ge865.fpd  2009-08-18 23:49:54 UTC (rev 5484)
+++ trunk/gta02-core/modules/ge865.fpd  2009-08-19 07:31:34 UTC (rev 5485)
@@ -3,12 +3,17 @@
 frame ball {
        set diam = 1mm
 
-       __0: vec @(-diam/2, -diam/2)
-       __1: vec @(diam/2, diam/2)
-       rpad "$cname$row" __0 .
+       ll: vec @(-diam/2, -diam/2)
+       ur: vec @(diam/2, diam/2)
+       rpad "$cname$row" ll .
 }
 
-frame balls {
+frame ball_pos {
+       c: vec @(-(4.5-col)*pitch, (4.5-row)*pitch)
+       frame ball .
+}
+
+frame row4 {
        table
            { cname, col }
            { "A", 1 }
@@ -18,44 +23,77 @@
            { "E", 5 }
            { "F", 6 }
            { "G", 7 }
+
+       set row = 4
+
+       frame ball_pos @
+}
+
+frame rows_except_4 {
+       table
+           { cname, col }
+           { "A", 1 }
+           { "B", 2 }
+           { "C", 3 }
+           { "D", 4 }
+           { "E", 5 }
+           { "F", 6 }
+           { "G", 7 }
            { "H", 8 }
 
-       set pitch = 2.4mm
+       table
+           { row }
+           { 1 }
+           { 2 }
+           { 3 }
+           { 5 }
+           { 6 }
+           { 7 }
+           { 8 }
 
-       loop row = 1, 8
+       frame ball_pos @
+}
 
-       __0: vec @((col-4.5)*pitch, (4.5-row)*pitch)
-       frame ball .
+frame balls {
+       frame rows_except_4 @
+       frame row4 @
 }
 
 frame keepout {
        set border = 1.5mm
 
-       __0: vec @(-w/2-border, -h/2-border)
-       __1: vec @(w/2+border, h/2+border)
-       rect __0 . silk
+       ll: vec @(-w/2-border, -h/2-border)
+       ur: vec @(w/2+border, h/2+border)
+       rect ll . silk
 }
 
+frame A1 {
+       __0: vec @(-3.5*pitch, 3.5*pitch)
+       r: vec .(pitch/2, 0mm)
+       circ __0 . silk
+}
+
 frame outline {
        set cdiam = 0.8mm
 
-       __0: vec @(-w/2, h/2)
-       __1: vec @(w/2, -h/2)
-       __2: vec @(w/2, h/2)
-       __3: vec @(-w/2, -h/2)
-       __4: vec __2(-cdiam/2, 0mm)
-       line __0 . silk
-       __5: vec __2(0mm, -cdiam/2)
-       arc __2 __4 . silk
-       __6: vec __1(0mm, cdiam/2)
-       line __5 . silk
-       __7: vec __1(-cdiam/2, 0mm)
-       arc __1 __6 . silk
-       __8: vec __3(cdiam/2, 0mm)
-       line . __7 silk
-       __9: vec __3(0mm, cdiam/2)
-       line __0 . silk
-       arc __3 __8 . silk
+       ul: vec @(-w/2, h/2)
+       lr: vec @(w/2, -h/2)
+       ur: vec @(w/2, h/2)
+       ll: vec @(-w/2, -h/2)
+       ur_l: vec ur(-cdiam/2, 0mm)
+       line ul . silk
+       ur_d: vec ur(0mm, -cdiam/2)
+       arc ur ur_l . silk
+       lr_u: vec lr(0mm, cdiam/2)
+       line ur_d . silk
+       lr_l: vec lr(-cdiam/2, 0mm)
+       arc lr lr_u . silk
+       ll_r: vec ll(cdiam/2, 0mm)
+       line . lr_l silk
+       ll_u: vec ll(0mm, cdiam/2)
+       line ul . silk
+       arc ll ll_r . silk
+       frame A1 @
 }
 
 package "GE865"
@@ -65,6 +103,14 @@
 
 set w = 22mm
 
+set pitch = 2.4mm
+
 frame outline @
 frame keepout @
 frame balls @
+measy ball.ll -> ball.ur 5mm
+measx ball_pos.c -> ball_pos.c -6mm
+measy keepout.ll >> outline.ll_r 1mm
+measy outline.ur >> outline.lr 3mm
+measx outline.ul >> outline.ur 3mm
+measx "r = " outline.lr_l >> outline.lr -3mm

Modified: trunk/gta02-core/modules/mkloe
===================================================================
--- trunk/gta02-core/modules/mkloe      2009-08-18 23:49:54 UTC (rev 5484)
+++ trunk/gta02-core/modules/mkloe      2009-08-19 07:31:34 UTC (rev 5485)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Make a Library of Everything
 
-MODS="bga96-8x12-0mm8 stdpass"
+MODS="bga96-8x12-0mm8 ge865 stdpass"
 
 LIB=gta02-core.mod
 




--- End Message ---
_______________________________________________
commitlog mailing list
commitlog@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to