1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
mod display;
mod service;

use {VRService, VRServiceCreator, VREyeParameters, VRStageParameters};
use std::sync::mpsc::{channel, Sender};

pub struct MockServiceCreator;

impl MockServiceCreator {
    pub fn new() -> Box<VRServiceCreator> {
        Box::new(MockServiceCreator)
    }

    pub fn new_service_with_remote() -> (Box<VRService>, Sender<MockVRControlMsg>) {
        let (send, rcv) = channel();
        let service = service::MockVRService::new_with_receiver(rcv);
        (Box::new(service), send)
    }
}

impl VRServiceCreator for MockServiceCreator {
     fn new_service(&self) -> Box<VRService> {
         Box::new(service::MockVRService::new())
     }
}

pub enum MockVRControlMsg {
    SetViewerPose([f32; 3], [f32; 4]),
    SetEyeParameters(VREyeParameters, VREyeParameters),
    SetProjectionMatrices([f32; 16], [f32; 16]),
    SetStageParameters(VRStageParameters),
    Focus,
    Blur,
}