1 /****************************************************************************
3 ** Copyright (C) 2000-2008 TROLLTECH ASA. All rights reserved.
5 ** This file is part of the Opensource Edition of the Qtopia Toolkit.
7 ** This software is licensed under the terms of the GNU General Public
8 ** License (GPL) version 2.
10 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
12 ** Contact info@trolltech.com if any conditions of this licensing are
17 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
20 ****************************************************************************/
22 #ifndef VENDOR_FICGTA01_P_H
23 #define VENDOR_FICGTA01_P_H
25 #include <qmodemservice.h>
26 #include <qmodemcall.h>
27 #include <qmodemcallprovider.h>
28 #include <qmodemsimtoolkit.h>
29 #include <qmodemphonebook.h>
30 #include <qmodempinmanager.h>
31 #include <qmodempreferrednetworkoperators.h>
32 #include <qbandselection.h>
33 #include <qvibrateaccessory.h>
34 #include <qcellbroadcast.h>
36 #include <qmodemsiminfo.h>
38 #include <qmodemcallvolume.h>
40 #include <alsa/asoundlib.h>
43 class Ficgta01VibrateAccessory;
45 class Ficgta01CallProvider : public QModemCallProvider
49 Ficgta01CallProvider( QModemService *service );
50 ~Ficgta01CallProvider();
53 QModemCallProvider::AtdBehavior atdBehavior() const;
54 void abortDial( uint modemIdentifier, QPhoneCall::Scope scope );
55 QString dialServiceCommand(const QDialOptions&) const;
56 QString dialVoiceCommand(const QDialOptions&) const;
57 QString acceptCallCommand( bool otherActiveCalls ) const;
64 void cpiNotification( const QString& msg );
65 void cnapNotification( const QString& msg );
68 class Ficgta01PhoneBook : public QModemPhoneBook
72 Ficgta01PhoneBook( QModemService *service );
75 void sendPhoneBooksReady();
78 bool hasModemPhoneBookCache() const;
79 bool hasEmptyPhoneBookIndex() const;
82 void slotQueryFailed(const QString&);
85 bool m_phoneBookWasReady;
88 class Ficgta01PinManager : public QModemPinManager
92 Ficgta01PinManager( QModemService *service );
93 ~Ficgta01PinManager();
96 bool emptyPinIsReady() const;
100 class Ficgta01BandSelection : public QBandSelection
104 Ficgta01BandSelection( QModemService *service );
105 ~Ficgta01BandSelection();
110 void setBand( QBandSelection::BandMode mode, const QString& value );
113 void bandQuery( bool ok, const QAtResult& result );
114 void bandList( bool ok, const QAtResult& result );
115 void bandSet( bool ok, const QAtResult& result );
118 QModemService *service;
121 class Ficgta01ModemService : public QModemService
126 ( const QString& service, QSerialIODeviceMultiplexer *mux,
127 QObject *parent = 0 );
128 ~Ficgta01ModemService();
131 static void echoCancellation( QAtChat* );
134 void csq( const QString& msg );
136 void firstCsqQuery();
138 void ctzv( const QString& msg );
139 void configureDone( bool ok );
143 void sendSuspendDone();
148 void cstatNotification( const QString& msg );
151 Ficgta01VibrateAccessory* m_vibratorService;
152 Ficgta01PhoneBook* m_phoneBook;
154 bool m_phoneBookIsReady;
159 class Ficgta01VibrateAccessory : public QVibrateAccessoryProvider
163 Ficgta01VibrateAccessory( QModemService *service );
164 ~ Ficgta01VibrateAccessory();
167 void setVibrateNow( const bool value );
168 void setVibrateOnRing( const bool value );
171 class Ficgta01CallVolume : public QModemCallVolume
176 explicit Ficgta01CallVolume( Ficgta01ModemService *service);
177 ~Ficgta01CallVolume();
180 void setSpeakerVolume( int volume );
181 void setMicrophoneVolume( int volume );
182 void setSpeakerVolumeRange(int,int);
183 void setMicVolumeRange(int,int);
186 void volumeLevelRangeQueryDone(bool ok, const QAtResult & result );
187 void volumeLevelQueryDone(bool ok, const QAtResult & result );
190 bool hasDelayedInit() const;
193 int virtual2real(int volume);
194 int real2virtual(int volumeLevel);
195 Ficgta01ModemService *service;
196 int minVolumeLevel, maxVolumeLevel;
197 int currentVolumeLevel;
200 class Ficgta01PreferredNetworkOperators : public QModemPreferredNetworkOperators
204 explicit Ficgta01PreferredNetworkOperators( QModemService *service );
205 ~Ficgta01PreferredNetworkOperators();
208 class DummyCellBroadcast : public QCellBroadcast
212 DummyCellBroadcast(QModemService* service);
215 void setChannels(const QList<int>& list);
218 class Ficgta01ModemHiddenFeatures
221 Ficgta01ModemHiddenFeatures( QAtChat* );
222 ~Ficgta01ModemHiddenFeatures();
224 void sendHiddenFeatureCommand( int );
225 void enableAEC( int, bool );
226 void enableNoiseReduction( int );
227 void enableNoiseReductionAEC();
228 void disableNoiseReductionAEC();
232 const QString atPrefix;