// public members
////////////////////////////////////////////////////////////////////////////////
-Opus::File::File(FileName file, bool readProperties,
- Properties::ReadStyle propertiesStyle) : Ogg::File(file)
+Opus::File::File(FileName file, bool readProperties, Properties::ReadStyle propertiesStyle)
+ : Ogg::File(file)
+ , d(new FilePrivate())
{
- d = new FilePrivate;
- read(readProperties, propertiesStyle);
+ if(isOpen())
+ read(readProperties, propertiesStyle);
}
-Opus::File::File(IOStream *stream, bool readProperties,
- Properties::ReadStyle propertiesStyle) : Ogg::File(stream)
+Opus::File::File(IOStream *stream, bool readProperties, Properties::ReadStyle propertiesStyle)
+ : Ogg::File(stream)
+ , d(new FilePrivate())
{
- d = new FilePrivate;
- read(readProperties, propertiesStyle);
+ if(isOpen())
+ read(readProperties, propertiesStyle);
}
Opus::File::~File()