blob: 798a061f1d2b8cec9bbe0e8c1e63e3f758d5dc61 [file] [log] [blame]
// The contents of this file are subject to the Mozilla Public License
// Version 1.1 (the "License"); you may not use this file except in
// compliance with the License. You may obtain a copy of the License at
// Software distributed under the License is distributed on an "AS IS"
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
// License for the specific language governing rights and limitations
// under the License.
// The Original Code is MP4v2.
// The Initial Developer of the Original Code is Kona Blend.
// Portions created by Kona Blend are Copyright (C) 2008.
// All Rights Reserved.
// Contributors:
// Kona Blend,
namespace mp4v2 { namespace util {
class MP4V2_EXPORT TrackModifier
class Properties
TrackModifier& _trackModifier;
Properties( TrackModifier& );
void update();
MP4Integer24Property& flags;
MP4Integer16Property& layer;
MP4Integer16Property& alternateGroup;
MP4Float32Property& volume;
MP4Float32Property& width;
MP4Float32Property& height;
MP4LanguageCodeProperty& language;
MP4StringProperty& handlerType;
MP4StringProperty& handlerName;
MP4BytesProperty* userDataName;
MP4Property& refProperty( const char* );
MP4Property* findProperty( const char* );
void updateProperty( const char*, MP4Property** );
friend class Properties;
static MP4Atom& refTrackAtom( MP4File&, uint16_t );
MP4Atom& _track;
Properties _props;
// Track Header
bool _enabled;
bool _inMovie;
bool _inPreview;
uint16_t _layer;
uint16_t _alternateGroup;
float _volume;
float _width;
float _height;
// Media Header
bmff::LanguageCode _language;
// Handler Reference
string _handlerType;
string _handlerName;
// User Data name
string _userDataName;
MP4File& file;
const uint16_t trackIndex;
const MP4TrackId trackId;
const bool& enabled;
const bool& inMovie;
const bool& inPreview;
const uint16_t& layer;
const uint16_t& alternateGroup;
const float& volume;
const float& width;
const float& height;
const bmff::LanguageCode& language;
const string& handlerType;
const string& handlerName;
const string& userDataName;
TrackModifier( MP4FileHandle, uint16_t );
void setEnabled ( bool );
void setInMovie ( bool );
void setInPreview ( bool );
void setLayer ( uint16_t );
void setAlternateGroup ( uint16_t );
void setVolume ( float );
void setWidth ( float );
void setHeight ( float );
void setLanguage ( bmff::LanguageCode );
void setHandlerName ( const string& );
void setUserDataName ( const string& );
// set by string
void setEnabled ( const string& );
void setInMovie ( const string& );
void setInPreview ( const string& );
void setLayer ( const string& );
void setAlternateGroup ( const string& );
void setVolume ( const string& );
void setWidth ( const string& );
void setHeight ( const string& );
void setLanguage ( const string& );
bool hasUserDataName() const;
void removeUserDataName();
void dump( ostream&, const string& );
void fetch();
static string toString( bool );
static string toString( float, uint8_t, uint8_t );
static bool& fromString( const string&, bool& );
static float& fromString( const string&, float& );
static uint16_t& fromString( const string&, uint16_t& );
static string toStringTrackType( const string& );
}} // namespace mp4v2::util