UniMRCP  1.3.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
mpf_termination_factory.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008-2014 Arsen Chaloyan
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  * $Id: mpf_termination_factory.h 2136 2014-07-04 06:33:36Z achaloyan@gmail.com $
17  */
18 
19 #ifndef MPF_TERMINATION_FACTORY_H
20 #define MPF_TERMINATION_FACTORY_H
21 
22 /**
23  * @file mpf_termination_factory.h
24  * @brief MPF Termination Factory
25  */
26 
27 #include "mpf_types.h"
28 
30 
31 /** MPF termination factory */
33  /** Virtual create */
34  mpf_termination_t* (*create_termination)(mpf_termination_factory_t *factory, void *obj, apr_pool_t *pool);
35  /** Virtual assign engine */
37 };
38 
39 /**
40  * Assign media engine to termination factory.
41  * @param termination_factory the termination factory to assign media engine to
42  * @param media_engine the media engine to assign
43  */
45  mpf_termination_factory_t *termination_factory,
46  mpf_engine_t *media_engine);
47 
48 /**
49  * Create MPF termination from termination factory.
50  * @param termination_factory the termination factory to create termination from
51  * @param obj the external object associated with termination
52  * @param pool the pool to allocate memory from
53  */
55  mpf_termination_factory_t *termination_factory,
56  void *obj,
57  apr_pool_t *pool);
58 
59 /**
60  * Create raw MPF termination.
61  * @param obj the external object associated with termination
62  * @param audio_stream the audio stream of the termination
63  * @param video_stream the video stream of the termination
64  * @param pool the pool to allocate memory from
65  */
67  void *obj,
68  mpf_audio_stream_t *audio_stream,
69  mpf_video_stream_t *video_stream,
70  apr_pool_t *pool);
71 
72 /**
73  * Destroy MPF termination.
74  * @param termination the termination to destroy
75  */
77 
78 /**
79  * Get termination name.
80  * @param termination the termination to get name of
81  */
82 MPF_DECLARE(const char*) mpf_termination_name_get(const mpf_termination_t *termination);
83 
84 /**
85  * Get associated object.
86  * @param termination the termination to get object from
87  */
89 
90 /**
91  * Get audio stream.
92  * @param termination the termination to get audio stream from
93  */
95 
96 /**
97  * Get video stream.
98  * @param termination the termination to get video stream from
99  */
101 
102 
104 
105 #endif /* MPF_TERMINATION_FACTORY_H */