]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add an interface for the preview providers
authorJoas Schilling <nickvergessen@owncloud.com>
Thu, 12 Mar 2015 10:59:45 +0000 (11:59 +0100)
committerJoas Schilling <nickvergessen@owncloud.com>
Mon, 16 Mar 2015 11:44:11 +0000 (12:44 +0100)
lib/private/preview.php
lib/private/preview/provider.php
lib/private/previewmanager.php
lib/public/preview/iprovider.php [new file with mode: 0644]

index ced76c14d176f6ddf5b92f956817a5e2e444be74..cb3554fa1e97ec37c9b25fa2fd43de79c8850593 100644 (file)
@@ -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;
                                        }
 
index 34c61307238f4c9204d7263c3b86666600469398..bfabc7ad4b3b71397f1997c0c518b253ca9e55f9 100644 (file)
@@ -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) {
index fca1000c938685d80f3495503f8b901f505b0a57..732681c78e7e47469ba19121e8dabb20f891c7d4 100644 (file)
@@ -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 (file)
index 0000000..96bde3d
--- /dev/null
@@ -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);
+}