Merge branch 'master' of https://github.com/tildearrow/furnace into ymf278b

This commit is contained in:
cam900 2024-07-15 18:53:26 +09:00
commit 5837575e4a
17 changed files with 216 additions and 69 deletions

View file

@ -156,14 +156,14 @@ void FurnaceGUI::insListItem(int i, int dir, int asset) {
if (i<(int)e->song.ins.size()) {
DivInstrument* ins=e->song.ins[i];
ImGui::SameLine();
ImGui::Text("%.2X: %s",i,ins->name.c_str());
ImGui::TextNoHashHide("%.2X: %s",i,ins->name.c_str());
} else {
ImGui::SameLine();
ImGui::Text("%.2X: <INVALID>",i);
ImGui::TextNoHashHide("%.2X: <INVALID>",i);
}
} else {
ImGui::SameLine();
ImGui::Text("- None -");
ImGui::TextNoHashHide("- None -");
}
ImGui::PopID();
ImGui::PopStyleColor();
@ -219,7 +219,7 @@ void FurnaceGUI::sampleListItem(int i, int dir, int asset) {
if (memWarning) break;
}
if (memWarning) ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_SAMPLE_CHIP_WARNING]);
if (ImGui::Selectable(fmt::sprintf("%d: %s##_SAM%d",i,sample->name,i).c_str(),curSample==i)) {
if (ImGui::Selectable(fmt::sprintf("%d:##_SAM%d",i,i).c_str(),curSample==i)) {
curSample=i;
samplePos=0;
updateSampleTex=true;
@ -235,6 +235,8 @@ void FurnaceGUI::sampleListItem(int i, int dir, int asset) {
DRAG_SOURCE(dir,asset,"FUR_SDIR");
DRAG_TARGET(dir,asset,e->song.sampleDir,"FUR_SDIR");
}
ImGui::SameLine();
ImGui::TextNoHashHide("%s",sample->name.c_str());
if (memWarning) {
ImGui::SameLine();
ImGui::Text(ICON_FA_EXCLAMATION_TRIANGLE);

View file

@ -4281,6 +4281,19 @@ bool FurnaceGUI::loop() {
ImGui::EndMenu();
}
}
bool hasTiunaCompat=false;
for (int i=0; i<e->song.systemLen; i++) {
if (e->song.system[i]==DIV_SYSTEM_TIA) {
hasTiunaCompat=true;
break;
}
}
if (hasTiunaCompat) {
if (ImGui::BeginMenu(_("export TIunA..."))) {
drawExportTiuna();
ImGui::EndMenu();
}
}
int numAmiga=0;
for (int i=0; i<e->song.systemLen; i++) {
if (e->song.system[i]==DIV_SYSTEM_AMIGA) numAmiga++;
@ -4322,6 +4335,19 @@ bool FurnaceGUI::loop() {
displayExport=true;
}
}
bool hasTiunaCompat=false;
for (int i=0; i<e->song.systemLen; i++) {
if (e->song.system[i]==DIV_SYSTEM_TIA) {
hasTiunaCompat=true;
break;
}
}
if (hasTiunaCompat) {
if (ImGui::MenuItem(_("export TIunA..."))) {
curExportType=GUI_EXPORT_TIUNA;
displayExport=true;
}
}
int numAmiga=0;
for (int i=0; i<e->song.systemLen; i++) {
if (e->song.system[i]==DIV_SYSTEM_AMIGA) numAmiga++;

View file

@ -282,7 +282,7 @@ void FurnaceGUI::drawOrders() {
for (int i=0; i<e->getTotalChannelCount(); i++) {
if (!e->curSubSong->chanShow[i]) continue;
ImGui::TableNextColumn();
ImGui::Text("%s",e->getChannelShortName(i));
ImGui::TextNoHashHide("%s",e->getChannelShortName(i));
}
ImGui::PopStyleColor();
for (int i=0; i<e->curSubSong->ordersLen; i++) {

View file

@ -686,7 +686,7 @@ void FurnaceGUI::drawPattern() {
bool hovered=ImGui::ItemHoverable(rect,ImGui::GetID(chanID),0);
ImU32 col=(hovered || (mobileUI && ImGui::IsMouseDown(ImGuiMouseButton_Left)))?ImGui::GetColorU32(ImGuiCol_HeaderHovered):ImGui::GetColorU32(ImGuiCol_Header);
dl->AddRectFilled(rect.Min,rect.Max,col);
dl->AddText(ImVec2(minLabelArea.x,rect.Min.y),ImGui::GetColorU32(channelTextColor(i)),chanID);
dl->AddTextNoHashHide(ImVec2(minLabelArea.x,rect.Min.y),ImGui::GetColorU32(channelTextColor(i)),chanID);
}
break;
case 1: { // line
@ -707,7 +707,7 @@ void FurnaceGUI::drawPattern() {
));
dl->AddRectFilledMultiColor(rect.Min,rect.Max,fadeCol0,fadeCol0,fadeCol,fadeCol);
dl->AddLine(ImVec2(rect.Min.x,rect.Max.y),ImVec2(rect.Max.x,rect.Max.y),ImGui::GetColorU32(chanHeadBase),2.0f*dpiScale);
dl->AddText(ImVec2(minLabelArea.x,rect.Min.y+3.0*dpiScale),ImGui::GetColorU32(channelTextColor(i)),chanID);
dl->AddTextNoHashHide(ImVec2(minLabelArea.x,rect.Min.y+3.0*dpiScale),ImGui::GetColorU32(channelTextColor(i)),chanID);
}
break;
}
@ -734,14 +734,14 @@ void FurnaceGUI::drawPattern() {
rMax.x-=3.0f*dpiScale;
rMax.y-=6.0f*dpiScale;
dl->AddRectFilledMultiColor(rMin,rMax,fadeCol0,fadeCol0,fadeCol,fadeCol,4.0f*dpiScale);
dl->AddText(ImVec2(minLabelArea.x,rect.Min.y+6.0*dpiScale),ImGui::GetColorU32(channelTextColor(i)),chanID);
dl->AddTextNoHashHide(ImVec2(minLabelArea.x,rect.Min.y+6.0*dpiScale),ImGui::GetColorU32(channelTextColor(i)),chanID);
}
break;
}
case 3: // split button
ImGui::Dummy(ImVec2(1.0f,2.0f*dpiScale));
//ImGui::SetCursorPosX(minLabelArea.x);
ImGui::TextUnformatted(chanID);
ImGui::TextNoHashHide("%s",chanID);
ImGui::SameLine();
ImGui::PushFont(mainFont);
ImGui::SmallButton(muted?ICON_FA_VOLUME_OFF:ICON_FA_VOLUME_UP);
@ -764,7 +764,7 @@ void FurnaceGUI::drawPattern() {
rMax.x-=3.0f*dpiScale;
rMax.y-=3.0f*dpiScale;
dl->AddRect(rMin,rMax,fadeCol,0.0f,2.0*dpiScale);
dl->AddText(ImVec2(minLabelArea.x,rect.Min.y+3.0*dpiScale),ImGui::GetColorU32(channelTextColor(i)),chanID);
dl->AddTextNoHashHide(ImVec2(minLabelArea.x,rect.Min.y+3.0*dpiScale),ImGui::GetColorU32(channelTextColor(i)),chanID);
}
break;
}
@ -785,7 +785,7 @@ void FurnaceGUI::drawPattern() {
rMax.x-=3.0f*dpiScale;
rMax.y-=3.0f*dpiScale;
dl->AddRect(rMin,rMax,fadeCol,4.0f*dpiScale,ImDrawFlags_RoundCornersAll,2.0*dpiScale);
dl->AddText(ImVec2(minLabelArea.x,rect.Min.y+3.0*dpiScale),ImGui::GetColorU32(channelTextColor(i)),chanID);
dl->AddTextNoHashHide(ImVec2(minLabelArea.x,rect.Min.y+3.0*dpiScale),ImGui::GetColorU32(channelTextColor(i)),chanID);
}
break;
}