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;
|
BMediaTrack** fTrackList;
|
||||||
|
|
||||||
void _Init();
|
void _Init();
|
||||||
|
void _UnInit();
|
||||||
void _InitReader(BDataIO* source, int32 flags = 0);
|
void _InitReader(BDataIO* source, int32 flags = 0);
|
||||||
void _InitWriter(BDataIO* source,
|
void _InitWriter(BDataIO* source,
|
||||||
const media_file_format* mfi, int32 flags);
|
const media_file_format* mfi, int32 flags);
|
||||||
|
|||||||
@@ -78,16 +78,25 @@ BMediaFile::BMediaFile(const media_file_format* mfi, int32 flags)
|
|||||||
status_t
|
status_t
|
||||||
BMediaFile::SetTo(const entry_ref* ref)
|
BMediaFile::SetTo(const entry_ref* ref)
|
||||||
{
|
{
|
||||||
debugger("BMediaFile::SetTo not implemented");
|
CALLED();
|
||||||
return B_OK;
|
|
||||||
|
_UnInit();
|
||||||
|
fDeleteSource = true;
|
||||||
|
_InitReader(new (std::nothrow) BFile(ref, O_RDONLY));
|
||||||
|
|
||||||
|
return fErr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
BMediaFile::SetTo(BDataIO* destination)
|
BMediaFile::SetTo(BDataIO* destination)
|
||||||
{
|
{
|
||||||
debugger("BMediaFile::SetTo not implemented");
|
CALLED();
|
||||||
return B_OK;
|
|
||||||
|
_UnInit();
|
||||||
|
_InitReader(destination);
|
||||||
|
|
||||||
|
return fErr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -95,11 +104,7 @@ BMediaFile::~BMediaFile()
|
|||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
|
|
||||||
ReleaseAllTracks();
|
_UnInit();
|
||||||
delete[] fTrackList;
|
|
||||||
delete fExtractor;
|
|
||||||
if (fDeleteSource)
|
|
||||||
delete fSource;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
void
|
||||||
BMediaFile::_InitReader(BDataIO* source, int32 flags)
|
BMediaFile::_InitReader(BDataIO* source, int32 flags)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user