aboutsummaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2018-03-10 17:44:47 +0100
committerJavier <dev.git@javispedro.com>2018-03-10 17:45:40 +0100
commit037e989c3e618bef8120ba2df3a22abc57f9eaf8 (patch)
tree9a62b0972c65008199e2fffdaa32b5774211a0a9 /file.c
parent07dd3830af6c920ac51958df3b688b2c9830fa00 (diff)
downloadrodisc-037e989c3e618bef8120ba2df3a22abc57f9eaf8.tar.gz
rodisc-037e989c3e618bef8120ba2df3a22abc57f9eaf8.zip
drop udisks dependency (instead use gio volume monitor)
Diffstat (limited to 'file.c')
-rw-r--r--file.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/file.c b/file.c
new file mode 100644
index 0000000..dc2d14d
--- /dev/null
+++ b/file.c
@@ -0,0 +1,23 @@
+#include "rodisc.h"
+
+void file_add_disc(const char *path)
+{
+ static int num = 0;
+ GFile *file = g_file_new_for_path(path);
+ GFileInfo *info = g_file_query_info(file,
+ G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME ","
+ G_FILE_ATTRIBUTE_STANDARD_SIZE,
+ G_FILE_QUERY_INFO_NONE, NULL, NULL);
+ g_return_if_fail(info);
+ const int my_num = ++num;
+ RODisc *disc = rodisc_new();
+ disc->id = g_strdup_printf("file%d", my_num);
+ disc->uri = g_strdup_printf("/file%d", my_num);
+ disc->file_path = g_file_get_path(file);
+ disc->file = file;
+ disc->label = g_strdup(g_file_info_get_display_name(info));
+ disc->type = RODISC_TYPE_GENERIC;
+ disc->size = g_file_info_get_size(info);
+ rodisc_export(disc);
+ g_object_unref(info);
+}