コード例 #1
0
ファイル: cd_cleanpath.c プロジェクト: sbenning42/42
char        	*cd_cleanpath(char *path)
{
	t_dlist		*lst;
	t_dlist		*clean;
	char      	cpath[2048];
	char      	*pref;

	if (!ft_strcmp("-", path))
	{
		if (!(path = ft_getenv("OLDPWD")))
			cd_exit("OLDPWD needed in the environment");
		return (ft_strdup(path));
	}
	else if (*path != '/')
	{
		if (!(pref = ft_getenv("PWD")))
		cd_exit("PWD needed in the environment");
		ft_sprintf(cpath, "%s/%s/", pref, path);
	}
	else
		ft_sprintf(cpath, "%s/", path);
	if (!(lst = makelst(cpath)))
		return (NULL);
	if (!(clean = ft_dlstmap(lst, cleanlst)))
		return (NULL);
	ft_dlstdel(&lst, NULL);
	clean = cleanlstparent(clean);
	return (convertlst(&clean));
}
コード例 #2
0
ファイル: jvlexample.c プロジェクト: wangp/libcda
/*
 * Main procedure loops over user requests.
 */
int main()
{
  int	  i = 0 ;
  char	  c ; // Command Read From Input.

  // Open CD ROM Drive.
  if	( cd_init() < 0 )
	{
	  show_error( ERROR, cd_error ) ;
	  return 1;
  	}
	
  // Shows possible commands.
  show_usage();

  // While Not Quit.
  while ((c = read_cmd()) != 'q' )
	{

          if	(( i = valid_cmd( c )) == -1 )
		{
		  printf("Unrecognised command: `%c'\n", c ) ;
		}
	  else
		{
		  (*myCmdStruct[i].func)() ;
		}
    	}

  // Stop Device.
  cd_exit();
    
  return 0 ;
}
コード例 #3
0
ファイル: cd_currentrep.c プロジェクト: sbenning42/42
char    *cd_currentrep(void)
{
  char  *rep;

  if (!(rep = ft_getenv("HOME")))
      cd_exit("HOME needed in the environment");
  return (rep);
}
コード例 #4
0
ファイル: wrapper.c プロジェクト: sbenning42/42
int				chdir_wrapper(char *path, char *rep)
{
	char		msg[1024];

	if (!chdir(path))
		return (0);
	ft_snprintf(msg, 1024, "Permission denied: %s", rep);
	cd_exit(msg);
	return (-1);
}
コード例 #5
0
ファイル: wrapper.c プロジェクト: sbenning42/42
int				access_wrapper(char *path, char *rep)
{
	char		msg[1024];

	if (!access(path, F_OK))
		return (0);
	ft_snprintf(msg, 1024, "No such directory: %s", rep);
	cd_exit(msg);
	return (-1);
}
コード例 #6
0
ファイル: wrapper.c プロジェクト: sbenning42/42
char			*getcwd_wrapper(void)
{
	char		*cwd;
	char		msg[1024];

	if ((cwd = getcwd(NULL, 0)))
		return (cwd);
	ft_snprintf(msg, 1024, "Can't get Current Working Dir via SysCall");
	cd_exit(msg);
	return (NULL);
}
コード例 #7
0
void AGSDOS::ShutdownCDPlayer() {
  cd_exit();
}
コード例 #8
0
ファイル: acplmac.cpp プロジェクト: sonneveld/ags
void AGSMac::ShutdownCDPlayer() {
    cd_exit();
}
コード例 #9
0
ファイル: example.c プロジェクト: AlanDrake/ags
int main()
{
    char cmd[20];
    int done = 0;
    int ret, trk, a, b;

    if (cd_init() < 0) {
	printf("Error initialising libcda (%s)\n", cd_error);
	return 1;
    }
	
    show_cmds();

    do {  
	printf(">>> ");
	fflush(stdout);
	scanf("%s", cmd);

	switch (cmd[0]) {
	    case '?':
		show_cmds();
		break;

	    case 'p':
		trk = input_int("Track");
		ret = cd_play(trk);
		if (ret != 0)
		    printf("Error occurred (%s)\n", cd_error);
		break;

	    case 'r':
		a = input_int("First track");
		b = input_int("Last track");
		ret = cd_play_range(a, b);
		if (ret != 0)
		    printf("Error occurred (%s)\n", cd_error);
		break;

	    case 'f':
		trk = input_int("Start track");
		ret = cd_play_from(trk);
		if (ret != 0)
		    printf("Error occurred (%s)\n", cd_error);
		break;

	    case 'P':
		trk = cd_current_track();
		if (trk)
		    printf("Playing track %d\n", trk);
		else
		    printf("Not playing\n");
		break;

	    case 'w':
		cd_pause();
		break;

	    case 'W':
		cd_resume();
		break;

	    case 'S':
		ret = cd_is_paused();
		if (ret)
		    printf("Paused\n");
		else
		    printf("Not paused\n");
		break;

	    case 's':
		cd_stop();
		break;

	    case 'i':
		ret = cd_get_tracks(&a, &b);
		if (ret != 0)
		    printf("Error occurred (%s)\n", cd_error);
		else
		    printf("First track: %d\nLast track: %d\n", a, b);
		break;

	    case 'a':
		trk = input_int("Track");
		ret = cd_is_audio(trk);
		if (ret < 0)
		    printf("Error occurred (%s)\n", cd_error);
		else
		    printf("Track %d is %s\n", trk, (ret ? "audio" : "data"));
		break;

	    case 'v':
		a = input_int("Left (0-255)");
		b = input_int("Right (0-255)");
		cd_set_volume(a, b);
		break;

	    case 'V':
		cd_get_volume(&a, &b);
		printf("Left volume: %d\nRight volume: %d\n", a, b);
		break;

	    case 'e':
		cd_eject();
		break;

	    case 'c':
		cd_close();
		break;

	    case 'q':
		done = 1;
		break;

	    default:
		printf("Unrecognised command: `%c'\n", cmd[0]);
	}
    } while (!done);

    cd_exit();
    
    return 0;
}