/**********************************************************************
 
 Audacity: A Digital Audio Editor
 
 TempDirectory.h
 
 Paul Licameli split from FileNames.h
 
 **********************************************************************/

#ifndef __AUDACITY_TEMP_DIRECTORY__
#define __AUDACITY_TEMP_DIRECTORY__


#include "BasicUI.h"

class TranslatableString;
class wxWindow;

#include "Identifier.h"
#include "Observer.h"

namespace TempDirectory
{
   FILES_API wxString TempDir();
   FILES_API void ResetTempDir();

   FILES_API const FilePath &DefaultTempDir();
   FILES_API void SetDefaultTempDir( const FilePath &tempDir );
   FILES_API bool IsTempDirectoryNameOK( const FilePath & Name );

   // Create a filename for an unsaved/temporary project file
   FILES_API wxString UnsavedProjectFileName();

   FILES_API bool FATFilesystemDenied(const FilePath &path,
                            const TranslatableString &msg,
                            const BasicUI::WindowPlacement &placement = {});

   FILES_API Observer::Publisher<FilePath>& GetTempPathObserver();
}

#endif
