From 48f234756c933551a9f779199a6124d03366c315 Mon Sep 17 00:00:00 2001 From: LongHairedHacker Date: Sat, 16 Sep 2017 00:48:20 +0200 Subject: [PATCH] Started prototyping gui --- bg.png | Bin 0 -> 1013 bytes src/main.rs | 82 +++++++++++++++++++++++++++++++++++++++++++++------- ui.xcf | Bin 31568 -> 34219 bytes 3 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 bg.png diff --git a/bg.png b/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..5017d4933abb6440cc78ec89f8b7e0f9d96f3248 GIT binary patch literal 1013 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$RgAGXbBqvD&DYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>Fdh=kdt3X*y_)}|MP%CvY8S|xv6<2KrRD=b5Uwy zNotBhd1gt5g1e`0K#E=}I|BoAq^FBxNX4zUcVFkNQ4n!RG_cE%&y_0)I=|jbE=l$S z*N?SJJeLQyy<3-?uFA~LayyVYi|=oV z+}(LMN^F>>v7|_}z45Q%SAHnD>59ngg>4MeKm7e$oAulDe8KU;`*RF!_qW{$F=U!I zm9NU<;OF}f|JJ3aH!MB#v2OqB?z3x6AB1l8=>Ga3YJR`Z!t&$CrcU4sDn2c+Ve*$d zS)4`DT>GkC1i`YMr9l)jJcazHi)G^yJv0pFi_FY&BMt zZ?8|i|J`fyym;rFH=H*Qy#5;X=jZk7*B>VbpNhD={BOtFX4|~8Z!FE6a~tnX&Z@d6 zekVKUm>APrd*v_EvtRu)c6yof?ZttAU*lf>UQ(J6_5bO%%RxDE+7Isef9==Fp4?*M zy7alu(hW8_%0Xcuaw52WaLWU9rpTj>|XS^k3g7bIjj(>YSN6KMSI`&PBRyywY^o z%|Tgqm8gO5*@j4iUt$+L+P#AddOq5}EK-xOKfe20w{zA3)y_-v&&E&Y%Yr7zCqm8~ z%hzp=ICk*WlW#eUjG7Wahj+Z%pf9oA&*=^KvD6#lK+8ei`VoBKQtd(S@~!G1`4TX0M7u6|JN^K|udS?83{1OV_f Bw1WTu literal 0 HcmV?d00001 diff --git a/src/main.rs b/src/main.rs index 17d146b..d8f3c74 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,7 +7,14 @@ extern crate serde_derive; extern crate gst; extern crate itertools; -use std::sync::mpsc; +use std::time::{SystemTime, Duration}; + +use std::f32::consts::PI; + +use sdl2::pixels; +use sdl2::event::Event; +use sdl2::image::LoadTexture; +use sdl2::gfx::primitives::DrawRenderer; mod config; @@ -22,11 +29,11 @@ fn main() { let record_config = config::read_config("rascam.toml"); - let mut recoding_pipeline = pipeline::RecordingPipeline::new(&record_config); + //let mut recoding_pipeline = pipeline::RecordingPipeline::new(&record_config); - /* let sdl_context = sdl2::init().unwrap(); + let video_subsys = sdl_context.video().unwrap(); let window = video_subsys.window("rascam", SCREEN_WIDTH, SCREEN_HEIGHT) .position_centered() @@ -35,15 +42,28 @@ fn main() { let mut canvas = window.into_canvas().build().unwrap(); - canvas.set_draw_color(pixels::Color::RGB(255, 255, 0)); - canvas.clear(); - canvas.present(); - */ + let texture_creator = canvas.texture_creator(); + let texture = texture_creator.load_texture("bg.png").unwrap(); - recoding_pipeline.start(); - loop { - if !recoding_pipeline.handle_events() { + //recoding_pipeline.start(); + + let mut events = sdl_context.event_pump().unwrap(); + + let center1_x = 44; + let center1_y = 20; + + let center2_x = 115; + let center2_y = 20; + + let radius = 14.0f32; + + let mut angle = 0.0f32; + + let mut now = SystemTime::now(); + + 'main: loop { + /*if !recoding_pipeline.handle_events() { break; } let result = recoding_pipeline.get_max_samples(); @@ -55,8 +75,48 @@ fn main() { println!("Error occured: {}", msg); break; } + }*/ + + if now.elapsed().unwrap() > Duration::from_millis(100) { + canvas.copy(&texture, None, None).expect("Render failed"); + + canvas.filled_circle(80, 18, 6, pixels::Color::RGB(255, 0, 0)).unwrap(); + + for quad in 0..2 { + let offset = PI / 2.0f32 * (quad as f32); + let cur_angle = angle + offset; + + let off_x = (cur_angle.cos() * 14.0f32).round() as i16; + let off_y = (cur_angle.sin() * 14.0f32).round() as i16; + + canvas.line(center1_x - off_x, center1_y - off_y, center1_x + off_x, center1_y + off_y, pixels::Color::RGB(255, 255, 255)).unwrap(); + canvas.line(center2_x - off_x, center2_y - off_y, center2_x + off_x, center2_y + off_y, pixels::Color::RGB(255, 255, 255)).unwrap(); + + + canvas.filled_circle(center1_x, center1_y, 3, pixels::Color::RGB(160, 160, 160)).unwrap(); + canvas.filled_circle(center2_x, center2_y, 3, pixels::Color::RGB(160, 160, 160)).unwrap(); + } + + //canvas.clear(); + canvas.present(); + + angle = angle - PI / 15.0f32; + if angle < -PI / 2.0f32 { + angle = angle - PI / 2.0f32; + } + + now = SystemTime::now(); } + + + for event in events.poll_iter() { + match event { + Event::Quit {..} => break 'main, + _ => {} + } + } + } - recoding_pipeline.stop(); + //recoding_pipeline.stop(); } diff --git a/ui.xcf b/ui.xcf index d732a3a75d337412b72691da392ec76ae828c28c..b4419adb6f57b27b0f0a13395277e4454143c328 100644 GIT binary patch delta 1545 zcmZ9MTWpj?6vxlEm!|A)Bdu-PpkmctXq&X9yDnX^rQ2=0h%6$eu8mRff{jU`OSEZe zUxvWy0~$&v!4OQG_@tr`{EQLrhGr4Ik-$G9K?s%OTNzNq>Y)?fgiqib_*tt$ zjoT1B;H2Lt&B}lRrV4$>#=4*v-^zdz35THu8sSEfs+34$8B-tS3ok(Xheeb}ha1IvS_Ku%|vDlXJv9YfD?K=vO?$(u=I-Tz>Q5H)Q zki~#Rt)W$t25UmH=t$DGdaNn4ZrGYOy=&rn{qfq!)m}%h?X9td9agFkR2rl-I*Bfp29%5ig1KULlfhppP5P+yWzZY8^?mxEE5Z9C!Mrr8PFU zF~-*bCG5#y6|ly@t&}g0dMVxJH%mPQuam3uUV7KiaA2{IXsloHf zN_$_ctSPs*jwwkK*H;Zq*6}XXtAkqW-e66wJ~q^>PY*?wEtkKYKqw@^xon+2I~3Me zW~-YoNwnGC;AOTPFiXW@XK&W`^(WjT*(yi(wa0Wcv(grbKAedTZVIzUD+3BRS=uQpB!%f36e5)$3ZRQ)U=WFH1hCAKQHf#&E zkIXHFg_pz{aPkv3-585#P#yB7P1QfWnxeFw{YjJr%Ahv_|@iQF5#dC5ry!bf(oon=bFs9!P*71$%g<##kS|&vt delta 1039 zcmY+DT}TvB6vzLwA7*N?X+@f5luBEswwpSOy0WY0BCHFUMTHb4ftI)!WbTp-Rv-jr z-twUbn+NHkpwb)k@e)S*Bot-PQ_<%`J!BD)^g;g_MrjWG?&Y4ZIrrQ%H_kbp{!oTC zE7cdv_9*4!gGZF|4S;J2P*MZ<(*V^A1g`+$-$3L#5X}SjeE~Xu0o@}&-ycwf$F)}M za9j>OH%=6tXv76L=K9qqmI($fRB3LU%Rc;2bASdKS3UmXXLG{ zD*fynR`W$!%PukM&lMNc^sxWFJ=93+f59fLAZ&~&I#-SQd0_iepkfNBd_%s{M=`JG z33_Etpui>a)wsA>lO9%Invsh)GxDn6+4uo+-fj!MoHna)&%7vm(@7BCa;<7rhOqWp6{$A%^PQ;%GE` zp(oL7D-E|g&W0&ESB-WO@IHA_M)y#xj!