+ cairo_new_path (cr);
+ cairo_arc (cr, c.x, c.y, arc_radius + 1.0, 0, 2.0 * M_PI);
+ cairo_set_source_rgba (cr, 1.0, 0.419, 0.419, 0.85);
+ cairo_fill_preserve (cr);
+ cairo_set_source_rgba (cr, 1.0, 0.905, 0.905, 0.85);
+ cairo_stroke (cr);
+
+ /* signals */
+
+ if (signals.size() > 0) {
+ for (Targets::iterator i = signals.begin(); i != signals.end(); ++i) {
+ Target* signal = *i;
+
+ if (signal->visible) {
+
+ /* TODO check for overlap - multiple src at same position
+ * -> visualize it properly
+ */
+ PBD::AngularVector sp = signal->position;
+ if (!have_elevation) sp.ele = 0;
+ sp.azi += 270.0;
+ sp.cartesian (c);
+ cart_to_gtk (c);
+
+ cairo_new_path (cr);
+ cairo_arc (cr, c.x, c.y, arc_radius, 0, 2.0 * M_PI);
+ cairo_set_source_rgba (cr, 0.282, 0.517, 0.662, 0.75);
+ cairo_fill_preserve (cr);
+ cairo_set_source_rgba (cr, 0.517, 0.772, 0.882, 0.8);
+ cairo_stroke (cr);
+
+ if (!xsmall && !signal->text.empty()) {
+ cairo_set_source_rgba (cr, 0.517, 0.772, 0.882, .9);
+ /* the +/- adjustments are a hack to try to center the text in the circle
+ * TODO use pango get_pixel_size() -- see mono_panner.cc
+ */
+ if (xsmall) {
+ cairo_move_to (cr, c.x - 1, c.y + 1);
+ } else {
+ cairo_move_to (cr, c.x - 4, c.y + 4);
+ }
+ cairo_show_text (cr, signal->text.c_str());
+ }
+ }