1 #ifndef __KRY_MARKER_H__
2 #define __KRY_MARKER_H__
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif /* __cplusplus */
7 
8 
9 #define KRY_TYPE_MARKER                  (kry_marker_get_type ())
10 #define KRY_MARKER(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), KRY_TYPE_MARKER, KryMarker))
11 #define KRY_MARKER_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), KRY_TYPE_MARKER, KryMarkerClass))
12 #define KRY_IS_MARKER(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KRY_TYPE_MARKER))
13 #define KRY_IS_MARKER_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), KRY_TYPE_MARKER))
14 #define KRY_MARKER_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), KRY_TYPE_MARKER, KryMarkerClass))
15 
16 
17 enum marker_type
18 {
19   MARKER_NONE,
20   MARKER_START,
21   MARKER_CURRENT,
22   MARKER_END,
23   MARKER_KARAOKE
24 };
25 
26 typedef struct _KryMarker	    KryMarker;
27 typedef struct _KryMarkerClass  KryMarkerClass;
28 
29 struct _KryMarker
30 {
31   GObject parent_instance;
32 
33   gboolean userAction;
34   gboolean isSet;
35   long value;
36   long value_prev;
37   int  multiple;
38   enum marker_type type;
39 };
40 
41 struct _KryMarkerClass
42 {
43   GObjectClass parent_class;
44 
45   void (* value_changed) (KryMarker *marker);
46 };
47 
48 
49 GType	   kry_marker_get_type		(void) G_GNUC_CONST;
50 GObject* kry_marker_new (enum marker_type type2, int multiple);
51 void kry_marker_changed		(KryMarker *marker);
52 void kry_marker_value_changed		(KryMarker *marker, int old_val);
53 long kry_marker_get_value		(KryMarker *marker);
54 void kry_marker_set_value		(KryMarker	 *marker, long value);
55 void kry_marker_set_multiple(KryMarker *marker, int multiple);
56 enum marker_type kry_marker_get_marker_type(KryMarker *marker);
57 GObject *kry_marker_copy(KryMarker *marker);
58 
59 #ifdef __cplusplus
60 }
61 #endif /* __cplusplus */
62 
63 
64 #endif /* __KRY_MARKER_H__ */
65