main.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "main.h"
  4. const char* viewer_name(void) {
  5. return "Flyfish Viewer";
  6. }
  7. const char* preview_extension(const char* filename) {
  8. const char* dot = strrchr(filename, '.');
  9. return dot == NULL ? "" : dot + 1;
  10. }
  11. preview_file_t preview_plan_create(const char* filename, size_t size) {
  12. const char* extension = preview_extension(filename);
  13. const char* renderer = "fallback";
  14. if (strcmp(extension, "pdf") == 0) renderer = "pdfjs-dist";
  15. if (strcmp(extension, "ofd") == 0) renderer = "DLTech21/ofd.js";
  16. if (strcmp(extension, "dxf") == 0) renderer = "@flyfish-dev/cad-viewer";
  17. if (strcmp(extension, "dwg") == 0) renderer = "@flyfish-dev/cad-viewer";
  18. if (strcmp(extension, "dwf") == 0) renderer = "@flyfish-dev/cad-viewer";
  19. if (strcmp(extension, "dwfx") == 0) renderer = "@flyfish-dev/cad-viewer";
  20. if (strcmp(extension, "xps") == 0) renderer = "@flyfish-dev/cad-viewer";
  21. if (strcmp(extension, "c") == 0) renderer = "highlight.js";
  22. preview_file_t file = { filename, renderer, size, PREVIEW_IDLE };
  23. return file;
  24. }
  25. int preview_requires_async(preview_file_t file) {
  26. return strcmp(file.renderer, "fallback") != 0;
  27. }
  28. int main(void) {
  29. preview_file_t file = preview_plan_create("house.dwfx", 32768);
  30. printf("%s uses %s async=%d\n", file.name, file.renderer, preview_requires_async(file));
  31. return 0;
  32. }