Эх сурвалжийг харах

throw exception when no launchpad found

Fabian Peter Hammerle 10 жил өмнө
parent
commit
defc63e484
2 өөрчлөгдсөн 15 нэмэгдсэн , 2 устгасан
  1. 7 2
      Launchpad.cpp
  2. 8 0
      Launchpad.h

+ 7 - 2
Launchpad.cpp

@@ -19,7 +19,7 @@ Launchpad::Launchpad()
     }
     if(!midiout.isPortOpen())
 	{
-		throw "no launchpad for midi output found";
+		throw LaunchpadNotFoundError("no launchpad for midi output found");
 	}
 
     for(unsigned int i=0; i<midiin.getPortCount(); i++)
@@ -32,7 +32,7 @@ Launchpad::Launchpad()
     }
     if(!midiin.isPortOpen())
 	{
-		throw "no launchpad for midi input found";
+		throw LaunchpadNotFoundError("no launchpad for midi input found");
 	}
 
 	for(KeyCoordinate x = 0; x < width; x++) {
@@ -172,4 +172,9 @@ void Launchpad::setKeyPressed(KeyCoordinate x, KeyCoordinate y, bool pressed)
     keyBeingPressed[x][y] = pressed;
 }
 
+LaunchpadNotFoundError::LaunchpadNotFoundError(const char* message)
+    : parent(message)
+{
+}
+
 } // namespace

+ 8 - 0
Launchpad.h

@@ -47,4 +47,12 @@ private:
     void setKeyPressed(KeyCoordinate x, KeyCoordinate y, bool pressed);
 };
 
+class LaunchpadNotFoundError : public std::runtime_error
+{
+    typedef std::runtime_error parent;
+
+public:
+    LaunchpadNotFoundError(const char* message);
+};
+
 };