1 #pragma once
2 
3 #include <stdint.h>
4 #include "ft2_unicode.h"
5 
6 #define DISKOP_ENTRY_NUM 15
7 
8 enum
9 {
10 	DISKOP_ITEM_MODULE = 0,
11 	DISKOP_ITEM_INSTR = 1,
12 	DISKOP_ITEM_SAMPLE = 2,
13 	DISKOP_ITEM_PATTERN = 3,
14 	DISKOP_ITEM_TRACK = 4,
15 
16 	MOD_SAVE_MODE_MOD = 0,
17 	MOD_SAVE_MODE_XM = 1,
18 	MOD_SAVE_MODE_WAV = 2,
19 	SMP_SAVE_MODE_RAW = 0,
20 	SMP_SAVE_MODE_IFF = 1,
21 	SMP_SAVE_MODE_WAV = 2
22 };
23 
24 bool setupExecutablePath(void);
25 int32_t getFileSize(UNICHAR *fileNameU);
26 uint8_t getDiskOpItem(void);
27 void updateCurrSongFilename(void); // for window title
28 char *getCurrSongFilename(void); // for window title
29 char *getDiskOpFilename(void);
30 const UNICHAR *getDiskOpCurPath(void);
31 const UNICHAR *getDiskOpModPath(void);
32 const UNICHAR *getDiskOpSmpPath(void);
33 void changeFilenameExt(char *name, char *ext, int32_t nameMaxLen);
34 void diskOpChangeFilenameExt(char *ext);
35 void freeDiskOp(void);
36 bool setupDiskOp(void);
37 void diskOpSetFilename(uint8_t type, UNICHAR *pathU);
38 void sanitizeFilename(const char *src);
39 bool diskOpGoParent(void);
40 void pbDiskOpRoot(void);
41 int32_t getExtOffset(char *s, int32_t stringLen); // get byte offset of file extension (last '.')
42 bool testDiskOpMouseDown(bool mouseHeldDown);
43 void testDiskOpMouseRelease(void);
44 void diskOp_StartDirReadThread(void);
45 void diskOp_DrawFilelist(void);
46 void diskOp_DrawDirectory(void);
47 void showDiskOpScreen(void);
48 void hideDiskOpScreen(void);
49 void exitDiskOpScreen(void);
50 void toggleDiskOpScreen(void);
51 void sbDiskOpSetPos(uint32_t pos);
52 void pbDiskOpListUp(void);
53 void pbDiskOpListDown(void);
54 void pbDiskOpParent(void);
55 void pbDiskOpShowAll(void);
56 #ifdef _WIN32
57 void pbDiskOpDrive1(void);
58 void pbDiskOpDrive2(void);
59 void pbDiskOpDrive3(void);
60 void pbDiskOpDrive4(void);
61 void pbDiskOpDrive5(void);
62 void pbDiskOpDrive6(void);
63 void pbDiskOpDrive7(void);
64 void pbDiskOpDrive8(void);
65 #endif
66 void pbDiskOpSave(void);
67 void pbDiskOpDelete(void);
68 void pbDiskOpRename(void);
69 void pbDiskOpMakeDir(void);
70 void pbDiskOpRefresh(void);
71 void pbDiskOpSetPath(void);
72 void pbDiskOpExit(void);
73 void rbDiskOpModule(void);
74 void rbDiskOpInstr(void);
75 void rbDiskOpSample(void);
76 void rbDiskOpPattern(void);
77 void rbDiskOpTrack(void);
78 void rbDiskOpModSaveXm(void);
79 void rbDiskOpModSaveMod(void);
80 void rbDiskOpModSaveWav(void);
81 void rbDiskOpSmpSaveWav(void);
82 void rbDiskOpSmpSaveRaw(void);
83 void rbDiskOpSmpSaveIff(void);
84 void trimEntryName(char *name, bool isDir);
85 void createFileOverwriteText(char *filename, char *buffer);
86 bool fileExistsAnsi(char *str);
87