Skip to content

Commit 53d51b2

Browse files
committed
API throw if not connected.
1 parent 6bcde33 commit 53d51b2

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

ps3api/tmapi.py

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,15 @@ class TMAPI:
248248
def __init__(self):
249249
self.NativeAPI = TMAPIExports()
250250
self.PS3TargetIndex = -1
251+
self.IsConnected = False
251252

252253
if self.NativeAPI.SNPS3InitTargetComms() != SNResult.SN_S_OK:
253254
raise Exception("SNPS3InitTargetComms() Failed")
254255

256+
def ThrowIfNotConnected(self):
257+
if self.IsConnected == False:
258+
raise Exception("Error: Not Connected to PS3")
259+
255260
def GetDefaultTarget(self):
256261
DefaultTargetIndex = pointer(c_uint32(0))
257262

@@ -261,6 +266,8 @@ def GetDefaultTarget(self):
261266
return DefaultTargetIndex[0]
262267

263268
def ConnectTarget(self, TargetIndex=-1):
269+
self.IsConnected = False
270+
264271
if TargetIndex == -1:
265272
TargetIndex = self.GetDefaultTarget()
266273

@@ -269,9 +276,13 @@ def ConnectTarget(self, TargetIndex=-1):
269276

270277
self.PS3TargetIndex = TargetIndex
271278

279+
self.IsConnected = True
280+
272281
return True
273282

274-
def AttachProcess(self):
283+
def GetProcessList(self):
284+
self.ThrowIfNotConnected()
285+
275286
NumProcessesPtr = pointer(c_uint32(0))
276287

277288
if self.NativeAPI.SNPS3ProcessList(self.PS3TargetIndex, NumProcessesPtr, None) != SNResult.SN_S_OK:
@@ -287,7 +298,18 @@ def AttachProcess(self):
287298
if self.NativeAPI.SNPS3ProcessList(self.PS3TargetIndex, NumProcessesPtr, ProcessList) != SNResult.SN_S_OK:
288299
raise Exception("SNPS3ProcessList(): GetProcessInfos Failed")
289300

290-
ProcessID = ProcessList[0]
301+
return list(ProcessList)
302+
303+
def AttachProcess(self, ProcessID=-1):
304+
self.ThrowIfNotConnected()
305+
306+
if ProcessID == -1:
307+
ProcessList = self.GetProcessList()
308+
309+
if len(ProcessList) == 0:
310+
return False
311+
312+
ProcessID = ProcessList[0]
291313

292314
if self.NativeAPI.SNPS3ProcessAttach(self.PS3TargetIndex, 0, ProcessID) != SNResult.SN_S_OK:
293315
return False
@@ -300,13 +322,17 @@ def AttachProcess(self):
300322
return True
301323

302324
def ReadMemory(self, Address, Size):
325+
self.ThrowIfNotConnected()
326+
303327
MemoryBuffer = (c_char * Size)()
304328

305329
self.NativeAPI.SNPS3ProcessGetMemory(self.PS3TargetIndex, 0, self.ProcessID, 0, Address, Size, MemoryBuffer)
306330

307331
return bytes(MemoryBuffer)
308332

309333
def WriteMemory(self, Address, Bytes):
334+
self.ThrowIfNotConnected()
335+
310336
WriteBuffer = (c_char * len(Bytes)).from_buffer(bytearray(Bytes))
311337

312338
return self.NativeAPI.SNPS3ProcessSetMemory(self.PS3TargetIndex, 0, self.ProcessID, 0, Address, len(Bytes), WriteBuffer)

0 commit comments

Comments
 (0)