AgsMainLoop

AgsMainLoop — main loop interface

Stability Level

Stable, unless otherwise indicated

Functions

Signals

Types and Values

Object Hierarchy

    GInterface
    ╰── AgsMainLoop

Known Implementations

AgsMainLoop is implemented by AgsGenericMainLoop.

Includes

#include <ags/object/ags_main_loop.h>

Description

The AgsMainLoop interface gives you a unique access to the main loop.

Functions

ags_main_loop_get_tree_lock ()

GRecMutex *
ags_main_loop_get_tree_lock (AgsMainLoop *main_loop);

Retrieve the tree mutex.

Parameters

main_loop

the AgsMainLoop

 

Returns

the mutex.

[transfer none]

Since: 3.0.0


ags_main_loop_set_syncing ()

void
ags_main_loop_set_syncing (AgsMainLoop *main_loop,
                           gboolean is_syncing);

Set thread tree is syncing.

Parameters

main_loop

the AgsMainLoop

 

is_syncing

set TRUE if syncing

 

Since: 3.0.0


ags_main_loop_is_syncing ()

gboolean
ags_main_loop_is_syncing (AgsMainLoop *main_loop);

Check if thread tree is syncing.

Parameters

main_loop

the AgsMainLoop

 

Returns

TRUE if sync in progress, otherwise FALSE

Since: 3.0.0


ags_main_loop_set_critical_region ()

void
ags_main_loop_set_critical_region (AgsMainLoop *main_loop,
                                   gboolean is_critical_region);

Set main loop is in critical region.

Parameters

main_loop

the AgsMainLoop

 

is_critical_region

set TRUE if critical region

 

Since: 3.0.0


ags_main_loop_is_critical_region ()

gboolean
ags_main_loop_is_critical_region (AgsMainLoop *main_loop);

Check if main loop is in critical region.

Parameters

main_loop

the AgsMainLoop

 

Returns

TRUE if sync in progress, otherwise FALSE

Since: 3.0.0


ags_main_loop_inc_queued_critical_region ()

void
ags_main_loop_inc_queued_critical_region
                               (AgsMainLoop *main_loop);

Increment thread needs access to main loop's critical region field.

Parameters

main_loop

the AgsMainLoop

 

Since: 3.0.0


ags_main_loop_dec_queued_critical_region ()

void
ags_main_loop_dec_queued_critical_region
                               (AgsMainLoop *main_loop);

Decrement thread needs access to main loop's critical region field.

Parameters

main_loop

the AgsMainLoop

 

Since: 3.0.0


ags_main_loop_test_queued_critical_region ()

guint
ags_main_loop_test_queued_critical_region
                               (AgsMainLoop *main_loop);

Test main loop may enter critical region.

Parameters

main_loop

the AgsMainLoop

 

Returns

0 if main loop may enter critical region, otherwise not

Since: 3.0.0


ags_main_loop_change_frequency ()

void
ags_main_loop_change_frequency (AgsMainLoop *main_loop,
                                gdouble frequency);

Change frequency.

Parameters

main_loop

the AgsMainLoop

 

frequency

the new frequency

 

Since: 3.0.0


AGS_IS_MAIN_LOOP()

#define AGS_IS_MAIN_LOOP(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE((obj), AGS_TYPE_MAIN_LOOP))

AGS_IS_MAIN_LOOP_INTERFACE()

#define AGS_IS_MAIN_LOOP_INTERFACE(vtable)    (G_TYPE_CHECK_CLASS_TYPE((vtable), AGS_TYPE_MAIN_LOOP))

AGS_MAIN_LOOP()

#define AGS_MAIN_LOOP(obj)                    (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_MAIN_LOOP, AgsMainLoop))

AGS_MAIN_LOOP_GET_INTERFACE()

#define AGS_MAIN_LOOP_GET_INTERFACE(obj)      (G_TYPE_INSTANCE_GET_INTERFACE((obj), AGS_TYPE_MAIN_LOOP, AgsMainLoopInterface))

AGS_MAIN_LOOP_INTERFACE()

#define AGS_MAIN_LOOP_INTERFACE(vtable)       (G_TYPE_CHECK_CLASS_CAST((vtable), AGS_TYPE_MAIN_LOOP, AgsMainLoopInterface))

ags_main_loop_get_type ()

GType
ags_main_loop_get_type ();

Types and Values

AGS_TYPE_MAIN_LOOP

#define AGS_TYPE_MAIN_LOOP                    (ags_main_loop_get_type())

AgsMainLoop

typedef struct _AgsMainLoop AgsMainLoop;

struct AgsMainLoopInterface

struct AgsMainLoopInterface {
  GTypeInterface ginterface;

  GRecMutex* (*get_tree_lock)(AgsMainLoop *main_loop);

  void (*set_syncing)(AgsMainLoop *main_loop, gboolean is_syncing);
  gboolean (*is_syncing)(AgsMainLoop *main_loop);

  void (*set_critical_region)(AgsMainLoop *main_loop, gboolean is_critical_region);
  gboolean (*is_critical_region)(AgsMainLoop *main_loop);

  void (*inc_queued_critical_region)(AgsMainLoop *main_loop);
  void (*dec_queued_critical_region)(AgsMainLoop *main_loop);
  guint (*test_queued_critical_region)(AgsMainLoop *main_loop);

  void (*change_frequency)(AgsMainLoop *main_loop,
			   gdouble frequency);
};

Signal Details

The “change-frequency” signal

void
user_function (AgsMainLoop *main_loop,
               double       frequency,
               gpointer     user_data)

Change frequency.

Parameters

main_loop

the AgsMainLoop

 

frequency

the new frequency

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 3.0.0