diff options
-rw-r--r-- | lib/private/preview.php | 2 | ||||
-rw-r--r-- | lib/private/preview/provider.php | 4 | ||||
-rw-r--r-- | lib/private/previewmanager.php | 9 | ||||
-rw-r--r-- | lib/public/preview/iprovider.php | 41 |
4 files changed, 50 insertions, 6 deletions
diff --git a/lib/private/preview.php b/lib/private/preview.php index ced76c14d17..cb3554fa1e9 100644 --- a/lib/private/preview.php +++ b/lib/private/preview.php @@ -509,7 +509,7 @@ class Preview { foreach ($providers as $closure) { $provider = $closure(); - if (!($provider instanceof \OC\Preview\Provider)) { + if (!($provider instanceof \OCP\Preview\IProvider)) { continue; } diff --git a/lib/private/preview/provider.php b/lib/private/preview/provider.php index 34c61307238..bfabc7ad4b3 100644 --- a/lib/private/preview/provider.php +++ b/lib/private/preview/provider.php @@ -1,7 +1,9 @@ <?php namespace OC\Preview; -abstract class Provider { +use OCP\Preview\IProvider; + +abstract class Provider implements IProvider { private $options; public function __construct($options) { diff --git a/lib/private/previewmanager.php b/lib/private/previewmanager.php index fca1000c938..732681c78e7 100644 --- a/lib/private/previewmanager.php +++ b/lib/private/previewmanager.php @@ -8,8 +8,9 @@ */ namespace OC; -use OCP\image; +use OCP\Image; use OCP\IPreview; +use OCP\Preview\IProvider; class PreviewManager implements IPreview { /** @var array */ @@ -29,7 +30,7 @@ class PreviewManager implements IPreview { * In order to improve lazy loading a closure can be registered which will be * called in case preview providers are actually requested * - * $callable has to return an instance of \OC\Preview\Provider + * $callable has to return an instance of \OCP\Preview\IProvider * * @param string $mimeTypeRegex Regex with the mime types that are supported by this provider * @param \Closure $callable @@ -119,11 +120,11 @@ class PreviewManager implements IPreview { if (preg_match($supportedMimeType, $file->getMimetype())) { foreach ($providers as $closure) { $provider = $closure(); - if (!($provider instanceof \OC\Preview\Provider)) { + if (!($provider instanceof IProvider)) { continue; } - /** @var $provider \OC\Preview\Provider */ + /** @var $provider IProvider */ if ($provider->isAvailable($file)) { return true; } diff --git a/lib/public/preview/iprovider.php b/lib/public/preview/iprovider.php new file mode 100644 index 00000000000..96bde3d5a26 --- /dev/null +++ b/lib/public/preview/iprovider.php @@ -0,0 +1,41 @@ +<?php +/** + * ownCloud + * + * @author Joas Schilling + * @copyright 2015 Joas Schilling nickvergessen@owncloud.com + * + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +namespace OCP\Preview; + +interface IProvider { + /** + * @return string Regex with the mimetypes that are supported by this provider + */ + public function getMimeType(); + + /** + * Check if a preview can be generated for $path + * + * @param \OCP\Files\FileInfo $file + * @return bool + */ + public function isAvailable($file); + + /** + * get thumbnail for file at path $path + * + * @param string $path Path of file + * @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image + * @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image + * @param bool $scalingup Disable/Enable upscaling of previews + * @param \OC\Files\View $fileview fileview object of user folder + * @return mixed + * false if no preview was generated + * OC_Image object of the preview + */ + public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview); +} |