diff options
Diffstat (limited to 'debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h')
-rw-r--r-- | debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h b/debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h deleted file mode 100644 index 26d57b8d..00000000 --- a/debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h +++ /dev/null @@ -1,205 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// 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 -// http://www.mozilla.org/MPL/ -// -// 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, kona8lend@@gmail.com -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef MP4V2_UTIL_UTILITY_H -#define MP4V2_UTIL_UTILITY_H - -namespace mp4v2 { namespace util { - -/////////////////////////////////////////////////////////////////////////////// -/// -/// Utility general program class. -/// -/// This class provides a base implementation for a general utility which -/// helps meet behavioral criteria for command-line executables. -/// -/// Inherit batch processing ability is also provided and is used optionally -/// by the concrete implementation. -/// -/// Criteria and guidelines for utility behavior in MP4v2 are as follows: -/// @li exit with 0 when the utility succeeds at its main task, 1 for failure. -/// @li print brief-usage when no arguments are supplied and exit with 1. -/// @li print brief-usage when too many arguments are supplied and exit with 1. -/// @li issue brief-usage when invalid argument is supplied and exit with 1. -/// @li support --help option and exit with 0. -/// @li support --version option and exit with 0. -/// @li utilities which <b>create</b> new output files should never -/// over-write an existing file unless given the project's universal -/// '-o' or '--overwrite' option. -/// -/////////////////////////////////////////////////////////////////////////////// -class MP4V2_EXPORT Utility -{ -protected: - enum LongCode { - LC_NONE = 0xf0000000, // safe (cannot conflict with char values) - LC_DEBUG, - LC_VERBOSE, - LC_HELP, - LC_VERSION, - LC_VERSIONX, - _LC_MAX // will be used to seeed derived-class long-codes enum - }; - - class MP4V2_EXPORT Option { - public: - Option( char, bool, string, bool, uint32_t, string, string = "ARG", string = "", bool = false ); - - const char scode; - const bool shasarg; - const string lname; - const bool lhasarg; - const uint32_t lcode; - const string descr; - const string argname; - const string help; - const bool hidden; - }; - - class MP4V2_EXPORT Group { - public: - explicit Group( string ); - ~Group(); - - void add( const Option& ); // options added this way will not be deleted - void add( char, bool, string, bool, uint32_t, string, string = "ARG", string = "", bool = false ); - void add( string, bool, uint32_t, string, string = "ARG", string = "", bool = false ); - - const string name; - - public: - typedef list<const Option*> List; - - private: - List _options; - List _optionsDelete; - - public: - const List& options; - }; - - //! structure passed as argument to each job during batch processing - class MP4V2_EXPORT JobContext - { - public: - JobContext( string file_ ); - - const string file; //!< file job is working on - MP4FileHandle fileHandle; //!< handle of file, if applicable to job - bool optimizeApplicable; //!< indicate file optimization is applicable - list<void*> tofree; //!< memory to free at end of job - }; - -public: - virtual ~Utility(); - - bool process(); - -protected: - Utility( string, int, char** ); - - void printUsage ( bool ); //!< print usage - void printHelp ( bool, bool ); //!< print help - void printVersion ( bool ); //!< print utility version - - void errf ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); //!< print to stderr - void outf ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); //!< print to stdout - - bool herrf ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); //!< print to stderr indicating error - bool hwarnf ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); //!< print to stderr indicating warning - - void verbose1f ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); - void verbose2f ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); - void verbose3f ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); - - bool batch ( int ); //!< process all remaining arguments (jobs) - bool job ( string ); //!< process next argument - - //! open file in consideration of overwrite/force options - bool openFileForWriting( io::File& ); - - bool dryrunAbort(); - - // delegates - virtual bool utility_option( int, bool& ) = 0; //!< process command-line option - virtual bool utility_job( JobContext& ) = 0; //!< process positional argument - -private: - void formatGroups(); - void debugUpdate( uint32_t ); - void verbose( uint32_t, const char*, va_list ); - bool process_impl(); - -private: - string _help; - - prog::Option* _longOptions; - string _shortOptions; - -protected: - const string _name; //!< executable basename - const int _argc; //!< arg count - char* const* const _argv; //!< arg vector - - // common options state - bool _optimize; //!< optimize mp4 file after modification - bool _dryrun; //!< dry-run, no writing is actually performed - bool _keepgoing; //!< contine batch processing even after error - bool _overwrite; //!< overwrite file if already exists - bool _force; //!< force overwriting a file even if read-only - uint32_t _debug; //!< mp4 file I/O verbosity - uint32_t _verbosity; //!< verbosity level, default=1 - - uint32_t _jobCount; - uint32_t _jobTotal; - bool _debugImplicits; - - Group _group; // group to which standard options are added - string _usage; - string _description; - list<Group*> _groups; - -protected: - // standard options for concrete utilities to add to _group in constructor - const Option STD_OPTIMIZE; - const Option STD_DRYRUN; - const Option STD_KEEPGOING; - const Option STD_OVERWRITE; - const Option STD_FORCE; - const Option STD_QUIET; - const Option STD_DEBUG; - const Option STD_VERBOSE; - const Option STD_HELP; - const Option STD_VERSION; - const Option STD_VERSIONX; - -public: - static const bool SUCCESS; - static const bool FAILURE; -}; - -/////////////////////////////////////////////////////////////////////////////// - -}} // namespace mp4v2::util - -#endif // MP4V2_UTIL_UTILITY_H |