Chris@147: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
Chris@147: 
Chris@147: /*
Chris@147:     Sonic Visualiser
Chris@147:     An audio file viewer and annotation editor.
Chris@147:     Centre for Digital Music, Queen Mary, University of London.
Chris@147:     This file copyright 2006 Chris Cannam.
Chris@147:     
Chris@147:     This program is free software; you can redistribute it and/or
Chris@147:     modify it under the terms of the GNU General Public License as
Chris@147:     published by the Free Software Foundation; either version 2 of the
Chris@147:     License, or (at your option) any later version.  See the file
Chris@147:     COPYING included with this distribution for more information.
Chris@147: */
Chris@147: 
Chris@147: #ifndef _POWER_OF_SQRT_TWO_ZOOM_CONSTRAINT_H_
Chris@147: #define _POWER_OF_SQRT_TWO_ZOOM_CONSTRAINT_H_
Chris@147: 
Chris@147: #include "base/ZoomConstraint.h"
Chris@147: 
Chris@147: class PowerOfSqrtTwoZoomConstraint : virtual public ZoomConstraint
Chris@147: {
Chris@147: public:
Chris@147:     virtual size_t getNearestBlockSize(size_t requestedBlockSize,
Chris@147: 				       RoundingDirection dir = RoundNearest)
Chris@147: 	const;
Chris@147:     
Chris@147:     virtual size_t getNearestBlockSize(size_t requestedBlockSize,
Chris@147: 				       int &type,
Chris@147: 				       int &power,
Chris@147: 				       RoundingDirection dir = RoundNearest)
Chris@147: 	const;
Chris@147: 	
Chris@147:     virtual size_t getMinCachePower() const { return 6; }
Chris@147: };
Chris@147: 
Chris@147: #endif
Chris@147: