M canvas.lv2/canvas.h => canvas.lv2/canvas.h +5 -56
@@ 10,9 10,9 @@
extern "C" {
#endif
-#include <lv2/lv2plug.in/ns/lv2core/lv2.h>
-#include <lv2/lv2plug.in/ns/ext/atom/atom.h>
-#include <lv2/lv2plug.in/ns/ext/atom/forge.h>
+#include <lv2/core/lv2.h>
+#include <lv2/atom/atom.h>
+#include <lv2/atom/forge.h>
#define CANVAS_URI "http://open-music-kontrollers.ch/lv2/canvas"
#define CANVAS_PREFIX CANVAS_URI"#"
@@ 122,59 122,8 @@ struct _LV2_Canvas_URID {
LV2_Atom_Forge forge;
};
-static inline void
-lv2_canvas_urid_init(LV2_Canvas_URID *urid, LV2_URID_Map *map)
-{
- urid->Canvas_graph = map->map(map->handle, CANVAS__graph);
- urid->Canvas_body = map->map(map->handle, CANVAS__body);
- urid->Canvas_aspectRatio = map->map(map->handle, CANVAS__aspectRatio);
-
- urid->Canvas_BeginPath = map->map(map->handle, CANVAS__BeginPath);
- urid->Canvas_ClosePath = map->map(map->handle, CANVAS__ClosePath);
- urid->Canvas_Arc = map->map(map->handle, CANVAS__Arc);
- urid->Canvas_CurveTo = map->map(map->handle, CANVAS__CurveTo);
- urid->Canvas_LineTo = map->map(map->handle, CANVAS__LineTo);
- urid->Canvas_MoveTo = map->map(map->handle, CANVAS__MoveTo);
- urid->Canvas_Rectangle = map->map(map->handle, CANVAS__Rectangle);
- urid->Canvas_PolyLine = map->map(map->handle, CANVAS__PolyLine);
- urid->Canvas_Style = map->map(map->handle, CANVAS__Style);
- urid->Canvas_LineWidth = map->map(map->handle, CANVAS__LineWidth);
- urid->Canvas_LineDash = map->map(map->handle, CANVAS__LineDash);
- urid->Canvas_LineCap = map->map(map->handle, CANVAS__LineCap);
- urid->Canvas_LineJoin = map->map(map->handle, CANVAS__LineJoin);
- urid->Canvas_MiterLimit = map->map(map->handle, CANVAS__MiterLimit);
- urid->Canvas_Stroke = map->map(map->handle, CANVAS__Stroke);
- urid->Canvas_Fill = map->map(map->handle, CANVAS__Fill);
- urid->Canvas_Clip = map->map(map->handle, CANVAS__Clip);
- urid->Canvas_Save = map->map(map->handle, CANVAS__Save);
- urid->Canvas_Restore = map->map(map->handle, CANVAS__Restore);
- urid->Canvas_Translate = map->map(map->handle, CANVAS__Translate);
- urid->Canvas_Scale = map->map(map->handle, CANVAS__Scale);
- urid->Canvas_Rotate = map->map(map->handle, CANVAS__Rotate);
- urid->Canvas_Transform = map->map(map->handle, CANVAS__Transform);
- urid->Canvas_Reset = map->map(map->handle, CANVAS__Reset);
- urid->Canvas_FontSize = map->map(map->handle, CANVAS__FontSize);
- urid->Canvas_FillText = map->map(map->handle, CANVAS__FillText);
-
- urid->Canvas_lineCapButt = map->map(map->handle, CANVAS__lineCapButt);
- urid->Canvas_lineCapRound = map->map(map->handle, CANVAS__lineCapRound);
- urid->Canvas_lineCapSquare = map->map(map->handle, CANVAS__lineCapSquare);
-
- urid->Canvas_lineJoinMiter = map->map(map->handle, CANVAS__lineJoinMiter);
- urid->Canvas_lineJoinRound = map->map(map->handle, CANVAS__lineJoinRound);
- urid->Canvas_lineJoinBevel = map->map(map->handle, CANVAS__lineJoinBevel);
-
- urid->Canvas_mouseButtonLeft = map->map(map->handle, CANVAS__mouseButtonLeft);
- urid->Canvas_mouseButtonMiddle = map->map(map->handle, CANVAS__mouseButtonMiddle);
- urid->Canvas_mouseButtonRight = map->map(map->handle, CANVAS__mouseButtonRight);
- urid->Canvas_mouseWheelX = map->map(map->handle, CANVAS__mouseWheelX);
- urid->Canvas_mouseWheelY = map->map(map->handle, CANVAS__mouseWheelY);
- urid->Canvas_mousePositionX = map->map(map->handle, CANVAS__mousePositionX);
- urid->Canvas_mousePositionY = map->map(map->handle, CANVAS__mousePositionY);
- urid->Canvas_mouseFocus = map->map(map->handle, CANVAS__mouseFocus);
-
- lv2_atom_forge_init(&urid->forge, map);
-}
+int
+lv2_canvas_urid_init(LV2_Canvas_URID *urid, LV2_URID_Map *map);
#ifdef __cplusplus
}
M canvas.lv2/lv2_extensions.h => canvas.lv2/lv2_extensions.h +0 -15
@@ 1,19 1,4 @@
/*
- Copyright 2016 Robin Gareus <robin@gareus.org>
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-/*
* SPDX-FileCopyrightText: Robin Gareus <robin@gareus.org>
* SPDX-License-Identifier: ISC
*/
M src/canvas.c => src/canvas.c +59 -2
@@ 3,8 3,65 @@
* SPDX-License-Identifier: Artistic-2.0
*/
-void
-foo(void)
+#include <canvas.lv2/canvas.h>
+
+int
+lv2_canvas_urid_init(LV2_Canvas_URID *urid, LV2_URID_Map *map)
{
+ if (!urid || !map || !map->map)
+ {
+ return 1;
+ }
+
+ urid->Canvas_graph = map->map(map->handle, CANVAS__graph);
+ urid->Canvas_body = map->map(map->handle, CANVAS__body);
+ urid->Canvas_aspectRatio = map->map(map->handle, CANVAS__aspectRatio);
+
+ urid->Canvas_BeginPath = map->map(map->handle, CANVAS__BeginPath);
+ urid->Canvas_ClosePath = map->map(map->handle, CANVAS__ClosePath);
+ urid->Canvas_Arc = map->map(map->handle, CANVAS__Arc);
+ urid->Canvas_CurveTo = map->map(map->handle, CANVAS__CurveTo);
+ urid->Canvas_LineTo = map->map(map->handle, CANVAS__LineTo);
+ urid->Canvas_MoveTo = map->map(map->handle, CANVAS__MoveTo);
+ urid->Canvas_Rectangle = map->map(map->handle, CANVAS__Rectangle);
+ urid->Canvas_PolyLine = map->map(map->handle, CANVAS__PolyLine);
+ urid->Canvas_Style = map->map(map->handle, CANVAS__Style);
+ urid->Canvas_LineWidth = map->map(map->handle, CANVAS__LineWidth);
+ urid->Canvas_LineDash = map->map(map->handle, CANVAS__LineDash);
+ urid->Canvas_LineCap = map->map(map->handle, CANVAS__LineCap);
+ urid->Canvas_LineJoin = map->map(map->handle, CANVAS__LineJoin);
+ urid->Canvas_MiterLimit = map->map(map->handle, CANVAS__MiterLimit);
+ urid->Canvas_Stroke = map->map(map->handle, CANVAS__Stroke);
+ urid->Canvas_Fill = map->map(map->handle, CANVAS__Fill);
+ urid->Canvas_Clip = map->map(map->handle, CANVAS__Clip);
+ urid->Canvas_Save = map->map(map->handle, CANVAS__Save);
+ urid->Canvas_Restore = map->map(map->handle, CANVAS__Restore);
+ urid->Canvas_Translate = map->map(map->handle, CANVAS__Translate);
+ urid->Canvas_Scale = map->map(map->handle, CANVAS__Scale);
+ urid->Canvas_Rotate = map->map(map->handle, CANVAS__Rotate);
+ urid->Canvas_Transform = map->map(map->handle, CANVAS__Transform);
+ urid->Canvas_Reset = map->map(map->handle, CANVAS__Reset);
+ urid->Canvas_FontSize = map->map(map->handle, CANVAS__FontSize);
+ urid->Canvas_FillText = map->map(map->handle, CANVAS__FillText);
+
+ urid->Canvas_lineCapButt = map->map(map->handle, CANVAS__lineCapButt);
+ urid->Canvas_lineCapRound = map->map(map->handle, CANVAS__lineCapRound);
+ urid->Canvas_lineCapSquare = map->map(map->handle, CANVAS__lineCapSquare);
+
+ urid->Canvas_lineJoinMiter = map->map(map->handle, CANVAS__lineJoinMiter);
+ urid->Canvas_lineJoinRound = map->map(map->handle, CANVAS__lineJoinRound);
+ urid->Canvas_lineJoinBevel = map->map(map->handle, CANVAS__lineJoinBevel);
+
+ urid->Canvas_mouseButtonLeft = map->map(map->handle, CANVAS__mouseButtonLeft);
+ urid->Canvas_mouseButtonMiddle = map->map(map->handle, CANVAS__mouseButtonMiddle);
+ urid->Canvas_mouseButtonRight = map->map(map->handle, CANVAS__mouseButtonRight);
+ urid->Canvas_mouseWheelX = map->map(map->handle, CANVAS__mouseWheelX);
+ urid->Canvas_mouseWheelY = map->map(map->handle, CANVAS__mouseWheelY);
+ urid->Canvas_mousePositionX = map->map(map->handle, CANVAS__mousePositionX);
+ urid->Canvas_mousePositionY = map->map(map->handle, CANVAS__mousePositionY);
+ urid->Canvas_mouseFocus = map->map(map->handle, CANVAS__mouseFocus);
+
+ lv2_atom_forge_init(&urid->forge, map);
+ return 0;
}
M test/canvas.c => test/canvas.c +20 -3
@@ 3,11 3,28 @@
* SPDX-License-Identifier: Artistic-2.0
*/
+#include <assert.h>
+
+#include <canvas.lv2/canvas.h>
+
+void
+test_canvas_urid_init()
+{
+ static LV2_Canvas_URID urid;
+ static LV2_URID_Map map;
+
+ assert(lv2_canvas_urid_init(NULL, NULL) == 1);
+ assert(lv2_canvas_urid_init(&urid, NULL) == 1);
+ assert(lv2_canvas_urid_init(NULL, &map) == 1);
+ assert(lv2_canvas_urid_init(&urid, &map) == 1);
+
+ //FIXME do some real tests
+}
+
int
-main(int argc, char **argv)
+main(int argc __attribute__((unused)), char **argv __attribute__((unused)))
{
- (void)argc;
- (void)argv;
+ test_canvas_urid_init();
return 0;
}