Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Olivier Crête
libnice
Commits
e3ddaa28
Commit
e3ddaa28
authored
Jun 21, 2017
by
Olivier Crête
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
agent: Adjust the nice_agent_new_full() to use flags
This makes it easier to read and more extensible.
parent
c7a5a92b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
13 deletions
+31
-13
agent/agent.c
agent/agent.c
+5
-4
agent/agent.h
agent/agent.h
+22
-5
tests/test-nomination.c
tests/test-nomination.c
+4
-4
No files found.
agent/agent.c
View file @
e3ddaa28
...
...
@@ -1168,14 +1168,15 @@ nice_agent_new_reliable (GMainContext *ctx, NiceCompatibility compat)
NICEAPI_EXPORT
NiceAgent
*
nice_agent_new_full
(
GMainContext
*
ctx
,
NiceCompatibility
compat
,
gboolean
reliable
,
NiceNominationMode
nomination
)
NiceAgentOption
flags
)
{
NiceAgent
*
agent
=
g_object_new
(
NICE_TYPE_AGENT
,
"compatibility"
,
compat
,
"main-context"
,
ctx
,
"reliable"
,
reliable
,
"nomination-mode"
,
nomination
,
"reliable"
,
(
flags
&
NICE_AGENT_OPTION_RELIABLE
)
?
TRUE
:
FALSE
,
"nomination-mode"
,
(
flags
&
NICE_AGENT_OPTION_REGULAR_NOMINATION
)
?
NICE_NOMINATION_MODE_REGULAR
:
NICE_NOMINATION_MODE_AGGRESSIVE
,
"full-mode"
,
(
flags
&
NICE_AGENT_OPTION_LITE_MODE
)
?
FALSE
:
TRUE
,
NULL
);
return
agent
;
...
...
agent/agent.h
View file @
e3ddaa28
...
...
@@ -398,6 +398,25 @@ typedef enum
NICE_NOMINATION_MODE_AGGRESSIVE
,
}
NiceNominationMode
;
/**
* NiceAgentOption:
* @NICE_AGENT_OPTION_REGULAR_NOMINATION: Enables regular nomination, default
* is aggrssive mode (see #NiceNominationMode).
* @NICE_AGENT_OPTION_RELIABLE: Enables reliable mode, possibly using PseudoTCP, * see nice_agent_new_reliable().
* @NICE_AGENT_OPTION_LITE_MODE: Enable lite mode
*
* These are options that can be passed to nice_agent_new_full(). They set
* various properties on the agent. Not including them sets the property to
* the other value.
*
* Since: UNRELEASED
*/
typedef
enum
{
NICE_AGENT_OPTION_REGULAR_NOMINATION
=
1
<<
0
,
NICE_AGENT_OPTION_RELIABLE
=
1
<<
1
,
NICE_AGENT_OPTION_LITE_MODE
=
1
<<
2
,
}
NiceAgentOption
;
/**
* NiceAgentRecvFunc:
* @agent: The #NiceAgent Object
...
...
@@ -452,13 +471,12 @@ nice_agent_new_reliable (GMainContext *ctx, NiceCompatibility compat);
* nice_agent_new_full:
* @ctx: The Glib Mainloop Context to use for timers
* @compat: The compatibility mode of the agent
* @reliable: The reliability mode of the agent
* @nomination: The nomination mode of the agent
* @flags: Flags to set the properties
*
* Create a new #NiceAgent with parameters that must be be defined at
* construction time.
* The returned object must be freed with g_object_unref()
* <para> See also: #NiceNominationMode </para>
* <para> See also: #NiceNominationMode
and #NiceAgentOption
</para>
*
* Since: UNRELEASED
*
...
...
@@ -467,8 +485,7 @@ nice_agent_new_reliable (GMainContext *ctx, NiceCompatibility compat);
NiceAgent
*
nice_agent_new_full
(
GMainContext
*
ctx
,
NiceCompatibility
compat
,
gboolean
reliable
,
NiceNominationMode
nomination
);
NiceAgentOption
flags
);
/**
* nice_agent_add_local_address:
...
...
tests/test-nomination.c
View file @
e3ddaa28
...
...
@@ -140,13 +140,13 @@ run_test(NiceNominationMode l_nomination_mode,
lagent
=
nice_agent_new_full
(
NULL
,
NICE_COMPATIBILITY_RFC5245
,
FALSE
,
/* reliable */
l_nomination_mode
);
l_nomination_mode
==
NICE_NOMINATION_MODE_REGULAR
?
NICE_AGENT_OPTION_REGULAR_NOMINATION
:
0
);
ragent
=
nice_agent_new_full
(
NULL
,
NICE_COMPATIBILITY_RFC5245
,
FALSE
,
/* reliable */
r_nomination_mode
);
r_nomination_mode
==
NICE_NOMINATION_MODE_REGULAR
?
NICE_AGENT_OPTION_REGULAR_NOMINATION
:
0
);
g_object_set
(
G_OBJECT
(
lagent
),
"ice-tcp"
,
FALSE
,
NULL
);
g_object_set
(
G_OBJECT
(
ragent
),
"ice-tcp"
,
FALSE
,
NULL
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment