[shotwell/wip/phako/external-gstreamer: 2/5] wip: Create meta-data sublibrary



commit 59d2e97a755507f93a544e9131dffb04807cf2ec
Author: Jens Georg <mail jensge org>
Date:   Tue May 7 22:19:22 2019 +0200

    wip: Create meta-data sublibrary

 src/meson.build                                    |  3 +-
 src/metadata/MediaMetadata.vala                    | 17 ++++++++++
 .../MetadataDateTime.vala}                         | 38 ----------------------
 src/metadata/MetadataRational.vala                 | 23 +++++++++++++
 src/metadata/meson.build                           | 16 +++++++++
 src/util/file.vala                                 | 14 --------
 6 files changed, 58 insertions(+), 53 deletions(-)
---
diff --git a/src/meson.build b/src/meson.build
index 5443c4f0..02943fa1 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -44,6 +44,7 @@ if unity_available
     shotwell_deps += [unity]
 endif
 
+subdir('metadata')
 subdir('publishing')
 
 executable(
@@ -222,7 +223,6 @@ executable(
         'MediaDataRepresentation.vala',
         'DesktopIntegration.vala',
         'MediaInterfaces.vala',
-        'MediaMetadata.vala',
         'VideoMetadata.vala',
         'MediaMonitor.vala',
         'PhotoMonitor.vala',
@@ -272,6 +272,7 @@ executable(
     dependencies : [
         shotwell_deps,
         sw_publishing_gui
+        metadata
     ],
     vala_args : [
         '--pkg', 'libgphoto2',
diff --git a/src/metadata/MediaMetadata.vala b/src/metadata/MediaMetadata.vala
new file mode 100644
index 00000000..46c9e97a
--- /dev/null
+++ b/src/metadata/MediaMetadata.vala
@@ -0,0 +1,17 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later).  See the COPYING file in this distribution.
+ */
+
+public abstract class MediaMetadata {
+    public abstract void read_from_file(File file) throws Error;
+    
+    public abstract MetadataDateTime? get_creation_date_time();
+    
+    public abstract string? get_title();
+
+    public abstract string? get_comment();
+}
+
+
diff --git a/src/MediaMetadata.vala b/src/metadata/MetadataDateTime.vala
similarity index 71%
rename from src/MediaMetadata.vala
rename to src/metadata/MetadataDateTime.vala
index b2ba1b77..d984b98e 100644
--- a/src/MediaMetadata.vala
+++ b/src/metadata/MetadataDateTime.vala
@@ -1,41 +1,3 @@
-/* Copyright 2016 Software Freedom Conservancy Inc.
- *
- * This software is licensed under the GNU Lesser General Public License
- * (version 2.1 or later).  See the COPYING file in this distribution.
- */
-
-public abstract class MediaMetadata {
-    public abstract void read_from_file(File file) throws Error;
-    
-    public abstract MetadataDateTime? get_creation_date_time();
-    
-    public abstract string? get_title();
-
-    public abstract string? get_comment();
-}
-
-public struct MetadataRational {
-    public int numerator;
-    public int denominator;
-    
-    public MetadataRational(int numerator, int denominator) {
-        this.numerator = numerator;
-        this.denominator = denominator;
-    }
-    
-    private bool is_component_valid(int component) {
-        return (component >= 0) && (component <= 1000000);
-    }
-    
-    public bool is_valid() {
-        return (is_component_valid(numerator) && is_component_valid(denominator));
-    }
-    
-    public string to_string() {
-        return (is_valid()) ? ("%d/%d".printf(numerator, denominator)) : "";
-    }
-}
-
 public errordomain MetadataDateTimeError {
     INVALID_FORMAT,
     UNSUPPORTED_FORMAT
diff --git a/src/metadata/MetadataRational.vala b/src/metadata/MetadataRational.vala
new file mode 100644
index 00000000..39ae021a
--- /dev/null
+++ b/src/metadata/MetadataRational.vala
@@ -0,0 +1,23 @@
+public struct MetadataRational {
+    public int numerator;
+    public int denominator;
+    
+    public MetadataRational(int numerator, int denominator) {
+        this.numerator = numerator;
+        this.denominator = denominator;
+    }
+    
+    private bool is_component_valid(int component) {
+        return (component >= 0) && (component <= 1000000);
+    }
+    
+    public bool is_valid() {
+        return (is_component_valid(numerator) && is_component_valid(denominator));
+    }
+    
+    public string to_string() {
+        return (is_valid()) ? ("%d/%d".printf(numerator, denominator)) : "";
+    }
+}
+
+
diff --git a/src/metadata/meson.build b/src/metadata/meson.build
new file mode 100644
index 00000000..7f322caa
--- /dev/null
+++ b/src/metadata/meson.build
@@ -0,0 +1,16 @@
+libmetadata = static_library(
+    'metadata',
+    [
+        'MediaMetadata.vala',
+        'MetadataDateTime.vala',
+        'MetadataRational.vala'
+    ],
+    dependencies : [
+        gio
+    ]
+)
+
+metadata = declare_dependency(
+    include_directories : include_directories('.'),
+    link_with : libmetadata
+)
diff --git a/src/util/file.vala b/src/util/file.vala
index 32b77620..c6609d4c 100644
--- a/src/util/file.vala
+++ b/src/util/file.vala
@@ -199,20 +199,6 @@ public string? get_file_info_id(FileInfo info) {
     return info.get_attribute_string(FileAttribute.ID_FILE);
 }
 
-// Breaks a uint64 skip amount into several smaller skips.
-public void skip_uint64(InputStream input, uint64 skip_amount) throws GLib.Error {
-    while (skip_amount > 0) {
-        // skip() throws an error if the amount is too large, so check against ssize_t.MAX
-        if (skip_amount >= ssize_t.MAX) {
-            input.skip(ssize_t.MAX);
-            skip_amount -= ssize_t.MAX;
-        } else {
-            input.skip((size_t) skip_amount);
-            skip_amount = 0;
-        }
-    }
-}
-
 // Returns the number of files (and/or directories) within a directory.
 public uint64 count_files_in_directory(File dir) throws GLib.Error {
     if (!query_is_directory(dir))


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]