summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/runtime/frontend.ice
blob: befb5b7a97c9241f744d3affa9e21e86be501b76 (plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
 * Copyright 2012 Free Software Foundation, Inc.
 *
 * This file is part of GNU Radio
 *
 * GNU Radio is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3, or (at your option)
 * any later version.
 *
 * GNU Radio is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with GNU Radio; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 51 Franklin Street,
 * Boston, MA 02110-1301, USA.
 */

#include <gnuradio.ice>

[["python:package:gnuradio.ctrlport"]]
module GNURadio {
    module Frontend {

        exception NotSupported {};
        exception InvalidSetting { string msg; };
        exception ReceiverFailure { string msg; };
	exception NotExist {};
        dictionary<string, string>      TunerArgs;

        struct TunerStatus {
            int   a2dbits;
            float gain;
            bool  isInverted;
        };

        interface Tuner {
            TunerStatus configureTuner(TunerArgs args);                     //ADDED
            idempotent TunerStatus status();
            idempotent float setGain(float gain) throws NotSupported, InvalidSetting;
            idempotent bool  setInversion(bool inverted) throws NotSupported, InvalidSetting;
        };

        struct ChannelStatus {
	    string uid;
            bool active;
            float freq;
            float bandwidth;
            int payloadBits;
            bool  isComplex;
            string signalName;
        };

        interface Channel extends Component {
            idempotent ChannelStatus status();
            idempotent FeedInfo  feed();
            idempotent bool  active();
            void start();
            void stop();
            idempotent float setCenterFreq(float freq) throws NotSupported, InvalidSetting;
            idempotent float setBandwidth(float bw) throws NotSupported, InvalidSetting;
            idempotent int   setPayloadBits(int bits) throws NotSupported, InvalidSetting;
            idempotent bool  setComplex(bool complex) throws NotSupported, InvalidSetting;
            void removeChannel() throws NotSupported;
        };

        sequence<Tuner*>   TunerSeq;
        sequence<Channel*> ChannelSeq;

        struct ChannelizerStatus {
	    string uid;
            string signalName;
        };
    
        interface Channelizer extends Component {
            idempotent ChannelizerStatus status();
            idempotent Tuner*       getTuner();
            idempotent ChannelSeq   getChannels();
            idempotent ChannelSeq   getActiveChannels();
            idempotent ChannelSeq   getInactiveChannels();
            Channel* createChannel(float freq, float bw, int payloadBits, string address, int port) throws NotSupported;
        };

        sequence<Channelizer*>  ChannelizerSeq;

        interface Receiver extends AbstractReceiver {
            idempotent ChannelizerSeq getInputs();
//            idempotent ChannelizerSeq getActiveInputs();
//            idempotent ChannelizerSeq getInactiveInputs();
	    idempotent Channel* getChannelByID(string id) throws NotExist;
	    idempotent Channelizer* getChannelizerByID(string id) throws NotExist;
        };


    };
    


};