示例#1
0
文件: rmp3.c 项目: rojekabc/okienkoc
// Otwiera plik, ustala dla jego format oraz kodek, jaki bêdzie u¿yty
// Zwraca -1 jesli blad
static int openAudioFile(const char *cfilename)
{
	GOC_BDEBUG("-> openAudioFile: %s", cfilename);

	// wstepne inicjowanie i sprzatanie
	closeAudioFile();

	// czy wskazano jaki¶ plik
	if ( cfilename == NULL )
		return -1;
	// czy plik istnieje
	if ( ! goc_isFileExists( cfilename ) )
		return -1;
	if ( goc_isFolder( cfilename ) )
		return -1;
	// ustawienie nowego pliku odtwarzanego
	filename = cfilename;
	// otworz plik
	GOC_CHEOP(decoderOpen( filename, N_SAMPLES * N_CHANNELS ) == DECODER_CODE_OK, filename = NULL; return -1);
	GOC_BDEBUG("<- openAudioFile: %s", cfilename);
	eventChangeSongPlaying();
	if ( playerOpenOutput() == PLAYER_CODE_OK ) {
		return 0;
	} else {
		return -1;
	}
}
示例#2
0
// listuj katalog i dodawaj pliki w nim zawarte, ktróre s± mp3
static void listAddFolder(const char *fullname)
{
	DIR *dir = opendir( fullname );
	struct dirent *ent;
	if ( dir == NULL )
		return;
	while ( (ent = readdir( dir )) != NULL )
	{
		char *buf = NULL;
		if ( goc_stringEquals( ent->d_name, ".." ) )
			continue;
		if ( goc_stringEquals( ent->d_name, "." ) )
			continue;
		buf = goc_stringCopy( buf, fullname );
		if ( fullname[strlen(fullname)-1] != '/' )
			buf = goc_stringAdd( buf, "/" );
		buf = goc_stringAdd( buf, ent->d_name );
		if ( goc_isFolder( buf ) )
			listAddFolder( buf );
		else
			checkAddFile( buf );
		buf = goc_stringFree( buf );
	}
	closedir( dir );
}
示例#3
0
static int hotKeySelectFolder(
	GOC_HANDLER uchwyt, GOC_MSG wiesc, void *pBuf, unsigned int nBuf)
{
	char *element = goc_stringCopy(NULL, goc_filelistGetFolder(uchwyt));
	element = goc_stringAdd(element, "/");
	element = goc_stringAdd(element, goc_listGetUnderCursor(uchwyt));
	if ( goc_isFileExists( element ) )
	{
		if ( goc_isFolder( element ) )
		{
			listAddFolder( element );
		}
		else
		{ // a wiec to plik
			checkAddFile( element );
		}
		char *tmp = goc_stringAdd(goc_stringCopy(NULL, "Dodano: "), element);
		goc_labelSetText(nStatus, tmp, 0);
		tmp = goc_stringFree(tmp);
		goc_systemSendMsg(nStatus, GOC_MSG_PAINT, 0, 0);
	}
}