]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/src/generic_bitmap.hpp
* scaled_bitmap.cpp: - fixed an infinite loop when width=1
[vlc] / modules / gui / skins2 / src / generic_bitmap.hpp
index e33514be2ac6ece7a49a19a6a6899803ce70f2a9..b5f7736fe01ef37042f027eb9ad316ebc6154937 100644 (file)
@@ -5,7 +5,7 @@
  * $Id$
  *
  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
- *          Olivier Teulière <ipkiss@via.ecp.fr>
+ *          Olivier Teulière <ipkiss@via.ecp.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 #ifndef GENERIC_BITMAP_HPP
 
 #include "skin_common.hpp"
 #include "../utils/pointer.hpp"
+#include "../utils/position.hpp"
 
 
 /// Generic interface for bitmaps
-class GenericBitmap: public SkinObject
+class GenericBitmap: public SkinObject, public Box
 {
     public:
         virtual ~GenericBitmap() {}
 
-        /// Get the width of the bitmap
-        virtual int getWidth() const = 0;
-
-        /// Get the heighth of the bitmap
-        virtual int getHeight() const = 0;
-
         /// Get a linear buffer containing the image data.
         /// Each pixel is stored in 4 bytes in the order B,G,R,A
         virtual uint8_t *getData() const = 0;
 
+        /// Get the number of frames in the bitmap
+        int getNbFrames() const { return m_nbFrames; }
+
+        /// Get the number of frames per second (for animated bitmaps)
+        int getFrameRate() const { return m_frameRate; }
+
     protected:
-        GenericBitmap( intf_thread_t *pIntf ): SkinObject( pIntf ) {}
+        GenericBitmap( intf_thread_t *pIntf, int nbFrames = 1, int fps = 0);
+
+    private:
+        /// Number of frames
+        int m_nbFrames;
+        /// Frame rate
+        int m_frameRate;
 };
 
 
@@ -55,7 +62,8 @@ class BitmapImpl: public GenericBitmap
 {
     public:
         /// Create an empty bitmap of the given size
-        BitmapImpl( intf_thread_t *pIntf, int width, int height );
+        BitmapImpl( intf_thread_t *pIntf, int width, int height,
+                    int nbFrames = 1, int fps = 0 );
         ~BitmapImpl();
 
         /// Get the width of the bitmap