Added BMediaFile::_UnInit() and implemented the two SetTo() methods.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30987 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -157,6 +157,7 @@ private:
|
||||
BMediaTrack** fTrackList;
|
||||
|
||||
void _Init();
|
||||
void _UnInit();
|
||||
void _InitReader(BDataIO* source, int32 flags = 0);
|
||||
void _InitWriter(BDataIO* source,
|
||||
const media_file_format* mfi, int32 flags);
|
||||
|
||||
@@ -78,16 +78,25 @@ BMediaFile::BMediaFile(const media_file_format* mfi, int32 flags)
|
||||
status_t
|
||||
BMediaFile::SetTo(const entry_ref* ref)
|
||||
{
|
||||
debugger("BMediaFile::SetTo not implemented");
|
||||
return B_OK;
|
||||
CALLED();
|
||||
|
||||
_UnInit();
|
||||
fDeleteSource = true;
|
||||
_InitReader(new (std::nothrow) BFile(ref, O_RDONLY));
|
||||
|
||||
return fErr;
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
BMediaFile::SetTo(BDataIO* destination)
|
||||
{
|
||||
debugger("BMediaFile::SetTo not implemented");
|
||||
return B_OK;
|
||||
CALLED();
|
||||
|
||||
_UnInit();
|
||||
_InitReader(destination);
|
||||
|
||||
return fErr;
|
||||
}
|
||||
|
||||
|
||||
@@ -95,11 +104,7 @@ BMediaFile::~BMediaFile()
|
||||
{
|
||||
CALLED();
|
||||
|
||||
ReleaseAllTracks();
|
||||
delete[] fTrackList;
|
||||
delete fExtractor;
|
||||
if (fDeleteSource)
|
||||
delete fSource;
|
||||
_UnInit();
|
||||
}
|
||||
|
||||
|
||||
@@ -359,6 +364,23 @@ BMediaFile::_Init()
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BMediaFile::_UnInit()
|
||||
{
|
||||
ReleaseAllTracks();
|
||||
delete[] fTrackList;
|
||||
fTrackList = NULL;
|
||||
fTrackNum = 0;
|
||||
delete fExtractor;
|
||||
fExtractor = NULL;
|
||||
if (fDeleteSource) {
|
||||
delete fSource;
|
||||
fSource = NULL;
|
||||
fDeleteSource = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BMediaFile::_InitReader(BDataIO* source, int32 flags)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user