#include <clocale>
#include <cstring>
#include <cctype>
+#include <cmath>
#include <fstream>
#include <list>
#include <sys/stat.h>
-#include <libart_lgpl/art_misc.h>
#include <gtkmm/rc.h>
#include <gtkmm/window.h>
#include <gtkmm/combo.h>
#include <gtkmm2ext/utils.h>
#include "ardour/rc_configuration.h"
-
#include "ardour/filesystem_paths.h"
+#include "canvas/item.h"
#include "ardour_ui.h"
#include "debug.h"
#include "utils.h"
#include "i18n.h"
#include "rgb_macros.h"
-#include "canvas_impl.h"
#include "gui_thread.h"
using namespace std;
sigc::signal<void> DPIReset;
+#ifdef PLATFORM_WINDOWS
+#define random() rand()
+#endif
+
/** Add an element to a menu, settings its sensitivity.
* @param m Menu to add to.
return (savergb);
}
-ArdourCanvas::Points*
-get_canvas_points (string /*who*/, uint32_t npoints)
-{
- // cerr << who << ": wants " << npoints << " canvas points" << endl;
-#ifdef TRAP_EXCESSIVE_POINT_REQUESTS
- if (npoints > (uint32_t) gdk_screen_width() + 4) {
- abort ();
- }
-#endif
- return new ArdourCanvas::Points (npoints);
-}
-
Pango::FontDescription
get_font_for_style (string widgetname)
{
return true;
}
-bool
-canvas_item_visible (ArdourCanvas::Item* item)
-{
- return (item->gobj()->object.flags & GNOME_CANVAS_ITEM_VISIBLE) ? true : false;
-}
-
void
set_color (Gdk::Color& c, int rgb)
{
{
if (!xpm_map[name]) {
- SearchPath spath(ARDOUR::ardour_data_search_path());
+ Searchpath spath(ARDOUR::ardour_data_search_path());
spath.add_subdirectory_to_paths("pixmaps");
string name = cname;
name += X_(".png");
- SearchPath spath(ARDOUR::ardour_data_search_path());
+ Searchpath spath(ARDOUR::ardour_data_search_path());
spath.add_subdirectory_to_paths("icons");
/* FT2 rendering - used by GnomeCanvas, sigh */
+#ifndef PLATFORM_WINDOWS
pango_ft2_font_map_set_resolution ((PangoFT2FontMap*) pango_ft2_font_map_new(), val/1024, val/1024);
+#endif
/* Cairo rendering, in case there is any */
while (1) {
- /* avoid neon/glowing tones by limiting them to the
- "inner section" (paler) of a color wheel/circle.
- */
+ double h, s, v;
- const int32_t max_saturation = 48000; // 65535 would open up the whole color wheel
+ h = fmod (random(), 360.0);
+ s = (random() % 65535) / 65535.0;
+ v = (random() % 65535) / 65535.0;
- newcolor.set_red (random() % max_saturation);
- newcolor.set_blue (random() % max_saturation);
- newcolor.set_green (random() % max_saturation);
+ s = min (0.5, s); /* not too saturated */
+ v = max (0.9, v); /* not too bright */
+ newcolor.set_hsv (h, s, v);
if (used_colors.size() == 0) {
used_colors.push_back (newcolor);
gdelta = newcolor.get_green() - c.get_green();
if (sqrt (rdelta*rdelta + bdelta*bdelta + gdelta*gdelta) > 25.0) {
+ /* different enough */
used_colors.push_back (newcolor);
return newcolor;
}
/* XXX need throttle here to make sure we don't spin for ever */
}
}
+
+string
+rate_as_string (float r)
+{
+ char buf[32];
+ if (fmod (r, 1000.0f)) {
+ snprintf (buf, sizeof (buf), "%.1f kHz", r/1000.0);
+ } else {
+ snprintf (buf, sizeof (buf), "%.0f kHz", r/1000.0);
+ }
+ return buf;
+}