summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/linux/opcmciasystem.cpp7
-rw-r--r--libopie2/opiecore/linux/opcmciasystem.h8
2 files changed, 13 insertions, 2 deletions
diff --git a/libopie2/opiecore/linux/opcmciasystem.cpp b/libopie2/opiecore/linux/opcmciasystem.cpp
index 21c5a84..9f151ce 100644
--- a/libopie2/opiecore/linux/opcmciasystem.cpp
+++ b/libopie2/opiecore/linux/opcmciasystem.cpp
@@ -141,32 +141,39 @@ int OPcmciaSystem::cardCount() const
141 OPcmciaSystem::CardIterator it = iterator(); 141 OPcmciaSystem::CardIterator it = iterator();
142 while ( it.current() ) 142 while ( it.current() )
143 { 143 {
144 if ( !it.current()->isEmpty() ) nonEmpty++; 144 if ( !it.current()->isEmpty() ) nonEmpty++;
145 ++it; 145 ++it;
146 } 146 }
147 return nonEmpty; 147 return nonEmpty;
148} 148}
149 149
150 150
151OPcmciaSocket* OPcmciaSystem::socket( unsigned int number ) 151OPcmciaSocket* OPcmciaSystem::socket( unsigned int number )
152{ 152{
153 return _interfaces.at( number ); 153 return _interfaces.at( number );
154} 154}
155 155
156 156
157void OPcmciaSystem::restart()
158{
159 //FIXME Use OProcess or something that allows more control
160 ::system( "/etc/init.d/pcmcia restart" );
161}
162
163
157OPcmciaSystem* OPcmciaSystem::instance() 164OPcmciaSystem* OPcmciaSystem::instance()
158{ 165{
159 if ( !_instance ) _instance = new OPcmciaSystem(); 166 if ( !_instance ) _instance = new OPcmciaSystem();
160 return _instance; 167 return _instance;
161} 168}
162 169
163 170
164OPcmciaSystem::CardIterator OPcmciaSystem::iterator() const 171OPcmciaSystem::CardIterator OPcmciaSystem::iterator() const
165{ 172{
166 return OPcmciaSystem::CardIterator( _interfaces ); 173 return OPcmciaSystem::CardIterator( _interfaces );
167} 174}
168 175
169 176
170/*====================================================================================== 177/*======================================================================================
171 * OPcmciaSocket 178 * OPcmciaSocket
172 *======================================================================================*/ 179 *======================================================================================*/
diff --git a/libopie2/opiecore/linux/opcmciasystem.h b/libopie2/opiecore/linux/opcmciasystem.h
index 23d8c41..fecbb21 100644
--- a/libopie2/opiecore/linux/opcmciasystem.h
+++ b/libopie2/opiecore/linux/opcmciasystem.h
@@ -56,45 +56,49 @@ class OPcmciaSystem : public QObject
56 Q_OBJECT 56 Q_OBJECT
57 57
58 public: 58 public:
59 typedef QList<OPcmciaSocket> CardList; 59 typedef QList<OPcmciaSocket> CardList;
60 typedef QListIterator<OPcmciaSocket> CardIterator; 60 typedef QListIterator<OPcmciaSocket> CardIterator;
61 61
62 public: 62 public:
63 /** 63 /**
64 * @returns the number of available sockets 64 * @returns the number of available sockets
65 */ 65 */
66 int count() const; 66 int count() const;
67 /** 67 /**
68 * @returns the number of populated sockets 68 * @returns the number of populated sockets
69 */ 69 */
70 int cardCount() const; 70 int cardCount() const;
71 /** 71 /**
72 * @returns a pointer to the (one and only) @ref OSystem instance. 72 * @returns a pointer to the (one and only) @ref OSystem instance
73 */ 73 */
74 static OPcmciaSystem* instance(); 74 static OPcmciaSystem* instance();
75 /** 75 /**
76 * @returns an iterator usable for iterating through all sound cards. 76 * @returns an iterator usable for iterating through all sound cards
77 */ 77 */
78 CardIterator iterator() const; 78 CardIterator iterator() const;
79 /** 79 /**
80 * @returns a pointer to the @ref OPcmciaSocket object correspinding to socket number n, or 0, if not found 80 * @returns a pointer to the @ref OPcmciaSocket object correspinding to socket number n, or 0, if not found
81 * @see OPcmciaSocket 81 * @see OPcmciaSocket
82 */ 82 */
83 OPcmciaSocket* socket( unsigned int number ); 83 OPcmciaSocket* socket( unsigned int number );
84 /** 84 /**
85 * Restarts the subsystem
86 */
87 void restart();
88 /**
85 * @internal Rebuild the internal database 89 * @internal Rebuild the internal database
86 * @note Sometimes it might be useful to call this from client code, 90 * @note Sometimes it might be useful to call this from client code,
87 * e.g. after issuing a cardctl insert 91 * e.g. after issuing a cardctl insert
88 */ 92 */
89 void synchronize(); 93 void synchronize();
90 94
91 protected: 95 protected:
92 OPcmciaSystem(); 96 OPcmciaSystem();
93 97
94 private: 98 private:
95 static OPcmciaSystem* _instance; 99 static OPcmciaSystem* _instance;
96 CardList _interfaces; 100 CardList _interfaces;
97 int _major; 101 int _major;
98 102
99 private: 103 private:
100 class Private; 104 class Private;