[beast: 4/9] BST: adjust to use Bse.Source.n_[io]channels()
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast: 4/9] BST: adjust to use Bse.Source.n_[io]channels()
- Date: Wed, 16 Aug 2017 23:43:10 +0000 (UTC)
commit 4b82e830f9960b04de136a327e2499d8bd47f7cd
Author: Tim Janik <timj gnu org>
Date: Wed Jul 26 11:02:28 2017 +0200
BST: adjust to use Bse.Source.n_[io]channels()
Signed-off-by: Tim Janik <timj gnu org>
beast-gtk/bstcanvassource.cc | 44 ++++++++++++++++++++++++++++-------------
beast-gtk/bstsnetrouter.cc | 10 +++++---
2 files changed, 36 insertions(+), 18 deletions(-)
---
diff --git a/beast-gtk/bstcanvassource.cc b/beast-gtk/bstcanvassource.cc
index a60d7f7..1cc4bd1 100644
--- a/beast-gtk/bstcanvassource.cc
+++ b/beast-gtk/bstcanvassource.cc
@@ -346,13 +346,16 @@ csource_info_update (BstCanvasSource *csource)
gxk_scroll_text_aprintf (text, "Category: %s\n", cseq[0].category);
gxk_scroll_text_pop_indent (text);
+ Bse::SourceH csource_source = Bse::SourceH::down_cast (bse_server.from_proxy (csource->source));
+
/* input channels */
- if (bse_source_n_ichannels (csource->source))
+ const size_t csource_source_n_ichannels = csource_source.n_ichannels();
+ if (csource_source_n_ichannels)
{
gxk_scroll_text_aprintf (text, "\nInput Channels:\n");
gxk_scroll_text_push_indent (text);
}
- for (int i = 0; i < bse_source_n_ichannels (csource->source); i++)
+ for (size_t i = 0; i < csource_source_n_ichannels; i++)
{
string = bse_source_ichannel_blurb (csource->source, i);
gxk_scroll_text_aprintf (text, "%s[%s]%s\n",
@@ -366,16 +369,17 @@ csource_info_update (BstCanvasSource *csource)
gxk_scroll_text_pop_indent (text);
}
}
- if (bse_source_n_ichannels (csource->source))
+ if (csource_source_n_ichannels)
gxk_scroll_text_pop_indent (text);
/* output channels */
- if (bse_source_n_ochannels (csource->source))
+ const size_t csource_source_n_ochannels = csource_source.n_ochannels();
+ if (csource_source_n_ochannels)
{
gxk_scroll_text_aprintf (text, "\nOutput Channels:\n");
gxk_scroll_text_push_indent (text);
}
- for (int i = 0; i < bse_source_n_ochannels (csource->source); i++)
+ for (size_t i = 0; i < csource_source_n_ochannels; i++)
{
string = bse_source_ochannel_blurb (csource->source, i);
gxk_scroll_text_aprintf (text, "%s[%s]%s\n",
@@ -389,7 +393,7 @@ csource_info_update (BstCanvasSource *csource)
gxk_scroll_text_pop_indent (text);
}
}
- if (bse_source_n_ochannels (csource->source))
+ if (csource_source_n_ochannels)
gxk_scroll_text_pop_indent (text);
/* description */
@@ -506,7 +510,10 @@ bst_canvas_source_ichannel_pos (BstCanvasSource *csource,
x = ICHANNEL_X (csource) + CHANNEL_WIDTH (csource) / 2;
if (csource->source)
- y = CHANNEL_HEIGHT (csource) / bse_source_n_ichannels (csource->source);
+ {
+ Bse::SourceH csource_source = Bse::SourceH::down_cast (bse_server.from_proxy (csource->source));
+ y = CHANNEL_HEIGHT (csource) / csource_source.n_ichannels();
+ }
y *= ochannel + 0.5;
y += ICHANNEL_Y (csource);
gnome_canvas_item_i2w (GNOME_CANVAS_ITEM (csource), &x, &y);
@@ -528,7 +535,10 @@ bst_canvas_source_ochannel_pos (BstCanvasSource *csource,
x = OCHANNEL_X (csource) + CHANNEL_WIDTH (csource) / 2;
if (csource->source)
- y = CHANNEL_HEIGHT (csource) / bse_source_n_ochannels (csource->source);
+ {
+ Bse::SourceH csource_source = Bse::SourceH::down_cast (bse_server.from_proxy (csource->source));
+ y = CHANNEL_HEIGHT (csource) / csource_source.n_ochannels();
+ }
y *= ichannel + 0.5;
y += OCHANNEL_Y (csource);
gnome_canvas_item_i2w (GNOME_CANVAS_ITEM (csource), &x, &y);
@@ -547,15 +557,17 @@ bst_canvas_source_ichannel_at (BstCanvasSource *csource,
assert_return (BST_IS_CANVAS_SOURCE (csource), 0);
+ Bse::SourceH csource_source = Bse::SourceH::down_cast (bse_server.from_proxy (csource->source));
+
gnome_canvas_item_w2i (GNOME_CANVAS_ITEM (csource), &x, &y);
x -= ICHANNEL_X (csource);
y -= ICHANNEL_Y (csource);
if (x > 0 && x < CHANNEL_WIDTH (csource) &&
y > 0 && y < CHANNEL_HEIGHT (csource) &&
- bse_source_n_ichannels (csource->source))
+ csource_source.n_ichannels())
{
- y /= CHANNEL_HEIGHT (csource) / bse_source_n_ichannels (csource->source);
+ y /= CHANNEL_HEIGHT (csource) / csource_source.n_ichannels();
channel = y;
}
@@ -571,15 +583,17 @@ bst_canvas_source_ochannel_at (BstCanvasSource *csource,
assert_return (BST_IS_CANVAS_SOURCE (csource), 0);
+ Bse::SourceH csource_source = Bse::SourceH::down_cast (bse_server.from_proxy (csource->source));
+
gnome_canvas_item_w2i (GNOME_CANVAS_ITEM (csource), &x, &y);
x -= OCHANNEL_X (csource);
y -= OCHANNEL_Y (csource);
if (x > 0 && x < CHANNEL_WIDTH (csource) &&
y > 0 && y < CHANNEL_HEIGHT (csource) &&
- bse_source_n_ochannels (csource->source))
+ csource_source.n_ochannels())
{
- y /= CHANNEL_HEIGHT (csource) / bse_source_n_ochannels (csource->source);
+ y /= CHANNEL_HEIGHT (csource) / csource_source.n_ochannels();
channel = y;
}
@@ -645,15 +659,17 @@ bst_canvas_source_build_channels (BstCanvasSource *csource,
gdouble d_y;
gboolean east_channel = CHANNEL_EAST (csource, is_input);
+ Bse::SourceH csource_source = Bse::SourceH::down_cast (bse_server.from_proxy (csource->source));
+
if (is_input)
{
- n_channels = bse_source_n_ichannels (csource->source);
+ n_channels = csource_source.n_ichannels();
x1 = ICHANNEL_X (csource);
y1 = ICHANNEL_Y (csource);
}
else
{
- n_channels = bse_source_n_ochannels (csource->source);
+ n_channels = csource_source.n_ochannels();
x1 = OCHANNEL_X (csource);
y1 = OCHANNEL_Y (csource);
}
diff --git a/beast-gtk/bstsnetrouter.cc b/beast-gtk/bstsnetrouter.cc
index d5fe64f..a1430d2 100644
--- a/beast-gtk/bstsnetrouter.cc
+++ b/beast-gtk/bstsnetrouter.cc
@@ -153,10 +153,12 @@ bst_snet_router_update_links (BstSNetRouter *self,
self->canvas_links = sfi_ring_append (self->canvas_links, link);
}
+ Bse::SourceH csource_source = Bse::SourceH::down_cast (bse_server.from_proxy (csource->source));
+
/* now we walk the (c)source's input channels, keep
* existing links and create new ones on the fly
*/
- for (int i = 0; i < bse_source_n_ichannels (csource->source); i++)
+ for (int i = 0; i < csource_source.n_ichannels(); i++)
{
guint j, n_joints = bse_source_ichannel_get_n_joints (csource->source, i);
for (j = 0; j < n_joints; j++)
@@ -641,6 +643,7 @@ bst_snet_router_root_event (BstSNetRouter *self,
{
if (csource)
{
+ Bse::SourceH csource_source = Bse::SourceH::down_cast (bse_server.from_proxy
(csource->source));
GtkWidget *choice;
gchar *source_name = g_strconcat (bse_item_get_type_name (csource->source),
": ",
@@ -649,16 +652,15 @@ bst_snet_router_root_event (BstSNetRouter *self,
/* create popup sumenu */
uint has_inputs = 0, monitor_ids = 1000000;
choice = bst_choice_menu_createv ("<BEAST-SNetRouter>/ModuleChannelPopup", NULL);
- for (int i = 0; i < bse_source_n_ochannels (csource->source); i++)
+ for (int i = 0; i < csource_source.n_ochannels(); i++)
{
gchar *name = g_strdup_format ("%d: %s", i + 1, bse_source_ochannel_label
(csource->source, i));
bst_choice_menu_add_choice_and_free (choice, BST_CHOICE (monitor_ids + i, name, NONE));
g_free (name);
}
/* create popup */
- for (int i = 0; has_inputs == 0 && i < bse_source_n_ichannels (csource->source); i++)
+ for (int i = 0; has_inputs == 0 && i < csource_source.n_ichannels(); i++)
has_inputs += bse_source_ichannel_get_n_joints (csource->source, i);
- Bse::SourceH csource_source = Bse::SourceH::down_cast (bse_server.from_proxy
(csource->source));
choice = bst_choice_menu_createv ("<BEAST-SNetRouter>/ModulePopup",
BST_CHOICE_TITLE (source_name),
BST_CHOICE_SEPERATOR,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]