1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
/*!********************************************************************
Audacity: A Digital Audio Editor
@file JournalOutput.cpp
Paul Licameli
**********************************************************************/
#include "JournalOutput.h"
#include <wx/textfile.h>
#include "wxArrayStringEx.h"
namespace Journal {
namespace {
struct FlushingTextFile : wxTextFile {
// Flush output when the program quits, even if that makes an incomplete
// journal file without an exit
~FlushingTextFile() { if ( IsOpened() ) { Write(); Close(); } }
} sFileOut;
}
bool IsRecording()
{
return sFileOut.IsOpened();
}
bool OpenOut( const wxString &fullPath )
{
sFileOut.Open( fullPath );
if ( sFileOut.IsOpened() )
sFileOut.Clear();
else {
sFileOut.Create();
sFileOut.Open( fullPath );
}
return sFileOut.IsOpened();
}
void Output( const wxString &string )
{
if ( IsRecording() )
sFileOut.AddLine( string );
}
void Output( const wxArrayString &strings )
{
if ( IsRecording() )
Output( ::wxJoin( strings, SeparatorCharacter, EscapeCharacter ) );
}
void Output( std::initializer_list< const wxString > strings )
{
return Output( wxArrayStringEx( strings ) );
}
void Comment( const wxString &string )
{
if ( IsRecording() )
sFileOut.AddLine( CommentCharacter + string );
}
}
|