wrap some classes and a struct
This commit is contained in:
parent
427e42a087
commit
c98290d4f0
8 changed files with 192 additions and 0 deletions
|
@ -4,6 +4,14 @@ pub use application::Application;
|
|||
mod meson_config;
|
||||
pub mod ui;
|
||||
|
||||
pub mod mpris;
|
||||
pub use mpris::Mpris;
|
||||
|
||||
pub mod playbin;
|
||||
pub use playbin::Playbin;
|
||||
|
||||
pub mod subsonic;
|
||||
|
||||
use gettextrs::{bind_textdomain_codeset, bindtextdomain, setlocale, textdomain, LocaleCategory};
|
||||
use gtk::prelude::*;
|
||||
use gtk::{gio, glib};
|
||||
|
|
30
src/mpris.rs
Normal file
30
src/mpris.rs
Normal file
|
@ -0,0 +1,30 @@
|
|||
mod player;
|
||||
pub use player::Player;
|
||||
|
||||
mod ffi {
|
||||
use gtk::glib;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreyMpris {
|
||||
parent_instance: glib::gobject_ffi::GObject,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreyMprisClass {
|
||||
parent_class: glib::gobject_ffi::GObjectClass,
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn audrey_mpris_get_type() -> glib::ffi::GType;
|
||||
}
|
||||
}
|
||||
|
||||
use gtk::glib;
|
||||
|
||||
glib::wrapper! {
|
||||
pub struct Mpris(Object<ffi::AudreyMpris, ffi::AudreyMprisClass>);
|
||||
|
||||
match fn {
|
||||
type_ => || ffi::audrey_mpris_get_type(),
|
||||
}
|
||||
}
|
27
src/mpris/player.rs
Normal file
27
src/mpris/player.rs
Normal file
|
@ -0,0 +1,27 @@
|
|||
mod ffi {
|
||||
use gtk::glib;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreyMprisPlayer {
|
||||
parent_instance: glib::gobject_ffi::GObject,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreyMprisClassPlayer {
|
||||
parent_class: glib::gobject_ffi::GObjectClass,
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn audrey_mpris_player_get_type() -> glib::ffi::GType;
|
||||
}
|
||||
}
|
||||
|
||||
use gtk::glib;
|
||||
|
||||
glib::wrapper! {
|
||||
pub struct Player(Object<ffi::AudreyMprisPlayer, ffi::AudreyMprisClassPlayer>);
|
||||
|
||||
match fn {
|
||||
type_ => || ffi::audrey_mpris_player_get_type(),
|
||||
}
|
||||
}
|
30
src/playbin.rs
Normal file
30
src/playbin.rs
Normal file
|
@ -0,0 +1,30 @@
|
|||
mod song;
|
||||
pub use song::Song;
|
||||
|
||||
mod ffi {
|
||||
use gtk::glib;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreyPlaybin {
|
||||
parent_instance: glib::gobject_ffi::GObject,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreyPlaybinClass {
|
||||
parent_class: glib::gobject_ffi::GObjectClass,
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn audrey_playbin_get_type() -> glib::ffi::GType;
|
||||
}
|
||||
}
|
||||
|
||||
use gtk::glib;
|
||||
|
||||
glib::wrapper! {
|
||||
pub struct Playbin(Object<ffi::AudreyPlaybin, ffi::AudreyPlaybinClass>);
|
||||
|
||||
match fn {
|
||||
type_ => || ffi::audrey_playbin_get_type(),
|
||||
}
|
||||
}
|
27
src/playbin/song.rs
Normal file
27
src/playbin/song.rs
Normal file
|
@ -0,0 +1,27 @@
|
|||
mod ffi {
|
||||
use gtk::glib;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreyPlaybinSong {
|
||||
parent_instance: glib::gobject_ffi::GObject,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreyPlaybinSongClass {
|
||||
parent_class: glib::gobject_ffi::GObjectClass,
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn audrey_playbin_song_get_type() -> glib::ffi::GType;
|
||||
}
|
||||
}
|
||||
|
||||
use gtk::glib;
|
||||
|
||||
glib::wrapper! {
|
||||
pub struct Song(Object<ffi::AudreyPlaybinSong, ffi::AudreyPlaybinSongClass>);
|
||||
|
||||
match fn {
|
||||
type_ => || ffi::audrey_playbin_song_get_type(),
|
||||
}
|
||||
}
|
5
src/subsonic.rs
Normal file
5
src/subsonic.rs
Normal file
|
@ -0,0 +1,5 @@
|
|||
mod client;
|
||||
pub use client::Client;
|
||||
|
||||
mod song;
|
||||
pub use song::Song;
|
27
src/subsonic/client.rs
Normal file
27
src/subsonic/client.rs
Normal file
|
@ -0,0 +1,27 @@
|
|||
mod ffi {
|
||||
use gtk::glib;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreySubsonicClient {
|
||||
parent_instance: glib::gobject_ffi::GObject,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AudreySubsonicClientClass {
|
||||
parent_class: glib::gobject_ffi::GObjectClass,
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn audrey_subsonic_client_get_type() -> glib::ffi::GType;
|
||||
}
|
||||
}
|
||||
|
||||
use gtk::glib;
|
||||
|
||||
glib::wrapper! {
|
||||
pub struct Client(Object<ffi::AudreySubsonicClient, ffi::AudreySubsonicClientClass>);
|
||||
|
||||
match fn {
|
||||
type_ => || ffi::audrey_subsonic_client_get_type(),
|
||||
}
|
||||
}
|
38
src/subsonic/song.rs
Normal file
38
src/subsonic/song.rs
Normal file
|
@ -0,0 +1,38 @@
|
|||
mod ffi {
|
||||
use std::ffi::*;
|
||||
use gtk::glib;
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct AudreySubsonicSong {
|
||||
pub id: *mut c_char,
|
||||
pub title: *mut c_char,
|
||||
pub album: *mut c_char,
|
||||
pub artist: *mut c_char,
|
||||
pub track: i64,
|
||||
pub year: i64,
|
||||
pub starred: *mut glib::ffi::GDateTime,
|
||||
pub duration: i64,
|
||||
pub play_count: i64,
|
||||
pub genre: *mut c_char,
|
||||
pub cover_art: *mut c_char,
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
pub fn audrey_subsonic_song_copy(ptr: *const AudreySubsonicSong) -> *mut AudreySubsonicSong;
|
||||
pub fn audrey_subsonic_song_free(ptr: *mut AudreySubsonicSong);
|
||||
pub fn audrey_subsonic_song_get_type() -> glib::ffi::GType;
|
||||
}
|
||||
}
|
||||
|
||||
use gtk::glib;
|
||||
|
||||
glib::wrapper! {
|
||||
pub struct Song(BoxedInline<ffi::AudreySubsonicSong>);
|
||||
|
||||
match fn {
|
||||
copy => |ptr| ffi::audrey_subsonic_song_copy(ptr),
|
||||
free => |ptr| ffi::audrey_subsonic_song_free(ptr),
|
||||
type_ => || ffi::audrey_subsonic_song_get_type(),
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue