Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
91
Src/Plugins/Library/ml_disc/M3UWriter.cpp
Normal file
91
Src/Plugins/Library/ml_disc/M3UWriter.cpp
Normal file
|
@ -0,0 +1,91 @@
|
|||
#include "M3UWriter.h"
|
||||
#include <shlwapi.h>
|
||||
|
||||
static void MakeRelativePathName( const char *filename, char *outFile, const char *path )
|
||||
{
|
||||
char outPath[ MAX_PATH ] = { 0 };
|
||||
|
||||
int common = PathCommonPrefixA( path, filename, outPath );
|
||||
if ( common && common == lstrlenA( path ) )
|
||||
{
|
||||
PathAddBackslashA( outPath );
|
||||
const char *p = filename + lstrlenA( outPath );
|
||||
lstrcpyA( outFile, p );
|
||||
}
|
||||
else if ( !PathIsUNCA( filename ) && PathIsSameRootA( filename, path ) )
|
||||
{
|
||||
lstrcpyA( outFile, filename + 2 );
|
||||
}
|
||||
}
|
||||
|
||||
M3UWriter::M3UWriter()
|
||||
{
|
||||
memset( basePath, 0, sizeof( basePath ) );
|
||||
}
|
||||
|
||||
M3UWriter::~M3UWriter()
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
int M3UWriter::Open( char *filename, int extendedMode )
|
||||
{
|
||||
fp = fopen( filename, "wt" );
|
||||
if ( !fp )
|
||||
return 0;
|
||||
|
||||
if ( extendedMode )
|
||||
fprintf( fp, "#EXTM3U\n" );
|
||||
|
||||
extended = extendedMode;
|
||||
|
||||
lstrcpynA( basePath, filename, MAX_PATH );
|
||||
PathRemoveFileSpecA( basePath );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int M3UWriter::Open( FILE *_fp, char *filename, int extendedMode )
|
||||
{
|
||||
fp = _fp;
|
||||
if ( !fp )
|
||||
return 0;
|
||||
|
||||
if ( extendedMode )
|
||||
fprintf( fp, "#EXTM3U\n" );
|
||||
|
||||
extended = extendedMode;
|
||||
|
||||
lstrcpynA( basePath, filename, MAX_PATH );
|
||||
PathRemoveFileSpecA( basePath );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void M3UWriter::SetFilename( char *filename )
|
||||
{
|
||||
//char temp[ MAX_PATH ] = { 0 };
|
||||
//MakeRelativePathName( filename, temp, basePath );
|
||||
fprintf( fp, "%s\n", filename );
|
||||
}
|
||||
|
||||
void M3UWriter::SetExtended( char *filename, char *title, int length )
|
||||
{
|
||||
if ( !extended )
|
||||
SetFilename( filename );
|
||||
else
|
||||
{
|
||||
//char temp[ MAX_PATH ] = { 0 };
|
||||
//MakeRelativePathName( filename, temp, basePath );
|
||||
fprintf( fp, "#EXTINF:%d,%s\n%s\n", length, title, filename );
|
||||
}
|
||||
}
|
||||
|
||||
void M3UWriter::Close()
|
||||
{
|
||||
if ( fp != NULL )
|
||||
{
|
||||
fclose( fp );
|
||||
fp = NULL;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue