Skip to content

Commit

Permalink
Add v::Model::Columns::addChannel() method, more generic
Browse files Browse the repository at this point in the history
  • Loading branch information
gvnnz committed May 15, 2024
1 parent 74dcdf5 commit c67a5a7
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 6 deletions.
7 changes: 2 additions & 5 deletions src/glue/channel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,7 @@ void loadChannel(ID channelId, const std::string& fname)
void addChannel(int columnIndex, ChannelType type, ID groupChannelId)
{
const m::Channel& ch = g_engine->getChannelsApi().add(type, columnIndex, groupChannelId);
if (groupChannelId > 0)
g_ui->model.columns.addChannelToGroup(ch.id, groupChannelId);
else
g_ui->model.columns.addChannelToColumn(ch.id, columnIndex);
g_ui->model.columns.addChannel(ch.id, columnIndex, groupChannelId);
}

/* -------------------------------------------------------------------------- */
Expand All @@ -212,7 +209,7 @@ void addAndLoadChannels(int columnIndex, const std::vector<std::string>& fnames)
if (res != G_RES_OK)
errors = true;
else
g_ui->model.columns.addChannelToColumn(ch.id, columnIndex);
g_ui->model.columns.addChannel(ch.id, columnIndex);
}

if (errors)
Expand Down
2 changes: 1 addition & 1 deletion src/glue/sampleEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ void toNewChannel(ID channelId, Frame a, Frame b)
{
const int columnIndex = g_ui->mainWindow->keyboard->getChannelColumnIndex(channelId);
const m::Channel& newChannel = g_engine->getSampleEditorApi().toNewChannel(channelId, a, b);
g_ui->model.columns.addChannelToColumn(newChannel.id, columnIndex);
g_ui->model.columns.addChannel(newChannel.id, columnIndex);
}

/* -------------------------------------------------------------------------- */
Expand Down
13 changes: 13 additions & 0 deletions src/gui/model.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,19 @@ void Model::Columns::addChannelToGroup(ID channelId, ID groupId, int position)

/* -------------------------------------------------------------------------- */

void Model::Columns::addChannel(ID channelId, std::size_t columnIndex, ID groupId)
{
Channel channel = {channelId, groupId, columnIndex};
Column& column = getByIndex(columnIndex);

if (groupId == 0)
column.add(std::move(channel));
else
column.getById(groupId).add(std::move(channel));
}

/* -------------------------------------------------------------------------- */

void Model::Columns::removeChannelFromColumn(ID channelId)
{
for (Column& column : *this) // Brute force!
Expand Down
1 change: 1 addition & 0 deletions src/gui/model.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ struct Model
void moveChannel(ID channelId, std::size_t newColumnIndex, int newPosition);
void addChannelToColumn(ID channelId, std::size_t columnIndex, int position = -1);
void addChannelToGroup(ID channelId, ID groupId, int position = -1);
void addChannel(ID channelId, std::size_t columnIndex, ID groupId = 0);
void removeChannelFromColumn(ID channelId);
};

Expand Down

0 comments on commit c67a5a7

Please sign in to comment.