libcm is a C development framework with an emphasis on audio signal processing applications.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef cmSvgWriter_h
  2. #define cmSvgWriter_h
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. enum
  7. {
  8. kOkSvgRC = cmOkRC,
  9. kFileFailSvgRC,
  10. kPrintFailSvgRC,
  11. kLHeapFailSvgRC
  12. };
  13. typedef cmRC_t cmSvgRC_t;
  14. typedef cmHandle_t cmSvgH_t;
  15. extern cmSvgH_t cmSvgNullHandle;
  16. cmSvgRC_t cmSvgWriterAlloc( cmCtx_t* ctx, cmSvgH_t* hp );
  17. cmSvgRC_t cmSvgWriterFree( cmSvgH_t* hp );
  18. bool cmSvgWriterIsValid( cmSvgH_t h );
  19. cmSvgRC_t cmSvgWriterRect( cmSvgH_t h, double x, double y, double ww, double hh, const cmChar_t* cssClassLabel );
  20. cmSvgRC_t cmSvgWriterLine( cmSvgH_t h, double x0, double y0, double x1, double y1, const cmChar_t* cssClassLabel );
  21. cmSvgRC_t cmSvgWriterText( cmSvgH_t h, double x, double y, const cmChar_t* text, const cmChar_t* cssClassLabel );
  22. // Write the SVG file. Note that header on this file references the CSS file 'cssFn'
  23. // and the Javascript file svg-pan-zoom.min.js from https://github.com/ariutta/svg-pan-zoom.
  24. // Both the CSS file and svg-pan-zoom.min.js should therefore be in the same directory
  25. // as the output HTML file.
  26. cmSvgRC_t cmSvgWriterWrite( cmSvgH_t h, const cmChar_t* cssFn, const cmChar_t* outFn );
  27. #ifdef __cplusplus
  28. }
  29. #endif
  30. #endif