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;
|
mod meson_config;
|
||||||
pub mod ui;
|
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 gettextrs::{bind_textdomain_codeset, bindtextdomain, setlocale, textdomain, LocaleCategory};
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::{gio, glib};
|
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