gstreamer_tag/
language_codes.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use crate::ffi;
4use glib::translate::*;
5
6#[doc(alias = "gst_tag_get_language_codes")]
7pub fn language_codes() -> glib::collections::StrV {
8    skip_assert_initialized!();
9
10    unsafe { glib::collections::StrV::from_glib_full(ffi::gst_tag_get_language_codes()) }
11}
12
13#[doc(alias = "gst_tag_get_language_name")]
14pub fn language_name<'a>(language_code: &str) -> Option<&'a glib::GStr> {
15    skip_assert_initialized!();
16
17    unsafe {
18        let ptr = language_code
19            .run_with_gstr(|language_code| ffi::gst_tag_get_language_name(language_code.as_ptr()));
20
21        if ptr.is_null() {
22            None
23        } else {
24            Some(glib::GStr::from_ptr(ptr))
25        }
26    }
27}
28
29#[doc(alias = "gst_tag_get_language_code_iso_639_1")]
30pub fn language_code_iso_639_1<'a>(language_code: &str) -> Option<&'a glib::GStr> {
31    skip_assert_initialized!();
32
33    unsafe {
34        let ptr = language_code.run_with_gstr(|language_code| {
35            ffi::gst_tag_get_language_code_iso_639_1(language_code.as_ptr())
36        });
37
38        if ptr.is_null() {
39            None
40        } else {
41            Some(glib::GStr::from_ptr(ptr))
42        }
43    }
44}
45
46#[doc(alias = "gst_tag_get_language_code_iso_639_2T")]
47pub fn language_code_iso_639_2t<'a>(language_code: &str) -> Option<&'a glib::GStr> {
48    skip_assert_initialized!();
49
50    unsafe {
51        let ptr = language_code.run_with_gstr(|language_code| {
52            ffi::gst_tag_get_language_code_iso_639_2T(language_code.as_ptr())
53        });
54
55        if ptr.is_null() {
56            None
57        } else {
58            Some(glib::GStr::from_ptr(ptr))
59        }
60    }
61}
62
63#[doc(alias = "gst_tag_get_language_code_iso_639_2B")]
64pub fn language_code_iso_639_2b<'a>(language_code: &str) -> Option<&'a glib::GStr> {
65    skip_assert_initialized!();
66
67    unsafe {
68        let ptr = language_code.run_with_gstr(|language_code| {
69            ffi::gst_tag_get_language_code_iso_639_2B(language_code.as_ptr())
70        });
71
72        if ptr.is_null() {
73            None
74        } else {
75            Some(glib::GStr::from_ptr(ptr))
76        }
77    }
78}
79
80#[doc(alias = "gst_tag_check_language_code")]
81pub fn check_language_code(language_code: &str) -> bool {
82    skip_assert_initialized!();
83
84    unsafe {
85        from_glib(language_code.run_with_gstr(|language_code| {
86            ffi::gst_tag_check_language_code(language_code.as_ptr())
87        }))
88    }
89}