1/* gstreamermm - a C++ wrapper for gstreamer 2 * 3 * Copyright 2008-2016 The gstreamermm Development Team 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the Free 17 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18 */ 19 20#include <gst/video/navigation.h> 21#include <glibmm/interface.h> 22 23_DEFS(gstreamermm,gst) 24 25namespace Gst 26{ 27 28_WRAP_ENUM(NavigationCommand, GstNavigationCommand) 29_WRAP_ENUM(NavigationEventType, GstNavigationEventType) 30_WRAP_ENUM(NavigationMessageType, GstNavigationMessageType) 31_WRAP_ENUM(NavigationQueryType, GstNavigationQueryType) 32 33class Structure; 34 35/** An interface for elements that provide navigation functionality. 36 * @ingroup GstInterfaces 37 * 38 * Last reviewed on 2016-06-06 (1.8.0) 39 */ 40class Navigation : public Glib::Interface 41{ 42 _CLASS_INTERFACE(Navigation, GstNavigation, GST_NAVIGATION, GstNavigationInterface) 43 44public: 45 _WRAP_METHOD(void send_event(Gst::Structure& structure), gst_navigation_send_event) 46 _WRAP_METHOD(void send_key_event(const Glib::ustring& event, const Glib::ustring& key), gst_navigation_send_key_event) 47 _WRAP_METHOD(void send_mouse_event(const Glib::ustring& event, int button, double x, double y), gst_navigation_send_mouse_event) 48 _WRAP_METHOD(void send_command(Gst::NavigationCommand command), gst_navigation_send_command) 49 50 51 /** Called when an event has been sent to the Gst::Navigation. 52 */ 53 virtual void send_event_vfunc(Gst::Structure&& structure); 54 55protected: 56#m4begin 57 _PUSH(SECTION_PCC_CLASS_INIT_VFUNCS) 58 klass->send_event = &send_event_vfunc_callback; 59 _SECTION(SECTION_PH_VFUNCS) 60 static void send_event_vfunc_callback(GstNavigation* self, GstStructure* structure); 61 _POP() 62#m4end 63}; 64 65} // namespace Gst 66