diff --git a/Source/Common/Core.cpp b/Source/Common/Core.cpp index a0d977ee..8a0a34a8 100644 --- a/Source/Common/Core.cpp +++ b/Source/Common/Core.cpp @@ -84,6 +84,7 @@ Core::Core() Out_Log_cout=false; Trace_UseDec=false; + Trace_Verbose=false; //Status Text_stderr_Updated=false; @@ -1667,6 +1668,7 @@ void Core::Options_Update(handlers::iterator &Handler) Handler->second.Riff->Bext_DefaultVersion=Bext_DefaultVersion; Handler->second.Riff->Bext_MaxVersion=Bext_MaxVersion; Handler->second.Riff->Trace_UseDec=Trace_UseDec; + Handler->second.Riff->Trace_Verbose=Trace_Verbose; bool IsModified_Old=Handler->second.Riff->IsModified_Get(); diff --git a/Source/Common/Core.h b/Source/Common/Core.h index 7b6199a3..7ec9c098 100644 --- a/Source/Common/Core.h +++ b/Source/Common/Core.h @@ -135,6 +135,7 @@ class Core : public Thread Ztring ApplicationFolder; Ztring LogFile; bool Trace_UseDec; + bool Trace_Verbose; //Status void StdOut(string Text); diff --git a/Source/GUI/Qt/GUI_Main.cpp b/Source/GUI/Qt/GUI_Main.cpp index 5a685111..632875ac 100644 --- a/Source/GUI/Qt/GUI_Main.cpp +++ b/Source/GUI/Qt/GUI_Main.cpp @@ -100,6 +100,7 @@ GUI_Main::GUI_Main(Core* _C) } Trace_UseDec_Set(Preferences->Group_Option_Checked_Get(Group_Trace, Option_Trace_UseDec)); + Trace_Verbose_Set(Preferences->Group_Option_Checked_Get(Group_Trace, Option_Trace_Verbose)); /* Menu_View_Technical_Table->setChecked(true); @@ -440,6 +441,19 @@ void GUI_Main::Trace_UseDec_Set(bool UseDec) C->Menu_File_Options_Update(); } +//--------------------------------------------------------------------------- +bool GUI_Main::Trace_Verbose_Get() +{ + return C->Trace_Verbose; +} + +//--------------------------------------------------------------------------- +void GUI_Main::Trace_Verbose_Set(bool Verbose) +{ + C->Trace_Verbose=Verbose; + C->Menu_File_Options_Update(); +} + //--------------------------------------------------------------------------- void GUI_Main::BackupDirectory_Set(const string &Value) { diff --git a/Source/GUI/Qt/GUI_Main.h b/Source/GUI/Qt/GUI_Main.h index 65070999..7985984c 100644 --- a/Source/GUI/Qt/GUI_Main.h +++ b/Source/GUI/Qt/GUI_Main.h @@ -55,6 +55,8 @@ class GUI_Main : public QMainWindow void Bext_Toggle_Set(bool Version); bool Trace_UseDec_Get(); void Trace_UseDec_Set(bool UseDec); + bool Trace_Verbose_Get(); + void Trace_Verbose_Set(bool Verbose); void BackupDirectory_Set(const string &Value); void LogFile_Set(const string &Value); diff --git a/Source/GUI/Qt/GUI_Preferences.cpp b/Source/GUI/Qt/GUI_Preferences.cpp index 6cf8919a..72826e66 100644 --- a/Source/GUI/Qt/GUI_Preferences.cpp +++ b/Source/GUI/Qt/GUI_Preferences.cpp @@ -178,6 +178,7 @@ options Groups[Group_Max]= Option_Trace_Max, { {"Trace_UseDec", "Use decimal instead of hexadecimal numbers for adresses and sizes (Apply only to newly opened files)", Type_CheckBox, false}, + {"Trace_Verbose", "Show the first 256 bytes of each non-audio data chunks content (Apply only to newly opened files)", Type_CheckBox, false}, }, false, true, @@ -566,6 +567,9 @@ void GUI_Preferences::OnClicked () if (CheckBoxes[Group_Trace*options::MaxCount+Option_Trace_UseDec]->isChecked()!=Main->Trace_UseDec_Get()) Main->Trace_UseDec_Set(CheckBoxes[Group_Trace*options::MaxCount+Option_Trace_UseDec]->isChecked()); + + if (CheckBoxes[Group_Trace*options::MaxCount+Option_Trace_Verbose]->isChecked()!=Main->Trace_Verbose_Get()) + Main->Trace_Verbose_Set(CheckBoxes[Group_Trace*options::MaxCount+Option_Trace_Verbose]->isChecked()); } //--------------------------------------------------------------------------- diff --git a/Source/GUI/Qt/GUI_Preferences.h b/Source/GUI/Qt/GUI_Preferences.h index 937b878f..d6ad0ff1 100644 --- a/Source/GUI/Qt/GUI_Preferences.h +++ b/Source/GUI/Qt/GUI_Preferences.h @@ -99,6 +99,7 @@ enum option_tables enum option_trace { Option_Trace_UseDec, + Option_Trace_Verbose, Option_Trace_Max }; diff --git a/Source/Riff/Riff_Base.cpp b/Source/Riff/Riff_Base.cpp index 4a40b49d..f2d3b62b 100644 --- a/Source/Riff/Riff_Base.cpp +++ b/Source/Riff/Riff_Base.cpp @@ -72,7 +72,40 @@ void Riff_Base::Read (chunk &Chunk_In) for (size_t Pos=1; PosTrace<<" "; Global->Trace<Trace_Verbose && + Chunk.Header.Name!=Elements::LIST && + Chunk.Header.Name!=Elements::RIFF && + Chunk.Header.Name!=Elements::RF64 && + Chunk.Header.Name!=Elements::WAVE && + Chunk.Header.Name!=Elements::WAVE_data && + Chunk.Header.Name!=Elements::WAVE_INFO && + Chunk.Header.Name!=Elements::WAVE_filr && + Chunk.Header.Name!=Elements::WAVE_FILR && + Chunk.Header.Name!=Elements::WAVE_fllr && + Chunk.Header.Name!=Elements::WAVE_FLLR && + Chunk.Header.Name!=Elements::WAVE_junk && + Chunk.Header.Name!=Elements::WAVE_JUNK && + Chunk.Header.Name!=Elements::WAVE_junq && + Chunk.Header.Name!=Elements::WAVE_JUNQ && + Chunk.Header.Name!=Elements::WAVE_pad_ && + Chunk.Header.Name!=Elements::WAVE_PAD_ && + Chunk.Content.Size) + { + int64u Position_Save=Global->In.Position_Get(); + for (int64u Offset=0; Offset<(Chunk.Content.Size<256?Chunk.Content.Size:256); Offset++) + { + int8u Data; + if (Chunk.File_In_Position+Chunk.Header.Size+Offset>=Global->In.Size_Get() || Global->In.Read(&Data, 1)==0) + break; + if (Offset==0) + Global->Trace<<" "; + Global->Trace<In.GoTo(Position_Save); + } + //Size /* for (size_t Pos=Chunk.Header.Level; Pos<4; Pos++) diff --git a/Source/Riff/Riff_Base.h b/Source/Riff/Riff_Base.h index a1d701a8..94b1d481 100644 --- a/Source/Riff/Riff_Base.h +++ b/Source/Riff/Riff_Base.h @@ -219,6 +219,7 @@ class Riff_Base bool Out_Buffer_File_IsModified; bool IsRF64; bool Trace_UseDec; + bool Trace_Verbose; CriticalSection CS; float Progress; @@ -250,6 +251,7 @@ class Riff_Base Out_Buffer_File_IsModified=false; IsRF64=false; Trace_UseDec=false; + Trace_Verbose=false; Progress=0; Canceling=false; } diff --git a/Source/Riff/Riff_Handler.cpp b/Source/Riff/Riff_Handler.cpp index 6648f5d2..19affbdf 100644 --- a/Source/Riff/Riff_Handler.cpp +++ b/Source/Riff/Riff_Handler.cpp @@ -2027,6 +2027,7 @@ void Riff_Handler::Options_Update_Internal() Chunks->Global->EmbedMD5=EmbedMD5; Chunks->Global->EmbedMD5_AuthorizeOverWritting=EmbedMD5_AuthorizeOverWritting; Chunks->Global->Trace_UseDec=Trace_UseDec; + Chunks->Global->Trace_Verbose=Trace_Verbose; //MD5 if (Chunks->Global->VerifyMD5) diff --git a/Source/Riff/Riff_Handler.h b/Source/Riff/Riff_Handler.h index 5b99f3d0..b83d2185 100644 --- a/Source/Riff/Riff_Handler.h +++ b/Source/Riff/Riff_Handler.h @@ -110,6 +110,7 @@ class Riff_Handler bool EmbedMD5; bool EmbedMD5_AuthorizeOverWritting; bool Trace_UseDec; + bool Trace_Verbose; unsigned short Bext_DefaultVersion; unsigned short Bext_MaxVersion; void Options_Update();