per-channel oscilloscope, part 4
OPM, OPN2, OPLL and SN plus hide unimplemented channels
This commit is contained in:
parent
ddcd486c61
commit
e1fd16637c
15 changed files with 143 additions and 24 deletions
|
|
@ -38,8 +38,8 @@ void FurnaceGUI::drawChanOsc() {
|
|||
ImGui::PushStyleVar(ImGuiStyleVar_CellPadding,ImVec2(0.0f,0.0f));
|
||||
float availY=ImGui::GetContentRegionAvail().y;
|
||||
if (ImGui::BeginTable("ChanOsc",chanOscCols,ImGuiTableFlags_Borders)) {
|
||||
std::vector<DivDispatchOscBuffer*> oscBufs;
|
||||
int chans=e->getTotalChannelCount();
|
||||
int rows=(chans+(chanOscCols-1))/chanOscCols;
|
||||
ImDrawList* dl=ImGui::GetWindowDrawList();
|
||||
ImGuiWindow* window=ImGui::GetCurrentWindow();
|
||||
ImVec2 waveform[512];
|
||||
|
|
@ -48,12 +48,18 @@ void FurnaceGUI::drawChanOsc() {
|
|||
ImU32 color=ImGui::GetColorU32(uiColors[GUI_COLOR_OSC_WAVE]);
|
||||
|
||||
for (int i=0; i<chans; i++) {
|
||||
DivDispatchOscBuffer* buf=e->getOscBuffer(i);
|
||||
if (buf!=NULL) oscBufs.push_back(buf);
|
||||
}
|
||||
int rows=(oscBufs.size()+(chanOscCols-1))/chanOscCols;
|
||||
|
||||
for (size_t i=0; i<oscBufs.size(); i++) {
|
||||
if (i%chanOscCols==0) ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
|
||||
DivDispatchOscBuffer* buf=e->getOscBuffer(i);
|
||||
DivDispatchOscBuffer* buf=oscBufs[i];
|
||||
if (buf==NULL) {
|
||||
ImGui::Text("Not Available");
|
||||
ImGui::Text("Error!");
|
||||
} else {
|
||||
ImVec2 size=ImGui::GetContentRegionAvail();
|
||||
size.y=availY/rows;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue