Skip to content

Commit

Permalink
Merge pull request #199 from nstbayless/main
Browse files Browse the repository at this point in the history
Reintroduce JSON export from 0cc
  • Loading branch information
Gumball2415 authored Dec 17, 2023
2 parents 1e2b5cb + a9c3e6f commit ba0d902
Show file tree
Hide file tree
Showing 12 changed files with 726 additions and 13 deletions.
2 changes: 2 additions & 0 deletions Dn-FamiTracker.rc
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Import Text...", ID_FILE_IMPORTTEXT
MENUITEM "&Export Text...", ID_FILE_EXPORTTEXT
MENUITEM "&Export JSON...", ID_FILE_EXPORTJSON
MENUITEM "Export Ro&ws...", ID_FILE_EXPORTROWS
MENUITEM SEPARATOR
MENUITEM "&Configuration...", ID_FILE_GENERALSETTINGS
Expand Down Expand Up @@ -2999,6 +3000,7 @@ STRINGTABLE
BEGIN
ID_FILE_IMPORTTEXT "Imports module text files\nImport Text"
ID_FILE_EXPORTTEXT "Exports module as a text file\nExport Text"
ID_FILE_EXPORTJSON "Exports module in JavaScript Object Notation, for use in scripts\nExport JSON"
ID_CLEANUP_MERGEDUPLICATEDPATTERNS
"Combine copies of duplicated patterns\nMerge Duplicated Patterns"
ID_EDIT_VOLUMEMASK "Disable writing to the volume column while entering a note\nVolume Mark"
Expand Down
2 changes: 2 additions & 0 deletions Dn-FamiTracker.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,7 @@
<ClCompile Include="Source\CustomExporters.cpp" />
<ClCompile Include="Source\DocumentWrapper.cpp" />
<ClCompile Include="Source\TextExporter.cpp" />
<ClCompile Include="Source\JsonExporter.cpp" />
<ClCompile Include="Source\Chunk.cpp" />
<ClCompile Include="Source\ChunkRenderBinary.cpp" />
<ClCompile Include="Source\ChunkRenderText.cpp" />
Expand Down Expand Up @@ -981,6 +982,7 @@ makehm /h /a afxhh.h IDW_,HIDW_,0x50000 "%(FullPath)" &gt;&gt; "hlp\HTMLDefines.
<ClInclude Include="Source\WavegenBuiltin.h" />
<ClInclude Include="Source\WinSDK\VersionHelpers.h" />
<ClInclude Include="Source\WinSDK\winapifamily.h" />
<ClInclude Include="Source\JsonExporter.h" />
<ClInclude Include="version.h" />
<ClInclude Include="Source\ChannelMap.h" />
<ClInclude Include="Source\Common.h" />
Expand Down
18 changes: 10 additions & 8 deletions Source/FamiTrackerDoc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1029,7 +1029,7 @@ bool CFamiTrackerDoc::WriteBlock_Instruments(CDocumentFile *pDocFile, const int
// Store the name
pInst->GetName(Name);
pDocFile->WriteBlockInt((int)strlen(Name));
pDocFile->WriteBlock(Name, (int)strlen(Name));
pDocFile->WriteBlock(Name, (int)strlen(Name));
}
}

Expand Down Expand Up @@ -2782,18 +2782,20 @@ void CFamiTrackerDoc::ReadBlock_ParamsEmu(CDocumentFile* pDocFile, const int Ver

bool CFamiTrackerDoc::WriteBlock_ParamsEmu(CDocumentFile* pDocFile, const int Version) const
{
// VRC7 emulator parameters
if (!(m_bUseExternalOPLLChip && (m_iExpansionChip & SNDCHIP_VRC7)))
return true;

pDocFile->CreateBlock(FILE_BLOCK_PARAMS_EMU, Version);

pDocFile->WriteBlockInt(m_bUseExternalOPLLChip);
// VRC7 emulator parameters
if (m_iExpansionChip & SNDCHIP_VRC7) {
pDocFile->WriteBlockInt(m_bUseExternalOPLLChip);

for (int i = 0; i < 19; i++) {
for (int j = 0; j < 8; j++)
pDocFile->WriteBlockChar(static_cast<char>(m_iOPLLPatchBytes[(8 * i) + j]));
pDocFile->WriteString(m_strOPLLPatchNames[i]);
for (int i = 0; i < 19; i++) {
for (int j = 0; j < 8; j++)
pDocFile->WriteBlockChar(static_cast<char>(m_iOPLLPatchBytes[(8 * i) + j]));
pDocFile->WriteString(m_strOPLLPatchNames[i]);
}
}

return pDocFile->FlushBlock();
Expand Down Expand Up @@ -4616,7 +4618,7 @@ json CFamiTrackerDoc::InterfaceToOptionalJSON() const
const stJSONOptionalData DEFAULT;

if (GetLevelOffset(0) != DEFAULT.APU1_OFFSET) json[APU1_OFFSET] = GetLevelOffset(0);
if (GetLevelOffset(1) != DEFAULT.APU2_OFFSET) json[APU2_OFFSET] = GetLevelOffset(0);
if (GetLevelOffset(1) != DEFAULT.APU2_OFFSET) json[APU2_OFFSET] = GetLevelOffset(1);
if (GetLevelOffset(2) != DEFAULT.VRC6_OFFSET) json[VRC6_OFFSET] = GetLevelOffset(2);
if (GetLevelOffset(3) != DEFAULT.VRC7_OFFSET) json[VRC7_OFFSET] = GetLevelOffset(3);
if (GetLevelOffset(4) != DEFAULT.FDS_OFFSET) json[FDS_OFFSET] = GetLevelOffset(4);
Expand Down
2 changes: 1 addition & 1 deletion Source/Instrument2A03.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ void CInstrument2A03::Store(CDocumentFile *pDocFile)
for (int j = 0; j < NOTE_RANGE; ++j) {
if (Version >= 7) { // // // 050B
if (!GetSampleIndex(i, j)) continue;
pDocFile->WriteBlockChar(i * NOTE_COUNT + j);
pDocFile->WriteBlockChar(i * NOTE_RANGE + j);
}
pDocFile->WriteBlockChar(GetSampleIndex(i, j));
pDocFile->WriteBlockChar(GetSamplePitch(i, j));
Expand Down
Loading

0 comments on commit ba0d902

Please sign in to comment.