List volumes on amiga platforms. warning, untested code !
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@460 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
806e491650
commit
9cb5818bec
72
init.c
72
init.c
@ -58,12 +58,12 @@
|
||||
|
||||
// Ajouter un lecteur à la liste de lecteurs
|
||||
void Ajouter_lecteur(char Lettre, byte Type, char *Chemin)
|
||||
{
|
||||
{
|
||||
Drive[Nb_drives].Lettre=Lettre;
|
||||
Drive[Nb_drives].Type =Type;
|
||||
Drive[Nb_drives].Chemin=(char *)malloc(strlen(Chemin)+1);
|
||||
strcpy(Drive[Nb_drives].Chemin, Chemin);
|
||||
|
||||
|
||||
Nb_drives++;
|
||||
}
|
||||
|
||||
@ -73,8 +73,38 @@ void Rechercher_drives(void)
|
||||
{
|
||||
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__)
|
||||
|
||||
// No icons by default.
|
||||
// It's possible to add some here.
|
||||
DosList *dosList;
|
||||
CONST ULONG lockDosListFlags = LDF_READ | LDF_VOLUMES;
|
||||
|
||||
dosList = LockDosList(lockDosListFlags);
|
||||
if (dosList)
|
||||
{
|
||||
dosList = NextDosEntry(dosList, LDF_VOLUMES);
|
||||
while (dosList)
|
||||
{
|
||||
if (dosList->dol_Type == DLT_VOLUME dosList->dol_Name && dosList->dol_Task)
|
||||
{
|
||||
TEXT name[256];
|
||||
CONST_STRPTR volume_name = (CONST_STRPTR)BADDR(dosList->dol_Name)+1;
|
||||
CONST_STRPTR device_name = (CONST_STRPTR)((struct Task *)dosList->dol_Task->mp_SigTask)->tc_Node.ln_Name;
|
||||
BPTR volume_lock;
|
||||
|
||||
stccpy(name, volume_name, sizeof(name));
|
||||
strncat(name, ":", sizeof(name));
|
||||
|
||||
volume_lock = Lock(name, SHARED_LOCK);
|
||||
if (volume_lock)
|
||||
{
|
||||
Ajouter_lecteur(device_name[0],LECTEUR_HDD,name);
|
||||
UnLock(volume_lock);
|
||||
}
|
||||
}
|
||||
dosList = NextDosEntry(dosList, LDF_VOLUMES);
|
||||
}
|
||||
|
||||
UnLockDosList(lockDosListFlags);
|
||||
}
|
||||
|
||||
|
||||
#elif defined (__WIN32__)
|
||||
|
||||
@ -133,9 +163,9 @@ void Rechercher_drives(void)
|
||||
char * Home = getenv("$HOME");
|
||||
#else
|
||||
char * Home = getenv("HOME");
|
||||
#endif
|
||||
#endif
|
||||
Ajouter_lecteur('/', LECTEUR_HDD, "/");
|
||||
if(Home)
|
||||
if(Home)
|
||||
Ajouter_lecteur('~', LECTEUR_HDD, Home);
|
||||
|
||||
Liste_points_montage = read_file_system_list(false);
|
||||
@ -147,7 +177,7 @@ void Rechercher_drives(void)
|
||||
Ajouter_lecteur(lettre++,
|
||||
Liste_points_montage->me_remote==1?LECTEUR_NETWORK:LECTEUR_HDD,
|
||||
Liste_points_montage->me_mountdir);
|
||||
}
|
||||
}
|
||||
next = Liste_points_montage -> me_next;
|
||||
free(Liste_points_montage -> me_type);
|
||||
free(Liste_points_montage);
|
||||
@ -178,7 +208,7 @@ void Charger_DAT(void)
|
||||
|
||||
strcpy(Nom_du_fichier,Repertoire_des_donnees);
|
||||
strcat(Nom_du_fichier,"gfx2.dat");
|
||||
|
||||
|
||||
if(stat(Nom_du_fichier,&Informations_Fichier))
|
||||
{
|
||||
switch(errno)
|
||||
@ -1268,9 +1298,9 @@ void Definir_mode_video(short Largeur,
|
||||
short Hauteur,
|
||||
byte Mode,
|
||||
word Fullscreen)
|
||||
{
|
||||
{
|
||||
byte Supporte = 0;
|
||||
|
||||
|
||||
if (Nb_modes_video >= MAX_MODES_VIDEO-1)
|
||||
{
|
||||
DEBUG("Erreur! Tentative de créer un mode de trop! Limite:", MAX_MODES_VIDEO);
|
||||
@ -1316,7 +1346,7 @@ void Definition_des_modes_video(void)
|
||||
Nb_modes_video=0;
|
||||
// Doit être en premier pour avoir le numéro 0:
|
||||
Definir_mode_video( 640,480,0, 0);
|
||||
|
||||
|
||||
Definir_mode_video( 320,200,0, 1);
|
||||
Definir_mode_video( 320,224,0, 1);
|
||||
Definir_mode_video( 320,240,0, 1);
|
||||
@ -1386,7 +1416,7 @@ void Definition_des_modes_video(void)
|
||||
{
|
||||
int Indice2;
|
||||
for (Indice2=1; Indice2 < Nb_modes_video; Indice2++)
|
||||
if (Modes[Indice]->w == Mode_video[Indice2].Largeur &&
|
||||
if (Modes[Indice]->w == Mode_video[Indice2].Largeur &&
|
||||
Modes[Indice]->h == Mode_video[Indice2].Hauteur)
|
||||
{
|
||||
// Mode déja prévu: ok
|
||||
@ -1686,7 +1716,7 @@ int Charger_CFG(int Tout_charger)
|
||||
Liste2tables(Shade_Liste[Shade_Actuel].Liste,
|
||||
Shade_Liste[Shade_Actuel].Pas,
|
||||
Shade_Liste[Shade_Actuel].Mode,
|
||||
Shade_Table_gauche,Shade_Table_droite);
|
||||
Shade_Table_gauche,Shade_Table_droite);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1891,7 +1921,7 @@ int Sauver_CFG(void)
|
||||
CFG_Mode_video.Etat =Mode_video[Indice].Etat;
|
||||
CFG_Mode_video.Largeur=Mode_video[Indice].Largeur;
|
||||
CFG_Mode_video.Hauteur=Mode_video[Indice].Hauteur;
|
||||
|
||||
|
||||
if (!write_byte(Handle, CFG_Mode_video.Etat) ||
|
||||
!write_word_le(Handle, CFG_Mode_video.Largeur) ||
|
||||
!write_word_le(Handle, CFG_Mode_video.Hauteur) )
|
||||
@ -1916,7 +1946,7 @@ int Sauver_CFG(void)
|
||||
if (! write_byte(Handle, Shade_Liste[Indice].Pas) ||
|
||||
! write_byte(Handle, Shade_Liste[Indice].Mode) )
|
||||
goto Erreur_sauvegarde_config;
|
||||
}
|
||||
}
|
||||
|
||||
// Sauvegarde des informations du Masque
|
||||
Chunk.Numero=CHUNK_MASQUE;
|
||||
@ -2000,7 +2030,7 @@ int Sauver_CFG(void)
|
||||
if (!write_word_le(Handle, Snap_Decalage_Y))
|
||||
goto Erreur_sauvegarde_config;
|
||||
|
||||
|
||||
|
||||
if (fclose(Handle))
|
||||
return ERREUR_SAUVEGARDE_CFG;
|
||||
|
||||
@ -2063,7 +2093,7 @@ void Config_par_defaut(void)
|
||||
for (Indice=0; Indice<7; Indice++)
|
||||
for (Indice2=0; Indice2<16; Indice2++)
|
||||
Shade_Liste[0].Liste[Indice*17+Indice2]=Indice*16+Indice2+16;
|
||||
|
||||
|
||||
Liste2tables(Shade_Liste[Shade_Actuel].Liste,
|
||||
Shade_Liste[Shade_Actuel].Pas,
|
||||
Shade_Liste[Shade_Actuel].Mode,
|
||||
@ -2088,7 +2118,7 @@ void Config_par_defaut(void)
|
||||
Degrade_Tableau[Indice].Technique=0;
|
||||
}
|
||||
Degrade_Charger_infos_du_tableau(Degrade_Courant);
|
||||
|
||||
|
||||
// Smooth
|
||||
Smooth_Matrice[0][0]=1;
|
||||
Smooth_Matrice[0][1]=2;
|
||||
@ -2104,12 +2134,12 @@ void Config_par_defaut(void)
|
||||
for (Indice=0; Indice<256; Indice++)
|
||||
Exclude_color[Indice]=0;
|
||||
|
||||
// Quick shade
|
||||
// Quick shade
|
||||
Quick_shade_Step=1;
|
||||
Quick_shade_Loop=0;
|
||||
|
||||
|
||||
// Grille
|
||||
Snap_Largeur=Snap_Hauteur=8;
|
||||
Snap_Decalage_X=Snap_Decalage_Y=0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user