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