GFX2_DiskFreeSpace()
This commit is contained in:
parent
2fdceab6bc
commit
776884f0fe
74
src/help.c
74
src/help.c
@ -26,36 +26,9 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#if defined(__WIN32__) || defined(WIN32)
|
|
||||||
#include <windows.h>
|
|
||||||
#if defined(_MSC_VER) && _MSC_VER < 1900
|
#if defined(_MSC_VER) && _MSC_VER < 1900
|
||||||
#define snprintf _snprintf
|
#define snprintf _snprintf
|
||||||
#endif
|
#endif
|
||||||
#elif defined(__macosx__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
|
||||||
#include <sys/param.h>
|
|
||||||
#include <sys/mount.h>
|
|
||||||
#elif defined(__NetBSD__)
|
|
||||||
#include <sys/statvfs.h>
|
|
||||||
#elif defined (__linux__) || defined(__SYLLABLE__)
|
|
||||||
#include <sys/vfs.h>
|
|
||||||
#elif defined (__HAIKU__)
|
|
||||||
#include "haiku.h"
|
|
||||||
#elif defined (__MINT__)
|
|
||||||
#include <mint/sysbind.h>
|
|
||||||
#include <mint/osbind.h>
|
|
||||||
#include <mint/ostruct.h>
|
|
||||||
#elif defined(__AROS__)
|
|
||||||
#include <sys/mount.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
|
|
||||||
#include <stdlib.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__macosx__)
|
|
||||||
#import <CoreFoundation/CoreFoundation.h>
|
|
||||||
#import <ApplicationServices/ApplicationServices.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(USE_SDL) || defined(USE_SDL2)
|
#if defined(USE_SDL) || defined(USE_SDL2)
|
||||||
#include <SDL_image.h>
|
#include <SDL_image.h>
|
||||||
@ -756,7 +729,6 @@ void Button_Stats(int btn)
|
|||||||
qword mem_size = 0;
|
qword mem_size = 0;
|
||||||
int y;
|
int y;
|
||||||
#if defined (__MINT__)
|
#if defined (__MINT__)
|
||||||
_DISKINFO drvInfo;
|
|
||||||
unsigned long STRAM = 0, TTRAM = 0;
|
unsigned long STRAM = 0, TTRAM = 0;
|
||||||
char helpBuf[3][16];
|
char helpBuf[3][16];
|
||||||
#endif
|
#endif
|
||||||
@ -927,50 +899,8 @@ void Button_Stats(int btn)
|
|||||||
Print_in_window(162,y,buffer,STATS_DATA_COLOR,MC_Black);
|
Print_in_window(162,y,buffer,STATS_DATA_COLOR,MC_Black);
|
||||||
|
|
||||||
y+=8;
|
y+=8;
|
||||||
#if defined(__WIN32__) || defined(WIN32)
|
|
||||||
{
|
mem_size = GFX2_DiskFreeSpace(Main.selector.Directory);
|
||||||
ULARGE_INTEGER tailleU, totalbytes, totalfreebytes;
|
|
||||||
if (GetDiskFreeSpaceExA(Main.selector.Directory, &tailleU, &totalbytes, &totalfreebytes))
|
|
||||||
{
|
|
||||||
GFX2_Log(GFX2_DEBUG, "%s: %luMB free for GrafX2 (total %luMB, %luMB free)\n",
|
|
||||||
Main.selector.Directory, (unsigned long)(tailleU.QuadPart >> 20),
|
|
||||||
(unsigned long)(totalbytes.QuadPart >> 20), (unsigned long)(totalfreebytes.QuadPart >> 20));
|
|
||||||
mem_size = tailleU.QuadPart;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mem_size = 0;
|
|
||||||
GFX2_Log(GFX2_ERROR, "GetDiskFreeSpaceExA() failed\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#elif defined(__linux__) || defined(__macosx__) || defined(__FreeBSD__) || defined(__SYLLABLE__) || defined(__AROS__) || defined(__OpenBSD__)
|
|
||||||
{
|
|
||||||
struct statfs disk_info;
|
|
||||||
statfs(Main.selector.Directory,&disk_info);
|
|
||||||
mem_size=(qword) disk_info.f_bfree * (qword) disk_info.f_bsize;
|
|
||||||
}
|
|
||||||
#elif defined(__NetBSD__)
|
|
||||||
{
|
|
||||||
struct statvfs disk_info;
|
|
||||||
statvfs(Main.selector.Directory,&disk_info);
|
|
||||||
mem_size=(qword) disk_info.f_bfree * (qword) disk_info.f_bsize;
|
|
||||||
}
|
|
||||||
#elif defined(__HAIKU__)
|
|
||||||
mem_size = haiku_get_free_space(Main.selector.Directory);
|
|
||||||
#elif defined (__MINT__)
|
|
||||||
mem_size=0;
|
|
||||||
Dfree(&drvInfo,0);
|
|
||||||
//number of free clusters*sectors per cluster*bytes per sector;
|
|
||||||
// reports current drive
|
|
||||||
mem_size=drvInfo.b_free*drvInfo.b_clsiz*drvInfo.b_secsiz;
|
|
||||||
#else
|
|
||||||
#define NODISKSPACESUPPORT
|
|
||||||
// Free disk space is only for shows. Other platforms can display 0.
|
|
||||||
#if !defined(__SWITCH__)
|
|
||||||
#warning "Missing code for your platform !!! Check and correct please :)"
|
|
||||||
#endif
|
|
||||||
mem_size=0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Display free space
|
// Display free space
|
||||||
if (mem_size != 0)
|
if (mem_size != 0)
|
||||||
|
|||||||
77
src/osdep.c
77
src/osdep.c
@ -24,12 +24,38 @@
|
|||||||
*/
|
*/
|
||||||
#if defined(USE_SDL) || defined(USE_SDL2)
|
#if defined(USE_SDL) || defined(USE_SDL2)
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
#else
|
#elif !defined(WIN32)
|
||||||
#if defined(WIN32)
|
|
||||||
#include <windows.h>
|
|
||||||
#else
|
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(WIN32)
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__macosx__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||||
|
#include <sys/param.h>
|
||||||
|
#include <sys/mount.h>
|
||||||
|
#elif defined(__NetBSD__)
|
||||||
|
#include <sys/statvfs.h>
|
||||||
|
#elif defined (__linux__) || defined(__SYLLABLE__)
|
||||||
|
#include <sys/vfs.h>
|
||||||
|
#elif defined (__HAIKU__)
|
||||||
|
#include "haiku.h"
|
||||||
|
#elif defined (__MINT__)
|
||||||
|
#include <mint/sysbind.h>
|
||||||
|
#include <mint/osbind.h>
|
||||||
|
#include <mint/ostruct.h>
|
||||||
|
#elif defined(__AROS__)
|
||||||
|
#include <sys/mount.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__macosx__)
|
||||||
|
#import <CoreFoundation/CoreFoundation.h>
|
||||||
|
#import <ApplicationServices/ApplicationServices.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "struct.h"
|
#include "struct.h"
|
||||||
@ -86,6 +112,49 @@ void GFX2_OpenURL(const char * buffer, unsigned int len)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qword GFX2_DiskFreeSpace(const char * path)
|
||||||
|
{
|
||||||
|
#if defined(__WIN32__) || defined(WIN32)
|
||||||
|
ULARGE_INTEGER tailleU, totalbytes, totalfreebytes;
|
||||||
|
if (GetDiskFreeSpaceExA(path, &tailleU, &totalbytes, &totalfreebytes))
|
||||||
|
{
|
||||||
|
GFX2_Log(GFX2_DEBUG, "%s: %luMB free for GrafX2 (total %luMB, %luMB free)\n",
|
||||||
|
path, (unsigned long)(tailleU.QuadPart >> 20),
|
||||||
|
(unsigned long)(totalbytes.QuadPart >> 20), (unsigned long)(totalfreebytes.QuadPart >> 20));
|
||||||
|
return tailleU.QuadPart;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GFX2_Log(GFX2_ERROR, "GetDiskFreeSpaceExA() failed\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#elif defined(__linux__) || defined(__macosx__) || defined(__FreeBSD__) || defined(__SYLLABLE__) || defined(__AROS__) || defined(__OpenBSD__)
|
||||||
|
struct statfs disk_info;
|
||||||
|
statfs(path ,&disk_info);
|
||||||
|
return (qword) disk_info.f_bfree * (qword) disk_info.f_bsize;
|
||||||
|
#elif defined(__NetBSD__)
|
||||||
|
struct statvfs disk_info;
|
||||||
|
statvfs(path, &disk_info);
|
||||||
|
return (qword) disk_info.f_bfree * (qword) disk_info.f_bsize;
|
||||||
|
#elif defined(__HAIKU__)
|
||||||
|
return haiku_get_free_space(path);
|
||||||
|
#elif defined (__MINT__)
|
||||||
|
_DISKINFO drvInfo;
|
||||||
|
|
||||||
|
Dfree(&drvInfo, 0);
|
||||||
|
//number of free clusters*sectors per cluster*bytes per sector;
|
||||||
|
// reports current drive
|
||||||
|
return drvInfo.b_free*drvInfo.b_clsiz*drvInfo.b_secsiz;
|
||||||
|
#else
|
||||||
|
#define NODISKSPACESUPPORT
|
||||||
|
// Free disk space is only for shows. Other platforms can display 0.
|
||||||
|
#if !defined(__SWITCH__)
|
||||||
|
#warning "Missing code for your platform !!! Check and correct please :)"
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__SWITCH__)
|
#if defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__SWITCH__)
|
||||||
#if defined(__OpenBSD__)
|
#if defined(__OpenBSD__)
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
|||||||
@ -40,6 +40,11 @@ dword GFX2_GetTicks(void);
|
|||||||
*/
|
*/
|
||||||
void GFX2_OpenURL(const char * url, unsigned int len);
|
void GFX2_OpenURL(const char * url, unsigned int len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disk free space
|
||||||
|
*/
|
||||||
|
qword GFX2_DiskFreeSpace(const char * path);
|
||||||
|
|
||||||
#if defined (__MINT__)
|
#if defined (__MINT__)
|
||||||
void Atari_Memory_free(unsigned long *stRam, unsigned long *ttRam);
|
void Atari_Memory_free(unsigned long *stRam, unsigned long *ttRam);
|
||||||
#else
|
#else
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user