1 /***************************************************************************** 2 * time.hpp 3 ***************************************************************************** 4 * Copyright (C) 2003 the VideoLAN team 5 * $Id: 7a85703f8650e5f4ec39055df5cb7754d791d06e $ 6 * 7 * Authors: Cyril Deguet <asmax@via.ecp.fr> 8 * Olivier Teulière <ipkiss@via.ecp.fr> 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License as published by 12 * the Free Software Foundation; either version 2 of the License, or 13 * (at your option) any later version. 14 * 15 * This program is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU General Public License for more details. 19 * 20 * You should have received a copy of the GNU General Public License along 21 * with this program; if not, write to the Free Software Foundation, Inc., 22 * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 23 *****************************************************************************/ 24 25 #ifndef TIME_HPP 26 #define TIME_HPP 27 28 #include "../utils/var_percent.hpp" 29 #include <string> 30 31 /// Variable for VLC stream time 32 class StreamTime: public VarPercent 33 { 34 public: StreamTime(intf_thread_t * pIntf)35 StreamTime( intf_thread_t *pIntf ): VarPercent( pIntf ) { } ~StreamTime()36 virtual ~StreamTime() { } 37 38 virtual void set( float percentage, bool updateVLC ); 39 set(float percentage)40 virtual void set( float percentage ) { set( percentage, true ); } 41 42 /// Return a string containing a value from 0 to 100 43 virtual std::string getAsStringPercent() const; 44 /// Return the current time formatted as a time display (h:mm:ss) 45 virtual std::string getAsStringCurrTime( bool bShortFormat = false ) const; 46 /// Return the time left formatted as a time display (h:mm:ss) 47 virtual std::string getAsStringTimeLeft( bool bShortFormat = false ) const; 48 /// Return the duration formatted as a time display (h:mm:ss) 49 virtual std::string getAsStringDuration( bool bShortFormat = false ) const; 50 51 private: 52 /// Convert a number of seconds into "h:mm:ss" format 53 std::string formatTime( int seconds, bool bShortFormat ) const; 54 /// Return true when there is a non-null input and its position is not 0.0. 55 bool havePosition() const; 56 }; 57 58 #endif 59