~ubuntu-branches/ubuntu/saucy/sflphone/saucy

« back to all changes in this revision

Viewing changes to sflphone-common/test/audiolayertest.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Francois Marier
  • Date: 2010-12-24 16:33:55 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20101224163355-tkvvikqxbrbav6up
Tags: 0.9.11-1
* New upstream release
* Add new build dependencies on libwebkit-dev and libyaml-dev

* Bump Standards-Version up to 3.9.1
* Bump debhelper compatibility to 8
* Patch another typo in the upstream code (lintian notice)

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
using std::cout;
39
39
using std::endl;
40
40
 
41
 
void AudioLayerTest::testAudioLayerConfig() {
42
 
        _debug ("-------------------- AudioLayerTest::testAudioLayerConfig --------------------\n");
43
 
 
44
 
        int sampling_rate = Manager::instance().getConfigInt(AUDIO,
45
 
                        AUDIO_SAMPLE_RATE);
46
 
        int frame_size = Manager::instance().getConfigInt(AUDIO, ALSA_FRAME_SIZE);
47
 
 
48
 
        int layer = Manager::instance().getAudioDriver()->getLayerType();
49
 
 
50
 
        // if (layer != ALSA)
51
 
        //      Manager::instance().switchAudioManager();
52
 
 
53
 
        // TODO: Fix tests
54
 
        //CPPUNIT_ASSERT ( (int) Manager::instance().getAudioDriver()->getSampleRate() == sampling_rate);
55
 
 
56
 
        //CPPPUNIT_ASSERT ( (int) Manager::instance().getAudioDriver()->getFrameSize() == frame_size);
57
 
}
58
 
 
59
 
void AudioLayerTest::testAudioLayerSwitch() {
60
 
        _debug ("-------------------- AudioLayerTest::testAudioLayerSwitch --------------------\n");
61
 
 
62
 
        int previous_layer = Manager::instance().getAudioDriver()->getLayerType();
63
 
 
64
 
        for (int i = 0; i < 2; i++) {
65
 
                _debug ("iter - %i",i);
66
 
                Manager::instance().switchAudioManager();
67
 
 
68
 
                if (previous_layer == ALSA) {
69
 
                        CPPUNIT_ASSERT (Manager::instance().getAudioDriver()->getLayerType() == PULSEAUDIO);
70
 
                } else {
71
 
                        CPPUNIT_ASSERT (Manager::instance().getAudioDriver()->getLayerType() == ALSA);
72
 
                }
73
 
 
74
 
                previous_layer = Manager::instance().getAudioDriver()->getLayerType();
75
 
 
76
 
                usleep(100000);
77
 
        }
78
 
}
79
 
 
80
 
void AudioLayerTest::testPulseConnect() {
81
 
        _debug ("-------------------- AudioLayerTest::testPulseConnect --------------------\n");
82
 
 
83
 
        if (Manager::instance().getAudioDriver()->getLayerType() == ALSA)
84
 
                return;
85
 
 
86
 
        ManagerImpl* manager;
87
 
        manager = &Manager::instance();
88
 
 
89
 
        _pulselayer = (PulseLayer*) Manager::instance().getAudioDriver();
90
 
 
91
 
        CPPUNIT_ASSERT (_pulselayer->getLayerType() == PULSEAUDIO);
92
 
 
93
 
        std::string alsaPlugin;
94
 
        int numCardIn, numCardOut, sampleRate, frameSize;
95
 
 
96
 
        alsaPlugin = manager->getConfigString(AUDIO, ALSA_PLUGIN);
97
 
        numCardIn = manager->getConfigInt(AUDIO, ALSA_CARD_ID_IN);
98
 
        numCardOut = manager->getConfigInt(AUDIO, ALSA_CARD_ID_OUT);
99
 
        sampleRate = manager->getConfigInt(AUDIO, AUDIO_SAMPLE_RATE);
100
 
        frameSize = manager->getConfigInt(AUDIO, ALSA_FRAME_SIZE);
101
 
 
102
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream() == NULL);
103
 
        CPPUNIT_ASSERT (_pulselayer->getRecordStream() == NULL);
104
 
 
105
 
        _pulselayer->setErrorMessage(-1);
106
 
 
107
 
        try {
108
 
                CPPUNIT_ASSERT (_pulselayer->openDevice (numCardIn, numCardOut, sampleRate, frameSize, SFL_PCM_BOTH, alsaPlugin) == true);
109
 
        } catch (...) {
110
 
                _debug ("Exception occured wile opening device! ");
111
 
        }
112
 
 
113
 
        usleep(100000);
114
 
 
115
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream() == NULL);
116
 
        CPPUNIT_ASSERT (_pulselayer->getRecordStream() == NULL);
117
 
 
118
 
        _debug ("-------------------------- \n");
119
 
        _pulselayer->startStream();
120
 
 
121
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->pulseStream() != NULL);
122
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->pulseStream() != NULL);
123
 
 
124
 
        // Must return No error "PA_OK" == 1
125
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->getStreamState() == 1);
126
 
        CPPUNIT_ASSERT (_pulselayer->getRecordStream()->getStreamState() == 1);
127
 
 
128
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->disconnectStream() == true);
129
 
        CPPUNIT_ASSERT (_pulselayer->getRecordStream()->disconnectStream() == true);
130
 
 
131
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->connectStream() == true);
132
 
        CPPUNIT_ASSERT (_pulselayer->getRecordStream()->connectStream() == true);
133
 
 
134
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->getStreamState() == 1);
135
 
        CPPUNIT_ASSERT (_pulselayer->getRecordStream()->getStreamState() == 1);
136
 
 
137
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->connectStream() == true);
138
 
        CPPUNIT_ASSERT (_pulselayer->getRecordStream()->connectStream() == true);
139
 
 
140
 
        CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->getStreamState() == 1);
141
 
        CPPUNIT_ASSERT (_pulselayer->getRecordStream()->getStreamState() == 1);
142
 
 
143
 
        CPPUNIT_ASSERT (_pulselayer->disconnectAudioStream() == true);
 
41
void AudioLayerTest::testAudioLayerConfig()
 
42
{
 
43
    _debug ("-------------------- AudioLayerTest::testAudioLayerConfig --------------------\n");
 
44
 
 
45
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getSmplrate() == 44100);
 
46
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getFramesize() == 20);
 
47
 
 
48
    CPPUNIT_ASSERT( Manager::instance().getAudioDriver()->getLayerType() == PULSEAUDIO);
 
49
 
 
50
    // alsa preferences
 
51
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getCardin() == 0);
 
52
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getCardout() == 0);
 
53
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getCardring() == 0);
 
54
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getPlugin() == "default");
 
55
 
 
56
    // pulseaudio preferences
 
57
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getDevicePlayback() == "alsa_output.pci-0000_00_1b.0.analog-stereo");
 
58
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getDeviceRecord() == "alsa_input.pci-0000_00_1b.0.analog-stereo");
 
59
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getDeviceRingtone() == "alsa_output.pci-0000_00_1b.0.analog-stereo");
 
60
 
 
61
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getVolumemic() == 100);
 
62
    CPPUNIT_ASSERT( Manager::instance().audioPreference.getVolumespkr() == 100);
 
63
 
 
64
    // TODO: Fix tests
 
65
    //CPPUNIT_ASSERT ( (int) Manager::instance().getAudioDriver()->getSampleRate() == sampling_rate);
 
66
 
 
67
    //CPPPUNIT_ASSERT ( (int) Manager::instance().getAudioDriver()->getFrameSize() == frame_size);
 
68
}
 
69
 
 
70
void AudioLayerTest::testAudioLayerSwitch()
 
71
{
 
72
    _debug ("-------------------- AudioLayerTest::testAudioLayerSwitch --------------------\n");
 
73
 
 
74
    int previous_layer = Manager::instance().getAudioDriver()->getLayerType();
 
75
 
 
76
    for (int i = 0; i < 2; i++) {
 
77
        _debug ("iter - %i",i);
 
78
        Manager::instance().switchAudioManager();
 
79
 
 
80
        if (previous_layer == ALSA) {
 
81
            CPPUNIT_ASSERT (Manager::instance().getAudioDriver()->getLayerType() == PULSEAUDIO);
 
82
        } else {
 
83
            CPPUNIT_ASSERT (Manager::instance().getAudioDriver()->getLayerType() == ALSA);
 
84
        }
 
85
 
 
86
        previous_layer = Manager::instance().getAudioDriver()->getLayerType();
 
87
 
 
88
        usleep (100000);
 
89
    }
 
90
}
 
91
 
 
92
void AudioLayerTest::testPulseConnect()
 
93
{
 
94
    _debug ("-------------------- AudioLayerTest::testPulseConnect --------------------\n");
 
95
 
 
96
    if (Manager::instance().getAudioDriver()->getLayerType() == ALSA) {
 
97
        Manager::instance().switchAudioManager();
 
98
        usleep (100000);
 
99
    }
 
100
 
 
101
    ManagerImpl* manager;
 
102
    manager = &Manager::instance();
 
103
 
 
104
    _pulselayer = (PulseLayer*) Manager::instance().getAudioDriver();
 
105
 
 
106
    CPPUNIT_ASSERT (_pulselayer->getLayerType() == PULSEAUDIO);
 
107
 
 
108
    std::string alsaPlugin;
 
109
    int numCardIn, numCardOut, numCardRing, sampleRate, frameSize;
 
110
 
 
111
    alsaPlugin = manager->audioPreference.getPlugin();
 
112
    numCardIn = manager->audioPreference.getCardin();
 
113
    numCardOut = manager->audioPreference.getCardout();
 
114
    numCardRing = manager->audioPreference.getCardring();
 
115
    sampleRate = manager->audioPreference.getSmplrate();
 
116
    frameSize = manager->audioPreference.getFramesize();
 
117
 
 
118
    CPPUNIT_ASSERT (_pulselayer->getPlaybackStream() == NULL);
 
119
    CPPUNIT_ASSERT (_pulselayer->getRecordStream() == NULL);
 
120
 
 
121
    _pulselayer->setErrorMessage (-1);
 
122
 
 
123
    try {
 
124
        CPPUNIT_ASSERT (_pulselayer->openDevice (numCardIn, numCardOut, numCardRing, sampleRate, frameSize, SFL_PCM_BOTH, alsaPlugin) == true);
 
125
    } catch (...) {
 
126
        _debug ("Exception occured wile opening device! ");
 
127
    }
 
128
 
 
129
    sleep (1);
 
130
 
 
131
    CPPUNIT_ASSERT (_pulselayer->getPlaybackStream() == NULL);
 
132
    CPPUNIT_ASSERT (_pulselayer->getRecordStream() == NULL);
 
133
 
 
134
    _pulselayer->startStream();
 
135
 
 
136
    CPPUNIT_ASSERT (_pulselayer->getPlaybackStream()->pulseStream() != NULL);
 
137
    CPPUNIT_ASSERT (_pulselayer->getRecordStream()->pulseStream() != NULL);
 
138
 
144
139
}